summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2020-05-13 20:13:53 -0400
committerGitHub <noreply@github.com>2020-05-13 20:13:53 -0400
commit81f7c759eff79f14dc29e9501201c3bc9367d12e (patch)
treef52b0d1f4ded49fc6b4403d43f7360024e143857
parenta9f33a9d8b7ad84380553f37c6e46276b25005c5 (diff)
parentc2989ef7a19fff335ce571ef045885471343cc4a (diff)
Merge branch 'master' into master
-rw-r--r--arm9/Makefile6
-rw-r--r--arm9/arm9.lcf290
-rw-r--r--arm9/arm9.lsf318
-rw-r--r--arm9/asm/secure.s9
-rw-r--r--arm9/asm/unk_02046030.s36
-rw-r--r--arm9/files/FILE_10C400.s4
-rw-r--r--arm9/files/FILE_10C600.s4
-rw-r--r--arm9/files/FILE_10C800.s4
-rw-r--r--arm9/files/FILE_10CA00.s4
-rw-r--r--arm9/files/FILE_10CC00.s4
-rw-r--r--arm9/files/FILE_145400.s4
-rw-r--r--arm9/files/FILE_16B600.s4
-rw-r--r--arm9/files/FILE_184400.s4
-rw-r--r--arm9/files/FILE_187800.s4
-rw-r--r--arm9/files/FILE_1A3000.s4
-rw-r--r--arm9/files/FILE_1AD200.s4
-rw-r--r--arm9/files/FILE_1AD400.s4
-rw-r--r--arm9/files/FILE_1DFE00.s4
-rw-r--r--arm9/files/FILE_1F9200.s4
-rw-r--r--arm9/files/FILE_227E00.s4
-rw-r--r--arm9/files/FILE_237400.s4
-rw-r--r--arm9/files/FILE_23BC00.s4
-rw-r--r--arm9/files/FILE_264200.s4
-rw-r--r--arm9/files/FILE_26B200.s4
-rw-r--r--arm9/files/FILE_283000.s4
-rw-r--r--arm9/files/FILE_283200.s4
-rw-r--r--arm9/files/FILE_285600.s4
-rw-r--r--arm9/files/FILE_285C00.s4
-rw-r--r--arm9/files/FILE_286C00.s4
-rw-r--r--arm9/files/FILE_288600.s4
-rw-r--r--arm9/files/FILE_289000.s4
-rw-r--r--arm9/files/FILE_289600.s4
-rw-r--r--arm9/files/FILE_289E00.s4
-rw-r--r--arm9/files/FILE_28AA00.s4
-rw-r--r--arm9/files/FILE_28C200.s4
-rw-r--r--arm9/files/FILE_28CC00.s4
-rw-r--r--arm9/files/FILE_28D200.s4
-rw-r--r--arm9/files/FILE_28D800.s4
-rw-r--r--arm9/files/FILE_28DE00.s4
-rw-r--r--arm9/files/FILE_28E200.s4
-rw-r--r--arm9/files/FILE_28E800.s4
-rw-r--r--arm9/files/FILE_28F200.s4
-rw-r--r--arm9/files/FILE_290000.s5
-rw-r--r--arm9/files/FILE_290600.s4
-rw-r--r--arm9/files/FILE_291200.s4
-rw-r--r--arm9/files/FILE_292000.s4
-rw-r--r--arm9/files/FILE_292E00.s4
-rw-r--r--arm9/files/FILE_294000.s4
-rw-r--r--arm9/files/FILE_294A00.s4
-rw-r--r--arm9/files/FILE_295400.s4
-rw-r--r--arm9/files/FILE_295A00.s4
-rw-r--r--arm9/files/FILE_296400.s4
-rw-r--r--arm9/files/FILE_296800.s4
-rw-r--r--arm9/files/FILE_297600.s4
-rw-r--r--arm9/files/FILE_298000.s4
-rw-r--r--arm9/files/FILE_298600.s4
-rw-r--r--arm9/files/FILE_298A00.s5
-rw-r--r--arm9/files/FILE_299A00.s4
-rw-r--r--arm9/files/FILE_299E00.s4
-rw-r--r--arm9/files/FILE_29C400.s4
-rw-r--r--arm9/files/FILE_29E800.s4
-rw-r--r--arm9/files/FILE_2A1A00.s4
-rw-r--r--arm9/files/FILE_2A6200.s4
-rw-r--r--arm9/files/FILE_2A8800.s4
-rw-r--r--arm9/files/FILE_2A9E00.s4
-rw-r--r--arm9/files/FILE_2ACC00.s4
-rw-r--r--arm9/files/FILE_2ADA00.s4
-rw-r--r--arm9/files/FILE_2AEC00.s4
-rw-r--r--arm9/files/FILE_2B2A00.s6
-rw-r--r--arm9/files/FILE_2B7600.s4
-rw-r--r--arm9/files/FILE_2B9400.s4
-rw-r--r--arm9/files/FILE_2BC400.s4
-rw-r--r--arm9/files/FILE_2BEC00.s4
-rw-r--r--arm9/files/FILE_2C1200.s4
-rw-r--r--arm9/files/FILE_2C2800.s6
-rw-r--r--arm9/files/FILE_2C4C00.s4
-rw-r--r--arm9/files/FILE_2C5C00.s4
-rw-r--r--arm9/files/FILE_2C9C00.s4
-rw-r--r--arm9/files/FILE_2C9E00.s4
-rw-r--r--arm9/files/FILE_2CEA00.s4
-rw-r--r--arm9/files/FILE_2CFE00.s4
-rw-r--r--arm9/files/FILE_2D5C00.s4
-rw-r--r--arm9/files/FILE_2D7C00.s4
-rw-r--r--arm9/files/FILE_2D9800.s4
-rw-r--r--arm9/files/FILE_2D9E00.s5
-rw-r--r--arm9/files/FILE_2DF200.s6
-rw-r--r--arm9/files/FILE_2E9A00.s5
-rw-r--r--arm9/files/FILE_2EF000.s6
-rw-r--r--arm9/files/FILE_2F1600.s5
-rw-r--r--arm9/files/FILE_2FFA00.s4
-rw-r--r--arm9/files/FILE_303400.s4
-rw-r--r--arm9/files/FILE_30C600.s4
-rw-r--r--arm9/global.inc213
-rw-r--r--arm9/macros.lcf.inc9
-rw-r--r--arm9/modules/04/asm/arm_04.s14
-rw-r--r--arm9/modules/69/asm/module_69.s2
-rw-r--r--arm9/modules/76/asm/module_76.s3226
-rw-r--r--arm9/modules/77/asm/module_77.s3214
-rw-r--r--arm9/modules/78/asm/module_78.s444
-rw-r--r--arm9/modules/79/asm/module_79_arm.s4890
-rw-r--r--arm9/modules/79/asm/module_79_thumb.s851
-rw-r--r--arm9/modules/80/asm/module_80.s19283
-rw-r--r--arm9/modules/81/asm/module_81.s10353
-rw-r--r--arm9/modules/82/asm/module_82.s4455
-rw-r--r--arm9/modules/83/asm/module_83.s26448
-rw-r--r--arm9/modules/84/asm/module_84.s6231
-rw-r--r--arm9/modules/85/asm/module_85.s16171
-rw-r--r--arm9/modules/86/asm/module_86.s917
-rw-r--r--arm9/undefined_syms.txt549
109 files changed, 97130 insertions, 1160 deletions
diff --git a/arm9/Makefile b/arm9/Makefile
index f792c5bf..b53a5d3c 100644
--- a/arm9/Makefile
+++ b/arm9/Makefile
@@ -265,8 +265,10 @@ $(CXX_OBJS): $(BUILD_DIR)/%.o: %.cpp $$(dep)
$(S_OBJS): $(BUILD_DIR)/%.o: %.s $$(dep)
$(AS) $(ASFLAGS) -o $@ $<
-$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(LD_TEMPLATE) undefined_syms.txt macros.lcf.inc
- # $(MAKELSF) $(MAKELSF_FLAGS) $< $(LD_TEMPLATE) $@
+# $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SPEC) $(LD_TEMPLATE)
+ # $(MAKELSF) $(MAKELSF_FLAGS) $^ $@
+
+$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT)
$(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $<
$(ROM): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BIN_FILES)
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 57e6e64f..fd2d2cd9 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -1,4 +1,7 @@
-#include "macros.lcf.inc"
+/*
+ * Linker command file for Metrowerks ARM Linker 2.0
+ * TODO: Split .rodata, .data, .sbss, .bss sections in source
+ */
MEMORY {
arm9 (RWX) : ORIGIN=0x02000000, LENGTH=0 > arm9.sbin
@@ -110,7 +113,6 @@ MEMORY {
}
SECTIONS {
-#include "undefined_syms.txt"
.arm9 : {
ALIGNALL(4); . = ALIGN(32);
SDK_STATIC_START = .;
@@ -2940,7 +2942,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_76_ID = 76;
SDK_OVERLAY.MODULE_76.ID = 76;
SDK_OVERLAY.MODULE_76.START = .;
- FILE_2D5C00.o (.text) /* 0x2D1C00 */
+ module_76.o (.text)
+ module_76.o (.rodata)
+ module_76.o (.init)
+ SDK_OVERLAY.MODULE_76.SINIT_START = .;
+ module_76.o (.ctor)
+ module_76.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_76.SINIT_END = .;
+ . = ALIGN(32);
+ module_76.o (.sdata)
+ module_76.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_76.END = .;
SDK_OVERLAY.MODULE_76.SIZE = SDK_OVERLAY.MODULE_76.END - SDK_OVERLAY.MODULE_76.START;
@@ -2950,7 +2962,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_76.BSS_START = .;
- FILE_2D5C00.o (.bss)
+ module_76.o (.bss)
+ module_76.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_76.BSS_END = .;
SDK_OVERLAY.MODULE_76.BSS_SIZE = SDK_OVERLAY.MODULE_76.BSS_END - SDK_OVERLAY.MODULE_76.BSS_START;
@@ -2961,7 +2974,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_77_ID = 77;
SDK_OVERLAY.MODULE_77.ID = 77;
SDK_OVERLAY.MODULE_77.START = .;
- FILE_2D7C00.o (.text) /* 0x2D3C00 */
+ module_77.o (.text)
+ module_77.o (.rodata)
+ module_77.o (.init)
+ SDK_OVERLAY.MODULE_77.SINIT_START = .;
+ module_77.o (.ctor)
+ module_77.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_77.SINIT_END = .;
+ . = ALIGN(32);
+ module_77.o (.sdata)
+ module_77.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_77.END = .;
SDK_OVERLAY.MODULE_77.SIZE = SDK_OVERLAY.MODULE_77.END - SDK_OVERLAY.MODULE_77.START;
@@ -2971,7 +2994,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_77.BSS_START = .;
- FILE_2D7C00.o (.bss)
+ module_77.o (.bss)
+ module_77.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_77.BSS_END = .;
SDK_OVERLAY.MODULE_77.BSS_SIZE = SDK_OVERLAY.MODULE_77.BSS_END - SDK_OVERLAY.MODULE_77.BSS_START;
@@ -2982,7 +3006,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_78_ID = 78;
SDK_OVERLAY.MODULE_78.ID = 78;
SDK_OVERLAY.MODULE_78.START = .;
- FILE_2D9800.o (.text) /* 0x2D5800 */
+ module_78.o (.text)
+ module_78.o (.rodata)
+ module_78.o (.init)
+ SDK_OVERLAY.MODULE_78.SINIT_START = .;
+ module_78.o (.ctor)
+ module_78.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_78.SINIT_END = .;
+ . = ALIGN(32);
+ module_78.o (.sdata)
+ module_78.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_78.END = .;
SDK_OVERLAY.MODULE_78.SIZE = SDK_OVERLAY.MODULE_78.END - SDK_OVERLAY.MODULE_78.START;
@@ -2992,7 +3026,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_78.BSS_START = .;
- FILE_2D9800.o (.bss)
+ module_78.o (.bss)
+ module_78.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_78.BSS_END = .;
SDK_OVERLAY.MODULE_78.BSS_SIZE = SDK_OVERLAY.MODULE_78.BSS_END - SDK_OVERLAY.MODULE_78.BSS_START;
@@ -3003,7 +3038,24 @@ SECTIONS {
SDK_OVERLAY_MODULE_79_ID = 79;
SDK_OVERLAY.MODULE_79.ID = 79;
SDK_OVERLAY.MODULE_79.START = .;
- FILE_2D9E00.o (.text) /* 0x2D5E00 */
+ module_79_thumb.o (.text)
+ module_79_arm.o (.text)
+ module_79_thumb.o (.rodata)
+ module_79_arm.o (.rodata)
+ module_79_thumb.o (.init)
+ module_79_arm.o (.init)
+ SDK_OVERLAY.MODULE_79.SINIT_START = .;
+ module_79_thumb.o (.ctor)
+ module_79_arm.o (.ctor)
+ module_79_thumb.o (.sinit)
+ module_79_arm.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_79.SINIT_END = .;
+ . = ALIGN(32);
+ module_79_thumb.o (.sdata)
+ module_79_arm.o (.sdata)
+ module_79_thumb.o (.data)
+ module_79_arm.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_79.END = .;
SDK_OVERLAY.MODULE_79.SIZE = SDK_OVERLAY.MODULE_79.END - SDK_OVERLAY.MODULE_79.START;
@@ -3013,7 +3065,10 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_79.BSS_START = .;
- FILE_2D9E00.o (.bss)
+ module_79_thumb.o (.bss)
+ module_79_arm.o (.bss)
+ module_79_thumb.o (.sbss)
+ module_79_arm.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_79.BSS_END = .;
SDK_OVERLAY.MODULE_79.BSS_SIZE = SDK_OVERLAY.MODULE_79.BSS_END - SDK_OVERLAY.MODULE_79.BSS_START;
@@ -3024,7 +3079,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_80_ID = 80;
SDK_OVERLAY.MODULE_80.ID = 80;
SDK_OVERLAY.MODULE_80.START = .;
- FILE_2DF200.o (.text) /* 0x2DB200 */
+ module_80.o (.text)
+ module_80.o (.rodata)
+ module_80.o (.init)
+ SDK_OVERLAY.MODULE_80.SINIT_START = .;
+ module_80.o (.ctor)
+ module_80.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_80.SINIT_END = .;
+ . = ALIGN(32);
+ module_80.o (.sdata)
+ module_80.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_80.END = .;
SDK_OVERLAY.MODULE_80.SIZE = SDK_OVERLAY.MODULE_80.END - SDK_OVERLAY.MODULE_80.START;
@@ -3034,7 +3099,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_80.BSS_START = .;
- FILE_2DF200.o (.bss)
+ module_80.o (.bss)
+ module_80.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_80.BSS_END = .;
SDK_OVERLAY.MODULE_80.BSS_SIZE = SDK_OVERLAY.MODULE_80.BSS_END - SDK_OVERLAY.MODULE_80.BSS_START;
@@ -3045,7 +3111,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_81_ID = 81;
SDK_OVERLAY.MODULE_81.ID = 81;
SDK_OVERLAY.MODULE_81.START = .;
- FILE_2E9A00.o (.text) /* 0x2E5A00 */
+ module_81.o (.text)
+ module_81.o (.rodata)
+ module_81.o (.init)
+ SDK_OVERLAY.MODULE_81.SINIT_START = .;
+ module_81.o (.ctor)
+ module_81.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_81.SINIT_END = .;
+ . = ALIGN(32);
+ module_81.o (.sdata)
+ module_81.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_81.END = .;
SDK_OVERLAY.MODULE_81.SIZE = SDK_OVERLAY.MODULE_81.END - SDK_OVERLAY.MODULE_81.START;
@@ -3055,7 +3131,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_81.BSS_START = .;
- FILE_2E9A00.o (.bss)
+ module_81.o (.bss)
+ module_81.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_81.BSS_END = .;
SDK_OVERLAY.MODULE_81.BSS_SIZE = SDK_OVERLAY.MODULE_81.BSS_END - SDK_OVERLAY.MODULE_81.BSS_START;
@@ -3066,7 +3143,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_82_ID = 82;
SDK_OVERLAY.MODULE_82.ID = 82;
SDK_OVERLAY.MODULE_82.START = .;
- FILE_2EF000.o (.text) /* 0x2EB000 */
+ module_82.o (.text)
+ module_82.o (.rodata)
+ module_82.o (.init)
+ SDK_OVERLAY.MODULE_82.SINIT_START = .;
+ module_82.o (.ctor)
+ module_82.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_82.SINIT_END = .;
+ . = ALIGN(32);
+ module_82.o (.sdata)
+ module_82.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_82.END = .;
SDK_OVERLAY.MODULE_82.SIZE = SDK_OVERLAY.MODULE_82.END - SDK_OVERLAY.MODULE_82.START;
@@ -3076,7 +3163,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_82.BSS_START = .;
- FILE_2EF000.o (.bss)
+ module_82.o (.bss)
+ module_82.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_82.BSS_END = .;
SDK_OVERLAY.MODULE_82.BSS_SIZE = SDK_OVERLAY.MODULE_82.BSS_END - SDK_OVERLAY.MODULE_82.BSS_START;
@@ -3087,7 +3175,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_83_ID = 83;
SDK_OVERLAY.MODULE_83.ID = 83;
SDK_OVERLAY.MODULE_83.START = .;
- FILE_2F1600.o (.text) /* 0x2ED600 */
+ module_83.o (.text)
+ module_83.o (.rodata)
+ module_83.o (.init)
+ SDK_OVERLAY.MODULE_83.SINIT_START = .;
+ module_83.o (.ctor)
+ module_83.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_83.SINIT_END = .;
+ . = ALIGN(32);
+ module_83.o (.sdata)
+ module_83.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_83.END = .;
SDK_OVERLAY.MODULE_83.SIZE = SDK_OVERLAY.MODULE_83.END - SDK_OVERLAY.MODULE_83.START;
@@ -3097,7 +3195,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_83.BSS_START = .;
- FILE_2F1600.o (.bss)
+ module_83.o (.bss)
+ module_83.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_83.BSS_END = .;
SDK_OVERLAY.MODULE_83.BSS_SIZE = SDK_OVERLAY.MODULE_83.BSS_END - SDK_OVERLAY.MODULE_83.BSS_START;
@@ -3108,7 +3207,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_84_ID = 84;
SDK_OVERLAY.MODULE_84.ID = 84;
SDK_OVERLAY.MODULE_84.START = .;
- FILE_2FFA00.o (.text) /* 0x2FBA00 */
+ module_84.o (.text)
+ module_84.o (.rodata)
+ module_84.o (.init)
+ SDK_OVERLAY.MODULE_84.SINIT_START = .;
+ module_84.o (.ctor)
+ module_84.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_84.SINIT_END = .;
+ . = ALIGN(32);
+ module_84.o (.sdata)
+ module_84.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_84.END = .;
SDK_OVERLAY.MODULE_84.SIZE = SDK_OVERLAY.MODULE_84.END - SDK_OVERLAY.MODULE_84.START;
@@ -3118,7 +3227,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_84.BSS_START = .;
- FILE_2FFA00.o (.bss)
+ module_84.o (.bss)
+ module_84.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_84.BSS_END = .;
SDK_OVERLAY.MODULE_84.BSS_SIZE = SDK_OVERLAY.MODULE_84.BSS_END - SDK_OVERLAY.MODULE_84.BSS_START;
@@ -3129,7 +3239,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_85_ID = 85;
SDK_OVERLAY.MODULE_85.ID = 85;
SDK_OVERLAY.MODULE_85.START = .;
- FILE_303400.o (.text) /* 0x2FF400 */
+ module_85.o (.text)
+ module_85.o (.rodata)
+ module_85.o (.init)
+ SDK_OVERLAY.MODULE_85.SINIT_START = .;
+ module_85.o (.ctor)
+ module_85.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_85.SINIT_END = .;
+ . = ALIGN(32);
+ module_85.o (.sdata)
+ module_85.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_85.END = .;
SDK_OVERLAY.MODULE_85.SIZE = SDK_OVERLAY.MODULE_85.END - SDK_OVERLAY.MODULE_85.START;
@@ -3139,7 +3259,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_85.BSS_START = .;
- FILE_303400.o (.bss)
+ module_85.o (.bss)
+ module_85.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_85.BSS_END = .;
SDK_OVERLAY.MODULE_85.BSS_SIZE = SDK_OVERLAY.MODULE_85.BSS_END - SDK_OVERLAY.MODULE_85.BSS_START;
@@ -3150,7 +3271,17 @@ SECTIONS {
SDK_OVERLAY_MODULE_86_ID = 86;
SDK_OVERLAY.MODULE_86.ID = 86;
SDK_OVERLAY.MODULE_86.START = .;
- FILE_30C600.o (.text) /* 0x308600 */
+ module_86.o (.text)
+ module_86.o (.rodata)
+ module_86.o (.init)
+ SDK_OVERLAY.MODULE_86.SINIT_START = .;
+ module_86.o (.ctor)
+ module_86.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_86.SINIT_END = .;
+ . = ALIGN(32);
+ module_86.o (.sdata)
+ module_86.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_86.END = .;
SDK_OVERLAY.MODULE_86.SIZE = SDK_OVERLAY.MODULE_86.END - SDK_OVERLAY.MODULE_86.START;
@@ -3160,7 +3291,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_86.BSS_START = .;
- FILE_30C600.o (.bss)
+ module_86.o (.bss)
+ module_86.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_86.BSS_END = .;
SDK_OVERLAY.MODULE_86.BSS_SIZE = SDK_OVERLAY.MODULE_86.BSS_END - SDK_OVERLAY.MODULE_86.BSS_START;
@@ -3975,17 +4107,105 @@ SECTIONS {
WRITEW 75;
WRITEW 0;
- OVERLAY_TABLE(MODULE_76, 76)
- OVERLAY_TABLE(MODULE_77, 77)
- OVERLAY_TABLE(MODULE_78, 78)
- OVERLAY_TABLE(MODULE_79, 79)
- OVERLAY_TABLE(MODULE_80, 80)
- OVERLAY_TABLE(MODULE_81, 81)
- OVERLAY_TABLE(MODULE_82, 82)
- OVERLAY_TABLE(MODULE_83, 83)
- OVERLAY_TABLE(MODULE_84, 84)
- OVERLAY_TABLE(MODULE_85, 85)
- OVERLAY_TABLE(MODULE_86, 86)
+ WRITEW 76;
+ WRITEW ADDR(.MODULE_76);
+ WRITEW SDK_OVERLAY.MODULE_76.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_76.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_76.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_76.SINIT_END;
+ WRITEW 76;
+ WRITEW 0;
+
+ WRITEW 77;
+ WRITEW ADDR(.MODULE_77);
+ WRITEW SDK_OVERLAY.MODULE_77.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_77.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_77.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_77.SINIT_END;
+ WRITEW 77;
+ WRITEW 0;
+
+ WRITEW 78;
+ WRITEW ADDR(.MODULE_78);
+ WRITEW SDK_OVERLAY.MODULE_78.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_78.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_78.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_78.SINIT_END;
+ WRITEW 78;
+ WRITEW 0;
+
+ WRITEW 79;
+ WRITEW ADDR(.MODULE_79);
+ WRITEW SDK_OVERLAY.MODULE_79.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_79.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_79.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_79.SINIT_END;
+ WRITEW 79;
+ WRITEW 0;
+
+ WRITEW 80;
+ WRITEW ADDR(.MODULE_80);
+ WRITEW SDK_OVERLAY.MODULE_80.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_80.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_80.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_80.SINIT_END;
+ WRITEW 80;
+ WRITEW 0;
+
+ WRITEW 81;
+ WRITEW ADDR(.MODULE_81);
+ WRITEW SDK_OVERLAY.MODULE_81.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_81.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_81.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_81.SINIT_END;
+ WRITEW 81;
+ WRITEW 0;
+
+ WRITEW 82;
+ WRITEW ADDR(.MODULE_82);
+ WRITEW SDK_OVERLAY.MODULE_82.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_82.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_82.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_82.SINIT_END;
+ WRITEW 82;
+ WRITEW 0;
+
+ WRITEW 83;
+ WRITEW ADDR(.MODULE_83);
+ WRITEW SDK_OVERLAY.MODULE_83.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_83.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_83.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_83.SINIT_END;
+ WRITEW 83;
+ WRITEW 0;
+
+ WRITEW 84;
+ WRITEW ADDR(.MODULE_84);
+ WRITEW SDK_OVERLAY.MODULE_84.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_84.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_84.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_84.SINIT_END;
+ WRITEW 84;
+ WRITEW 0;
+
+ WRITEW 85;
+ WRITEW ADDR(.MODULE_85);
+ WRITEW SDK_OVERLAY.MODULE_85.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_85.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_85.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_85.SINIT_END;
+ WRITEW 85;
+ WRITEW 0;
+
+ WRITEW 86;
+ WRITEW ADDR(.MODULE_86);
+ WRITEW SDK_OVERLAY.MODULE_86.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_86.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_86.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_86.SINIT_END;
+ WRITEW 86;
+ WRITEW 0;
+
} > arm9_table
SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START;
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf
index a0f6e04f..49e17956 100644
--- a/arm9/arm9.lsf
+++ b/arm9/arm9.lsf
@@ -2,110 +2,112 @@
Static arm9
{
Address 0x02000000
- Object main.o
- Object FUN_02000DF4.o
- Object unk_02000E0C.o
- Object rom2.o
- Object string_util.o
- Object unk_020023C0.o
- Object filesystem.o
- Object unk_02006864.o
- Object script.o
- Object unk_02038C78.o
- Object scrcmd.o
- Object unk_02046030.o
- Object unk_0208AC14.o
- Object FUN_020910A4.o
- Object unk_020910EC.o
- Object unk_020AF030.o
- Object FX_mtx22.o
- Object FX_mtx33.o
- Object FX_mtx43.o
- Object FX_mtx44.o
- Object FX_cp.o
- Object FX_vec.o
- Object FX_atan.o
- Object FX.o
- Object GX.o
- Object GX_state.o
- Object GX_vramcnt.o
- Object GX_bgcnt.o
- Object GX_g2.o
- Object GX_g3b.o
- Object GX_g3imm.o
- Object GX_g3x.o
- Object GX_g3_util.o
- Object GX_load2d.o
- Object GX_load3d.o
- Object GX_g3.o
- Object GX_asm.o
- Object OS_irqHandler.o
- Object OS_irqTable.o
- Object OS_interrupt.o
- Object OS_spinLock.o
- Object OS_printf.o
- Object OS_thread.o
- Object OS_context.o
- Object OS_emulator.o
- Object OS_message.o
- Object OS_mutex.o
- Object OS_cache.o
- Object OS_init.o
- Object OS_arena.o
- Object OS_alloc.o
- Object OS_tcm.o
- Object OS_protectionUnit.o
- Object OS_protectionRegion.o
- Object OS_exception.o
- Object OS_timer.o
- Object OS_tick.o
- Object OS_alarm.o
- Object OS_valarm.o
- Object OS_system.o
- Object OS_reset.o
- Object OS_ownerInfo.o
- Object OS_vramExclusive.o
- Object OS_entropy.o
- Object OS_terminate_proc.o
- Object MI_wram.o
- Object MI_dma.o
- Object MI_dma_hblank.o
- Object MI_dma_gxcommand.o
- Object MI_memory.o
- Object MI_swap.o
- Object MI_uncompress.o
- Object MI_dma_card.o
- Object MI_init.o
- Object SND_interface.o
- Object SND_main.o
- Object SND_command.o
- Object SND_alarm.o
- Object SND_work.o
- Object SND_util.o
- Object SND_bank.o
- Object PXI_init.o
- Object PXI_fifo.o
- Object rom2_2.o
- Object FS_command.o
- Object FS_command_default.o
- Object FS_archive.o
- Object FS_file.o
- Object FS_rom.o
- Object FS_overlay.o
- Object libdgt.o
- Object libcp.o
- Object libspi.o
- Object libpm.o
- Object librtc.o
- Object libcard.o
- Object libwm.o
- Object libctrdg.o
- Object libmath.o
- Object libstd.o
- Object libc.o
- Object rom2_3.o
- Object libmwcc.o
- Object rom2_4.o
+ Object main.o
+ Object FUN_02000DF4.o
+ Object unk_02000E0C.o
+ Object rom2.o
+ Object string_util.o
+ Object unk_020023C0.o
+ Object filesystem.o
+ Object unk_02006864.o
+ Object script.o
+ Object unk_02038C78.o
+ Object scrcmd.o
+ Object unk_02046030.o
+ Object unk_0208AC14.o
+ Object FUN_020910A4.o
+ Object unk_020910EC.o
+ Object unk_020AF030.o
+ Object FX_mtx22.o
+ Object FX_mtx33.o
+ Object FX_mtx43.o
+ Object FX_mtx44.o
+ Object FX_cp.o
+ Object FX_vec.o
+ Object FX_atan.o
+ Object FX.o
+ Object GX.o
+ Object GX_state.o
+ Object GX_vramcnt.o
+ Object GX_bgcnt.o
+ Object GX_g2.o
+ Object GX_g3b.o
+ Object GX_g3imm.o
+ Object GX_g3x.o
+ Object GX_g3_util.o
+ Object GX_load2d.o
+ Object GX_load3d.o
+ Object GX_g3.o
+ Object GX_asm.o
+ Object OS_irqHandler.o
+ Object OS_irqTable.o
+ Object OS_interrupt.o
+ Object OS_spinLock.o
+ Object OS_printf.o
+ Object OS_thread.o
+ Object OS_context.o
+ Object OS_emulator.o
+ Object OS_message.o
+ Object OS_mutex.o
+ Object OS_cache.o
+ Object OS_init.o
+ Object OS_arena.o
+ Object OS_alloc.o
+ Object OS_tcm.o
+ Object OS_protectionUnit.o
+ Object OS_protectionRegion.o
+ Object OS_exception.o
+ Object OS_timer.o
+ Object OS_tick.o
+ Object OS_alarm.o
+ Object OS_valarm.o
+ Object OS_system.o
+ Object OS_reset.o
+ Object OS_ownerInfo.o
+ Object OS_vramExclusive.o
+ Object OS_entropy.o
+ Object OS_terminate_proc.o
+ Object MI_wram.o
+ Object MI_dma.o
+ Object MI_dma_hblank.o
+ Object MI_dma_gxcommand.o
+ Object MI_memory.o
+ Object MI_swap.o
+ Object MI_uncompress.o
+ Object MI_dma_card.o
+ Object MI_init.o
+ Object SND_interface.o
+ Object SND_main.o
+ Object SND_command.o
+ Object SND_alarm.o
+ Object SND_work.o
+ Object SND_util.o
+ Object SND_bank.o
+ Object PXI_init.o
+ Object PXI_fifo.o
+ Object rom2_2.o
+ Object FS_command.o
+ Object FS_command_default.o
+ Object FS_archive.o
+ Object FS_file.o
+ Object FS_rom.o
+ Object FS_overlay.o
+ Object DGT_hash1.o
+ Object DGT_hash2.o
+ Object DGT_sha1s_arm4cw.o
+ Object libcp.o
+ Object libspi.o
+ Object libpm.o
+ Object librtc.o
+ Object libcard.o
+ Object libwm.o
+ Object libctrdg.o
+ Object libmath.o
+ Object libstd.o
+ Object libc.o
+ Object rom2_3.o
+ Object libmwcc.o
+ Object rom2_4.o
}
Autoload ITCM
@@ -297,270 +299,270 @@ Overlay MODULE_32
Overlay MODULE_33
{
Address 0x02254840
- Object FILE_28DE00.o
+ Object module_33.o
}
Overlay MODULE_34
{
Address 0x02254840
- Object FILE_28E200.o
+ Object module_34.o
}
Overlay MODULE_35
{
Address 0x02254840
- Object FILE_28E800.o
+ Object module_35.o
}
Overlay MODULE_36
{
Address 0x02254840
- Object FILE_28F200.o
+ Object module_36.o
}
Overlay MODULE_37
{
Address 0x02254840
- Object FILE_290000.o
+ Object module_37.o
}
Overlay MODULE_38
{
Address 0x02254840
- Object FILE_290600.o
+ Object module_38.o
}
Overlay MODULE_39
{
Address 0x02254840
- Object FILE_291200.o
+ Object module_39.o
}
Overlay MODULE_40
{
Address 0x02254840
- Object FILE_292000.o
+ Object module_40.o
}
Overlay MODULE_41
{
Address 0x02254840
- Object FILE_292E00.o
+ Object module_41.o
}
Overlay MODULE_42
{
Address 0x02254840
- Object FILE_294000.o
+ Object module_42.o
}
Overlay MODULE_43
{
Address 0x02254840
- Object FILE_294A00.o
+ Object module_43.o
}
Overlay MODULE_44
{
Address 0x02254840
- Object FILE_295400.o
+ Object module_44.o
}
Overlay MODULE_45
{
Address 0x02254840
- Object FILE_295A00.o
+ Object module_45.o
}
Overlay MODULE_46
{
Address 0x02254840
- Object FILE_296400.o
+ Object module_46.o
}
Overlay MODULE_47
{
Address 0x02254840
- Object FILE_296800.o
+ Object module_47.o
}
Overlay MODULE_48
{
Address 0x02254840
- Object FILE_297600.o
+ Object module_48.o
}
Overlay MODULE_49
{
Address 0x02254840
- Object FILE_298000.o
+ Object module_49.o
}
Overlay MODULE_50
{
Address 0x02254840
- Object FILE_298600.o
+ Object module_50.o
}
Overlay MODULE_51
{
Address 0x02254840
- Object FILE_298A00.o
+ Object module_51.o
}
Overlay MODULE_52
{
Address 0x021D74E0
- Object FILE_299A00.o
+ Object module_52.o
}
Overlay MODULE_53
{
Address 0x021D74E0
- Object FILE_299E00.o
+ Object module_53.o
}
Overlay MODULE_54
{
Address 0x021D74E0
- Object FILE_29C400.o
+ Object module_54.o
}
Overlay MODULE_55
{
Address 0x021D74E0
- Object FILE_29E800.o
+ Object module_55.o
}
Overlay MODULE_56
{
Address 0x02211E60
- Object FILE_2A1A00.o
+ Object module_56.o
}
Overlay MODULE_57
{
Address 0x021D74E0
- Object FILE_2A6200.o
+ Object module_57.o
}
Overlay MODULE_58
{
Address 0x021D9A20
- Object FILE_2A8800.o
+ Object module_58.o
}
Overlay MODULE_59
{
Address 0x021D74E0
- Object FILE_2A9E00.o
+ Object module_59.o
}
Overlay MODULE_60
{
Address 0x021D74E0
- Object FILE_2ACC00.o
+ Object module_60.o
}
Overlay MODULE_61
{
Address 0x021D74E0
- Object FILE_2ADA00.o
+ Object module_61.o
}
Overlay MODULE_62
{
Address 0x0222D5C0
- Object FILE_2AEC00.o
+ Object module_62.o
}
Overlay MODULE_63
{
Address 0x021D74E0
- Object FILE_2B2A00.o
+ Object module_63.o
}
Overlay MODULE_64
{
Address 0x021D74E0
- Object FILE_2B7600.o
+ Object module_64.o
}
Overlay MODULE_65
{
Address 0x021D74E0
- Object FILE_2B9400.o
+ Object module_65.o
}
Overlay MODULE_66
{
Address 0x021D74E0
- Object FILE_2BC400.o
+ Object module_66.o
}
Overlay MODULE_67
{
Address 0x021D74E0
- Object FILE_2BEC00.o
+ Object module_67.o
}
Overlay MODULE_68
{
Address 0x021D74E0
- Object FILE_2C1200.o
+ Object module_68.o
}
Overlay MODULE_69
{
Address 0x0222D5C0
- Object FILE_2C2800.o
+ Object module_69.o
}
Overlay MODULE_70
{
Address 0x021D74E0
- Object FILE_2C4C00.o
+ Object module_70.o
}
Overlay MODULE_71
{
Address 0x0222D5C0
- Object FILE_2C5C00.o
+ Object module_71.o
}
Overlay MODULE_72
{
Address 0x021D74E0
- Object FILE_2C9C00.o
+ Object module_72.o
}
Overlay MODULE_73
{
Address 0x021D74E0
- Object FILE_2C9E00.o
+ Object module_73.o
}
Overlay MODULE_74
{
Address 0x021D74E0
- Object FILE_2CEA00.o
+ Object module_74.o
}
Overlay MODULE_75
{
Address 0x021E6BA0
- Object FILE_2CFE00.o
+ Object module_75.o
}
Overlay MODULE_76
{
Address 0x021D74E0
- Object FILE_2D5C00.o
+ Object module_76.o
}
Overlay MODULE_77
{
Address 0x021D74E0
- Object FILE_2D7C00.o
+ Object module_77.o
}
Overlay MODULE_78
{
Address 0x021D74E0
- Object FILE_2D9800.o
+ Object module_78.o
}
Overlay MODULE_79
{
Address 0x02211E60
- Object FILE_2D9E00.o
+ Object module_79.o
}
Overlay MODULE_80
{
Address 0x0222D5C0
- Object FILE_2DF200.o
+ Object module_80.o
}
Overlay MODULE_81
{
Address 0x02237E40
- Object FILE_2E9A00.o
+ Object module_81.o
}
Overlay MODULE_82
{
Address 0x0222D5C0
- Object FILE_2EF000.o
+ Object module_82.o
}
Overlay MODULE_83
{
Address 0x0222D5C0
- Object FILE_2F1600.o
+ Object module_83.o
}
Overlay MODULE_84
{
Address 0x021D74E0
- Object FILE_2FFA00.o
+ Object module_84.o
}
Overlay MODULE_85
{
Address 0x021D74E0
- Object FILE_303400.o
+ Object module_85.o
}
Overlay MODULE_86
{
Address 0x021D74E0
- Object FILE_30C600.o
+ Object module_86.o
}
diff --git a/arm9/asm/secure.s b/arm9/asm/secure.s
index 632f43bc..f97ccac8 100644
--- a/arm9/asm/secure.s
+++ b/arm9/asm/secure.s
@@ -3,7 +3,14 @@
.section .text
-.incbin "baserom.nds", 0x4000, 0x19E
+.incbin "baserom.nds", 0x4000, 0xC8
+ non_word_aligned_thumb_func_start SVC_GetCRC16
+SVC_GetCRC16: ; 0x020000C8
+ swi 14
+ bx lr
+ thumb_func_end SVC_GetCRC16
+
+.incbin "baserom.nds", 0x40CC, 0xD2
non_word_aligned_thumb_func_start SVC_Sqrt
SVC_Sqrt: ; 0x0200019E
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s
index 1eda4b12..fb010491 100644
--- a/arm9/asm/unk_02046030.s
+++ b/arm9/asm/unk_02046030.s
@@ -127956,21 +127956,21 @@ FUN_02083BAC: ; 0x02083BAC
add r0, r4, #0x0
mov r1, #0x1b
mov r2, #0x0
- bl FUN_0222F440
+ bl MOD70_0222F440
b _02083C14
_02083BF6:
bl FUN_02031190
ldr r1, _02083C20 ; =0x00002218
ldr r2, [r4, #0x50]
ldr r1, [r4, r1]
- bl FUN_0222F480
+ bl MOD70_0222F480
b _02083C14
_02083C06:
bl FUN_02031190
ldr r1, _02083C20 ; =0x00002218
ldr r2, [r4, #0x50]
ldr r1, [r4, r1]
- bl FUN_0222F480
+ bl MOD70_0222F480
_02083C14:
ldr r0, [r4, #0x50]
add r0, r0, #0x1
@@ -131937,8 +131937,8 @@ FUN_020859C0: ; 0x020859C0
lsl r2, r2, #0x12
bl FUN_0201681C
mov r0, #0x35
- bl FUN_02230F3C
- bl FUN_0222F7E0
+ bl MOD62_02230F3C
+ bl MOD62_0222F7E0
ldr r1, _02085BA0 ; =0x0000042C
add r0, r5, #0x0
mov r2, #0x35
@@ -131947,7 +131947,7 @@ FUN_020859C0: ; 0x020859C0
mov r1, #0x0
add r4, r0, #0x0
bl Call_FillMemWithValue
- bl FUN_0222E2BC
+ bl MOD62_0222E2BC
mov r1, #0x23
lsl r1, r1, #0x4
str r0, [r4, r1]
@@ -132083,8 +132083,8 @@ _02085A9A:
add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
- bl FUN_02230F80
- bl FUN_0222E360
+ bl MOD62_02230F80
+ bl MOD62_0222E360
mov r0, #0x35
bl FUN_02006D98
mov r1, #0x69
@@ -132108,7 +132108,7 @@ _02085A9A:
ldr r0, [r0, #0x0]
ldr r1, [r1, #0x0]
add r2, r5, #0x0
- bl FUN_0222ED34
+ bl MOD62_0222ED34
add r0, r4, #0x0
add r1, r4, #0x0
add r0, #0xe4
@@ -132116,20 +132116,20 @@ _02085A9A:
ldr r0, [r0, #0x0]
ldr r1, [r1, #0x0]
add r2, r5, #0x0
- bl FUN_0222EDBC
+ bl MOD62_0222EDBC
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_0222E7E8
+ bl MOD62_0222E7E8
bl FUN_0201CC08
mov r0, #0x4
bl FUN_0201CC24
add r0, r4, #0x0
- bl FUN_022300E4
+ bl MOD62_022300E4
ldr r0, _02085BAC ; =0x022310CD
add r1, r4, #0x0
bl FUN_02015F10
add r0, r4, #0x0
- bl FUN_0222DD1C
+ bl MOD62_0222DD1C
mov r1, #0x0
mov r0, #0x3b
add r2, r1, #0x0
@@ -132175,7 +132175,7 @@ _02085BE6:
lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl FUN_02006ED4
- bl FUN_0222E3A0
+ bl MOD62_0222E3A0
b _02085C02
_02085BF6:
bl FUN_0200E308
@@ -132292,7 +132292,7 @@ FUN_02085C08: ; 0x02085C08
ldr r0, [r4, r0]
bl FUN_02016A18
add r0, r4, #0x0
- bl FUN_0222DAEC
+ bl MOD62_0222DAEC
mov r0, #0x73
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -132306,17 +132306,17 @@ FUN_02085C08: ; 0x02085C08
ldr r0, [r4, r0]
bl FUN_02014C28
add r0, r4, #0x0
- bl FUN_0222DD38
+ bl MOD62_0222DD38
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_0222E874
+ bl MOD62_0222E874
bl FUN_0201C29C
mov r0, #0x23
lsl r0, r0, #0x4
ldr r0, [r4, r0]
bl FUN_020223BC
mov r0, #0x35
- bl FUN_02230F70
+ bl MOD62_02230F70
add r0, r5, #0x0
bl FUN_0200627C
bl FUN_0201CD04
diff --git a/arm9/files/FILE_10C400.s b/arm9/files/FILE_10C400.s
deleted file mode 100644
index 254620ef..00000000
--- a/arm9/files/FILE_10C400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x10C400, 0x20
-
diff --git a/arm9/files/FILE_10C600.s b/arm9/files/FILE_10C600.s
deleted file mode 100644
index cc95b047..00000000
--- a/arm9/files/FILE_10C600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x10C600, 0x20
-
diff --git a/arm9/files/FILE_10C800.s b/arm9/files/FILE_10C800.s
deleted file mode 100644
index 74fe3237..00000000
--- a/arm9/files/FILE_10C800.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x10C800, 0x20
-
diff --git a/arm9/files/FILE_10CA00.s b/arm9/files/FILE_10CA00.s
deleted file mode 100644
index ecff1f01..00000000
--- a/arm9/files/FILE_10CA00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x10CA00, 0x20
-
diff --git a/arm9/files/FILE_10CC00.s b/arm9/files/FILE_10CC00.s
deleted file mode 100644
index b2a71be1..00000000
--- a/arm9/files/FILE_10CC00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x10CC00, 0x386E0
-
diff --git a/arm9/files/FILE_145400.s b/arm9/files/FILE_145400.s
deleted file mode 100644
index 69b7e8af..00000000
--- a/arm9/files/FILE_145400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x145400, 0x261A0
-
diff --git a/arm9/files/FILE_16B600.s b/arm9/files/FILE_16B600.s
deleted file mode 100644
index a6fe3459..00000000
--- a/arm9/files/FILE_16B600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x16B600, 0x18D80
-
diff --git a/arm9/files/FILE_184400.s b/arm9/files/FILE_184400.s
deleted file mode 100644
index ebfbae38..00000000
--- a/arm9/files/FILE_184400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x184400, 0x32E0
-
diff --git a/arm9/files/FILE_187800.s b/arm9/files/FILE_187800.s
deleted file mode 100644
index dc6a9524..00000000
--- a/arm9/files/FILE_187800.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x187800, 0x1B760
-
diff --git a/arm9/files/FILE_1A3000.s b/arm9/files/FILE_1A3000.s
deleted file mode 100644
index e9931349..00000000
--- a/arm9/files/FILE_1A3000.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x1A3000, 0xA1A0
-
diff --git a/arm9/files/FILE_1AD200.s b/arm9/files/FILE_1AD200.s
deleted file mode 100644
index ab9aa578..00000000
--- a/arm9/files/FILE_1AD200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x1AD200, 0x20
-
diff --git a/arm9/files/FILE_1AD400.s b/arm9/files/FILE_1AD400.s
deleted file mode 100644
index f4cbb321..00000000
--- a/arm9/files/FILE_1AD400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x1AD400, 0x329E0
-
diff --git a/arm9/files/FILE_1DFE00.s b/arm9/files/FILE_1DFE00.s
deleted file mode 100644
index edd9bbad..00000000
--- a/arm9/files/FILE_1DFE00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x1DFE00, 0x19260
-
diff --git a/arm9/files/FILE_1F9200.s b/arm9/files/FILE_1F9200.s
deleted file mode 100644
index 4cc1228a..00000000
--- a/arm9/files/FILE_1F9200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x1F9200, 0x2EBE0
-
diff --git a/arm9/files/FILE_227E00.s b/arm9/files/FILE_227E00.s
deleted file mode 100644
index 103ad10a..00000000
--- a/arm9/files/FILE_227E00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x227E00, 0xF520
-
diff --git a/arm9/files/FILE_237400.s b/arm9/files/FILE_237400.s
deleted file mode 100644
index a912c8e4..00000000
--- a/arm9/files/FILE_237400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x237400, 0x4680
-
diff --git a/arm9/files/FILE_23BC00.s b/arm9/files/FILE_23BC00.s
deleted file mode 100644
index ee3f7e21..00000000
--- a/arm9/files/FILE_23BC00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x23BC00, 0x28500
-
diff --git a/arm9/files/FILE_264200.s b/arm9/files/FILE_264200.s
deleted file mode 100644
index d4a20793..00000000
--- a/arm9/files/FILE_264200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x264200, 0x6E80
-
diff --git a/arm9/files/FILE_26B200.s b/arm9/files/FILE_26B200.s
deleted file mode 100644
index 66491b3a..00000000
--- a/arm9/files/FILE_26B200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x26B200, 0x17CE0
-
diff --git a/arm9/files/FILE_283000.s b/arm9/files/FILE_283000.s
deleted file mode 100644
index 09f585cf..00000000
--- a/arm9/files/FILE_283000.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x283000, 0x100
-
diff --git a/arm9/files/FILE_283200.s b/arm9/files/FILE_283200.s
deleted file mode 100644
index 68180b84..00000000
--- a/arm9/files/FILE_283200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x283200, 0x2400
-
diff --git a/arm9/files/FILE_285600.s b/arm9/files/FILE_285600.s
deleted file mode 100644
index ca6a17ed..00000000
--- a/arm9/files/FILE_285600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x285600, 0x5C0
-
diff --git a/arm9/files/FILE_285C00.s b/arm9/files/FILE_285C00.s
deleted file mode 100644
index 62f45299..00000000
--- a/arm9/files/FILE_285C00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x285C00, 0xF00
-
diff --git a/arm9/files/FILE_286C00.s b/arm9/files/FILE_286C00.s
deleted file mode 100644
index 65aaf12c..00000000
--- a/arm9/files/FILE_286C00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x286C00, 0x1900
-
diff --git a/arm9/files/FILE_288600.s b/arm9/files/FILE_288600.s
deleted file mode 100644
index 57c96796..00000000
--- a/arm9/files/FILE_288600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x288600, 0x9A0
-
diff --git a/arm9/files/FILE_289000.s b/arm9/files/FILE_289000.s
deleted file mode 100644
index eeffd74a..00000000
--- a/arm9/files/FILE_289000.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x289000, 0x560
-
diff --git a/arm9/files/FILE_289600.s b/arm9/files/FILE_289600.s
deleted file mode 100644
index 2a60cc62..00000000
--- a/arm9/files/FILE_289600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x289600, 0x800
-
diff --git a/arm9/files/FILE_289E00.s b/arm9/files/FILE_289E00.s
deleted file mode 100644
index f133baff..00000000
--- a/arm9/files/FILE_289E00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x289E00, 0xBA0
-
diff --git a/arm9/files/FILE_28AA00.s b/arm9/files/FILE_28AA00.s
deleted file mode 100644
index 4fa54cf0..00000000
--- a/arm9/files/FILE_28AA00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x28AA00, 0x1780
-
diff --git a/arm9/files/FILE_28C200.s b/arm9/files/FILE_28C200.s
deleted file mode 100644
index ae636e3f..00000000
--- a/arm9/files/FILE_28C200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x28C200, 0x900
-
diff --git a/arm9/files/FILE_28CC00.s b/arm9/files/FILE_28CC00.s
deleted file mode 100644
index 1382f7cf..00000000
--- a/arm9/files/FILE_28CC00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x28CC00, 0x600
-
diff --git a/arm9/files/FILE_28D200.s b/arm9/files/FILE_28D200.s
deleted file mode 100644
index 8639f01a..00000000
--- a/arm9/files/FILE_28D200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x28D200, 0x600
-
diff --git a/arm9/files/FILE_28D800.s b/arm9/files/FILE_28D800.s
deleted file mode 100644
index 01333fec..00000000
--- a/arm9/files/FILE_28D800.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x28D800, 0x4A0
-
diff --git a/arm9/files/FILE_28DE00.s b/arm9/files/FILE_28DE00.s
deleted file mode 100644
index d75cd7de..00000000
--- a/arm9/files/FILE_28DE00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x28DE00, 0x320
-
diff --git a/arm9/files/FILE_28E200.s b/arm9/files/FILE_28E200.s
deleted file mode 100644
index 78a01f74..00000000
--- a/arm9/files/FILE_28E200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x28E200, 0x4C0
-
diff --git a/arm9/files/FILE_28E800.s b/arm9/files/FILE_28E800.s
deleted file mode 100644
index 37f22bb0..00000000
--- a/arm9/files/FILE_28E800.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x28E800, 0x9A0
-
diff --git a/arm9/files/FILE_28F200.s b/arm9/files/FILE_28F200.s
deleted file mode 100644
index 7fbec89b..00000000
--- a/arm9/files/FILE_28F200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x28F200, 0xCC0
-
diff --git a/arm9/files/FILE_290000.s b/arm9/files/FILE_290000.s
deleted file mode 100644
index 63a6e035..00000000
--- a/arm9/files/FILE_290000.s
+++ /dev/null
@@ -1,5 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x290000, 0x560
- .section .bss
- .space 0x20
diff --git a/arm9/files/FILE_290600.s b/arm9/files/FILE_290600.s
deleted file mode 100644
index 35fec2fd..00000000
--- a/arm9/files/FILE_290600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x290600, 0xB40
-
diff --git a/arm9/files/FILE_291200.s b/arm9/files/FILE_291200.s
deleted file mode 100644
index 9055004d..00000000
--- a/arm9/files/FILE_291200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x291200, 0xCC0
-
diff --git a/arm9/files/FILE_292000.s b/arm9/files/FILE_292000.s
deleted file mode 100644
index 27028058..00000000
--- a/arm9/files/FILE_292000.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x292000, 0xC60
-
diff --git a/arm9/files/FILE_292E00.s b/arm9/files/FILE_292E00.s
deleted file mode 100644
index f0c68d4e..00000000
--- a/arm9/files/FILE_292E00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x292E00, 0x1140
-
diff --git a/arm9/files/FILE_294000.s b/arm9/files/FILE_294000.s
deleted file mode 100644
index 920669f6..00000000
--- a/arm9/files/FILE_294000.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x294000, 0x900
-
diff --git a/arm9/files/FILE_294A00.s b/arm9/files/FILE_294A00.s
deleted file mode 100644
index ce644972..00000000
--- a/arm9/files/FILE_294A00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x294A00, 0x9C0
-
diff --git a/arm9/files/FILE_295400.s b/arm9/files/FILE_295400.s
deleted file mode 100644
index 7bc87c21..00000000
--- a/arm9/files/FILE_295400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x295400, 0x4A0
-
diff --git a/arm9/files/FILE_295A00.s b/arm9/files/FILE_295A00.s
deleted file mode 100644
index 25378684..00000000
--- a/arm9/files/FILE_295A00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x295A00, 0x940
-
diff --git a/arm9/files/FILE_296400.s b/arm9/files/FILE_296400.s
deleted file mode 100644
index 1f9defa1..00000000
--- a/arm9/files/FILE_296400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x296400, 0x320
-
diff --git a/arm9/files/FILE_296800.s b/arm9/files/FILE_296800.s
deleted file mode 100644
index 256bd99d..00000000
--- a/arm9/files/FILE_296800.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x296800, 0xCA0
-
diff --git a/arm9/files/FILE_297600.s b/arm9/files/FILE_297600.s
deleted file mode 100644
index 664db335..00000000
--- a/arm9/files/FILE_297600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x297600, 0x8A0
-
diff --git a/arm9/files/FILE_298000.s b/arm9/files/FILE_298000.s
deleted file mode 100644
index b7181b03..00000000
--- a/arm9/files/FILE_298000.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x298000, 0x600
-
diff --git a/arm9/files/FILE_298600.s b/arm9/files/FILE_298600.s
deleted file mode 100644
index 2a12d4fc..00000000
--- a/arm9/files/FILE_298600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x298600, 0x320
-
diff --git a/arm9/files/FILE_298A00.s b/arm9/files/FILE_298A00.s
deleted file mode 100644
index 796aa1a3..00000000
--- a/arm9/files/FILE_298A00.s
+++ /dev/null
@@ -1,5 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x298A00, 0xFC0
- .section .bss
- .space 0x20
diff --git a/arm9/files/FILE_299A00.s b/arm9/files/FILE_299A00.s
deleted file mode 100644
index 07724718..00000000
--- a/arm9/files/FILE_299A00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x299A00, 0x400
-
diff --git a/arm9/files/FILE_299E00.s b/arm9/files/FILE_299E00.s
deleted file mode 100644
index 4de78184..00000000
--- a/arm9/files/FILE_299E00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x299E00, 0x2480
-
diff --git a/arm9/files/FILE_29C400.s b/arm9/files/FILE_29C400.s
deleted file mode 100644
index 51f17874..00000000
--- a/arm9/files/FILE_29C400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x29C400, 0x2380
-
diff --git a/arm9/files/FILE_29E800.s b/arm9/files/FILE_29E800.s
deleted file mode 100644
index 658eb523..00000000
--- a/arm9/files/FILE_29E800.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x29E800, 0x3040
-
diff --git a/arm9/files/FILE_2A1A00.s b/arm9/files/FILE_2A1A00.s
deleted file mode 100644
index f1bae30a..00000000
--- a/arm9/files/FILE_2A1A00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2A1A00, 0x47A0
-
diff --git a/arm9/files/FILE_2A6200.s b/arm9/files/FILE_2A6200.s
deleted file mode 100644
index 868864db..00000000
--- a/arm9/files/FILE_2A6200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2A6200, 0x2540
-
diff --git a/arm9/files/FILE_2A8800.s b/arm9/files/FILE_2A8800.s
deleted file mode 100644
index 5c379955..00000000
--- a/arm9/files/FILE_2A8800.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2A8800, 0x15A0
-
diff --git a/arm9/files/FILE_2A9E00.s b/arm9/files/FILE_2A9E00.s
deleted file mode 100644
index e89790e3..00000000
--- a/arm9/files/FILE_2A9E00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2A9E00, 0x2C20
-
diff --git a/arm9/files/FILE_2ACC00.s b/arm9/files/FILE_2ACC00.s
deleted file mode 100644
index 1b79ca62..00000000
--- a/arm9/files/FILE_2ACC00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2ACC00, 0xD00
-
diff --git a/arm9/files/FILE_2ADA00.s b/arm9/files/FILE_2ADA00.s
deleted file mode 100644
index 820b4821..00000000
--- a/arm9/files/FILE_2ADA00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2ADA00, 0x1080
-
diff --git a/arm9/files/FILE_2AEC00.s b/arm9/files/FILE_2AEC00.s
deleted file mode 100644
index 0a0062ff..00000000
--- a/arm9/files/FILE_2AEC00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2AEC00, 0x3DE0
-
diff --git a/arm9/files/FILE_2B2A00.s b/arm9/files/FILE_2B2A00.s
deleted file mode 100644
index c7542e17..00000000
--- a/arm9/files/FILE_2B2A00.s
+++ /dev/null
@@ -1,6 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2B2A00, 0x4AC0
- .section .bss
- .space 0x20
-
diff --git a/arm9/files/FILE_2B7600.s b/arm9/files/FILE_2B7600.s
deleted file mode 100644
index f0f81a80..00000000
--- a/arm9/files/FILE_2B7600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2B7600, 0x1C40
-
diff --git a/arm9/files/FILE_2B9400.s b/arm9/files/FILE_2B9400.s
deleted file mode 100644
index e7245019..00000000
--- a/arm9/files/FILE_2B9400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2B9400, 0x3000
-
diff --git a/arm9/files/FILE_2BC400.s b/arm9/files/FILE_2BC400.s
deleted file mode 100644
index eb62b3a8..00000000
--- a/arm9/files/FILE_2BC400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2BC400, 0x2660
-
diff --git a/arm9/files/FILE_2BEC00.s b/arm9/files/FILE_2BEC00.s
deleted file mode 100644
index 8042a682..00000000
--- a/arm9/files/FILE_2BEC00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2BEC00, 0x2440
-
diff --git a/arm9/files/FILE_2C1200.s b/arm9/files/FILE_2C1200.s
deleted file mode 100644
index 332f0c01..00000000
--- a/arm9/files/FILE_2C1200.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2C1200, 0x1600
-
diff --git a/arm9/files/FILE_2C2800.s b/arm9/files/FILE_2C2800.s
deleted file mode 100644
index 6e38ff10..00000000
--- a/arm9/files/FILE_2C2800.s
+++ /dev/null
@@ -1,6 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2C2800, 0x23A0
- .section .bss
- .space 0x20
-
diff --git a/arm9/files/FILE_2C4C00.s b/arm9/files/FILE_2C4C00.s
deleted file mode 100644
index 6764e3f8..00000000
--- a/arm9/files/FILE_2C4C00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2C4C00, 0xE20
-
diff --git a/arm9/files/FILE_2C5C00.s b/arm9/files/FILE_2C5C00.s
deleted file mode 100644
index d98bfcf3..00000000
--- a/arm9/files/FILE_2C5C00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2C5C00, 0x3EC0
-
diff --git a/arm9/files/FILE_2C9C00.s b/arm9/files/FILE_2C9C00.s
deleted file mode 100644
index 77531a9c..00000000
--- a/arm9/files/FILE_2C9C00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2C9C00, 0x20
-
diff --git a/arm9/files/FILE_2C9E00.s b/arm9/files/FILE_2C9E00.s
deleted file mode 100644
index 1da6375d..00000000
--- a/arm9/files/FILE_2C9E00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2C9E00, 0x4AE0
-
diff --git a/arm9/files/FILE_2CEA00.s b/arm9/files/FILE_2CEA00.s
deleted file mode 100644
index f1e5beab..00000000
--- a/arm9/files/FILE_2CEA00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2CEA00, 0x1220
-
diff --git a/arm9/files/FILE_2CFE00.s b/arm9/files/FILE_2CFE00.s
deleted file mode 100644
index ae6d4e43..00000000
--- a/arm9/files/FILE_2CFE00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2CFE00, 0x5DE0
-
diff --git a/arm9/files/FILE_2D5C00.s b/arm9/files/FILE_2D5C00.s
deleted file mode 100644
index 250d2a37..00000000
--- a/arm9/files/FILE_2D5C00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2D5C00, 0x1E20
-
diff --git a/arm9/files/FILE_2D7C00.s b/arm9/files/FILE_2D7C00.s
deleted file mode 100644
index 293a4962..00000000
--- a/arm9/files/FILE_2D7C00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2D7C00, 0x1BE0
-
diff --git a/arm9/files/FILE_2D9800.s b/arm9/files/FILE_2D9800.s
deleted file mode 100644
index 0c21e6e4..00000000
--- a/arm9/files/FILE_2D9800.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2D9800, 0x460
-
diff --git a/arm9/files/FILE_2D9E00.s b/arm9/files/FILE_2D9E00.s
deleted file mode 100644
index a358769d..00000000
--- a/arm9/files/FILE_2D9E00.s
+++ /dev/null
@@ -1,5 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2D9E00, 0x52C0
- .section .bss
- .space 0x40
diff --git a/arm9/files/FILE_2DF200.s b/arm9/files/FILE_2DF200.s
deleted file mode 100644
index 93f5cfda..00000000
--- a/arm9/files/FILE_2DF200.s
+++ /dev/null
@@ -1,6 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2DF200, 0xA720
- .section .bss
- .space 0x160
-
diff --git a/arm9/files/FILE_2E9A00.s b/arm9/files/FILE_2E9A00.s
deleted file mode 100644
index 1b03c961..00000000
--- a/arm9/files/FILE_2E9A00.s
+++ /dev/null
@@ -1,5 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2E9A00, 0x5580
- .section .bss
- .space 0xa0
diff --git a/arm9/files/FILE_2EF000.s b/arm9/files/FILE_2EF000.s
deleted file mode 100644
index e29ca1e0..00000000
--- a/arm9/files/FILE_2EF000.s
+++ /dev/null
@@ -1,6 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2EF000, 0x2540
- .section .bss
- .space 0x120
-
diff --git a/arm9/files/FILE_2F1600.s b/arm9/files/FILE_2F1600.s
deleted file mode 100644
index 7669a577..00000000
--- a/arm9/files/FILE_2F1600.s
+++ /dev/null
@@ -1,5 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2F1600, 0xE2A0
- .section .bss
- .space 0x1980
diff --git a/arm9/files/FILE_2FFA00.s b/arm9/files/FILE_2FFA00.s
deleted file mode 100644
index 9e8819b8..00000000
--- a/arm9/files/FILE_2FFA00.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x2FFA00, 0x3920
-
diff --git a/arm9/files/FILE_303400.s b/arm9/files/FILE_303400.s
deleted file mode 100644
index 52f17ff8..00000000
--- a/arm9/files/FILE_303400.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x303400, 0x9100
-
diff --git a/arm9/files/FILE_30C600.s b/arm9/files/FILE_30C600.s
deleted file mode 100644
index faf88157..00000000
--- a/arm9/files/FILE_30C600.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .include "asm/macros.inc"
- .section .text
- .incbin "baserom.nds", 0x30C600, 0x820
-
diff --git a/arm9/global.inc b/arm9/global.inc
index a9bbc871..e418ef78 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -3011,38 +3011,38 @@
.extern MOD05_021F61DC
.extern MOD05_021F61E8
.extern MOD07_02211E60
-.extern FUN_02213B08
-.extern FUN_02213D80
-.extern FUN_02213DBC
-.extern FUN_02213E24
+.extern MOD79_02213B08
+.extern MOD79_02213D80
+.extern MOD79_02213DBC
+.extern MOD79_02213E24
.extern MOD11_0222D5C0
-.extern FUN_0222DAEC
-.extern FUN_0222DD1C
-.extern FUN_0222DD38
-.extern FUN_0222E2BC
-.extern FUN_0222E360
-.extern FUN_0222E3A0
-.extern FUN_0222E7E8
-.extern FUN_0222E874
-.extern FUN_0222EC60
-.extern FUN_0222ED34
-.extern FUN_0222EDBC
-.extern FUN_0222F440
-.extern FUN_0222F480
-.extern FUN_0222F7E0
+.extern MOD62_0222DAEC
+.extern MOD62_0222DD1C
+.extern MOD62_0222DD38
+.extern MOD62_0222E2BC
+.extern MOD62_0222E360
+.extern MOD62_0222E3A0
+.extern MOD62_0222E7E8
+.extern MOD62_0222E874
+.extern MOD69_0222EC60
+.extern MOD62_0222ED34
+.extern MOD62_0222EDBC
+.extern MOD70_0222F440
+.extern MOD70_0222F480
+.extern MOD62_0222F7E0
.extern MOD12_0222F990
.extern MOD11_022300D4
.extern MOD11_022300DC
-.extern FUN_022300E4
+.extern MOD62_022300E4
.extern MOD11_022300E8
.extern MOD11_022300F4
.extern MOD11_02230100
.extern MOD11_0223010C
.extern MOD11_02230118
.extern MOD11_02230124
-.extern FUN_02230F3C
-.extern FUN_02230F70
-.extern FUN_02230F80
+.extern MOD62_02230F3C
+.extern MOD62_02230F70
+.extern MOD62_02230F80
.extern MOD11_02231344
.extern MOD11_02231350
.extern MOD11_0223135C
@@ -5801,6 +5801,175 @@
.extern MOD04_021D861C
.extern MOD04_021D8640
.extern MOD04_021D8678
+.extern FUN_02029B08
+.extern MOD04_021EB550
+.extern MOD04_021DD904
+.extern MOD04_021DD944
+.extern MOD04_021EB3B8
+.extern MOD04_021EB524
+.extern MOD04_021EB59C
+.extern MOD04_021EF820
+.extern strncat
+.extern fclose
+.extern fread
+.extern fseek
+.extern ftell
+.extern MOD04_021DD82C
+.extern MOD04_021DD844
+.extern MOD04_021DD860
+.extern MOD04_021EEFA8
+.extern MOD04_021EEFFC
+.extern MOD04_021EF06C
+.extern MOD04_021EF074
+.extern MOD04_021EF0E4
+.extern MOD04_021EFB28
+.extern MOD04_021EFB38
+.extern MOD04_021EFC24
+.extern MOD04_021EFC78
+.extern MOD04_021EFCE4
+.extern MOD04_021EFD80
+.extern MOD04_021EFD9C
+.extern MOD04_021EFDB8
+.extern MOD04_021EFF5C
+.extern MOD04_021F0130
+.extern MOD04_021F017C
+.extern MOD04_021F0208
+.extern MOD04_021F024C
+.extern MOD04_021F0250
+.extern MOD04_021F025C
+.extern rewind
+.extern strspn
+.extern FUN_0200B84C
+.extern FUN_02022840
+.extern FUN_02022854
+.extern FUN_02023830
+.extern FUN_02023834
+.extern FUN_02023A6C
+.extern FUN_02023A74
+.extern FUN_0202952C
+.extern FUN_0202ABDC
+.extern FUN_0202ABE4
+.extern FUN_0202ABEC
+.extern FUN_0202ABF8
+.extern FUN_0202AC08
+.extern FUN_0202AC10
+.extern FUN_0202AC18
+.extern FUN_0202E4F0
+.extern FUN_02033288
+.extern FUN_020332DC
+.extern FUN_020335E0
+.extern FUN_020337C8
+.extern FUN_02033EEC
+.extern FUN_0206B384
+.extern FUN_020888BC
+.extern FUN_020888CC
+.extern FUN_0200CA7C
+.extern FUN_02033F04
+.extern FUN_02068E1C
+.extern FUN_0202A524
+.extern FUN_0202A60C
+.extern FUN_0202A6B4
+.extern FUN_0202A754
+.extern FUN_0202A784
+.extern FUN_0202A838
+.extern MOD79_022122E4
+.extern MOD79_02212308
+.extern MOD79_022123A8
+.extern MOD79_02212474
+.extern MOD79_02212480
+.extern FUN_02015D88
+.extern FUN_02016444
+.extern FUN_02016454
+.extern FUN_0201AB1C
+.extern FUN_0201AB20
+.extern FUN_020224D8
+.extern FUN_0202251C
+.extern FUN_02023820
+.extern FUN_0202AC28
+.extern FUN_0202AC64
+.extern FUN_0202AC98
+.extern FUN_0202AD08
+.extern FUN_0202ADC8
+.extern FUN_0202ADF0
+.extern FUN_0202AE0C
+.extern FUN_0202AE4C
+.extern FUN_0202AE70
+.extern FUN_0202AE90
+.extern FUN_0202AEF4
+.extern FUN_0202AF24
+.extern FUN_0202AF50
+.extern FUN_0202AF60
+.extern FUN_0202BF7C
+.extern FUN_0202BF90
+.extern FUN_0202C028
+.extern FUN_0202C060
+.extern FUN_0202C094
+.extern FUN_0202C0B8
+.extern FUN_0202F10C
+.extern FUN_0202F124
+.extern FUN_02031C74
+.extern FUN_02031CA8
+.extern FUN_02032D44
+.extern FUN_02032D80
+.extern FUN_02032D9C
+.extern FUN_02033310
+.extern FUN_02033364
+.extern FUN_02068800
+.extern FUN_0206E6D8
+.extern FUN_02089F24
+.extern SetCustomAllocator
+.extern FUN_02008D04
+.extern FUN_02024DAC
+.extern FUN_020910EC
+.extern FUN_0209521C
+.extern FUN_020952AC
+.extern FUN_02009CDC
+.extern FUN_0201C348
+.extern CTRDG_CpuCopy16
+.extern CTRDG_CpuCopy32
+.extern CTRDG_CpuCopy8
+.extern CTRDG_Enable
+.extern CTRDG_GetAgbGameCode
+.extern CTRDG_GetAgbMakerCode
+.extern CTRDG_IdentifyAgbBackup
+.extern CTRDG_IsAgbCartridge
+.extern CTRDG_Read32
+.extern CTRDG_ReadAgbFlash
+.extern CTRDG_TerminateForPulledOut
+.extern CTRDG_WriteAndVerifyAgbFlashAsync
+.extern SVC_GetCRC16
+.extern MOD04_021DE330
+.extern MOD04_021DDB40
+.extern MOD04_021DDF40
+.extern MOD04_021DE2D0
+.extern MOD04_021DE308
+.extern MOD04_021DE364
+.extern MOD04_021DE3AC
+.extern MOD04_021DE3D0
+.extern MOD04_021DE404
+.extern MOD04_021DE45C
+.extern RTC_ConvertDayToDate
+.extern MOD04_021DD808
+.extern MOD04_021DD984
+.extern MOD04_021DD9DC
+.extern MOD04_021DDF4C
+.extern MOD04_021DE05C
+.extern MOD04_021DE1F8
+.extern MOD56_0221244C
+.extern MOD79_022122E4
+.extern MOD79_02212308
+.extern MOD79_022123A8
+.extern MOD79_02212474
+.extern MOD79_02212480
+.extern FUN_02029B40
+.extern FUN_02029C00
+.extern FUN_02088D1C
+.extern FUN_02088D20
+.extern FUN_02088D4C
+.extern FUN_02088D68
+.extern FUN_02088D84
+.extern FUN_02088DA0
+.extern FUN_02088DBC
.extern FUN_020294F4
.extern FUN_02021C38
.extern FUN_0202822C
diff --git a/arm9/macros.lcf.inc b/arm9/macros.lcf.inc
deleted file mode 100644
index f58c2432..00000000
--- a/arm9/macros.lcf.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-#define OVERLAY_TABLE(module, number) \
-WRITEW number; \
-WRITEW SDK_OVERLAY_##module##_START; \
-WRITEW SDK_OVERLAY_##module##_SIZE; \
-WRITEW SDK_OVERLAY_##module##_BSSSIZE; \
-WRITEW SDK_OVERLAY_##module##_STATIC_INIT_START; \
-WRITEW SDK_OVERLAY_##module##_STATIC_INIT_END; \
-WRITEW number; \
-WRITEW 0;
diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s
index 132857e1..eb42dcb1 100644
--- a/arm9/modules/04/asm/arm_04.s
+++ b/arm9/modules/04/asm/arm_04.s
@@ -6128,6 +6128,9 @@ MOD04_021DE308: ; 0x021DE308
bl MOD04_02207158
add sp, sp, #4
ldmfd sp!, {pc}
+
+ arm_func_start MOD04_021DE330
+MOD04_021DE330: ; 0x021DE330
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
@@ -21204,7 +21207,7 @@ _021EB430:
mov r0, r5
mov r3, r4
mov r1, #0
- bl FUN_02213D80
+ bl MOD79_02213D80
movs r5, r0
bpl _021EB46C
bl MOD04_021EB25C
@@ -21280,10 +21283,13 @@ MOD04_021EB524: ; 0x021EB524
addne sp, sp, #4
movne r0, #0
ldmneia sp!, {pc}
- bl FUN_02213B08
+ bl MOD79_02213B08
mov r0, #1
add sp, sp, #4
ldmfd sp!, {pc}
+
+ arm_func_start MOD04_021EB550
+MOD04_021EB550:
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021EB598 ; =0x02210E44
@@ -21292,7 +21298,7 @@ MOD04_021EB524: ; 0x021EB524
addle sp, sp, #4
movle r0, #1
ldmleia sp!, {pc}
- bl FUN_02213DBC
+ bl MOD79_02213DBC
ldr r0, _021EB598 ; =0x02210E44
ldr r1, [r0]
subs r1, r1, #1
@@ -21310,7 +21316,7 @@ _021EB598: .word 0x02210E44
MOD04_021EB59C: ; 0x021EB59C
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_02213E24
+ bl MOD79_02213E24
ldr r1, _021EB5C4 ; =0x02210E44
mov r0, #1
ldr r2, [r1]
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
index f1e9fefd..6470d422 100644
--- a/arm9/modules/69/asm/module_69.s
+++ b/arm9/modules/69/asm/module_69.s
@@ -586,7 +586,7 @@ _0222DA74:
b _0222DAD4
_0222DA90:
mov r1, #0
- bl FUN_0222EC60
+ bl MOD69_0222EC60
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s
new file mode 100644
index 00000000..45257701
--- /dev/null
+++ b/arm9/modules/76/asm/module_76.s
@@ -0,0 +1,3226 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD76_021D74E0
+MOD76_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #2
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x43
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ mov r1, #0x62
+ add r0, r5, #0
+ lsl r1, r1, #2
+ mov r2, #0x43
+ bl FUN_02006268
+ mov r2, #0x62
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ bl FUN_0200628C
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD76_021D7638
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD76_021D8354
+ mov r0, #0
+ str r0, [sp]
+ ldr r3, _021D7560 ; =0x0001020F
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #1
+ bl MOD76_021D7CC8
+ mov r0, #6
+ mov r1, #1
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xc8
+ bl FUN_02019220
+ add r0, r4, #0
+ bl MOD76_021D8CD4
+ ldr r0, _021D7564 ; =MOD76_021D76E8
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7560: .word 0x0001020F
+_021D7564: .word MOD76_021D76E8
+ thumb_func_end MOD76_021D74E0
+
+ thumb_func_start MOD76_021D7568
+MOD76_021D7568: ; 0x021D7568
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0xc
+ bhi _021D7606
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7584: ; jump table
+ .short _021D759E - _021D7584 - 2 ; case 0
+ .short _021D75A6 - _021D7584 - 2 ; case 1
+ .short _021D75AE - _021D7584 - 2 ; case 2
+ .short _021D75B6 - _021D7584 - 2 ; case 3
+ .short _021D75BE - _021D7584 - 2 ; case 4
+ .short _021D75C6 - _021D7584 - 2 ; case 5
+ .short _021D75CE - _021D7584 - 2 ; case 6
+ .short _021D75D6 - _021D7584 - 2 ; case 7
+ .short _021D75DE - _021D7584 - 2 ; case 8
+ .short _021D75E6 - _021D7584 - 2 ; case 9
+ .short _021D75EA - _021D7584 - 2 ; case 10
+ .short _021D75F2 - _021D7584 - 2 ; case 11
+ .short _021D75FC - _021D7584 - 2 ; case 12
+_021D759E:
+ bl MOD76_021D795C
+ str r0, [r4]
+ b _021D7606
+_021D75A6:
+ bl MOD76_021D7974
+ str r0, [r4]
+ b _021D7606
+_021D75AE:
+ bl MOD76_021D7A94
+ str r0, [r4]
+ b _021D7606
+_021D75B6:
+ bl MOD76_021D7AB4
+ str r0, [r4]
+ b _021D7606
+_021D75BE:
+ bl MOD76_021D7ADC
+ str r0, [r4]
+ b _021D7606
+_021D75C6:
+ bl MOD76_021D7B2C
+ str r0, [r4]
+ b _021D7606
+_021D75CE:
+ bl MOD76_021D7B80
+ str r0, [r4]
+ b _021D7606
+_021D75D6:
+ bl MOD76_021D7B98
+ str r0, [r4]
+ b _021D7606
+_021D75DE:
+ bl MOD76_021D7BC8
+ str r0, [r4]
+ b _021D7606
+_021D75E6:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D75EA:
+ bl MOD76_021D8D44
+ str r0, [r4]
+ b _021D7606
+_021D75F2:
+ bl MOD76_021D8D5C
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D75FC:
+ bl MOD76_021D8DEC
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D7606:
+ add r0, r5, #0
+ bl MOD76_021D882C
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200BC1C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7568
+
+ thumb_func_start MOD76_021D761C
+MOD76_021D761C: ; 0x021D761C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02006278
+ bl MOD76_021D76B8
+ add r0, r4, #0
+ bl FUN_0200627C
+ mov r0, #0x43
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD76_021D761C
+
+ thumb_func_start MOD76_021D7638
+MOD76_021D7638: ; 0x021D7638
+ push {r4, lr}
+ add r4, 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, _021D76AC ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D76B0 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #0x43
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ mov r0, #0
+ mov r1, #0x43
+ bl FUN_02079A70
+ bl MOD76_021D7710
+ ldr r0, [r4, #4]
+ bl MOD76_021D7730
+ add r0, r4, #0
+ bl MOD76_021D7814
+ add r0, r4, #0
+ bl MOD76_021D8C4C
+ add r0, r4, #0
+ bl MOD76_021D7900
+ add r0, r4, #0
+ bl MOD76_021D789C
+ add r0, r4, #0
+ bl MOD76_021D7ECC
+ add r0, r4, #0
+ bl MOD76_021D7BE0
+ ldr r0, _021D76B4 ; =MOD76_021D76E8
+ add r1, r4, #0
+ bl FUN_02015F10
+ pop {r4, pc}
+ .align 2, 0
+_021D76AC: .word 0xFFFFE0FF
+_021D76B0: .word 0x04001000
+_021D76B4: .word MOD76_021D76E8
+ thumb_func_end MOD76_021D7638
+
+ thumb_func_start MOD76_021D76B8
+MOD76_021D76B8: ; 0x021D76B8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD76_021D7FAC
+ add r0, r4, #0
+ bl MOD76_021D78E8
+ ldr r0, [r4, #4]
+ bl MOD76_021D77E4
+ add r0, r4, #0
+ bl MOD76_021D7938
+ add r0, r4, #0
+ bl MOD76_021D87F8
+ bl FUN_0201C29C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D76B8
+
+ thumb_func_start MOD76_021D76E8
+MOD76_021D76E8: ; 0x021D76E8
+ push {r3, lr}
+ ldr r0, [r0, #4]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r3, _021D7708 ; =0x027E0000
+ ldr r1, _021D770C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021D7708: .word 0x027E0000
+_021D770C: .word 0x00003FF8
+ thumb_func_end MOD76_021D76E8
+
+ thumb_func_start MOD76_021D7710
+MOD76_021D7710: ; 0x021D7710
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D772C ; =0x021D8F44
+ add r3, sp, #0
+ mov r2, #5
+_021D771A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D771A
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D772C: .word 0x021D8F44
+ thumb_func_end MOD76_021D7710
+
+ thumb_func_start MOD76_021D7730
+MOD76_021D7730: ; 0x021D7730
+ push {r4, r5, lr}
+ sub sp, #0x64
+ ldr r5, _021D77D4 ; =0x021D8E4C
+ add r3, sp, #0x54
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _021D77D8 ; =0x021D8E88
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #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, _021D77DC ; =0x021D8EC0
+ 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, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D77E0 ; =0x021D8EA4
+ 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, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x43
+ bl FUN_02017F18
+ add sp, #0x64
+ pop {r4, r5, pc}
+ nop
+_021D77D4: .word 0x021D8E4C
+_021D77D8: .word 0x021D8E88
+_021D77DC: .word 0x021D8EC0
+_021D77E0: .word 0x021D8EA4
+ thumb_func_end MOD76_021D7730
+
+ thumb_func_start MOD76_021D77E4
+MOD76_021D77E4: ; 0x021D77E4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x17
+ mov r1, #0
+ bl FUN_0201E6E4
+ 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, #0x43
+ add r1, r4, #0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D77E4
+
+ thumb_func_start MOD76_021D7814
+MOD76_021D7814: ; 0x021D7814
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x43
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x71
+ mov r1, #0xa
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x43
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x71
+ mov r1, #0xb
+ mov r3, #2
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x43
+ str r0, [sp, #4]
+ mov r0, #0x71
+ mov r1, #0xc
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r1, #7
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x43
+ bl FUN_02002EEC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x43
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ mov r2, #1
+ mov r3, #0xc
+ bl FUN_0200CB00
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x43
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #0xd
+ bl FUN_0200CD68
+ add sp, #0x10
+ pop {r4, pc}
+ thumb_func_end MOD76_021D7814
+
+ thumb_func_start MOD76_021D789C
+MOD76_021D789C: ; 0x021D789C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ ldr r4, _021D78E4 ; =0x021D8FC4
+ mov r6, #0
+ add r5, #8
+_021D78A8:
+ ldr r0, [r7, #4]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #0xf
+ blo _021D78A8
+ add r0, r7, #0
+ bl MOD76_021D7DAC
+ add r0, r7, #0
+ add r0, #0xc8
+ mov r1, #0xf
+ bl FUN_02019620
+ add r7, #0xc8
+ add r0, r7, #0
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #0xd
+ bl FUN_0200D0BC
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D78E4: .word 0x021D8FC4
+ thumb_func_end MOD76_021D789C
+
+ thumb_func_start MOD76_021D78E8
+MOD76_021D78E8: ; 0x021D78E8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #8
+_021D78F0:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0xf
+ blo _021D78F0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD76_021D78E8
+
+ thumb_func_start MOD76_021D7900
+MOD76_021D7900: ; 0x021D7900
+ push {r4, lr}
+ ldr r2, _021D7934 ; =0x0000024A
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x43
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r0, #0x43
+ bl FUN_0200AA80
+ add r1, r4, #0
+ add r1, #0xfc
+ str r0, [r1]
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #0x43
+ bl FUN_020219F4
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D7934: .word 0x0000024A
+ thumb_func_end MOD76_021D7900
+
+ thumb_func_start MOD76_021D7938
+MOD76_021D7938: ; 0x021D7938
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ bl FUN_0200AB18
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7938
+
+ thumb_func_start MOD76_021D795C
+MOD76_021D795C: ; 0x021D795C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7970
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+_021D7970:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD76_021D795C
+
+ thumb_func_start MOD76_021D7974
+MOD76_021D7974: ; 0x021D7974
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D7A88 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x30
+ tst r1, r0
+ beq _021D799C
+ ldr r0, _021D7A8C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r2, [r5]
+ mov r0, #1
+ ldrb r1, [r2, #0x14]
+ eor r0, r1
+ strb r0, [r2, #0x14]
+ add r0, r5, #0
+ bl MOD76_021D7BE0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D799C:
+ add r0, #0xd4
+ add r1, sp, #0
+ ldr r0, [r5, r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_02001448
+ mov r0, #0x41
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ ldr r2, [r5]
+ mov r0, #0x41
+ add r1, r2, #0
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, #0x12
+ add r2, #0x10
+ bl FUN_02001448
+ ldr r2, [r5]
+ add r1, sp, #0
+ ldrh r1, [r1, #2]
+ ldrh r2, [r2, #0x12]
+ add r0, r5, #0
+ bl MOD76_021D8AC0
+ ldr r0, [r5]
+ ldrh r1, [r0, #0x10]
+ add r0, sp, #0
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _021D79EE
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #0
+ bl MOD76_021D8C88
+_021D79EE:
+ add r0, r5, #0
+ bl MOD76_021D8CD4
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _021D7A04
+ add r0, r0, #1
+ cmp r4, r0
+ beq _021D7A82
+ b _021D7A38
+_021D7A04:
+ ldr r0, _021D7A8C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r5, #0
+ bl MOD76_021D8D24
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD76_021D853C
+ ldr r0, _021D7A90 ; =0x00000186
+ mov r1, #1
+ strb r1, [r5, r0]
+ mov r1, #3
+ lsl r0, r1, #7
+ str r1, [r5, r0]
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021D7A38:
+ ldr r0, _021D7A8C ; =0x000005DD
+ bl FUN_020054C8
+ ldr r1, [r5]
+ add r0, r5, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r5, #0
+ bl MOD76_021D8D24
+ add r0, r5, #0
+ bl MOD76_021D85E4
+ cmp r0, #4
+ bhs _021D7A6A
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD76_021D853C
+ mov r1, #0
+ b _021D7A74
+_021D7A6A:
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD76_021D853C
+ mov r1, #2
+_021D7A74:
+ ldr r0, _021D7A90 ; =0x00000186
+ strb r1, [r5, r0]
+ mov r1, #3
+ lsl r0, r1, #7
+ str r1, [r5, r0]
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021D7A82:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D7A88: .word 0x021C48B8
+_021D7A8C: .word 0x000005DD
+_021D7A90: .word 0x00000186
+ thumb_func_end MOD76_021D7974
+
+ thumb_func_start MOD76_021D7A94
+MOD76_021D7A94: ; 0x021D7A94
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D7AB0 ; =0x00000185
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D7AAC
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ pop {r4, pc}
+_021D7AAC:
+ mov r0, #2
+ pop {r4, pc}
+ .align 2, 0
+_021D7AB0: .word 0x00000185
+ thumb_func_end MOD76_021D7A94
+
+ thumb_func_start MOD76_021D7AB4
+MOD76_021D7AB4: ; 0x021D7AB4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x43
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ ldr r1, _021D7AD8 ; =0x021D9034
+ mov r2, #1
+ mov r3, #0xc
+ bl FUN_02002198
+ mov r1, #0x43
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #4
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D7AD8: .word 0x021D9034
+ thumb_func_end MOD76_021D7AB4
+
+ thumb_func_start MOD76_021D7ADC
+MOD76_021D7ADC: ; 0x021D7ADC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x43
+ bl FUN_020021AC
+ cmp r0, #0
+ beq _021D7AFA
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D7B0A
+ b _021D7B1A
+_021D7AFA:
+ ldr r1, _021D7B20 ; =0x00000186
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ lsl r2, r1, #3
+ ldr r1, _021D7B24 ; =0x021D8F1C
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+_021D7B0A:
+ ldr r1, _021D7B20 ; =0x00000186
+ add r0, r4, #0
+ ldrb r1, [r4, r1]
+ lsl r2, r1, #3
+ ldr r1, _021D7B28 ; =0x021D8F20
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+_021D7B1A:
+ mov r0, #4
+ pop {r4, pc}
+ nop
+_021D7B20: .word 0x00000186
+_021D7B24: .word 0x021D8F1C
+_021D7B28: .word 0x021D8F20
+ thumb_func_end MOD76_021D7ADC
+
+ thumb_func_start MOD76_021D7B2C
+MOD76_021D7B2C: ; 0x021D7B2C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl MOD76_021D8514
+ str r0, [sp]
+ ldr r1, [r4]
+ add r2, sp, #0
+ ldr r0, [r1]
+ ldrb r1, [r1, #0x17]
+ add r1, #0x36
+ bl FUN_02067830
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, [r4]
+ add r2, sp, #0
+ ldr r0, [r1]
+ ldrb r1, [r1, #0x17]
+ add r1, #0x3e
+ bl FUN_02067830
+ add r0, r4, #0
+ bl MOD76_021D8514
+ mov r1, #0
+ bl FUN_0206AB30
+ str r0, [sp]
+ ldr r1, [r4]
+ add r2, sp, #0
+ ldr r0, [r1]
+ ldrb r1, [r1, #0x17]
+ add r1, #0x3a
+ bl FUN_02067830
+ ldr r0, [r4]
+ mov r1, #0
+ strb r1, [r0, #0x16]
+ mov r0, #8
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD76_021D7B2C
+
+ thumb_func_start MOD76_021D7B80
+MOD76_021D7B80: ; 0x021D7B80
+ push {r4, lr}
+ mov r1, #6
+ add r4, r0, #0
+ bl MOD76_021D853C
+ mov r0, #6
+ mov r1, #5
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7B80
+
+ thumb_func_start MOD76_021D7B98
+MOD76_021D7B98: ; 0x021D7B98
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ ldrb r1, [r1, #0x17]
+ cmp r1, #4
+ bhs _021D7BAE
+ mov r1, #0xa
+ bl MOD76_021D853C
+ mov r1, #4
+ b _021D7BB6
+_021D7BAE:
+ mov r1, #7
+ bl MOD76_021D853C
+ mov r1, #3
+_021D7BB6:
+ ldr r0, _021D7BC4 ; =0x00000186
+ strb r1, [r4, r0]
+ mov r1, #3
+ lsl r0, r1, #7
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ .align 2, 0
+_021D7BC4: .word 0x00000186
+ thumb_func_end MOD76_021D7B98
+
+ thumb_func_start MOD76_021D7BC8
+MOD76_021D7BC8: ; 0x021D7BC8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0x43
+ bl FUN_02079A70
+ mov r0, #6
+ mov r1, #9
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD76_021D7BC8
+
+ thumb_func_start MOD76_021D7BE0
+MOD76_021D7BE0: ; 0x021D7BE0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD76_021D8514
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #0
+ ldr r0, [r5, #4]
+ bne _021D7C3A
+ mov r2, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_0201AEE4
+ add r0, r5, #0
+ add r0, #0x18
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x68
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0xb8
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #8
+ bl FUN_02019220
+ ldr r0, _021D7CC4 ; =0x0000FFFF
+ cmp r4, r0
+ beq _021D7C2E
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD76_021D800C
+ b _021D7CBC
+_021D7C2E:
+ mov r1, #1
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD76_021D800C
+ b _021D7CBC
+_021D7C3A:
+ mov r1, #2
+ add r3, r1, #0
+ mov r2, #0
+ add r3, #0xfe
+ bl FUN_0201AEE4
+ add r0, r5, #0
+ add r0, #8
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x28
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x38
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x48
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x58
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0xa8
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x78
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x88
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x98
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x18
+ bl FUN_02019220
+ ldr r0, _021D7CC4 ; =0x0000FFFF
+ cmp r4, r0
+ beq _021D7CA6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD76_021D81AC
+ b _021D7CB0
+_021D7CA6:
+ mov r1, #1
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD76_021D81AC
+_021D7CB0:
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021D7CBC:
+ add r0, r5, #0
+ bl MOD76_021D8A58
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7CC4: .word 0x0000FFFF
+ thumb_func_end MOD76_021D7BE0
+
+ thumb_func_start MOD76_021D7CC8
+MOD76_021D7CC8: ; 0x021D7CC8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [sp, #0x28]
+ add r4, r1, #0
+ add r7, r3, #0
+ str r2, [sp, #0x10]
+ cmp r0, #0
+ beq _021D7CE4
+ cmp r0, #1
+ beq _021D7CE8
+ cmp r0, #2
+ beq _021D7D12
+ b _021D7D3E
+_021D7CE4:
+ mov r3, #0
+ b _021D7D3E
+_021D7CE8:
+ mov r1, #1
+ lsl r1, r1, #8
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ add r1, r5, #0
+ lsr r6, r0, #0x18
+ add r1, #8
+ lsl r0, r4, #4
+ add r0, r1, r0
+ bl FUN_0201AB0C
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x18
+ sub r0, r0, r6
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ b _021D7D3E
+_021D7D12:
+ mov r1, #1
+ lsl r1, r1, #8
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ lsl r0, r0, #0x18
+ add r1, r5, #0
+ lsr r6, r0, #0x18
+ add r1, #8
+ lsl r0, r4, #4
+ add r0, r1, r0
+ bl FUN_0201AB0C
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x18
+ sub r1, r0, r6
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ lsl r0, r0, #0x17
+ lsr r3, r0, #0x18
+_021D7D3E:
+ mov r0, #0
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r7, [sp, #8]
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r2, r2, #1
+ add r1, #8
+ lsl r0, r4, #4
+ add r0, r1, r0
+ ldr r1, [sp, #0x10]
+ ldr r2, [r5, r2]
+ bl FUN_0201BDE0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD76_021D7CC8
+
+ thumb_func_start MOD76_021D7D60
+MOD76_021D7D60: ; 0x021D7D60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, sp, #0x10
+ ldrb r0, [r0, #0x10]
+ mov r1, #0
+ add r2, r6, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ add r3, r7, #0
+ bl FUN_0200AD38
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0xfc
+ lsl r1, r1, #8
+ ldr r0, [r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7D60
+
+ thumb_func_start MOD76_021D7DAC
+MOD76_021D7DAC: ; 0x021D7DAC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r1, #0x1a
+ add r2, r1, #0
+ add r4, r0, #0
+ add r0, #0xf8
+ add r2, #0xe6
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r0, #2
+ mov r1, #0
+ str r0, [sp]
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD76_021D7CC8
+ mov r1, #0x1c
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe4
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD76_021D7CC8
+ mov r1, #0x16
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xea
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #2
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ mov r1, #0x17
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe9
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #3
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ mov r1, #0x18
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe8
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #4
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ mov r1, #0x19
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe7
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D7EA0 ; =0x00010200
+ add r0, r4, #0
+ mov r1, #5
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ mov r1, #0x1b
+ add r0, r4, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xe5
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D7E9C ; =0x000F0E00
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl MOD76_021D7CC8
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D7E9C: .word 0x000F0E00
+_021D7EA0: .word 0x00010200
+ thumb_func_end MOD76_021D7DAC
+
+ thumb_func_start MOD76_021D7EA4
+MOD76_021D7EA4: ; 0x021D7EA4
+ push {r3, r4}
+ ldr r0, [r0]
+ ldr r1, _021D7EC8 ; =0x0000FFFF
+ ldr r4, [r0, #0xc]
+ mov r0, #1
+ mov r3, #0
+ lsl r0, r0, #8
+_021D7EB2:
+ ldrh r2, [r4]
+ cmp r2, r1
+ beq _021D7EC0
+ add r3, r3, #1
+ add r4, r4, #2
+ cmp r3, r0
+ blo _021D7EB2
+_021D7EC0:
+ add r0, r3, #0
+ pop {r3, r4}
+ bx lr
+ nop
+_021D7EC8: .word 0x0000FFFF
+ thumb_func_end MOD76_021D7EA4
+
+ thumb_func_start MOD76_021D7ECC
+MOD76_021D7ECC: ; 0x021D7ECC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ bl MOD76_021D7EA4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r0, #1
+ mov r0, #0x61
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ ldrb r0, [r5, r0]
+ mov r1, #0x43
+ bl FUN_02012838
+ mov r1, #0x42
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r2, #0x93
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #0x43
+ bl FUN_0200A86C
+ add r7, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ mov r4, #0
+ cmp r0, #0
+ bls _021D7F50
+ add r6, r4, #0
+_021D7F0E:
+ ldr r0, [r5]
+ ldr r0, [r0, #0xc]
+ ldrh r2, [r0, r6]
+ ldr r0, _021D7FA4 ; =0x0000FFFF
+ cmp r2, r0
+ beq _021D7F2A
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ add r3, r2, #0
+ bl FUN_02012880
+ b _021D7F42
+_021D7F2A:
+ mov r0, #0x42
+ add r1, r5, #0
+ lsl r0, r0, #2
+ add r1, #0xf8
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r0, [r5, r0]
+ ldr r1, [r1]
+ sub r3, #0x22
+ bl FUN_02012880
+ b _021D7F50
+_021D7F42:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ add r4, r4, #1
+ add r6, r6, #2
+ cmp r4, r0
+ blo _021D7F0E
+_021D7F50:
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ ldr r4, _021D7FA8 ; =0x021D8EFC
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ add r0, #0x7c
+ str r1, [sp]
+ add r1, r5, #0
+ add r1, #0xd8
+ str r1, [sp, #0xc]
+ ldrb r1, [r5, r0]
+ add r0, sp, #0
+ strh r1, [r0, #0x10]
+ str r5, [sp, #0x1c]
+ ldr r3, [r5]
+ add r0, r2, #0
+ ldrh r1, [r3, #0x12]
+ ldrh r2, [r3, #0x10]
+ mov r3, #0x43
+ bl FUN_020010A8
+ mov r1, #0x41
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r5, #0xd8
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7FA4: .word 0x0000FFFF
+_021D7FA8: .word 0x021D8EFC
+ thumb_func_end MOD76_021D7ECC
+
+ thumb_func_start MOD76_021D7FAC
+MOD76_021D7FAC: ; 0x021D7FAC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4]
+ mov r0, #0x41
+ add r1, r2, #0
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, #0x12
+ add r2, #0x10
+ bl FUN_02001300
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D7FAC
+
+ thumb_func_start MOD76_021D7FD0
+MOD76_021D7FD0: ; 0x021D7FD0
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x13
+ add r6, r2, #0
+ bl FUN_02001470
+ add r4, r0, #0
+ cmp r6, #1
+ beq _021D7FE8
+ ldr r0, _021D8004 ; =0x000005DD
+ bl FUN_020054C8
+_021D7FE8:
+ ldr r0, [r4]
+ ldrb r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021D7FFA
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD76_021D800C
+ pop {r4, r5, r6, pc}
+_021D7FFA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD76_021D81AC
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8004: .word 0x000005DD
+ thumb_func_end MOD76_021D7FD0
+
+ thumb_func_start MOD76_021D8008
+MOD76_021D8008: ; 0x021D8008
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD76_021D8008
+
+ thumb_func_start MOD76_021D800C
+MOD76_021D800C: ; 0x021D800C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0xa8
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x78
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x88
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x98
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _021D8050
+ b _021D815E
+_021D8050:
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_0206AB18
+ add r2, r0, #0
+ cmp r2, #1
+ bhi _021D8072
+ mov r1, #0x21
+ add r0, r5, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xdf
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ b _021D8080
+_021D8072:
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x1d
+ mov r3, #3
+ bl MOD76_021D7D60
+_021D8080:
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D81A4 ; =0x00010200
+ add r0, r5, #0
+ mov r1, #7
+ mov r2, #0
+ bl MOD76_021D7CC8
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_0206AB18
+ add r2, r0, #0
+ bne _021D80B0
+ mov r1, #0x21
+ add r0, r5, #0
+ add r2, r1, #0
+ add r0, #0xf8
+ add r2, #0xdf
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ b _021D80BE
+_021D80B0:
+ mov r0, #1
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x1e
+ mov r3, #3
+ bl MOD76_021D7D60
+_021D80BE:
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D81A4 ; =0x00010200
+ add r0, r5, #0
+ mov r1, #8
+ mov r2, #0
+ bl MOD76_021D7CC8
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0
+ bl FUN_0206AB30
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x1f
+ mov r3, #2
+ bl MOD76_021D7D60
+ mov r0, #2
+ str r0, [sp]
+ ldr r3, _021D81A4 ; =0x00010200
+ add r0, r5, #0
+ mov r1, #9
+ mov r2, #0
+ bl MOD76_021D7CC8
+ ldr r2, _021D81A8 ; =0x0000024B
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x43
+ bl FUN_0200A86C
+ mov r2, #1
+ lsl r2, r2, #8
+ ldr r2, [r5, r2]
+ add r1, r4, #0
+ add r6, r0, #0
+ bl FUN_0200A8E0
+ mov r2, #0
+ ldr r3, _021D81A4 ; =0x00010200
+ add r0, r5, #0
+ mov r1, #0xa
+ str r2, [sp]
+ bl MOD76_021D7CC8
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD76_021D8BF8
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0x28
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x38
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x48
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x58
+ bl FUN_02019220
+ b _021D817E
+_021D815E:
+ add r0, r5, #0
+ add r0, #0x28
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x38
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x48
+ bl FUN_0201958C
+ add r0, r5, #0
+ add r0, #0x58
+ bl FUN_0201958C
+_021D817E:
+ add r0, r5, #0
+ add r0, #0xa8
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x78
+ bl FUN_02019220
+ add r0, r5, #0
+ add r0, #0x88
+ bl FUN_02019220
+ add r5, #0x98
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D81A4: .word 0x00010200
+_021D81A8: .word 0x0000024B
+ thumb_func_end MOD76_021D800C
+
+ thumb_func_start MOD76_021D81AC
+MOD76_021D81AC: ; 0x021D81AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0xb8
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #1
+ mvn r1, r1
+ cmp r4, r1
+ beq _021D8222
+ add r0, r4, #0
+ mov r1, #0xa
+ bl FUN_0206AB18
+ bl FUN_0208315C
+ add r6, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xc5
+ mov r3, #0x43
+ bl FUN_0200A86C
+ mov r2, #1
+ lsl r2, r2, #8
+ ldr r2, [r5, r2]
+ add r1, r6, #0
+ add r7, r0, #0
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _021D8240 ; =0x00010200
+ add r2, r2, #1
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r5, #0
+ ldr r2, [r5, r2]
+ add r0, #0xb8
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ lsl r1, r4, #0x10
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD76_021D8300
+ add r0, r5, #0
+ add r0, #0x68
+ bl FUN_02019220
+ b _021D8232
+_021D8222:
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD76_021D8300
+ add r0, r5, #0
+ add r0, #0x68
+ bl FUN_0201958C
+_021D8232:
+ add r5, #0xb8
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8240: .word 0x00010200
+ thumb_func_end MOD76_021D81AC
+
+ thumb_func_start MOD76_021D8244
+MOD76_021D8244: ; 0x021D8244
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #5
+ lsl r6, r2, #1
+ str r0, [sp]
+ add r4, r1, #0
+ mov r0, #1
+ add r7, r6, #0
+ str r0, [sp, #4]
+ add r7, #0x22
+ str r0, [sp, #8]
+ mov r0, #0x10
+ str r0, [sp, #0xc]
+ lsl r3, r7, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r6, #0x23
+ str r0, [sp, #8]
+ mov r0, #0x10
+ add r2, r4, #1
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r6, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r0, #0x10
+ add r2, #0x20
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r7, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x10
+ add r4, #0x21
+ str r0, [sp, #0xc]
+ lsl r2, r4, #0x10
+ lsl r3, r6, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8244
+
+ thumb_func_start MOD76_021D82D8
+MOD76_021D82D8: ; 0x021D82D8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r4, #0
+ mov r6, #0x12
+_021D82E0:
+ lsl r2, r4, #0x18
+ add r0, r5, #0
+ add r1, r6, #0
+ lsr r2, r2, #0x18
+ bl MOD76_021D8244
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #6
+ blo _021D82E0
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_0201AC68
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD76_021D82D8
+
+ thumb_func_start MOD76_021D8300
+MOD76_021D8300: ; 0x021D8300
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD76_021D82D8
+ ldr r0, _021D8350 ; =0x0000FFFF
+ cmp r4, r0
+ beq _021D8344
+ add r0, r4, #0
+ mov r1, #0xa
+ bl FUN_0206AB18
+ bl FUN_02083114
+ mov r1, #0xa
+ bl _s32_div_f
+ lsl r0, r0, #0x18
+ asr r6, r0, #0x18
+ mov r4, #0
+ cmp r6, #0
+ ble _021D8344
+ mov r7, #0xe
+_021D832E:
+ lsl r2, r4, #0x18
+ add r0, r5, #0
+ add r1, r7, #0
+ lsr r2, r2, #0x18
+ bl MOD76_021D8244
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r6
+ blt _021D832E
+_021D8344:
+ ldr r0, [r5, #4]
+ mov r1, #2
+ bl FUN_0201AC68
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8350: .word 0x0000FFFF
+ thumb_func_end MOD76_021D8300
+
+ thumb_func_start MOD76_021D8354
+MOD76_021D8354: ; 0x021D8354
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #0xa
+ bls _021D8360
+ b _021D84D8
+_021D8360:
+ add r1, r5, r5
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D836C: ; jump table
+ .short _021D8382 - _021D836C - 2 ; case 0
+ .short _021D839A - _021D836C - 2 ; case 1
+ .short _021D83AE - _021D836C - 2 ; case 2
+ .short _021D83C6 - _021D836C - 2 ; case 3
+ .short _021D83F2 - _021D836C - 2 ; case 4
+ .short _021D841E - _021D836C - 2 ; case 5
+ .short _021D844A - _021D836C - 2 ; case 6
+ .short _021D8476 - _021D836C - 2 ; case 7
+ .short _021D848A - _021D836C - 2 ; case 8
+ .short _021D84B6 - _021D836C - 2 ; case 9
+ .short _021D84C6 - _021D836C - 2 ; case 10
+_021D8382:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ b _021D84D8
+_021D839A:
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D83AE:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ b _021D84D8
+_021D83C6:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D83F2:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D841E:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8524
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D844A:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D8476:
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D848A:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r0, r4, #0
+ bl MOD76_021D8514
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200AD5C
+ b _021D84D8
+_021D84B6:
+ ldr r2, [r4]
+ add r0, #0xfc
+ ldr r0, [r0]
+ ldr r2, [r2, #4]
+ mov r1, #2
+ bl FUN_0200ABC0
+ b _021D84D8
+_021D84C6:
+ bl MOD76_021D8524
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200AD5C
+_021D84D8:
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrb r2, [r1, #0x15]
+ add r0, #0xf8
+ mov r1, #0x2c
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D8510 ; =0x021D8F6C
+ lsl r2, r5, #2
+ add r1, r1, r3
+ ldr r0, [r0]
+ ldr r1, [r2, r1]
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xfc
+ lsl r1, r1, #8
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8510: .word 0x021D8F6C
+ thumb_func_end MOD76_021D8354
+
+ thumb_func_start MOD76_021D8514
+MOD76_021D8514: ; 0x021D8514
+ ldr r0, [r0]
+ ldr r2, [r0, #0xc]
+ ldrh r1, [r0, #0x12]
+ ldrh r0, [r0, #0x10]
+ add r0, r1, r0
+ lsl r0, r0, #1
+ ldrh r0, [r2, r0]
+ bx lr
+ thumb_func_end MOD76_021D8514
+
+ thumb_func_start MOD76_021D8524
+MOD76_021D8524: ; 0x021D8524
+ push {r3, lr}
+ ldr r1, [r0]
+ mov r2, #0
+ ldr r0, [r1]
+ ldrb r1, [r1, #0x17]
+ add r1, #0x36
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8524
+
+ thumb_func_start MOD76_021D853C
+MOD76_021D853C: ; 0x021D853C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r5, r1, #0
+ add r0, #0xc8
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD76_021D8354
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_02024FF4
+ mov r3, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021D858C ; =MOD76_021D8594
+ mov r1, #1
+ add r2, r1, #0
+ str r0, [sp, #8]
+ add r2, #0xff
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0xc8
+ bl FUN_0201BD84
+ ldr r1, _021D8590 ; =0x00000185
+ strb r0, [r4, r1]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D858C: .word MOD76_021D8594
+_021D8590: .word 0x00000185
+ thumb_func_end MOD76_021D853C
+
+ thumb_func_start MOD76_021D8594
+MOD76_021D8594: ; 0x021D8594
+ push {r3, lr}
+ cmp r1, #5
+ bhi _021D85D6
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D85A6: ; jump table
+ .short _021D85D6 - _021D85A6 - 2 ; case 0
+ .short _021D85B2 - _021D85A6 - 2 ; case 1
+ .short _021D85B8 - _021D85A6 - 2 ; case 2
+ .short _021D85BE - _021D85A6 - 2 ; case 3
+ .short _021D85C6 - _021D85A6 - 2 ; case 4
+ .short _021D85CE - _021D85A6 - 2 ; case 5
+_021D85B2:
+ bl FUN_02005514
+ pop {r3, pc}
+_021D85B8:
+ bl FUN_02005CBC
+ pop {r3, pc}
+_021D85BE:
+ ldr r0, _021D85DC ; =0x000005E6
+ bl FUN_020054C8
+ b _021D85D6
+_021D85C6:
+ ldr r0, _021D85E0 ; =0x00000483
+ bl FUN_02005C28
+ b _021D85D6
+_021D85CE:
+ ldr r0, _021D85DC ; =0x000005E6
+ bl FUN_02005508
+ pop {r3, pc}
+_021D85D6:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D85DC: .word 0x000005E6
+_021D85E0: .word 0x00000483
+ thumb_func_end MOD76_021D8594
+
+ thumb_func_start MOD76_021D85E4
+MOD76_021D85E4: ; 0x021D85E4
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r5, r0, #0
+ add r6, r4, #0
+_021D85EC:
+ ldr r0, [r5]
+ add r1, r4, #0
+ ldr r0, [r0]
+ add r1, #0x36
+ add r2, r6, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _021D8608
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D85EC
+_021D8608:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD76_021D85E4
+
+ thumb_func_start MOD76_021D860C
+MOD76_021D860C: ; 0x021D860C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #3
+ bl MOD76_021D853C
+ add r0, r4, #0
+ bl MOD76_021D85E4
+ ldr r1, [r4]
+ strb r0, [r1, #0x17]
+ mov r0, #6
+ mov r1, #5
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ thumb_func_end MOD76_021D860C
+
+ thumb_func_start MOD76_021D862C
+MOD76_021D862C: ; 0x021D862C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, #0xc8
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD76_021D8354
+ mov r0, #0
+ str r0, [sp]
+ ldr r3, _021D8678 ; =0x0001020F
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #1
+ bl MOD76_021D7CC8
+ add r0, r4, #0
+ add r0, #0xc8
+ bl FUN_02019220
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD76_021D8CB4
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D8678: .word 0x0001020F
+ thumb_func_end MOD76_021D862C
+
+ thumb_func_start MOD76_021D867C
+MOD76_021D867C: ; 0x021D867C
+ ldr r0, [r0]
+ mov r1, #1
+ strb r1, [r0, #0x16]
+ mov r0, #8
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD76_021D867C
+
+ thumb_func_start MOD76_021D8688
+MOD76_021D8688: ; 0x021D8688
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, #0xc8
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD76_021D8354
+ mov r0, #0
+ str r0, [sp]
+ ldr r3, _021D86D4 ; =0x0001020F
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #1
+ bl MOD76_021D7CC8
+ add r0, r4, #0
+ add r0, #0xc8
+ bl FUN_02019220
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD76_021D8CB4
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D86D4: .word 0x0001020F
+ thumb_func_end MOD76_021D8688
+
+ thumb_func_start MOD76_021D86D8
+MOD76_021D86D8: ; 0x021D86D8
+ mov r1, #6
+ mov r2, #0xa
+ lsl r1, r1, #6
+ str r2, [r0, r1]
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD76_021D86D8
+
+ thumb_func_start MOD76_021D86E4
+MOD76_021D86E4: ; 0x021D86E4
+ push {r4, lr}
+ mov r1, #7
+ add r4, r0, #0
+ bl MOD76_021D853C
+ ldr r0, _021D86FC ; =0x00000186
+ mov r1, #3
+ strb r1, [r4, r0]
+ sub r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ .align 2, 0
+_021D86FC: .word 0x00000186
+ thumb_func_end MOD76_021D86E4
+
+ thumb_func_start MOD76_021D8700
+MOD76_021D8700: ; 0x021D8700
+ push {r4, lr}
+ mov r1, #8
+ add r4, r0, #0
+ bl MOD76_021D853C
+ mov r0, #6
+ mov r1, #8
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ ldr r0, [r4]
+ mov r1, #1
+ strb r1, [r0, #0x16]
+ mov r0, #2
+ pop {r4, pc}
+ thumb_func_end MOD76_021D8700
+
+ thumb_func_start MOD76_021D871C
+MOD76_021D871C: ; 0x021D871C
+ push {r4, lr}
+ mov r1, #4
+ add r4, r0, #0
+ bl MOD76_021D853C
+ ldr r1, _021D8734 ; =0x00000186
+ mov r0, #2
+ mov r2, #3
+ strb r0, [r4, r1]
+ lsl r1, r2, #7
+ str r2, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D8734: .word 0x00000186
+ thumb_func_end MOD76_021D871C
+
+ thumb_func_start MOD76_021D8738
+MOD76_021D8738: ; 0x021D8738
+ push {r4, lr}
+ mov r1, #5
+ add r4, r0, #0
+ bl MOD76_021D853C
+ mov r1, #6
+ lsl r0, r1, #6
+ str r1, [r4, r0]
+ mov r0, #2
+ pop {r4, pc}
+ thumb_func_end MOD76_021D8738
+
+ thumb_func_start MOD76_021D874C
+MOD76_021D874C: ; 0x021D874C
+ mov r1, #6
+ mov r2, #0xa
+ lsl r1, r1, #6
+ str r2, [r0, r1]
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD76_021D874C
+
+ thumb_func_start MOD76_021D8758
+MOD76_021D8758: ; 0x021D8758
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ ldr r3, _021D87EC ; =0x021D8E70
+ 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, #0x40
+ mov r1, #0x43
+ bl FUN_0201C24C
+ mov r0, #0x43
+ bl FUN_0200BB14
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_0200BB34
+ mov r7, #0x45
+ lsl r7, r7, #2
+ add r2, sp, #0x14
+ ldr r3, _021D87F0 ; =0x021D8EDC
+ 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, _021D87F4 ; =0x021D8E5C
+ stmia r2!, {r0, r1}
+ add r3, sp, #0
+ 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, #0xd
+ bl FUN_0200BBF0
+ sub r1, r7, #4
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ add r2, sp, #0x34
+ bl FUN_0200BF60
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D87EC: .word 0x021D8E70
+_021D87F0: .word 0x021D8EDC
+_021D87F4: .word 0x021D8E5C
+ thumb_func_end MOD76_021D8758
+
+ thumb_func_start MOD76_021D87F8
+MOD76_021D87F8: ; 0x021D87F8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x46
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #2
+_021D8804:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xd
+ blo _021D8804
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r7, r1]
+ add r1, r1, #4
+ ldr r1, [r7, r1]
+ bl FUN_0200C398
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r0, [r7, r0]
+ bl FUN_0200BD04
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD76_021D87F8
+
+ thumb_func_start MOD76_021D882C
+MOD76_021D882C: ; 0x021D882C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #1
+ mov r6, #0x46
+ add r5, r0, #0
+ mov r4, #0
+ lsl r7, r7, #0xc
+ lsl r6, r6, #2
+_021D883A:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ add r1, r7, #0
+ ldr r0, [r0]
+ bl FUN_020201E4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xd
+ blo _021D883A
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD76_021D882C
+
+ thumb_func_start MOD76_021D8854
+MOD76_021D8854: ; 0x021D8854
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021D89D0 ; =0x0000B8A8
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #5
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021D89D4 ; =0x0000B8A9
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #8
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021D89D8 ; =0x0000B8AA
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #2
+ bl FUN_0200C00C
+ ldr r4, _021D89DC ; =0x0000B8AC
+ mov r7, #0x45
+ lsl r7, r7, #2
+ add r6, r4, #6
+_021D88BC:
+ mov r0, #0x11
+ str r4, [sp]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r7]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E130
+ add r4, r4, #1
+ cmp r4, r6
+ bls _021D88BC
+ ldr r0, _021D89E0 ; =0x0000B8AB
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E2AC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _021D89D0 ; =0x0000B8A8
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #9
+ bl FUN_0200C06C
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ ldr r3, _021D89D4 ; =0x0000B8A9
+ mov r2, #1
+ bl FUN_0206E164
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D0 ; =0x0000B8A8
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #4
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D4 ; =0x0000B8A9
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #7
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D8 ; =0x0000B8AA
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #1
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D0 ; =0x0000B8A8
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #3
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D89D4 ; =0x0000B8A9
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ mov r3, #6
+ bl FUN_0200C13C
+ mov r3, #0
+ mov r1, #0x11
+ ldr r0, _021D89D8 ; =0x0000B8AA
+ str r3, [sp]
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x71
+ bl FUN_0200C13C
+ mov r1, #0x11
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r2, _021D89E0 ; =0x0000B8AB
+ ldr r1, [r5, r1]
+ add r3, r2, #0
+ bl FUN_0206E1D4
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D89D0: .word 0x0000B8A8
+_021D89D4: .word 0x0000B8A9
+_021D89D8: .word 0x0000B8AA
+_021D89DC: .word 0x0000B8AC
+_021D89E0: .word 0x0000B8AB
+ thumb_func_end MOD76_021D8854
+
+ thumb_func_start MOD76_021D89E4
+MOD76_021D89E4: ; 0x021D89E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r2, #0
+ ldrb r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021D8A00
+ add r0, r1, #0
+ mov r1, #3
+ bl FUN_0206AB18
+ add r6, r0, #0
+ b _021D8A0C
+_021D8A00:
+ add r0, r1, #0
+ mov r1, #0xb
+ bl FUN_0206AB18
+ add r6, r0, #0
+ add r6, #0x12
+_021D8A0C:
+ 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, _021D8A54 ; =0x0000B8AC
+ mov r1, #0x11
+ add r0, r4, r0
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ add r2, r7, #0
+ bl FUN_0200C9D8
+ add r0, r6, #0
+ bl FUN_0206E114
+ add r1, r0, #0
+ add r0, r4, #6
+ lsl r0, r0, #2
+ add r2, r5, r0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ add r1, r1, #2
+ bl FUN_0200C66C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8A54: .word 0x0000B8AC
+ thumb_func_end MOD76_021D89E4
+
+ thumb_func_start MOD76_021D8A58
+MOD76_021D8A58: ; 0x021D8A58
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ mov r7, #0x20
+ add r5, r6, #0
+_021D8A62:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ lsl r2, r7, #0x10
+ ldr r0, [r5, r0]
+ mov r1, #0x98
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r0, [r6]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldrh r0, [r0, #0x12]
+ ldrb r1, [r6, r1]
+ add r0, r0, r4
+ sub r1, r1, #1
+ cmp r0, r1
+ blo _021D8A92
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ b _021D8AB4
+_021D8A92:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r2, [r6]
+ add r0, r6, #0
+ ldr r1, [r2, #0xc]
+ ldrh r2, [r2, #0x12]
+ add r2, r2, r4
+ lsl r2, r2, #1
+ ldrh r1, [r1, r2]
+ lsl r2, r4, #0x10
+ lsr r2, r2, #0x10
+ bl MOD76_021D89E4
+_021D8AB4:
+ add r4, r4, #1
+ add r7, #0x10
+ add r5, r5, #4
+ cmp r4, #7
+ blo _021D8A62
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD76_021D8A58
+
+ thumb_func_start MOD76_021D8AC0
+MOD76_021D8AC0: ; 0x021D8AC0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ str r2, [sp]
+ cmp r1, r2
+ bhs _021D8B30
+ ldr r0, [sp]
+ mov r6, #0
+ add r0, r0, #6
+ lsl r0, r0, #1
+ add r4, r5, #0
+ str r0, [sp, #4]
+ add r7, sp, #0xc
+_021D8ADA:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r1, sp, #0xc
+ ldr r0, [r4, r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ mov r0, #0
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x20
+ bne _021D8B10
+ mov r0, #0x80
+ strh r0, [r7]
+ ldr r0, [r5]
+ ldr r1, [r0, #0xc]
+ ldr r0, [sp, #4]
+ ldrh r1, [r0, r1]
+ ldr r0, _021D8BF4 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021D8B14
+ lsl r2, r6, #0x10
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl MOD76_021D89E4
+ b _021D8B14
+_021D8B10:
+ sub r0, #0x10
+ strh r0, [r7]
+_021D8B14:
+ mov r0, #0x13
+ mov r1, #2
+ mov r2, #0
+ lsl r0, r0, #4
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r7, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #7
+ blo _021D8ADA
+ b _021D8B94
+_021D8B30:
+ ldr r0, [sp]
+ cmp r1, r0
+ bls _021D8BF0
+ lsl r0, r0, #1
+ mov r6, #0
+ add r4, r5, #0
+ str r0, [sp, #8]
+ add r7, sp, #0xc
+_021D8B40:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r1, sp, #0xc
+ ldr r0, [r4, r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ mov r0, #0
+ ldrsh r0, [r7, r0]
+ cmp r0, #0x80
+ bne _021D8B76
+ mov r0, #0x20
+ strh r0, [r7]
+ ldr r0, [r5]
+ ldr r1, [r0, #0xc]
+ ldr r0, [sp, #8]
+ ldrh r1, [r0, r1]
+ ldr r0, _021D8BF4 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021D8B7A
+ lsl r2, r6, #0x10
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl MOD76_021D89E4
+ b _021D8B7A
+_021D8B76:
+ add r0, #0x10
+ strh r0, [r7]
+_021D8B7A:
+ mov r0, #0x13
+ mov r1, #2
+ mov r2, #0
+ lsl r0, r0, #4
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r7, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #7
+ blo _021D8B40
+_021D8B94:
+ mov r6, #0
+ add r4, r5, #0
+ add r7, sp, #0xc
+_021D8B9A:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ add r1, sp, #0xc
+ ldr r0, [r4, r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_0200C7A0
+ mov r0, #0
+ ldrsh r1, [r7, r0]
+ sub r1, #0x20
+ asr r0, r1, #3
+ lsr r0, r0, #0x1c
+ add r0, r1, r0
+ asr r0, r0, #4
+ strh r0, [r7]
+ mov r0, #0
+ ldrsh r1, [r7, r0]
+ ldr r0, [sp]
+ add r0, r0, r1
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ sub r1, r1, #1
+ cmp r0, r1
+ blt _021D8BDC
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ b _021D8BE8
+_021D8BDC:
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+_021D8BE8:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #7
+ blo _021D8B9A
+_021D8BF0:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8BF4: .word 0x0000FFFF
+ thumb_func_end MOD76_021D8AC0
+
+ thumb_func_start MOD76_021D8BF8
+MOD76_021D8BF8: ; 0x021D8BF8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, r1, #0
+ mov r1, #1
+ bl FUN_0206AB18
+ add r4, r0, #0
+ 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, _021D8C48 ; =0x0000B8AB
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200C9D8
+ add r0, r4, #0
+ bl FUN_0206E290
+ add r1, r0, #0
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #2
+ bl FUN_0200C66C
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_021D8C48: .word 0x0000B8AB
+ thumb_func_end MOD76_021D8BF8
+
+ thumb_func_start MOD76_021D8C4C
+MOD76_021D8C4C: ; 0x021D8C4C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl MOD76_021D8758
+ add r0, r6, #0
+ bl MOD76_021D8854
+ ldr r4, _021D8C84 ; =0x021D903C
+ mov r7, #0
+ add r5, r6, #0
+_021D8C60:
+ mov r0, #0x11
+ mov r1, #0x45
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r6, r0]
+ ldr r1, [r6, r1]
+ add r2, r4, #0
+ bl FUN_0200C154
+ mov r1, #0x46
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r7, r7, #1
+ add r4, #0x34
+ add r5, r5, #4
+ cmp r7, #0xd
+ blo _021D8C60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8C84: .word 0x021D903C
+ thumb_func_end MOD76_021D8C4C
+
+ thumb_func_start MOD76_021D8C88
+MOD76_021D8C88: ; 0x021D8C88
+ push {r3, r4, r5, lr}
+ add r3, r1, #0
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r0, #0x4a
+ lsl r2, r3, #4
+ lsl r0, r0, #2
+ add r2, #0x20
+ lsl r2, r2, #0x10
+ ldr r0, [r5, r0]
+ mov r1, #0xc4
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200C66C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8C88
+
+ thumb_func_start MOD76_021D8CB4
+MOD76_021D8CB4: ; 0x021D8CB4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_0200C644
+ mov r0, #0x47
+ 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 MOD76_021D8CB4
+
+ thumb_func_start MOD76_021D8CD4
+MOD76_021D8CD4: ; 0x021D8CD4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldrh r0, [r0, #0x12]
+ cmp r0, #0
+ beq _021D8CEE
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ b _021D8CFA
+_021D8CEE:
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021D8CFA:
+ ldr r0, [r4]
+ ldrh r0, [r0, #0x12]
+ add r2, r0, #7
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ cmp r2, r1
+ bge _021D8D16
+ sub r0, #0x60
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r4, pc}
+_021D8D16:
+ sub r0, #0x60
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8CD4
+
+ thumb_func_start MOD76_021D8D24
+MOD76_021D8D24: ; 0x021D8D24
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0x49
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD76_021D8D24
+
+ thumb_func_start MOD76_021D8D44
+MOD76_021D8D44: ; 0x021D8D44
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0x43
+ bl FUN_02079A70
+ mov r0, #6
+ mov r1, #0xb
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD76_021D8D44
+
+ thumb_func_start MOD76_021D8D5C
+MOD76_021D8D5C: ; 0x021D8D5C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r2, _021D8DE4 ; =0x021D8E48
+ add r1, sp, #0
+ ldrb r3, [r2]
+ add r4, r0, #0
+ strb r3, [r1]
+ ldrb r3, [r2, #1]
+ ldrb r2, [r2, #2]
+ strb r3, [r1, #1]
+ strb r2, [r1, #2]
+ bl MOD76_021D76B8
+ ldr r0, [r4]
+ mov r1, #0x53
+ ldr r0, [r0]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4]
+ ldr r2, [r0, #8]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x11
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x14
+ strb r2, [r4, r0]
+ mov r0, #1
+ add r1, #0x13
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD76_021D8514
+ mov r1, #0x59
+ lsl r1, r1, #2
+ strh r0, [r4, r1]
+ mov r2, #2
+ sub r0, r1, #6
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #1
+ add r0, #0x14
+ str r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x10
+ sub r1, #0x18
+ str r2, [r4, r0]
+ add r0, r4, r1
+ add r1, sp, #0
+ bl FUN_0207B000
+ mov r1, #0x53
+ lsl r1, r1, #2
+ ldr r0, _021D8DE8 ; =0x020FA6E8
+ add r1, r4, r1
+ mov r2, #0x43
+ bl FUN_02006234
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D8DE4: .word 0x021D8E48
+_021D8DE8: .word 0x020FA6E8
+ thumb_func_end MOD76_021D8D5C
+
+ thumb_func_start MOD76_021D8DEC
+MOD76_021D8DEC: ; 0x021D8DEC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D8E3E
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02006260
+ add r0, r4, #0
+ bl MOD76_021D7638
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldrh r1, [r1, #0x10]
+ mov r2, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD76_021D8C88
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD76_021D8CB4
+ add r0, r4, #0
+ bl MOD76_021D8D24
+ ldr r0, _021D8E44 ; =0x00000162
+ ldr r1, [r4]
+ ldrb r2, [r4, r0]
+ add r0, #0x1e
+ strb r2, [r1, #0x17]
+ mov r1, #7
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+_021D8E3E:
+ mov r0, #0xc
+ pop {r4, pc}
+ nop
+_021D8E44: .word 0x00000162
+ thumb_func_end MOD76_021D8DEC
+
+ .section .rodata
+ ; 0x021D8E48
+ .incbin "baserom.nds", 0x2D7568, 0x498
diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s
new file mode 100644
index 00000000..fdbd40cd
--- /dev/null
+++ b/arm9/modules/77/asm/module_77.s
@@ -0,0 +1,3214 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD77_021D74E0
+MOD77_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D75D4 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D75D8 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #3
+ mov r1, #0x32
+ lsl r2, r2, #7
+ bl FUN_0201681C
+ ldr r1, _021D75DC ; =0x0000C32C
+ add r0, r4, #0
+ mov r2, #0x32
+ bl FUN_02006268
+ ldr r2, _021D75DC ; =0x0000C32C
+ mov r1, #0
+ add r5, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x32
+ str r0, [r5]
+ ldr r0, _021D75E0 ; =0x020ECAC4
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _021D753E
+ mov r1, #1
+ b _021D7540
+_021D753E:
+ mov r1, #0
+_021D7540:
+ ldr r0, _021D75E4 ; =0x0000C2F0
+ str r1, [r5, r0]
+ add r0, r4, #0
+ bl FUN_0200628C
+ add r4, r0, #0
+ bl FUN_02029AFC
+ str r0, [r5, #4]
+ bl FUN_02029B38
+ ldr r1, _021D75E8 ; =0x0000C314
+ str r0, [r5, r1]
+ ldr r0, [r5, #4]
+ bl FUN_02029B3C
+ ldr r1, _021D75EC ; =0x0000C318
+ str r0, [r5, r1]
+ ldr r0, [r5, #4]
+ bl FUN_02029C00
+ ldr r1, _021D75F0 ; =0x0000C324
+ str r0, [r5, r1]
+ add r0, r4, #0
+ bl LoadPlayerDataAddress
+ str r0, [r5, #8]
+ bl MOD77_021D7C24
+ bl MOD77_021D7C44
+ ldr r0, [r5]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201B2EC
+ ldr r0, [r5]
+ bl FUN_02016B94
+ ldr r1, _021D75F4 ; =0x0000C010
+ str r0, [r5, r1]
+ bl FUN_0201E788
+ bl FUN_0201BD5C
+ ldr r2, [r5]
+ mov r0, #8
+ mov r1, #0x40
+ bl FUN_0200AA90
+ ldr r1, _021D75F8 ; =0x0000C070
+ str r0, [r5, r1]
+ ldr r0, [r5]
+ bl FUN_0201EB64
+ ldr r1, _021D75FC ; =0x0000C2CC
+ str r0, [r5, r1]
+ mov r0, #0
+ add r1, #0x1c
+ str r0, [r5, r1]
+ ldr r0, _021D7600 ; =0x021C4918
+ mov r1, #1
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ add r0, r5, #0
+ bl MOD77_021D7C64
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D75D4: .word 0xFFFFE0FF
+_021D75D8: .word 0x04001000
+_021D75DC: .word 0x0000C32C
+_021D75E0: .word 0x020ECAC4
+_021D75E4: .word 0x0000C2F0
+_021D75E8: .word 0x0000C314
+_021D75EC: .word 0x0000C318
+_021D75F0: .word 0x0000C324
+_021D75F4: .word 0x0000C010
+_021D75F8: .word 0x0000C070
+_021D75FC: .word 0x0000C2CC
+_021D7600: .word 0x021C4918
+ thumb_func_end MOD77_021D74E0
+
+ thumb_func_start MOD77_021D7604
+MOD77_021D7604: ; 0x021D7604
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ mov r7, #0
+ cmp r1, #0x12
+ bls _021D761A
+ b _021D7B66
+_021D761A:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7626: ; jump table
+ .short _021D764C - _021D7626 - 2 ; case 0
+ .short _021D76A8 - _021D7626 - 2 ; case 1
+ .short _021D76B6 - _021D7626 - 2 ; case 2
+ .short _021D76D6 - _021D7626 - 2 ; case 3
+ .short _021D76FA - _021D7626 - 2 ; case 4
+ .short _021D7744 - _021D7626 - 2 ; case 5
+ .short _021D776C - _021D7626 - 2 ; case 6
+ .short _021D77A2 - _021D7626 - 2 ; case 7
+ .short _021D77DE - _021D7626 - 2 ; case 8
+ .short _021D7838 - _021D7626 - 2 ; case 9
+ .short _021D7886 - _021D7626 - 2 ; case 10
+ .short _021D78DC - _021D7626 - 2 ; case 11
+ .short _021D78EE - _021D7626 - 2 ; case 12
+ .short _021D7916 - _021D7626 - 2 ; case 13
+ .short _021D7964 - _021D7626 - 2 ; case 14
+ .short _021D7A32 - _021D7626 - 2 ; case 15
+ .short _021D7B0E - _021D7626 - 2 ; case 16
+ .short _021D7B1C - _021D7626 - 2 ; case 17
+ .short _021D7B3E - _021D7626 - 2 ; case 18
+_021D764C:
+ ldr r2, _021D7968 ; =0x0000013E
+ ldr r3, [r4]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ ldr r1, _021D796C ; =0x0000C060
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD77_021D8814
+ add r0, r4, #0
+ bl MOD77_021D7FAC
+ add r0, r7, #0
+ ldr r1, _021D7970 ; =0x0000C2EC
+ add r3, r0, #0
+ str r0, [r4, r1]
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [r4]
+ str r2, [sp, #8]
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #1
+ str r0, [r5]
+ b _021D7B66
+_021D76A8:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7780
+ mov r0, #2
+ str r0, [r5]
+ b _021D7B66
+_021D76B6:
+ add r1, r7, #0
+ mov r2, #1
+ bl MOD77_021D8294
+ cmp r0, #1
+ bne _021D7780
+ ldr r0, _021D7974 ; =0x0000C314
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D76D0
+ mov r0, #3
+ str r0, [r5]
+ b _021D7B66
+_021D76D0:
+ mov r0, #0xe
+ str r0, [r5]
+ b _021D7B66
+_021D76D6:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD77_021D8294
+ cmp r0, #1
+ bne _021D7780
+ ldr r0, _021D7978 ; =0x021D8F64
+ ldr r1, _021D797C ; =0x0000C024
+ str r0, [sp]
+ ldr r2, _021D7980 ; =0x021D8F18
+ ldr r3, _021D7984 ; =0x021D8FB4
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD77_021D8370
+ mov r0, #4
+ str r0, [r5]
+ b _021D7B66
+_021D76FA:
+ ldr r0, _021D7988 ; =0x0000C054
+ ldr r0, [r4, r0]
+ bl FUN_02001204
+ add r6, r0, #0
+ sub r0, r7, #1
+ cmp r6, r0
+ beq _021D7780
+ add r0, r4, #0
+ bl MOD77_021D84D8
+ ldr r0, _021D798C ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r6, #2
+ cmp r0, #4
+ bhi _021D7732
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7728: ; jump table
+ .short _021D773E - _021D7728 - 2 ; case 0
+ .short _021D7732 - _021D7728 - 2 ; case 1
+ .short _021D7732 - _021D7728 - 2 ; case 2
+ .short _021D7738 - _021D7728 - 2 ; case 3
+ .short _021D773E - _021D7728 - 2 ; case 4
+_021D7732:
+ mov r0, #0xe
+ str r0, [r5]
+ b _021D7B66
+_021D7738:
+ mov r0, #5
+ str r0, [r5]
+ b _021D7B66
+_021D773E:
+ mov r0, #0x11
+ str r0, [r5]
+ b _021D7B66
+_021D7744:
+ mov r1, #2
+ mov r2, #1
+ bl MOD77_021D8294
+ cmp r0, #1
+ bne _021D7780
+ ldr r0, [r4]
+ ldr r1, _021D7990 ; =0x021D8F38
+ str r0, [sp]
+ ldr r0, _021D7994 ; =0x0000C010
+ ldr r2, _021D7998 ; =0x000001D9
+ ldr r0, [r4, r0]
+ mov r3, #7
+ bl FUN_02002198
+ ldr r1, _021D799C ; =0x0000C05C
+ str r0, [r4, r1]
+ mov r0, #6
+ str r0, [r5]
+ b _021D7B66
+_021D776C:
+ ldr r0, _021D799C ; =0x0000C05C
+ ldr r1, [r4]
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ cmp r0, #0
+ beq _021D7782
+ sub r1, r7, #2
+ cmp r0, r1
+ beq _021D779C
+_021D7780:
+ b _021D7B66
+_021D7782:
+ ldr r0, _021D79A0 ; =0x0000C2F0
+ ldr r1, [r4, r0]
+ cmp r1, #1
+ bne _021D7796
+ mov r1, #0x67
+ add r0, #0x2c
+ str r1, [r4, r0]
+ mov r0, #9
+ str r0, [r5]
+ b _021D7B66
+_021D7796:
+ mov r0, #7
+ str r0, [r5]
+ b _021D7B66
+_021D779C:
+ mov r0, #3
+ str r0, [r5]
+ b _021D7B66
+_021D77A2:
+ mov r1, #3
+ mov r2, #1
+ bl MOD77_021D8294
+ cmp r0, #1
+ bne _021D77EE
+ ldr r1, _021D79A4 ; =0x0000C31C
+ add r0, r7, #0
+ str r0, [r4, r1]
+ bl FUN_02088DA0
+ add r6, r0, #0
+ add r0, r7, #0
+ bl FUN_02088DBC
+ mov r1, #0x99
+ lsl r1, r1, #2
+ str r1, [sp]
+ ldr r1, _021D797C ; =0x0000C024
+ str r6, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, _021D79A8 ; =0x021D8F20
+ ldr r3, _021D79AC ; =0x021D8FD4
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD77_021D8418
+ mov r0, #8
+ str r0, [r5]
+ b _021D7B66
+_021D77DE:
+ ldr r0, _021D7988 ; =0x0000C054
+ ldr r0, [r4, r0]
+ bl FUN_02001204
+ add r6, r0, #0
+ sub r0, r7, #1
+ cmp r6, r0
+ bne _021D77F0
+_021D77EE:
+ b _021D7B66
+_021D77F0:
+ add r0, r4, #0
+ bl MOD77_021D84D8
+ ldr r0, _021D798C ; =0x000005DC
+ bl FUN_020054C8
+ sub r0, r7, #2
+ cmp r6, r0
+ beq _021D780A
+ add r0, r7, #0
+ bl FUN_02088DA0
+ ldrb r6, [r0, r6]
+_021D780A:
+ mov r0, #1
+ mvn r0, r0
+ cmp r6, r0
+ beq _021D7832
+ ldr r0, _021D79A4 ; =0x0000C31C
+ str r6, [r4, r0]
+ ldr r0, [r4, r0]
+ bl MOD77_021D8F04
+ cmp r0, #1
+ bne _021D7826
+ mov r0, #9
+ str r0, [r5]
+ b _021D7B66
+_021D7826:
+ ldr r0, _021D79B0 ; =0x0000C320
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #0xb
+ str r0, [r5]
+ b _021D7B66
+_021D7832:
+ mov r0, #3
+ str r0, [r5]
+ b _021D7B66
+_021D7838:
+ mov r1, #4
+ mov r2, #1
+ bl MOD77_021D8294
+ cmp r0, #1
+ bne _021D792A
+ ldr r0, _021D79B0 ; =0x0000C320
+ add r1, r7, #0
+ str r1, [r4, r0]
+ sub r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02088D20
+ add r6, r0, #0
+ bl FUN_02088D4C
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ bl FUN_02088DA0
+ str r0, [sp, #0x10]
+ add r0, r6, #0
+ bl FUN_02088DBC
+ ldr r1, [sp, #0xc]
+ ldr r2, _021D79A8 ; =0x021D8F20
+ str r1, [sp]
+ ldr r1, [sp, #0x10]
+ ldr r3, _021D79AC ; =0x021D8FD4
+ str r1, [sp, #4]
+ ldr r1, _021D797C ; =0x0000C024
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD77_021D8418
+ mov r0, #0xa
+ str r0, [r5]
+ b _021D7B66
+_021D7886:
+ ldr r0, _021D7988 ; =0x0000C054
+ ldr r0, [r4, r0]
+ bl FUN_02001204
+ add r6, r0, #0
+ sub r0, r7, #1
+ cmp r6, r0
+ beq _021D792A
+ add r0, r4, #0
+ bl MOD77_021D84D8
+ ldr r0, _021D798C ; =0x000005DC
+ bl FUN_020054C8
+ sub r0, r7, #2
+ cmp r6, r0
+ beq _021D78B6
+ ldr r0, _021D79A4 ; =0x0000C31C
+ ldr r0, [r4, r0]
+ bl FUN_02088D20
+ bl FUN_02088DA0
+ ldrb r6, [r0, r6]
+_021D78B6:
+ mov r0, #1
+ mvn r0, r0
+ cmp r6, r0
+ beq _021D78C8
+ ldr r0, _021D79B0 ; =0x0000C320
+ str r6, [r4, r0]
+ mov r0, #0xb
+ str r0, [r5]
+ b _021D7B66
+_021D78C8:
+ ldr r0, _021D79A0 ; =0x0000C2F0
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021D78D6
+ mov r0, #3
+ str r0, [r5]
+ b _021D7B66
+_021D78D6:
+ mov r0, #7
+ str r0, [r5]
+ b _021D7B66
+_021D78DC:
+ ldr r2, _021D79A4 ; =0x0000C31C
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ ldr r2, [r4, r2]
+ bl MOD77_021D85E0
+ mov r0, #0xc
+ str r0, [r5]
+ b _021D7B66
+_021D78EE:
+ mov r1, #5
+ mov r2, #1
+ bl MOD77_021D8294
+ cmp r0, #1
+ bne _021D792A
+ ldr r0, [r4]
+ ldr r1, _021D7990 ; =0x021D8F38
+ str r0, [sp]
+ ldr r0, _021D7994 ; =0x0000C010
+ ldr r2, _021D7998 ; =0x000001D9
+ ldr r0, [r4, r0]
+ mov r3, #7
+ bl FUN_02002198
+ ldr r1, _021D799C ; =0x0000C05C
+ str r0, [r4, r1]
+ mov r0, #0xd
+ str r0, [r5]
+ b _021D7B66
+_021D7916:
+ ldr r0, _021D799C ; =0x0000C05C
+ ldr r1, [r4]
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ cmp r0, #0
+ beq _021D792C
+ sub r1, r7, #2
+ cmp r0, r1
+ beq _021D7958
+_021D792A:
+ b _021D7B66
+_021D792C:
+ add r0, r4, #0
+ bl MOD77_021D8698
+ ldr r2, _021D79A4 ; =0x0000C31C
+ ldr r0, [r4, #4]
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ ldr r2, [r4, r2]
+ bl FUN_02029B08
+ ldr r0, _021D79A4 ; =0x0000C31C
+ add r1, r0, #0
+ ldr r2, [r4, r0]
+ sub r1, #8
+ str r2, [r4, r1]
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xe
+ str r0, [r5]
+ b _021D7B66
+_021D7958:
+ add r0, r4, #0
+ bl MOD77_021D8698
+ mov r0, #3
+ str r0, [r5]
+ b _021D7B66
+_021D7964:
+ ldr r1, _021D79A0 ; =0x0000C2F0
+ b _021D79B4
+ .align 2, 0
+_021D7968: .word 0x0000013E
+_021D796C: .word 0x0000C060
+_021D7970: .word 0x0000C2EC
+_021D7974: .word 0x0000C314
+_021D7978: .word 0x021D8F64
+_021D797C: .word 0x0000C024
+_021D7980: .word 0x021D8F18
+_021D7984: .word 0x021D8FB4
+_021D7988: .word 0x0000C054
+_021D798C: .word 0x000005DC
+_021D7990: .word 0x021D8F38
+_021D7994: .word 0x0000C010
+_021D7998: .word 0x000001D9
+_021D799C: .word 0x0000C05C
+_021D79A0: .word 0x0000C2F0
+_021D79A4: .word 0x0000C31C
+_021D79A8: .word 0x021D8F20
+_021D79AC: .word 0x021D8FD4
+_021D79B0: .word 0x0000C320
+_021D79B4:
+ ldr r0, [r4, r1]
+ cmp r0, #1
+ bne _021D79CA
+ add r0, r1, #0
+ add r0, #0x34
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D79CA
+ add r0, r1, #4
+ strh r7, [r4, r0]
+ b _021D79D0
+_021D79CA:
+ ldr r0, _021D7B74 ; =0x0000C2F4
+ mov r1, #1
+ strh r1, [r4, r0]
+_021D79D0:
+ add r0, r4, #0
+ bl MOD77_021D8914
+ add r0, r4, #0
+ bl MOD77_021D7DCC
+ add r0, r4, #0
+ bl MOD77_021D8970
+ add r0, r4, #0
+ bl MOD77_021D89F4
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ ldr r0, _021D7B78 ; =0x0000C014
+ mov r2, #0
+ add r0, r4, r0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl FUN_020196F4
+ ldr r0, _021D7B7C ; =0x0000C034
+ ldr r2, _021D7B80 ; =0x000001D9
+ add r0, r4, r0
+ mov r1, #0
+ mov r3, #7
+ bl FUN_0200CCA4
+ ldr r0, _021D7B84 ; =0x0000C314
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7A1A
+ add r0, r4, #0
+ bl MOD77_021D8510
+_021D7A1A:
+ add r0, r4, #0
+ bl MOD77_021D86B4
+ ldr r0, _021D7B88 ; =0x0000C328
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r1, #1
+ sub r0, #0x40
+ str r1, [r4, r0]
+ mov r0, #0xf
+ str r0, [r5]
+ b _021D7B66
+_021D7A32:
+ ldr r1, _021D7B8C ; =0x0000C2D8
+ ldrh r6, [r4, r1]
+ bl MOD77_021D7E24
+ ldr r0, _021D7B90 ; =0x021C48B8
+ mov r3, #2
+ ldr r1, [r0, #0x48]
+ add r0, r1, #0
+ tst r0, r3
+ bne _021D7A4E
+ ldr r0, _021D7B94 ; =0x0000C2F8
+ ldr r2, [r4, r0]
+ tst r2, r3
+ beq _021D7A94
+_021D7A4E:
+ ldr r0, _021D7B7C ; =0x0000C034
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _021D7B98 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ ldr r0, _021D7B78 ; =0x0000C014
+ mov r2, #0
+ add r0, r4, r0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl FUN_020196F4
+ ldr r0, _021D7B84 ; =0x0000C314
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _021D7A88
+ mov r1, #2
+ sub r0, #0x2c
+ str r1, [r4, r0]
+ mov r0, #3
+ str r0, [r5]
+ b _021D7B66
+_021D7A88:
+ add r0, r4, #0
+ bl MOD77_021D8698
+ mov r0, #0x11
+ str r0, [r5]
+ b _021D7B66
+_021D7A94:
+ lsl r2, r3, #9
+ tst r2, r1
+ beq _021D7AC0
+ add r2, r0, #0
+ add r2, #0x30
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ bne _021D7AC0
+ mov r1, #1
+ add r0, #0x30
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD77_021D86B4
+ ldr r0, _021D7B88 ; =0x0000C328
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021D7B66
+ ldr r0, _021D7B98 ; =0x000005DD
+ bl FUN_020054C8
+ b _021D7B66
+_021D7AC0:
+ ldr r0, _021D7B9C ; =0x00000403
+ tst r0, r1
+ beq _021D7ADA
+ ldr r0, _021D7B88 ; =0x0000C328
+ ldr r2, [r4, r0]
+ cmp r2, #1
+ bne _021D7ADA
+ mov r1, #0
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD77_021D86B4
+ b _021D7B66
+_021D7ADA:
+ ldr r2, _021D7B90 ; =0x021C48B8
+ add r0, r4, #0
+ ldr r2, [r2, #0x44]
+ bl MOD77_021D8B20
+ cmp r0, #1
+ bne _021D7AFA
+ ldr r0, _021D7B88 ; =0x0000C328
+ ldr r1, [r4, r0]
+ cmp r1, #1
+ bne _021D7AFA
+ mov r1, #0
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD77_021D86B4
+_021D7AFA:
+ ldr r0, _021D7B8C ; =0x0000C2D8
+ ldrh r0, [r4, r0]
+ cmp r6, r0
+ beq _021D7B66
+ mov r0, #0x10
+ str r0, [r5]
+ ldr r0, _021D7B98 ; =0x000005DD
+ bl FUN_020054C8
+ b _021D7B66
+_021D7B0E:
+ bl MOD77_021D8CF8
+ cmp r0, #1
+ bne _021D7B66
+ mov r0, #0xf
+ str r0, [r5]
+ b _021D7B66
+_021D7B1C:
+ ldr r0, _021D7BA0 ; =0x0000C2EC
+ add r1, r7, #0
+ str r7, [r4, r0]
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r7, #0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r3, r7, #0
+ bl FUN_0200E1D0
+ mov r0, #0x12
+ str r0, [r5]
+ b _021D7B66
+_021D7B3E:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7B66
+ ldr r0, _021D7BA4 ; =0x0000C2E8
+ mov r1, #1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD77_021D8248
+ add r0, r4, #0
+ bl MOD77_021D88D0
+ ldr r0, _021D7BA8 ; =0x0000C060
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ add r0, r7, #0
+ str r0, [r5]
+ mov r7, #1
+_021D7B66:
+ add r0, r4, #0
+ bl MOD77_021D8D84
+ add r0, r7, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D7B74: .word 0x0000C2F4
+_021D7B78: .word 0x0000C014
+_021D7B7C: .word 0x0000C034
+_021D7B80: .word 0x000001D9
+_021D7B84: .word 0x0000C314
+_021D7B88: .word 0x0000C328
+_021D7B8C: .word 0x0000C2D8
+_021D7B90: .word 0x021C48B8
+_021D7B94: .word 0x0000C2F8
+_021D7B98: .word 0x000005DD
+_021D7B9C: .word 0x00000403
+_021D7BA0: .word 0x0000C2EC
+_021D7BA4: .word 0x0000C2E8
+_021D7BA8: .word 0x0000C060
+ thumb_func_end MOD77_021D7604
+
+ thumb_func_start MOD77_021D7BAC
+MOD77_021D7BAC: ; 0x021D7BAC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ mov r0, #4
+ mov r1, #0
+ ldr r5, [r4]
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E74C
+ ldr r0, _021D7C14 ; =0x0000C2CC
+ ldr r0, [r4, r0]
+ bl FUN_0201EB70
+ ldr r0, _021D7C18 ; =0x0000C070
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ bl FUN_0201B398
+ ldr r0, _021D7C1C ; =0x0000C010
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r6, #0
+ bl FUN_0200627C
+ add r0, r5, #0
+ bl FUN_020168D0
+ ldr r0, _021D7C20 ; =0x021C4918
+ mov r1, #0
+ strb r1, [r0, #5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ nop
+_021D7C14: .word 0x0000C2CC
+_021D7C18: .word 0x0000C070
+_021D7C1C: .word 0x0000C010
+_021D7C20: .word 0x021C4918
+ thumb_func_end MOD77_021D7BAC
+
+ thumb_func_start MOD77_021D7C24
+MOD77_021D7C24: ; 0x021D7C24
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7C40 ; =0x021D9084
+ add r3, sp, #0
+ mov r2, #5
+_021D7C2E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7C2E
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7C40: .word 0x021D9084
+ thumb_func_end MOD77_021D7C24
+
+ thumb_func_start MOD77_021D7C44
+MOD77_021D7C44: ; 0x021D7C44
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021D7C60 ; =0x021D8F54
+ 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_02016BBC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7C60: .word 0x021D8F54
+ thumb_func_end MOD77_021D7C44
+
+ thumb_func_start MOD77_021D7C64
+MOD77_021D7C64: ; 0x021D7C64
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ mov r2, #0
+ str r0, [sp, #8]
+ str r2, [r0, #0xc]
+ str r2, [sp]
+ add r0, sp, #0x20
+ str r0, [sp, #4]
+ ldr r3, [sp, #8]
+ mov r0, #0x66
+ ldr r3, [r3]
+ mov r1, #0x12
+ bl FUN_02006D18
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ mov r1, #6
+ bl _u32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r5, #1
+ add r4, r0, #6
+ cmp r7, #1
+ ble _021D7CCA
+ ldr r6, [sp, #8]
+ add r6, #0xc
+_021D7C9A:
+ ldrh r0, [r4]
+ cmp r0, #2
+ beq _021D7CC2
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ mov r2, #2
+ mov r3, #4
+ add r1, r0, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r1, #0xc]
+ bl MOD77_021D7D58
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+_021D7CC2:
+ add r5, r5, #1
+ add r4, r4, #6
+ cmp r5, r7
+ blt _021D7C9A
+_021D7CCA:
+ ldr r0, [sp, #0x18]
+ bl FUN_02016A18
+ mov r7, #1
+ bl FUN_02088D1C
+ str r0, [sp, #0x10]
+ cmp r0, #1
+ ble _021D7D52
+ ldr r6, [sp, #8]
+ add r6, #0xc
+_021D7CE0:
+ add r0, r7, #0
+ bl FUN_02088D84
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ add r0, sp, #0x1c
+ str r0, [sp, #4]
+ ldr r3, [sp, #8]
+ mov r0, #0x66
+ ldr r3, [r3]
+ mov r2, #0
+ bl FUN_02006D18
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ mov r5, #1
+ lsr r0, r0, #2
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ add r4, r0, #4
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ ble _021D7D44
+_021D7D10:
+ add r0, r7, #0
+ bl FUN_02088D68
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ mov r2, #0
+ mov r3, #2
+ add r1, r0, #0
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [r1, #0xc]
+ bl MOD77_021D7D58
+ ldr r0, [r6]
+ add r5, r5, #1
+ add r0, r0, #1
+ str r0, [r6]
+ ldr r0, [sp, #0xc]
+ add r4, r4, #4
+ cmp r5, r0
+ blt _021D7D10
+_021D7D44:
+ ldr r0, [sp, #0x14]
+ bl FUN_02016A18
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ cmp r7, r0
+ blt _021D7CE0
+_021D7D52:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD77_021D7C64
+
+ thumb_func_start MOD77_021D7D58
+MOD77_021D7D58: ; 0x021D7D58
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r5, _021D7DC8 ; =0x021D903C
+ add r7, r2, #0
+ add r6, r3, #0
+ add r4, r0, #0
+ mov ip, r1
+ add r3, sp, #0xc
+ mov r2, #4
+_021D7D6A:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7D6A
+ ldr r0, [r5]
+ mov r1, #0x30
+ str r0, [r3]
+ mov r0, ip
+ add r5, r0, #0
+ mul r5, r1
+ add r0, r4, r5
+ strh r7, [r0, #0x10]
+ strh r6, [r0, #0x12]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, sp, #0xc
+ add r1, sp, #0
+ str r7, [sp]
+ str r6, [sp, #4]
+ bl MOD77_021D8AA8
+ add r3, r4, r5
+ add r6, sp, #0xc
+ add r3, #0x14
+ mov r2, #4
+_021D7D9C:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7D9C
+ ldr r0, [r6]
+ add r2, sp, #0x38
+ str r0, [r3]
+ ldrh r1, [r2, #0x10]
+ ldrh r2, [r2, #0x14]
+ ldr r0, [r4, #4]
+ bl FUN_02029B40
+ add r2, r4, r5
+ strh r0, [r2, #0x38]
+ add r0, sp, #0x38
+ ldrh r1, [r0, #0x10]
+ strh r1, [r2, #0x3a]
+ ldrh r0, [r0, #0x14]
+ strh r0, [r2, #0x3c]
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7DC8: .word 0x021D903C
+ thumb_func_end MOD77_021D7D58
+
+ thumb_func_start MOD77_021D7DCC
+MOD77_021D7DCC: ; 0x021D7DCC
+ push {r4, r5, r6, r7}
+ ldr r1, [r0, #0xc]
+ mov r4, #0
+ cmp r1, #0
+ bls _021D7E0A
+ ldr r1, _021D7E10 ; =0x0000C318
+ add r5, r0, #0
+ mov r3, #3
+ sub r2, r1, #4
+_021D7DDE:
+ ldrh r6, [r5, #0x3a]
+ ldr r7, [r0, r2]
+ cmp r7, r6
+ bne _021D7E00
+ ldrh r6, [r5, #0x3c]
+ ldr r7, [r0, r1]
+ cmp r7, r6
+ bne _021D7E00
+ strh r3, [r5, #0x38]
+ mov r6, #0x10
+ ldrsh r7, [r5, r6]
+ ldr r6, _021D7E14 ; =0x0000C2B4
+ str r7, [r0, r6]
+ mov r6, #0x12
+ ldrsh r7, [r5, r6]
+ ldr r6, _021D7E18 ; =0x0000C2B8
+ str r7, [r0, r6]
+_021D7E00:
+ ldr r6, [r0, #0xc]
+ add r4, r4, #1
+ add r5, #0x30
+ cmp r4, r6
+ blo _021D7DDE
+_021D7E0A:
+ pop {r4, r5, r6, r7}
+ bx lr
+ nop
+_021D7E10: .word 0x0000C318
+_021D7E14: .word 0x0000C2B4
+_021D7E18: .word 0x0000C2B8
+ thumb_func_end MOD77_021D7DCC
+
+ thumb_func_start MOD77_021D7E1C
+MOD77_021D7E1C: ; 0x021D7E1C
+ ldr r3, _021D7E20 ; =FUN_02088D20
+ bx r3
+ .align 2, 0
+_021D7E20: .word FUN_02088D20
+ thumb_func_end MOD77_021D7E1C
+
+ thumb_func_start MOD77_021D7E24
+MOD77_021D7E24: ; 0x021D7E24
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, _021D7F2C ; =0x0000C2F8
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r1, _021D7F30 ; =0x021C48F8
+ ldrh r2, [r1, #0x20]
+ cmp r2, #0
+ beq _021D7E86
+ ldrh r2, [r1, #0x1c]
+ cmp r2, #0xc8
+ blo _021D7E54
+ cmp r2, #0xf8
+ bhi _021D7E54
+ ldrh r1, [r1, #0x1e]
+ cmp r1, #0xa8
+ blo _021D7E54
+ cmp r1, #0xb8
+ bhi _021D7E54
+ mov r1, #2
+ add sp, #0x18
+ str r1, [r4, r0]
+ pop {r4, pc}
+_021D7E54:
+ ldr r0, _021D7F34 ; =0x0000C2FC
+ mov r2, #0
+ add r1, r0, #0
+ str r2, [r4, r0]
+ add r1, #0xc
+ str r2, [r4, r1]
+ add r1, r0, #0
+ add r1, #0x10
+ str r2, [r4, r1]
+ add r1, r0, #0
+ add r1, #0x14
+ str r2, [r4, r1]
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ ldr r2, _021D7F30 ; =0x021C48F8
+ add r1, r0, #4
+ ldrh r3, [r2, #0x1c]
+ str r3, [r4, r1]
+ add r1, r0, #0
+ ldrh r2, [r2, #0x1e]
+ add r1, #8
+ add r0, #0x14
+ str r2, [r4, r1]
+ mov r1, #4
+ str r1, [r4, r0]
+_021D7E86:
+ ldr r0, _021D7F30 ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ cmp r0, #0
+ beq _021D7F02
+ ldr r1, _021D7F34 ; =0x0000C2FC
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ beq _021D7E9E
+ cmp r2, #1
+ beq _021D7EBA
+ add sp, #0x18
+ pop {r4, pc}
+_021D7E9E:
+ add r0, r1, #0
+ add r0, #0x14
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D7EAE
+ add r0, r2, #1
+ str r0, [r4, r1]
+ b _021D7EBA
+_021D7EAE:
+ add r0, r1, #0
+ add r0, #0x14
+ ldr r0, [r4, r0]
+ add r1, #0x14
+ sub r0, r0, #1
+ str r0, [r4, r1]
+_021D7EBA:
+ add r0, sp, #0xc
+ mov r1, #0xc3
+ str r0, [sp]
+ add r0, sp, #8
+ lsl r1, r1, #8
+ str r0, [sp, #4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ add r2, sp, #0x14
+ add r3, sp, #0x10
+ bl MOD77_021D7F3C
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ orr r0, r1
+ ldr r1, _021D7F2C ; =0x0000C2F8
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r2, [sp, #0x10]
+ add r0, #0x10
+ str r2, [r4, r0]
+ ldr r2, [sp, #8]
+ add r0, r1, #0
+ add r0, #0x14
+ str r2, [r4, r0]
+ add r0, r1, #0
+ ldr r2, _021D7F30 ; =0x021C48F8
+ add r0, #8
+ ldrh r3, [r2, #0x1c]
+ add r1, #0xc
+ add sp, #0x18
+ str r3, [r4, r0]
+ ldrh r0, [r2, #0x1e]
+ str r0, [r4, r1]
+ pop {r4, pc}
+_021D7F02:
+ ldr r0, _021D7F38 ; =0x0000C310
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D7F10
+ mov r1, #1
+ sub r0, #0x18
+ str r1, [r4, r0]
+_021D7F10:
+ ldr r1, _021D7F34 ; =0x0000C2FC
+ mov r2, #0
+ add r0, r1, #0
+ str r2, [r4, r1]
+ add r0, #0xc
+ str r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r1, #0x14
+ str r2, [r4, r1]
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_021D7F2C: .word 0x0000C2F8
+_021D7F30: .word 0x021C48F8
+_021D7F34: .word 0x0000C2FC
+_021D7F38: .word 0x0000C310
+ thumb_func_end MOD77_021D7E24
+
+ thumb_func_start MOD77_021D7F3C
+MOD77_021D7F3C: ; 0x021D7F3C
+ push {r3, r4, r5, r6, r7, lr}
+ mov lr, r0
+ ldr r0, _021D7FA4 ; =0x021C48F8
+ mov ip, r1
+ ldrh r5, [r0, #0x1c]
+ mov r1, #0
+ add r7, r2, #0
+ add r6, r3, #0
+ ldr r0, _021D7FA8 ; =0x0000FFFF
+ add r2, r1, #0
+ add r3, r1, #0
+ add r4, r1, #0
+ cmp r5, r0
+ beq _021D7F6C
+ mov r0, lr
+ sub r3, r5, r0
+ bpl _021D7F66
+ sub r0, r1, #1
+ eor r3, r0
+ mov r1, #0x10
+ b _021D7F6C
+_021D7F66:
+ cmp r3, #0
+ ble _021D7F6C
+ mov r1, #0x20
+_021D7F6C:
+ str r1, [r7]
+ mov r1, #0x3f
+ add r0, r3, #0
+ and r0, r1
+ str r0, [r6]
+ ldr r0, _021D7FA4 ; =0x021C48F8
+ ldrh r3, [r0, #0x1e]
+ ldr r0, _021D7FA8 ; =0x0000FFFF
+ cmp r3, r0
+ beq _021D7F94
+ mov r0, ip
+ sub r4, r3, r0
+ bpl _021D7F8E
+ sub r1, #0x40
+ eor r4, r1
+ mov r2, #0x80
+ b _021D7F94
+_021D7F8E:
+ cmp r4, #0
+ ble _021D7F94
+ mov r2, #0x40
+_021D7F94:
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ str r2, [r0]
+ mov r0, #0x3f
+ and r1, r0
+ ldr r0, [sp, #0x1c]
+ str r1, [r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7FA4: .word 0x021C48F8
+_021D7FA8: .word 0x0000FFFF
+ thumb_func_end MOD77_021D7F3C
+
+ thumb_func_start MOD77_021D7FAC
+MOD77_021D7FAC: ; 0x021D7FAC
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ ldr r0, _021D8208 ; =0x0000C010
+ ldr r2, _021D820C ; =0x021D8F7C
+ ldr r0, [r5, r0]
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, _021D8208 ; =0x0000C010
+ mov r1, #6
+ ldr r0, [r5, r0]
+ bl FUN_02018744
+ ldr r0, _021D8208 ; =0x0000C010
+ ldr r2, _021D8210 ; =0x021D8F98
+ ldr r0, [r5, r0]
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _021D8208 ; =0x0000C010
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x81
+ mov r1, #5
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0x80
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r1, #6
+ str r0, [sp, #4]
+ mov r0, #0x81
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #7
+ str r0, [sp, #0xc]
+ ldr r2, _021D8208 ; =0x0000C010
+ mov r0, #0x81
+ ldr r2, [r5, r2]
+ add r3, r1, #0
+ bl FUN_020068C8
+ ldr r0, [r5, #8]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r1, #6
+ str r0, [sp, #4]
+ ldr r0, _021D8208 ; =0x0000C010
+ ldr r2, _021D8214 ; =0x000001E2
+ ldr r0, [r5, r0]
+ add r3, r1, #0
+ bl FUN_0200CD68
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r2, _021D8218 ; =0x000001D9
+ str r0, [sp, #4]
+ ldr r0, _021D8208 ; =0x0000C010
+ mov r1, #6
+ ldr r0, [r5, r0]
+ mov r3, #7
+ bl FUN_0200CB00
+ ldr r2, [r5]
+ mov r0, #4
+ mov r1, #0x80
+ bl FUN_02002ED0
+ ldr r3, [r5]
+ mov r0, #6
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r1, _021D821C ; =0x00004753
+ mov r0, #6
+ bl FUN_02017FE4
+ ldr r1, _021D8208 ; =0x0000C010
+ ldr r2, _021D8220 ; =0x021D8F40
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ ldr r0, _021D8224 ; =0x0000C014
+ mov r2, #0
+ add r0, r5, r0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl FUN_020196F4
+ ldr r0, _021D8224 ; =0x0000C014
+ ldr r2, _021D8214 ; =0x000001E2
+ add r0, r5, r0
+ mov r1, #0
+ mov r3, #6
+ bl FUN_0200D0BC
+ ldr r0, _021D8228 ; =0x0000C064
+ mov r3, #0
+ str r3, [r5, r0]
+ sub r0, #0x54
+ ldr r0, [r5, r0]
+ ldr r2, _021D820C ; =0x021D8F7C
+ mov r1, #2
+ bl FUN_02016C18
+ ldr r0, _021D8208 ; =0x0000C010
+ mov r1, #2
+ ldr r0, [r5, r0]
+ bl FUN_02018744
+ ldr r0, _021D8208 ; =0x0000C010
+ ldr r2, _021D8210 ; =0x021D8F98
+ ldr r0, [r5, r0]
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _021D8208 ; =0x0000C010
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x81
+ mov r1, #5
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0x80
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x81
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _021D8208 ; =0x0000C010
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x81
+ mov r1, #7
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r2, _021D8218 ; =0x000001D9
+ str r0, [sp, #4]
+ ldr r0, _021D8208 ; =0x0000C010
+ mov r1, #2
+ ldr r0, [r5, r0]
+ mov r3, #7
+ bl FUN_0200CB00
+ ldr r2, [r5]
+ mov r0, #0
+ mov r1, #0x80
+ bl FUN_02002ED0
+ ldr r3, [r5]
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ mov r0, #2
+ mov r1, #0
+ bl FUN_02017FE4
+ ldr r1, [r5]
+ mov r0, #0x10
+ bl FUN_020219F4
+ add r4, r0, #0
+ ldr r1, [r5]
+ mov r0, #2
+ bl FUN_02002C50
+ ldr r1, _021D822C ; =0x00004E56
+ add r0, sp, #0x10
+ strh r1, [r0, #6]
+ ldr r1, _021D8230 ; =0x00003571
+ mov r3, #0x82
+ strh r1, [r0, #4]
+ ldr r1, _021D8234 ; =0x0000208C
+ strh r1, [r0, #2]
+ ldr r1, _021D8238 ; =0x00007FFF
+ strh r1, [r0]
+ mov r0, #2
+ add r1, sp, #0x14
+ add r1, #2
+ add r2, r0, #0
+ bl FUN_02017FB4
+ mov r0, #2
+ add r1, sp, #0x14
+ add r2, r0, #0
+ mov r3, #0x84
+ bl FUN_02017FB4
+ mov r0, #2
+ add r1, sp, #0x10
+ add r1, #2
+ add r2, r0, #0
+ mov r3, #0x86
+ bl FUN_02017FB4
+ mov r0, #2
+ add r1, sp, #0x10
+ add r2, r0, #0
+ mov r3, #0x9e
+ bl FUN_02017FB4
+ ldr r1, _021D8208 ; =0x0000C010
+ ldr r2, _021D823C ; =0x021D8F30
+ ldr r0, [r5, r1]
+ add r1, #0x24
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ ldr r0, _021D8240 ; =0x0000C034
+ mov r2, #0
+ add r0, r5, r0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl FUN_020196F4
+ ldr r0, _021D8244 ; =0x0000C060
+ mov r1, #0xc
+ ldr r0, [r5, r0]
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r0, #2
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x30
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8240 ; =0x0000C034
+ str r1, [sp, #8]
+ add r0, r5, r0
+ mov r1, #2
+ add r2, r4, #0
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r0, #2
+ bl FUN_02002CF8
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021D8208: .word 0x0000C010
+_021D820C: .word 0x021D8F7C
+_021D8210: .word 0x021D8F98
+_021D8214: .word 0x000001E2
+_021D8218: .word 0x000001D9
+_021D821C: .word 0x00004753
+_021D8220: .word 0x021D8F40
+_021D8224: .word 0x0000C014
+_021D8228: .word 0x0000C064
+_021D822C: .word 0x00004E56
+_021D8230: .word 0x00003571
+_021D8234: .word 0x0000208C
+_021D8238: .word 0x00007FFF
+_021D823C: .word 0x021D8F30
+_021D8240: .word 0x0000C034
+_021D8244: .word 0x0000C060
+ thumb_func_end MOD77_021D7FAC
+
+ thumb_func_start MOD77_021D8248
+MOD77_021D8248: ; 0x021D8248
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D8288 ; =0x0000C034
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _021D828C ; =0x0000C014
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _021D8290 ; =0x0000C010
+ mov r1, #2
+ ldr r0, [r4, r0]
+ bl FUN_020178A0
+ ldr r0, _021D8290 ; =0x0000C010
+ mov r1, #6
+ ldr r0, [r4, r0]
+ bl FUN_020178A0
+ ldr r0, _021D8290 ; =0x0000C010
+ mov r1, #3
+ ldr r0, [r4, r0]
+ bl FUN_020178A0
+ ldr r0, _021D8290 ; =0x0000C010
+ mov r1, #7
+ ldr r0, [r4, r0]
+ bl FUN_020178A0
+ pop {r4, pc}
+ nop
+_021D8288: .word 0x0000C034
+_021D828C: .word 0x0000C014
+_021D8290: .word 0x0000C010
+ thumb_func_end MOD77_021D8248
+
+ thumb_func_start MOD77_021D8294
+MOD77_021D8294: ; 0x021D8294
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _021D8348 ; =0x0000C064
+ add r6, r1, #0
+ ldr r1, [r5, r0]
+ mov r4, #0
+ cmp r1, #0
+ beq _021D82B0
+ cmp r1, #1
+ beq _021D830A
+ cmp r1, #2
+ beq _021D832A
+ b _021D8340
+_021D82B0:
+ mov r1, #0xd8
+ str r1, [sp]
+ mov r1, #0x20
+ sub r0, #0x50
+ str r1, [sp, #4]
+ add r0, r5, r0
+ mov r1, #0xf
+ add r2, r4, #0
+ add r3, r4, #0
+ bl FUN_020196F4
+ mov r0, #1
+ ldr r1, [r5]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ ldr r2, _021D834C ; =0x0000C06C
+ add r1, r6, #0
+ str r0, [r5, r2]
+ add r0, r2, #0
+ sub r0, #0xc
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ ldr r0, [r5, #8]
+ bl FUN_02024FF4
+ add r3, r4, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r2, _021D8350 ; =0x0000C014
+ str r3, [sp, #8]
+ add r0, r5, r2
+ add r2, #0x58
+ ldr r2, [r5, r2]
+ mov r1, #1
+ bl FUN_0201BD84
+ ldr r1, _021D8354 ; =0x0000C068
+ mov r2, #1
+ str r0, [r5, r1]
+ sub r0, r1, #4
+ str r2, [r5, r0]
+ b _021D8340
+_021D830A:
+ add r0, r0, #4
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D8340
+ ldr r0, _021D834C ; =0x0000C06C
+ ldr r0, [r5, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8348 ; =0x0000C064
+ mov r1, #2
+ str r1, [r5, r0]
+ b _021D8340
+_021D832A:
+ cmp r2, #0
+ bne _021D8338
+ ldr r0, _021D8358 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021D8340
+_021D8338:
+ ldr r0, _021D8348 ; =0x0000C064
+ mov r1, #0
+ str r1, [r5, r0]
+ mov r4, #1
+_021D8340:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D8348: .word 0x0000C064
+_021D834C: .word 0x0000C06C
+_021D8350: .word 0x0000C014
+_021D8354: .word 0x0000C068
+_021D8358: .word 0x021C48B8
+ thumb_func_end MOD77_021D8294
+
+ thumb_func_start MOD77_021D835C
+MOD77_021D835C: ; 0x021D835C
+ push {r3, lr}
+ cmp r2, #0
+ bne _021D8368
+ ldr r0, _021D836C ; =0x000005DC
+ bl FUN_020054C8
+_021D8368:
+ pop {r3, pc}
+ nop
+_021D836C: .word 0x000005DC
+ thumb_func_end MOD77_021D835C
+
+ thumb_func_start MOD77_021D8370
+MOD77_021D8370: ; 0x021D8370
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, _021D8400 ; =0x0000C010
+ add r6, r3, #0
+ ldr r0, [r5, r0]
+ str r1, [sp]
+ bl FUN_02019150
+ ldrh r0, [r6, #0x10]
+ ldr r1, [r5]
+ bl FUN_02012838
+ ldr r1, _021D8404 ; =0x0000C058
+ mov r7, #0
+ str r0, [r5, r1]
+ ldrh r0, [r6, #0x10]
+ cmp r0, #0
+ ble _021D83B2
+ ldr r4, [sp, #0x38]
+_021D8398:
+ ldr r0, _021D8404 ; =0x0000C058
+ ldr r1, _021D8408 ; =0x0000C060
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ ldrh r0, [r6, #0x10]
+ add r7, r7, #1
+ add r4, #8
+ cmp r7, r0
+ blt _021D8398
+_021D83B2:
+ add r3, sp, #4
+ add r2, r3, #0
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, _021D8404 ; =0x0000C058
+ mov r1, #0
+ ldr r0, [r5, r0]
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ str r0, [sp, #0x10]
+ ldr r0, _021D840C ; =MOD77_021D835C
+ str r0, [sp, #8]
+ ldr r3, [r5]
+ add r0, r2, #0
+ lsl r3, r3, #0x18
+ add r2, r1, #0
+ lsr r3, r3, #0x18
+ bl FUN_020010A8
+ ldr r1, _021D8410 ; =0x0000C054
+ ldr r2, _021D8414 ; =0x000001D9
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ mov r3, #7
+ bl FUN_0200CCA4
+ ldr r0, [sp]
+ bl FUN_020191D0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8400: .word 0x0000C010
+_021D8404: .word 0x0000C058
+_021D8408: .word 0x0000C060
+_021D840C: .word MOD77_021D835C
+_021D8410: .word 0x0000C054
+_021D8414: .word 0x000001D9
+ thumb_func_end MOD77_021D8370
+
+ thumb_func_start MOD77_021D8418
+MOD77_021D8418: ; 0x021D8418
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ ldr r0, _021D84C4 ; =0x0000C010
+ str r1, [sp]
+ ldr r0, [r5, r0]
+ str r3, [sp, #4]
+ ldr r7, [sp, #0x44]
+ ldr r6, [sp, #0x48]
+ bl FUN_02019150
+ ldr r2, [sp, #0x40]
+ ldr r3, [r5]
+ mov r0, #0
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ str r0, [sp, #8]
+ ldr r1, [r5]
+ add r0, r6, #0
+ bl FUN_02012838
+ ldr r1, _021D84C8 ; =0x0000C058
+ mov r4, #0
+ str r0, [r5, r1]
+ cmp r6, #0
+ bls _021D8462
+_021D844E:
+ ldr r0, _021D84C8 ; =0x0000C058
+ ldrb r2, [r7, r4]
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #8]
+ add r3, r4, #0
+ bl FUN_02012880
+ add r4, r4, #1
+ cmp r4, r6
+ blo _021D844E
+_021D8462:
+ ldr r0, [sp, #8]
+ bl FUN_0200A8B8
+ ldr r4, [sp, #4]
+ add r3, sp, #0xc
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ str r4, [sp, #4]
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ str r4, [sp, #4]
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ str r4, [sp, #4]
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, _021D84C8 ; =0x0000C058
+ mov r1, #0
+ ldr r0, [r5, r0]
+ str r4, [sp, #4]
+ str r0, [sp, #0xc]
+ add r0, sp, #0xc
+ strh r6, [r0, #0x10]
+ ldr r0, [sp]
+ str r0, [sp, #0x18]
+ ldr r0, _021D84CC ; =MOD77_021D835C
+ str r0, [sp, #0x10]
+ ldr r3, [r5]
+ add r0, r2, #0
+ lsl r3, r3, #0x18
+ add r2, r1, #0
+ lsr r3, r3, #0x18
+ bl FUN_020010A8
+ ldr r1, _021D84D0 ; =0x0000C054
+ ldr r2, _021D84D4 ; =0x000001D9
+ str r0, [r5, r1]
+ ldr r0, [sp, #0x18]
+ mov r1, #1
+ mov r3, #7
+ bl FUN_0200CCA4
+ ldr r0, [sp]
+ bl FUN_020191D0
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D84C4: .word 0x0000C010
+_021D84C8: .word 0x0000C058
+_021D84CC: .word MOD77_021D835C
+_021D84D0: .word 0x0000C054
+_021D84D4: .word 0x000001D9
+ thumb_func_end MOD77_021D8418
+
+ thumb_func_start MOD77_021D84D8
+MOD77_021D84D8: ; 0x021D84D8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D8504 ; =0x0000C024
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _021D8504 ; =0x0000C024
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _021D8508 ; =0x0000C054
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _021D850C ; =0x0000C058
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ pop {r4, pc}
+ .align 2, 0
+_021D8504: .word 0x0000C024
+_021D8508: .word 0x0000C054
+_021D850C: .word 0x0000C058
+ thumb_func_end MOD77_021D84D8
+
+ thumb_func_start MOD77_021D8510
+MOD77_021D8510: ; 0x021D8510
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #1
+ ldr r1, [r5]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ add r4, r0, #0
+ mov r0, #1
+ ldr r1, [r5]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ ldr r1, _021D85C4 ; =0x0000C010
+ add r6, r0, #0
+ ldr r0, [r5, r1]
+ add r1, #0x34
+ ldr r2, _021D85C8 ; =0x021D8F28
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x30
+ str r0, [sp, #4]
+ ldr r0, _021D85CC ; =0x0000C044
+ mov r2, #0
+ add r0, r5, r0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl FUN_020196F4
+ ldr r0, _021D85CC ; =0x0000C044
+ ldr r2, _021D85D0 ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #0
+ mov r3, #7
+ bl FUN_0200CCA4
+ ldr r0, _021D85D4 ; =0x0000C070
+ ldr r2, _021D85D8 ; =0x0000C314
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ mov r1, #0
+ bl FUN_0200B4A0
+ ldr r3, _021D85D8 ; =0x0000C314
+ ldr r0, _021D85D4 ; =0x0000C070
+ ldr r2, [r5, r3]
+ add r3, r3, #4
+ ldr r0, [r5, r0]
+ ldr r3, [r5, r3]
+ mov r1, #1
+ bl FUN_0200B4D8
+ ldr r0, _021D85DC ; =0x0000C060
+ mov r1, #0xd
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ ldr r0, _021D85D4 ; =0x0000C070
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ ldr r0, _021D85CC ; =0x0000C044
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r5, r0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, _021D85CC ; =0x0000C044
+ add r0, r5, r0
+ bl FUN_020191D0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D85C4: .word 0x0000C010
+_021D85C8: .word 0x021D8F28
+_021D85CC: .word 0x0000C044
+_021D85D0: .word 0x000001D9
+_021D85D4: .word 0x0000C070
+_021D85D8: .word 0x0000C314
+_021D85DC: .word 0x0000C060
+ thumb_func_end MOD77_021D8510
+
+ thumb_func_start MOD77_021D85E0
+MOD77_021D85E0: ; 0x021D85E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ str r1, [sp, #0xc]
+ ldr r1, [r5]
+ mov r0, #0x40
+ add r4, r2, #0
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldr r1, [r5]
+ mov r0, #0x40
+ bl FUN_020219F4
+ ldr r1, _021D8688 ; =0x0000C010
+ add r6, r0, #0
+ ldr r0, [r5, r1]
+ add r1, #0x34
+ ldr r2, _021D868C ; =0x021D8F28
+ add r1, r5, r1
+ bl FUN_02019150
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x30
+ str r0, [sp, #4]
+ ldr r0, _021D8690 ; =0x0000C044
+ mov r2, #0
+ add r0, r5, r0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl FUN_020196F4
+ ldr r0, _021D8690 ; =0x0000C044
+ ldr r2, _021D8694 ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #0
+ mov r3, #7
+ bl FUN_0200CCA4
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [sp]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD77_021D8E9C
+ cmp r4, #0
+ beq _021D865C
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ ldr r0, _021D8690 ; =0x0000C044
+ add r2, r6, #0
+ add r0, r5, r0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+_021D865C:
+ mov r1, #0
+ ldr r0, _021D8690 ; =0x0000C044
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r5, r0
+ add r2, r7, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ ldr r0, _021D8690 ; =0x0000C044
+ add r0, r5, r0
+ bl FUN_020191D0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8688: .word 0x0000C010
+_021D868C: .word 0x021D8F28
+_021D8690: .word 0x0000C044
+_021D8694: .word 0x000001D9
+ thumb_func_end MOD77_021D85E0
+
+ thumb_func_start MOD77_021D8698
+MOD77_021D8698: ; 0x021D8698
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D86B0 ; =0x0000C044
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _021D86B0 ; =0x0000C044
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r4, pc}
+ .align 2, 0
+_021D86B0: .word 0x0000C044
+ thumb_func_end MOD77_021D8698
+
+ thumb_func_start MOD77_021D86B4
+MOD77_021D86B4: ; 0x021D86B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, _021D8808 ; =0x0000C328
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ bne _021D870E
+ mov r0, #1
+ ldr r1, [r5]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ add r4, r0, #0
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x30
+ str r0, [sp, #4]
+ ldr r0, _021D880C ; =0x0000C014
+ mov r2, #0
+ add r0, r5, r0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl FUN_020196F4
+ ldr r0, _021D8810 ; =0x0000C060
+ mov r1, #0xe
+ ldr r0, [r5, r0]
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r3, #0
+ ldr r0, _021D880C ; =0x0000C014
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r0, r5, r0
+ mov r1, #1
+ add r2, r4, #0
+ str r3, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_021D870E:
+ add r2, r0, #0
+ sub r2, #0x74
+ ldr r3, [r5, r2]
+ mov r1, #0
+ add r2, r3, #0
+ sub r2, #0x30
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add r3, #0x30
+ str r2, [sp, #0x18]
+ lsl r2, r3, #0x10
+ asr r2, r2, #0x10
+ sub r0, #0x70
+ str r2, [sp, #0x14]
+ ldr r2, [r5, r0]
+ str r1, [sp, #0x1c]
+ add r0, r2, #0
+ sub r0, #0x30
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r2, #0x30
+ str r0, [sp, #0x10]
+ lsl r0, r2, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bls _021D87FA
+ add r4, r5, #0
+_021D8748:
+ mov r0, #0x10
+ ldrsh r2, [r4, r0]
+ ldr r0, [sp, #0x18]
+ cmp r2, r0
+ ble _021D87EC
+ ldr r0, [sp, #0x14]
+ cmp r2, r0
+ bge _021D87EC
+ mov r0, #0x12
+ ldrsh r2, [r4, r0]
+ ldr r0, [sp, #0x10]
+ cmp r2, r0
+ ble _021D87EC
+ ldr r0, [sp, #0xc]
+ cmp r2, r0
+ bge _021D87EC
+ ldrh r0, [r4, #0x38]
+ cmp r0, #0
+ beq _021D87EC
+ ldr r1, [r5]
+ mov r0, #0x40
+ bl FUN_020219F4
+ add r7, r0, #0
+ ldr r1, [r5]
+ mov r0, #0x40
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x30
+ str r0, [sp, #4]
+ ldr r0, _021D880C ; =0x0000C014
+ mov r2, #0
+ add r0, r5, r0
+ mov r1, #0xf
+ add r3, r2, #0
+ bl FUN_020196F4
+ ldr r0, [r5]
+ add r2, r7, #0
+ str r0, [sp]
+ ldrh r0, [r4, #0x3a]
+ ldrh r1, [r4, #0x3c]
+ add r3, r6, #0
+ bl MOD77_021D8E9C
+ ldrh r0, [r4, #0x3c]
+ cmp r0, #0
+ beq _021D87C8
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, _021D880C ; =0x0000C014
+ mov r1, #1
+ add r0, r5, r0
+ add r2, r6, #0
+ mov r3, #0
+ bl FUN_0201BD84
+_021D87C8:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _021D880C ; =0x0000C014
+ mov r1, #1
+ add r0, r5, r0
+ add r2, r7, #0
+ mov r3, #0
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r1, #1
+_021D87EC:
+ ldr r0, [sp, #0x1c]
+ ldr r2, [r5, #0xc]
+ add r0, r0, #1
+ add r4, #0x30
+ str r0, [sp, #0x1c]
+ cmp r0, r2
+ blo _021D8748
+_021D87FA:
+ cmp r1, #0
+ bne _021D8804
+ ldr r0, _021D8808 ; =0x0000C328
+ mov r1, #0
+ str r1, [r5, r0]
+_021D8804:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8808: .word 0x0000C328
+_021D880C: .word 0x0000C014
+_021D8810: .word 0x0000C060
+ thumb_func_end MOD77_021D86B4
+
+ thumb_func_start MOD77_021D8814
+MOD77_021D8814: ; 0x021D8814
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4]
+ mov r0, #0x81
+ mov r1, #0
+ bl LoadFromNarc_2
+ ldr r2, _021D88B4 ; =0x0000C0CC
+ str r0, [r4, r2]
+ add r0, r2, #0
+ sub r1, r2, #4
+ sub r0, #0x58
+ add r0, r4, r0
+ add r1, r4, r1
+ add r2, r4, r2
+ bl FUN_0201B234
+ ldr r2, [r4]
+ mov r0, #0x81
+ mov r1, #1
+ bl LoadFromNarc_2
+ ldr r2, _021D88B8 ; =0x0000C294
+ str r0, [r4, r2]
+ add r0, r2, #0
+ add r1, r2, #0
+ sub r0, #0xc8
+ sub r1, #0x14
+ add r0, r4, r0
+ add r1, r4, r1
+ add r2, r4, r2
+ bl FUN_0201B234
+ ldr r2, [r4]
+ mov r0, #0x81
+ mov r1, #2
+ bl LoadFromNarc_2
+ ldr r2, _021D88BC ; =0x0000C298
+ str r0, [r4, r2]
+ add r0, r2, #0
+ add r1, r2, #0
+ sub r0, #0x78
+ sub r1, #0x14
+ add r0, r4, r0
+ add r1, r4, r1
+ add r2, r4, r2
+ bl FUN_0201B234
+ ldr r2, [r4]
+ mov r0, #0x81
+ mov r1, #3
+ bl LoadFromNarc_2
+ ldr r2, _021D88C0 ; =0x0000C28C
+ str r0, [r4, r2]
+ add r1, r2, #0
+ ldr r0, _021D88C4 ; =0x0000C124
+ sub r1, #0x14
+ add r0, r4, r0
+ add r1, r4, r1
+ add r2, r4, r2
+ bl FUN_0201B234
+ ldr r2, [r4]
+ mov r0, #0x81
+ mov r1, #4
+ bl LoadFromNarc_2
+ ldr r2, _021D88C8 ; =0x0000C290
+ str r0, [r4, r2]
+ add r1, r2, #0
+ ldr r0, _021D88CC ; =0x0000C178
+ sub r1, #0x14
+ add r0, r4, r0
+ add r1, r4, r1
+ add r2, r4, r2
+ bl FUN_0201B234
+ pop {r4, pc}
+ .align 2, 0
+_021D88B4: .word 0x0000C0CC
+_021D88B8: .word 0x0000C294
+_021D88BC: .word 0x0000C298
+_021D88C0: .word 0x0000C28C
+_021D88C4: .word 0x0000C124
+_021D88C8: .word 0x0000C290
+_021D88CC: .word 0x0000C178
+ thumb_func_end MOD77_021D8814
+
+ thumb_func_start MOD77_021D88D0
+MOD77_021D88D0: ; 0x021D88D0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D8900 ; =0x0000C290
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021D8904 ; =0x0000C28C
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021D8908 ; =0x0000C298
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021D890C ; =0x0000C294
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021D8910 ; =0x0000C0CC
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ pop {r4, pc}
+ nop
+_021D8900: .word 0x0000C290
+_021D8904: .word 0x0000C28C
+_021D8908: .word 0x0000C298
+_021D890C: .word 0x0000C294
+_021D8910: .word 0x0000C0CC
+ thumb_func_end MOD77_021D88D0
+
+ thumb_func_start MOD77_021D8914
+MOD77_021D8914: ; 0x021D8914
+ push {r4, r5}
+ ldr r1, _021D896C ; =0x0000C29C
+ mov r3, #0
+ str r3, [r0, r1]
+ add r2, r1, #4
+ str r3, [r0, r2]
+ add r2, r1, #0
+ add r2, #8
+ str r3, [r0, r2]
+ mov r2, #1
+ add r4, r1, #0
+ lsl r2, r2, #0xc
+ add r4, #0xc
+ str r2, [r0, r4]
+ add r4, r1, #0
+ add r4, #0x10
+ str r2, [r0, r4]
+ add r4, r1, #0
+ add r4, #0x14
+ str r2, [r0, r4]
+ mov r5, #0x69
+ add r4, r1, #0
+ lsl r5, r5, #6
+ add r4, #0x18
+ str r5, [r0, r4]
+ mov r5, #0x1f
+ add r4, r1, #0
+ lsl r5, r5, #0xa
+ add r4, #0x1c
+ str r5, [r0, r4]
+ add r4, r1, #0
+ add r4, #0x20
+ str r3, [r0, r4]
+ add r3, r1, #0
+ add r3, #0x24
+ str r2, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x28
+ str r2, [r0, r3]
+ add r1, #0x2c
+ str r2, [r0, r1]
+ pop {r4, r5}
+ bx lr
+ nop
+_021D896C: .word 0x0000C29C
+ thumb_func_end MOD77_021D8914
+
+ thumb_func_start MOD77_021D8970
+MOD77_021D8970: ; 0x021D8970
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ ldr r6, _021D89E4 ; =0x021D8F48
+ add r4, r0, #0
+ ldmia r6!, {r0, r1}
+ add r5, sp, #8
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r5]
+ add r7, sp, #0x14
+ mov r3, #0
+ str r3, [r7]
+ str r3, [r7, #4]
+ str r3, [r7, #8]
+ ldr r0, _021D89E8 ; =0x0000C2CC
+ str r3, [sp]
+ ldr r0, [r4, r0]
+ ldr r2, _021D89EC ; =0x000005C1
+ str r0, [sp, #4]
+ add r0, r7, #0
+ bl FUN_0201ED5C
+ ldr r2, _021D89E8 ; =0x0000C2CC
+ mov r1, #0x19
+ ldr r2, [r4, r2]
+ mov r0, #0
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ ldr r1, _021D89E8 ; =0x0000C2CC
+ mov r0, #0
+ ldr r1, [r4, r1]
+ bl FUN_0201EE2C
+ ldr r0, _021D89E8 ; =0x0000C2CC
+ ldr r0, [r4, r0]
+ bl FUN_0201EB8C
+ ldr r0, _021D89F0 ; =0x0000C2F4
+ ldrh r1, [r4, r0]
+ cmp r1, #0
+ bne _021D89D0
+ mov r1, #1
+ sub r0, #0x1c
+ strh r1, [r4, r0]
+ b _021D89D6
+_021D89D0:
+ mov r1, #0
+ sub r0, #0x1c
+ strh r1, [r4, r0]
+_021D89D6:
+ add r0, r4, #0
+ bl MOD77_021D8CF8
+ cmp r0, #1
+ bne _021D89D6
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D89E4: .word 0x021D8F48
+_021D89E8: .word 0x0000C2CC
+_021D89EC: .word 0x000005C1
+_021D89F0: .word 0x0000C2F4
+ thumb_func_end MOD77_021D8970
+
+ thumb_func_start MOD77_021D89F4
+MOD77_021D89F4: ; 0x021D89F4
+ push {r4, lr}
+ ldr r3, _021D8A28 ; =0x0000C2DC
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [r4, r3]
+ add r1, r3, #4
+ str r0, [r4, r1]
+ add r1, r3, #0
+ ldr r2, _021D8A2C ; =0xFFFFF001
+ add r1, #8
+ str r2, [r4, r1]
+ ldr r1, [r4, r3]
+ add r2, r3, #4
+ add r3, #8
+ ldr r2, [r4, r2]
+ ldr r3, [r4, r3]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl FUN_020B8418
+ pop {r4, pc}
+ nop
+_021D8A28: .word 0x0000C2DC
+_021D8A2C: .word 0xFFFFF001
+ thumb_func_end MOD77_021D89F4
+
+ thumb_func_start MOD77_021D8A30
+MOD77_021D8A30: ; 0x021D8A30
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ ldr r1, [r4, #4]
+ ldr r3, _021D8AA4 ; =0x020FFA38
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ asr r1, r1, #4
+ lsl r2, r1, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r5, r0, #0
+ bl MTX_RotY33_
+ ldr r0, [r4]
+ ldr r3, _021D8AA4 ; =0x020FFA38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #0
+ bl MTX_RotX33_
+ add r0, r5, #0
+ add r1, sp, #0
+ add r2, r5, #0
+ bl MTX_Concat33
+ ldr r0, [r4, #8]
+ ldr r3, _021D8AA4 ; =0x020FFA38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #0
+ bl MTX_RotZ33_
+ add r0, r5, #0
+ add r1, sp, #0
+ add r2, r5, #0
+ bl MTX_Concat33
+ add sp, #0x24
+ pop {r4, r5, pc}
+ nop
+_021D8AA4: .word 0x020FFA38
+ thumb_func_end MOD77_021D8A30
+
+ thumb_func_start MOD77_021D8AA8
+MOD77_021D8AA8: ; 0x021D8AA8
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ ldr r1, [r4]
+ ldr r3, _021D8B1C ; =0x020FFA38
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ asr r1, r1, #4
+ lsl r2, r1, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r5, r0, #0
+ bl MTX_RotY33_
+ ldr r0, [r4, #4]
+ ldr r3, _021D8B1C ; =0x020FFA38
+ neg r0, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #0
+ bl MTX_RotX33_
+ add r0, r5, #0
+ add r1, sp, #0
+ add r2, r5, #0
+ bl MTX_Concat33
+ ldr r0, [r4, #8]
+ ldr r3, _021D8B1C ; =0x020FFA38
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ add r1, r2, #1
+ lsl r1, r1, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #0
+ bl MTX_RotZ33_
+ add r0, r5, #0
+ add r1, sp, #0
+ add r2, r5, #0
+ bl MTX_Concat33
+ add sp, #0x24
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D8B1C: .word 0x020FFA38
+ thumb_func_end MOD77_021D8AA8
+
+ thumb_func_start MOD77_021D8B20
+MOD77_021D8B20: ; 0x021D8B20
+ push {r3, r4, r5, r6, r7, lr}
+ add r3, r0, #0
+ ldr r0, _021D8CD8 ; =0x0000C2B4
+ add r7, r2, #0
+ add r4, r0, #4
+ ldr r4, [r3, r4]
+ ldr r2, [r3, r0]
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ lsl r2, r2, #0x10
+ mov lr, r4
+ mov r4, #1
+ mov r6, #0
+ asr r2, r2, #0x10
+ tst r1, r4
+ bne _021D8B4E
+ add r1, r0, #0
+ add r1, #0x44
+ ldr r4, [r3, r1]
+ mov r1, #1
+ mov ip, r4
+ tst r1, r4
+ beq _021D8B72
+_021D8B4E:
+ ldr r1, _021D8CDC ; =0x0000C2F4
+ ldrh r0, [r3, r1]
+ cmp r0, #1
+ bne _021D8B6E
+ add r0, r1, #0
+ sub r0, #0x1c
+ ldrh r0, [r3, r0]
+ cmp r0, #0
+ bne _021D8B68
+ mov r0, #1
+ sub r1, #0x1c
+ strh r0, [r3, r1]
+ b _021D8B6E
+_021D8B68:
+ mov r0, #0
+ sub r1, #0x1c
+ strh r0, [r3, r1]
+_021D8B6E:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D8B72:
+ add r1, r0, #0
+ add r1, #0x24
+ ldrh r1, [r3, r1]
+ cmp r1, #0
+ bne _021D8BA4
+ add r1, r0, #0
+ add r1, #0x54
+ ldr r1, [r3, r1]
+ cmp r1, #0
+ bne _021D8B8E
+ add r0, #0x58
+ ldr r0, [r3, r0]
+ cmp r0, #0
+ beq _021D8B9C
+_021D8B8E:
+ lsl r0, r1, #0x16
+ ldr r1, _021D8CE0 ; =0x0000C30C
+ lsr r0, r0, #0x10
+ ldr r1, [r3, r1]
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x10
+ b _021D8BC8
+_021D8B9C:
+ mov r0, #1
+ lsl r0, r0, #9
+ add r1, r0, #0
+ b _021D8BC8
+_021D8BA4:
+ add r1, r0, #0
+ add r1, #0x54
+ ldr r1, [r3, r1]
+ cmp r1, #0
+ bne _021D8BB6
+ add r0, #0x58
+ ldr r0, [r3, r0]
+ cmp r0, #0
+ beq _021D8BC4
+_021D8BB6:
+ lsl r0, r1, #0x12
+ ldr r1, _021D8CE0 ; =0x0000C30C
+ lsr r0, r0, #0x10
+ ldr r1, [r3, r1]
+ lsl r1, r1, #0x12
+ lsr r1, r1, #0x10
+ b _021D8BC8
+_021D8BC4:
+ mov r0, #0x20
+ add r1, r0, #0
+_021D8BC8:
+ mov r4, #0x20
+ tst r4, r7
+ bne _021D8BD6
+ mov r5, ip
+ mov r4, #0x20
+ tst r4, r5
+ beq _021D8C02
+_021D8BD6:
+ ldr r6, _021D8CDC ; =0x0000C2F4
+ ldrh r4, [r3, r6]
+ cmp r4, #1
+ bne _021D8BEC
+ add r4, r6, #0
+ sub r4, #0x3c
+ ldr r4, [r3, r4]
+ sub r6, #0x3c
+ add r4, r4, r0
+ str r4, [r3, r6]
+ b _021D8C00
+_021D8BEC:
+ ldr r5, _021D8CE4 ; =0xFFFFD820
+ mov r4, lr
+ cmp r4, r5
+ bge _021D8C00
+ add r4, r6, #0
+ sub r4, #0x3c
+ ldr r4, [r3, r4]
+ sub r6, #0x3c
+ add r4, r4, r0
+ str r4, [r3, r6]
+_021D8C00:
+ mov r6, #1
+_021D8C02:
+ mov r4, #0x10
+ tst r4, r7
+ bne _021D8C12
+ ldr r4, _021D8CE8 ; =0x0000C2F8
+ ldr r5, [r3, r4]
+ mov r4, #0x10
+ tst r4, r5
+ beq _021D8C3E
+_021D8C12:
+ ldr r5, _021D8CDC ; =0x0000C2F4
+ ldrh r4, [r3, r5]
+ cmp r4, #1
+ bne _021D8C28
+ add r4, r5, #0
+ sub r4, #0x3c
+ ldr r4, [r3, r4]
+ sub r5, #0x3c
+ sub r0, r4, r0
+ str r0, [r3, r5]
+ b _021D8C3C
+_021D8C28:
+ ldr r4, _021D8CEC ; =0xFFFFCC80
+ mov r6, lr
+ cmp r6, r4
+ ble _021D8C3C
+ add r4, r5, #0
+ sub r4, #0x3c
+ ldr r4, [r3, r4]
+ sub r5, #0x3c
+ sub r0, r4, r0
+ str r0, [r3, r5]
+_021D8C3C:
+ mov r6, #1
+_021D8C3E:
+ mov r4, #0x40
+ add r0, r7, #0
+ tst r0, r4
+ bne _021D8C4E
+ ldr r0, _021D8CE8 ; =0x0000C2F8
+ ldr r0, [r3, r0]
+ tst r0, r4
+ beq _021D8C88
+_021D8C4E:
+ ldr r4, _021D8CDC ; =0x0000C2F4
+ ldrh r0, [r3, r4]
+ cmp r0, #1
+ bne _021D8C74
+ mov r0, #0x3e
+ add r5, r2, r1
+ lsl r0, r0, #8
+ cmp r5, r0
+ bge _021D8C6E
+ add r0, r4, #0
+ sub r0, #0x40
+ ldr r0, [r3, r0]
+ sub r4, #0x40
+ add r0, r0, r1
+ str r0, [r3, r4]
+ b _021D8C86
+_021D8C6E:
+ sub r4, #0x40
+ str r0, [r3, r4]
+ b _021D8C86
+_021D8C74:
+ ldr r0, _021D8CF0 ; =0x00002020
+ cmp r2, r0
+ bge _021D8C86
+ add r0, r4, #0
+ sub r0, #0x40
+ ldr r0, [r3, r0]
+ sub r4, #0x40
+ add r0, r0, r1
+ str r0, [r3, r4]
+_021D8C86:
+ mov r6, #1
+_021D8C88:
+ mov r4, #0x80
+ add r0, r7, #0
+ tst r0, r4
+ bne _021D8C98
+ ldr r0, _021D8CE8 ; =0x0000C2F8
+ ldr r0, [r3, r0]
+ tst r0, r4
+ beq _021D8CD2
+_021D8C98:
+ ldr r4, _021D8CDC ; =0x0000C2F4
+ ldrh r0, [r3, r4]
+ cmp r0, #1
+ bne _021D8CBC
+ ldr r0, _021D8CF4 ; =0xFFFFC200
+ sub r2, r2, r1
+ cmp r2, r0
+ ble _021D8CB6
+ add r0, r4, #0
+ sub r0, #0x40
+ ldr r0, [r3, r0]
+ sub r4, #0x40
+ sub r0, r0, r1
+ str r0, [r3, r4]
+ b _021D8CD0
+_021D8CB6:
+ sub r4, #0x40
+ str r0, [r3, r4]
+ b _021D8CD0
+_021D8CBC:
+ mov r0, #0x13
+ lsl r0, r0, #8
+ cmp r2, r0
+ ble _021D8CD0
+ add r0, r4, #0
+ sub r0, #0x40
+ ldr r0, [r3, r0]
+ sub r4, #0x40
+ sub r0, r0, r1
+ str r0, [r3, r4]
+_021D8CD0:
+ mov r6, #1
+_021D8CD2:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8CD8: .word 0x0000C2B4
+_021D8CDC: .word 0x0000C2F4
+_021D8CE0: .word 0x0000C30C
+_021D8CE4: .word 0xFFFFD820
+_021D8CE8: .word 0x0000C2F8
+_021D8CEC: .word 0xFFFFCC80
+_021D8CF0: .word 0x00002020
+_021D8CF4: .word 0xFFFFC200
+ thumb_func_end MOD77_021D8B20
+
+ thumb_func_start MOD77_021D8CF8
+MOD77_021D8CF8: ; 0x021D8CF8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D8D7C ; =0x0000C2CC
+ ldr r0, [r5, r0]
+ bl FUN_0201F010
+ ldr r1, _021D8D80 ; =0x0000C2D8
+ mov r4, #0
+ ldrh r2, [r5, r1]
+ cmp r2, #0
+ beq _021D8D42
+ cmp r2, #1
+ bne _021D8D70
+ mov r2, #0x16
+ lsl r2, r2, #0xe
+ cmp r0, r2
+ ble _021D8D3A
+ mov r2, #2
+ lsl r2, r2, #0xe
+ sub r0, r0, r2
+ add r2, r1, #0
+ sub r2, #0x18
+ ldr r3, [r5, r2]
+ add r2, r1, #0
+ sub r3, #0x80
+ sub r2, #0x18
+ str r3, [r5, r2]
+ add r2, r1, #0
+ sub r2, #0x18
+ ldr r2, [r5, r2]
+ sub r1, #0x14
+ str r2, [r5, r1]
+ b _021D8D70
+_021D8D3A:
+ mov r0, #5
+ lsl r0, r0, #0x10
+ mov r4, #1
+ b _021D8D70
+_021D8D42:
+ mov r2, #0x12
+ lsl r2, r2, #0x10
+ cmp r0, r2
+ bge _021D8D6A
+ mov r2, #2
+ lsl r2, r2, #0xe
+ add r0, r0, r2
+ add r2, r1, #0
+ sub r2, #0x18
+ ldr r3, [r5, r2]
+ add r2, r1, #0
+ add r3, #0x80
+ sub r2, #0x18
+ str r3, [r5, r2]
+ add r2, r1, #0
+ sub r2, #0x18
+ ldr r2, [r5, r2]
+ sub r1, #0x14
+ str r2, [r5, r1]
+ b _021D8D70
+_021D8D6A:
+ mov r0, #0x4a
+ lsl r0, r0, #0xe
+ mov r4, #1
+_021D8D70:
+ ldr r1, _021D8D7C ; =0x0000C2CC
+ ldr r1, [r5, r1]
+ bl FUN_0201EFE0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8D7C: .word 0x0000C2CC
+_021D8D80: .word 0x0000C2D8
+ thumb_func_end MOD77_021D8CF8
+
+ thumb_func_start MOD77_021D8D84
+MOD77_021D8D84: ; 0x021D8D84
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x70
+ ldr r4, _021D8E74 ; =0x021D8FF4
+ add r5, r0, #0
+ add r3, sp, #0x4c
+ mov r2, #4
+_021D8D90:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D8D90
+ ldr r0, [r4]
+ str r0, [r3]
+ ldr r0, _021D8E78 ; =0x0000C2E8
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D8E6E
+ cmp r0, #1
+ beq _021D8DC2
+ cmp r0, #2
+ bne _021D8E6E
+ bl FUN_020222AC
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020222B4
+ ldr r0, _021D8E78 ; =0x0000C2E8
+ mov r1, #0
+ add sp, #0x70
+ str r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021D8DC2:
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ ldr r1, _021D8E7C ; =0x0000C2B4
+ add r0, sp, #0x4c
+ add r1, r5, r1
+ bl MOD77_021D8A30
+ ldr r3, _021D8E80 ; =0x0000C29C
+ ldr r0, _021D8E84 ; =0x0000C074
+ add r1, r5, r3
+ add r3, #0xc
+ add r0, r5, r0
+ add r2, sp, #0x4c
+ add r3, r5, r3
+ bl FUN_0201B26C
+ ldr r4, _021D8E88 ; =0x021D9060
+ add r3, sp, #0x28
+ mov r2, #4
+_021D8DEC:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D8DEC
+ ldr r0, [r4]
+ add r2, sp, #0x28
+ str r0, [r3]
+ ldr r3, _021D8E8C ; =0x0000C220
+ add r1, r3, #0
+ add r0, r5, r3
+ add r1, #0x7c
+ add r3, #0xa0
+ add r1, r5, r1
+ add r3, r5, r3
+ bl FUN_0201B26C
+ ldr r4, _021D8E90 ; =0x021D9018
+ add r3, sp, #4
+ mov r2, #4
+_021D8E12:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D8E12
+ ldr r0, [r4]
+ mov r7, #0
+ str r0, [r3]
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bls _021D8E66
+ ldr r0, _021D8E94 ; =0x0000C0D0
+ add r6, r5, #0
+ add r0, r5, r0
+ add r6, #0x14
+ add r4, r5, #0
+ str r0, [sp]
+_021D8E32:
+ add r0, r6, #0
+ add r1, sp, #0x4c
+ add r2, sp, #4
+ bl MTX_Concat33
+ ldrh r2, [r4, #0x38]
+ cmp r2, #0
+ beq _021D8E5A
+ add r1, r2, #0
+ mov r0, #0x54
+ mul r1, r0
+ ldr r0, [sp]
+ ldr r3, _021D8E98 ; =0x0000C2C0
+ add r0, r0, r1
+ ldr r1, _021D8E80 ; =0x0000C29C
+ add r2, sp, #4
+ add r1, r5, r1
+ add r3, r5, r3
+ bl FUN_0201B26C
+_021D8E5A:
+ ldr r0, [r5, #0xc]
+ add r7, r7, #1
+ add r6, #0x30
+ add r4, #0x30
+ cmp r7, r0
+ blo _021D8E32
+_021D8E66:
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020222B4
+_021D8E6E:
+ add sp, #0x70
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8E74: .word 0x021D8FF4
+_021D8E78: .word 0x0000C2E8
+_021D8E7C: .word 0x0000C2B4
+_021D8E80: .word 0x0000C29C
+_021D8E84: .word 0x0000C074
+_021D8E88: .word 0x021D9060
+_021D8E8C: .word 0x0000C220
+_021D8E90: .word 0x021D9018
+_021D8E94: .word 0x0000C0D0
+_021D8E98: .word 0x0000C2C0
+ thumb_func_end MOD77_021D8D84
+
+ thumb_func_start MOD77_021D8E9C
+MOD77_021D8E9C: ; 0x021D8E9C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ str r1, [sp]
+ add r6, r2, #0
+ str r3, [sp, #4]
+ bl MOD77_021D7E1C
+ ldr r7, [sp, #0x20]
+ mov r2, #0x99
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ add r3, r7, #0
+ bl FUN_0200A86C
+ str r0, [sp, #8]
+ add r1, r5, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ ldr r0, [sp, #8]
+ bl FUN_0200A8B8
+ cmp r4, #0
+ bne _021D8EDA
+ mov r5, #0
+ mov r4, #1
+ str r5, [sp]
+ b _021D8EDC
+_021D8EDA:
+ mov r5, #1
+_021D8EDC:
+ add r0, r4, #0
+ bl FUN_02088D4C
+ add r2, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ add r3, r7, #0
+ bl FUN_0200A86C
+ ldr r1, [sp]
+ ldr r2, [sp, #4]
+ add r4, r0, #0
+ bl FUN_0200A8E0
+ add r0, r4, #0
+ bl FUN_0200A8B8
+ add r0, r5, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD77_021D8E9C
+
+ thumb_func_start MOD77_021D8F04
+MOD77_021D8F04: ; 0x021D8F04
+ push {r3, lr}
+ bl MOD77_021D7E1C
+ cmp r0, #0
+ beq _021D8F12
+ mov r0, #1
+ pop {r3, pc}
+_021D8F12:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD77_021D8F04
+
+ .section .rodata
+ ; 0x021D8F18
+ .incbin "baserom.nds", 0x2D9638, 0x194
diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s
new file mode 100644
index 00000000..03fb6972
--- /dev/null
+++ b/arm9/modules/78/asm/module_78.s
@@ -0,0 +1,444 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD78_021D74E0
+MOD78_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r2, #2
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x48
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #0xa0
+ mov r2, #0x48
+ bl FUN_02006268
+ mov r1, #0
+ mov r2, #0xa0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r5, r0, #0
+ add r0, r4, #0
+ ldrb r1, [r5]
+ add r0, #0x9c
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x9d
+ strb r1, [r0]
+ mov r0, #0x48
+ bl FUN_0201EB64
+ str r0, [r4]
+ bl MOD78_021D7708
+ add r0, r4, #0
+ bl MOD78_021D778C
+ add r0, sp, #0xc
+ mov r1, #0
+ str r1, [r0]
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ str r1, [sp]
+ str r1, [sp, #4]
+ ldr r1, [r4]
+ ldr r2, _021D75C4 ; =0x021D789C
+ str r1, [sp, #8]
+ ldr r1, _021D75C8 ; =0x0029AEC1
+ ldr r3, _021D75CC ; =0x000005C1
+ bl FUN_0201ECA8
+ ldr r0, [r4]
+ bl FUN_0201EB8C
+ mov r4, #0
+ mov r7, #2
+ mov r6, #4
+_021D7558:
+ ldr r2, [r5, #4]
+ mov r0, #6
+ add r1, r4, #0
+ mul r1, r0
+ add r3, r2, r1
+ ldrsh r1, [r2, r1]
+ ldrsh r2, [r3, r7]
+ ldrsh r3, [r3, r6]
+ add r0, r4, #0
+ bl FUN_020B8418
+ ldr r2, [r5, #4]
+ lsl r1, r4, #1
+ add r1, r2, r1
+ ldrh r1, [r1, #0x18]
+ add r0, r4, #0
+ bl FUN_020B8404
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D7558
+ ldr r2, [r5, #4]
+ ldrh r0, [r2, #0x20]
+ ldrh r1, [r2, #0x22]
+ ldr r2, [r2, #0x28]
+ bl FUN_020B83E0
+ ldr r2, [r5, #4]
+ ldrh r0, [r2, #0x24]
+ ldrh r1, [r2, #0x26]
+ ldr r2, [r2, #0x2c]
+ bl FUN_020B83BC
+ ldr r3, [r5, #4]
+ ldr r0, [r3, #0x40]
+ str r0, [sp]
+ ldr r0, [r3, #0x44]
+ str r0, [sp, #4]
+ ldr r0, [r3, #0x30]
+ ldr r1, [r3, #0x34]
+ ldr r2, [r3, #0x38]
+ ldr r3, [r3, #0x3c]
+ bl FUN_020B8390
+ mov r0, #0
+ mov r1, #0x48
+ bl FUN_02079A70
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D75C4: .word 0x021D789C
+_021D75C8: .word 0x0029AEC1
+_021D75CC: .word 0x000005C1
+ thumb_func_end MOD78_021D74E0
+
+ thumb_func_start MOD78_021D75D0
+MOD78_021D75D0: ; 0x021D75D0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x3c
+ ldr r6, _021D76AC ; =0x021D78AC
+ add r2, r0, #0
+ add r5, r1, #0
+ add r4, sp, #0x18
+ mov r3, #4
+_021D75DE:
+ ldmia r6!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _021D75DE
+ ldr r0, [r6]
+ add r3, sp, #0xc
+ str r0, [r4]
+ ldr r4, _021D76B0 ; =0x021D787C
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ add r1, sp, #0
+ str r0, [r3]
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r0, r2, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021D7614
+ cmp r0, #1
+ beq _021D7622
+ b _021D7662
+_021D7614:
+ ldr r0, _021D76B4 ; =0x000006DC
+ bl FUN_020054C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7662
+_021D7622:
+ add r0, r4, #0
+ add r0, #0x9d
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _021D7654
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r2, [r0]
+ mov r0, #1
+ ldr r1, [r2]
+ lsl r0, r0, #0xc
+ add r1, r1, r0
+ ldr r0, [r2, #8]
+ ldrh r0, [r0, #4]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bne _021D7662
+ add r1, r4, #0
+ mov r0, #1
+ add r1, #0x9d
+ strb r0, [r1]
+ mov r1, #0x48
+ bl FUN_02079A70
+ b _021D7662
+_021D7654:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7662
+ add sp, #0x3c
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7662:
+ mov r3, #1
+ mov r2, #0
+ lsl r3, r3, #0xc
+_021D7668:
+ lsl r0, r2, #2
+ add r0, r4, r0
+ add r0, #0x80
+ ldr r1, [r0]
+ ldr r5, [r1, #8]
+ ldr r0, [r1]
+ ldrh r5, [r5, #4]
+ add r0, r0, r3
+ lsl r5, r5, #0xc
+ cmp r0, r5
+ bge _021D7680
+ str r0, [r1]
+_021D7680:
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #4
+ blo _021D7668
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ add r0, r4, #4
+ add r1, sp, #0
+ add r2, sp, #0x18
+ add r3, sp, #0xc
+ bl FUN_0201B26C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020222B4
+ mov r0, #0
+ add sp, #0x3c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D76AC: .word 0x021D78AC
+_021D76B0: .word 0x021D787C
+_021D76B4: .word 0x000006DC
+ thumb_func_end MOD78_021D75D0
+
+ thumb_func_start MOD78_021D76B8
+MOD78_021D76B8: ; 0x021D76B8
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ bl FUN_02006278
+ add r6, r0, #0
+ add r7, r6, #0
+ mov r4, #0
+ add r7, #0x70
+_021D76C8:
+ lsl r0, r4, #2
+ add r5, r6, r0
+ add r1, r5, #0
+ add r1, #0x80
+ ldr r1, [r1]
+ add r0, r7, #0
+ bl thunk_FUN_020ae84c
+ ldr r0, [r5, #0x60]
+ bl FUN_02016A18
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D76C8
+ ldr r0, [r6, #0x5c]
+ bl FUN_02016A18
+ ldr r0, [r6]
+ bl FUN_0201EB70
+ ldr r0, [sp]
+ bl FUN_0200627C
+ bl FUN_0201B398
+ mov r0, #0x48
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD78_021D76B8
+
+ thumb_func_start MOD78_021D7708
+MOD78_021D7708: ; 0x021D7708
+ push {r3, lr}
+ 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, _021D7758 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D775C ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ bl MOD78_021D776C
+ mov r0, #0x48
+ bl FUN_0201B2EC
+ ldr r2, _021D7760 ; =0x04000060
+ ldr r0, _021D7764 ; =0xFFFFCFFF
+ ldrh r1, [r2]
+ and r1, r0
+ mov r0, #0x20
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _021D7768 ; =0x021D7888
+ bl G3X_SetEdgeColorTable
+ bl FUN_0201E7A0
+ pop {r3, pc}
+ nop
+_021D7758: .word 0xFFFFE0FF
+_021D775C: .word 0x04001000
+_021D7760: .word 0x04000060
+_021D7764: .word 0xFFFFCFFF
+_021D7768: .word 0x021D7888
+ thumb_func_end MOD78_021D7708
+
+ thumb_func_start MOD78_021D776C
+MOD78_021D776C: ; 0x021D776C
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7788 ; =0x021D78D0
+ add r3, sp, #0
+ mov r2, #5
+_021D7776:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7776
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7788: .word 0x021D78D0
+ thumb_func_end MOD78_021D776C
+
+ thumb_func_start MOD78_021D778C
+MOD78_021D778C: ; 0x021D778C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x78
+ mov r1, #0x48
+ bl FUN_02006670
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x70
+ mov r1, #0x48
+ mov r2, #4
+ bl FUN_02016B20
+ add r1, r5, #0
+ add r1, #0x9c
+ ldrb r2, [r1]
+ mov r1, #0xa
+ ldr r0, [sp]
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D7878 ; =0x021D7900
+ mov r2, #0x48
+ ldrh r1, [r1, r3]
+ bl FUN_02006704
+ add r1, r5, #0
+ add r2, r5, #0
+ str r0, [r5, #0x5c]
+ add r0, r5, #4
+ add r1, #0x58
+ add r2, #0x5c
+ bl FUN_0201B234
+ ldr r0, [r5, #0x5c]
+ bl FUN_020BC0FC
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x58]
+ mov r1, #0
+ mov r2, #0x40
+ bl FUN_020BC094
+ ldr r0, [r5, #0x58]
+ mov r1, #0
+ mov r2, #0x80
+ bl FUN_020BC094
+ mov r2, #2
+ ldr r0, [r5, #0x58]
+ mov r1, #0
+ lsl r2, r2, #8
+ bl FUN_020BC094
+ mov r2, #1
+ ldr r0, [r5, #0x58]
+ mov r1, #0
+ lsl r2, r2, #0xa
+ bl FUN_020BC094
+ add r0, r5, #0
+ str r0, [sp, #8]
+ add r0, #0x70
+ mov r6, #0
+ str r0, [sp, #8]
+_021D780E:
+ add r1, r5, #0
+ add r1, #0x9c
+ ldrb r3, [r1]
+ lsl r0, r6, #2
+ add r4, r5, r0
+ add r2, r3, #0
+ mov r1, #0xa
+ mul r2, r1
+ ldr r3, _021D7878 ; =0x021D7900
+ lsl r1, r6, #1
+ add r2, r3, r2
+ add r1, r1, r2
+ ldrh r1, [r1, #2]
+ ldr r0, [sp]
+ mov r2, #0x48
+ bl FUN_02006704
+ str r0, [r4, #0x60]
+ mov r1, #0
+ bl FUN_020BC4C8
+ add r7, r0, #0
+ ldr r0, [sp, #8]
+ ldr r2, [r5, #0x58]
+ add r1, r7, #0
+ bl FUN_020BB8D0
+ add r1, r4, #0
+ add r1, #0x80
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ ldr r2, [r5, #0x58]
+ ldr r3, [sp, #4]
+ add r1, r7, #0
+ bl FUN_020B8110
+ add r4, #0x80
+ ldr r1, [r4]
+ add r0, r5, #4
+ bl FUN_020B7EFC
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #4
+ blo _021D780E
+ ldr r0, [sp]
+ bl FUN_020066F4
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7878: .word 0x021D7900
+ thumb_func_end MOD78_021D778C
+
+ .section .rodata
+ ; 0x021D787C
+ .incbin "baserom.nds", 0x2D9B9C, 0x7C
+
+ .section .data
+ ; 0x021D7900
+ .incbin "baserom.nds", 0x2D9C20, 0x40
diff --git a/arm9/modules/79/asm/module_79_arm.s b/arm9/modules/79/asm/module_79_arm.s
new file mode 100644
index 00000000..3b45bc8c
--- /dev/null
+++ b/arm9/modules/79/asm/module_79_arm.s
@@ -0,0 +1,4890 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ arm_func_start MOD79_0221248C
+MOD79_0221248C: ; 0x0221248C
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ movs r7, r0
+ mov r6, r1
+ mov r5, r2
+ bne _022124B8
+ ldr r0, _02212544 ; =0x02216858
+ ldr r1, _02212548 ; =0x0221686C
+ ldr r3, _0221254C ; =0x000001B7
+ mov r2, #0
+ bl __msl_assertion_failed
+_022124B8:
+ cmp r5, #0
+ bne _022124D4
+ ldr r0, _02212550 ; =0x0221687C
+ ldr r1, _02212548 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x1b8
+ bl __msl_assertion_failed
+_022124D4:
+ ldr r4, [r5]
+ cmp r4, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r3, [r7, #0x10]
+ ldr r0, [r7, #0xc]
+ sub r0, r0, r3
+ cmp r0, #0
+ addle sp, sp, #4
+ movle r0, #0
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ ldr r1, [r7, #4]
+ cmp r4, r0
+ movge r4, r0
+ mov r0, r6
+ mov r2, r4
+ add r1, r1, r3
+ bl memcpy
+ mov r0, #0
+ strb r0, [r6, r4]
+ str r4, [r5]
+ ldr r1, [r7, #0x10]
+ mov r0, #1
+ add r1, r1, r4
+ str r1, [r7, #0x10]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02212544: .word 0x02216858
+_02212548: .word 0x0221686C
+_0221254C: .word 0x000001B7
+_02212550: .word 0x0221687C
+ arm_func_end MOD79_0221248C
+
+ arm_func_start MOD79_02212554
+MOD79_02212554: ; 0x02212554
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #0xc
+ mov r8, r0
+ add r6, sp, #0
+ add r5, sp, #4
+ add r4, r8, #0x60
+ mov r7, #0
+ mvn sb, #0
+_02212574:
+ ldr r0, [r8, #0x48]
+ mov r1, r7
+ mov r2, r6
+ mov r3, r5
+ bl MOD04_021EFF5C
+ cmp r0, sb
+ beq _0221259C
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _022125C4
+_0221259C:
+ mov r0, #1
+ str r0, [r8, #0xfc]
+ mov r0, #5
+ str r0, [r8, #0x38]
+ ldr r0, [r8, #0x48]
+ bl MOD04_021EFB28
+ str r0, [r8, #0x4c]
+ add sp, sp, #0xc
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+_022125C4:
+ ldr r0, [sp]
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ moveq r0, #1
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ ldr r3, [r8, #0x60]
+ ldr r1, [r8, #0x54]
+ ldr r2, [r8, #0x5c]
+ mov r0, r8
+ add r1, r1, r3
+ sub r2, r2, r3
+ bl MOD79_02212F68
+ cmp r0, sb
+ addeq sp, sp, #0xc
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ ldr r1, [r4]
+ add r0, r1, r0
+ str r0, [r4]
+ ldr r1, [r8, #0x60]
+ ldr r0, [r8, #0x5c]
+ cmp r1, r0
+ blt _02212574
+ mov r0, #1
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ arm_func_end MOD79_02212554
+
+ arm_func_start MOD79_0221262C
+MOD79_0221262C: ; 0x0221262C
+ stmdb sp!, {r4, lr}
+ movs r4, r0
+ bne _0221264C
+ ldr r0, _02212664 ; =0x02216888
+ ldr r1, _02212668 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x16c
+ bl __msl_assertion_failed
+_0221264C:
+ mov r1, #0
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x10]
+ ldr r0, [r4, #4]
+ strb r1, [r0]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02212664: .word 0x02216888
+_02212668: .word 0x0221686C
+ arm_func_end MOD79_0221262C
+
+ arm_func_start MOD79_0221266C
+MOD79_0221266C: ; 0x0221266C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x10
+ mov r2, r1
+ mov r4, r0
+ ldr r1, _022126A0 ; =0x02216890
+ add r0, sp, #0
+ bl sprintf
+ add r1, sp, #0
+ mov r0, r4
+ mov r2, #0
+ bl MOD79_02212794
+ add sp, sp, #0x10
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022126A0: .word 0x02216890
+ arm_func_end MOD79_0221266C
+
+ arm_func_start MOD79_022126A4
+MOD79_022126A4: ; 0x022126A4
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ movs r4, r0
+ strb r1, [sp]
+ bne _022126CC
+ ldr r0, _022126F4 ; =0x02216888
+ ldr r1, _022126F8 ; =0x0221686C
+ ldr r3, _022126FC ; =0x00000131
+ mov r2, #0
+ bl __msl_assertion_failed
+_022126CC:
+ cmp r4, #0
+ addeq sp, sp, #8
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ add r1, sp, #0
+ mov r0, r4
+ mov r2, #1
+ bl MOD79_02212794
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022126F4: .word 0x02216888
+_022126F8: .word 0x0221686C
+_022126FC: .word 0x00000131
+ arm_func_end MOD79_022126A4
+
+ arm_func_start MOD79_02212700
+MOD79_02212700: ; 0x02212700
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r4, r2
+ mov r2, #0
+ mov r5, r0
+ bl MOD79_02212794
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, _0221278C ; =0x02216894
+ mov r0, r5
+ mov r2, #2
+ bl MOD79_02212794
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, pc}
+ mov r0, r5
+ mov r1, r4
+ mov r2, #0
+ bl MOD79_02212794
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, _02212790 ; =0x02216898
+ mov r0, r5
+ mov r2, #2
+ bl MOD79_02212794
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_0221278C: .word 0x02216894
+_02212790: .word 0x02216898
+ arm_func_end MOD79_02212700
+
+ arm_func_start MOD79_02212794
+MOD79_02212794: ; 0x02212794
+ stmdb sp!, {r0, r1, r2, r3}
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #0xc
+ movs r7, r0
+ mov r6, r1
+ ldr r5, [r7]
+ bne _022127C4
+ ldr r0, _02212A40 ; =0x02216888
+ ldr r1, _02212A44 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0xb7
+ bl __msl_assertion_failed
+_022127C4:
+ cmp r6, #0
+ bne _022127E0
+ ldr r0, _02212A48 ; =0x0221689C
+ ldr r1, _02212A44 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0xb8
+ bl __msl_assertion_failed
+_022127E0:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ bge _02212800
+ ldr r0, _02212A4C ; =0x022168A4
+ ldr r1, _02212A44 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0xb9
+ bl __msl_assertion_failed
+_02212800:
+ cmp r7, #0
+ addeq sp, sp, #0xc
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ cmp r6, #0
+ addeq sp, sp, #0xc
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, lr}
+ addeq sp, sp, #0x10
+ bxeq lr
+ ldr r0, [sp, #0x28]
+ cmp r0, #0
+ addlt sp, sp, #0xc
+ movlt r0, #0
+ ldmltia sp!, {r4, r5, r6, r7, lr}
+ addlt sp, sp, #0x10
+ bxlt lr
+ cmp r0, #0
+ bne _02212860
+ mov r0, r6
+ bl strlen
+ str r0, [sp, #0x28]
+_02212860:
+ ldr r0, [r7, #0x20]
+ cmp r0, #1
+ bne _02212968
+ ldr r0, [r5, #0x168]
+ cmp r0, #0
+ bne _0221288C
+ ldr r0, _02212A50 ; =0x022168B4
+ ldr r1, _02212A44 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0xce
+ bl __msl_assertion_failed
+_0221288C:
+ ldr r2, [r7, #8]
+ ldr r1, [r7, #0xc]
+ add r0, sp, #8
+ sub r1, r2, r1
+ str r1, [sp, #8]
+ ldr r2, [r7, #4]
+ ldr r1, [r7, #0xc]
+ add r3, sp, #0x28
+ add r1, r2, r1
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r4, [r5, #0x17c]
+ mov r0, r5
+ mov r2, r6
+ add r1, r5, #0x164
+ .word 0xE12FFF34
+ mov r4, r0
+ cmp r4, #2
+ bne _0221294C
+ ldr r0, [r7, #0x18]
+ cmp r0, #0
+ beq _02212910
+ ldr r0, [r7]
+ mov r1, #1
+ str r1, [r0, #0xfc]
+ ldr r0, [r7]
+ mov r1, #2
+ str r1, [r0, #0x38]
+ add sp, sp, #0xc
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ add sp, sp, #0x10
+ bx lr
+_02212910:
+ ldr r1, [r7, #0x14]
+ mov r0, r7
+ bl MOD79_02212CF0
+ cmp r0, #0
+ beq _0221295C
+ ldr r0, [r7]
+ mov r2, #1
+ str r2, [r0, #0xfc]
+ ldr r1, [r7]
+ add sp, sp, #0xc
+ str r2, [r1, #0x38]
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ add sp, sp, #0x10
+ bx lr
+_0221294C:
+ ldr r1, [r7, #0xc]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ str r0, [r7, #0xc]
+_0221295C:
+ cmp r4, #2
+ beq _0221288C
+ b _02212A2C
+_02212968:
+ ldr r2, [r7, #0xc]
+ ldr r1, [sp, #0x28]
+ ldr r0, [r7, #8]
+ add r4, r2, r1
+ cmp r4, r0
+ blt _02212A00
+_02212980:
+ ldr r0, [r7, #0x18]
+ cmp r0, #0
+ beq _022129B8
+ ldr r0, [r7]
+ mov r1, #1
+ str r1, [r0, #0xfc]
+ ldr r0, [r7]
+ mov r1, #2
+ str r1, [r0, #0x38]
+ add sp, sp, #0xc
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ add sp, sp, #0x10
+ bx lr
+_022129B8:
+ ldr r1, [r7, #0x14]
+ mov r0, r7
+ bl MOD79_02212CF0
+ cmp r0, #0
+ bne _022129F4
+ ldr r0, [r7]
+ mov r2, #1
+ str r2, [r0, #0xfc]
+ ldr r1, [r7]
+ add sp, sp, #0xc
+ str r2, [r1, #0x38]
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ add sp, sp, #0x10
+ bx lr
+_022129F4:
+ ldr r0, [r7, #8]
+ cmp r4, r0
+ bge _02212980
+_02212A00:
+ ldr r3, [r7, #4]
+ ldr r0, [r7, #0xc]
+ ldr r2, [sp, #0x28]
+ mov r1, r6
+ add r0, r3, r0
+ bl memcpy
+ str r4, [r7, #0xc]
+ ldr r1, [r7, #4]
+ ldr r0, [r7, #0xc]
+ mov r2, #0
+ strb r2, [r1, r0]
+_02212A2C:
+ mov r0, #1
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, lr}
+ add sp, sp, #0x10
+ bx lr
+ .align 2, 0
+_02212A40: .word 0x02216888
+_02212A44: .word 0x0221686C
+_02212A48: .word 0x0221689C
+_02212A4C: .word 0x022168A4
+_02212A50: .word 0x022168B4
+ arm_func_end MOD79_02212794
+
+ arm_func_start MOD79_02212A54
+MOD79_02212A54: ; 0x02212A54
+ stmdb sp!, {r4, lr}
+ movs r4, r0
+ bne _02212A74
+ ldr r0, _02212AAC ; =0x02216888
+ ldr r1, _02212AB0 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x9b
+ bl __msl_assertion_failed
+_02212A74:
+ cmp r4, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r1, [r4, #0x1c]
+ cmp r1, #0
+ bne _02212A98
+ bl MOD04_021DD82C
+_02212A98:
+ mov r0, r4
+ mov r1, #0
+ mov r2, #0x24
+ bl Call_FillMemWithValue
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02212AAC: .word 0x02216888
+_02212AB0: .word 0x0221686C
+ arm_func_end MOD79_02212A54
+
+ arm_func_start MOD79_02212AB4
+MOD79_02212AB4: ; 0x02212AB4
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ movs r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bne _02212AE4
+ ldr r0, _02212BB0 ; =0x022168F0
+ ldr r1, _02212BB4 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x74
+ bl __msl_assertion_failed
+_02212AE4:
+ cmp r6, #0
+ bne _02212B00
+ ldr r0, _02212BB8 ; =0x02216888
+ ldr r1, _02212BB4 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x75
+ bl __msl_assertion_failed
+_02212B00:
+ cmp r5, #0
+ bne _02212B1C
+ ldr r0, _02212BBC ; =0x022168FC
+ ldr r1, _02212BB4 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x76
+ bl __msl_assertion_failed
+_02212B1C:
+ cmp r4, #0
+ bgt _02212B38
+ ldr r0, _02212BC0 ; =0x02216908
+ ldr r1, _02212BB4 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x77
+ bl __msl_assertion_failed
+_02212B38:
+ cmp r7, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ cmp r6, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ cmp r5, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ cmp r4, #0
+ addle sp, sp, #4
+ movle r0, #0
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ str r7, [r6]
+ str r5, [r6, #4]
+ str r4, [r6, #8]
+ mov r2, #0
+ str r2, [r6, #0xc]
+ str r2, [r6, #0x14]
+ mov r0, #1
+ str r0, [r6, #0x18]
+ str r0, [r6, #0x1c]
+ str r2, [r6, #0x20]
+ ldr r1, [r6, #4]
+ strb r2, [r1]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02212BB0: .word 0x022168F0
+_02212BB4: .word 0x0221686C
+_02212BB8: .word 0x02216888
+_02212BBC: .word 0x022168FC
+_02212BC0: .word 0x02216908
+ arm_func_end MOD79_02212AB4
+
+ arm_func_start MOD79_02212BC4
+MOD79_02212BC4: ; 0x02212BC4
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ movs r7, r0
+ mov r6, r1
+ mov r5, r2
+ mov r4, r3
+ bne _02212BF4
+ ldr r0, _02212CDC ; =0x022168F0
+ ldr r1, _02212CE0 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x43
+ bl __msl_assertion_failed
+_02212BF4:
+ cmp r6, #0
+ bne _02212C10
+ ldr r0, _02212CE4 ; =0x02216888
+ ldr r1, _02212CE0 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x44
+ bl __msl_assertion_failed
+_02212C10:
+ cmp r5, #0
+ bgt _02212C2C
+ ldr r0, _02212CE8 ; =0x02216914
+ ldr r1, _02212CE0 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x45
+ bl __msl_assertion_failed
+_02212C2C:
+ cmp r4, #0
+ bgt _02212C48
+ ldr r0, _02212CEC ; =0x02216924
+ ldr r1, _02212CE0 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x46
+ bl __msl_assertion_failed
+_02212C48:
+ cmp r7, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ cmp r6, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ cmp r5, #0
+ addle sp, sp, #4
+ movle r0, #0
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ cmp r4, #0
+ addle sp, sp, #4
+ movle r0, #0
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ str r7, [r6]
+ mov r2, #0
+ str r2, [r6, #4]
+ str r2, [r6, #8]
+ str r2, [r6, #0xc]
+ str r2, [r6, #0x10]
+ str r4, [r6, #0x14]
+ str r2, [r6, #0x18]
+ str r2, [r6, #0x1c]
+ mov r0, r6
+ mov r1, r5
+ str r2, [r6, #0x20]
+ bl MOD79_02212CF0
+ cmp r0, #0
+ moveq r0, #0
+ ldrne r0, [r6, #4]
+ movne r1, #0
+ strneb r1, [r0]
+ movne r0, #1
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02212CDC: .word 0x022168F0
+_02212CE0: .word 0x0221686C
+_02212CE4: .word 0x02216888
+_02212CE8: .word 0x02216914
+_02212CEC: .word 0x02216924
+ arm_func_end MOD79_02212BC4
+
+ arm_func_start MOD79_02212CF0
+MOD79_02212CF0: ; 0x02212CF0
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ movs r5, r0
+ mov r4, r1
+ bne _02212D18
+ ldr r0, _02212D84 ; =0x02216888
+ ldr r1, _02212D88 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x20
+ bl __msl_assertion_failed
+_02212D18:
+ cmp r4, #0
+ bgt _02212D34
+ ldr r0, _02212D8C ; =0x02216924
+ ldr r1, _02212D88 ; =0x0221686C
+ mov r2, #0
+ mov r3, #0x21
+ bl __msl_assertion_failed
+_02212D34:
+ cmp r5, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, pc}
+ cmp r4, #0
+ addle sp, sp, #4
+ movle r0, #0
+ ldmleia sp!, {r4, r5, pc}
+ ldr r1, [r5, #8]
+ ldr r0, [r5, #4]
+ add r4, r1, r4
+ mov r1, r4
+ bl MOD04_021DD844
+ cmp r0, #0
+ moveq r0, #0
+ strne r0, [r5, #4]
+ strne r4, [r5, #8]
+ movne r0, #1
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02212D84: .word 0x02216888
+_02212D88: .word 0x0221686C
+_02212D8C: .word 0x02216924
+ arm_func_end MOD79_02212CF0
+
+ arm_func_start MOD79_02212D90
+MOD79_02212D90: ; 0x02212D90
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ movs r4, r0
+ bne _02212DB4
+ ldr r0, _02212DF8 ; =0x02216938
+ ldr r1, _02212DFC ; =0x02216944
+ mov r2, #0
+ mov r3, #0x5e
+ bl __msl_assertion_failed
+_02212DB4:
+ ldr r0, [r4, #0x150]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, [r4, #0x140]
+ bl MOD04_021EF06C
+ str r0, [sp]
+ ldr r0, [r4, #0x44]
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x148]
+ ldr r2, [r4, #0x14c]
+ ldr r3, [r4, #0x144]
+ ldr ip, [r4, #0x150]
+ .word 0xE12FFF3C
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02212DF8: .word 0x02216938
+_02212DFC: .word 0x02216944
+ arm_func_end MOD79_02212D90
+
+ arm_func_start MOD79_02212E00
+MOD79_02212E00: ; 0x02212E00
+ stmdb sp!, {r4, r5, r6, lr}
+ sub sp, sp, #0x10
+ movs r6, r0
+ mov r5, r1
+ mov r4, r2
+ bne _02212E2C
+ ldr r0, _02212E70 ; =0x02216938
+ ldr r1, _02212E74 ; =0x02216944
+ mov r2, #0
+ mov r3, #0x45
+ bl __msl_assertion_failed
+_02212E2C:
+ ldr ip, [r6, #0x3c]
+ cmp ip, #0
+ addeq sp, sp, #0x10
+ ldmeqia sp!, {r4, r5, r6, pc}
+ ldr r0, [r6, #0x100]
+ mov r2, r5
+ str r0, [sp]
+ ldr r0, [r6, #0x104]
+ mov r3, r4
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x44]
+ str r0, [sp, #8]
+ ldr r0, [r6, #4]
+ ldr r1, [r6, #0x10]
+ .word 0xE12FFF3C
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02212E70: .word 0x02216938
+_02212E74: .word 0x02216944
+ arm_func_end MOD79_02212E00
+
+ arm_func_start MOD79_02212E78
+MOD79_02212E78: ; 0x02212E78
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ movs r5, r0
+ bne _02212E9C
+ ldr r0, _02212EFC ; =0x02216938
+ ldr r1, _02212F00 ; =0x02216944
+ mov r2, #0
+ mov r3, #0x1b
+ bl __msl_assertion_failed
+_02212E9C:
+ ldr ip, [r5, #0x40]
+ cmp ip, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ movne r4, #0
+ movne r3, r4
+ ldreq r4, [r5, #0xc0]
+ ldreq r3, [r5, #0x100]
+ ldr r0, [r5, #0x44]
+ mov r2, r4
+ str r0, [sp]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #0x38]
+ .word 0xE12FFF3C
+ cmp r4, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, pc}
+ cmp r0, #0
+ moveq r0, #1
+ streq r0, [r5, #0xd8]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02212EFC: .word 0x02216938
+_02212F00: .word 0x02216944
+ arm_func_end MOD79_02212E78
+
+ arm_func_start MOD79_02212F04
+MOD79_02212F04: ; 0x02212F04
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ ldr r3, [r6, #0x5c]
+ mov r5, r1
+ mov r4, r2
+ cmp r3, #0
+ mov r3, #0
+ bne _02212F48
+ bl MOD79_02212F68
+ mov r3, r0
+ mvn r0, #0
+ cmp r3, r0
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ cmp r3, r4
+ moveq r0, #1
+ ldmeqia sp!, {r4, r5, r6, pc}
+_02212F48:
+ add r0, r6, #0x50
+ add r1, r5, r3
+ sub r2, r4, r3
+ bl MOD79_02212794
+ cmp r0, #0
+ moveq r0, #0
+ movne r0, #2
+ ldmia sp!, {r4, r5, r6, pc}
+ arm_func_end MOD79_02212F04
+
+ arm_func_start MOD79_02212F68
+MOD79_02212F68: ; 0x02212F68
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, [r4, #0x48]
+ mov r3, #0
+ bl MOD04_021EFC24
+ mvn r1, #0
+ cmp r0, r1
+ bne _02212FD8
+ ldr r0, [r4, #0x48]
+ bl MOD04_021EFB28
+ mvn r1, #5
+ cmp r0, r1
+ beq _02212FB4
+ mvn r1, #0x19
+ cmp r0, r1
+ beq _02212FB4
+ mvn r1, #0x4b
+ cmp r0, r1
+ bne _02212FBC
+_02212FB4:
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_02212FBC:
+ mov r1, #1
+ str r1, [r4, #0xfc]
+ mov r1, #5
+ str r1, [r4, #0x38]
+ str r0, [r4, #0x4c]
+ mvn r0, #0
+ ldmia sp!, {r4, pc}
+_02212FD8:
+ ldr r1, [r4, #0x10]
+ cmp r1, #4
+ ldreq r1, [r4, #0x148]
+ addeq r1, r1, r0
+ streq r1, [r4, #0x148]
+ ldmia sp!, {r4, pc}
+ arm_func_end MOD79_02212F68
+
+ arm_func_start MOD79_02212FF0
+MOD79_02212FF0: ; 0x02212FF0
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ mov r7, r0
+ mov r5, r2
+ ldr r2, [r5]
+ ldr r0, [r7, #0x134]
+ mov r6, r1
+ cmp r0, #0
+ sub r4, r2, #1
+ beq _02213050
+ bl MOD04_021F025C
+ ldr r1, _02213230 ; =0x02216958
+ ldr r2, [r7, #0x138]
+ ldr r1, [r1]
+ add r1, r2, r1
+ cmp r0, r1
+ addlo sp, sp, #4
+ movlo r0, #1
+ ldmloia sp!, {r4, r5, r6, r7, pc}
+ ldr r1, _02213234 ; =0x0221695C
+ str r0, [r7, #0x138]
+ ldr r0, [r1]
+ cmp r4, r0
+ movge r4, r0
+_02213050:
+ ldr r1, [r7, #0x84]
+ ldr r0, [r7, #0x80]
+ cmp r1, r0
+ bge _02213098
+ mov r1, r6
+ mov r2, r5
+ add r0, r7, #0x74
+ bl MOD79_0221248C
+ ldr r1, [r7, #0x84]
+ ldr r0, [r7, #0x80]
+ add sp, sp, #4
+ cmp r1, r0
+ ldreq r0, [r7, #0xf8]
+ streq r0, [r7, #0x80]
+ ldreq r0, [r7, #0xf8]
+ streq r0, [r7, #0x84]
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02213098:
+ ldr r0, [r7, #0x48]
+ mov r1, r6
+ mov r2, r4
+ mov r3, #0
+ bl MOD04_021EFC78
+ mov r2, r0
+ mvn r0, #0
+ str r2, [sp]
+ cmp r2, r0
+ bne _0221311C
+ ldr r0, [r7, #0x48]
+ bl MOD04_021EFB28
+ mvn r1, #5
+ cmp r0, r1
+ beq _022130EC
+ mvn r1, #0x19
+ cmp r0, r1
+ beq _022130EC
+ mvn r1, #0x4b
+ cmp r0, r1
+ bne _022130F8
+_022130EC:
+ add sp, sp, #4
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_022130F8:
+ mov r2, #1
+ str r2, [r7, #0xfc]
+ mov r1, #5
+ str r1, [r7, #0x38]
+ str r0, [r7, #0x4c]
+ add sp, sp, #4
+ str r2, [r7, #0x130]
+ mov r0, #3
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_0221311C:
+ cmp r2, #0
+ moveq r0, #1
+ streq r0, [r7, #0x130]
+ addeq sp, sp, #4
+ moveq r0, #2
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, [r7, #0x168]
+ cmp r0, #0
+ beq _0221320C
+ mov r1, r6
+ add r0, r7, #0x98
+ bl MOD79_02212794
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #3
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ mov r0, r7
+ bl MOD79_02213238
+ cmp r0, #0
+ bne _02213188
+ mov r0, #1
+ str r0, [r7, #0xfc]
+ mov r0, #0x11
+ str r0, [r7, #0x38]
+ add sp, sp, #4
+ mov r0, #3
+ ldmia sp!, {r4, r5, r6, r7, pc}
+_02213188:
+ ldr r1, [r7, #0x80]
+ ldr r0, [r7, #0x84]
+ sub r0, r1, r0
+ cmp r0, #0
+ movle r0, #0
+ strleb r0, [r6]
+ strle r0, [r5]
+ addle sp, sp, #4
+ movle r0, #1
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ ldr r0, [r5]
+ add r2, sp, #0
+ sub r3, r0, #1
+ mov r1, r6
+ add r0, r7, #0x74
+ str r3, [sp]
+ bl MOD79_0221248C
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #3
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r1, [r7, #0x84]
+ ldr r0, [r7, #0x80]
+ cmp r1, r0
+ ldreq r0, [r7, #0xf8]
+ streq r0, [r7, #0x80]
+ ldreq r0, [r7, #0xf8]
+ streq r0, [r7, #0x84]
+ ldr r2, [sp]
+ cmp r2, #0
+ addle sp, sp, #4
+ movle r0, #1
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+_0221320C:
+ mov r0, #0
+ strb r0, [r6, r2]
+ ldr r1, [sp]
+ str r1, [r5]
+ ldr r1, [sp]
+ cmp r1, #0
+ movle r0, #1
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213230: .word 0x02216958
+_02213234: .word 0x0221695C
+ arm_func_end MOD79_02212FF0
+
+ arm_func_start MOD79_02213238
+MOD79_02213238: ; 0x02213238
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #0x14
+ mov r1, #0
+ mov r4, r0
+ str r1, [sp, #8]
+ str r1, [sp, #0xc]
+ add r8, sp, #0xc
+ add r6, sp, #8
+ add r5, r4, #0x74
+ add r7, r4, #0x164
+_02213260:
+ ldr ip, [r4, #0xa8]
+ ldr r0, [r4, #0xa4]
+ ldr r2, [r4, #0x9c]
+ sub r0, r0, ip
+ str r0, [sp, #8]
+ ldr r3, [r4, #0x80]
+ ldr r0, [r4, #0x7c]
+ ldr r1, [r4, #0x78]
+ sub r0, r0, r3
+ str r0, [sp, #0xc]
+ add r0, r1, r3
+ str r0, [sp]
+ str r8, [sp, #4]
+ ldr sb, [r4, #0x180]
+ mov r0, r4
+ mov r1, r7
+ mov r3, r6
+ add r2, r2, ip
+ .word 0xE12FFF39
+ mov sb, r0
+ cmp sb, #2
+ bne _022132D4
+ ldr r1, [r4, #0x88]
+ mov r0, r5
+ bl MOD79_02212CF0
+ cmp r0, #0
+ addeq sp, sp, #0x14
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
+_022132D4:
+ cmp sb, #2
+ bne _022132E8
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _02213260
+_022132E8:
+ ldr r1, [r4, #0xa8]
+ ldr r0, [sp, #8]
+ add r0, r1, r0
+ str r0, [r4, #0xa8]
+ ldr r1, [r4, #0x80]
+ ldr r0, [sp, #0xc]
+ add r0, r1, r0
+ str r0, [r4, #0x80]
+ ldr r1, [r4, #0xa8]
+ cmp r1, #0xff
+ ble _02213348
+ ldr r0, [r4, #0xa4]
+ subs r5, r0, r1
+ bne _0221332C
+ add r0, r4, #0x98
+ bl MOD79_0221262C
+ b _02213348
+_0221332C:
+ ldr r0, [r4, #0x9c]
+ mov r2, r5
+ add r1, r0, r1
+ bl memmove
+ mov r0, #0
+ str r0, [r4, #0xa8]
+ str r5, [r4, #0xa4]
+_02213348:
+ cmp sb, #3
+ addne sp, sp, #0x14
+ movne r0, #1
+ ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #0x11
+ str r0, [r4, #0x38]
+ mov r0, #0
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ arm_func_end MOD79_02213238
+
+ arm_func_start MOD79_02213374
+MOD79_02213374: ; 0x02213374
+ bx lr
+ arm_func_end MOD79_02213374
+
+ arm_func_start MOD79_02213378
+MOD79_02213378: ; 0x02213378
+ bx lr
+ arm_func_end MOD79_02213378
+
+ arm_func_start MOD79_0221337C
+MOD79_0221337C: ; 0x0221337C
+ bx lr
+ arm_func_end MOD79_0221337C
+
+ arm_func_start MOD79_02213380
+MOD79_02213380: ; 0x02213380
+ bx lr
+ arm_func_end MOD79_02213380
+
+ arm_func_start MOD79_02213384
+MOD79_02213384: ; 0x02213384
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr r0, _02213400 ; =0x02217138
+ ldr r0, [r0]
+ cmp r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ ldr r0, _02213404 ; =MOD79_02213638
+ bl MOD79_02213510
+ ldr r5, _02213408 ; =0x0221712C
+ mov r6, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ ble _022133D4
+ ldr r4, _02213400 ; =0x02217138
+_022133B8:
+ ldr r0, [r4]
+ ldr r0, [r0, r6, lsl #2]
+ bl MOD04_021DD82C
+ ldr r0, [r5]
+ add r6, r6, #1
+ cmp r6, r0
+ blt _022133B8
+_022133D4:
+ ldr r0, _02213400 ; =0x02217138
+ ldr r0, [r0]
+ bl MOD04_021DD82C
+ ldr r2, _02213400 ; =0x02217138
+ mov r3, #0
+ ldr r1, _02213408 ; =0x0221712C
+ ldr r0, _0221340C ; =0x02217130
+ str r3, [r2]
+ str r3, [r1]
+ str r3, [r0]
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02213400: .word 0x02217138
+_02213404: .word MOD79_02213638
+_02213408: .word 0x0221712C
+_0221340C: .word 0x02217130
+ arm_func_end MOD79_02213384
+
+ arm_func_start MOD79_02213410
+MOD79_02213410: ; 0x02213410
+ stmdb sp!, {r4, lr}
+ movs r4, r0
+ bne _02213430
+ ldr r0, _022134FC ; =0x02216960
+ ldr r1, _02213500 ; =0x0221696C
+ ldr r3, _02213504 ; =0x00000132
+ mov r2, #0
+ bl __msl_assertion_failed
+_02213430:
+ ldr r0, [r4, #0x108]
+ cmp r0, #0
+ bne _02213450
+ ldr r0, _02213508 ; =0x02216980
+ ldr r1, _02213500 ; =0x0221696C
+ ldr r3, _0221350C ; =0x00000133
+ mov r2, #0
+ bl __msl_assertion_failed
+_02213450:
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ bl MOD04_021DD82C
+ ldr r1, [r4, #0x108]
+ mov r0, #0
+ str r1, [r4, #0x14]
+ str r0, [r4, #0x108]
+ ldr r0, [r4, #0x18]
+ bl MOD04_021DD82C
+ mov r0, #0
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ strh r0, [r4, #0x20]
+ ldr r0, [r4, #0x24]
+ bl MOD04_021DD82C
+ mov r0, #0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD04_021EFD80
+ ldr r0, [r4, #0x48]
+ bl MOD04_021EFD9C
+ mvn r1, #0
+ add r0, r4, #0x50
+ str r1, [r4, #0x48]
+ bl MOD79_0221262C
+ add r0, r4, #0x74
+ bl MOD79_0221262C
+ add r0, r4, #0x98
+ bl MOD79_0221262C
+ mov r0, #0
+ str r0, [r4, #0xe4]
+ str r0, [r4, #0xe8]
+ str r0, [r4, #0xec]
+ str r0, [r4, #0xf0]
+ str r0, [r4, #0xf4]
+ str r0, [r4, #0xf8]
+ str r0, [r4, #0x130]
+ ldr r0, [r4, #0x10c]
+ add r0, r0, #1
+ str r0, [r4, #0x10c]
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022134FC: .word 0x02216960
+_02213500: .word 0x0221696C
+_02213504: .word 0x00000132
+_02213508: .word 0x02216980
+_0221350C: .word 0x00000133
+ arm_func_end MOD79_02213410
+
+ arm_func_start MOD79_02213510
+MOD79_02213510: ; 0x02213510
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ ldr r1, _02213580 ; =0x02217130
+ mov r5, r0
+ ldr r0, [r1]
+ cmp r0, #0
+ addle sp, sp, #4
+ ldmleia sp!, {r4, r5, r6, r7, pc}
+ bl MOD79_02213378
+ ldr r7, _02213584 ; =0x0221712C
+ mov r4, #0
+ ldr r0, [r7]
+ cmp r0, #0
+ ble _02213574
+ ldr r6, _02213588 ; =0x02217138
+_0221354C:
+ ldr r0, [r6]
+ ldr r0, [r0, r4, lsl #2]
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _02213564
+ .word 0xE12FFF35
+_02213564:
+ ldr r0, [r7]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _0221354C
+_02213574:
+ bl MOD79_02213374
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213580: .word 0x02217130
+_02213584: .word 0x0221712C
+_02213588: .word 0x02217138
+ arm_func_end MOD79_02213510
+
+ arm_func_start MOD79_0221358C
+MOD79_0221358C: ; 0x0221358C
+ stmdb sp!, {r4, lr}
+ movs r4, r0
+ bpl _022135AC
+ ldr r0, _0221361C ; =0x02216998
+ ldr r1, _02213620 ; =0x0221696C
+ ldr r3, _02213624 ; =0x00000101
+ mov r2, #0
+ bl __msl_assertion_failed
+_022135AC:
+ ldr r0, _02213628 ; =0x0221712C
+ ldr r0, [r0]
+ cmp r4, r0
+ blt _022135D0
+ ldr r0, _0221362C ; =0x022169A8
+ ldr r1, _02213620 ; =0x0221696C
+ ldr r3, _02213630 ; =0x00000102
+ mov r2, #0
+ bl __msl_assertion_failed
+_022135D0:
+ bl MOD79_02213378
+ cmp r4, #0
+ blt _022135EC
+ ldr r0, _02213628 ; =0x0221712C
+ ldr r0, [r0]
+ cmp r4, r0
+ blt _022135F8
+_022135EC:
+ bl MOD79_02213374
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_022135F8:
+ ldr r0, _02213634 ; =0x02217138
+ ldr r0, [r0]
+ ldr r4, [r0, r4, lsl #2]
+ ldr r0, [r4]
+ cmp r0, #0
+ moveq r4, #0
+ bl MOD79_02213374
+ mov r0, r4
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221361C: .word 0x02216998
+_02213620: .word 0x0221696C
+_02213624: .word 0x00000101
+_02213628: .word 0x0221712C
+_0221362C: .word 0x022169A8
+_02213630: .word 0x00000102
+_02213634: .word 0x02217138
+ arm_func_end MOD79_0221358C
+
+ arm_func_start MOD79_02213638
+MOD79_02213638: ; 0x02213638
+ stmdb sp!, {r4, lr}
+ movs r4, r0
+ bne _02213658
+ ldr r0, _02213800 ; =0x02216960
+ ldr r1, _02213804 ; =0x0221696C
+ mov r2, #0
+ mov r3, #0xb3
+ bl __msl_assertion_failed
+_02213658:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bge _02213678
+ ldr r0, _02213808 ; =0x022169C4
+ ldr r1, _02213804 ; =0x0221696C
+ mov r2, #0
+ mov r3, #0xb4
+ bl __msl_assertion_failed
+_02213678:
+ ldr r0, _0221380C ; =0x0221712C
+ ldr r1, [r4, #4]
+ ldr r0, [r0]
+ cmp r1, r0
+ blt _022136A0
+ ldr r0, _02213810 ; =0x022169E0
+ ldr r1, _02213804 ; =0x0221696C
+ mov r2, #0
+ mov r3, #0xb5
+ bl __msl_assertion_failed
+_022136A0:
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _022136C0
+ ldr r0, _02213814 ; =0x02216A08
+ ldr r1, _02213804 ; =0x0221696C
+ mov r2, #0
+ mov r3, #0xb6
+ bl __msl_assertion_failed
+_022136C0:
+ cmp r4, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r0, [r4]
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ movlt r0, #0
+ ldmltia sp!, {r4, pc}
+ ldr r0, _0221380C ; =0x0221712C
+ ldr r0, [r0]
+ cmp r1, r0
+ movge r0, #0
+ ldmgeia sp!, {r4, pc}
+ bl MOD79_02213378
+ ldr r0, [r4, #0x14]
+ bl MOD04_021DD82C
+ ldr r0, [r4, #0x18]
+ bl MOD04_021DD82C
+ ldr r0, [r4, #0x24]
+ bl MOD04_021DD82C
+ ldr r0, [r4, #0x28]
+ bl MOD04_021DD82C
+ ldr r0, [r4, #0x108]
+ bl MOD04_021DD82C
+ ldr r0, [r4, #0x15c]
+ bl MOD04_021DD82C
+ ldr r0, [r4, #0x48]
+ mvn r1, #0
+ cmp r0, r1
+ beq _02213754
+ mov r1, #2
+ bl MOD04_021EFD80
+ ldr r0, [r4, #0x48]
+ bl MOD04_021EFD9C
+_02213754:
+ add r0, r4, #0x50
+ bl MOD79_02212A54
+ add r0, r4, #0x74
+ bl MOD79_02212A54
+ add r0, r4, #0x98
+ bl MOD79_02212A54
+ add r0, r4, #0xbc
+ bl MOD79_02212A54
+ ldr r0, [r4, #0x140]
+ cmp r0, #0
+ beq _02213788
+ mov r0, r4
+ bl MOD79_022149E4
+_02213788:
+ ldr r0, [r4, #0x13c]
+ cmp r0, #0
+ beq _022137B0
+ bl MOD79_02215074
+ cmp r0, #0
+ beq _022137B0
+ ldr r0, [r4, #0x13c]
+ bl MOD79_02215058
+ mov r0, #0
+ str r0, [r4, #0x13c]
+_022137B0:
+ ldr r0, [r4, #0x16c]
+ cmp r0, #0
+ beq _022137DC
+ ldr r2, [r4, #0x178]
+ cmp r2, #0
+ beq _022137D4
+ mov r0, r4
+ add r1, r4, #0x164
+ .word 0xE12FFF32
+_022137D4:
+ mov r0, #0
+ str r0, [r4, #0x16c]
+_022137DC:
+ mov r1, #0
+ ldr r0, _02213818 ; =0x02217130
+ str r1, [r4]
+ ldr r1, [r0]
+ sub r1, r1, #1
+ str r1, [r0]
+ bl MOD79_02213374
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02213800: .word 0x02216960
+_02213804: .word 0x0221696C
+_02213808: .word 0x022169C4
+_0221380C: .word 0x0221712C
+_02213810: .word 0x022169E0
+_02213814: .word 0x02216A08
+_02213818: .word 0x02217130
+ arm_func_end MOD79_02213638
+
+ arm_func_start MOD79_0221381C
+MOD79_0221381C: ; 0x0221381C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ bl MOD79_02213378
+ bl MOD79_022139CC
+ mov r5, r0
+ mvn r0, #0
+ cmp r5, r0
+ bne _0221384C
+ bl MOD79_02213374
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_0221384C:
+ ldr r0, _022139C0 ; =0x02217138
+ mov r1, #0
+ ldr r0, [r0]
+ mov r2, #0x184
+ ldr r4, [r0, r5, lsl #2]
+ mov r0, r4
+ bl Call_FillMemWithValue
+ mov r0, #1
+ str r0, [r4]
+ ldr r0, _022139C4 ; =0x02217134
+ str r5, [r4, #4]
+ ldr r2, [r0]
+ mov ip, #0
+ add r1, r2, #1
+ str r1, [r0]
+ str r2, [r4, #8]
+ str ip, [r4, #0xc]
+ str ip, [r4, #0x10]
+ str ip, [r4, #0x14]
+ str ip, [r4, #0x18]
+ str ip, [r4, #0x1c]
+ strh ip, [r4, #0x20]
+ str ip, [r4, #0x24]
+ str ip, [r4, #0x28]
+ str ip, [r4, #0x2c]
+ str ip, [r4, #0x30]
+ str ip, [r4, #0x34]
+ str ip, [r4, #0x38]
+ str ip, [r4, #0x3c]
+ str ip, [r4, #0x40]
+ str ip, [r4, #0x44]
+ mvn r0, #0
+ str r0, [r4, #0x48]
+ str ip, [r4, #0x4c]
+ str ip, [r4, #0xe0]
+ str ip, [r4, #0xe4]
+ str ip, [r4, #0xe8]
+ str ip, [r4, #0xec]
+ str ip, [r4, #0xf0]
+ str ip, [r4, #0xf4]
+ str ip, [r4, #0xf8]
+ str ip, [r4, #0xfc]
+ str ip, [r4, #0x100]
+ str r0, [r4, #0x104]
+ str ip, [r4, #0x108]
+ str ip, [r4, #0x10c]
+ str ip, [r4, #0x110]
+ str ip, [r4, #0x12c]
+ str ip, [r4, #0x134]
+ str ip, [r4, #0x138]
+ str ip, [r4, #0x13c]
+ mov r0, #0x1f4
+ str r0, [r4, #0x158]
+ add r0, r4, #0x100
+ mov r1, #0x50
+ strh r1, [r0, #0x60]
+ str ip, [r4, #0x15c]
+ mov r0, r4
+ add r1, r4, #0x50
+ mov r2, #0x800
+ mov r3, #0x1000
+ str ip, [r4, #0x164]
+ bl MOD79_02212BC4
+ cmp r0, #0
+ beq _02213964
+ mov r2, #0x800
+ mov r0, r4
+ mov r3, r2
+ add r1, r4, #0x74
+ bl MOD79_02212BC4
+_02213964:
+ cmp r0, #0
+ beq _02213980
+ mov r0, r4
+ add r1, r4, #0x98
+ mov r2, #0x800
+ mov r3, #0x400
+ bl MOD79_02212BC4
+_02213980:
+ cmp r0, #0
+ bne _022139A0
+ mov r0, r4
+ bl MOD79_02213638
+ bl MOD79_02213374
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_022139A0:
+ ldr r0, _022139C8 ; =0x02217130
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+ bl MOD79_02213374
+ mov r0, r4
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022139C0: .word 0x02217138
+_022139C4: .word 0x02217134
+_022139C8: .word 0x02217130
+ arm_func_end MOD79_0221381C
+
+ arm_func_start MOD79_022139CC
+MOD79_022139CC: ; 0x022139CC
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ ldr r1, _02213AF4 ; =0x0221712C
+ mov r0, #0
+ ldr r2, [r1]
+ cmp r2, #0
+ ble _02213A10
+ ldr r1, _02213AF8 ; =0x02217138
+ ldr r3, [r1]
+_022139F0:
+ ldr r1, [r3, r0, lsl #2]
+ ldr r1, [r1]
+ cmp r1, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ add r0, r0, #1
+ cmp r0, r2
+ blt _022139F0
+_02213A10:
+ ldr r0, _02213AFC ; =0x02217130
+ ldr r0, [r0]
+ cmp r0, r2
+ beq _02213A34
+ ldr r0, _02213B00 ; =0x02216A1C
+ ldr r1, _02213B04 ; =0x0221696C
+ mov r2, #0
+ mov r3, #0x33
+ bl __msl_assertion_failed
+_02213A34:
+ ldr r1, _02213AF4 ; =0x0221712C
+ ldr r0, _02213AF8 ; =0x02217138
+ ldr r7, [r1]
+ ldr r0, [r0]
+ add r6, r7, #4
+ mov r1, r6, lsl #2
+ bl MOD04_021DD844
+ cmp r0, #0
+ addeq sp, sp, #4
+ mvneq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ ldr r8, _02213AF8 ; =0x02217138
+ mov r5, r7
+ str r0, [r8]
+ cmp r7, r6
+ bge _02213AE0
+ mov sb, #0
+ mov r4, #0x184
+_02213A7C:
+ mov r0, r4
+ bl MOD04_021DD860
+ ldr r1, [r8]
+ str r0, [r1, r5, lsl #2]
+ ldr r0, [r8]
+ ldr r0, [r0, r5, lsl #2]
+ cmp r0, #0
+ bne _02213AD0
+ sub r5, r5, #1
+ cmp r5, r7
+ blt _02213AC4
+ ldr r4, _02213AF8 ; =0x02217138
+_02213AAC:
+ ldr r0, [r4]
+ ldr r0, [r0, r5, lsl #2]
+ bl MOD04_021DD82C
+ sub r5, r5, #1
+ cmp r5, r7
+ bge _02213AAC
+_02213AC4:
+ add sp, sp, #4
+ mvn r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+_02213AD0:
+ add r5, r5, #1
+ str sb, [r0]
+ cmp r5, r6
+ blt _02213A7C
+_02213AE0:
+ ldr r1, _02213AF4 ; =0x0221712C
+ mov r0, r7
+ str r6, [r1]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_02213AF4: .word 0x0221712C
+_02213AF8: .word 0x02217138
+_02213AFC: .word 0x02217130
+_02213B00: .word 0x02216A1C
+_02213B04: .word 0x0221696C
+ arm_func_end MOD79_022139CC
+
+ arm_func_start MOD79_02213B08
+MOD79_02213B08: ; 0x02213B08
+ ldr ip, _02213B14 ; =MOD79_02213510
+ ldr r0, _02213B18 ; =MOD79_02213E84
+ bx ip
+ .align 2, 0
+_02213B14: .word MOD79_02213510
+_02213B18: .word MOD79_02213E84
+ arm_func_end MOD79_02213B08
+
+ arm_func_start MOD79_02213B1C
+MOD79_02213B1C: ; 0x02213B1C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ movs r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ beq _02213B40
+ ldrsb r0, [r8]
+ cmp r0, #0
+ bne _02213B54
+_02213B40:
+ ldr r0, _02213D64 ; =0x02216A50
+ ldr r1, _02213D68 ; =0x02216A44
+ mov r2, #0
+ mov r3, #0x128
+ bl __msl_assertion_failed
+_02213B54:
+ cmp r5, #0
+ bge _02213B70
+ ldr r0, _02213D6C ; =0x02216A60
+ ldr r1, _02213D68 ; =0x02216A44
+ ldr r3, _02213D70 ; =0x00000129
+ mov r2, #0
+ bl __msl_assertion_failed
+_02213B70:
+ cmp r6, #0
+ beq _02213B94
+ cmp r5, #0
+ bne _02213B94
+ ldr r0, _02213D74 ; =0x02216A70
+ ldr r1, _02213D68 ; =0x02216A44
+ ldr r3, _02213D78 ; =0x0000012A
+ mov r2, #0
+ bl __msl_assertion_failed
+_02213B94:
+ cmp r8, #0
+ beq _02213BA8
+ ldrsb r0, [r8]
+ cmp r0, #0
+ bne _02213BB0
+_02213BA8:
+ mvn r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02213BB0:
+ cmp r5, #0
+ mvnlt r0, #0
+ ldmltia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp r6, #0
+ beq _02213BD0
+ cmp r5, #0
+ mvneq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+_02213BD0:
+ ldr r0, _02213D7C ; =0x0221713C
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02213BE4
+ bl MOD79_02213E24
+_02213BE4:
+ bl MOD79_0221381C
+ movs r4, r0
+ mvneq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ mov r1, #0
+ mov r0, r8
+ str r1, [r4, #0xc]
+ bl MOD04_021F0208
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _02213C24
+ mov r0, r4
+ bl MOD79_02213638
+ mvn r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02213C24:
+ cmp r7, #0
+ beq _02213C60
+ ldrsb r0, [r7]
+ cmp r0, #0
+ beq _02213C60
+ mov r0, r7
+ bl MOD04_021F0208
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ bne _02213C60
+ mov r0, r4
+ bl MOD79_02213638
+ mvn r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02213C60:
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ str r1, [r4, #0x13c]
+ str r0, [r4, #0x30]
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #0x28]
+ str r1, [r4, #0x3c]
+ str r0, [r4, #0x40]
+ ldr r1, [sp, #0x2c]
+ ldr r0, [sp, #0x1c]
+ str r1, [r4, #0x44]
+ str r0, [r4, #0x134]
+ cmp r6, #0
+ movne r0, #1
+ moveq r0, #0
+ str r0, [r4, #0xe0]
+ ldr r0, [r4, #0xe0]
+ cmp r0, #0
+ beq _02213CC4
+ mov r0, r4
+ mov r2, r6
+ mov r3, r5
+ add r1, r4, #0xbc
+ bl MOD79_02212AB4
+ b _02213CD8
+_02213CC4:
+ mov r2, #0x800
+ mov r0, r4
+ mov r3, r2
+ add r1, r4, #0xbc
+ bl MOD79_02212BC4
+_02213CD8:
+ cmp r0, #0
+ bne _02213CF0
+ mov r0, r4
+ bl MOD79_02213638
+ mvn r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02213CF0:
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _02213D1C
+ mov r0, r4
+ bl MOD79_02214A60
+ cmp r0, #0
+ bne _02213D1C
+ mov r0, r4
+ bl MOD79_02213638
+ mvn r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02213D1C:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _02213D5C
+ mov r0, r4
+ bl MOD79_02213E84
+ cmp r0, #0
+ bne _02213D54
+ mov r5, #0xa
+_02213D3C:
+ mov r0, r5
+ bl MOD04_021F0250
+ mov r0, r4
+ bl MOD79_02213E84
+ cmp r0, #0
+ beq _02213D3C
+_02213D54:
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02213D5C:
+ ldr r0, [r4, #4]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02213D64: .word 0x02216A50
+_02213D68: .word 0x02216A44
+_02213D6C: .word 0x02216A60
+_02213D70: .word 0x00000129
+_02213D74: .word 0x02216A70
+_02213D78: .word 0x0000012A
+_02213D7C: .word 0x0221713C
+ arm_func_end MOD79_02213B1C
+
+ arm_func_start MOD79_02213D80
+MOD79_02213D80: ; 0x02213D80
+ stmdb sp!, {lr}
+ sub sp, sp, #0x1c
+ mov ip, #0
+ str ip, [sp]
+ str ip, [sp, #4]
+ str r1, [sp, #8]
+ str ip, [sp, #0xc]
+ str r2, [sp, #0x10]
+ str r3, [sp, #0x14]
+ mov r1, ip
+ mov r2, ip
+ mov r3, ip
+ bl MOD79_02213B1C
+ add sp, sp, #0x1c
+ ldmia sp!, {pc}
+ arm_func_end MOD79_02213D80
+
+ arm_func_start MOD79_02213DBC
+MOD79_02213DBC: ; 0x02213DBC
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD79_02213378
+ ldr r0, _02213E1C ; =0x0221713C
+ ldr r1, [r0]
+ subs r1, r1, #1
+ str r1, [r0]
+ bne _02213E10
+ bl MOD79_02213384
+ ldr r0, _02213E20 ; =0x02217128
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02213E00
+ bl MOD04_021DD82C
+ ldr r0, _02213E20 ; =0x02217128
+ mov r1, #0
+ str r1, [r0]
+_02213E00:
+ bl MOD79_02213374
+ bl MOD79_0221337C
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02213E10:
+ bl MOD79_02213374
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02213E1C: .word 0x0221713C
+_02213E20: .word 0x02217128
+ arm_func_end MOD79_02213DBC
+
+ arm_func_start MOD79_02213E24
+MOD79_02213E24: ; 0x02213E24
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ bl MOD79_02213378
+ ldr r0, _02213E78 ; =0x0221713C
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+ cmp r1, #1
+ bne _02213E6C
+ bl MOD79_02213380
+ ldr r1, _02213E7C ; =0x0221695C
+ mov r3, #0x7d
+ ldr r0, _02213E80 ; =0x02216958
+ mov r2, #0xfa
+ str r3, [r1]
+ str r2, [r0]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02213E6C:
+ bl MOD79_02213374
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_02213E78: .word 0x0221713C
+_02213E7C: .word 0x0221695C
+_02213E80: .word 0x02216958
+ arm_func_end MOD79_02213E24
+
+ arm_func_start MOD79_02213E84
+MOD79_02213E84: ; 0x02213E84
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ movs r4, r0
+ bne _02213EA8
+ ldr r0, _02213FE8 ; =0x02216A88
+ ldr r1, _02213FEC ; =0x02216A44
+ mov r2, #0
+ mov r3, #0x5b
+ bl __msl_assertion_failed
+_02213EA8:
+ ldr r0, [r4, #4]
+ bl MOD79_0221358C
+ cmp r0, r4
+ beq _02213ECC
+ ldr r0, _02213FF0 ; =0x02216A94
+ ldr r1, _02213FEC ; =0x02216A44
+ mov r2, #0
+ mov r3, #0x5c
+ bl __msl_assertion_failed
+_02213ECC:
+ ldr r0, [r4, #0x12c]
+ cmp r0, #0
+ addne sp, sp, #4
+ movne r0, #0
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #1
+ str r0, [r4, #0x12c]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _02213EFC
+ mov r0, r4
+ bl MOD79_02216478
+_02213EFC:
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bne _02213F10
+ mov r0, r4
+ bl MOD79_0221621C
+_02213F10:
+ ldr r0, [r4, #0x10]
+ cmp r0, #2
+ bne _02213F24
+ mov r0, r4
+ bl MOD79_022160C0
+_02213F24:
+ ldr r0, [r4, #0x10]
+ cmp r0, #3
+ bne _02213F38
+ mov r0, r4
+ bl MOD79_02215E40
+_02213F38:
+ ldr r0, [r4, #0x10]
+ cmp r0, #4
+ bne _02213F4C
+ mov r0, r4
+ bl MOD79_02215DA8
+_02213F4C:
+ ldr r0, [r4, #0x10]
+ cmp r0, #5
+ bne _02213F60
+ mov r0, r4
+ bl MOD79_02215D28
+_02213F60:
+ ldr r0, [r4, #0x10]
+ cmp r0, #6
+ bne _02213F74
+ mov r0, r4
+ bl MOD79_02215AA8
+_02213F74:
+ ldr r0, [r4, #0x10]
+ cmp r0, #7
+ bne _02213F88
+ mov r0, r4
+ bl MOD79_02215174
+_02213F88:
+ ldr r0, [r4, #0x10]
+ cmp r0, #8
+ bne _02213F9C
+ mov r0, r4
+ bl MOD79_0221507C
+_02213F9C:
+ ldr r0, [r4, #0x108]
+ cmp r0, #0
+ beq _02213FB0
+ mov r0, r4
+ bl MOD79_02213410
+_02213FB0:
+ ldr r5, [r4, #0xfc]
+ cmp r5, #0
+ moveq r0, #0
+ streq r0, [r4, #0x12c]
+ beq _02213FDC
+ mov r0, r4
+ bl MOD79_02213FF4
+ mov r0, r4
+ bl MOD79_02212E78
+ mov r0, r4
+ bl MOD79_02213638
+_02213FDC:
+ mov r0, r5
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02213FE8: .word 0x02216A88
+_02213FEC: .word 0x02216A44
+_02213FF0: .word 0x02216A94
+ arm_func_end MOD79_02213E84
+
+ arm_func_start MOD79_02213FF4
+MOD79_02213FF4: ; 0x02213FF4
+ stmdb sp!, {lr}
+ sub sp, sp, #4
+ ldr lr, [r0, #0xec]
+ ldr r3, _022140CC ; =0x51EB851F
+ mov r1, lr, lsr #0x1f
+ smull r2, ip, r3, lr
+ mov ip, ip, asr #5
+ add ip, r1, ip
+ cmp ip, #5
+ addls pc, pc, ip, lsl #2
+ b _022140C4
+_02214020: ; jump table
+ b _022140C4 ; case 0
+ b _02214038 ; case 1
+ b _02214038 ; case 2
+ b _02214038 ; case 3
+ b _02214040 ; case 4
+ b _022140BC ; case 5
+_02214038:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_02214040:
+ ldr r1, _022140D0 ; =0x00000191
+ sub r1, lr, r1
+ cmp r1, #9
+ addls pc, pc, r1, lsl #2
+ b _022140AC
+_02214054: ; jump table
+ b _0221407C ; case 0
+ b _022140AC ; case 1
+ b _0221408C ; case 2
+ b _0221409C ; case 3
+ b _022140AC ; case 4
+ b _022140AC ; case 5
+ b _022140AC ; case 6
+ b _022140AC ; case 7
+ b _022140AC ; case 8
+ b _0221409C ; case 9
+_0221407C:
+ mov r1, #9
+ str r1, [r0, #0x38]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0221408C:
+ mov r1, #0xa
+ str r1, [r0, #0x38]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_0221409C:
+ mov r1, #0xb
+ str r1, [r0, #0x38]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022140AC:
+ mov r1, #8
+ str r1, [r0, #0x38]
+ add sp, sp, #4
+ ldmia sp!, {pc}
+_022140BC:
+ mov r1, #0xc
+ str r1, [r0, #0x38]
+_022140C4:
+ add sp, sp, #4
+ ldmia sp!, {pc}
+ .align 2, 0
+_022140CC: .word 0x51EB851F
+_022140D0: .word 0x00000191
+ arm_func_end MOD79_02213FF4
+
+ arm_func_start MOD79_022140D4
+MOD79_022140D4: ; 0x022140D4
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ movs sl, r0
+ bne _022140F8
+ ldr r0, _02214330 ; =0x02216AD0
+ ldr r1, _02214334 ; =0x02216ADC
+ ldr r3, _02214338 ; =0x00000404
+ mov r2, #0
+ bl __msl_assertion_failed
+_022140F8:
+ ldr r0, [sl, #0x13c]
+ cmp r0, #0
+ bne _02214118
+ ldr r0, _0221433C ; =0x02216AE8
+ ldr r1, _02214334 ; =0x02216ADC
+ ldr r3, _02214340 ; =0x00000405
+ mov r2, #0
+ bl __msl_assertion_failed
+_02214118:
+ ldr r0, [sl, #0x140]
+ cmp r0, #0
+ bne _02214138
+ ldr r0, _02214344 ; =0x02216AFC
+ ldr r1, _02214334 ; =0x02216ADC
+ ldr r3, _02214348 ; =0x00000406
+ mov r2, #0
+ bl __msl_assertion_failed
+_02214138:
+ ldr r0, [sl, #0x13c]
+ ldr r0, [r0]
+ bl MOD04_021EF06C
+ mov r4, r0
+ ldr r0, [sl, #0x140]
+ bl MOD04_021EF06C
+ cmp r4, r0
+ beq _0221416C
+ ldr r0, _0221434C ; =0x02216B1C
+ ldr r1, _02214334 ; =0x02216ADC
+ ldr r3, _02214350 ; =0x00000407
+ mov r2, #0
+ bl __msl_assertion_failed
+_0221416C:
+ ldr r0, [sl, #0x144]
+ cmp r0, #0
+ bge _0221418C
+ ldr r0, _02214354 ; =0x02216B70
+ ldr r1, _02214334 ; =0x02216ADC
+ ldr r3, _02214358 ; =0x00000408
+ mov r2, #0
+ bl __msl_assertion_failed
+_0221418C:
+ ldr r0, [sl, #0x140]
+ bl MOD04_021EF06C
+ ldr r1, [sl, #0x144]
+ cmp r1, r0
+ ble _022141B4
+ ldr r0, _0221435C ; =0x02216B94
+ ldr r1, _02214334 ; =0x02216ADC
+ ldr r3, _02214360 ; =0x00000409
+ mov r2, #0
+ bl __msl_assertion_failed
+_022141B4:
+ ldr r0, [sl, #0x140]
+ add sb, sl, #0x140
+ bl MOD04_021EF06C
+ ldr r1, [sl, #0x5c]
+ mov r7, r0
+ cmp r1, #0
+ beq _0221421C
+ mov r0, sl
+ bl MOD79_02212554
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r1, [sl, #0x60]
+ ldr r0, [sl, #0x5c]
+ cmp r1, r0
+ addlt sp, sp, #4
+ movlt r0, #2
+ ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ add r0, sl, #0x50
+ bl MOD79_0221262C
+ ldr r0, [sl, #0x144]
+ cmp r0, r7
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_0221421C:
+ ldr r1, [sb, #4]
+ cmp r1, r7
+ bge _022142E0
+ ldr r6, _02214364 ; =0x02216BE4
+ ldr fp, _02214334 ; =0x02216ADC
+ mov r5, #0
+ mov r4, #1
+_02214238:
+ ldr r0, [sb]
+ bl MOD04_021EEFFC
+ movs r8, r0
+ bne _0221425C
+ ldr r3, _02214368 ; =0x0000042F
+ mov r0, r6
+ mov r1, fp
+ mov r2, r5
+ bl __msl_assertion_failed
+_0221425C:
+ ldr r0, [sb, #4]
+ mov r1, sl
+ cmp r0, #0
+ moveq r2, r4
+ movne r2, r5
+ mov r0, r8
+ bl MOD79_02214378
+ cmp r0, #0
+ bne _022142B8
+ ldr r0, [sl, #0xfc]
+ cmp r0, #0
+ beq _02214298
+ ldr r0, [sl, #0x38]
+ cmp r0, #0
+ bne _022142AC
+_02214298:
+ ldr r0, _0221436C ; =0x02216BF0
+ ldr r1, _02214334 ; =0x02216ADC
+ ldr r3, _02214370 ; =0x0000043B
+ mov r2, #0
+ bl __msl_assertion_failed
+_022142AC:
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_022142B8:
+ cmp r0, #2
+ addeq sp, sp, #4
+ moveq r0, #2
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r0, [sb, #4]
+ add r0, r0, #1
+ str r0, [sb, #4]
+ ldr r1, [sb, #4]
+ cmp r1, r7
+ blt _02214238
+_022142E0:
+ ldr r0, [sl, #0x13c]
+ ldr r0, [r0, #0xc]
+ cmp r0, #0
+ beq _02214318
+ ldr r0, _02214374 ; =0x02216C1C
+ bl strlen
+ mov r2, r0
+ ldr r1, _02214374 ; =0x02216C1C
+ mov r0, sl
+ bl MOD79_02212F04
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02214318:
+ ldr r0, [sl, #0x5c]
+ cmp r0, #0
+ movne r0, #2
+ moveq r0, #1
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02214330: .word 0x02216AD0
+_02214334: .word 0x02216ADC
+_02214338: .word 0x00000404
+_0221433C: .word 0x02216AE8
+_02214340: .word 0x00000405
+_02214344: .word 0x02216AFC
+_02214348: .word 0x00000406
+_0221434C: .word 0x02216B1C
+_02214350: .word 0x00000407
+_02214354: .word 0x02216B70
+_02214358: .word 0x00000408
+_0221435C: .word 0x02216B94
+_02214360: .word 0x00000409
+_02214364: .word 0x02216BE4
+_02214368: .word 0x0000042F
+_0221436C: .word 0x02216BF0
+_02214370: .word 0x0000043B
+_02214374: .word 0x02216C1C
+ arm_func_end MOD79_022140D4
+
+ arm_func_start MOD79_02214378
+MOD79_02214378: ; 0x02214378
+ stmdb sp!, {r4, r5, r6, lr}
+ ldr ip, _02214554 ; =0x00000808
+ sub sp, sp, ip
+ mov r6, r0
+ ldr r3, [r6, #4]
+ mvn r0, #0
+ mov r5, r1
+ mov r4, r2
+ cmp r3, r0
+ bne _022144D8
+ mov r2, #0
+ str r2, [r6, #4]
+ ldr r0, [r5, #0x13c]
+ ldr r0, [r0, #0xc]
+ cmp r0, #0
+ bne _02214410
+ ldr r0, [r6]
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022143D8
+ ldr r0, _02214558 ; =0x02216C48
+ ldr r1, _0221455C ; =0x02216ADC
+ ldr r3, _02214560 ; =0x000003A9
+ bl __msl_assertion_failed
+_022143D8:
+ cmp r4, #0
+ beq _022143F8
+ ldr r1, [r6]
+ add r0, sp, #8
+ ldr r2, [r1, #4]
+ ldr r1, _02214564 ; =0x02216C68
+ bl sprintf
+ b _02214498
+_022143F8:
+ ldr r1, [r6]
+ add r0, sp, #8
+ ldr r2, [r1, #4]
+ ldr r1, _02214568 ; =0x02216C6C
+ bl sprintf
+ b _02214498
+_02214410:
+ ldr r3, [r6]
+ ldr r1, [r3]
+ cmp r1, #0
+ bne _02214440
+ cmp r4, #0
+ ldrne r2, _0221456C ; =0x02216C74
+ ldr r3, [r3, #4]
+ ldreq r2, _02214570 ; =0x02216C9C
+ ldr r1, _02214574 ; =0x02216CC8
+ add r0, sp, #8
+ bl sprintf
+ b _02214498
+_02214440:
+ sub r0, r1, #1
+ cmp r0, #1
+ bhi _02214488
+ cmp r1, #1
+ ldreq r1, [r3, #0xc]
+ ldreq r0, [r3, #0x10]
+ ldrne r1, [r3, #0x10]
+ ldrne r0, [r3, #0x14]
+ cmp r4, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldrne r2, _0221456C ; =0x02216C74
+ ldr r3, [r3, #4]
+ ldreq r2, _02214570 ; =0x02216C9C
+ ldr r1, _02214578 ; =0x02216CF8
+ add r0, sp, #8
+ bl sprintf
+ b _02214498
+_02214488:
+ ldr r0, _0221457C ; =0x02216D4C
+ ldr r1, _0221455C ; =0x02216ADC
+ mov r3, #0x3dc
+ bl __msl_assertion_failed
+_02214498:
+ add r0, sp, #8
+ bl strlen
+ mov r2, r0
+ add r1, sp, #8
+ mov r0, r5
+ bl MOD79_02212F04
+ cmp r0, #0
+ ldreq ip, _02214554 ; =0x00000808
+ moveq r0, #0
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, r6, pc}
+ cmp r0, #2
+ ldreq ip, _02214554 ; =0x00000808
+ moveq r0, #2
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, r6, pc}
+_022144D8:
+ ldr r0, [r6]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02214500
+ mov r0, r6
+ mov r1, r5
+ bl MOD79_022147E8
+ ldr ip, _02214554 ; =0x00000808
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, r6, pc}
+_02214500:
+ cmp r0, #1
+ bne _02214520
+ mov r0, r6
+ mov r1, r5
+ bl MOD79_0221467C
+ ldr ip, _02214554 ; =0x00000808
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, r6, pc}
+_02214520:
+ cmp r0, #2
+ beq _0221453C
+ ldr r0, _02214580 ; =0x02216D50
+ ldr r1, _0221455C ; =0x02216ADC
+ ldr r3, _02214584 ; =0x000003F5
+ mov r2, #0
+ bl __msl_assertion_failed
+_0221453C:
+ mov r0, r6
+ mov r1, r5
+ bl MOD79_02214588
+ ldr ip, _02214554 ; =0x00000808
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02214554: .word 0x00000808
+_02214558: .word 0x02216C48
+_0221455C: .word 0x02216ADC
+_02214560: .word 0x000003A9
+_02214564: .word 0x02216C68
+_02214568: .word 0x02216C6C
+_0221456C: .word 0x02216C74
+_02214570: .word 0x02216C9C
+_02214574: .word 0x02216CC8
+_02214578: .word 0x02216CF8
+_0221457C: .word 0x02216D4C
+_02214580: .word 0x02216D50
+_02214584: .word 0x000003F5
+ arm_func_end MOD79_02214378
+
+ arm_func_start MOD79_02214588
+MOD79_02214588: ; 0x02214588
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ ldr r0, [r5, #4]
+ mov r4, r1
+ cmp r0, #0
+ bge _022145B8
+ ldr r0, _02214668 ; =0x02216D74
+ ldr r1, _0221466C ; =0x02216ADC
+ ldr r3, _02214670 ; =0x0000036E
+ mov r2, #0
+ bl __msl_assertion_failed
+_022145B8:
+ ldr r0, [r5]
+ ldr r1, [r0, #0xc]
+ cmp r1, #0
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r0, [r5, #4]
+ cmp r0, r1
+ blt _022145F0
+ ldr r0, _02214674 ; =0x02216D84
+ ldr r1, _0221466C ; =0x02216ADC
+ ldr r3, _02214678 ; =0x00000375
+ mov r2, #0
+ bl __msl_assertion_failed
+_022145F0:
+ ldr r1, [r5]
+ ldr r3, [r5, #4]
+ ldr r0, [r1, #0xc]
+ ldr r1, [r1, #8]
+ sub r2, r0, r3
+ cmp r2, #0x8000
+ movge r2, #0x8000
+ mov r0, r4
+ add r1, r1, r3
+ bl MOD79_02212F68
+ mvn r1, #0
+ cmp r0, r1
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, [r5, #4]
+ add r1, r1, r0
+ str r1, [r5, #4]
+ ldr r2, [r5]
+ ldr r1, [r5, #4]
+ ldr r2, [r2, #0xc]
+ cmp r2, r1
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {r4, r5, pc}
+ cmp r0, #0
+ bne _022145F0
+ mov r0, #2
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02214668: .word 0x02216D74
+_0221466C: .word 0x02216ADC
+_02214670: .word 0x0000036E
+_02214674: .word 0x02216D84
+_02214678: .word 0x00000375
+ arm_func_end MOD79_02214588
+
+ arm_func_start MOD79_0221467C
+MOD79_0221467C: ; 0x0221467C
+ stmdb sp!, {r4, r5, lr}
+ ldr ip, _022147CC ; =0x00001004
+ sub sp, sp, ip
+ mov r5, r0
+ ldr r0, [r5, #4]
+ mov r4, r1
+ cmp r0, #0
+ bge _022146B0
+ ldr r0, _022147D0 ; =0x02216D74
+ ldr r1, _022147D4 ; =0x02216ADC
+ ldr r3, _022147D8 ; =0x00000336
+ mov r2, #0
+ bl __msl_assertion_failed
+_022146B0:
+ ldr r1, [r5, #4]
+ ldr r0, [r5, #0xc]
+ cmp r1, r0
+ blt _022146D4
+ ldr r0, _022147DC ; =0x02216DB4
+ ldr r1, _022147D4 ; =0x02216ADC
+ ldr r3, _022147E0 ; =0x00000337
+ mov r2, #0
+ bl __msl_assertion_failed
+_022146D4:
+ ldr r0, [r5, #8]
+ bl ftell
+ ldr r1, [r5, #4]
+ cmp r1, r0
+ beq _022146FC
+ ldr r0, _022147E4 ; =0x02216DDC
+ ldr r1, _022147D4 ; =0x02216ADC
+ mov r2, #0
+ mov r3, #0x338
+ bl __msl_assertion_failed
+_022146FC:
+ ldr r3, [r5, #8]
+ add r0, sp, #0
+ mov r1, #1
+ mov r2, #0x1000
+ bl fread
+ mov r2, r0
+ cmp r2, #0
+ bgt _0221473C
+ ldr ip, _022147CC ; =0x00001004
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #0xe
+ str r0, [r4, #0x38]
+ add sp, sp, ip
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_0221473C:
+ ldr r0, [r5, #4]
+ add r0, r0, r2
+ str r0, [r5, #4]
+ ldr r1, [r5, #4]
+ ldr r0, [r5, #0xc]
+ cmp r1, r0
+ ble _02214778
+ ldr ip, _022147CC ; =0x00001004
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #0xe
+ str r0, [r4, #0x38]
+ add sp, sp, ip
+ mov r0, #0
+ ldmia sp!, {r4, r5, pc}
+_02214778:
+ add r1, sp, #0
+ mov r0, r4
+ bl MOD79_02212F04
+ cmp r0, #0
+ ldreq ip, _022147CC ; =0x00001004
+ moveq r0, #0
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r2, [r5, #4]
+ ldr r1, [r5, #0xc]
+ cmp r2, r1
+ ldreq ip, _022147CC ; =0x00001004
+ moveq r0, #1
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, pc}
+ cmp r0, #1
+ beq _022146FC
+ mov r0, #2
+ ldr ip, _022147CC ; =0x00001004
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_022147CC: .word 0x00001004
+_022147D0: .word 0x02216D74
+_022147D4: .word 0x02216ADC
+_022147D8: .word 0x00000336
+_022147DC: .word 0x02216DB4
+_022147E0: .word 0x00000337
+_022147E4: .word 0x02216DDC
+ arm_func_end MOD79_0221467C
+
+ arm_func_start MOD79_022147E8
+MOD79_022147E8: ; 0x022147E8
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ mov r4, r0
+ ldr r0, [r4, #4]
+ mov sl, r1
+ cmp r0, #0
+ bge _02214818
+ ldr r0, _022149BC ; =0x02216D74
+ ldr r1, _022149C0 ; =0x02216ADC
+ ldr r3, _022149C4 ; =0x000002E7
+ mov r2, #0
+ bl __msl_assertion_failed
+_02214818:
+ ldr r0, [r4]
+ ldr r1, [r0, #0xc]
+ cmp r1, #0
+ addeq sp, sp, #4
+ moveq r0, #1
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r0, [r4, #4]
+ cmp r0, r1
+ blt _02214850
+ ldr r0, _022149C8 ; =0x02216E14
+ ldr r1, _022149C0 ; =0x02216ADC
+ ldr r3, _022149CC ; =0x000002EE
+ mov r2, #0
+ bl __msl_assertion_failed
+_02214850:
+ ldr r0, [sl, #0x13c]
+ ldr r0, [r0, #0xc]
+ cmp r0, #0
+ bne _02214968
+ ldr r1, [r4]
+ ldr r0, [r1, #0x10]
+ cmp r0, #0
+ beq _02214968
+ ldr r0, _022149D0 ; =0x02216738
+ ldr r7, [r1, #8]
+ ldrb r3, [r0]
+ ldrb r2, [r0, #1]
+ ldrb r1, [r0, #2]
+ ldrb r0, [r0, #3]
+ strb r3, [sp]
+ strb r2, [sp, #1]
+ strb r1, [sp, #2]
+ strb r0, [sp, #3]
+ ldrsb r8, [r7]
+ mov sb, #0
+ cmp r8, #0
+ beq _0221495C
+ mov fp, sb
+ mov r4, #3
+ mov r5, #0x2b
+_022148B4:
+ ldr r0, _022149D4 ; =0x02216E40
+ mov r1, r8
+ bl strchr
+ cmp r0, #0
+ beq _022148D8
+ mov r1, r8
+ add r0, sl, #0x50
+ bl MOD79_022126A4
+ b _0221494C
+_022148D8:
+ cmp r8, #0x20
+ bne _022148F0
+ mov r1, r5
+ add r0, sl, #0x50
+ bl MOD79_022126A4
+ b _0221494C
+_022148F0:
+ mov r0, r8, asr #3
+ add r0, r8, r0, lsr #28
+ mov r6, r0, asr #4
+ cmp r6, #0x10
+ blt _02214918
+ ldr r0, _022149D8 ; =0x02216E84
+ ldr r1, _022149C0 ; =0x02216ADC
+ ldr r3, _022149DC ; =0x0000030D
+ mov r2, fp
+ bl __msl_assertion_failed
+_02214918:
+ ldr r0, _022149E0 ; =0x02216E94
+ mov r1, r8, lsr #0x1f
+ ldrsb r2, [r0, r6]
+ rsb r0, r1, r8, lsl #28
+ add r1, r1, r0, ror #28
+ ldr r0, _022149E0 ; =0x02216E94
+ strb r2, [sp, #1]
+ ldrsb r2, [r0, r1]
+ add r1, sp, #0
+ add r0, sl, #0x50
+ strb r2, [sp, #2]
+ mov r2, r4
+ bl MOD79_02212794
+_0221494C:
+ add sb, sb, #1
+ ldrsb r8, [r7, sb]
+ cmp r8, #0
+ bne _022148B4
+_0221495C:
+ add sp, sp, #4
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02214968:
+ ldr r1, [r4]
+ ldr r0, [r4, #4]
+ ldr r2, [r1, #0xc]
+ ldr r1, [r1, #8]
+ sub r5, r2, r0
+ mov r0, sl
+ mov r2, r5
+ bl MOD79_02212F68
+ mvn r1, #0
+ cmp r0, r1
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r1, [r4, #4]
+ cmp r0, r5
+ add r0, r1, r0
+ str r0, [r4, #4]
+ moveq r0, #1
+ movne r0, #2
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_022149BC: .word 0x02216D74
+_022149C0: .word 0x02216ADC
+_022149C4: .word 0x000002E7
+_022149C8: .word 0x02216E14
+_022149CC: .word 0x000002EE
+_022149D0: .word 0x02216738
+_022149D4: .word 0x02216E40
+_022149D8: .word 0x02216E84
+_022149DC: .word 0x0000030D
+_022149E0: .word 0x02216E94
+ arm_func_end MOD79_022147E8
+
+ arm_func_start MOD79_022149E4
+MOD79_022149E4: ; 0x022149E4
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ ldr r0, [r6, #0x140]
+ cmp r0, #0
+ beq _02214A38
+ bl MOD04_021EF06C
+ mov r4, r0
+ cmp r4, #0
+ mov r5, #0
+ ble _02214A28
+_02214A0C:
+ ldr r0, [r6, #0x140]
+ mov r1, r5
+ bl MOD04_021EEFFC
+ bl MOD79_02214BF4
+ add r5, r5, #1
+ cmp r5, r4
+ blt _02214A0C
+_02214A28:
+ ldr r0, [r6, #0x140]
+ bl MOD04_021EF074
+ mov r0, #0
+ str r0, [r6, #0x140]
+_02214A38:
+ ldr r0, [r6, #0x13c]
+ cmp r0, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ ldr r1, [r0, #0x10]
+ cmp r1, #0
+ ldmeqia sp!, {r4, r5, r6, pc}
+ bl MOD79_02215058
+ mov r0, #0
+ str r0, [r6, #0x13c]
+ ldmia sp!, {r4, r5, r6, pc}
+ arm_func_end MOD79_022149E4
+
+ arm_func_start MOD79_02214A60
+MOD79_02214A60: ; 0x02214A60
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ sub sp, sp, #0x10
+ mov r4, r0
+ ldr r0, [r4, #0x13c]
+ cmp r0, #0
+ bne _02214A8C
+ ldr r0, _02214BE4 ; =0x02216AE8
+ ldr r1, _02214BE8 ; =0x02216ADC
+ mov r2, #0
+ mov r3, #0x278
+ bl __msl_assertion_failed
+_02214A8C:
+ ldr r0, [r4, #0x13c]
+ cmp r0, #0
+ addeq sp, sp, #0x10
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ mov r0, #0
+ str r0, [r4, #0x144]
+ str r0, [r4, #0x148]
+ str r0, [r4, #0x14c]
+ ldr r0, [r4, #0x13c]
+ ldr r0, [r0, #4]
+ str r0, [r4, #0x150]
+ ldr r0, [r4, #0x13c]
+ ldr r0, [r0, #8]
+ str r0, [r4, #0x154]
+ ldr r0, [r4, #0x13c]
+ ldr r0, [r0]
+ bl MOD04_021EF06C
+ mov r7, r0
+ mov r1, r7
+ mov r0, #0x10
+ mov r2, #0
+ bl MOD04_021EF0E4
+ str r0, [r4, #0x140]
+ ldr r0, [r4, #0x140]
+ cmp r0, #0
+ addeq sp, sp, #0x10
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp r7, #0
+ mov r8, #0
+ ble _02214B98
+ add r6, sp, #0
+ mov r5, r8
+_02214B14:
+ ldr r0, [r4, #0x13c]
+ mov r1, r8
+ ldr r0, [r0]
+ bl MOD04_021EEFFC
+ str r5, [r6]
+ str r5, [r6, #4]
+ str r5, [r6, #8]
+ str r5, [r6, #0xc]
+ str r0, [sp]
+ mov r0, r6
+ bl MOD79_02214C5C
+ cmp r0, #0
+ bne _02214B80
+ subs r8, r8, #1
+ bmi _02214B68
+_02214B50:
+ ldr r0, [r4, #0x140]
+ mov r1, r8
+ bl MOD04_021EEFFC
+ bl MOD79_02214BF4
+ subs r8, r8, #1
+ bpl _02214B50
+_02214B68:
+ ldr r0, [r4, #0x140]
+ bl MOD04_021EF074
+ mov r0, #0
+ add sp, sp, #0x10
+ str r0, [r4, #0x140]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_02214B80:
+ ldr r0, [r4, #0x140]
+ mov r1, r6
+ bl MOD04_021EEFA8
+ add r8, r8, #1
+ cmp r8, r7
+ blt _02214B14
+_02214B98:
+ ldr r0, [r4, #0x13c]
+ ldr r0, [r0]
+ bl MOD04_021EF06C
+ mov r5, r0
+ ldr r0, [r4, #0x140]
+ bl MOD04_021EF06C
+ cmp r5, r0
+ beq _02214BCC
+ ldr r0, _02214BEC ; =0x02216B1C
+ ldr r1, _02214BE8 ; =0x02216ADC
+ ldr r3, _02214BF0 ; =0x000002B1
+ mov r2, #0
+ bl __msl_assertion_failed
+_02214BCC:
+ mov r0, r4
+ bl MOD79_02214D0C
+ str r0, [r4, #0x14c]
+ mov r0, #1
+ add sp, sp, #0x10
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02214BE4: .word 0x02216AE8
+_02214BE8: .word 0x02216ADC
+_02214BEC: .word 0x02216B1C
+_02214BF0: .word 0x000002B1
+ arm_func_end MOD79_02214A60
+
+ arm_func_start MOD79_02214BF4
+MOD79_02214BF4: ; 0x02214BF4
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, #0
+ ldmeqia sp!, {r4, pc}
+ cmp r0, #1
+ bne _02214C30
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _02214C24
+ bl fclose
+_02214C24:
+ mov r0, #0
+ str r0, [r4, #8]
+ ldmia sp!, {r4, pc}
+_02214C30:
+ cmp r0, #2
+ ldmeqia sp!, {r4, pc}
+ ldr r0, _02214C50 ; =0x02216D4C
+ ldr r1, _02214C54 ; =0x02216ADC
+ ldr r3, _02214C58 ; =0x00000269
+ mov r2, #0
+ bl __msl_assertion_failed
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02214C50: .word 0x02216D4C
+_02214C54: .word 0x02216ADC
+_02214C58: .word 0x00000269
+ arm_func_end MOD79_02214BF4
+
+ arm_func_start MOD79_02214C5C
+MOD79_02214C5C: ; 0x02214C5C
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r1, [r4]
+ mvn r0, #0
+ ldr r1, [r1]
+ str r0, [r4, #4]
+ cmp r1, #0
+ beq _02214CFC
+ cmp r1, #1
+ bne _02214CD8
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ mov r1, #0
+ mov r2, #2
+ bl fseek
+ cmp r0, #0
+ movne r0, #0
+ ldmneia sp!, {r4, pc}
+ ldr r0, [r4, #8]
+ bl ftell
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #0xc]
+ mvn r0, #0
+ cmp r1, r0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldr r0, [r4, #8]
+ bl rewind
+ b _02214CFC
+_02214CD8:
+ cmp r1, #2
+ beq _02214CFC
+ ldr r0, _02214D04 ; =0x02216D4C
+ ldr r1, _02214D08 ; =0x02216ADC
+ mov r2, #0
+ mov r3, #0x244
+ bl __msl_assertion_failed
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_02214CFC:
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02214D04: .word 0x02216D4C
+_02214D08: .word 0x02216ADC
+ arm_func_end MOD79_02214C5C
+
+ arm_func_start MOD79_02214D0C
+MOD79_02214D0C: ; 0x02214D0C
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r5, r0
+ ldr r4, [r5, #0x13c]
+ cmp r4, #0
+ bne _02214D38
+ ldr r0, _02214D74 ; =0x02216EA8
+ ldr r1, _02214D78 ; =0x02216ADC
+ mov r2, #0
+ mov r3, #0x20c
+ bl __msl_assertion_failed
+_02214D38:
+ cmp r4, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _02214D64
+ mov r0, r5
+ bl MOD79_02214D7C
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+_02214D64:
+ mov r0, r5
+ bl MOD79_02214F48
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02214D74: .word 0x02216EA8
+_02214D78: .word 0x02216ADC
+ arm_func_end MOD79_02214D0C
+
+ arm_func_start MOD79_02214D7C
+MOD79_02214D7C: ; 0x02214D7C
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ ldr r1, _02214F24 ; =0x0221714C
+ mov r8, r0
+ ldr r0, [r1]
+ ldr r7, [r8, #0x13c]
+ cmp r0, #0
+ mov r4, #0
+ bne _02214DD4
+ ldr r0, _02214F28 ; =0x02216EB0
+ bl strlen
+ ldr r5, _02214F24 ; =0x0221714C
+ ldr r3, _02214F2C ; =0x02217148
+ add sl, r0, #0x2f
+ ldr r2, _02214F30 ; =0x02217144
+ add sb, r0, #0x4c
+ ldr r1, _02214F34 ; =0x02217140
+ add r6, r0, #4
+ str r0, [r5]
+ str sl, [r3]
+ str sb, [r2]
+ str r6, [r1]
+_02214DD4:
+ ldr r0, [r7]
+ bl MOD04_021EF06C
+ mov r5, r0
+ cmp r5, #0
+ mov r6, #0
+ ble _02214F10
+ mov fp, r6
+ mov sb, #0x1ec
+_02214DF4:
+ ldr r0, [r7]
+ mov r1, r6
+ bl MOD04_021EEFFC
+ mov sl, r0
+ ldr r0, [sl]
+ cmp r0, #0
+ bne _02214E34
+ ldr r0, _02214F2C ; =0x02217148
+ ldr r1, [r0]
+ ldr r0, [sl, #4]
+ add r4, r4, r1
+ bl strlen
+ add r1, r4, r0
+ ldr r0, [sl, #0xc]
+ add r4, r1, r0
+ b _02214F04
+_02214E34:
+ cmp r0, #1
+ bne _02214EA0
+ ldr r0, _02214F30 ; =0x02217144
+ ldr r1, [r0]
+ ldr r0, [sl, #4]
+ add r4, r4, r1
+ bl strlen
+ add r4, r4, r0
+ ldr r0, [sl, #0xc]
+ bl strlen
+ add r4, r4, r0
+ ldr r0, [sl, #0x10]
+ bl strlen
+ add r4, r4, r0
+ ldr r0, [r8, #0x140]
+ mov r1, r6
+ bl MOD04_021EEFFC
+ movs sl, r0
+ bne _02214E94
+ ldr r0, _02214F38 ; =0x02216ED8
+ ldr r1, _02214F3C ; =0x02216ADC
+ mov r2, fp
+ mov r3, sb
+ bl __msl_assertion_failed
+_02214E94:
+ ldr r0, [sl, #0xc]
+ add r4, r4, r0
+ b _02214F04
+_02214EA0:
+ cmp r0, #2
+ bne _02214EE4
+ ldr r0, _02214F30 ; =0x02217144
+ ldr r1, [r0]
+ ldr r0, [sl, #4]
+ add r4, r4, r1
+ bl strlen
+ add r4, r4, r0
+ ldr r0, [sl, #0x10]
+ bl strlen
+ add r4, r4, r0
+ ldr r0, [sl, #0x14]
+ bl strlen
+ add r1, r4, r0
+ ldr r0, [sl, #0xc]
+ add r4, r1, r0
+ b _02214F04
+_02214EE4:
+ ldr r0, _02214F40 ; =0x02216D4C
+ ldr r1, _02214F3C ; =0x02216ADC
+ ldr r3, _02214F44 ; =0x000001F9
+ mov r2, #0
+ bl __msl_assertion_failed
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02214F04:
+ add r6, r6, #1
+ cmp r6, r5
+ blt _02214DF4
+_02214F10:
+ ldr r0, _02214F34 ; =0x02217140
+ ldr r0, [r0]
+ add r0, r4, r0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02214F24: .word 0x0221714C
+_02214F28: .word 0x02216EB0
+_02214F2C: .word 0x02217148
+_02214F30: .word 0x02217144
+_02214F34: .word 0x02217140
+_02214F38: .word 0x02216ED8
+_02214F3C: .word 0x02216ADC
+_02214F40: .word 0x02216D4C
+_02214F44: .word 0x000001F9
+ arm_func_end MOD79_02214D7C
+
+ arm_func_start MOD79_02214F48
+MOD79_02214F48: ; 0x02214F48
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #4
+ ldr sl, [r0, #0x13c]
+ mov r6, #0
+ ldr r0, [sl]
+ bl MOD04_021EF06C
+ movs r7, r0
+ addeq sp, sp, #4
+ moveq r0, r6
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ cmp r7, #0
+ mov r8, r6
+ ble _02214FE4
+ ldr fp, _02214FF4 ; =0x02216EE0
+ mov r5, r8
+ mov r4, #0x1b0
+_02214F88:
+ ldr r0, [sl]
+ mov r1, r8
+ bl MOD04_021EEFFC
+ mov sb, r0
+ ldr r0, [sb]
+ cmp r0, #0
+ beq _02214FB8
+ ldr r1, _02214FF8 ; =0x02216ADC
+ mov r0, fp
+ mov r2, r5
+ mov r3, r4
+ bl __msl_assertion_failed
+_02214FB8:
+ ldr r0, [sb, #4]
+ bl strlen
+ add r8, r8, #1
+ ldr r1, [sb, #0xc]
+ add r2, r6, r0
+ ldr r0, [sb, #0x14]
+ add r1, r2, r1
+ add r0, r1, r0, lsl #1
+ cmp r8, r7
+ add r6, r0, #1
+ blt _02214F88
+_02214FE4:
+ sub r0, r7, #1
+ add r0, r6, r0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02214FF4: .word 0x02216EE0
+_02214FF8: .word 0x02216ADC
+ arm_func_end MOD79_02214F48
+
+ arm_func_start MOD79_02214FFC
+MOD79_02214FFC: ; 0x02214FFC
+ stmdb sp!, {r4, lr}
+ ldr r4, [r0, #0x13c]
+ cmp r4, #0
+ bne _02215020
+ ldr r0, _02215040 ; =0x02216EA8
+ ldr r1, _02215044 ; =0x02216ADC
+ ldr r3, _02215048 ; =0x00000192
+ mov r2, #0
+ bl __msl_assertion_failed
+_02215020:
+ cmp r4, #0
+ ldreq r0, _0221504C ; =0x02216EF8
+ ldmeqia sp!, {r4, pc}
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ ldrne r0, _02215050 ; =0x02216EFC
+ ldreq r0, _02215054 ; =0x02216F40
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02215040: .word 0x02216EA8
+_02215044: .word 0x02216ADC
+_02215048: .word 0x00000192
+_0221504C: .word 0x02216EF8
+_02215050: .word 0x02216EFC
+_02215054: .word 0x02216F40
+ arm_func_end MOD79_02214FFC
+
+ arm_func_start MOD79_02215058
+MOD79_02215058: ; 0x02215058
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, [r4]
+ bl MOD04_021EF074
+ mov r0, r4
+ bl MOD04_021DD82C
+ ldmia sp!, {r4, pc}
+ arm_func_end MOD79_02215058
+
+ arm_func_start MOD79_02215074
+MOD79_02215074: ; 0x02215074
+ ldr r0, [r0, #0x10]
+ bx lr
+ arm_func_end MOD79_02215074
+
+ arm_func_start MOD79_0221507C
+MOD79_0221507C: ; 0x0221507C
+ stmdb sp!, {r4, r5, r6, r7, r8, lr}
+ ldr ip, _02215170 ; =0x00002008
+ sub sp, sp, ip
+ mov r5, r0
+ bl MOD04_021F025C
+ mov r4, r0
+ mov r1, #0
+ mov r8, #0x2000
+ add r7, sp, #4
+ add r6, sp, #0
+ b _02215144
+_022150A8:
+ mov r0, r5
+ mov r1, r7
+ mov r2, r6
+ str r8, [sp]
+ bl MOD79_02212FF0
+ cmp r0, #3
+ ldreq ip, _02215170 ; =0x00002008
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp r0, #1
+ ldreq ip, _02215170 ; =0x00002008
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ cmp r0, #2
+ bne _0221511C
+ mov r0, #1
+ str r0, [r5, #0xfc]
+ ldr r1, [r5, #0x104]
+ cmp r1, #0
+ ldrle ip, _02215170 ; =0x00002008
+ addle sp, sp, ip
+ ldmleia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r0, [r5, #0x100]
+ ldr ip, _02215170 ; =0x00002008
+ cmp r0, r1
+ movlt r0, #0xf
+ add sp, sp, ip
+ strlt r0, [r5, #0x38]
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+_0221511C:
+ ldr r2, [sp]
+ mov r0, r5
+ mov r1, r7
+ bl MOD79_02215640
+ cmp r0, #0
+ ldreq ip, _02215170 ; =0x00002008
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
+ bl MOD04_021F025C
+ sub r1, r0, r4
+_02215144:
+ ldr r0, [r5, #0xfc]
+ cmp r0, #0
+ ldrne ip, _02215170 ; =0x00002008
+ addne sp, sp, ip
+ ldmneia sp!, {r4, r5, r6, r7, r8, pc}
+ ldr r0, [r5, #0x158]
+ cmp r1, r0
+ blo _022150A8
+ ldr ip, _02215170 ; =0x00002008
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, r6, r7, r8, pc}
+ .align 2, 0
+_02215170: .word 0x00002008
+ arm_func_end MOD79_0221507C
+
+ arm_func_start MOD79_02215174
+MOD79_02215174: ; 0x02215174
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
+ ldr ip, _02215618 ; =0x00001018
+ sub sp, sp, ip
+ mov r3, #0x1000
+ add r1, sp, #0x13
+ add r2, sp, #4
+ mov r6, r0
+ str r3, [sp, #4]
+ bl MOD79_02212FF0
+ mov r4, r0
+ cmp r4, #3
+ ldreq ip, _02215618 ; =0x00001018
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ cmp r4, #1
+ bne _022151CC
+ ldr r1, [r6, #0x84]
+ ldr r0, [r6, #0x80]
+ cmp r1, r0
+ ldreq ip, _02215618 ; =0x00001018
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_022151CC:
+ cmp r4, #0
+ bne _022151F4
+ ldr r2, [sp, #4]
+ add r1, sp, #0x13
+ add r0, r6, #0x74
+ bl MOD79_02212794
+ cmp r0, #0
+ ldreq ip, _02215618 ; =0x00001018
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_022151F4:
+ ldr r2, [r6, #0x84]
+ ldr r0, [r6, #0x78]
+ ldr r1, _0221561C ; =0x02216F64
+ add r5, r0, r2
+ mov r0, r5
+ str r2, [r6, #0xf4]
+ bl strstr
+ cmp r0, #0
+ bne _02215224
+ ldr r1, _02215620 ; =0x02216F6C
+ mov r0, r5
+ bl strstr
+_02215224:
+ cmp r0, #0
+ beq _022155E0
+ mov r1, #0
+ strb r1, [r0, #2]
+ ldr r7, [r6, #0x78]
+ add r3, r0, #2
+ ldr r1, [r6, #0x80]
+ sub r2, r3, r7
+ str r2, [r6, #0x80]
+ ldr r2, [r6, #0x78]
+ add r4, r0, #4
+ sub r0, r3, r2
+ str r0, [r6, #0xf8]
+ ldr r0, [r6, #0xf8]
+ sub r8, r4, r7
+ str r0, [r6, #0x84]
+ ldr r2, [r6, #0xec]
+ ldr r3, _02215624 ; =0x51EB851F
+ mov r0, r2, lsr #0x1f
+ smull r2, r7, r3, r2
+ mov r7, r7, asr #5
+ add r7, r0, r7
+ cmp r7, #1
+ sub sl, r1, r8
+ bne _022152DC
+ cmp sl, #0
+ beq _022152B0
+ ldr r0, [r6, #0x78]
+ mov r1, r4
+ add r2, sl, #1
+ bl memmove
+ str sl, [r6, #0x80]
+ mov r0, #0
+ str r0, [r6, #0x84]
+ b _022152B8
+_022152B0:
+ add r0, r6, #0x74
+ bl MOD79_0221262C
+_022152B8:
+ mov r1, #0
+ mov r3, #6
+ mov r0, r6
+ mov r2, r1
+ str r3, [r6, #0x10]
+ bl MOD79_02212E00
+ ldr ip, _02215618 ; =0x00001018
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_022152DC:
+ cmp r7, #3
+ bne _02215448
+ ldr r0, [r6, #0x10c]
+ cmp r0, #0xa
+ ldrgt ip, _02215618 ; =0x00001018
+ movgt r0, #1
+ strgt r0, [r6, #0xfc]
+ movgt r0, #0xb
+ addgt sp, sp, ip
+ strgt r0, [r6, #0x38]
+ ldmgtia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ ldr r1, _02215628 ; =0x02216F70
+ mov r0, r5
+ bl strstr
+ cmp r0, #0
+ beq _02215448
+ add r4, r0, #9
+ ldr r1, _0221562C ; =0x0210430C
+ mov r2, #0
+ b _02215330
+_0221532C:
+ add r4, r4, #1
+_02215330:
+ ldrsb r0, [r4]
+ cmp r0, #0
+ blt _02215344
+ cmp r0, #0x80
+ blt _0221534C
+_02215344:
+ mov r0, r2
+ b _02215358
+_0221534C:
+ mov r0, r0, lsl #1
+ ldrh r0, [r1, r0]
+ and r0, r0, #0x100
+_02215358:
+ cmp r0, #0
+ bne _0221532C
+ mov r3, r4
+ ldr r1, _0221562C ; =0x0210430C
+ mov r2, #0
+ b _02215374
+_02215370:
+ add r3, r3, #1
+_02215374:
+ ldrsb r0, [r3]
+ cmp r0, #0
+ beq _022153AC
+ cmp r0, #0
+ blt _02215390
+ cmp r0, #0x80
+ blt _02215398
+_02215390:
+ mov r0, r2
+ b _022153A4
+_02215398:
+ mov r0, r0, lsl #1
+ ldrh r0, [r1, r0]
+ and r0, r0, #0x100
+_022153A4:
+ cmp r0, #0
+ beq _02215370
+_022153AC:
+ mov r0, #0
+ strb r0, [r3]
+ ldrsb r0, [r4]
+ cmp r0, #0x2f
+ bne _0221541C
+ ldr r0, [r6, #0x18]
+ bl strlen
+ mov r5, r0
+ mov r0, r4
+ bl strlen
+ add r1, r5, #0xe
+ add r0, r1, r0
+ bl MOD04_021DD860
+ str r0, [r6, #0x108]
+ ldr r0, [r6, #0x108]
+ ldr r1, _02215630 ; =0x02216F7C
+ cmp r0, #0
+ moveq r0, #1
+ streq r0, [r6, #0xfc]
+ streq r0, [r6, #0x38]
+ str r4, [sp]
+ ldrh r3, [r6, #0x20]
+ ldr r0, [r6, #0x108]
+ ldr r2, [r6, #0x18]
+ bl sprintf
+ ldr ip, _02215618 ; =0x00001018
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_0221541C:
+ mov r0, r4
+ bl MOD04_021F0208
+ str r0, [r6, #0x108]
+ ldr r0, [r6, #0x108]
+ ldr ip, _02215618 ; =0x00001018
+ cmp r0, #0
+ moveq r0, #1
+ streq r0, [r6, #0xfc]
+ add sp, sp, ip
+ streq r0, [r6, #0x38]
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_02215448:
+ ldr r1, _02215634 ; =0x02216F8C
+ mov r0, r5
+ bl strstr
+ movs sb, r0
+ beq _02215530
+ ldr r7, _02215638 ; =0x0221673C
+ add r3, sp, #8
+ mov r2, #5
+_02215468:
+ ldrb r1, [r7], #1
+ ldrb r0, [r7], #1
+ subs r2, r2, #1
+ strb r1, [r3], #1
+ strb r0, [r3], #1
+ bne _02215468
+ ldrb r1, [r7]
+ add r8, sb, #0x10
+ add r0, sp, #8
+ mov r7, r8
+ strb r1, [r3]
+ bl strlen
+ b _022154A0
+_0221549C:
+ add r7, r7, #1
+_022154A0:
+ cmp r7, #0
+ beq _022154CC
+ ldrsb r1, [r7]
+ cmp r1, #0
+ beq _022154CC
+ cmp r1, #0xa
+ beq _022154CC
+ cmp r1, #0xd
+ beq _022154CC
+ cmp r1, #0x20
+ bne _0221549C
+_022154CC:
+ sub r2, r7, r8
+ cmp r2, r0
+ ldrgt ip, _02215618 ; =0x00001018
+ movgt r0, #1
+ strgt r0, [r6, #0xfc]
+ movgt r0, #0x10
+ addgt sp, sp, ip
+ strgt r0, [r6, #0x38]
+ ldmgtia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ cmp r0, r2
+ bne _02215524
+ add r1, sp, #8
+ mov r0, r8
+ bl strncmp
+ cmp r0, #0
+ ldrge ip, _02215618 ; =0x00001018
+ movge r0, #1
+ strge r0, [r6, #0xfc]
+ movge r0, #0x10
+ addge sp, sp, ip
+ strge r0, [r6, #0x38]
+ ldmgeia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_02215524:
+ mov r0, r8
+ bl atol
+ str r0, [r6, #0x104]
+_02215530:
+ ldr r1, _0221563C ; =0x02216F9C
+ mov r0, r5
+ bl strstr
+ cmp r0, #0
+ movne r0, #1
+ moveq r0, #0
+ str r0, [r6, #0x110]
+ ldr r0, [r6, #0x110]
+ cmp r0, #0
+ movne r0, #0
+ strneb r0, [r6, #0x114]
+ strne r0, [r6, #0x120]
+ strne r0, [r6, #0x124]
+ strne r0, [r6, #0x128]
+ ldr r0, [r6, #0xc]
+ sub r0, r0, #3
+ cmp r0, #1
+ ldrls ip, _02215618 ; =0x00001018
+ movls r0, #1
+ addls sp, sp, ip
+ strls r0, [r6, #0xfc]
+ ldmlsia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ mov r0, #8
+ str r0, [r6, #0x10]
+ cmp sb, #0
+ beq _022155B4
+ ldr r0, [r6, #0x104]
+ cmp r0, #0
+ ldreq ip, _02215618 ; =0x00001018
+ moveq r0, #1
+ addeq sp, sp, ip
+ streq r0, [r6, #0xfc]
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_022155B4:
+ cmp sl, #0
+ ldrle ip, _02215618 ; =0x00001018
+ addle sp, sp, ip
+ ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ mov r0, r6
+ mov r1, r4
+ mov r2, sl
+ bl MOD79_02215640
+ ldr ip, _02215618 ; =0x00001018
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+_022155E0:
+ cmp r4, #2
+ ldrne ip, _02215618 ; =0x00001018
+ addne sp, sp, ip
+ ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ mov r0, #1
+ str r0, [r6, #0xfc]
+ mov r0, #7
+ str r0, [r6, #0x38]
+ ldr r0, [r6, #0x48]
+ bl MOD04_021EFB28
+ str r0, [r6, #0x4c]
+ ldr ip, _02215618 ; =0x00001018
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
+ .align 2, 0
+_02215618: .word 0x00001018
+_0221561C: .word 0x02216F64
+_02215620: .word 0x02216F6C
+_02215624: .word 0x51EB851F
+_02215628: .word 0x02216F70
+_0221562C: .word 0x0210430C
+_02215630: .word 0x02216F7C
+_02215634: .word 0x02216F8C
+_02215638: .word 0x0221673C
+_0221563C: .word 0x02216F9C
+ arm_func_end MOD79_02215174
+
+ arm_func_start MOD79_02215640
+MOD79_02215640: ; 0x02215640
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
+ sub sp, sp, #0xc
+ movs r6, r0
+ mov r5, r1
+ mov r4, r2
+ bne _0221566C
+ ldr r0, _02215884 ; =0x02216FB8
+ ldr r1, _02215888 ; =0x02216FC4
+ ldr r3, _0221588C ; =0x0000035D
+ mov r2, #0
+ bl __msl_assertion_failed
+_0221566C:
+ cmp r5, #0
+ bne _02215688
+ ldr r0, _02215890 ; =0x02216FD4
+ ldr r1, _02215888 ; =0x02216FC4
+ ldr r3, _02215894 ; =0x0000035E
+ mov r2, #0
+ bl __msl_assertion_failed
+_02215688:
+ cmp r4, #0
+ bgt _022156A4
+ ldr r0, _02215898 ; =0x02216FDC
+ ldr r1, _02215888 ; =0x02216FC4
+ ldr r3, _0221589C ; =0x0000035F
+ mov r2, #0
+ bl __msl_assertion_failed
+_022156A4:
+ ldr r0, [r6, #0x110]
+ cmp r0, #0
+ beq _0221586C
+ cmp r4, #0
+ ble _02215860
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ add r8, r6, #0x124
+ mov sl, #0xa
+ mov r7, #0
+ str r0, [sp]
+ mov fp, #3
+_022156D8:
+ ldr r0, [r6, #0x128]
+ cmp r0, #0
+ bne _02215780
+ mov r0, r5
+ mov r1, sl
+ bl strchr
+ movs sb, r0
+ beq _02215764
+ mov r0, r6
+ mov r1, r5
+ sub r2, sb, r5
+ bl MOD79_022158A8
+ add r1, sb, #1
+ sub r2, r1, r5
+ mov r0, r6
+ mov r5, r1
+ sub r4, r4, r2
+ bl MOD79_02215984
+ str r0, [r6, #0x124]
+ ldr r1, [r6, #0x124]
+ mvn r0, #0
+ cmp r1, r0
+ bne _02215750
+ mov r0, #1
+ str r0, [r6, #0xfc]
+ mov r0, #7
+ str r0, [r6, #0x38]
+ add sp, sp, #0xc
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02215750:
+ cmp r1, #0
+ ldrne r0, [sp]
+ streq fp, [r6, #0x128]
+ strne r0, [r6, #0x128]
+ b _02215858
+_02215764:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MOD79_022158A8
+ add sp, sp, #0xc
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02215780:
+ cmp r0, #1
+ bne _022157DC
+ ldr sb, [r6, #0x124]
+ mov r0, r6
+ cmp sb, r4
+ movge sb, r4
+ mov r1, r5
+ mov r2, sb
+ bl MOD79_022159E4
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r0, [r8]
+ add r5, r5, sb
+ sub r0, r0, sb
+ str r0, [r8]
+ ldr r0, [r6, #0x124]
+ sub r4, r4, sb
+ cmp r0, #0
+ ldreq r0, [sp, #4]
+ streq r0, [r6, #0x128]
+ b _02215858
+_022157DC:
+ cmp r0, #2
+ bne _02215824
+ mov r0, r5
+ mov r1, sl
+ bl strchr
+ cmp r0, #0
+ addeq sp, sp, #0xc
+ moveq r0, #1
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ strb r7, [r6, #0x114]
+ str r7, [r6, #0x120]
+ add r0, r0, #1
+ sub r1, r0, r5
+ str r7, [r6, #0x124]
+ mov r5, r0
+ str r7, [r6, #0x128]
+ sub r4, r4, r1
+ b _02215858
+_02215824:
+ cmp r0, #3
+ moveq r0, #1
+ addeq sp, sp, #0xc
+ streq r0, [r6, #0xfc]
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ ldr r0, _022158A0 ; =0x02216FE4
+ ldr r1, _02215888 ; =0x02216FC4
+ ldr r3, _022158A4 ; =0x000003E3
+ mov r2, #0
+ bl __msl_assertion_failed
+ add sp, sp, #0xc
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_02215858:
+ cmp r4, #0
+ bgt _022156D8
+_02215860:
+ add sp, sp, #0xc
+ mov r0, #1
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+_0221586C:
+ mov r0, r6
+ mov r1, r5
+ mov r2, r4
+ bl MOD79_022159E4
+ add sp, sp, #0xc
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
+ .align 2, 0
+_02215884: .word 0x02216FB8
+_02215888: .word 0x02216FC4
+_0221588C: .word 0x0000035D
+_02215890: .word 0x02216FD4
+_02215894: .word 0x0000035E
+_02215898: .word 0x02216FDC
+_0221589C: .word 0x0000035F
+_022158A0: .word 0x02216FE4
+_022158A4: .word 0x000003E3
+ arm_func_end MOD79_02215640
+
+ arm_func_start MOD79_022158A8
+MOD79_022158A8: ; 0x022158A8
+ stmdb sp!, {r4, r5, r6, r7, lr}
+ sub sp, sp, #4
+ movs r4, r0
+ mov r7, r1
+ mov r6, r2
+ bne _022158D4
+ ldr r0, _0221596C ; =0x02216FB8
+ ldr r1, _02215970 ; =0x02216FC4
+ ldr r3, _02215974 ; =0x00000333
+ mov r2, #0
+ bl __msl_assertion_failed
+_022158D4:
+ cmp r7, #0
+ bne _022158F0
+ ldr r0, _02215978 ; =0x02216FD4
+ ldr r1, _02215970 ; =0x02216FC4
+ mov r2, #0
+ mov r3, #0x334
+ bl __msl_assertion_failed
+_022158F0:
+ cmp r6, #0
+ bge _0221590C
+ ldr r0, _0221597C ; =0x02216FE8
+ ldr r1, _02215970 ; =0x02216FC4
+ ldr r3, _02215980 ; =0x00000335
+ mov r2, #0
+ bl __msl_assertion_failed
+_0221590C:
+ cmp r6, #0
+ addeq sp, sp, #4
+ ldmeqia sp!, {r4, r5, r6, r7, pc}
+ ldr r3, [r4, #0x120]
+ cmp r3, #0xa
+ addge sp, sp, #4
+ ldmgeia sp!, {r4, r5, r6, r7, pc}
+ rsb r5, r3, #0xa
+ cmp r5, r6
+ movge r5, r6
+ add r0, r4, #0x114
+ mov r1, r7
+ mov r2, r5
+ add r0, r0, r3
+ bl memcpy
+ ldr r0, [r4, #0x120]
+ mov r1, #0
+ add r0, r0, r5
+ str r0, [r4, #0x120]
+ ldr r0, [r4, #0x120]
+ add r0, r4, r0
+ strb r1, [r0, #0x114]
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221596C: .word 0x02216FB8
+_02215970: .word 0x02216FC4
+_02215974: .word 0x00000333
+_02215978: .word 0x02216FD4
+_0221597C: .word 0x02216FE8
+_02215980: .word 0x00000335
+ arm_func_end MOD79_022158A8
+
+ arm_func_start MOD79_02215984
+MOD79_02215984: ; 0x02215984
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ ldr r1, [r0, #0x120]
+ add r4, r0, #0x114
+ cmp r1, #0
+ bne _022159B0
+ ldr r0, _022159D4 ; =0x02216FF4
+ ldr r1, _022159D8 ; =0x02216FC4
+ ldr r3, _022159DC ; =0x00000321
+ mov r2, #0
+ bl __msl_assertion_failed
+_022159B0:
+ ldr r1, _022159E0 ; =0x02216FF8
+ add r2, sp, #0
+ mov r0, r4
+ bl sscanf
+ cmp r0, #1
+ mvnne r0, #0
+ ldreq r0, [sp]
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_022159D4: .word 0x02216FF4
+_022159D8: .word 0x02216FC4
+_022159DC: .word 0x00000321
+_022159E0: .word 0x02216FF8
+ arm_func_end MOD79_02215984
+
+ arm_func_start MOD79_022159E4
+MOD79_022159E4: ; 0x022159E4
+ stmdb sp!, {r4, lr}
+ mov r4, r0
+ ldr r0, [r4, #0x100]
+ mov lr, #0
+ add r0, r0, r2
+ str r0, [r4, #0x100]
+ ldr r3, [r4, #0x100]
+ ldr r0, [r4, #0x104]
+ mov ip, lr
+ cmp r3, r0
+ beq _02215A1C
+ ldr r0, [r4, #0x130]
+ cmp r0, #0
+ beq _02215A24
+_02215A1C:
+ mov r0, #1
+ str r0, [r4, #0xfc]
+_02215A24:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ bne _02215A50
+ add r0, r4, #0xbc
+ bl MOD79_02212794
+ cmp r0, #0
+ moveq r0, #0
+ ldmeqia sp!, {r4, pc}
+ ldr lr, [r4, #0xc0]
+ ldr ip, [r4, #0xc8]
+ b _02215A90
+_02215A50:
+ cmp r0, #1
+ bne _02215A84
+ cmp r2, #0
+ beq _02215A78
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #0xd
+ str r0, [r4, #0x38]
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_02215A78:
+ mov lr, r1
+ mov ip, r2
+ b _02215A90
+_02215A84:
+ cmp r0, #2
+ moveq lr, r1
+ moveq ip, r2
+_02215A90:
+ mov r0, r4
+ mov r1, lr
+ mov r2, ip
+ bl MOD79_02212E00
+ mov r0, #1
+ ldmia sp!, {r4, pc}
+ arm_func_end MOD79_022159E4
+
+ arm_func_start MOD79_02215AA8
+MOD79_02215AA8: ; 0x02215AA8
+ stmdb sp!, {r4, r5, lr}
+ ldr ip, _02215BD0 ; =0x00000404
+ sub sp, sp, ip
+ mov r3, #0x400
+ add r1, sp, #4
+ add r2, sp, #0
+ mov r4, r0
+ str r3, [sp]
+ bl MOD79_02212FF0
+ mov r5, r0
+ cmp r5, #3
+ ldreq ip, _02215BD0 ; =0x00000404
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, pc}
+ cmp r5, #1
+ bne _02215B00
+ ldr r1, [r4, #0x84]
+ ldr r0, [r4, #0x80]
+ cmp r1, r0
+ ldreq ip, _02215BD0 ; =0x00000404
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, pc}
+_02215B00:
+ cmp r5, #0
+ bne _02215B28
+ ldr r2, [sp]
+ add r1, sp, #4
+ add r0, r4, #0x74
+ bl MOD79_02212794
+ cmp r0, #0
+ ldreq ip, _02215BD0 ; =0x00000404
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, pc}
+_02215B28:
+ ldr r0, [r4, #0x78]
+ ldr r1, _02215BD4 ; =0x02216FFC
+ bl strstr
+ cmp r0, #0
+ beq _02215B98
+ mov r1, #0
+ strb r1, [r0]
+ ldr r1, [r4, #0x78]
+ sub r5, r0, r1
+ add r1, r5, #1
+ mov r0, r4
+ str r1, [r4, #0xf8]
+ bl MOD79_02215BD8
+ cmp r0, #0
+ ldreq ip, _02215BD0 ; =0x00000404
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, r5, pc}
+ add r3, r5, #2
+ mov r1, #0
+ str r3, [r4, #0x84]
+ mov r3, #7
+ mov r0, r4
+ mov r2, r1
+ str r3, [r4, #0x10]
+ bl MOD79_02212E00
+ ldr ip, _02215BD0 ; =0x00000404
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, pc}
+_02215B98:
+ cmp r5, #2
+ ldrne ip, _02215BD0 ; =0x00000404
+ addne sp, sp, ip
+ ldmneia sp!, {r4, r5, pc}
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #7
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x48]
+ bl MOD04_021EFB28
+ str r0, [r4, #0x4c]
+ ldr ip, _02215BD0 ; =0x00000404
+ add sp, sp, ip
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02215BD0: .word 0x00000404
+_02215BD4: .word 0x02216FFC
+ arm_func_end MOD79_02215AA8
+
+ arm_func_start MOD79_02215BD8
+MOD79_02215BD8: ; 0x02215BD8
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x18
+ movs r4, r0
+ bne _02215BFC
+ ldr r0, _02215D0C ; =0x02216FB8
+ ldr r1, _02215D10 ; =0x02216FC4
+ ldr r3, _02215D14 ; =0x0000024E
+ mov r2, #0
+ bl __msl_assertion_failed
+_02215BFC:
+ ldr r0, [r4, #0x80]
+ cmp r0, #0
+ bgt _02215C1C
+ ldr r0, _02215D18 ; =0x02217000
+ ldr r1, _02215D10 ; =0x02216FC4
+ ldr r3, _02215D1C ; =0x0000024F
+ mov r2, #0
+ bl __msl_assertion_failed
+_02215C1C:
+ add r1, sp, #0x10
+ str r1, [sp]
+ add r0, sp, #0x14
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x78]
+ ldr r1, _02215D20 ; =0x02217020
+ add r2, sp, #8
+ add r3, sp, #0xc
+ bl sscanf
+ mov r3, #0
+ mov ip, #1
+ ldr r2, _02215D24 ; =0x0210430C
+ b _02215C5C
+_02215C50:
+ ldr r1, [sp, #0x14]
+ add r1, r1, #1
+ str r1, [sp, #0x14]
+_02215C5C:
+ ldr lr, [r4, #0x78]
+ ldr r1, [sp, #0x14]
+ ldrsb lr, [lr, r1]
+ cmp lr, #0
+ beq _02215CA0
+ mov r1, ip
+ cmp lr, #0
+ blt _02215C84
+ cmp lr, #0x80
+ movlt r1, r3
+_02215C84:
+ cmp r1, #0
+ movne r1, r3
+ moveq r1, lr, lsl #1
+ ldreqh r1, [r2, r1]
+ andeq r1, r1, #0x100
+ cmp r1, #0
+ bne _02215C50
+_02215CA0:
+ cmp r0, #3
+ bne _02215CC8
+ ldr r1, [sp, #8]
+ cmp r1, #1
+ blt _02215CC8
+ ldr r0, [sp, #0x10]
+ cmp r0, #0x64
+ blt _02215CC8
+ cmp r0, #0x258
+ blt _02215CE4
+_02215CC8:
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #7
+ str r0, [r4, #0x38]
+ add sp, sp, #0x18
+ mov r0, #0
+ ldmia sp!, {r4, pc}
+_02215CE4:
+ str r1, [r4, #0xe4]
+ ldr r1, [sp, #0xc]
+ mov r0, #1
+ str r1, [r4, #0xe8]
+ ldr r1, [sp, #0x10]
+ str r1, [r4, #0xec]
+ ldr r1, [sp, #0x14]
+ str r1, [r4, #0xf0]
+ add sp, sp, #0x18
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02215D0C: .word 0x02216FB8
+_02215D10: .word 0x02216FC4
+_02215D14: .word 0x0000024E
+_02215D18: .word 0x02217000
+_02215D1C: .word 0x0000024F
+_02215D20: .word 0x02217020
+_02215D24: .word 0x0210430C
+ arm_func_end MOD79_02215BD8
+
+ arm_func_start MOD79_02215D28
+MOD79_02215D28: ; 0x02215D28
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #8
+ mov r4, r0
+ mov r2, #0
+ ldr r0, [r4, #0x48]
+ add r1, sp, #0
+ mov r3, r2
+ bl MOD04_021EFF5C
+ mvn r1, #0
+ cmp r0, r1
+ bne _02215D78
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #5
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x48]
+ bl MOD04_021EFB28
+ add sp, sp, #8
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4, pc}
+_02215D78:
+ ldr r0, [sp]
+ cmp r0, #0
+ addeq sp, sp, #8
+ ldmeqia sp!, {r4, pc}
+ mov r1, #0
+ mov r3, #6
+ mov r0, r4
+ mov r2, r1
+ str r3, [r4, #0x10]
+ bl MOD79_02212E00
+ add sp, sp, #8
+ ldmia sp!, {r4, pc}
+ arm_func_end MOD79_02215D28
+
+ arm_func_start MOD79_02215DA8
+MOD79_02215DA8: ; 0x02215DA8
+ stmdb sp!, {r4, r5, r6, lr}
+ mov r6, r0
+ ldr r4, [r6, #0x148]
+ bl MOD79_022140D4
+ movs r5, r0
+ bne _02215DF8
+ ldr r0, [r6, #0xfc]
+ cmp r0, #0
+ beq _02215DD8
+ ldr r0, [r6, #0x38]
+ cmp r0, #0
+ bne _02215DEC
+_02215DD8:
+ ldr r0, _02215E38 ; =0x02217030
+ ldr r1, _02215E3C ; =0x02216FC4
+ mov r2, #0
+ mov r3, #0x200
+ bl __msl_assertion_failed
+_02215DEC:
+ mov r0, r6
+ bl MOD79_022149E4
+ ldmia sp!, {r4, r5, r6, pc}
+_02215DF8:
+ ldr r0, [r6, #0x148]
+ cmp r4, r0
+ beq _02215E0C
+ mov r0, r6
+ bl MOD79_02212D90
+_02215E0C:
+ cmp r5, #1
+ ldmneia sp!, {r4, r5, r6, pc}
+ mov r0, r6
+ bl MOD79_022149E4
+ mov r1, #0
+ mov r3, #5
+ mov r0, r6
+ mov r2, r1
+ str r3, [r6, #0x10]
+ bl MOD79_02212E00
+ ldmia sp!, {r4, r5, r6, pc}
+ .align 2, 0
+_02215E38: .word 0x02217030
+_02215E3C: .word 0x02216FC4
+ arm_func_end MOD79_02215DA8
+
+ arm_func_start MOD79_02215E40
+MOD79_02215E40: ; 0x02215E40
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #0x14
+ mov r5, r0
+ ldr r0, [r5, #0x5c]
+ cmp r0, #0
+ bne _02216020
+ ldr r0, [r5, #0x13c]
+ add r4, r5, #0x50
+ cmp r0, #0
+ ldrne r1, _02216080 ; =0x0221705C
+ bne _02215E7C
+ ldr r0, [r5, #0xc]
+ cmp r0, #3
+ ldreq r1, _02216084 ; =0x02217064
+ ldrne r1, _02216088 ; =0x0221706C
+_02215E7C:
+ mov r0, r4
+ mov r2, #0
+ bl MOD79_02212794
+ ldr r0, [r5, #0x15c]
+ cmp r0, #0
+ bne _02215EA4
+ ldr r0, _0221608C ; =0x02217128
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02215EB8
+_02215EA4:
+ ldr r1, [r5, #0x14]
+ mov r0, r4
+ mov r2, #0
+ bl MOD79_02212794
+ b _02215EC8
+_02215EB8:
+ ldr r1, [r5, #0x24]
+ mov r0, r4
+ mov r2, #0
+ bl MOD79_02212794
+_02215EC8:
+ ldr r1, _02216090 ; =0x02217074
+ mov r0, r4
+ mov r2, #0
+ bl MOD79_02212794
+ ldrh r0, [r5, #0x20]
+ cmp r0, #0x50
+ bne _02215EF8
+ ldr r2, [r5, #0x18]
+ ldr r1, _02216094 ; =0x02217080
+ mov r0, r4
+ bl MOD79_02212700
+ b _02215F40
+_02215EF8:
+ ldr r1, _02216098 ; =0x02217088
+ mov r0, r4
+ mov r2, #0
+ bl MOD79_02212794
+ ldr r1, [r5, #0x18]
+ mov r0, r4
+ mov r2, #0
+ bl MOD79_02212794
+ mov r0, r4
+ mov r1, #0x3a
+ bl MOD79_022126A4
+ ldrh r1, [r5, #0x20]
+ mov r0, r4
+ bl MOD79_0221266C
+ mov r0, r4
+ ldr r1, _0221609C ; =0x02216FFC
+ mov r2, #2
+ bl MOD79_02212794
+_02215F40:
+ ldr r0, [r5, #0x28]
+ cmp r0, #0
+ beq _02215F5C
+ ldr r1, _022160A0 ; =0x02217090
+ bl strstr
+ cmp r0, #0
+ bne _02215F6C
+_02215F5C:
+ ldr r1, _022160A0 ; =0x02217090
+ ldr r2, _022160A4 ; =0x0221709C
+ mov r0, r4
+ bl MOD79_02212700
+_02215F6C:
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ beq _02215F8C
+ ldr r1, _022160A8 ; =0x022170AC
+ ldr r2, _022160AC ; =0x022170B8
+ mov r0, r4
+ bl MOD79_02212700
+ b _02215F9C
+_02215F8C:
+ ldr r1, _022160A8 ; =0x022170AC
+ ldr r2, _022160B0 ; =0x022170C4
+ mov r0, r4
+ bl MOD79_02212700
+_02215F9C:
+ ldr r0, [r5, #0x13c]
+ cmp r0, #0
+ beq _02215FE0
+ ldr r2, [r5, #0x14c]
+ ldr r1, _022160B4 ; =0x022170CC
+ add r0, sp, #0
+ bl sprintf
+ ldr r1, _022160B8 ; =0x022170D0
+ add r2, sp, #0
+ mov r0, r4
+ bl MOD79_02212700
+ mov r0, r5
+ bl MOD79_02214FFC
+ mov r2, r0
+ ldr r1, _022160BC ; =0x022170E0
+ mov r0, r4
+ bl MOD79_02212700
+_02215FE0:
+ ldr r1, [r5, #0x28]
+ cmp r1, #0
+ beq _02215FF8
+ mov r0, r4
+ mov r2, #0
+ bl MOD79_02212794
+_02215FF8:
+ ldr r1, _0221609C ; =0x02216FFC
+ mov r0, r4
+ mov r2, #2
+ bl MOD79_02212794
+ add r0, r5, #0x50
+ cmp r4, r0
+ beq _02216020
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #0xc]
+ bl MOD79_02212794
+_02216020:
+ mov r0, r5
+ bl MOD79_02212554
+ cmp r0, #0
+ addeq sp, sp, #0x14
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r1, [r5, #0x60]
+ ldr r0, [r5, #0x5c]
+ cmp r1, r0
+ addlt sp, sp, #0x14
+ ldmltia sp!, {r4, r5, pc}
+ add r0, r5, #0x50
+ bl MOD79_0221262C
+ ldr r0, [r5, #0x13c]
+ mov r1, #0
+ cmp r0, #0
+ movne r0, #4
+ strne r0, [r5, #0x10]
+ moveq r0, #5
+ streq r0, [r5, #0x10]
+ mov r0, r5
+ mov r2, r1
+ bl MOD79_02212E00
+ add sp, sp, #0x14
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02216080: .word 0x0221705C
+_02216084: .word 0x02217064
+_02216088: .word 0x0221706C
+_0221608C: .word 0x02217128
+_02216090: .word 0x02217074
+_02216094: .word 0x02217080
+_02216098: .word 0x02217088
+_0221609C: .word 0x02216FFC
+_022160A0: .word 0x02217090
+_022160A4: .word 0x0221709C
+_022160A8: .word 0x022170AC
+_022160AC: .word 0x022170B8
+_022160B0: .word 0x022170C4
+_022160B4: .word 0x022170CC
+_022160B8: .word 0x022170D0
+_022160BC: .word 0x022170E0
+ arm_func_end MOD79_02215E40
+
+ arm_func_start MOD79_022160C0
+MOD79_022160C0: ; 0x022160C0
+ stmdb sp!, {r4, lr}
+ ldr ip, _02216208 ; =0x00000408
+ sub sp, sp, ip
+ mov r4, r0
+ ldr r1, [r4, #0x168]
+ cmp r1, #0
+ bne _02216130
+ ldr r0, [r4, #0x14]
+ ldr r1, _0221620C ; =0x022170F0
+ mov r2, #8
+ bl strncmp
+ cmp r0, #0
+ ldreq ip, _02216208 ; =0x00000408
+ moveq r0, #1
+ streq r0, [r4, #0xfc]
+ moveq r0, #0x11
+ addeq sp, sp, ip
+ streq r0, [r4, #0x38]
+ ldmeqia sp!, {r4, pc}
+ mov r1, #0
+ mov r3, #3
+ mov r0, r4
+ mov r2, r1
+ str r3, [r4, #0x10]
+ bl MOD79_02212E00
+ ldr ip, _02216208 ; =0x00000408
+ add sp, sp, ip
+ ldmia sp!, {r4, pc}
+_02216130:
+ ldr r1, [r4, #0x170]
+ cmp r1, #0
+ beq _0221615C
+ mov r1, #0
+ mov r3, #3
+ mov r2, r1
+ str r3, [r4, #0x10]
+ bl MOD79_02212E00
+ ldr ip, _02216208 ; =0x00000408
+ add sp, sp, ip
+ ldmia sp!, {r4, pc}
+_0221615C:
+ ldr r1, [r4, #0x16c]
+ cmp r1, #0
+ bne _0221619C
+ ldr r2, [r4, #0x174]
+ add r1, r4, #0x164
+ .word 0xE12FFF32
+ cmp r0, #3
+ bne _0221619C
+ ldr r0, _02216210 ; =0x02216FE4
+ ldr r1, _02216214 ; =0x02216FC4
+ ldr r3, _02216218 ; =0x00000146
+ mov r2, #0
+ bl __msl_assertion_failed
+ ldr ip, _02216208 ; =0x00000408
+ add sp, sp, ip
+ ldmia sp!, {r4, pc}
+_0221619C:
+ ldr r1, [r4, #0x60]
+ ldr r0, [r4, #0x5c]
+ cmp r1, r0
+ bge _022161E4
+ mov r0, r4
+ bl MOD79_02212554
+ cmp r0, #0
+ ldreq ip, _02216208 ; =0x00000408
+ addeq sp, sp, ip
+ ldmeqia sp!, {r4, pc}
+ ldr r1, [r4, #0x60]
+ ldr r0, [r4, #0x5c]
+ cmp r1, r0
+ ldrlt ip, _02216208 ; =0x00000408
+ addlt sp, sp, ip
+ ldmltia sp!, {r4, pc}
+ add r0, r4, #0x50
+ bl MOD79_0221262C
+_022161E4:
+ mov r3, #0x400
+ add r1, sp, #4
+ add r2, sp, #0
+ mov r0, r4
+ str r3, [sp]
+ bl MOD79_02212FF0
+ ldr ip, _02216208 ; =0x00000408
+ add sp, sp, ip
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_02216208: .word 0x00000408
+_0221620C: .word 0x022170F0
+_02216210: .word 0x02216FE4
+_02216214: .word 0x02216FC4
+_02216218: .word 0x00000146
+ arm_func_end MOD79_022160C0
+
+ arm_func_start MOD79_0221621C
+MOD79_0221621C: ; 0x0221621C
+ stmdb sp!, {r4, lr}
+ sub sp, sp, #0x10
+ mov r4, r0
+ ldr r1, [r4, #0x48]
+ mvn r0, #0
+ cmp r1, r0
+ bne _022163D4
+ mov r0, #2
+ mov r1, #1
+ mov r2, #0
+ bl MOD04_021EFDB8
+ str r0, [r4, #0x48]
+ ldr r0, [r4, #0x48]
+ mvn r1, #0
+ cmp r0, r1
+ bne _02216280
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #5
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x48]
+ bl MOD04_021EFB28
+ add sp, sp, #0x10
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4, pc}
+_02216280:
+ mov r1, #0
+ bl MOD04_021F017C
+ cmp r0, #0
+ bne _022162B4
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #5
+ str r0, [r4, #0x38]
+ ldr r0, [r4, #0x48]
+ bl MOD04_021EFB28
+ add sp, sp, #0x10
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4, pc}
+_022162B4:
+ ldr r0, [r4, #0x134]
+ cmp r0, #0
+ beq _022162D0
+ ldr r1, _0221646C ; =0x0221695C
+ ldr r0, [r4, #0x48]
+ ldr r1, [r1]
+ bl MOD04_021F0130
+_022162D0:
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ mov r0, #2
+ strb r0, [sp, #1]
+ ldr r0, [r4, #0x15c]
+ cmp r0, #0
+ beq _02216318
+ add r0, r4, #0x100
+ ldrh r0, [r0, #0x60]
+ mov r1, r0, asr #8
+ mov r0, r0, lsl #8
+ and r1, r1, #0xff
+ and r0, r0, #0xff00
+ orr r0, r1, r0
+ strh r0, [sp, #2]
+ b _02216368
+_02216318:
+ ldr r0, _02216470 ; =0x02217128
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0221634C
+ ldr r0, _02216474 ; =0x02217124
+ ldrh r0, [r0]
+ mov r1, r0, asr #8
+ mov r0, r0, lsl #8
+ and r1, r1, #0xff
+ and r0, r0, #0xff00
+ orr r0, r1, r0
+ strh r0, [sp, #2]
+ b _02216368
+_0221634C:
+ ldrh r0, [r4, #0x20]
+ mov r1, r0, asr #8
+ mov r0, r0, lsl #8
+ and r1, r1, #0xff
+ and r0, r0, #0xff00
+ orr r0, r1, r0
+ strh r0, [sp, #2]
+_02216368:
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x48]
+ mov r2, #8
+ bl MOD04_021EFCE4
+ mvn r1, #0
+ cmp r0, r1
+ bne _022163D4
+ ldr r0, [r4, #0x48]
+ bl MOD04_021EFB28
+ mvn r1, #5
+ cmp r0, r1
+ beq _022163D4
+ mvn r1, #0x19
+ cmp r0, r1
+ beq _022163D4
+ mvn r1, #0x4b
+ cmp r0, r1
+ beq _022163D4
+ mov r1, #1
+ str r1, [r4, #0xfc]
+ mov r1, #6
+ str r1, [r4, #0x38]
+ add sp, sp, #0x10
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4, pc}
+_022163D4:
+ ldr r0, [r4, #0x48]
+ add r2, sp, #8
+ add r3, sp, #0xc
+ mov r1, #0
+ bl MOD04_021EFF5C
+ cmp r0, #0
+ movgt r1, #1
+ movle r1, #0
+ mvn r0, #0
+ cmp r1, r0
+ beq _0221640C
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ beq _0221643C
+_0221640C:
+ mov r0, #1
+ str r0, [r4, #0xfc]
+ mov r0, #6
+ cmp r1, #0
+ addne sp, sp, #0x10
+ str r0, [r4, #0x38]
+ ldmneia sp!, {r4, pc}
+ ldr r0, [r4, #0x48]
+ bl MOD04_021EFB28
+ add sp, sp, #0x10
+ str r0, [r4, #0x4c]
+ ldmia sp!, {r4, pc}
+_0221643C:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ addeq sp, sp, #0x10
+ ldmeqia sp!, {r4, pc}
+ mov r1, #0
+ mov r3, #2
+ mov r0, r4
+ mov r2, r1
+ str r3, [r4, #0x10]
+ bl MOD79_02212E00
+ add sp, sp, #0x10
+ ldmia sp!, {r4, pc}
+ .align 2, 0
+_0221646C: .word 0x0221695C
+_02216470: .word 0x02217128
+_02216474: .word 0x02217124
+ arm_func_end MOD79_0221621C
+
+ arm_func_start MOD79_02216478
+MOD79_02216478: ; 0x02216478
+ stmdb sp!, {r4, r5, lr}
+ sub sp, sp, #4
+ mov r1, #0
+ mov r4, r0
+ mov r2, r1
+ bl MOD79_02212E00
+ bl MOD04_021F024C
+ mov r0, r4
+ bl MOD79_02216548
+ cmp r0, #0
+ moveq r0, #1
+ streq r0, [r4, #0xfc]
+ moveq r0, #3
+ addeq sp, sp, #4
+ streq r0, [r4, #0x38]
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r5, [r4, #0x15c]
+ cmp r5, #0
+ bne _022164D4
+ ldr r0, _02216544 ; =0x02217128
+ ldr r5, [r0]
+ cmp r5, #0
+ ldreq r5, [r4, #0x18]
+_022164D4:
+ mov r0, r5
+ bl MOD04_021EFB38
+ str r0, [r4, #0x1c]
+ ldr r1, [r4, #0x1c]
+ mvn r0, #0
+ cmp r1, r0
+ bne _02216524
+ mov r0, r5
+ bl FUN_0209A6EC
+ cmp r0, #0
+ moveq r0, #1
+ streq r0, [r4, #0xfc]
+ moveq r0, #4
+ addeq sp, sp, #4
+ streq r0, [r4, #0x38]
+ ldmeqia sp!, {r4, r5, pc}
+ ldr r0, [r0, #0xc]
+ ldr r0, [r0]
+ ldr r0, [r0]
+ str r0, [r4, #0x1c]
+_02216524:
+ mov r1, #0
+ mov r3, #1
+ mov r0, r4
+ mov r2, r1
+ str r3, [r4, #0x10]
+ bl MOD79_02212E00
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, pc}
+ .align 2, 0
+_02216544: .word 0x02217128
+ arm_func_end MOD79_02216478
+
+ arm_func_start MOD79_02216548
+MOD79_02216548: ; 0x02216548
+ stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
+ sub sp, sp, #4
+ movs r7, r0
+ bne _0221656C
+ ldr r0, _02216704 ; =0x02216FB8
+ ldr r1, _02216708 ; =0x02216FC4
+ mov r2, #0
+ mov r3, #0x25
+ bl __msl_assertion_failed
+_0221656C:
+ cmp r7, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ ldr r0, [r7, #0x14]
+ cmp r0, #0
+ bne _0221659C
+ ldr r0, _0221670C ; =0x022170FC
+ ldr r1, _02216708 ; =0x02216FC4
+ mov r2, #0
+ mov r3, #0x2b
+ bl __msl_assertion_failed
+_0221659C:
+ ldr r6, [r7, #0x14]
+ cmp r6, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ ldr r1, _02216710 ; =0x0221710C
+ mov r0, r6
+ mov r2, #7
+ bl strncmp
+ cmp r0, #0
+ addeq r6, r6, #7
+ moveq r4, #0
+ beq _022165FC
+ ldr r1, _02216714 ; =0x022170F0
+ mov r0, r6
+ mov r2, #8
+ bl strncmp
+ cmp r0, #0
+ addeq r6, r6, #8
+ moveq r4, #1
+ beq _022165FC
+ add sp, sp, #4
+ mov r0, #0
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+_022165FC:
+ ldr r1, _02216718 ; =0x02217114
+ mov r0, r6
+ bl strspn
+ mov r8, r0
+ ldrsb r5, [r6, r8]
+ mov r1, #0
+ mov r0, r6
+ strb r1, [r6, r8]
+ add sb, r6, r8
+ bl MOD04_021F0208
+ str r0, [r7, #0x18]
+ ldr r0, [r7, #0x18]
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ strb r5, [sb]
+ ldrsb r0, [r6, r8]!
+ cmp r0, #0x3a
+ bne _02216688
+ add r6, r6, #1
+ mov r0, r6
+ bl atol
+ strh r0, [r7, #0x20]
+ ldrh r0, [r7, #0x20]
+ cmp r0, #0
+ addeq sp, sp, #4
+ moveq r0, #0
+ ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
+_02216670:
+ ldrsb r0, [r6, #1]!
+ cmp r0, #0
+ beq _0221669C
+ cmp r0, #0x2f
+ bne _02216670
+ b _0221669C
+_02216688:
+ cmp r4, #0
+ ldrne r0, _0221671C ; =0x000001BB
+ strneh r0, [r7, #0x20]
+ moveq r0, #0x50
+ streqh r0, [r7, #0x20]
+_0221669C:
+ ldrsb r0, [r6]
+ cmp r0, #0
+ ldreq r6, _02216720 ; =0x02217118
+ mov r0, r6
+ bl MOD04_021F0208
+ str r0, [r7, #0x24]
+ ldr r6, [r7, #0x24]
+ mov r1, #0x20
+ mov r0, r6
+ bl strchr
+ cmp r0, #0
+ beq _022166F0
+ mov r5, #0x2b
+ mov r4, #0x20
+_022166D4:
+ strb r5, [r0]
+ ldr r6, [r7, #0x24]
+ mov r1, r4
+ mov r0, r6
+ bl strchr
+ cmp r0, #0
+ bne _022166D4
+_022166F0:
+ cmp r6, #0
+ movne r0, #1
+ moveq r0, #0
+ add sp, sp, #4
+ ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
+ .align 2, 0
+_02216704: .word 0x02216FB8
+_02216708: .word 0x02216FC4
+_0221670C: .word 0x022170FC
+_02216710: .word 0x0221710C
+_02216714: .word 0x022170F0
+_02216718: .word 0x02217114
+_0221671C: .word 0x000001BB
+_02216720: .word 0x02217118
+ arm_func_end MOD79_02216548
+ ; 0x02216724
+
+ .section .rodata
+ ; 0x02216738
+ .incbin "baserom.nds", 0x2DE6D8, 0x10
+
+ .section .data
+ ; 0x0221686C
+ .incbin "baserom.nds", 0x2DE80C, 0x8B4
diff --git a/arm9/modules/79/asm/module_79_thumb.s b/arm9/modules/79/asm/module_79_thumb.s
new file mode 100644
index 00000000..26c700af
--- /dev/null
+++ b/arm9/modules/79/asm/module_79_thumb.s
@@ -0,0 +1,851 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD79_02211E60
+MOD79_02211E60: ; 0x02211E60
+ lsl r1, r0, #0x10
+ orr r1, r0
+ ldr r0, _02211E6C ; =0x02217120
+ str r1, [r0]
+ bx lr
+ nop
+_02211E6C: .word 0x02217120
+ thumb_func_end MOD79_02211E60
+
+ thumb_func_start MOD79_02211E70
+MOD79_02211E70: ; 0x02211E70
+ ldr r1, _02211E8C ; =0x02217120
+ mov r0, #0x45
+ ldr r2, [r1]
+ add r3, r2, #0
+ mul r3, r0
+ ldr r0, _02211E90 ; =0x00001111
+ add r2, r3, r0
+ ldr r0, _02211E94 ; =0x7FFFFFFF
+ and r0, r2
+ str r0, [r1]
+ asr r0, r0, #0x10
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .align 2, 0
+_02211E8C: .word 0x02217120
+_02211E90: .word 0x00001111
+_02211E94: .word 0x7FFFFFFF
+ thumb_func_end MOD79_02211E70
+
+ thumb_func_start MOD79_02211E98
+MOD79_02211E98: ; 0x02211E98
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0
+ add r5, r2, #0
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #8
+ add r7, r1, #0
+ str r3, [sp]
+ str r0, [sp, #0x10]
+ bl MOD79_02211FA4
+ ldr r1, [sp, #0x30]
+ add r0, r0, #1
+ cmp r1, r0
+ bge _02211EC2
+ add sp, #0x18
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_02211EC2:
+ ldr r1, [sp, #0x10]
+ mov r0, #0xa
+ bl MOD04_021DD944
+ add r6, r0, #0
+ bne _02211ED4
+ add sp, #0x18
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02211ED4:
+ lsr r0, r4, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ lsr r1, r4, #0x10
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r0, r1
+ lsr r1, r4, #8
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0xc]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r0, r0, r1
+ lsl r1, r4, #0x18
+ lsr r4, r1, #0x18
+ lsl r1, r4, #0x18
+ lsr r1, r1, #0x18
+ add r0, r0, r1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ cmp r5, #0
+ ble _02211F20
+_02211F12:
+ ldrb r2, [r7, r0]
+ ldr r1, [sp, #0x14]
+ add r0, r0, #1
+ add r1, r1, r2
+ str r1, [sp, #0x14]
+ cmp r0, r5
+ blt _02211F12
+_02211F20:
+ ldr r0, [sp, #0x14]
+ bl MOD79_02211E60
+ bl MOD79_02211E70
+ eor r0, r4
+ strb r0, [r6, #4]
+ bl MOD79_02211E70
+ ldr r1, [sp, #0xc]
+ eor r0, r1
+ strb r0, [r6, #5]
+ bl MOD79_02211E70
+ ldr r1, [sp, #8]
+ eor r0, r1
+ strb r0, [r6, #6]
+ bl MOD79_02211E70
+ ldr r1, [sp, #4]
+ mov r4, #0
+ eor r0, r1
+ strb r0, [r6, #7]
+ cmp r5, #0
+ ble _02211F64
+_02211F52:
+ bl MOD79_02211E70
+ ldrb r1, [r7, r4]
+ eor r1, r0
+ add r0, r6, r4
+ add r4, r4, #1
+ strb r1, [r0, #8]
+ cmp r4, r5
+ blt _02211F52
+_02211F64:
+ ldr r1, _02211FA0 ; =0x4A3B2C1D
+ ldr r0, [sp, #0x14]
+ add r5, #8
+ eor r1, r0
+ lsr r0, r1, #0x18
+ strb r0, [r6]
+ lsr r0, r1, #0x10
+ strb r0, [r6, #1]
+ lsr r0, r1, #8
+ strb r0, [r6, #2]
+ strb r1, [r6, #3]
+ ldr r1, [sp]
+ add r0, r6, #0
+ add r2, r5, #0
+ mov r3, #2
+ bl MOD04_021EF820
+ ldr r0, [sp, #0x10]
+ bl MOD79_02211FA4
+ ldr r1, [sp]
+ mov r2, #0
+ strb r2, [r1, r0]
+ mov r0, #0xa
+ add r1, r6, #0
+ bl MOD04_021DD904
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02211FA0: .word 0x4A3B2C1D
+ thumb_func_end MOD79_02211E98
+
+ thumb_func_start MOD79_02211FA4
+MOD79_02211FA4: ; 0x02211FA4
+ push {r3, r4, r5, lr}
+ mov r1, #3
+ add r5, r0, #0
+ bl _u32_div_f
+ cmp r1, #0
+ beq _02211FB6
+ mov r4, #1
+ b _02211FB8
+_02211FB6:
+ mov r4, #0
+_02211FB8:
+ add r0, r5, #0
+ mov r1, #3
+ bl _u32_div_f
+ add r0, r0, r4
+ lsl r0, r0, #2
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD79_02211FA4
+
+ thumb_func_start MOD79_02211FC8
+MOD79_02211FC8: ; 0x02211FC8
+ add r0, #8
+ cmp r0, #7
+ bhi _02212022
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02211FDA: ; jump table
+ .short _02211FEA - _02211FDA - 2 ; case 0
+ .short _02212022 - _02211FDA - 2 ; case 1
+ .short _02211FF2 - _02211FDA - 2 ; case 2
+ .short _02211FFA - _02211FDA - 2 ; case 3
+ .short _02212002 - _02211FDA - 2 ; case 4
+ .short _0221200A - _02211FDA - 2 ; case 5
+ .short _02212012 - _02211FDA - 2 ; case 6
+ .short _0221201A - _02211FDA - 2 ; case 7
+_02211FEA:
+ ldr r0, _0221202C ; =0x02216760
+ mov r1, #0
+ str r1, [r0, #8]
+ bx lr
+_02211FF2:
+ ldr r0, _0221202C ; =0x02216760
+ mov r1, #1
+ str r1, [r0, #8]
+ bx lr
+_02211FFA:
+ ldr r0, _0221202C ; =0x02216760
+ mov r1, #2
+ str r1, [r0, #8]
+ bx lr
+_02212002:
+ ldr r0, _0221202C ; =0x02216760
+ mov r1, #3
+ str r1, [r0, #8]
+ bx lr
+_0221200A:
+ ldr r0, _0221202C ; =0x02216760
+ mov r1, #4
+ str r1, [r0, #8]
+ bx lr
+_02212012:
+ ldr r0, _0221202C ; =0x02216760
+ mov r1, #5
+ str r1, [r0, #8]
+ bx lr
+_0221201A:
+ ldr r0, _0221202C ; =0x02216760
+ mov r1, #6
+ str r1, [r0, #8]
+ bx lr
+_02212022:
+ ldr r0, _0221202C ; =0x02216760
+ mov r1, #0
+ str r1, [r0, #8]
+ bx lr
+ nop
+_0221202C: .word 0x02216760
+ thumb_func_end MOD79_02211FC8
+
+ thumb_func_start MOD79_02212030
+MOD79_02212030: ; 0x02212030
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r4, r1, #0
+ mov r3, #0
+ ldr r1, _022122B8 ; =0x02216760
+ mvn r3, r3
+ str r3, [r1, #4]
+ ldr r3, [r1]
+ add r6, r0, #0
+ cmp r3, #1
+ bne _02212048
+ b _022122B2
+_02212048:
+ cmp r2, #0
+ beq _0221204E
+ b _02212202
+_0221204E:
+ cmp r3, #4
+ beq _0221205A
+ cmp r3, #6
+ beq _02212126
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0221205A:
+ cmp r4, #0x20
+ bne _0221211E
+ ldr r5, [r1, #0x28]
+ ldr r3, _022122BC ; =0x02216724
+ add r5, #0x14
+ add r2, sp, #4
+ mov r1, #0x11
+_02212068:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _02212068
+ add r3, sp, #0x14
+ ldr r2, _022122C0 ; =0x02216794
+ add r3, #1
+ mov r1, #0x15
+_0221207C:
+ ldrb r0, [r2]
+ add r2, r2, #1
+ strb r0, [r3]
+ add r3, r3, #1
+ sub r1, r1, #1
+ bne _0221207C
+ add r0, sp, #0x14
+ add r0, #1
+ add r1, r6, #0
+ add r2, r4, #0
+ bl strncat
+ add r0, sp, #0x14
+ add r0, #1
+ bl strlen
+ add r1, sp, #0x14
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, #1
+ bl MATH_CalcSHA1
+ ldr r0, _022122B8 ; =0x02216760
+ ldr r1, _022122C4 ; =0x022167AC
+ ldr r0, [r0, #0x24]
+ bl strcat
+ mov r2, #0
+ ldr r4, _022122B8 ; =0x02216760
+ add r3, r2, #0
+ add r1, sp, #4
+ mov r7, #0xf
+_022120BC:
+ ldrb r0, [r5, r2]
+ asr r0, r0, #4
+ ldrsb r6, [r1, r0]
+ ldr r0, [r4, #0x28]
+ strb r6, [r0, r3]
+ ldrb r0, [r5, r2]
+ ldr r6, [r4, #0x28]
+ add r2, r2, #1
+ and r0, r7
+ ldrsb r0, [r1, r0]
+ add r6, r6, r3
+ add r3, r3, #2
+ strb r0, [r6, #1]
+ cmp r2, #0x14
+ blt _022120BC
+ ldr r0, _022122B8 ; =0x02216760
+ mov r2, #0
+ ldr r1, [r0, #0x28]
+ add r1, #0x28
+ strb r2, [r1]
+ ldr r0, [r0, #0x24]
+ ldr r1, _022122C8 ; =0x022167B4
+ bl strcat
+ ldr r3, _022122B8 ; =0x02216760
+ ldr r0, [r3, #0x30]
+ str r0, [sp]
+ ldr r0, [r3, #0x10]
+ ldr r1, [r3, #0x14]
+ ldr r2, [r3, #0x18]
+ ldr r3, [r3, #0x2c]
+ bl MOD79_02211E98
+ cmp r0, #0
+ beq _02212114
+ cmp r0, #1
+ beq _0221210A
+ cmp r0, #2
+ bne _02212114
+_0221210A:
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212114:
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #5
+ str r1, [r0]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0221211E:
+ mov r0, #1
+ str r0, [r1]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212126:
+ cmp r4, #0x16
+ bne _022121D0
+ ldr r1, _022122CC ; =0x022167BC
+ mov r2, #0x16
+ bl strncmp
+ cmp r0, #0
+ bne _02212144
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ mov r1, #0x1a
+ str r1, [r0, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212144:
+ ldr r1, _022122D0 ; =0x022167D4
+ add r0, r6, #0
+ mov r2, #0x16
+ bl strncmp
+ cmp r0, #0
+ bne _02212160
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ mov r1, #0x1b
+ str r1, [r0, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212160:
+ ldr r1, _022122D4 ; =0x022167EC
+ add r0, r6, #0
+ mov r2, #0x16
+ bl strncmp
+ cmp r0, #0
+ bne _0221217C
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ mov r1, #0x1c
+ str r1, [r0, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0221217C:
+ ldr r1, _022122D8 ; =0x02216804
+ add r0, r6, #0
+ mov r2, #0x16
+ bl strncmp
+ cmp r0, #0
+ bne _02212198
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ mov r1, #0x1d
+ str r1, [r0, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212198:
+ ldr r1, _022122DC ; =0x0221681C
+ add r0, r6, #0
+ mov r2, #0x16
+ bl strncmp
+ cmp r0, #0
+ bne _022121B4
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ mov r1, #0x1e
+ str r1, [r0, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_022121B4:
+ ldr r1, _022122E0 ; =0x02216834
+ add r0, r6, #0
+ mov r2, #0x16
+ bl strncmp
+ cmp r0, #0
+ bne _022121D0
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ mov r1, #0x1f
+ str r1, [r0, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_022121D0:
+ ldr r0, _022122B8 ; =0x02216760
+ ldr r2, [r0, #0x20]
+ cmp r4, r2
+ ldr r0, [r0, #0x1c]
+ bgt _022121EA
+ add r1, r6, #0
+ add r2, r4, #0
+ bl memcpy
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #7
+ str r1, [r0]
+ b _022121FA
+_022121EA:
+ add r1, r6, #0
+ bl memcpy
+ ldr r0, _022122B8 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ mov r1, #0x20
+ str r1, [r0, #8]
+_022121FA:
+ ldr r0, _022122B8 ; =0x02216760
+ add sp, #0x4c
+ str r4, [r0, #0xc]
+ pop {r4, r5, r6, r7, pc}
+_02212202:
+ mov r0, #1
+ str r0, [r1]
+ cmp r2, #0x13
+ bhi _022122B2
+ add r0, r2, r2
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02212216: ; jump table
+ .short _022122B2 - _02212216 - 2 ; case 0
+ .short _0221223E - _02212216 - 2 ; case 1
+ .short _02212246 - _02212216 - 2 ; case 2
+ .short _0221224E - _02212216 - 2 ; case 3
+ .short _02212256 - _02212216 - 2 ; case 4
+ .short _0221225E - _02212216 - 2 ; case 5
+ .short _02212266 - _02212216 - 2 ; case 6
+ .short _0221226E - _02212216 - 2 ; case 7
+ .short _02212276 - _02212216 - 2 ; case 8
+ .short _0221227E - _02212216 - 2 ; case 9
+ .short _02212286 - _02212216 - 2 ; case 10
+ .short _0221228E - _02212216 - 2 ; case 11
+ .short _02212296 - _02212216 - 2 ; case 12
+ .short _022122B2 - _02212216 - 2 ; case 13
+ .short _022122B2 - _02212216 - 2 ; case 14
+ .short _0221229E - _02212216 - 2 ; case 15
+ .short _022122A6 - _02212216 - 2 ; case 16
+ .short _022122B2 - _02212216 - 2 ; case 17
+ .short _022122B2 - _02212216 - 2 ; case 18
+ .short _022122AE - _02212216 - 2 ; case 19
+_0221223E:
+ mov r0, #8
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212246:
+ mov r0, #9
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0221224E:
+ mov r0, #0xa
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212256:
+ mov r0, #0xb
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0221225E:
+ mov r0, #0xc
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212266:
+ mov r0, #0xd
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0221226E:
+ mov r0, #0xe
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212276:
+ mov r0, #0xf
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0221227E:
+ mov r0, #0x10
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212286:
+ mov r0, #0x11
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0221228E:
+ mov r0, #0x12
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_02212296:
+ mov r0, #0x13
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_0221229E:
+ mov r0, #0x16
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_022122A6:
+ mov r0, #0x17
+ str r0, [r1, #8]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+_022122AE:
+ mov r0, #0x19
+ str r0, [r1, #8]
+_022122B2:
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022122B8: .word 0x02216760
+_022122BC: .word 0x02216724
+_022122C0: .word 0x02216794
+_022122C4: .word 0x022167AC
+_022122C8: .word 0x022167B4
+_022122CC: .word 0x022167BC
+_022122D0: .word 0x022167D4
+_022122D4: .word 0x022167EC
+_022122D8: .word 0x02216804
+_022122DC: .word 0x0221681C
+_022122E0: .word 0x02216834
+ thumb_func_end MOD79_02212030
+
+ thumb_func_start MOD79_022122E4
+MOD79_022122E4: ; 0x022122E4
+ push {r3, lr}
+ ldr r0, _02212304 ; =0x02216760
+ mov r1, #2
+ str r1, [r0]
+ sub r1, r1, #3
+ str r1, [r0, #4]
+ mov r0, #0
+ bl MOD04_021EB59C
+ cmp r0, #0
+ bne _02212300
+ ldr r0, _02212304 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+_02212300:
+ pop {r3, pc}
+ nop
+_02212304: .word 0x02216760
+ thumb_func_end MOD79_022122E4
+
+ thumb_func_start MOD79_02212308
+MOD79_02212308: ; 0x02212308
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, _02212398 ; =0x02216760
+ add r4, r3, #0
+ ldr r3, [r1]
+ add r7, r0, #0
+ cmp r3, #2
+ beq _0221231C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0221231C:
+ str r5, [r1, #0x10]
+ str r2, [r1, #0x14]
+ str r4, [r1, #0x18]
+ ldr r2, [sp, #0x18]
+ add r4, #8
+ str r2, [r1, #0x1c]
+ ldr r2, [sp, #0x1c]
+ str r2, [r1, #0x20]
+ bl strlen
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD79_02211FA4
+ add r1, r0, #0
+ add r6, #0x45
+ mov r0, #0xa
+ add r1, r6, r1
+ bl MOD04_021DD944
+ ldr r1, _02212398 ; =0x02216760
+ cmp r0, #0
+ str r0, [r1, #0x24]
+ bne _02212350
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_02212350:
+ ldr r1, _0221239C ; =0x0221684C
+ add r2, r7, #0
+ add r3, r5, #0
+ bl sprintf
+ ldr r0, _02212398 ; =0x02216760
+ ldr r5, [r0, #0x24]
+ add r0, r5, #0
+ bl strlen
+ add r6, r0, #0
+ ldr r0, _022123A0 ; =0x022167AC
+ bl strlen
+ add r1, r5, r6
+ add r1, r1, r0
+ ldr r0, _02212398 ; =0x02216760
+ str r1, [r0, #0x28]
+ ldr r0, _022123A4 ; =0x022167B4
+ bl strlen
+ ldr r1, _02212398 ; =0x02216760
+ ldr r2, [r1, #0x28]
+ add r2, #0x28
+ add r0, r2, r0
+ str r0, [r1, #0x2c]
+ add r0, r4, #0
+ bl MOD79_02211FA4
+ add r1, r0, #1
+ ldr r0, _02212398 ; =0x02216760
+ str r1, [r0, #0x30]
+ mov r1, #3
+ str r1, [r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02212398: .word 0x02216760
+_0221239C: .word 0x0221684C
+_022123A0: .word 0x022167AC
+_022123A4: .word 0x022167B4
+ thumb_func_end MOD79_02212308
+
+ thumb_func_start MOD79_022123A8
+MOD79_022123A8: ; 0x022123A8
+ push {r3, lr}
+ ldr r1, _02212440 ; =0x02216760
+ ldr r0, [r1]
+ cmp r0, #7
+ bhi _02212438
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022123BE: ; jump table
+ .short _02212438 - _022123BE - 2 ; case 0
+ .short _02212438 - _022123BE - 2 ; case 1
+ .short _02212438 - _022123BE - 2 ; case 2
+ .short _022123CE - _022123BE - 2 ; case 3
+ .short _022123F4 - _022123BE - 2 ; case 4
+ .short _02212404 - _022123BE - 2 ; case 5
+ .short _0221242A - _022123BE - 2 ; case 6
+ .short _02212438 - _022123BE - 2 ; case 7
+_022123CE:
+ ldr r0, [r1, #0x24]
+ ldr r1, _02212444 ; =MOD79_02212030
+ ldr r2, _02212448 ; =0x02216760
+ bl MOD04_021EB3B8
+ ldr r1, _02212440 ; =0x02216760
+ str r0, [r1, #4]
+ bl MOD79_02211FC8
+ ldr r0, _02212440 ; =0x02216760
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ blt _022123EE
+ mov r1, #4
+ str r1, [r0]
+ b _02212438
+_022123EE:
+ mov r1, #1
+ str r1, [r0]
+ b _02212438
+_022123F4:
+ bl MOD04_021EB524
+ cmp r0, #0
+ bne _02212438
+ ldr r0, _02212440 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ b _02212438
+_02212404:
+ ldr r0, [r1, #0x24]
+ ldr r1, _02212444 ; =MOD79_02212030
+ ldr r2, _02212448 ; =0x02216760
+ bl MOD04_021EB3B8
+ ldr r1, _02212440 ; =0x02216760
+ str r0, [r1, #4]
+ bl MOD79_02211FC8
+ ldr r0, _02212440 ; =0x02216760
+ ldr r1, [r0, #4]
+ cmp r1, #0
+ blt _02212424
+ mov r1, #6
+ str r1, [r0]
+ b _02212438
+_02212424:
+ mov r1, #1
+ str r1, [r0]
+ b _02212438
+_0221242A:
+ bl MOD04_021EB524
+ cmp r0, #0
+ bne _02212438
+ ldr r0, _02212440 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+_02212438:
+ ldr r0, _02212440 ; =0x02216760
+ ldr r0, [r0]
+ pop {r3, pc}
+ nop
+_02212440: .word 0x02216760
+_02212444: .word MOD79_02212030
+_02212448: .word 0x02216760
+ thumb_func_end MOD79_022123A8
+
+ thumb_func_start MOD79_0221244C
+MOD79_0221244C: ; 0x0221244C
+ push {r3, lr}
+ ldr r0, _02212470 ; =0x02216760
+ ldr r1, [r0, #0x24]
+ cmp r1, #0
+ beq _02212464
+ mov r0, #0xa
+ mov r2, #0
+ bl MOD04_021DD904
+ ldr r0, _02212470 ; =0x02216760
+ mov r1, #0
+ str r1, [r0, #0x24]
+_02212464:
+ bl MOD04_021EB550
+ ldr r0, _02212470 ; =0x02216760
+ mov r1, #1
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_02212470: .word 0x02216760
+ thumb_func_end MOD79_0221244C
+
+ thumb_func_start MOD79_02212474
+MOD79_02212474: ; 0x02212474
+ ldr r0, _0221247C ; =0x02216760
+ ldr r0, [r0, #8]
+ bx lr
+ nop
+_0221247C: .word 0x02216760
+ thumb_func_end MOD79_02212474
+
+ thumb_func_start MOD79_02212480
+MOD79_02212480: ; 0x02212480
+ ldr r0, _02212488 ; =0x02216760
+ ldr r0, [r0, #0xc]
+ bx lr
+ nop
+_02212488: .word 0x02216760
+ thumb_func_end MOD79_02212480
+
+ .section .rodata
+ ; 0x02216724
+ .incbin "baserom.nds", 0x2DE6C4, 0x14
+
+ .section .data
+ ; 0x02216760
+ .incbin "baserom.nds", 0x2DE700, 0x10C
+
+ .section .bss
+ ; 0x2217120
+ .space 0x40
diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s
new file mode 100644
index 00000000..45c6e1e3
--- /dev/null
+++ b/arm9/modules/80/asm/module_80.s
@@ -0,0 +1,19283 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD80_0222D5C0
+MOD80_0222D5C0: ; 0x0222D5C0
+ push {r3, r4}
+ ldr r3, _0222D5D8 ; =0x02237CE0
+ mov r4, #1
+ str r4, [r3]
+ mov r4, #0
+ str r4, [r3, #4]
+ str r0, [r3, #8]
+ str r1, [r3, #0xc]
+ str r2, [r3, #0x10]
+ pop {r3, r4}
+ bx lr
+ nop
+_0222D5D8: .word 0x02237CE0
+ thumb_func_end MOD80_0222D5C0
+
+ thumb_func_start MOD80_0222D5DC
+MOD80_0222D5DC: ; 0x0222D5DC
+ push {r3, lr}
+ ldr r1, _0222D8D4 ; =0x02237CE0
+ ldr r0, [r1]
+ cmp r0, #0x16
+ bls _0222D5E8
+ b _0222DB8A
+_0222D5E8:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222D5F4: ; jump table
+ .short _0222DB8A - _0222D5F4 - 2 ; case 0
+ .short _0222DB8A - _0222D5F4 - 2 ; case 1
+ .short _0222D622 - _0222D5F4 - 2 ; case 2
+ .short _0222DB7E - _0222D5F4 - 2 ; case 3
+ .short _0222D6D0 - _0222D5F4 - 2 ; case 4
+ .short _0222DB7E - _0222D5F4 - 2 ; case 5
+ .short _0222D756 - _0222D5F4 - 2 ; case 6
+ .short _0222DB7E - _0222D5F4 - 2 ; case 7
+ .short _0222D7D6 - _0222D5F4 - 2 ; case 8
+ .short _0222DB7E - _0222D5F4 - 2 ; case 9
+ .short _0222D86A - _0222D5F4 - 2 ; case 10
+ .short _0222DB7E - _0222D5F4 - 2 ; case 11
+ .short _0222D8EA - _0222D5F4 - 2 ; case 12
+ .short _0222DB7E - _0222D5F4 - 2 ; case 13
+ .short _0222D970 - _0222D5F4 - 2 ; case 14
+ .short _0222DB7E - _0222D5F4 - 2 ; case 15
+ .short _0222D9E8 - _0222D5F4 - 2 ; case 16
+ .short _0222DB7E - _0222D5F4 - 2 ; case 17
+ .short _0222DABA - _0222D5F4 - 2 ; case 18
+ .short _0222DB7E - _0222D5F4 - 2 ; case 19
+ .short _0222DB0E - _0222D5F4 - 2 ; case 20
+ .short _0222DB7E - _0222D5F4 - 2 ; case 21
+ .short _0222DB8A - _0222D5F4 - 2 ; case 22
+_0222D622:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D630
+ cmp r0, #7
+ beq _0222D648
+ pop {r3, pc}
+_0222D630:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222D8D4 ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D648:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0x16
+ ldr r2, _0222D8D8 ; =0x02237E00
+ str r1, [r0]
+ ldrb r2, [r2, #0x1c]
+ cmp r2, #0xe
+ bhi _0222D6C2
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0222D662: ; jump table
+ .short _0222D6C2 - _0222D662 - 2 ; case 0
+ .short _0222D680 - _0222D662 - 2 ; case 1
+ .short _0222D686 - _0222D662 - 2 ; case 2
+ .short _0222D68C - _0222D662 - 2 ; case 3
+ .short _0222D6C2 - _0222D662 - 2 ; case 4
+ .short _0222D6C2 - _0222D662 - 2 ; case 5
+ .short _0222D6C2 - _0222D662 - 2 ; case 6
+ .short _0222D692 - _0222D662 - 2 ; case 7
+ .short _0222D6A4 - _0222D662 - 2 ; case 8
+ .short _0222D6AA - _0222D662 - 2 ; case 9
+ .short _0222D6B0 - _0222D662 - 2 ; case 10
+ .short _0222D6B6 - _0222D662 - 2 ; case 11
+ .short _0222D698 - _0222D662 - 2 ; case 12
+ .short _0222D69E - _0222D662 - 2 ; case 13
+ .short _0222D6BC - _0222D662 - 2 ; case 14
+_0222D680:
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D686:
+ sub r1, #0x1b
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D68C:
+ sub r1, #0x1a
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D692:
+ sub r1, #0x17
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D698:
+ sub r1, #0x1c
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D69E:
+ sub r1, #0x1d
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D6A4:
+ sub r1, #0x1e
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D6AA:
+ sub r1, #0x1f
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D6B0:
+ sub r1, #0x20
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D6B6:
+ sub r1, #0x21
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D6BC:
+ sub r1, #0x18
+ str r1, [r0, #4]
+ b _0222D6CA
+_0222D6C2:
+ mov r1, #0xc
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D6CA:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D6D0:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D6DE
+ cmp r0, #7
+ beq _0222D6F6
+ pop {r3, pc}
+_0222D6DE:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222D8D4 ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D6F6:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r2, #0x16
+ ldr r1, _0222D8D8 ; =0x02237E00
+ str r2, [r0]
+ ldrb r1, [r1, #0x1c]
+ cmp r1, #5
+ bgt _0222D720
+ cmp r1, #0
+ blt _0222D748
+ add r3, r1, r1
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0222D714: ; jump table
+ .short _0222D748 - _0222D714 - 2 ; case 0
+ .short _0222D726 - _0222D714 - 2 ; case 1
+ .short _0222D72C - _0222D714 - 2 ; case 2
+ .short _0222D732 - _0222D714 - 2 ; case 3
+ .short _0222D748 - _0222D714 - 2 ; case 4
+ .short _0222D738 - _0222D714 - 2 ; case 5
+_0222D720:
+ cmp r1, #0xe
+ beq _0222D73E
+ b _0222D748
+_0222D726:
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222D750
+_0222D72C:
+ sub r2, #0x1b
+ str r2, [r0, #4]
+ b _0222D750
+_0222D732:
+ sub r2, #0x1a
+ str r2, [r0, #4]
+ b _0222D750
+_0222D738:
+ sub r2, #0x19
+ str r2, [r0, #4]
+ b _0222D750
+_0222D73E:
+ mov r1, #1
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D750
+_0222D748:
+ mov r1, #0xc
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D750:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D756:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D764
+ cmp r0, #7
+ beq _0222D77C
+ pop {r3, pc}
+_0222D764:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222D8D4 ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D77C:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212480
+ mov r1, #0x49
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _0222D796
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222D7D0
+_0222D796:
+ ldr r0, _0222D8DC ; =0x02237DE0
+ ldr r0, [r0, #0x40]
+ ldrb r0, [r0]
+ cmp r0, #3
+ beq _0222D7B4
+ cmp r0, #5
+ beq _0222D7AA
+ cmp r0, #0xe
+ beq _0222D7BE
+ b _0222D7C8
+_0222D7AA:
+ mov r1, #2
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D7D0
+_0222D7B4:
+ mov r1, #3
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D7D0
+_0222D7BE:
+ mov r1, #1
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D7D0
+_0222D7C8:
+ mov r1, #0xc
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D7D0:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D7D6:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D7E4
+ cmp r0, #7
+ beq _0222D7FC
+ pop {r3, pc}
+_0222D7E4:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222D8D4 ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D7FC:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212480
+ mov r1, #0x49
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _0222D816
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #1
+ str r1, [r0, #4]
+ b _0222D864
+_0222D816:
+ ldr r0, _0222D8DC ; =0x02237DE0
+ ldr r0, [r0, #0x40]
+ ldrb r0, [r0]
+ cmp r0, #5
+ bgt _0222D830
+ cmp r0, #3
+ blt _0222D85C
+ beq _0222D840
+ cmp r0, #4
+ beq _0222D84A
+ cmp r0, #5
+ beq _0222D836
+ b _0222D85C
+_0222D830:
+ cmp r0, #0xe
+ beq _0222D852
+ b _0222D85C
+_0222D836:
+ mov r1, #2
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D864
+_0222D840:
+ mov r1, #3
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D864
+_0222D84A:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222D864
+_0222D852:
+ mov r1, #1
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D864
+_0222D85C:
+ mov r1, #0xc
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D864:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D86A:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D878
+ cmp r0, #7
+ beq _0222D890
+ pop {r3, pc}
+_0222D878:
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222D8D4 ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D890:
+ ldr r1, _0222D8D4 ; =0x02237CE0
+ mov r2, #0x16
+ ldr r0, _0222D8D8 ; =0x02237E00
+ str r2, [r1]
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #5
+ bgt _0222D8AE
+ cmp r0, #1
+ blt _0222D8CC
+ beq _0222D8B4
+ cmp r0, #3
+ beq _0222D8C0
+ cmp r0, #5
+ beq _0222D8BA
+ b _0222D8CC
+_0222D8AE:
+ cmp r0, #0xe
+ beq _0222D8C6
+ b _0222D8CC
+_0222D8B4:
+ mov r0, #0
+ str r0, [r1, #4]
+ b _0222D8E4
+_0222D8BA:
+ sub r2, #0x19
+ str r2, [r1, #4]
+ b _0222D8E4
+_0222D8C0:
+ sub r2, #0x1a
+ str r2, [r1, #4]
+ b _0222D8E4
+_0222D8C6:
+ sub r2, #0x18
+ str r2, [r1, #4]
+ b _0222D8E4
+_0222D8CC:
+ mov r1, #0xc
+ ldr r0, _0222D8D4 ; =0x02237CE0
+ b _0222D8E0
+ nop
+_0222D8D4: .word 0x02237CE0
+_0222D8D8: .word 0x02237E00
+_0222D8DC: .word 0x02237DE0
+_0222D8E0:
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D8E4:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D8EA:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D8F8
+ cmp r0, #7
+ beq _0222D910
+ pop {r3, pc}
+_0222D8F8:
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222DB8C ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D910:
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r2, #0x16
+ ldr r1, _0222DB90 ; =0x02237E00
+ str r2, [r0]
+ ldrb r1, [r1, #0x1c]
+ cmp r1, #5
+ bgt _0222D93A
+ cmp r1, #0
+ blt _0222D962
+ add r3, r1, r1
+ add r3, pc
+ ldrh r3, [r3, #6]
+ lsl r3, r3, #0x10
+ asr r3, r3, #0x10
+ add pc, r3
+_0222D92E: ; jump table
+ .short _0222D962 - _0222D92E - 2 ; case 0
+ .short _0222D940 - _0222D92E - 2 ; case 1
+ .short _0222D94C - _0222D92E - 2 ; case 2
+ .short _0222D952 - _0222D92E - 2 ; case 3
+ .short _0222D962 - _0222D92E - 2 ; case 4
+ .short _0222D946 - _0222D92E - 2 ; case 5
+_0222D93A:
+ cmp r1, #0xe
+ beq _0222D958
+ b _0222D962
+_0222D940:
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222D96A
+_0222D946:
+ sub r2, #0x19
+ str r2, [r0, #4]
+ b _0222D96A
+_0222D94C:
+ sub r2, #0x1b
+ str r2, [r0, #4]
+ b _0222D96A
+_0222D952:
+ sub r2, #0x1a
+ str r2, [r0, #4]
+ b _0222D96A
+_0222D958:
+ mov r1, #1
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D96A
+_0222D962:
+ mov r1, #0xc
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D96A:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D970:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D97E
+ cmp r0, #7
+ beq _0222D996
+ pop {r3, pc}
+_0222D97E:
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222DB8C ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D996:
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212480
+ mov r1, #0x49
+ lsl r1, r1, #2
+ cmp r0, r1
+ blo _0222D9BA
+ bl MOD79_02212480
+ mov r1, #0x49
+ lsl r1, r1, #2
+ bl _u32_div_f
+ ldr r1, _0222DB8C ; =0x02237CE0
+ str r0, [r1, #4]
+ b _0222D9E2
+_0222D9BA:
+ cmp r0, #0
+ bne _0222D9C6
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222D9E2
+_0222D9C6:
+ ldr r0, _0222DB94 ; =0x02237DE0
+ ldr r0, [r0, #0x40]
+ ldrb r0, [r0]
+ cmp r0, #0xe
+ bne _0222D9DA
+ mov r1, #1
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D9E2
+_0222D9DA:
+ mov r1, #0xc
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D9E2:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D9E8:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D9F6
+ cmp r0, #7
+ beq _0222DA0E
+ pop {r3, pc}
+_0222D9F6:
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222DB8C ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222DA0E:
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212480
+ mov r1, #0x49
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _0222DA28
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222DAB4
+_0222DA28:
+ ldr r0, _0222DB94 ; =0x02237DE0
+ ldr r0, [r0, #0x40]
+ ldrb r0, [r0]
+ cmp r0, #0xe
+ bhi _0222DAAC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222DA3E: ; jump table
+ .short _0222DAAC - _0222DA3E - 2 ; case 0
+ .short _0222DAAC - _0222DA3E - 2 ; case 1
+ .short _0222DA5C - _0222DA3E - 2 ; case 2
+ .short _0222DAAC - _0222DA3E - 2 ; case 3
+ .short _0222DAAC - _0222DA3E - 2 ; case 4
+ .short _0222DAAC - _0222DA3E - 2 ; case 5
+ .short _0222DAAC - _0222DA3E - 2 ; case 6
+ .short _0222DAAC - _0222DA3E - 2 ; case 7
+ .short _0222DA7A - _0222DA3E - 2 ; case 8
+ .short _0222DA84 - _0222DA3E - 2 ; case 9
+ .short _0222DA8E - _0222DA3E - 2 ; case 10
+ .short _0222DA98 - _0222DA3E - 2 ; case 11
+ .short _0222DA66 - _0222DA3E - 2 ; case 12
+ .short _0222DA70 - _0222DA3E - 2 ; case 13
+ .short _0222DAA2 - _0222DA3E - 2 ; case 14
+_0222DA5C:
+ mov r1, #4
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222DAB4
+_0222DA66:
+ mov r1, #5
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222DAB4
+_0222DA70:
+ mov r1, #6
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222DAB4
+_0222DA7A:
+ mov r1, #7
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222DAB4
+_0222DA84:
+ mov r1, #8
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222DAB4
+_0222DA8E:
+ mov r1, #9
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222DAB4
+_0222DA98:
+ mov r1, #0xa
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222DAB4
+_0222DAA2:
+ mov r1, #1
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222DAB4
+_0222DAAC:
+ mov r1, #0xc
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222DAB4:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222DABA:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222DAC8
+ cmp r0, #7
+ beq _0222DAE0
+ pop {r3, pc}
+_0222DAC8:
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222DB8C ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222DAE0:
+ ldr r1, _0222DB8C ; =0x02237CE0
+ mov r2, #0x16
+ ldr r0, _0222DB90 ; =0x02237E00
+ str r2, [r1]
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #1
+ beq _0222DAF8
+ cmp r0, #2
+ beq _0222DB04
+ cmp r0, #0xe
+ beq _0222DAFE
+ b _0222DB08
+_0222DAF8:
+ mov r0, #0
+ str r0, [r1, #4]
+ b _0222DB08
+_0222DAFE:
+ sub r2, #0x18
+ str r2, [r1, #4]
+ b _0222DB08
+_0222DB04:
+ sub r2, #0x1b
+ str r2, [r1, #4]
+_0222DB08:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222DB0E:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222DB1C
+ cmp r0, #7
+ beq _0222DB34
+ pop {r3, pc}
+_0222DB1C:
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD80_0222DF38
+ ldr r1, _0222DB8C ; =0x02237CE0
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222DB34:
+ ldr r1, _0222DB8C ; =0x02237CE0
+ mov r2, #0x16
+ ldr r0, _0222DB90 ; =0x02237E00
+ str r2, [r1]
+ ldrb r0, [r0, #0x1c]
+ cmp r0, #7
+ bgt _0222DB52
+ cmp r0, #1
+ blt _0222DB70
+ beq _0222DB58
+ cmp r0, #6
+ beq _0222DB5E
+ cmp r0, #7
+ beq _0222DB64
+ b _0222DB70
+_0222DB52:
+ cmp r0, #0xe
+ beq _0222DB6A
+ b _0222DB70
+_0222DB58:
+ mov r0, #0
+ str r0, [r1, #4]
+ b _0222DB78
+_0222DB5E:
+ mov r0, #1
+ str r0, [r1, #4]
+ b _0222DB78
+_0222DB64:
+ mov r0, #2
+ str r0, [r1, #4]
+ b _0222DB78
+_0222DB6A:
+ sub r2, #0x18
+ str r2, [r1, #4]
+ b _0222DB78
+_0222DB70:
+ mov r1, #0xc
+ ldr r0, _0222DB8C ; =0x02237CE0
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222DB78:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222DB7E:
+ mov r0, #0x16
+ str r0, [r1]
+ sub r0, #0x22
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+_0222DB8A:
+ pop {r3, pc}
+ .align 2, 0
+_0222DB8C: .word 0x02237CE0
+_0222DB90: .word 0x02237E00
+_0222DB94: .word 0x02237DE0
+ thumb_func_end MOD80_0222D5DC
+
+ thumb_func_start MOD80_0222DB98
+MOD80_0222DB98: ; 0x0222DB98
+ ldr r1, _0222DBB4 ; =0x02237CE0
+ ldr r0, [r1]
+ cmp r0, #1
+ beq _0222DBA6
+ cmp r0, #0x16
+ beq _0222DBAA
+ b _0222DBB0
+_0222DBA6:
+ mov r0, #1
+ bx lr
+_0222DBAA:
+ mov r0, #1
+ str r0, [r1]
+ bx lr
+_0222DBB0:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0222DBB4: .word 0x02237CE0
+ thumb_func_end MOD80_0222DB98
+
+ thumb_func_start MOD80_0222DBB8
+MOD80_0222DBB8: ; 0x0222DBB8
+ ldr r0, _0222DBC0 ; =0x02237CE0
+ ldr r0, [r0, #4]
+ bx lr
+ nop
+_0222DBC0: .word 0x02237CE0
+ thumb_func_end MOD80_0222DBB8
+
+ thumb_func_start MOD80_0222DBC4
+MOD80_0222DBC4: ; 0x0222DBC4
+ push {r3, lr}
+ add r1, r0, #0
+ mov r2, #0x49
+ ldr r0, _0222DC04 ; =0x02237CF4
+ lsl r2, r2, #2
+ bl memcpy
+ bl MOD79_022122E4
+ mov r0, #2
+ str r0, [sp]
+ mov r2, #0x49
+ ldr r0, _0222DC08 ; =0x02237680
+ ldr r1, _0222DC04 ; =0x02237CF4
+ ldr r3, _0222DC0C ; =0x02237E1C
+ lsl r2, r2, #2
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DBF4
+ ldr r0, _0222DC10 ; =0x02237CE0
+ mov r1, #2
+ str r1, [r0]
+ pop {r3, pc}
+_0222DBF4:
+ ldr r0, _0222DC10 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+ .align 2, 0
+_0222DC04: .word 0x02237CF4
+_0222DC08: .word 0x02237680
+_0222DC0C: .word 0x02237E1C
+_0222DC10: .word 0x02237CE0
+ thumb_func_end MOD80_0222DBC4
+
+ thumb_func_start MOD80_0222DC14
+MOD80_0222DC14: ; 0x0222DC14
+ push {r3, lr}
+ ldr r0, _0222DC54 ; =0x02237CEC
+ ldr r2, _0222DC58 ; =0x02237CF4
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ str r1, [r2]
+ str r0, [r2, #4]
+ bl MOD79_022122E4
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0222DC5C ; =0x022376CC
+ ldr r1, _0222DC58 ; =0x02237CF4
+ ldr r3, _0222DC60 ; =0x02237E1C
+ mov r2, #8
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DC42
+ ldr r0, _0222DC64 ; =0x02237CE0
+ mov r1, #4
+ str r1, [r0]
+ pop {r3, pc}
+_0222DC42:
+ ldr r0, _0222DC64 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+ nop
+_0222DC54: .word 0x02237CEC
+_0222DC58: .word 0x02237CF4
+_0222DC5C: .word 0x022376CC
+_0222DC60: .word 0x02237E1C
+_0222DC64: .word 0x02237CE0
+ thumb_func_end MOD80_0222DC14
+
+ thumb_func_start MOD80_0222DC68
+MOD80_0222DC68: ; 0x0222DC68
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, _0222DCA8 ; =0x02237DE0
+ str r4, [r0, #0x40]
+ bl MOD79_022122E4
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r0, [sp]
+ ldr r0, _0222DCAC ; =0x0223771C
+ ldr r1, _0222DCB0 ; =0x02237CF4
+ mov r2, #0
+ add r3, r4, #0
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DC96
+ ldr r0, _0222DCB4 ; =0x02237CE0
+ mov r1, #6
+ str r1, [r0]
+ add sp, #4
+ pop {r3, r4, pc}
+_0222DC96:
+ ldr r0, _0222DCB4 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222DCA8: .word 0x02237DE0
+_0222DCAC: .word 0x0223771C
+_0222DCB0: .word 0x02237CF4
+_0222DCB4: .word 0x02237CE0
+ thumb_func_end MOD80_0222DC68
+
+ thumb_func_start MOD80_0222DCB8
+MOD80_0222DCB8: ; 0x0222DCB8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, _0222DCF8 ; =0x02237DE0
+ str r4, [r0, #0x40]
+ bl MOD79_022122E4
+ mov r0, #0x49
+ lsl r0, r0, #2
+ str r0, [sp]
+ ldr r0, _0222DCFC ; =0x02237764
+ ldr r1, _0222DD00 ; =0x02237CF4
+ mov r2, #0
+ add r3, r4, #0
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DCE6
+ ldr r0, _0222DD04 ; =0x02237CE0
+ mov r1, #8
+ str r1, [r0]
+ add sp, #4
+ pop {r3, r4, pc}
+_0222DCE6:
+ ldr r0, _0222DD04 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222DCF8: .word 0x02237DE0
+_0222DCFC: .word 0x02237764
+_0222DD00: .word 0x02237CF4
+_0222DD04: .word 0x02237CE0
+ thumb_func_end MOD80_0222DCB8
+
+ thumb_func_start MOD80_0222DD08
+MOD80_0222DD08: ; 0x0222DD08
+ push {r3, lr}
+ bl MOD79_022122E4
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0222DD3C ; =0x022377B0
+ ldr r1, _0222DD40 ; =0x02237CF4
+ ldr r3, _0222DD44 ; =0x02237E1C
+ mov r2, #0
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DD2A
+ ldr r0, _0222DD48 ; =0x02237CE0
+ mov r1, #0xa
+ str r1, [r0]
+ pop {r3, pc}
+_0222DD2A:
+ ldr r0, _0222DD48 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+ nop
+_0222DD3C: .word 0x022377B0
+_0222DD40: .word 0x02237CF4
+_0222DD44: .word 0x02237E1C
+_0222DD48: .word 0x02237CE0
+ thumb_func_end MOD80_0222DD08
+
+ thumb_func_start MOD80_0222DD4C
+MOD80_0222DD4C: ; 0x0222DD4C
+ push {r3, lr}
+ bl MOD79_022122E4
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0222DD80 ; =0x022377FC
+ ldr r1, _0222DD84 ; =0x02237CF4
+ ldr r3, _0222DD88 ; =0x02237E1C
+ mov r2, #0
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DD6E
+ ldr r0, _0222DD8C ; =0x02237CE0
+ mov r1, #0xc
+ str r1, [r0]
+ pop {r3, pc}
+_0222DD6E:
+ ldr r0, _0222DD8C ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+ nop
+_0222DD80: .word 0x022377FC
+_0222DD84: .word 0x02237CF4
+_0222DD88: .word 0x02237E1C
+_0222DD8C: .word 0x02237CE0
+ thumb_func_end MOD80_0222DD4C
+
+ thumb_func_start MOD80_0222DD90
+MOD80_0222DD90: ; 0x0222DD90
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r0, _0222DDF4 ; =0x02237DE0
+ add r6, r2, #0
+ str r6, [r0, #0x40]
+ add r4, r1, #0
+ bl MOD79_022122E4
+ ldrb r0, [r5]
+ ldr r1, _0222DDF8 ; =0x02237CF4
+ mov r2, #7
+ strb r0, [r1]
+ ldrb r0, [r5, #1]
+ add r3, r6, #0
+ strb r0, [r1, #1]
+ ldrb r0, [r5, #2]
+ strb r0, [r1, #2]
+ ldrb r0, [r5, #3]
+ strb r0, [r1, #3]
+ ldrb r0, [r5, #4]
+ strb r0, [r1, #4]
+ ldrb r0, [r5, #5]
+ strb r0, [r1, #5]
+ ldr r0, _0222DDFC ; =0x02237CE0
+ strb r4, [r0, #0x1a]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ mul r0, r4
+ str r0, [sp]
+ ldr r0, _0222DE00 ; =0x02237848
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DDE0
+ ldr r0, _0222DDFC ; =0x02237CE0
+ mov r1, #0xe
+ str r1, [r0]
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0222DDE0:
+ ldr r0, _0222DDFC ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222DDF4: .word 0x02237DE0
+_0222DDF8: .word 0x02237CF4
+_0222DDFC: .word 0x02237CE0
+_0222DE00: .word 0x02237848
+ thumb_func_end MOD80_0222DD90
+
+ thumb_func_start MOD80_0222DE04
+MOD80_0222DE04: ; 0x0222DE04
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r0, _0222DE58 ; =0x02237DE0
+ add r6, r2, #0
+ add r4, r1, #0
+ str r6, [r0, #0x40]
+ bl MOD79_022122E4
+ mov r2, #0x49
+ ldr r0, _0222DE5C ; =0x02237CF4
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl memcpy
+ ldr r0, _0222DE58 ; =0x02237DE0
+ mov r2, #0x49
+ str r5, [r0, #0x38]
+ lsl r2, r2, #2
+ str r2, [sp]
+ ldr r0, _0222DE60 ; =0x02237894
+ ldr r1, _0222DE5C ; =0x02237CF4
+ add r2, r2, #4
+ add r3, r6, #0
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DE46
+ ldr r0, _0222DE64 ; =0x02237CE0
+ mov r1, #0x10
+ str r1, [r0]
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0222DE46:
+ ldr r0, _0222DE64 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222DE58: .word 0x02237DE0
+_0222DE5C: .word 0x02237CF4
+_0222DE60: .word 0x02237894
+_0222DE64: .word 0x02237CE0
+ thumb_func_end MOD80_0222DE04
+
+ thumb_func_start MOD80_0222DE68
+MOD80_0222DE68: ; 0x0222DE68
+ push {r3, lr}
+ ldr r0, _0222DEA8 ; =0x02237CEC
+ ldr r2, _0222DEAC ; =0x02237CF4
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ str r1, [r2]
+ str r0, [r2, #4]
+ bl MOD79_022122E4
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0222DEB0 ; =0x022378E4
+ ldr r1, _0222DEAC ; =0x02237CF4
+ ldr r3, _0222DEB4 ; =0x02237E1C
+ mov r2, #8
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DE96
+ ldr r0, _0222DEB8 ; =0x02237CE0
+ mov r1, #0x12
+ str r1, [r0]
+ pop {r3, pc}
+_0222DE96:
+ ldr r0, _0222DEB8 ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+ nop
+_0222DEA8: .word 0x02237CEC
+_0222DEAC: .word 0x02237CF4
+_0222DEB0: .word 0x022378E4
+_0222DEB4: .word 0x02237E1C
+_0222DEB8: .word 0x02237CE0
+ thumb_func_end MOD80_0222DE68
+
+ thumb_func_start MOD80_0222DEBC
+MOD80_0222DEBC: ; 0x0222DEBC
+ push {r3, lr}
+ bl MOD79_022122E4
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0222DEF0 ; =0x02237938
+ ldr r1, _0222DEF4 ; =0x02237CF4
+ ldr r3, _0222DEF8 ; =0x02237E1C
+ mov r2, #0
+ bl MOD80_0222DF00
+ cmp r0, #0
+ beq _0222DEDE
+ ldr r0, _0222DEFC ; =0x02237CE0
+ mov r1, #0x14
+ str r1, [r0]
+ pop {r3, pc}
+_0222DEDE:
+ ldr r0, _0222DEFC ; =0x02237CE0
+ mov r1, #0x16
+ str r1, [r0]
+ sub r1, #0x23
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+ nop
+_0222DEF0: .word 0x02237938
+_0222DEF4: .word 0x02237CF4
+_0222DEF8: .word 0x02237E1C
+_0222DEFC: .word 0x02237CE0
+ thumb_func_end MOD80_0222DEBC
+
+ thumb_func_start MOD80_0222DF00
+MOD80_0222DF00: ; 0x0222DF00
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r1, [sp, #0x18]
+ str r3, [sp]
+ str r1, [sp, #4]
+ add r4, r2, #0
+ ldr r1, _0222DF34 ; =0x02237CE0
+ add r2, r5, #0
+ ldr r1, [r1, #8]
+ add r3, r4, #0
+ bl MOD79_02212308
+ cmp r0, #0
+ beq _0222DF26
+ cmp r0, #1
+ beq _0222DF2C
+ cmp r0, #2
+ b _0222DF2C
+_0222DF26:
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222DF2C:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_0222DF34: .word 0x02237CE0
+ thumb_func_end MOD80_0222DF00
+
+ thumb_func_start MOD80_0222DF38
+MOD80_0222DF38: ; 0x0222DF38
+ push {r4, lr}
+ cmp r0, #0x20
+ bhi _0222DFB0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222DF4A: ; jump table
+ .short _0222DF8C - _0222DF4A - 2 ; case 0
+ .short _0222DF8C - _0222DF4A - 2 ; case 1
+ .short _0222DF92 - _0222DF4A - 2 ; case 2
+ .short _0222DF8C - _0222DF4A - 2 ; case 3
+ .short _0222DF8C - _0222DF4A - 2 ; case 4
+ .short _0222DF8C - _0222DF4A - 2 ; case 5
+ .short _0222DF8C - _0222DF4A - 2 ; case 6
+ .short _0222DFB0 - _0222DF4A - 2 ; case 7
+ .short _0222DF92 - _0222DF4A - 2 ; case 8
+ .short _0222DF8C - _0222DF4A - 2 ; case 9
+ .short _0222DF8C - _0222DF4A - 2 ; case 10
+ .short _0222DF98 - _0222DF4A - 2 ; case 11
+ .short _0222DF9E - _0222DF4A - 2 ; case 12
+ .short _0222DF9E - _0222DF4A - 2 ; case 13
+ .short _0222DF8C - _0222DF4A - 2 ; case 14
+ .short _0222DFAA - _0222DF4A - 2 ; case 15
+ .short _0222DFA4 - _0222DF4A - 2 ; case 16
+ .short _0222DFA4 - _0222DF4A - 2 ; case 17
+ .short _0222DFA4 - _0222DF4A - 2 ; case 18
+ .short _0222DFA4 - _0222DF4A - 2 ; case 19
+ .short _0222DF8C - _0222DF4A - 2 ; case 20
+ .short _0222DF8C - _0222DF4A - 2 ; case 21
+ .short _0222DF8C - _0222DF4A - 2 ; case 22
+ .short _0222DF8C - _0222DF4A - 2 ; case 23
+ .short _0222DFB0 - _0222DF4A - 2 ; case 24
+ .short _0222DF92 - _0222DF4A - 2 ; case 25
+ .short _0222DFA4 - _0222DF4A - 2 ; case 26
+ .short _0222DFA4 - _0222DF4A - 2 ; case 27
+ .short _0222DFA4 - _0222DF4A - 2 ; case 28
+ .short _0222DFA4 - _0222DF4A - 2 ; case 29
+ .short _0222DFAA - _0222DF4A - 2 ; case 30
+ .short _0222DFA4 - _0222DF4A - 2 ; case 31
+ .short _0222DF8C - _0222DF4A - 2 ; case 32
+_0222DF8C:
+ mov r4, #0xc
+ mvn r4, r4
+ b _0222DFB4
+_0222DF92:
+ mov r4, #0xc
+ mvn r4, r4
+ b _0222DFB4
+_0222DF98:
+ mov r4, #0xe
+ mvn r4, r4
+ b _0222DFB4
+_0222DF9E:
+ mov r4, #0xe
+ mvn r4, r4
+ b _0222DFB4
+_0222DFA4:
+ mov r4, #1
+ mvn r4, r4
+ b _0222DFB4
+_0222DFAA:
+ mov r4, #1
+ mvn r4, r4
+ b _0222DFB4
+_0222DFB0:
+ mov r4, #0xc
+ mvn r4, r4
+_0222DFB4:
+ mov r0, #0xc
+ mvn r0, r0
+ cmp r4, r0
+ beq _0222DFCC
+ bl FUN_020A71F8
+ cmp r0, #9
+ beq _0222DFC8
+ mov r4, #0xd
+ mvn r4, r4
+_0222DFC8:
+ bl MOD04_021DD6F0
+_0222DFCC:
+ add r0, r4, #0
+ pop {r4, pc}
+ thumb_func_end MOD80_0222DF38
+
+ thumb_func_start MOD80_0222DFD0
+MOD80_0222DFD0: ; 0x0222DFD0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _0222DFE4
+ cmp r0, #1
+ beq _0222E0E2
+ b _0222E0F8
+_0222DFE4:
+ 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, _0222E100 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _0222E104 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r2, #7
+ mov r0, #3
+ mov r1, #0x3e
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, _0222E108 ; =0x00001044
+ add r0, r6, #0
+ mov r2, #0x3e
+ bl FUN_02006268
+ ldr r2, _0222E108 ; =0x00001044
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x3e
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ ldr r0, _0222E10C ; =0x02237E24
+ add r2, sp, #0
+ ldr r3, _0222E110 ; =0x02236E50
+ str r4, [r0, #4]
+ add r7, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r7, #0
+ bl FUN_02016BBC
+ mov r0, #0xb
+ mov r1, #0x40
+ mov r2, #0x3e
+ bl FUN_0200AA90
+ mov r1, #0xb3
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r2, _0222E114 ; =0x0000024F
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x3e
+ bl FUN_0200A86C
+ ldr r1, _0222E118 ; =0x00000B34
+ mov r2, #0x25
+ str r0, [r4, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #4
+ mov r3, #0x3e
+ bl FUN_0200A86C
+ ldr r1, _0222E11C ; =0x00000B3C
+ ldr r2, _0222E120 ; =0x00000265
+ str r0, [r4, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x3e
+ bl FUN_0200A86C
+ mov r1, #0x2d
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r2, _0222E124 ; =0x0000016A
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x3e
+ bl FUN_0200A86C
+ ldr r1, _0222E128 ; =0x00000B38
+ str r0, [r4, r1]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD80_0222E338
+ add r0, r4, #0
+ bl MOD80_0222E7C8
+ ldr r1, _0222E12C ; =0x00000449
+ mov r0, #4
+ mov r2, #1
+ bl FUN_0200433C
+ ldr r1, _0222E130 ; =0x00020020
+ mov r0, #0x3e
+ bl FUN_02016998
+ str r0, [r4, #0x48]
+ add r0, #0x1f
+ mov r1, #0x1f
+ bic r0, r1
+ mov r1, #2
+ lsl r1, r1, #0x10
+ mov r2, #0
+ bl tempName_NNS_FndCreateExpHeapEx
+ str r0, [r4, #0x4c]
+ mov r0, #1
+ str r0, [r5]
+ b _0222E0F8
+_0222E0E2:
+ bl FUN_02088858
+ bl FUN_020888BC
+ bl FUN_0202E49C
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222E0F8:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E100: .word 0xFFFFE0FF
+_0222E104: .word 0x04001000
+_0222E108: .word 0x00001044
+_0222E10C: .word 0x02237E24
+_0222E110: .word 0x02236E50
+_0222E114: .word 0x0000024F
+_0222E118: .word 0x00000B34
+_0222E11C: .word 0x00000B3C
+_0222E120: .word 0x00000265
+_0222E124: .word 0x0000016A
+_0222E128: .word 0x00000B38
+_0222E12C: .word 0x00000449
+_0222E130: .word 0x00020020
+ thumb_func_end MOD80_0222DFD0
+
+ thumb_func_start MOD80_0222E134
+MOD80_0222E134: ; 0x0222E134
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD04_021DD984
+ bl MOD80_0222D5DC
+ ldr r1, [r5]
+ cmp r1, #5
+ bhi _0222E224
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E158: ; jump table
+ .short _0222E164 - _0222E158 - 2 ; case 0
+ .short _0222E180 - _0222E158 - 2 ; case 1
+ .short _0222E1A4 - _0222E158 - 2 ; case 2
+ .short _0222E1B2 - _0222E158 - 2 ; case 3
+ .short _0222E1C6 - _0222E158 - 2 ; case 4
+ .short _0222E220 - _0222E158 - 2 ; case 5
+_0222E164:
+ bl FUN_0202E4C8
+ cmp r0, #0
+ beq _0222E224
+ ldr r1, [r4, #0x4c]
+ ldr r0, _0222E240 ; =0x02237E24
+ str r1, [r0]
+ ldr r0, _0222E244 ; =MOD80_0222E750
+ ldr r1, _0222E248 ; =MOD80_0222E778
+ bl MOD04_021DD968
+ mov r0, #1
+ str r0, [r5]
+ b _0222E224
+_0222E180:
+ ldr r3, [r4, #0x14]
+ mov r2, #0xc
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _0222E24C ; =0x02237984
+ add r0, r4, #0
+ ldr r2, [r2, r6]
+ blx r2
+ str r0, [r5]
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0222E224
+ add r0, r4, #0
+ bl MOD80_0222E7F0
+ b _0222E224
+_0222E1A4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222E224
+ mov r0, #3
+ str r0, [r5]
+ b _0222E224
+_0222E1B2:
+ ldr r3, [r4, #0x14]
+ mov r2, #0xc
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _0222E250 ; =0x02237988
+ add r0, r4, #0
+ ldr r2, [r2, r6]
+ blx r2
+ str r0, [r5]
+ b _0222E224
+_0222E1C6:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222E224
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0222E20A
+ add r0, r4, #0
+ bl MOD80_0222E7C8
+ ldr r0, [r4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_020239CC
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD80_02235850
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD80_02235B90
+ add r0, r4, #0
+ bl MOD80_0222F338
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xac
+ str r1, [r0]
+_0222E20A:
+ ldr r3, [r4, #0x14]
+ mov r2, #0xc
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _0222E254 ; =0x0223798C
+ ldr r1, [r5]
+ ldr r2, [r2, r6]
+ add r0, r4, #0
+ blx r2
+ str r0, [r5]
+ b _0222E224
+_0222E220:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222E224:
+ add r0, r4, #0
+ bl MOD80_0222E85C
+ add r0, r4, #0
+ bl MOD80_0222E87C
+ ldr r0, _0222E258 ; =0x00000B84
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222E23C
+ bl FUN_0201FDEC
+_0222E23C:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E240: .word 0x02237E24
+_0222E244: .word MOD80_0222E750
+_0222E248: .word MOD80_0222E778
+_0222E24C: .word 0x02237984
+_0222E250: .word 0x02237988
+_0222E254: .word 0x0223798C
+_0222E258: .word 0x00000B84
+ thumb_func_end MOD80_0222E134
+
+ thumb_func_start MOD80_0222E25C
+MOD80_0222E25C: ; 0x0222E25C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0x48]
+ bl FUN_02016A18
+ bl FUN_020888CC
+ bl FUN_02088868
+ add r0, r4, #0
+ bl MOD80_0222E7F0
+ ldr r0, _0222E2D4 ; =0x00000B38
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x2d
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0222E2D8 ; =0x00000B3C
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0222E2DC ; =0x00000B34
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0xb3
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ add r0, r4, #0
+ bl MOD80_0222E398
+ bl FUN_0202E4F0
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ ldr r0, [r4]
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x3e
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222E2D4: .word 0x00000B38
+_0222E2D8: .word 0x00000B3C
+_0222E2DC: .word 0x00000B34
+ thumb_func_end MOD80_0222E25C
+
+ thumb_func_start MOD80_0222E2E0
+MOD80_0222E2E0: ; 0x0222E2E0
+ push {r4, lr}
+ ldr r1, _0222E30C ; =0x00001014
+ add r4, r0, #0
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _0222E2F4
+ blx r1
+ ldr r0, _0222E30C ; =0x00001014
+ mov r1, #0
+ str r1, [r4, r0]
+_0222E2F4:
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _0222E310 ; =0x027E0000
+ ldr r1, _0222E314 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_0222E30C: .word 0x00001014
+_0222E310: .word 0x027E0000
+_0222E314: .word 0x00003FF8
+ thumb_func_end MOD80_0222E2E0
+
+ thumb_func_start MOD80_0222E318
+MOD80_0222E318: ; 0x0222E318
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _0222E334 ; =0x02236E70
+ add r3, sp, #0
+ mov r2, #5
+_0222E322:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E322
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_0222E334: .word 0x02236E70
+ thumb_func_end MOD80_0222E318
+
+ thumb_func_start MOD80_0222E338
+MOD80_0222E338: ; 0x0222E338
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ bl FUN_0200628C
+ mov r1, #0
+ str r0, [r4]
+ add r0, r4, #0
+ add r2, r1, #0
+ str r1, [r4, #0x14]
+ bl MOD80_0222E7A8
+ add r1, r4, #0
+ mov r0, #0
+ add r1, #0xb4
+ strh r0, [r1]
+ ldr r1, _0222E390 ; =0x00000B22
+ mov r3, #3
+ strh r0, [r4, r1]
+ add r2, r1, #2
+ strb r3, [r4, r2]
+ add r2, r1, #3
+ strb r0, [r4, r2]
+ add r2, r1, #4
+ strb r0, [r4, r2]
+ add r1, r1, #6
+ strh r0, [r4, r1]
+ ldr r2, _0222E394 ; =0x00000FEC
+ add r1, r4, #0
+ strh r0, [r4, r2]
+ mov r3, #0x12
+ add r1, #0xb8
+ strh r3, [r1]
+ add r1, r2, #0
+ add r1, #0x1c
+ strh r0, [r4, r1]
+ add r1, r2, #0
+ add r1, #0x1e
+ strh r0, [r4, r1]
+ add r1, r2, #2
+ strh r0, [r4, r1]
+ sub r2, #0x14
+ str r0, [r4, r2]
+ pop {r4, pc}
+ .align 2, 0
+_0222E390: .word 0x00000B22
+_0222E394: .word 0x00000FEC
+ thumb_func_end MOD80_0222E338
+
+ thumb_func_start MOD80_0222E398
+MOD80_0222E398: ; 0x0222E398
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD80_0222E398
+
+ thumb_func_start MOD80_0222E39C
+MOD80_0222E39C: ; 0x0222E39C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _0222E3C8 ; =0x02236E60
+ 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, #0x3e
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0222E3C8: .word 0x02236E60
+ thumb_func_end MOD80_0222E39C
+
+ thumb_func_start MOD80_0222E3CC
+MOD80_0222E3CC: ; 0x0222E3CC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7e
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x3e
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ ldr r1, _0222E5C8 ; =0x00000B88
+ mov r0, #0x4e
+ add r1, r5, r1
+ mov r2, #0x3e
+ bl FUN_02008C9C
+ ldr r1, _0222E5CC ; =0x00000B84
+ mov r2, #1
+ str r0, [r5, r1]
+ add r0, r1, #4
+ add r0, r5, r0
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0xcb
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #4
+_0222E414:
+ mov r0, #3
+ add r1, r6, #0
+ mov r2, #0x3e
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _0222E414
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0xcb
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x68
+ mov r2, #0x12
+ bl FUN_02008F34
+ mov r1, #0x33
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0x3e
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x68
+ mov r2, #9
+ bl FUN_02008FEC
+ ldr r1, _0222E5D0 ; =0x00000CC4
+ mov r2, #0x13
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x68
+ mov r3, #1
+ bl FUN_020090AC
+ ldr r1, _0222E5D4 ; =0x00000CC8
+ mov r2, #0x14
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x68
+ mov r3, #1
+ bl FUN_020090AC
+ ldr r1, _0222E5D8 ; =0x00000CCC
+ mov r3, #1
+ str r0, [r5, r1]
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x68
+ mov r2, #0x20
+ bl FUN_02008F34
+ mov r1, #0xcd
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #9
+ str r0, [sp, #8]
+ mov r0, #0x3e
+ sub r1, #0x1c
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x68
+ mov r2, #8
+ mov r3, #0
+ bl FUN_02008FEC
+ ldr r1, _0222E5DC ; =0x00000CD4
+ mov r3, #1
+ str r0, [r5, r1]
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x68
+ mov r2, #0x21
+ bl FUN_020090AC
+ ldr r1, _0222E5E0 ; =0x00000CD8
+ mov r3, #1
+ str r0, [r5, r1]
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x68
+ mov r2, #0x22
+ bl FUN_020090AC
+ ldr r1, _0222E5E4 ; =0x00000CDC
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ bl FUN_02009A50
+ mov r0, #0xcd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ ldr r0, _0222E5D0 ; =0x00000CC4
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ ldr r0, _0222E5DC ; =0x00000CD4
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0x13
+ add r2, sp, #0x18
+ mov r3, #0x3e
+ bl FUN_02006C08
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ mov r1, #0x60
+ ldr r0, [r0, #0xc]
+ bl DC_FlushRange
+ ldr r0, [sp, #0x18]
+ mov r1, #0x60
+ ldr r0, [r0, #0xc]
+ add r2, r1, #0
+ bl GX_LoadOBJPltt
+ ldr r0, [sp, #0x18]
+ mov r7, #0x1f
+ ldr r4, [r0, #0xc]
+ mov r3, #0
+ add r5, r7, #0
+_0222E570:
+ ldrh r2, [r4]
+ mov r0, #0x1f
+ add r3, r3, #1
+ add r1, r2, #0
+ and r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r1, r0, #1
+ asr r0, r2, #0xa
+ add r6, r0, #0
+ and r6, r7
+ lsr r0, r6, #0x1f
+ add r0, r6, r0
+ asr r2, r2, #5
+ add r6, r2, #0
+ and r6, r5
+ lsr r2, r6, #0x1f
+ add r2, r6, r2
+ asr r0, r0, #1
+ asr r2, r2, #1
+ lsl r0, r0, #0xa
+ lsl r2, r2, #5
+ orr r0, r2
+ orr r0, r1
+ strh r0, [r4]
+ add r4, r4, #2
+ cmp r3, #0x30
+ blt _0222E570
+ ldr r0, [sp, #0x18]
+ mov r1, #0x60
+ ldr r0, [r0, #0xc]
+ bl DC_FlushRange
+ ldr r0, [sp, #0x18]
+ mov r1, #0xc0
+ ldr r0, [r0, #0xc]
+ mov r2, #0x60
+ bl GX_LoadOBJPltt
+ ldr r0, [sp, #0x14]
+ bl FUN_02016A18
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E5C8: .word 0x00000B88
+_0222E5CC: .word 0x00000B84
+_0222E5D0: .word 0x00000CC4
+_0222E5D4: .word 0x00000CC8
+_0222E5D8: .word 0x00000CCC
+_0222E5DC: .word 0x00000CD4
+_0222E5E0: .word 0x00000CD8
+_0222E5E4: .word 0x00000CDC
+ thumb_func_end MOD80_0222E3CC
+
+ thumb_func_start MOD80_0222E5E8
+MOD80_0222E5E8: ; 0x0222E5E8
+ push {r3, r4}
+ ldr r4, _0222E610 ; =0x00000B84
+ ldr r1, [r1, r4]
+ str r1, [r0]
+ str r2, [r0, #4]
+ mov r2, #0
+ mov r1, #1
+ str r2, [r0, #0x10]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ strh r2, [r0, #0x20]
+ mov r1, #1
+ str r1, [r0, #0x24]
+ str r3, [r0, #0x28]
+ mov r1, #0x3e
+ str r1, [r0, #0x2c]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0222E610: .word 0x00000B84
+ thumb_func_end MOD80_0222E5E8
+
+ thumb_func_start MOD80_0222E614
+MOD80_0222E614: ; 0x0222E614
+ push {r3, r4, lr}
+ sub sp, #0x2c
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r2, #0xcb
+ str r1, [sp, #0x10]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r4, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r4, r0]
+ add r2, #0x40
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r4, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r1, #1
+ mov r3, #0xcb
+ 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, #4
+ ldr r2, [r4, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r4, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r4, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r4, r2]
+ add r3, #0x64
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r4, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x2c
+ pop {r3, r4, pc}
+ thumb_func_end MOD80_0222E614
+
+ thumb_func_start MOD80_0222E6A8
+MOD80_0222E6A8: ; 0x0222E6A8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ ldr r5, _0222E6D8 ; =0x02236E48
+ add r4, sp, #4
+ ldrh r6, [r5]
+ add r3, sp, #4
+ strh r6, [r4]
+ ldrh r6, [r5, #2]
+ strh r6, [r4, #2]
+ ldrh r6, [r5, #4]
+ ldrh r5, [r5, #6]
+ strh r6, [r4, #4]
+ strh r5, [r4, #6]
+ strb r1, [r4, #2]
+ strh r2, [r4, #6]
+ mov r1, #0x3e
+ str r1, [sp]
+ add r1, r3, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_02002198
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222E6D8: .word 0x02236E48
+ thumb_func_end MOD80_0222E6A8
+
+ thumb_func_start MOD80_0222E6DC
+MOD80_0222E6DC: ; 0x0222E6DC
+ str r1, [r0, #0x2c]
+ str r2, [r0, #0x30]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD80_0222E6DC
+
+ thumb_func_start MOD80_0222E6E4
+MOD80_0222E6E4: ; 0x0222E6E4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r1, #0
+ ble _0222E702
+ lsl r0, r1, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _0222E710
+_0222E702:
+ lsl r0, r1, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_0222E710:
+ bl _ffix
+ str r0, [sp]
+ cmp r5, #0
+ ble _0222E72C
+ lsl r0, r5, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _0222E73A
+_0222E72C:
+ lsl r0, r5, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_0222E73A:
+ bl _ffix
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD80_0222E6E4
+
+ thumb_func_start MOD80_0222E750
+MOD80_0222E750: ; 0x0222E750
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ bl OS_DisableInterrupts
+ add r6, r0, #0
+ ldr r0, _0222E774 ; =0x02237E24
+ add r1, r5, #0
+ ldr r0, [r0]
+ add r2, r4, #0
+ bl tempName_NNS_FndAllocFromExpHeapEx
+ add r4, r0, #0
+ add r0, r6, #0
+ bl OS_RestoreInterrupts
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E774: .word 0x02237E24
+ thumb_func_end MOD80_0222E750
+
+ thumb_func_start MOD80_0222E778
+MOD80_0222E778: ; 0x0222E778
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ beq _0222E794
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0222E798 ; =0x02237E24
+ add r1, r5, #0
+ ldr r0, [r0]
+ bl FUN_020ADDF0
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+_0222E794:
+ pop {r3, r4, r5, pc}
+ nop
+_0222E798: .word 0x02237E24
+ thumb_func_end MOD80_0222E778
+
+ thumb_func_start MOD80_0222E79C
+MOD80_0222E79C: ; 0x0222E79C
+ push {r3, lr}
+ bl MOD04_021DDB08
+ mov r1, #3
+ sub r0, r1, r0
+ pop {r3, pc}
+ thumb_func_end MOD80_0222E79C
+
+ thumb_func_start MOD80_0222E7A8
+MOD80_0222E7A8: ; 0x0222E7A8
+ str r1, [r0, #0x18]
+ str r2, [r0, #0x24]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD80_0222E7A8
+
+ thumb_func_start MOD80_0222E7B0
+MOD80_0222E7B0: ; 0x0222E7B0
+ ldr r1, [r0, #0x14]
+ str r1, [r0, #0x20]
+ ldr r1, [r0, #0x18]
+ str r1, [r0, #0x14]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD80_0222E7B0
+
+ thumb_func_start MOD80_0222E7BC
+MOD80_0222E7BC: ; 0x0222E7BC
+ ldr r0, [r0]
+ ldr r3, _0222E7C4 ; =FUN_02024FF4
+ ldr r0, [r0, #0x24]
+ bx r3
+ .align 2, 0
+_0222E7C4: .word FUN_02024FF4
+ thumb_func_end MOD80_0222E7BC
+
+ thumb_func_start MOD80_0222E7C8
+MOD80_0222E7C8: ; 0x0222E7C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222E318
+ bl MOD80_0222E39C
+ add r0, r4, #0
+ bl MOD80_0222E3CC
+ add r0, r4, #0
+ bl MOD80_0222E614
+ ldr r0, _0222E7EC ; =MOD80_0222E2E0
+ add r1, r4, #0
+ bl FUN_02015F10
+ pop {r4, pc}
+ nop
+_0222E7EC: .word MOD80_0222E2E0
+ thumb_func_end MOD80_0222E7C8
+
+ thumb_func_start MOD80_0222E7F0
+MOD80_0222E7F0: ; 0x0222E7F0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl MOD80_02235D10
+ mov r0, #0x33
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0xcd
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ ldr r0, _0222E850 ; =0x00000CC4
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ ldr r0, _0222E854 ; =0x00000CD4
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0xcb
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_0222E824:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E824
+ ldr r0, _0222E858 ; =0x00000B84
+ ldr r0, [r6, r0]
+ bl FUN_0201FD58
+ ldr r0, _0222E858 ; =0x00000B84
+ mov r1, #0
+ str r1, [r6, r0]
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E850: .word 0x00000CC4
+_0222E854: .word 0x00000CD4
+_0222E858: .word 0x00000B84
+ thumb_func_end MOD80_0222E7F0
+
+ thumb_func_start MOD80_0222E85C
+MOD80_0222E85C: ; 0x0222E85C
+ ldrh r1, [r0, #0x3a]
+ cmp r1, #0
+ beq _0222E866
+ sub r1, r1, #1
+ strh r1, [r0, #0x3a]
+_0222E866:
+ bx lr
+ thumb_func_end MOD80_0222E85C
+
+ thumb_func_start MOD80_0222E868
+MOD80_0222E868: ; 0x0222E868
+ ldr r1, _0222E878 ; =0x0000100A
+ mov r2, #1
+ strh r2, [r0, r1]
+ mov r2, #0
+ sub r1, r1, #2
+ strh r2, [r0, r1]
+ bx lr
+ nop
+_0222E878: .word 0x0000100A
+ thumb_func_end MOD80_0222E868
+
+ thumb_func_start MOD80_0222E87C
+MOD80_0222E87C: ; 0x0222E87C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222E8B4 ; =0x0000100A
+ ldrh r1, [r4, r0]
+ cmp r1, #0
+ beq _0222E8B0
+ ldr r0, [r4]
+ sub r1, r1, #1
+ ldr r0, [r0, #0xc]
+ bl FUN_0206B4E4
+ ldr r1, _0222E8B8 ; =0x00001008
+ ldrh r2, [r4, r1]
+ add r0, r2, r0
+ strh r0, [r4, r1]
+ add r0, r1, #2
+ ldrh r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r4, r0]
+ ldrh r0, [r4, r0]
+ cmp r0, #0x13
+ bne _0222E8B0
+ mov r2, #0
+ add r0, r1, #2
+ strh r2, [r4, r0]
+_0222E8B0:
+ pop {r4, pc}
+ nop
+_0222E8B4: .word 0x0000100A
+_0222E8B8: .word 0x00001008
+ thumb_func_end MOD80_0222E87C
+
+ thumb_func_start MOD80_0222E8BC
+MOD80_0222E8BC: ; 0x0222E8BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222E8D0 ; =0x00000E98
+ mov r1, #1
+ add r0, r4, r0
+ bl FUN_0200D858
+ ldr r1, _0222E8D4 ; =0x00000FD8
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0222E8D0: .word 0x00000E98
+_0222E8D4: .word 0x00000FD8
+ thumb_func_end MOD80_0222E8BC
+
+ thumb_func_start MOD80_0222E8D8
+MOD80_0222E8D8: ; 0x0222E8D8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222E8F0 ; =0x00000FD8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222E8EE
+ bl FUN_0200DBFC
+ ldr r0, _0222E8F0 ; =0x00000FD8
+ mov r1, #0
+ str r1, [r4, r0]
+_0222E8EE:
+ pop {r4, pc}
+ .align 2, 0
+_0222E8F0: .word 0x00000FD8
+ thumb_func_end MOD80_0222E8D8
+
+ thumb_func_start MOD80_0222E8F4
+MOD80_0222E8F4: ; 0x0222E8F4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD80_0222EDE0
+ ldr r0, [r4, #4]
+ bl MOD80_0222EA04
+ add r0, r4, #0
+ bl MOD80_0222EB6C
+ add r0, r4, #0
+ bl MOD80_0222EC98
+ add r0, r4, #0
+ bl MOD80_0222EC24
+ add r0, r4, #0
+ bl MOD80_02236D84
+ add r0, r4, #0
+ bl MOD80_0222F20C
+ ldr r1, _0222E9B0 ; =0x00000449
+ mov r0, #4
+ mov r2, #1
+ bl FUN_0200433C
+ ldrh r0, [r4, #0x34]
+ cmp r0, #0
+ bne _0222E968
+ add r0, r4, #0
+ bl MOD80_0222EB40
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #1
+ strh r0, [r4, #0x34]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_020239CC
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD80_02235900
+ b _0222E9A2
+_0222E968:
+ ldr r0, _0222E9B4 ; =0x0000100C
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222E988
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ b _0222E99E
+_0222E988:
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+_0222E99E:
+ mov r0, #5
+ str r0, [r4, #0x2c]
+_0222E9A2:
+ ldr r0, _0222E9B4 ; =0x0000100C
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0222E9B0: .word 0x00000449
+_0222E9B4: .word 0x0000100C
+ thumb_func_end MOD80_0222E8F4
+
+ thumb_func_start MOD80_0222E9B8
+MOD80_0222E9B8: ; 0x0222E9B8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222E79C
+ bl FUN_02033EEC
+ ldr r1, [r4, #0x2c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _0222E9D4 ; =0x022379FC
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0222E9D4: .word 0x022379FC
+ thumb_func_end MOD80_0222E9B8
+
+ thumb_func_start MOD80_0222E9D8
+MOD80_0222E9D8: ; 0x0222E9D8
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02033ED0
+ add r0, r4, #0
+ bl MOD80_0222EC88
+ add r0, r4, #0
+ bl MOD80_0222EE08
+ add r0, r4, #0
+ bl MOD80_0222ED9C
+ ldr r0, [r4, #4]
+ bl MOD80_0222EB14
+ add r0, r4, #0
+ bl MOD80_0222E7B0
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_0222E9D8
+
+ thumb_func_start MOD80_0222EA04
+MOD80_0222EA04: ; 0x0222EA04
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _0222EAFC ; =0x02236EA4
+ add r3, sp, #0x8c
+ 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, _0222EB00 ; =0x02236F04
+ 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, #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, _0222EB04 ; =0x02236EE8
+ 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, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _0222EB08 ; =0x02236F20
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _0222EB0C ; =0x02236F3C
+ 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, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _0222EB10 ; =0x02236ECC
+ 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]
+ str r0, [r3]
+ add r0, r4, #0
+ mov r1, #5
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ nop
+_0222EAFC: .word 0x02236EA4
+_0222EB00: .word 0x02236F04
+_0222EB04: .word 0x02236EE8
+_0222EB08: .word 0x02236F20
+_0222EB0C: .word 0x02236F3C
+_0222EB10: .word 0x02236ECC
+ thumb_func_end MOD80_0222EA04
+
+ thumb_func_start MOD80_0222EB14
+MOD80_0222EB14: ; 0x0222EB14
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ 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 MOD80_0222EB14
+
+ thumb_func_start MOD80_0222EB40
+MOD80_0222EB40: ; 0x0222EB40
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222EB68 ; =0x00000D5C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ pop {r4, pc}
+ .align 2, 0
+_0222EB68: .word 0x00000D5C
+ thumb_func_end MOD80_0222EB40
+
+ thumb_func_start MOD80_0222EB6C
+MOD80_0222EB6C: ; 0x0222EB6C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0x3e
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x3e
+ bl FUN_02002EEC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x24]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0xe
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x1e
+ add r2, r4, #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, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x1d
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_020068C8
+ add r0, r5, #0
+ bl MOD80_0222F338
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD80_0222EB6C
+
+ thumb_func_start MOD80_0222EC24
+MOD80_0222EC24: ; 0x0222EC24
+ push {r4, lr}
+ sub sp, #0x30
+ mov r2, #0xcf
+ add r4, r0, #0
+ lsl r2, r2, #4
+ add r0, sp, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ mov r3, #1
+ bl MOD80_0222E5E8
+ add r0, r4, #0
+ add r0, #0xb4
+ ldrh r0, [r0]
+ lsl r1, r0, #2
+ ldr r0, _0222EC7C ; =0x02236E98
+ ldrh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xb4
+ ldrh r0, [r0]
+ lsl r1, r0, #2
+ ldr r0, _0222EC80 ; =0x02236E9A
+ ldrh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ ldr r1, _0222EC84 ; =0x00000D5C
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _0222EC84 ; =0x00000D5C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_02020130
+ add sp, #0x30
+ pop {r4, pc}
+ nop
+_0222EC7C: .word 0x02236E98
+_0222EC80: .word 0x02236E9A
+_0222EC84: .word 0x00000D5C
+ thumb_func_end MOD80_0222EC24
+
+ thumb_func_start MOD80_0222EC88
+MOD80_0222EC88: ; 0x0222EC88
+ ldr r1, _0222EC90 ; =0x00000D5C
+ ldr r3, _0222EC94 ; =FUN_0201FFC8
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_0222EC90: .word 0x00000D5C
+_0222EC94: .word FUN_0201FFC8
+ thumb_func_end MOD80_0222EC88
+
+ thumb_func_start MOD80_0222EC98
+MOD80_0222EC98: ; 0x0222EC98
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r3, #1
+ add r7, r0, #0
+ str r3, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ ldr r1, _0222ED88 ; =0x00000EB8
+ str r0, [sp, #0x10]
+ ldr r0, [r7, #4]
+ add r1, r7, r1
+ mov r2, #0
+ bl FUN_02019064
+ ldr r0, _0222ED88 ; =0x00000EB8
+ mov r1, #0
+ add r0, r7, r0
+ bl FUN_02019620
+ mov r0, #2
+ str r0, [sp]
+ mov r3, #0
+ mov r2, #0xb5
+ ldr r0, _0222ED8C ; =0x000F0400
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _0222ED88 ; =0x00000EB8
+ str r3, [sp, #0xc]
+ lsl r2, r2, #4
+ ldr r2, [r7, r2]
+ add r0, r7, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, _0222ED90 ; =0x00000ED8
+ mov r6, #0x61
+ mov r4, #6
+ add r5, r7, r0
+_0222ECF2:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r7, #4]
+ add r1, r5, #0
+ mov r2, #1
+ mov r3, #9
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x14]
+ add r6, #0x1e
+ add r0, r0, #1
+ add r4, r4, #5
+ add r5, #0x10
+ str r0, [sp, #0x14]
+ cmp r0, #3
+ blt _0222ECF2
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r3, #2
+ ldr r1, _0222ED94 ; =0x00000E98
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x60
+ str r0, [sp, #0x10]
+ ldr r0, [r7, #4]
+ add r1, r7, r1
+ mov r2, #0
+ bl FUN_02019064
+ ldr r0, _0222ED94 ; =0x00000E98
+ mov r1, #0xf
+ add r0, r7, r0
+ 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, #0x96
+ ldr r1, _0222ED98 ; =0x00000FB8
+ str r0, [sp, #0x10]
+ ldr r0, [r7, #4]
+ add r1, r7, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, _0222ED98 ; =0x00000FB8
+ mov r1, #0xf
+ add r0, r7, r0
+ bl FUN_02019620
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222ED88: .word 0x00000EB8
+_0222ED8C: .word 0x000F0400
+_0222ED90: .word 0x00000ED8
+_0222ED94: .word 0x00000E98
+_0222ED98: .word 0x00000FB8
+ thumb_func_end MOD80_0222EC98
+
+ thumb_func_start MOD80_0222ED9C
+MOD80_0222ED9C: ; 0x0222ED9C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, _0222EDD0 ; =0x00000FB8
+ add r0, r6, r0
+ bl FUN_02019178
+ ldr r0, _0222EDD4 ; =0x00000E98
+ add r0, r6, r0
+ bl FUN_02019178
+ ldr r0, _0222EDD8 ; =0x00000ED8
+ mov r4, #0
+ add r5, r6, r0
+_0222EDB6:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #3
+ blt _0222EDB6
+ ldr r0, _0222EDDC ; =0x00000EB8
+ add r0, r6, r0
+ bl FUN_02019178
+ pop {r4, r5, r6, pc}
+ nop
+_0222EDD0: .word 0x00000FB8
+_0222EDD4: .word 0x00000E98
+_0222EDD8: .word 0x00000ED8
+_0222EDDC: .word 0x00000EB8
+ thumb_func_end MOD80_0222ED9C
+
+ thumb_func_start MOD80_0222EDE0
+MOD80_0222EDE0: ; 0x0222EDE0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xb4
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _0222EE04 ; =0x00000B4C
+ str r0, [r4, r1]
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #0x27
+ bl FUN_0200A914
+ mov r1, #0xb5
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_0222EE04: .word 0x00000B4C
+ thumb_func_end MOD80_0222EDE0
+
+ thumb_func_start MOD80_0222EE08
+MOD80_0222EE08: ; 0x0222EE08
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222EE20 ; =0x00000B4C
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0xb5
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .align 2, 0
+_0222EE20: .word 0x00000B4C
+ thumb_func_end MOD80_0222EE08
+
+ thumb_func_start MOD80_0222EE24
+MOD80_0222EE24: ; 0x0222EE24
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222EE60 ; =0x00000FEC
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ beq _0222EE5A
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #0xb
+ bl MOD80_0222E7A8
+ mov r0, #1
+ str r0, [r4, #0x1c]
+ mov r0, #9
+ str r0, [r4, #0x2c]
+_0222EE5A:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_0222EE60: .word 0x00000FEC
+ thumb_func_end MOD80_0222EE24
+
+ thumb_func_start MOD80_0222EE64
+MOD80_0222EE64: ; 0x0222EE64
+ push {r3, lr}
+ mov r1, #0xa
+ mov r2, #2
+ bl MOD80_0222E6DC
+ mov r0, #3
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD80_0222EE64
+
+ thumb_func_start MOD80_0222EE74
+MOD80_0222EE74: ; 0x0222EE74
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ mov r0, #3
+ str r0, [r4, #0x2c]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD80_0222EE74
+
+ thumb_func_start MOD80_0222EE98
+MOD80_0222EE98: ; 0x0222EE98
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222EEA8
+ mov r0, #5
+ str r0, [r4, #0x2c]
+_0222EEA8:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_0222EE98
+
+ thumb_func_start MOD80_0222EEAC
+MOD80_0222EEAC: ; 0x0222EEAC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222EEBC
+ mov r0, #5
+ str r0, [r4, #0x2c]
+_0222EEBC:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_0222EEAC
+
+ thumb_func_start MOD80_0222EEC0
+MOD80_0222EEC0: ; 0x0222EEC0
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222EEF4 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #4
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0222F250
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #6
+ bl MOD80_0222E6DC
+ ldr r0, _0222EEF8 ; =0x00000D5C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200BC
+ add r0, r4, #0
+ bl MOD80_0222E868
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222EEF4: .word 0x00000F0F
+_0222EEF8: .word 0x00000D5C
+ thumb_func_end MOD80_0222EEC0
+
+ thumb_func_start MOD80_0222EEFC
+MOD80_0222EEFC: ; 0x0222EEFC
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222F084 ; =0x021C48B8
+ mov r2, #2
+ ldr r1, [r1, #0x48]
+ add r4, r0, #0
+ tst r2, r1
+ beq _0222EF36
+ bl MOD80_0222E7BC
+ add r2, r0, #0
+ ldr r0, _0222F088 ; =0x00000F0F
+ mov r1, #7
+ str r0, [sp]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD80_0222F2A8
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0xc
+ bl MOD80_0222E6DC
+ ldr r0, _0222F08C ; =0x00000D5C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200BC
+ b _0222F07C
+_0222EF36:
+ mov r2, #1
+ tst r2, r1
+ beq _0222F002
+ add r1, r4, #0
+ add r1, #0xb4
+ ldrh r1, [r1]
+ cmp r1, #0
+ beq _0222EF50
+ cmp r1, #1
+ beq _0222EFBE
+ cmp r1, #2
+ beq _0222EFD2
+ b _0222F07C
+_0222EF50:
+ ldrh r1, [r4, #0x36]
+ cmp r1, #0
+ bne _0222EF6A
+ mov r1, #5
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #9
+ str r0, [r4, #0x2c]
+ ldr r0, _0222F090 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222F07C
+_0222EF6A:
+ ldrh r1, [r4, #0x3a]
+ cmp r1, #0
+ bne _0222EF8C
+ mov r1, #7
+ mov r2, #0xb
+ bl MOD80_0222E7A8
+ mov r0, #2
+ str r0, [r4, #0x1c]
+ mov r0, #9
+ str r0, [r4, #0x2c]
+ ldr r0, _0222F094 ; =0x00000708
+ strh r0, [r4, #0x3a]
+ ldr r0, _0222F090 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222F07C
+_0222EF8C:
+ ldr r0, _0222F08C ; =0x00000D5C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200BC
+ ldr r0, _0222F088 ; =0x00000F0F
+ mov r1, #0x22
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0222F250
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r2, #5
+ bl MOD80_0222E6DC
+ ldr r0, _0222F098 ; =0x000005F3
+ bl FUN_020054C8
+ ldr r0, _0222F09C ; =0x00000FDC
+ mov r1, #0
+ str r1, [r4, r0]
+ b _0222F07C
+_0222EFBE:
+ mov r1, #4
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r0, #9
+ str r0, [r4, #0x2c]
+ ldr r0, _0222F090 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222F07C
+_0222EFD2:
+ bl MOD80_0222E7BC
+ add r2, r0, #0
+ ldr r0, _0222F088 ; =0x00000F0F
+ mov r1, #7
+ str r0, [sp]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD80_0222F2A8
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0xc
+ bl MOD80_0222E6DC
+ ldr r0, _0222F08C ; =0x00000D5C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200BC
+ ldr r0, _0222F090 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222F07C
+_0222F002:
+ mov r0, #0x40
+ tst r0, r1
+ beq _0222F040
+ add r0, r4, #0
+ add r0, #0xb4
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _0222F07C
+ add r0, r4, #0
+ add r0, #0xb4
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xb4
+ strh r1, [r0]
+ ldr r0, _0222F090 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0xb4
+ ldrh r0, [r0]
+ ldr r1, _0222F0A0 ; =0x02236E98
+ ldr r2, _0222F0A4 ; =0x02236E9A
+ lsl r3, r0, #2
+ ldr r0, _0222F08C ; =0x00000D5C
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ ldr r0, [r4, r0]
+ bl MOD80_0222E6E4
+ b _0222F07C
+_0222F040:
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222F07C
+ add r0, r4, #0
+ add r0, #0xb4
+ ldrh r0, [r0]
+ cmp r0, #2
+ bhs _0222F07C
+ add r0, r4, #0
+ add r0, #0xb4
+ ldrh r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xb4
+ strh r1, [r0]
+ ldr r0, _0222F090 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0xb4
+ ldrh r0, [r0]
+ ldr r1, _0222F0A0 ; =0x02236E98
+ ldr r2, _0222F0A4 ; =0x02236E9A
+ lsl r3, r0, #2
+ ldr r0, _0222F08C ; =0x00000D5C
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ ldr r0, [r4, r0]
+ bl MOD80_0222E6E4
+_0222F07C:
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222F084: .word 0x021C48B8
+_0222F088: .word 0x00000F0F
+_0222F08C: .word 0x00000D5C
+_0222F090: .word 0x000005DC
+_0222F094: .word 0x00000708
+_0222F098: .word 0x000005F3
+_0222F09C: .word 0x00000FDC
+_0222F0A0: .word 0x02236E98
+_0222F0A4: .word 0x02236E9A
+ thumb_func_end MOD80_0222EEFC
+
+ thumb_func_start MOD80_0222F0A8
+MOD80_0222F0A8: ; 0x0222F0A8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_020239CC
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD80_02235A10
+ mov r0, #8
+ str r0, [r4, #0x2c]
+ ldr r0, _0222F0CC ; =0x00000FEC
+ mov r1, #0
+ strh r1, [r4, r0]
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_0222F0CC: .word 0x00000FEC
+ thumb_func_end MOD80_0222F0A8
+
+ thumb_func_start MOD80_0222F0D0
+MOD80_0222F0D0: ; 0x0222F0D0
+ ldr r1, _0222F0E0 ; =0x00000FEC
+ ldrh r1, [r0, r1]
+ cmp r1, #0
+ beq _0222F0DC
+ mov r1, #9
+ str r1, [r0, #0x2c]
+_0222F0DC:
+ mov r0, #3
+ bx lr
+ .align 2, 0
+_0222F0E0: .word 0x00000FEC
+ thumb_func_end MOD80_0222F0D0
+
+ thumb_func_start MOD80_0222F0E4
+MOD80_0222F0E4: ; 0x0222F0E4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _0222F10A
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ b _0222F122
+_0222F10A:
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+_0222F122:
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #4
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD80_0222F0E4
+
+ thumb_func_start MOD80_0222F12C
+MOD80_0222F12C: ; 0x0222F12C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, #4]
+ add r2, #0xf5
+ bl MOD80_0222E6A8
+ ldr r1, _0222F148 ; =0x00000FCC
+ str r0, [r4, r1]
+ mov r0, #0xd
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F148: .word 0x00000FCC
+ thumb_func_end MOD80_0222F12C
+
+ thumb_func_start MOD80_0222F14C
+MOD80_0222F14C: ; 0x0222F14C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222F1AC ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F1A8
+ sub r1, r1, #1
+ cmp r0, r1
+ ldr r0, _0222F1B0 ; =0x00000FB8
+ bne _0222F18A
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ ldr r0, _0222F1B0 ; =0x00000FB8
+ add r0, r4, r0
+ bl FUN_02019570
+ ldr r0, _0222F1B4 ; =0x00000D5C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200BC
+ mov r0, #5
+ str r0, [r4, #0x2c]
+ b _0222F1A8
+_0222F18A:
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ ldr r0, _0222F1B0 ; =0x00000FB8
+ add r0, r4, r0
+ bl FUN_02019570
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #7
+ str r0, [r4, #0x2c]
+_0222F1A8:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F1AC: .word 0x00000FCC
+_0222F1B0: .word 0x00000FB8
+_0222F1B4: .word 0x00000D5C
+ thumb_func_end MOD80_0222F14C
+
+ thumb_func_start MOD80_0222F1B8
+MOD80_0222F1B8: ; 0x0222F1B8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0222F1D2
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_0222F1D2:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_0222F1B8
+
+ thumb_func_start MOD80_0222F1D8
+MOD80_0222F1D8: ; 0x0222F1D8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0222F204
+ ldr r0, _0222F208 ; =0x00000FDC
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0x2d
+ ble _0222F204
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_0222F204:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F208: .word 0x00000FDC
+ thumb_func_end MOD80_0222F1D8
+
+ thumb_func_start MOD80_0222F20C
+MOD80_0222F20C: ; 0x0222F20C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldrh r1, [r7, #0x36]
+ mov r0, #0xc
+ ldr r2, _0222F240 ; =0x02236EB4
+ mul r0, r1
+ add r4, r2, r0
+ ldr r0, _0222F244 ; =0x00000ED8
+ mov r6, #0
+ add r5, r7, r0
+_0222F220:
+ ldr r1, _0222F248 ; =0x00000B34
+ ldr r2, [r4]
+ ldr r1, [r7, r1]
+ ldr r3, _0222F24C ; =0x00000F0F
+ add r0, r5, #0
+ bl MOD80_0222F300
+ add r0, r5, #0
+ bl FUN_020191D0
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #3
+ blt _0222F220
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F240: .word 0x02236EB4
+_0222F244: .word 0x00000ED8
+_0222F248: .word 0x00000B34
+_0222F24C: .word 0x00000F0F
+ thumb_func_end MOD80_0222F20C
+
+ thumb_func_start MOD80_0222F250
+MOD80_0222F250: ; 0x0222F250
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldr r2, _0222F29C ; =0x00000B34
+ add r5, r0, #0
+ ldr r0, [r5, r2]
+ add r2, #0x18
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ ldr r0, _0222F2A0 ; =0x00000E98
+ mov r1, #0xf
+ add r0, r5, r0
+ bl FUN_02019620
+ ldr r0, _0222F2A0 ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ ldr r0, _0222F2A0 ; =0x00000E98
+ ldr r2, _0222F2A4 ; =0x00000B4C
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222F29C: .word 0x00000B34
+_0222F2A0: .word 0x00000E98
+_0222F2A4: .word 0x00000B4C
+ thumb_func_end MOD80_0222F250
+
+ thumb_func_start MOD80_0222F2A8
+MOD80_0222F2A8: ; 0x0222F2A8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldr r2, _0222F2F4 ; =0x00000B34
+ add r5, r0, #0
+ ldr r0, [r5, r2]
+ add r2, #0x18
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ ldr r0, _0222F2F8 ; =0x00000FB8
+ mov r1, #0xf
+ add r0, r5, r0
+ bl FUN_02019620
+ ldr r0, _0222F2F8 ; =0x00000FB8
+ mov r1, #0
+ add r0, r5, r0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ ldr r0, _0222F2F8 ; =0x00000FB8
+ ldr r2, _0222F2FC ; =0x00000B4C
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222F2F4: .word 0x00000B34
+_0222F2F8: .word 0x00000FB8
+_0222F2FC: .word 0x00000B4C
+ thumb_func_end MOD80_0222F2A8
+
+ thumb_func_start MOD80_0222F300
+MOD80_0222F300: ; 0x0222F300
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r3, #0
+ add r1, r2, #0
+ bl FUN_0200A914
+ lsl r1, r4, #0x18
+ add r6, r0, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r6, #0
+ str r3, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD80_0222F300
+
+ thumb_func_start MOD80_0222F338
+MOD80_0222F338: ; 0x0222F338
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, [r0, #4]
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #5
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x2a
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0xf
+ 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, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x1f
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r4, pc}
+ thumb_func_end MOD80_0222F338
+
+ thumb_func_start MOD80_0222F394
+MOD80_0222F394: ; 0x0222F394
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD80_0222F7F0
+ ldr r0, [r4, #4]
+ bl MOD80_0222F494
+ add r0, r4, #0
+ bl MOD80_0222F5A8
+ add r0, r4, #0
+ bl MOD80_0222F6EC
+ add r0, r4, #0
+ bl MOD80_0222F690
+ add r0, r4, #0
+ add r0, #0xd4
+ bl FUN_020690E4
+ str r0, [sp]
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r2, _0222F448 ; =0x00000B34
+ add r0, r4, r0
+ str r0, [sp, #4]
+ add r1, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, r2, #4
+ ldr r3, _0222F44C ; =0x00000F08
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r3, r4, r3
+ bl MOD80_0222FBC0
+ ldr r0, _0222F448 ; =0x00000B34
+ ldr r1, _0222F450 ; =0x00000F58
+ mov r2, #0x1e
+ lsl r2, r2, #4
+ ldr r0, [r4, r0]
+ add r1, r4, r1
+ add r2, r4, r2
+ bl MOD80_0222FD28
+ ldr r1, _0222F454 ; =0x000001C7
+ ldrsb r0, [r4, r1]
+ add r1, r1, #1
+ ldrsb r1, [r4, r1]
+ bl MOD80_02234668
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldrsh r2, [r4, r1]
+ ldr r3, _0222F458 ; =0x00000F78
+ add r1, r1, #2
+ str r2, [sp]
+ ldrsb r1, [r4, r1]
+ ldr r2, _0222F448 ; =0x00000B34
+ add r3, r4, r3
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r1, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, r2, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ bl MOD80_02234048
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD80_0222FD88
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0222F448: .word 0x00000B34
+_0222F44C: .word 0x00000F08
+_0222F450: .word 0x00000F58
+_0222F454: .word 0x000001C7
+_0222F458: .word 0x00000F78
+ thumb_func_end MOD80_0222F394
+
+ thumb_func_start MOD80_0222F45C
+MOD80_0222F45C: ; 0x0222F45C
+ push {r3, lr}
+ ldr r1, [r0, #0x2c]
+ lsl r2, r1, #2
+ ldr r1, _0222F46C ; =0x02237A40
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_0222F46C: .word 0x02237A40
+ thumb_func_end MOD80_0222F45C
+
+ thumb_func_start MOD80_0222F470
+MOD80_0222F470: ; 0x0222F470
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222F6DC
+ add r0, r4, #0
+ bl MOD80_0222F830
+ add r0, r4, #0
+ bl MOD80_0222F7B8
+ ldr r0, [r4, #4]
+ bl MOD80_0222F57C
+ add r0, r4, #0
+ bl MOD80_0222E7B0
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD80_0222F470
+
+ thumb_func_start MOD80_0222F494
+MOD80_0222F494: ; 0x0222F494
+ push {r4, r5, lr}
+ sub sp, #0x8c
+ ldr r5, _0222F568 ; =0x02236FC8
+ add r4, r0, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x70
+ 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, _0222F56C ; =0x02236FAC
+ 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, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _0222F570 ; =0x02236F90
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _0222F574 ; =0x02236F74
+ 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, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _0222F578 ; =0x02236F58
+ 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, #5
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ add sp, #0x8c
+ pop {r4, r5, pc}
+ nop
+_0222F568: .word 0x02236FC8
+_0222F56C: .word 0x02236FAC
+_0222F570: .word 0x02236F90
+_0222F574: .word 0x02236F74
+_0222F578: .word 0x02236F58
+ thumb_func_end MOD80_0222F494
+
+ thumb_func_start MOD80_0222F57C
+MOD80_0222F57C: ; 0x0222F57C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ 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 MOD80_0222F57C
+
+ thumb_func_start MOD80_0222F5A8
+MOD80_0222F5A8: ; 0x0222F5A8
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0x3e
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #7
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #5
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x3e
+ bl FUN_02002EEC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x24]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x11
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x19
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x2a
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0xf
+ 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, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x1f
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD80_0222F5A8
+
+ thumb_func_start MOD80_0222F690
+MOD80_0222F690: ; 0x0222F690
+ push {r4, lr}
+ sub sp, #0x30
+ mov r2, #0xcf
+ add r4, r0, #0
+ lsl r2, r2, #4
+ add r0, sp, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ mov r3, #1
+ bl MOD80_0222E5E8
+ mov r0, #0x32
+ lsl r0, r0, #0xe
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ ldr r1, _0222F6D8 ; =0x00000E6C
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _0222F6D8 ; =0x00000E6C
+ mov r1, #0x25
+ ldr r0, [r4, r0]
+ bl FUN_02020130
+ bl FUN_02033E74
+ add sp, #0x30
+ pop {r4, pc}
+ nop
+_0222F6D8: .word 0x00000E6C
+ thumb_func_end MOD80_0222F690
+
+ thumb_func_start MOD80_0222F6DC
+MOD80_0222F6DC: ; 0x0222F6DC
+ ldr r1, _0222F6E4 ; =0x00000E6C
+ ldr r3, _0222F6E8 ; =FUN_0201FFC8
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_0222F6E4: .word 0x00000E6C
+_0222F6E8: .word FUN_0201FFC8
+ thumb_func_end MOD80_0222F6DC
+
+ thumb_func_start MOD80_0222F6EC
+MOD80_0222F6EC: ; 0x0222F6EC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x14]
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r3, #2
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r2, _0222F7A8 ; =0x00000E98
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0, #4]
+ add r1, r1, r2
+ mov r2, #0
+ bl FUN_02019064
+ ldr r1, _0222F7A8 ; =0x00000E98
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x5e
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r2, _0222F7AC ; =0x00000ED8
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0, #4]
+ add r1, r1, r2
+ mov r2, #0
+ mov r3, #0x15
+ bl FUN_02019064
+ ldr r1, _0222F7B0 ; =0x00000F08
+ ldr r0, [sp, #0x14]
+ ldr r4, _0222F7B4 ; =0x02236FE4
+ mov r6, #0x86
+ mov r7, #0
+ add r5, r0, r1
+_0222F754:
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ mov r2, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r3, [r4]
+ ldr r0, [r0, #4]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0xc]
+ add r7, r7, #1
+ mul r0, r1
+ add r6, r6, r0
+ add r4, #0x10
+ add r5, #0x10
+ cmp r7, #0xa
+ blt _0222F754
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F7A8: .word 0x00000E98
+_0222F7AC: .word 0x00000ED8
+_0222F7B0: .word 0x00000F08
+_0222F7B4: .word 0x02236FE4
+ thumb_func_end MOD80_0222F6EC
+
+ thumb_func_start MOD80_0222F7B8
+MOD80_0222F7B8: ; 0x0222F7B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _0222F7E4 ; =0x00000E98
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _0222F7E8 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _0222F7EC ; =0x00000F08
+ mov r4, #0
+ add r5, r5, r0
+_0222F7D2:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0xa
+ blt _0222F7D2
+ pop {r3, r4, r5, pc}
+ nop
+_0222F7E4: .word 0x00000E98
+_0222F7E8: .word 0x00000ED8
+_0222F7EC: .word 0x00000F08
+ thumb_func_end MOD80_0222F7B8
+
+ thumb_func_start MOD80_0222F7F0
+MOD80_0222F7F0: ; 0x0222F7F0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0xb4
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _0222F82C ; =0x00000B4C
+ str r0, [r5, r1]
+ sub r1, #0x18
+ ldr r0, [r5, r1]
+ mov r1, #0x27
+ bl FUN_0200A914
+ mov r1, #0xb5
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r4, #0
+ mov r7, #0x14
+ add r6, r1, #4
+_0222F816:
+ add r0, r7, #0
+ mov r1, #0x3e
+ bl FUN_020219F4
+ str r0, [r5, r6]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _0222F816
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F82C: .word 0x00000B4C
+ thumb_func_end MOD80_0222F7F0
+
+ thumb_func_start MOD80_0222F830
+MOD80_0222F830: ; 0x0222F830
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r6, _0222F85C ; =0x00000B54
+ mov r4, #0
+ add r5, r7, #0
+_0222F83A:
+ ldr r0, [r5, r6]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _0222F83A
+ ldr r0, _0222F860 ; =0x00000B4C
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ mov r0, #0xb5
+ lsl r0, r0, #4
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F85C: .word 0x00000B54
+_0222F860: .word 0x00000B4C
+ thumb_func_end MOD80_0222F830
+
+ thumb_func_start MOD80_0222F864
+MOD80_0222F864: ; 0x0222F864
+ mov r1, #1
+ str r1, [r0, #0x2c]
+ mov r0, #3
+ bx lr
+ thumb_func_end MOD80_0222F864
+
+ thumb_func_start MOD80_0222F86C
+MOD80_0222F86C: ; 0x0222F86C
+ push {r4, lr}
+ sub sp, #8
+ ldr r1, _0222F8C0 ; =0x021C48B8
+ mov r2, #1
+ ldr r3, [r1, #0x48]
+ add r4, r0, #0
+ add r1, r3, #0
+ tst r1, r2
+ beq _0222F8A2
+ ldr r1, _0222F8C4 ; =0x00000F0F
+ mov r3, #0
+ str r1, [sp]
+ add r1, r4, #0
+ add r1, #0xd4
+ str r1, [sp, #4]
+ mov r1, #5
+ bl MOD80_0222FB3C
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #7
+ bl MOD80_0222E6DC
+ ldr r0, _0222F8C8 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222F8B8
+_0222F8A2:
+ mov r1, #2
+ tst r3, r1
+ beq _0222F8B8
+ str r1, [r4, #0x2c]
+ add r1, r2, #0
+ mov r2, #0
+ bl MOD80_0222E7A8
+ ldr r0, _0222F8C8 ; =0x000005DC
+ bl FUN_020054C8
+_0222F8B8:
+ mov r0, #3
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0222F8C0: .word 0x021C48B8
+_0222F8C4: .word 0x00000F0F
+_0222F8C8: .word 0x000005DC
+ thumb_func_end MOD80_0222F86C
+
+ thumb_func_start MOD80_0222F8CC
+MOD80_0222F8CC: ; 0x0222F8CC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #6
+ mov r1, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #4
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD80_0222F8CC
+
+ thumb_func_start MOD80_0222F8F4
+MOD80_0222F8F4: ; 0x0222F8F4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _0222F910 ; =0x0000014E
+ mov r1, #0xf
+ bl MOD80_0222E6A8
+ ldr r1, _0222F914 ; =0x00000FCC
+ str r0, [r4, r1]
+ mov r0, #6
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_0222F910: .word 0x0000014E
+_0222F914: .word 0x00000FCC
+ thumb_func_end MOD80_0222F8F4
+
+ thumb_func_start MOD80_0222F918
+MOD80_0222F918: ; 0x0222F918
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222F960 ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F95C
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _0222F942
+ ldr r0, _0222F964 ; =0x00000E98
+ mov r1, #0
+ add r0, r4, r0
+ str r1, [r4, #0x2c]
+ bl FUN_0200D0E0
+ b _0222F956
+_0222F942:
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ ldr r0, _0222F968 ; =0x0000100C
+ mov r1, #1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #8
+ bl MOD80_0222E7A8
+_0222F956:
+ add r0, r4, #0
+ bl MOD80_0222FE18
+_0222F95C:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F960: .word 0x00000FCC
+_0222F964: .word 0x00000E98
+_0222F968: .word 0x0000100C
+ thumb_func_end MOD80_0222F918
+
+ thumb_func_start MOD80_0222F96C
+MOD80_0222F96C: ; 0x0222F96C
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0
+ add r2, sp, #8
+ strb r0, [r2, #8]
+ mov r0, #1
+ strb r0, [r2, #9]
+ mov r0, #2
+ strb r0, [r2, #0xa]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0xf
+ bic r3, r1
+ strb r3, [r2, #0xb]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0x30
+ bic r3, r1
+ strb r3, [r2, #0xb]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0xc0
+ bic r3, r1
+ mov r1, #0x3e
+ strb r3, [r2, #0xb]
+ bl FUN_02012838
+ ldr r1, _0222F9FC ; =0x00000FC8
+ mov r2, #0x36
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ ldr r1, _0222FA00 ; =0x00000B34
+ mov r3, #1
+ ldr r1, [r4, r1]
+ bl FUN_02012880
+ ldr r0, _0222F9FC ; =0x00000FC8
+ ldr r1, _0222FA00 ; =0x00000B34
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x37
+ mov r3, #2
+ bl FUN_02012880
+ ldr r0, _0222F9FC ; =0x00000FC8
+ mov r2, #0x1f
+ ldr r1, [r4, r0]
+ sub r0, #0xf0
+ str r1, [sp, #8]
+ add r0, r4, r0
+ mov r1, #0
+ mov r3, #0xb
+ str r0, [sp, #0xc]
+ bl FUN_0200CCA4
+ mov r0, #0x3e
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #8
+ mov r1, #9
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r1, #0xfd
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #8
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_0222F9FC: .word 0x00000FC8
+_0222FA00: .word 0x00000B34
+ thumb_func_end MOD80_0222F96C
+
+ thumb_func_start MOD80_0222FA04
+MOD80_0222FA04: ; 0x0222FA04
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02001C78
+ cmp r0, #1
+ beq _0222FA26
+ cmp r0, #2
+ beq _0222FAA4
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FAA4
+ b _0222FAD6
+_0222FA26:
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0222FADC ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _0222FAE0 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ add r4, r5, #0
+ add r4, #0xd4
+ add r0, r4, #0
+ bl MOD80_022331F8
+ cmp r0, #0
+ beq _0222FA80
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ cmp r0, #6
+ bne _0222FA80
+ ldr r0, _0222FAE4 ; =0x00000F0F
+ mov r1, #0x24
+ str r0, [sp]
+ add r0, r5, #0
+ mov r2, #1
+ mov r3, #0
+ str r4, [sp, #4]
+ bl MOD80_0222FB3C
+ add r0, r5, #0
+ mov r1, #3
+ mov r2, #1
+ bl MOD80_0222E6DC
+ add sp, #8
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+_0222FA80:
+ ldr r0, _0222FAE4 ; =0x00000F0F
+ mov r1, #6
+ str r0, [sp]
+ add r0, r5, #0
+ mov r2, #1
+ mov r3, #0
+ str r4, [sp, #4]
+ bl MOD80_0222FB3C
+ add r0, r5, #0
+ mov r1, #3
+ mov r2, #5
+ bl MOD80_0222E6DC
+ add r0, r5, #0
+ bl MOD80_0222FE18
+ b _0222FAD6
+_0222FAA4:
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0222FADC ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _0222FAE0 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ mov r0, #2
+ str r0, [r5, #0x2c]
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ add r0, r5, #0
+ bl MOD80_0222FE18
+_0222FAD6:
+ mov r0, #3
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222FADC: .word 0x00000FC8
+_0222FAE0: .word 0x00000ED8
+_0222FAE4: .word 0x00000F0F
+ thumb_func_end MOD80_0222FA04
+
+ thumb_func_start MOD80_0222FAE8
+MOD80_0222FAE8: ; 0x0222FAE8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0222FB02
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_0222FB02:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_0222FAE8
+
+ thumb_func_start MOD80_0222FB08
+MOD80_0222FB08: ; 0x0222FB08
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0222FB34
+ ldr r0, _0222FB38 ; =0x00000FDC
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0x2d
+ ble _0222FB34
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_0222FB34:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222FB38: .word 0x00000FDC
+ thumb_func_end MOD80_0222FB08
+
+ thumb_func_start MOD80_0222FB3C
+MOD80_0222FB3C: ; 0x0222FB3C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [sp, #0x24]
+ add r6, r1, #0
+ add r4, r2, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0xb3
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AC60
+ ldr r0, _0222FBB4 ; =0x00000B34
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0xb3
+ add r6, r0, #0
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, #0x1c
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ ldr r0, _0222FBB8 ; =0x00000E98
+ mov r1, #0xf
+ add r0, r5, r0
+ bl FUN_02019620
+ ldr r0, _0222FBB8 ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ ldr r0, _0222FBB8 ; =0x00000E98
+ ldr r2, _0222FBBC ; =0x00000B4C
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222FBB4: .word 0x00000B34
+_0222FBB8: .word 0x00000E98
+_0222FBBC: .word 0x00000B4C
+ thumb_func_end MOD80_0222FB3C
+
+ thumb_func_start MOD80_0222FBC0
+MOD80_0222FBC0: ; 0x0222FBC0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ str r1, [sp, #8]
+ mov r0, #0x16
+ mov r1, #0x3e
+ add r7, r2, #0
+ add r6, r3, #0
+ ldr r4, [sp, #0x4c]
+ bl FUN_020219F4
+ str r0, [sp, #0x1c]
+ mov r0, #0x12
+ mov r1, #0x3e
+ bl FUN_020219F4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x48]
+ ldr r2, [sp, #0x1c]
+ mov r1, #0x76
+ bl FUN_020672BC
+ mov r2, #0
+ ldrsh r0, [r4, r2]
+ mov r1, #6
+ str r0, [sp, #0x10]
+ mov r0, #2
+ ldrsb r0, [r4, r0]
+ str r0, [sp, #0x14]
+ mov r0, #3
+ ldrsb r4, [r4, r0]
+ ldr r0, [sp, #0x48]
+ bl FUN_020672BC
+ str r0, [sp, #0x30]
+ add r0, r5, #0
+ mov r1, #0x46
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ ldr r2, _0222FD1C ; =0x022373C0
+ lsl r0, r0, #2
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ ldr r1, [r2, r1]
+ bl FUN_0200A914
+ str r0, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ mov r1, #3
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add r0, r7, #0
+ add r1, r5, #0
+ mov r2, #0x66
+ mov r3, #0x3e
+ bl FUN_0200A9C4
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x10]
+ bl FUN_0200A914
+ ldr r1, [sp, #0x30]
+ str r0, [sp, #0x2c]
+ lsl r1, r1, #0x10
+ ldr r0, [sp, #0x18]
+ lsr r1, r1, #0x10
+ mov r2, #0x3e
+ bl FUN_0206E768
+ mov r4, #0
+ add r5, r6, #0
+ add r7, r4, #0
+_0222FC64:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02019620
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #5
+ blt _0222FC64
+ mov r2, #0
+ ldr r0, _0222FD20 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r1, [sp, #0x1c]
+ add r0, r6, #0
+ add r3, r2, #0
+ bl MOD80_02236D50
+ ldr r0, [sp, #0x14]
+ cmp r0, #3
+ beq _0222FCA2
+ mov r3, #0
+ ldr r1, _0222FD24 ; =0x02237A34
+ ldr r0, [sp, #0xc]
+ str r3, [sp]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x46
+ bl MOD80_02236D50
+_0222FCA2:
+ mov r2, #0
+ ldr r0, _0222FD20 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ add r0, r6, #0
+ ldr r1, [sp, #0x2c]
+ add r0, #0x10
+ add r3, r2, #0
+ bl MOD80_02236D50
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0222FD20 ; =0x000F0200
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ ldr r1, [sp, #0x24]
+ add r0, #0x20
+ add r3, r2, #0
+ bl MOD80_02236D50
+ mov r2, #0
+ ldr r0, _0222FD20 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ add r0, r6, #0
+ ldr r1, [sp, #0x20]
+ add r0, #0x30
+ add r3, r2, #0
+ bl MOD80_02236D50
+ mov r2, #0
+ ldr r0, _0222FD20 ; =0x000F0200
+ str r2, [sp]
+ add r6, #0x40
+ str r0, [sp, #4]
+ ldr r1, [sp, #0x18]
+ add r0, r6, #0
+ add r3, r2, #0
+ bl MOD80_02236D50
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x24]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x28]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x2c]
+ bl FUN_02021A20
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FD1C: .word 0x022373C0
+_0222FD20: .word 0x000F0200
+_0222FD24: .word 0x02237A34
+ thumb_func_end MOD80_0222FBC0
+
+ thumb_func_start MOD80_0222FD28
+MOD80_0222FD28: ; 0x0222FD28
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #0x10
+ mov r1, #0x3e
+ add r7, r2, #0
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0x30
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_02021E28
+ mov r2, #0
+ ldr r0, _0222FD84 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r2, #0
+ bl MOD80_02236D50
+ mov r2, #0
+ ldr r0, _0222FD84 ; =0x000F0200
+ str r2, [sp]
+ add r5, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD80_02236D50
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FD84: .word 0x000F0200
+ thumb_func_end MOD80_0222FD28
+
+ thumb_func_start MOD80_0222FD88
+MOD80_0222FD88: ; 0x0222FD88
+ push {r4, r5, r6, lr}
+ sub sp, #0x30
+ mov r1, #0x32
+ add r5, r0, #0
+ mov r0, #0x3e
+ lsl r1, r1, #6
+ bl FUN_02016998
+ add r4, r0, #0
+ add r0, sp, #0x20
+ add r1, r5, #0
+ mov r2, #2
+ bl FUN_02068B68
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ add r6, r0, #0
+ add r0, r5, #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 r6, [sp, #0x10]
+ str r3, [sp, #0x14]
+ mov r1, #2
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ add r1, sp, #0x20
+ ldrh r0, [r1]
+ ldrh r1, [r1, #2]
+ mov r2, #0x3e
+ bl FUN_020124B4
+ mov r1, #0x32
+ add r0, r4, #0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r1, #0x4a
+ mov r2, #0x32
+ add r0, r4, #0
+ lsl r1, r1, #8
+ lsl r2, r2, #6
+ bl GX_LoadOBJ
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3e
+ mov r3, #0x1a
+ str r0, [sp, #4]
+ add r1, sp, #0x20
+ ldrh r0, [r1]
+ ldrh r1, [r1, #4]
+ mov r2, #1
+ lsl r3, r3, #4
+ bl FUN_02006930
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x30
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD80_0222FD88
+
+ thumb_func_start MOD80_0222FE18
+MOD80_0222FE18: ; 0x0222FE18
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r1, _0222FE54 ; =0x000001C7
+ add r4, r0, #0
+ ldrsb r0, [r4, r1]
+ add r1, r1, #1
+ ldrsb r1, [r4, r1]
+ bl MOD80_02234668
+ mov r1, #0x71
+ lsl r1, r1, #2
+ ldrsh r2, [r4, r1]
+ add r1, r1, #2
+ ldr r3, _0222FE58 ; =0x00000F78
+ str r2, [sp]
+ ldrsb r1, [r4, r1]
+ ldr r2, _0222FE5C ; =0x00000B34
+ add r3, r4, r3
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r1, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, r2, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ bl MOD80_02234048
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0222FE54: .word 0x000001C7
+_0222FE58: .word 0x00000F78
+_0222FE5C: .word 0x00000B34
+ thumb_func_end MOD80_0222FE18
+
+ thumb_func_start MOD80_0222FE60
+MOD80_0222FE60: ; 0x0222FE60
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD80_0223022C
+ ldr r0, [r4, #4]
+ bl MOD80_0222FF6C
+ add r0, r4, #0
+ bl MOD80_02230054
+ add r0, r4, #0
+ bl MOD80_02230128
+ add r0, r4, #0
+ bl MOD80_022300CC
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ add r5, r1, #0
+ mul r5, r0
+ add r0, #0xd4
+ add r0, r4, r0
+ add r0, r0, r5
+ bl FUN_020690E4
+ str r0, [sp]
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r2, _0222FF24 ; =0x00000B34
+ add r0, r0, r5
+ str r0, [sp, #4]
+ add r1, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, r2, #4
+ ldr r3, _0222FF28 ; =0x00000F08
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r3, r4, r3
+ bl MOD80_0222FBC0
+ add r3, r4, #0
+ add r3, #0xc4
+ ldr r0, _0222FF24 ; =0x00000B34
+ mov r2, #0xc1
+ ldr r5, [r3]
+ mov r3, #0x49
+ ldr r1, _0222FF2C ; =0x00000F58
+ lsl r2, r2, #2
+ lsl r3, r3, #2
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ mul r3, r5
+ add r1, r4, r1
+ add r2, r2, r3
+ bl MOD80_0222FD28
+ add r0, r4, #0
+ mov r1, #0x7e
+ add r0, #0xc4
+ lsl r1, r1, #2
+ add r2, r4, r1
+ ldr r0, [r0]
+ sub r1, #0xd4
+ mul r1, r0
+ add r0, r2, r1
+ bl MOD80_0222FD88
+ ldr r0, _0222FF24 ; =0x00000B34
+ ldr r1, _0222FF30 ; =0x00000F78
+ ldr r0, [r4, r0]
+ add r1, r4, r1
+ bl MOD80_02230550
+ add r0, r4, #0
+ bl MOD80_0223043C
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #2
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0222FF24: .word 0x00000B34
+_0222FF28: .word 0x00000F08
+_0222FF2C: .word 0x00000F58
+_0222FF30: .word 0x00000F78
+ thumb_func_end MOD80_0222FE60
+
+ thumb_func_start MOD80_0222FF34
+MOD80_0222FF34: ; 0x0222FF34
+ push {r3, lr}
+ ldr r1, [r0, #0x2c]
+ lsl r2, r1, #2
+ ldr r1, _0222FF44 ; =0x02237A64
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_0222FF44: .word 0x02237A64
+ thumb_func_end MOD80_0222FF34
+
+ thumb_func_start MOD80_0222FF48
+MOD80_0222FF48: ; 0x0222FF48
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_02230118
+ add r0, r4, #0
+ bl MOD80_022302C4
+ add r0, r4, #0
+ bl MOD80_022301F4
+ ldr r0, [r4, #4]
+ bl MOD80_02230030
+ add r0, r4, #0
+ bl MOD80_0222E7B0
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD80_0222FF48
+
+ thumb_func_start MOD80_0222FF6C
+MOD80_0222FF6C: ; 0x0222FF6C
+ push {r3, r4, r5, lr}
+ sub sp, #0x70
+ ldr r5, _02230020 ; =0x022370D8
+ add r4, r0, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x54
+ 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, _02230024 ; =0x022370BC
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _02230028 ; =0x022370A0
+ 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, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _0223002C ; =0x02237084
+ 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, #5
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ add sp, #0x70
+ pop {r3, r4, r5, pc}
+ nop
+_02230020: .word 0x022370D8
+_02230024: .word 0x022370BC
+_02230028: .word 0x022370A0
+_0223002C: .word 0x02237084
+ thumb_func_end MOD80_0222FF6C
+
+ thumb_func_start MOD80_02230030
+MOD80_02230030: ; 0x02230030
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ 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 MOD80_02230030
+
+ thumb_func_start MOD80_02230054
+MOD80_02230054: ; 0x02230054
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ mov r1, #0x1a
+ add r5, r0, #0
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x3e
+ ldr r4, [r5, #4]
+ bl FUN_02002EEC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x24]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x11
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0x3e
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #7
+ add r3, r2, #0
+ bl FUN_02006930
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD80_02230054
+
+ thumb_func_start MOD80_022300CC
+MOD80_022300CC: ; 0x022300CC
+ push {r4, lr}
+ sub sp, #0x30
+ mov r2, #0xcf
+ add r4, r0, #0
+ lsl r2, r2, #4
+ add r0, sp, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ mov r3, #1
+ bl MOD80_0222E5E8
+ mov r0, #0x32
+ lsl r0, r0, #0xe
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ ldr r1, _02230114 ; =0x00000E6C
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _02230114 ; =0x00000E6C
+ mov r1, #0x25
+ ldr r0, [r4, r0]
+ bl FUN_02020130
+ bl FUN_02033E74
+ add sp, #0x30
+ pop {r4, pc}
+ nop
+_02230114: .word 0x00000E6C
+ thumb_func_end MOD80_022300CC
+
+ thumb_func_start MOD80_02230118
+MOD80_02230118: ; 0x02230118
+ ldr r1, _02230120 ; =0x00000E6C
+ ldr r3, _02230124 ; =FUN_0201FFC8
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_02230120: .word 0x00000E6C
+_02230124: .word FUN_0201FFC8
+ thumb_func_end MOD80_02230118
+
+ thumb_func_start MOD80_02230128
+MOD80_02230128: ; 0x02230128
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp, #0x14]
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r3, #2
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r2, _022301E4 ; =0x00000E98
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0, #4]
+ add r1, r1, r2
+ mov r2, #0
+ bl FUN_02019064
+ ldr r1, _022301E4 ; =0x00000E98
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0xf
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x5e
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r2, _022301E8 ; =0x00000ED8
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0, #4]
+ add r1, r1, r2
+ mov r2, #0
+ mov r3, #0x15
+ bl FUN_02019064
+ ldr r1, _022301EC ; =0x00000F08
+ ldr r0, [sp, #0x14]
+ ldr r4, _022301F0 ; =0x022370F4
+ mov r6, #0x86
+ mov r7, #0
+ add r5, r0, r1
+_02230190:
+ ldr r0, [r4, #4]
+ add r1, r5, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ mov r2, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r3, [r4]
+ ldr r0, [r0, #4]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0xc]
+ add r7, r7, #1
+ mul r0, r1
+ add r6, r6, r0
+ add r4, #0x10
+ add r5, #0x10
+ cmp r7, #0xa
+ blo _02230190
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022301E4: .word 0x00000E98
+_022301E8: .word 0x00000ED8
+_022301EC: .word 0x00000F08
+_022301F0: .word 0x022370F4
+ thumb_func_end MOD80_02230128
+
+ thumb_func_start MOD80_022301F4
+MOD80_022301F4: ; 0x022301F4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02230220 ; =0x00000E98
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02230224 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02230228 ; =0x00000F08
+ mov r4, #0
+ add r5, r5, r0
+_0223020E:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0xa
+ blo _0223020E
+ pop {r3, r4, r5, pc}
+ nop
+_02230220: .word 0x00000E98
+_02230224: .word 0x00000ED8
+_02230228: .word 0x00000F08
+ thumb_func_end MOD80_022301F4
+
+ thumb_func_start MOD80_0223022C
+MOD80_0223022C: ; 0x0223022C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0x7e
+ add r0, #0xc4
+ lsl r1, r1, #2
+ add r2, r5, r1
+ ldr r0, [r0]
+ sub r1, #0xd4
+ mul r1, r0
+ add r4, r2, r1
+ mov r0, #0xb4
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _022302B0 ; =0x00000B4C
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ bl FUN_0200B84C
+ ldr r0, _022302B4 ; =0x0000011E
+ ldrb r2, [r4, r0]
+ cmp r2, #0
+ beq _02230268
+ mov r0, #0xb3
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #8
+ bl FUN_0200B4A0
+_02230268:
+ ldr r2, _022302B8 ; =0x0000011F
+ ldrb r3, [r4, r2]
+ cmp r3, #0
+ beq _02230280
+ mov r0, #0xb3
+ sub r2, r2, #1
+ lsl r0, r0, #4
+ ldrb r2, [r4, r2]
+ ldr r0, [r5, r0]
+ mov r1, #9
+ bl FUN_0200B4D8
+_02230280:
+ mov r1, #0xb3
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r2, #0x4f
+ mov r3, #0x3e
+ bl FUN_0200A9C4
+ ldr r1, _022302BC ; =0x00000B54
+ mov r2, #0x50
+ str r0, [r5, r1]
+ add r0, r1, #0
+ sub r0, #0x24
+ sub r1, #0x20
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ mov r3, #0x3e
+ bl FUN_0200A9C4
+ ldr r1, _022302C0 ; =0x00000B58
+ str r0, [r5, r1]
+ pop {r3, r4, r5, pc}
+ nop
+_022302B0: .word 0x00000B4C
+_022302B4: .word 0x0000011E
+_022302B8: .word 0x0000011F
+_022302BC: .word 0x00000B54
+_022302C0: .word 0x00000B58
+ thumb_func_end MOD80_0223022C
+
+ thumb_func_start MOD80_022302C4
+MOD80_022302C4: ; 0x022302C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022302E4 ; =0x00000B54
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _022302E8 ; =0x00000B58
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _022302EC ; =0x00000B4C
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ nop
+_022302E4: .word 0x00000B54
+_022302E8: .word 0x00000B58
+_022302EC: .word 0x00000B4C
+ thumb_func_end MOD80_022302C4
+
+ thumb_func_start MOD80_022302F0
+MOD80_022302F0: ; 0x022302F0
+ mov r1, #1
+ str r1, [r0, #0x2c]
+ mov r0, #3
+ bx lr
+ thumb_func_end MOD80_022302F0
+
+ thumb_func_start MOD80_022302F8
+MOD80_022302F8: ; 0x022302F8
+ push {r3, r4, r5, lr}
+ ldr r1, _02230388 ; =0x021C48B8
+ mov r2, #1
+ ldr r1, [r1, #0x48]
+ add r4, r0, #0
+ add r3, r1, #0
+ tst r3, r2
+ beq _02230326
+ ldr r1, _0223038C ; =0x00000F0F
+ mov r3, #0
+ str r1, [sp]
+ mov r1, #0x10
+ bl MOD80_022304F8
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #4
+ bl MOD80_0222E6DC
+ ldr r0, _02230390 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230384
+_02230326:
+ mov r3, #2
+ add r5, r1, #0
+ tst r5, r3
+ beq _02230340
+ mov r1, #4
+ mov r2, #0
+ str r3, [r4, #0x2c]
+ bl MOD80_0222E7A8
+ ldr r0, _02230390 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230384
+_02230340:
+ mov r0, #0x10
+ tst r0, r1
+ beq _02230362
+ add r0, r4, #0
+ add r0, #0xb6
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _02230384
+ add r0, r4, #0
+ add r0, #0xb6
+ strh r2, [r0]
+ mov r0, #6
+ str r0, [r4, #0x2c]
+ ldr r0, _02230390 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230384
+_02230362:
+ mov r0, #0x20
+ tst r0, r1
+ beq _02230384
+ add r0, r4, #0
+ add r0, #0xb6
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02230384
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb6
+ strh r1, [r0]
+ mov r0, #6
+ str r0, [r4, #0x2c]
+ ldr r0, _02230390 ; =0x000005DC
+ bl FUN_020054C8
+_02230384:
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02230388: .word 0x021C48B8
+_0223038C: .word 0x00000F0F
+_02230390: .word 0x000005DC
+ thumb_func_end MOD80_022302F8
+
+ thumb_func_start MOD80_02230394
+MOD80_02230394: ; 0x02230394
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _022303D0 ; =0x00000B34
+ ldr r1, _022303D4 ; =0x00000F78
+ ldr r0, [r4, r0]
+ add r1, r4, r1
+ bl MOD80_02230550
+ add r0, r4, #0
+ bl MOD80_0223043C
+ mov r1, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #4
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_022303D0: .word 0x00000B34
+_022303D4: .word 0x00000F78
+ thumb_func_end MOD80_02230394
+
+ thumb_func_start MOD80_022303D8
+MOD80_022303D8: ; 0x022303D8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r2, #0x73
+ ldr r0, [r4, #4]
+ mov r1, #0xf
+ lsl r2, r2, #2
+ bl MOD80_0222E6A8
+ ldr r1, _022303F4 ; =0x00000FCC
+ str r0, [r4, r1]
+ mov r0, #5
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_022303F4: .word 0x00000FCC
+ thumb_func_end MOD80_022303D8
+
+ thumb_func_start MOD80_022303F8
+MOD80_022303F8: ; 0x022303F8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02230438 ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02230432
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _02230424
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #0
+ bl MOD80_0222E7A8
+ b _02230432
+_02230424:
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #6
+ bl MOD80_0222E7A8
+_02230432:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02230438: .word 0x00000FCC
+ thumb_func_end MOD80_022303F8
+
+ thumb_func_start MOD80_0223043C
+MOD80_0223043C: ; 0x0223043C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0xb6
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _0223048C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x68
+ mov r1, #0x1b
+ bl FUN_020068C8
+ ldr r2, _022304BC ; =0x00000B34
+ ldr r0, _022304C0 ; =0x00000F98
+ mov r3, #0xba
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ lsl r3, r3, #2
+ add r0, r4, r0
+ ldr r2, [r4, r2]
+ add r3, r4, r3
+ add r4, #0xc4
+ ldr r5, [r4]
+ mov r4, #0x49
+ lsl r4, r4, #2
+ mul r4, r5
+ add r3, r3, r4
+ bl MOD80_022305A8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_0223048C:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x68
+ mov r1, #0x1c
+ bl FUN_020068C8
+ ldr r2, _022304C4 ; =0x00000B54
+ ldr r0, _022304C0 ; =0x00000F98
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ bl MOD80_02230614
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022304BC: .word 0x00000B34
+_022304C0: .word 0x00000F98
+_022304C4: .word 0x00000B54
+ thumb_func_end MOD80_0223043C
+
+ thumb_func_start MOD80_022304C8
+MOD80_022304C8: ; 0x022304C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0223043C
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_022304C8
+
+ thumb_func_start MOD80_022304D8
+MOD80_022304D8: ; 0x022304D8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _022304F2
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_022304F2:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_022304D8
+
+ thumb_func_start MOD80_022304F8
+MOD80_022304F8: ; 0x022304F8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldr r2, _02230544 ; =0x00000B34
+ add r5, r0, #0
+ ldr r0, [r5, r2]
+ add r2, #0x18
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ ldr r0, _02230548 ; =0x00000E98
+ mov r1, #0xf
+ add r0, r5, r0
+ bl FUN_02019620
+ ldr r0, _02230548 ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ ldr r0, _02230548 ; =0x00000E98
+ ldr r2, _0223054C ; =0x00000B4C
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02230544: .word 0x00000B34
+_02230548: .word 0x00000E98
+_0223054C: .word 0x00000B4C
+ thumb_func_end MOD80_022304F8
+
+ thumb_func_start MOD80_02230550
+MOD80_02230550: ; 0x02230550
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ mov r1, #0x4a
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0x4e
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r2, #0
+ ldr r0, _022305A4 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #2
+ bl MOD80_02236D50
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _022305A4 ; =0x000F0200
+ add r5, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ mov r3, #2
+ bl MOD80_02236D50
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_022305A4: .word 0x000F0200
+ thumb_func_end MOD80_02230550
+
+ thumb_func_start MOD80_022305A8
+MOD80_022305A8: ; 0x022305A8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ bl FUN_02019620
+ mov r0, #3
+ str r0, [sp]
+ ldr r0, _02230610 ; =0x000F0200
+ mov r3, #0
+ str r0, [sp, #4]
+ ldrsh r2, [r4, r3]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD80_02233EA4
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x46
+ str r0, [sp, #4]
+ ldr r0, _02230610 ; =0x000F0200
+ mov r2, #2
+ str r0, [sp, #8]
+ ldrsb r2, [r4, r2]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl MOD80_02233EF4
+ mov r0, #3
+ mov r1, #4
+ ldrsb r0, [r4, r0]
+ ldrsb r1, [r4, r1]
+ bl MOD80_02234668
+ add r2, r0, #0
+ mov r0, #0x13
+ str r0, [sp]
+ ldr r0, _02230610 ; =0x000F0200
+ add r1, r6, #0
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r3, #0
+ bl MOD80_02233F5C
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230610: .word 0x000F0200
+ thumb_func_end MOD80_022305A8
+
+ thumb_func_start MOD80_02230614
+MOD80_02230614: ; 0x02230614
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ mov r1, #0
+ add r6, r0, #0
+ add r4, r2, #0
+ bl FUN_02019620
+ cmp r5, #0
+ beq _0223063A
+ mov r2, #0
+ ldr r0, _02230658 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r3, #3
+ bl MOD80_02236D50
+_0223063A:
+ cmp r4, #0
+ beq _02230652
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02230658 ; =0x000F0200
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #8
+ mov r3, #0x13
+ bl MOD80_02236D50
+_02230652:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02230658: .word 0x000F0200
+ thumb_func_end MOD80_02230614
+
+ thumb_func_start MOD80_0223065C
+MOD80_0223065C: ; 0x0223065C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD80_02230AC0
+ ldr r0, [r4, #4]
+ bl MOD80_02230760
+ add r0, r4, #0
+ bl MOD80_02230840
+ add r0, r4, #0
+ bl MOD80_02230944
+ add r0, r4, #0
+ bl MOD80_022308EC
+ ldr r1, _02230708 ; =0x00000B34
+ ldr r0, _0223070C ; =0x00000F08
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ bl MOD80_022318D4
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02230710 ; =0x00010200
+ ldr r2, _02230714 ; =0x00000B38
+ str r0, [sp, #4]
+ ldr r1, [r4, r2]
+ sub r2, #0x16
+ ldr r0, _02230718 ; =0x00000F18
+ ldrsh r2, [r4, r2]
+ add r0, r4, r0
+ mov r3, #2
+ bl MOD80_02233EA4
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02230710 ; =0x00010200
+ ldr r2, _02230708 ; =0x00000B34
+ str r0, [sp, #8]
+ ldr r1, [r4, r2]
+ sub r2, #0x10
+ ldr r0, _0223071C ; =0x00000F38
+ ldrsb r2, [r4, r2]
+ add r0, r4, r0
+ mov r3, #1
+ bl MOD80_02233EF4
+ ldr r1, _02230720 ; =0x00000B25
+ ldrsb r0, [r4, r1]
+ add r1, r1, #1
+ ldrsb r1, [r4, r1]
+ bl MOD80_02234668
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02230710 ; =0x00010200
+ ldr r1, _02230708 ; =0x00000B34
+ str r0, [sp, #4]
+ ldr r0, _02230724 ; =0x00000F58
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ mov r3, #2
+ bl MOD80_02233F9C
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02230708: .word 0x00000B34
+_0223070C: .word 0x00000F08
+_02230710: .word 0x00010200
+_02230714: .word 0x00000B38
+_02230718: .word 0x00000F18
+_0223071C: .word 0x00000F38
+_02230720: .word 0x00000B25
+_02230724: .word 0x00000F58
+ thumb_func_end MOD80_0223065C
+
+ thumb_func_start MOD80_02230728
+MOD80_02230728: ; 0x02230728
+ push {r3, lr}
+ ldr r1, [r0, #0x2c]
+ lsl r2, r1, #2
+ ldr r1, _02230738 ; =0x02237A94
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, pc}
+ nop
+_02230738: .word 0x02237A94
+ thumb_func_end MOD80_02230728
+
+ thumb_func_start MOD80_0223073C
+MOD80_0223073C: ; 0x0223073C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_02230934
+ add r0, r4, #0
+ bl MOD80_02230B2C
+ add r0, r4, #0
+ bl MOD80_02230A88
+ ldr r0, [r4, #4]
+ bl MOD80_02230814
+ add r0, r4, #0
+ bl MOD80_0222E7B0
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD80_0223073C
+
+ thumb_func_start MOD80_02230760
+MOD80_02230760: ; 0x02230760
+ push {r4, r5, lr}
+ sub sp, #0x54
+ ldr r5, _02230808 ; =0x022371D0
+ add r4, r0, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x38
+ 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, _0223080C ; =0x022371EC
+ 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, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _02230810 ; =0x022371B4
+ 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, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ add sp, #0x54
+ pop {r4, r5, pc}
+ nop
+_02230808: .word 0x022371D0
+_0223080C: .word 0x022371EC
+_02230810: .word 0x022371B4
+ thumb_func_end MOD80_02230760
+
+ thumb_func_start MOD80_02230814
+MOD80_02230814: ; 0x02230814
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ 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 MOD80_02230814
+
+ thumb_func_start MOD80_02230840
+MOD80_02230840: ; 0x02230840
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0x3e
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #5
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x3e
+ bl FUN_02002EEC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x24]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0xd
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x1a
+ add r2, r4, #0
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02230840
+
+ thumb_func_start MOD80_022308EC
+MOD80_022308EC: ; 0x022308EC
+ push {r4, lr}
+ sub sp, #0x30
+ mov r2, #0xcf
+ add r4, r0, #0
+ lsl r2, r2, #4
+ add r0, sp, #0
+ add r1, r4, #0
+ add r2, r4, r2
+ mov r3, #1
+ bl MOD80_0222E5E8
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ ldr r1, _02230930 ; =0x00000D5C
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _02230930 ; =0x00000D5C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_02020130
+ bl FUN_02033E74
+ add sp, #0x30
+ pop {r4, pc}
+ nop
+_02230930: .word 0x00000D5C
+ thumb_func_end MOD80_022308EC
+
+ thumb_func_start MOD80_02230934
+MOD80_02230934: ; 0x02230934
+ ldr r1, _0223093C ; =0x00000D5C
+ ldr r3, _02230940 ; =FUN_0201FFC8
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_0223093C: .word 0x00000D5C
+_02230940: .word FUN_0201FFC8
+ thumb_func_end MOD80_02230934
+
+ thumb_func_start MOD80_02230944
+MOD80_02230944: ; 0x02230944
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ mov r3, #1
+ str r0, [sp, #0x14]
+ str r3, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r2, _02230A6C ; =0x00000EB8
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0, #4]
+ add r1, r1, r2
+ mov r2, #0
+ bl FUN_02019064
+ ldr r1, _02230A6C ; =0x00000EB8
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ mov r1, #0
+ bl FUN_02019620
+ mov r2, #0
+ mov r3, #0xb5
+ ldr r0, _02230A70 ; =0x000F0D00
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r1, _02230A6C ; =0x00000EB8
+ ldr r0, [sp, #0x14]
+ lsl r3, r3, #4
+ add r0, r0, r1
+ ldr r1, [sp, #0x14]
+ ldr r1, [r1, r3]
+ mov r3, #1
+ bl MOD80_02236D1C
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r3, #2
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x60
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ ldr r2, _02230A74 ; =0x00000E98
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0, #4]
+ add r1, r1, r2
+ mov r2, #0
+ bl FUN_02019064
+ ldr r1, _02230A74 ; =0x00000E98
+ ldr r0, [sp, #0x14]
+ add r0, r0, r1
+ mov r1, #0
+ bl FUN_02019620
+ ldr r1, _02230A78 ; =0x00000F08
+ ldr r0, [sp, #0x14]
+ ldr r4, _02230A7C ; =0x0223719C
+ mov r7, #0
+ mov r6, #0x96
+ add r5, r0, r1
+_022309D2:
+ ldrh r0, [r4, #2]
+ add r1, r5, #0
+ mov r2, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldrh r3, [r4]
+ ldr r0, [sp, #0x14]
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #4]
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r7, r7, #1
+ add r6, #0x16
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r7, #6
+ blt _022309D2
+ ldr r1, _02230A78 ; =0x00000F08
+ ldr r0, [sp, #0x14]
+ ldr r6, _02230A80 ; =0x0000011A
+ add r0, r0, r1
+ ldr r4, _02230A84 ; =0x02237194
+ mov r5, #0
+ str r0, [sp, #0x18]
+_02230A20:
+ add r0, r5, #6
+ lsl r7, r0, #4
+ ldrh r0, [r4, #2]
+ ldr r1, [sp, #0x18]
+ mov r2, #2
+ 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, #0xd
+ 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, r1, r7
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #4]
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ ldr r0, [sp, #0x18]
+ mov r1, #0
+ add r0, r0, r7
+ bl FUN_02019620
+ add r5, r5, #1
+ add r6, #0x10
+ add r4, r4, #4
+ cmp r5, #2
+ blt _02230A20
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02230A6C: .word 0x00000EB8
+_02230A70: .word 0x000F0D00
+_02230A74: .word 0x00000E98
+_02230A78: .word 0x00000F08
+_02230A7C: .word 0x0223719C
+_02230A80: .word 0x0000011A
+_02230A84: .word 0x02237194
+ thumb_func_end MOD80_02230944
+
+ thumb_func_start MOD80_02230A88
+MOD80_02230A88: ; 0x02230A88
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02230AB4 ; =0x00000E98
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02230AB8 ; =0x00000EB8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02230ABC ; =0x00000F08
+ mov r4, #0
+ add r5, r5, r0
+_02230AA2:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _02230AA2
+ pop {r3, r4, r5, pc}
+ nop
+_02230AB4: .word 0x00000E98
+_02230AB8: .word 0x00000EB8
+_02230ABC: .word 0x00000F08
+ thumb_func_end MOD80_02230A88
+
+ thumb_func_start MOD80_02230AC0
+MOD80_02230AC0: ; 0x02230AC0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xb4
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _02230B28 ; =0x00000B4C
+ str r0, [r4, r1]
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #0x29
+ bl FUN_0200A914
+ mov r1, #0xb5
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #0x3e
+ mov r1, #0x30
+ bl FUN_02016998
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x30
+ bl MIi_CpuClearFast
+ mov r2, #0xfe
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ mov r0, #0x3e
+ mov r1, #0
+ add r2, #0x1c
+ bl MOD80_02234204
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ str r0, [r1, #0x18]
+ mov r0, #0x3e
+ bl MOD80_02234228
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ add r1, #0x38
+ str r0, [r2, #0x14]
+ add r0, r4, r1
+ bl MOD80_022346D8
+ pop {r4, pc}
+ .align 2, 0
+_02230B28: .word 0x00000B4C
+ thumb_func_end MOD80_02230AC0
+
+ thumb_func_start MOD80_02230B2C
+MOD80_02230B2C: ; 0x02230B2C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x14]
+ bl FUN_02016A18
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x18]
+ bl FUN_02016A18
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _02230B68 ; =0x00000B4C
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0xb5
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ nop
+_02230B68: .word 0x00000B4C
+ thumb_func_end MOD80_02230B2C
+
+ thumb_func_start MOD80_02230B6C
+MOD80_02230B6C: ; 0x02230B6C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _02230B90 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #8
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD80_0222E6DC
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230B90: .word 0x00000F0F
+ thumb_func_end MOD80_02230B6C
+
+ thumb_func_start MOD80_02230B94
+MOD80_02230B94: ; 0x02230B94
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl MOD80_02231008
+ ldr r0, _02230CB4 ; =0x021C48B8
+ mov r2, #1
+ ldr r1, [r0, #0x48]
+ add r0, r1, #0
+ tst r0, r2
+ beq _02230C44
+ add r0, r4, #0
+ bl MOD80_02230FF0
+ cmp r0, #4
+ bhi _02230CAE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02230BBE: ; jump table
+ .short _02230BC8 - _02230BBE - 2 ; case 0
+ .short _02230BD4 - _02230BBE - 2 ; case 1
+ .short _02230C10 - _02230BBE - 2 ; case 2
+ .short _02230C1C - _02230BBE - 2 ; case 3
+ .short _02230C22 - _02230BBE - 2 ; case 4
+_02230BC8:
+ mov r0, #3
+ str r0, [r4, #0x2c]
+ ldr r0, _02230CB8 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230CAE
+_02230BD4:
+ ldr r0, _02230CBC ; =0x00000B22
+ ldrsh r0, [r4, r0]
+ cmp r0, #0
+ beq _02230C04
+ mov r1, #0x12
+ bl FUN_02068678
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ str r0, [r2, #0x20]
+ ldr r1, [r4, r1]
+ ldr r0, _02230CBC ; =0x00000B22
+ ldr r1, [r1, #0x20]
+ add r0, r4, r0
+ bl MOD80_022338E0
+ cmp r0, #0
+ beq _02230C04
+ ldr r0, _02230CB8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+_02230C04:
+ mov r0, #8
+ str r0, [r4, #0x2c]
+ ldr r0, _02230CB8 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230CAE
+_02230C10:
+ mov r0, #0xb
+ str r0, [r4, #0x2c]
+ ldr r0, _02230CB8 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230CAE
+_02230C1C:
+ mov r0, #0xe
+ str r0, [r4, #0x2c]
+ b _02230CAE
+_02230C22:
+ ldr r0, _02230CC0 ; =0x00000F0F
+ mov r1, #0xf
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #0x16
+ bl MOD80_0222E6DC
+ ldr r0, _02230CB8 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230CAE
+_02230C44:
+ mov r0, #2
+ tst r0, r1
+ beq _02230C6A
+ ldr r0, _02230CC0 ; =0x00000F0F
+ mov r1, #0xf
+ str r0, [sp]
+ add r0, r4, #0
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #0x16
+ bl MOD80_0222E6DC
+ ldr r0, _02230CB8 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230CAE
+_02230C6A:
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD80_02235B70
+ add r5, r0, #0
+ ldr r0, _02230CC4 ; =0x00000FEE
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ beq _02230CAE
+ cmp r5, #0
+ blt _02230CAE
+ add r0, r5, #1
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #0xe7
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ lsl r1, r5, #2
+ add r1, #0x10
+ bl FUN_02020130
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD80_0222E7A8
+ add r4, #0xc4
+ ldr r0, _02230CB8 ; =0x000005DC
+ str r5, [r4]
+ bl FUN_020054C8
+_02230CAE:
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ nop
+_02230CB4: .word 0x021C48B8
+_02230CB8: .word 0x000005DC
+_02230CBC: .word 0x00000B22
+_02230CC0: .word 0x00000F0F
+_02230CC4: .word 0x00000FEE
+ thumb_func_end MOD80_02230B94
+
+ thumb_func_start MOD80_02230CC8
+MOD80_02230CC8: ; 0x02230CC8
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _02230D54 ; =0x00000B22
+ add r4, r0, #0
+ ldrsh r2, [r4, r1]
+ cmp r2, #0
+ bne _02230CF6
+ ldr r1, _02230D58 ; =0x00000F0F
+ mov r2, #1
+ str r1, [sp]
+ mov r1, #0xc
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD80_0222E6DC
+ ldr r0, _02230D5C ; =0x000005F3
+ bl FUN_020054C8
+ b _02230D4C
+_02230CF6:
+ add r0, r4, r1
+ add r1, r1, #6
+ add r1, r4, r1
+ bl MOD80_022319C0
+ cmp r0, #0
+ beq _02230D26
+ ldr r0, _02230D58 ; =0x00000F0F
+ mov r1, #0x21
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD80_0222E6DC
+ ldr r0, _02230D5C ; =0x000005F3
+ bl FUN_020054C8
+ b _02230D4C
+_02230D26:
+ ldr r0, _02230D60 ; =0x000005FF
+ bl FUN_020054C8
+ ldr r0, _02230D58 ; =0x00000F0F
+ mov r1, #0xd
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #0xf
+ bl MOD80_0222E6DC
+ add r0, r4, #0
+ bl MOD80_02235C40
+_02230D4C:
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02230D54: .word 0x00000B22
+_02230D58: .word 0x00000F0F
+_02230D5C: .word 0x000005F3
+_02230D60: .word 0x000005FF
+ thumb_func_end MOD80_02230CC8
+
+ thumb_func_start MOD80_02230D64
+MOD80_02230D64: ; 0x02230D64
+ push {r3, r4, lr}
+ sub sp, #0x2c
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_0202AC08
+ lsr r1, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x1c]
+ lsr r1, r0, #0x10
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x20]
+ lsr r1, r0, #8
+ lsl r1, r1, #0x18
+ lsl r0, r0, #0x18
+ lsr r1, r1, #0x18
+ lsr r0, r0, #0x18
+ str r1, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, sp, #0xc
+ add r1, sp, #0
+ bl MOD04_021DE1F8
+ add r0, sp, #0xc
+ bl RTC_ConvertDateToDay
+ add r4, r0, #0
+ add r0, sp, #0x1c
+ bl RTC_ConvertDateToDay
+ sub r0, r4, r0
+ bmi _02230DB2
+ cmp r0, #3
+ bge _02230DB2
+ add sp, #0x2c
+ mov r0, #1
+ pop {r3, r4, pc}
+_02230DB2:
+ mov r0, #0
+ add sp, #0x2c
+ pop {r3, r4, pc}
+ thumb_func_end MOD80_02230D64
+
+ thumb_func_start MOD80_02230DB8
+MOD80_02230DB8: ; 0x02230DB8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrh r0, [r5, #0x36]
+ mov r4, #3
+ cmp r0, #0
+ beq _02230DC6
+ add r4, r4, #2
+_02230DC6:
+ add r0, r5, #0
+ bl MOD80_02230D64
+ cmp r0, #0
+ beq _02230DD2
+ add r4, r4, #2
+_02230DD2:
+ ldr r0, _02230E0C ; =0x00000B22
+ mov r2, #0x7e
+ lsl r2, r2, #2
+ add r0, r5, r0
+ add r1, r4, #0
+ add r2, r5, r2
+ bl MOD80_0222DD90
+ ldr r1, _02230E0C ; =0x00000B22
+ ldrh r2, [r5, r1]
+ add r0, r1, #6
+ strh r2, [r5, r0]
+ add r0, r1, #2
+ ldrh r2, [r5, r0]
+ add r0, r1, #0
+ add r0, #8
+ strh r2, [r5, r0]
+ add r0, r1, #4
+ ldrh r0, [r5, r0]
+ add r1, #0xa
+ strh r0, [r5, r1]
+ mov r0, #0x10
+ str r0, [r5, #0x2c]
+ ldr r0, _02230E10 ; =0x00000FEE
+ mov r1, #0
+ strh r1, [r5, r0]
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ nop
+_02230E0C: .word 0x00000B22
+_02230E10: .word 0x00000FEE
+ thumb_func_end MOD80_02230DB8
+
+ thumb_func_start MOD80_02230E14
+MOD80_02230E14: ; 0x02230E14
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _02230E94
+ bl MOD80_0222DBB8
+ add r5, r0, #0
+ add r0, #0xf
+ cmp r0, #0x16
+ bhi _02230E94
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02230E38: ; jump table
+ .short _02230E90 - _02230E38 - 2 ; case 0
+ .short _02230E84 - _02230E38 - 2 ; case 1
+ .short _02230E8A - _02230E38 - 2 ; case 2
+ .short _02230E90 - _02230E38 - 2 ; case 3
+ .short _02230E94 - _02230E38 - 2 ; case 4
+ .short _02230E94 - _02230E38 - 2 ; case 5
+ .short _02230E94 - _02230E38 - 2 ; case 6
+ .short _02230E94 - _02230E38 - 2 ; case 7
+ .short _02230E94 - _02230E38 - 2 ; case 8
+ .short _02230E94 - _02230E38 - 2 ; case 9
+ .short _02230E94 - _02230E38 - 2 ; case 10
+ .short _02230E94 - _02230E38 - 2 ; case 11
+ .short _02230E94 - _02230E38 - 2 ; case 12
+ .short _02230E84 - _02230E38 - 2 ; case 13
+ .short _02230E94 - _02230E38 - 2 ; case 14
+ .short _02230E66 - _02230E38 - 2 ; case 15
+ .short _02230E66 - _02230E38 - 2 ; case 16
+ .short _02230E66 - _02230E38 - 2 ; case 17
+ .short _02230E66 - _02230E38 - 2 ; case 18
+ .short _02230E66 - _02230E38 - 2 ; case 19
+ .short _02230E66 - _02230E38 - 2 ; case 20
+ .short _02230E66 - _02230E38 - 2 ; case 21
+ .short _02230E66 - _02230E38 - 2 ; case 22
+_02230E66:
+ add r0, r4, #0
+ add r0, #0xc0
+ str r5, [r0]
+ ldr r0, _02230E98 ; =0x000005FF
+ mov r1, #0
+ bl FUN_020054F0
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD80_02235B90
+ mov r0, #0x11
+ str r0, [r4, #0x2c]
+ b _02230E94
+_02230E84:
+ mov r0, #0x1a
+ str r0, [r4, #0x2c]
+ b _02230E94
+_02230E8A:
+ bl FUN_020335E0
+ b _02230E94
+_02230E90:
+ mov r0, #0x13
+ str r0, [r4, #0x2c]
+_02230E94:
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02230E98: .word 0x000005FF
+ thumb_func_end MOD80_02230E14
+
+ thumb_func_start MOD80_02230E9C
+MOD80_02230E9C: ; 0x02230E9C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ cmp r1, #0
+ ldr r1, _02230EF0 ; =0x00000F0F
+ bne _02230ECC
+ str r1, [sp]
+ mov r1, #0xe
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD80_0222E6DC
+ ldr r0, _02230EF4 ; =0x000005F3
+ bl FUN_020054C8
+ b _02230EE8
+_02230ECC:
+ str r1, [sp]
+ mov r1, #0x1e
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #0x12
+ bl MOD80_0222E6DC
+ ldr r0, _02230EF8 ; =0x00000FDC
+ mov r1, #0
+ str r1, [r4, r0]
+_02230EE8:
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02230EF0: .word 0x00000F0F
+_02230EF4: .word 0x000005F3
+_02230EF8: .word 0x00000FDC
+ thumb_func_end MOD80_02230E9C
+
+ thumb_func_start MOD80_02230EFC
+MOD80_02230EFC: ; 0x02230EFC
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _02230F34 ; =0x00000FDC
+ add r4, r0, #0
+ ldr r2, [r4, r1]
+ add r2, r2, #1
+ str r2, [r4, r1]
+ ldr r2, [r4, r1]
+ cmp r2, #0x2d
+ ble _02230F2E
+ sub r1, #0xcd
+ str r1, [sp]
+ mov r1, #0x20
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD80_0222E6DC
+ ldr r0, _02230F38 ; =0x00000FEE
+ mov r1, #1
+ strh r1, [r4, r0]
+_02230F2E:
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230F34: .word 0x00000FDC
+_02230F38: .word 0x00000FEE
+ thumb_func_end MOD80_02230EFC
+
+ thumb_func_start MOD80_02230F3C
+MOD80_02230F3C: ; 0x02230F3C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _02230F6C ; =0x00000B28
+ add r4, r0, #0
+ mov r3, #0
+ strh r3, [r4, r1]
+ ldr r1, _02230F70 ; =0x00000F0F
+ mov r2, #1
+ str r1, [sp]
+ mov r1, #0x26
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD80_0222E6DC
+ ldr r0, _02230F74 ; =0x000005F3
+ bl FUN_020054C8
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02230F6C: .word 0x00000B28
+_02230F70: .word 0x00000F0F
+_02230F74: .word 0x000005F3
+ thumb_func_end MOD80_02230F3C
+
+ thumb_func_start MOD80_02230F78
+MOD80_02230F78: ; 0x02230F78
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _02230FA8 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0x8f
+ mov r2, #4
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x15
+ mov r2, #0x1b
+ bl MOD80_0222E6DC
+ ldr r0, _02230FAC ; =0x00000FDC
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, _02230FB0 ; =0x000005F3
+ bl FUN_020054C8
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230FA8: .word 0x00000F0F
+_02230FAC: .word 0x00000FDC
+_02230FB0: .word 0x000005F3
+ thumb_func_end MOD80_02230F78
+
+ thumb_func_start MOD80_02230FB4
+MOD80_02230FB4: ; 0x02230FB4
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _02230FE8 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0x94
+ mov r2, #4
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x15
+ mov r2, #2
+ bl MOD80_0222E6DC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ ldr r0, _02230FEC ; =0x000005F3
+ bl FUN_020054C8
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230FE8: .word 0x00000F0F
+_02230FEC: .word 0x000005F3
+ thumb_func_end MOD80_02230FB4
+
+ thumb_func_start MOD80_02230FF0
+MOD80_02230FF0: ; 0x02230FF0
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r1, [r0, r1]
+ ldr r0, [r1, #0x24]
+ cmp r0, #0
+ bne _02231000
+ ldr r0, [r1, #0x28]
+ bx lr
+_02231000:
+ ldr r0, [r1, #0x2c]
+ add r0, r0, #3
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD80_02230FF0
+
+ thumb_func_start MOD80_02231008
+MOD80_02231008: ; 0x02231008
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _02231100 ; =0x021C48B8
+ mov r1, #0x40
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _0223104E
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ ldr r0, [r1, #0x24]
+ cmp r0, #0
+ bne _02231036
+ ldr r0, [r1, #0x28]
+ cmp r0, #0
+ ble _022310D0
+ sub r0, r0, #1
+ str r0, [r1, #0x28]
+ ldr r0, _02231104 ; =0x000005DC
+ bl FUN_020054C8
+ b _022310D0
+_02231036:
+ ldr r0, [r1, #0x2c]
+ cmp r0, #0
+ beq _02231042
+ ldr r0, _02231104 ; =0x000005DC
+ bl FUN_020054C8
+_02231042:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ str r1, [r0, #0x2c]
+ b _022310D0
+_0223104E:
+ mov r1, #0x80
+ tst r1, r0
+ beq _0223108A
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ ldr r0, [r1, #0x24]
+ cmp r0, #0
+ bne _02231072
+ ldr r0, [r1, #0x28]
+ cmp r0, #2
+ bge _022310D0
+ add r0, r0, #1
+ str r0, [r1, #0x28]
+ ldr r0, _02231104 ; =0x000005DC
+ bl FUN_020054C8
+ b _022310D0
+_02231072:
+ ldr r0, [r1, #0x2c]
+ cmp r0, #1
+ beq _0223107E
+ ldr r0, _02231104 ; =0x000005DC
+ bl FUN_020054C8
+_0223107E:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ str r1, [r0, #0x2c]
+ b _022310D0
+_0223108A:
+ mov r1, #0x10
+ tst r1, r0
+ beq _022310AE
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x24]
+ cmp r0, #1
+ beq _022310A2
+ ldr r0, _02231104 ; =0x000005DC
+ bl FUN_020054C8
+_022310A2:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ str r1, [r0, #0x24]
+ b _022310D0
+_022310AE:
+ mov r1, #0x20
+ tst r0, r1
+ beq _022310D0
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x24]
+ cmp r0, #0
+ beq _022310C6
+ ldr r0, _02231104 ; =0x000005DC
+ bl FUN_020054C8
+_022310C6:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ str r1, [r0, #0x24]
+_022310D0:
+ add r0, r4, #0
+ bl MOD80_02230FF0
+ lsl r1, r0, #2
+ ldr r0, _02231108 ; =0x02237A80
+ ldrh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ bl MOD80_02230FF0
+ lsl r1, r0, #2
+ ldr r0, _0223110C ; =0x02237A82
+ ldrh r0, [r0, r1]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, _02231110 ; =0x00000D5C
+ ldr r0, [r4, r0]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02231100: .word 0x021C48B8
+_02231104: .word 0x000005DC
+_02231108: .word 0x02237A80
+_0223110C: .word 0x02237A82
+_02231110: .word 0x00000D5C
+ thumb_func_end MOD80_02231008
+
+ thumb_func_start MOD80_02231114
+MOD80_02231114: ; 0x02231114
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #6
+ mov r1, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #4
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD80_02231114
+
+ thumb_func_start MOD80_0223113C
+MOD80_0223113C: ; 0x0223113C
+ push {r3, r4, lr}
+ sub sp, #0x14
+ ldr r1, _022311B4 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #9
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #4
+ bl MOD80_0222E6DC
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #0xd
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _022311B8 ; =0x0000013A
+ ldr r1, _022311BC ; =0x00000ED8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0xf
+ bl FUN_02019064
+ ldr r0, _022311BC ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0xd
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _022311C0 ; =0x0000016E
+ ldr r1, _022311C4 ; =0x00000EE8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0x15
+ bl FUN_02019064
+ ldr r0, _022311C4 ; =0x00000EE8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #3
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+_022311B4: .word 0x00000F0F
+_022311B8: .word 0x0000013A
+_022311BC: .word 0x00000ED8
+_022311C0: .word 0x0000016E
+_022311C4: .word 0x00000EE8
+ thumb_func_end MOD80_0223113C
+
+ thumb_func_start MOD80_022311C8
+MOD80_022311C8: ; 0x022311C8
+ push {r4, lr}
+ ldr r2, _022311F0 ; =0x00000FC8
+ add r4, r0, #0
+ ldr r3, _022311F4 ; =0x00000B34
+ add r1, r4, r2
+ sub r2, #0xf0
+ ldr r3, [r4, r3]
+ add r2, r4, r2
+ bl MOD80_02234370
+ ldr r1, _022311F8 ; =0x00000FD4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, _022311FC ; =0x0000FFFF
+ add r0, #0xb0
+ strh r1, [r0]
+ mov r0, #5
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_022311F0: .word 0x00000FC8
+_022311F4: .word 0x00000B34
+_022311F8: .word 0x00000FD4
+_022311FC: .word 0x0000FFFF
+ thumb_func_end MOD80_022311C8
+
+ thumb_func_start MOD80_02231200
+MOD80_02231200: ; 0x02231200
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022312B4 ; =0x00000FD4
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0xb0
+ bl MOD80_02234698
+ cmp r0, #0xa
+ bhi _02231236
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02231220: ; jump table
+ .short _022312AE - _02231220 - 2 ; case 0
+ .short _02231240 - _02231220 - 2 ; case 1
+ .short _02231240 - _02231220 - 2 ; case 2
+ .short _02231240 - _02231220 - 2 ; case 3
+ .short _02231240 - _02231220 - 2 ; case 4
+ .short _02231240 - _02231220 - 2 ; case 5
+ .short _02231240 - _02231220 - 2 ; case 6
+ .short _02231240 - _02231220 - 2 ; case 7
+ .short _02231240 - _02231220 - 2 ; case 8
+ .short _02231240 - _02231220 - 2 ; case 9
+ .short _02231240 - _02231220 - 2 ; case 10
+_02231236:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02231266
+ b _022312AE
+_02231240:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ sub r0, #0xc
+ add r1, r2, #6
+ ldr r0, [r4, r0]
+ add r2, r2, #4
+ bl FUN_02001300
+ ldr r0, _022312B8 ; =0x00000FC8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r0, _022312BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #6
+ str r0, [r4, #0x2c]
+ b _022312AE
+_02231266:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ sub r0, #0xc
+ add r1, r2, #6
+ ldr r0, [r4, r0]
+ add r2, r2, #4
+ bl FUN_02001300
+ ldr r0, _022312B8 ; =0x00000FC8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r0, _022312C0 ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _022312C4 ; =0x00000E98
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200D0E0
+ ldr r0, _022312C0 ; =0x00000ED8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _022312C8 ; =0x00000EE8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _022312BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0
+ str r0, [r4, #0x2c]
+_022312AE:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_022312B4: .word 0x00000FD4
+_022312B8: .word 0x00000FC8
+_022312BC: .word 0x000005DC
+_022312C0: .word 0x00000ED8
+_022312C4: .word 0x00000E98
+_022312C8: .word 0x00000EE8
+ thumb_func_end MOD80_02231200
+
+ thumb_func_start MOD80_022312CC
+MOD80_022312CC: ; 0x022312CC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r3, _02231310 ; =0x00000B38
+ add r4, r0, #0
+ ldr r1, [r4, r3]
+ mov r2, #0xfe
+ lsl r2, r2, #4
+ str r1, [sp]
+ ldr r1, [r4, r2]
+ sub r3, r3, #4
+ str r1, [sp, #4]
+ ldr r1, [r4]
+ ldr r1, [r1, #0x10]
+ str r1, [sp, #8]
+ add r1, r2, #0
+ sub r1, #0x18
+ sub r2, #0xf8
+ ldr r3, [r4, r3]
+ add r1, r4, r1
+ add r2, r4, r2
+ bl MOD80_022344DC
+ ldr r1, _02231314 ; =0x00000FD4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, _02231318 ; =0x0000FFFF
+ add r0, #0xb0
+ strh r1, [r0]
+ mov r0, #7
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02231310: .word 0x00000B38
+_02231314: .word 0x00000FD4
+_02231318: .word 0x0000FFFF
+ thumb_func_end MOD80_022312CC
+
+ thumb_func_start MOD80_0223131C
+MOD80_0223131C: ; 0x0223131C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _02231464 ; =0x00000FD4
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0xb0
+ bl MOD80_02234698
+ add r5, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ beq _02231342
+ add r0, r0, #1
+ cmp r5, r0
+ bne _02231340
+ b _0223145C
+_02231340:
+ b _0223138C
+_02231342:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ sub r0, #0xc
+ add r1, r2, #0
+ ldr r0, [r4, r0]
+ add r1, #0xa
+ add r2, #8
+ bl FUN_02001300
+ ldr r0, _02231468 ; =0x00000FC8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r0, _0223146C ; =0x00000EE8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _02231470 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #4
+ str r0, [r4, #0x2c]
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r3, [r4, r0]
+ add r0, #0x38
+ ldrh r2, [r3, #6]
+ ldrh r1, [r3, #4]
+ add r0, r4, r0
+ add r1, r2, r1
+ ldrh r2, [r3, #0xa]
+ ldrh r3, [r3, #8]
+ bl MOD80_022346F0
+ b _0223145C
+_0223138C:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ sub r0, #0xc
+ add r1, r2, #0
+ ldr r0, [r4, r0]
+ add r1, #0xa
+ add r2, #8
+ bl FUN_02001300
+ ldr r0, _02231468 ; =0x00000FC8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r0, _02231474 ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _0223146C ; =0x00000EE8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _02231474 ; =0x00000ED8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _0223146C ; =0x00000EE8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _02231478 ; =0x00000B22
+ strh r5, [r4, r0]
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ ldr r0, _02231470 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0223147C ; =0x00000F18
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02231480 ; =0x00010200
+ ldr r1, _02231484 ; =0x00000B38
+ str r0, [sp, #4]
+ ldr r0, _0223147C ; =0x00000F18
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ add r2, r5, #0
+ mov r3, #2
+ bl MOD80_02233EA4
+ add r0, r5, #0
+ mov r1, #0x12
+ bl FUN_02068678
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ str r0, [r2, #0x20]
+ ldr r3, [r4, r1]
+ add r1, #0x38
+ add r0, r4, r1
+ ldrh r2, [r3, #6]
+ ldrh r1, [r3, #4]
+ add r1, r2, r1
+ ldrh r2, [r3, #0xa]
+ ldrh r3, [r3, #8]
+ bl MOD80_022346F0
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ ldr r0, _02231478 ; =0x00000B22
+ ldr r1, [r1, #0x20]
+ add r0, r4, r0
+ bl MOD80_022338E0
+ cmp r0, #0
+ beq _0223145C
+ ldr r0, _02231488 ; =0x00000F38
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _02231480 ; =0x00010200
+ ldr r2, _0223148C ; =0x00000B34
+ str r0, [sp, #8]
+ ldr r1, [r4, r2]
+ sub r2, #0x10
+ ldr r0, _02231488 ; =0x00000F38
+ ldrsb r2, [r4, r2]
+ add r0, r4, r0
+ mov r3, #1
+ bl MOD80_02233EF4
+_0223145C:
+ mov r0, #3
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02231464: .word 0x00000FD4
+_02231468: .word 0x00000FC8
+_0223146C: .word 0x00000EE8
+_02231470: .word 0x000005DC
+_02231474: .word 0x00000ED8
+_02231478: .word 0x00000B22
+_0223147C: .word 0x00000F18
+_02231480: .word 0x00010200
+_02231484: .word 0x00000B38
+_02231488: .word 0x00000F38
+_0223148C: .word 0x00000B34
+ thumb_func_end MOD80_0223131C
+
+ thumb_func_start MOD80_02231490
+MOD80_02231490: ; 0x02231490
+ push {r3, r4, lr}
+ sub sp, #0x14
+ ldr r1, _022314E0 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0xa
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #9
+ bl MOD80_0222E6DC
+ mov r0, #0xa
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _022314E4 ; =0x0000013A
+ ldr r1, _022314E8 ; =0x00000ED8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0x15
+ bl FUN_02019064
+ ldr r0, _022314E8 ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #3
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_022314E0: .word 0x00000F0F
+_022314E4: .word 0x0000013A
+_022314E8: .word 0x00000ED8
+ thumb_func_end MOD80_02231490
+
+ thumb_func_start MOD80_022314EC
+MOD80_022314EC: ; 0x022314EC
+ push {r4, lr}
+ ldr r1, _02231514 ; =0x00000FC8
+ add r4, r0, #0
+ ldr r2, _02231518 ; =0x00000B34
+ add r0, r4, r1
+ sub r1, #0xf0
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ bl MOD80_02234560
+ ldr r1, _0223151C ; =0x00000FD4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, _02231520 ; =0x0000FFFF
+ add r0, #0xb0
+ strh r1, [r0]
+ mov r0, #0xa
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02231514: .word 0x00000FC8
+_02231518: .word 0x00000B34
+_0223151C: .word 0x00000FD4
+_02231520: .word 0x0000FFFF
+ thumb_func_end MOD80_022314EC
+
+ thumb_func_start MOD80_02231524
+MOD80_02231524: ; 0x02231524
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _022315F0 ; =0x00000FD4
+ add r1, r5, #0
+ ldr r0, [r5, r0]
+ add r1, #0xb0
+ bl MOD80_02234698
+ add r4, r0, #0
+ cmp r4, #2
+ bhi _0223154A
+ cmp r4, #0
+ beq _0223158E
+ cmp r4, #1
+ beq _0223158E
+ cmp r4, #2
+ beq _0223158E
+ b _022315EA
+_0223154A:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _022315EA
+ ldr r0, _022315F0 ; =0x00000FD4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _022315F4 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _022315F8 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _022315FC ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200D0E0
+ ldr r0, _022315F8 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02231600 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ b _022315EA
+_0223158E:
+ ldr r0, _022315F0 ; =0x00000FD4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _022315F4 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _022315F8 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _022315F8 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02231600 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _02231604 ; =0x00000B24
+ add r1, r4, #1
+ strb r1, [r5, r0]
+ ldr r0, _02231608 ; =0x00000F38
+ mov r1, #0
+ add r0, r5, r0
+ str r1, [r5, #0x2c]
+ bl FUN_02019620
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0223160C ; =0x00010200
+ ldr r2, _02231610 ; =0x00000B34
+ str r0, [sp, #8]
+ ldr r1, [r5, r2]
+ sub r2, #0x10
+ ldr r0, _02231608 ; =0x00000F38
+ ldrsb r2, [r5, r2]
+ add r0, r5, r0
+ mov r3, #1
+ bl MOD80_02233EF4
+_022315EA:
+ mov r0, #3
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022315F0: .word 0x00000FD4
+_022315F4: .word 0x00000FC8
+_022315F8: .word 0x00000ED8
+_022315FC: .word 0x00000E98
+_02231600: .word 0x000005DC
+_02231604: .word 0x00000B24
+_02231608: .word 0x00000F38
+_0223160C: .word 0x00010200
+_02231610: .word 0x00000B34
+ thumb_func_end MOD80_02231524
+
+ thumb_func_start MOD80_02231614
+MOD80_02231614: ; 0x02231614
+ push {r3, r4, lr}
+ sub sp, #0x14
+ ldr r1, _02231664 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0xb
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #0xc
+ bl MOD80_0222E6DC
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0xd
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _02231668 ; =0x0000013A
+ ldr r1, _0223166C ; =0x00000ED8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0xf
+ bl FUN_02019064
+ ldr r0, _0223166C ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #3
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02231664: .word 0x00000F0F
+_02231668: .word 0x0000013A
+_0223166C: .word 0x00000ED8
+ thumb_func_end MOD80_02231614
+
+ thumb_func_start MOD80_02231670
+MOD80_02231670: ; 0x02231670
+ push {r4, lr}
+ ldr r1, _02231698 ; =0x00000FC8
+ add r4, r0, #0
+ ldr r2, _0223169C ; =0x00000B34
+ add r0, r4, r1
+ sub r1, #0xf0
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ bl MOD80_022345D0
+ ldr r1, _022316A0 ; =0x00000FD4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, _022316A4 ; =0x0000FFFF
+ add r0, #0xb0
+ strh r1, [r0]
+ mov r0, #0xd
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02231698: .word 0x00000FC8
+_0223169C: .word 0x00000B34
+_022316A0: .word 0x00000FD4
+_022316A4: .word 0x0000FFFF
+ thumb_func_end MOD80_02231670
+
+ thumb_func_start MOD80_022316A8
+MOD80_022316A8: ; 0x022316A8
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _0223176C ; =0x00000FD4
+ add r1, r5, #0
+ ldr r0, [r5, r0]
+ add r1, #0xb0
+ bl MOD80_02234698
+ add r4, r0, #0
+ cmp r4, #0xc
+ beq _022316D0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _022316D0
+ add r0, r0, #1
+ cmp r4, r0
+ beq _02231766
+ b _0223170C
+_022316D0:
+ ldr r0, _0223176C ; =0x00000FD4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _02231770 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02231774 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _02231778 ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200D0E0
+ ldr r0, _02231774 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _0223177C ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ b _02231766
+_0223170C:
+ ldr r0, _0223176C ; =0x00000FD4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _02231770 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02231774 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _02231774 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _0223177C ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _02231780 ; =0x00000B22
+ add r1, r4, #0
+ add r0, r5, r0
+ bl MOD80_02234640
+ ldr r0, _02231784 ; =0x00000F58
+ mov r1, #0
+ add r0, r5, r0
+ str r1, [r5, #0x2c]
+ bl FUN_02019620
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02231788 ; =0x00010200
+ ldr r1, _0223178C ; =0x00000B34
+ str r0, [sp, #4]
+ ldr r0, _02231784 ; =0x00000F58
+ ldr r1, [r5, r1]
+ add r0, r5, r0
+ add r2, r4, #0
+ mov r3, #2
+ bl MOD80_02233F9C
+_02231766:
+ mov r0, #3
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223176C: .word 0x00000FD4
+_02231770: .word 0x00000FC8
+_02231774: .word 0x00000ED8
+_02231778: .word 0x00000E98
+_0223177C: .word 0x000005DC
+_02231780: .word 0x00000B22
+_02231784: .word 0x00000F58
+_02231788: .word 0x00010200
+_0223178C: .word 0x00000B34
+ thumb_func_end MOD80_022316A8
+
+ thumb_func_start MOD80_02231790
+MOD80_02231790: ; 0x02231790
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _022317AC ; =0x0000020A
+ mov r1, #0xf
+ bl MOD80_0222E6A8
+ ldr r1, _022317B0 ; =0x00000FCC
+ str r0, [r4, r1]
+ mov r0, #0x17
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_022317AC: .word 0x0000020A
+_022317B0: .word 0x00000FCC
+ thumb_func_end MOD80_02231790
+
+ thumb_func_start MOD80_022317B4
+MOD80_022317B4: ; 0x022317B4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022317F4 ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _022317F0
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _022317D6
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ b _022317F0
+_022317D6:
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ add r0, r4, #0
+ bl MOD80_02235C40
+ mov r0, #0
+ add r4, #0xc0
+ str r0, [r4]
+_022317F0:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_022317F4: .word 0x00000FCC
+ thumb_func_end MOD80_022317B4
+
+ thumb_func_start MOD80_022317F8
+MOD80_022317F8: ; 0x022317F8
+ mov r1, #1
+ str r1, [r0, #0x2c]
+ mov r0, #3
+ bx lr
+ thumb_func_end MOD80_022317F8
+
+ thumb_func_start MOD80_02231800
+MOD80_02231800: ; 0x02231800
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _02231824 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0x8e
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_0223187C
+ add r0, r4, #0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD80_0222E6DC
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02231824: .word 0x00000F0F
+ thumb_func_end MOD80_02231800
+
+ thumb_func_start MOD80_02231828
+MOD80_02231828: ; 0x02231828
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02231842
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_02231842:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02231828
+
+ thumb_func_start MOD80_02231848
+MOD80_02231848: ; 0x02231848
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02231874
+ ldr r0, _02231878 ; =0x00000FDC
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0x2d
+ ble _02231874
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_02231874:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02231878: .word 0x00000FDC
+ thumb_func_end MOD80_02231848
+
+ thumb_func_start MOD80_0223187C
+MOD80_0223187C: ; 0x0223187C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldr r2, _022318C8 ; =0x00000B34
+ add r5, r0, #0
+ ldr r0, [r5, r2]
+ add r2, #0x18
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ ldr r0, _022318CC ; =0x00000E98
+ mov r1, #0xf
+ add r0, r5, r0
+ bl FUN_02019620
+ ldr r0, _022318CC ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ ldr r0, _022318CC ; =0x00000E98
+ ldr r2, _022318D0 ; =0x00000B4C
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022318C8: .word 0x00000B34
+_022318CC: .word 0x00000E98
+_022318D0: .word 0x00000B4C
+ thumb_func_end MOD80_0223187C
+
+ thumb_func_start MOD80_022318D4
+MOD80_022318D4: ; 0x022318D4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0x3b
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r2, #0
+ ldr r0, _022319B8 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ add r3, r2, #0
+ bl MOD80_02236D50
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ mov r1, #0x3d
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r2, #0
+ ldr r0, _022319B8 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x20
+ add r1, r6, #0
+ add r3, r2, #0
+ bl MOD80_02236D50
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ mov r1, #0x3f
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r2, #0
+ ldr r0, _022319B8 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x40
+ add r1, r6, #0
+ add r3, r2, #0
+ bl MOD80_02236D50
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ mov r1, #0x41
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r3, r5, #0
+ add r3, #0x67
+ ldrb r3, [r3]
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ lsl r3, r3, #3
+ bl FUN_02002F40
+ add r2, r0, #0
+ mov r3, #0
+ ldr r0, _022319BC ; =0x00010200
+ str r3, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x60
+ add r1, r6, #0
+ bl MOD80_02236D50
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ mov r1, #0x42
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r3, r5, #0
+ add r3, #0x77
+ ldrb r3, [r3]
+ mov r0, #0
+ add r1, r4, #0
+ add r2, r0, #0
+ lsl r3, r3, #3
+ bl FUN_02002F40
+ add r2, r0, #0
+ mov r3, #0
+ ldr r0, _022319BC ; =0x00010200
+ str r3, [sp]
+ add r5, #0x70
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD80_02236D50
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_022319B8: .word 0x000F0200
+_022319BC: .word 0x00010200
+ thumb_func_end MOD80_022318D4
+
+ thumb_func_start MOD80_022319C0
+MOD80_022319C0: ; 0x022319C0
+ mov r2, #0
+ ldrsh r3, [r0, r2]
+ ldrsh r2, [r1, r2]
+ cmp r3, r2
+ bne _022319EC
+ mov r2, #2
+ ldrsb r3, [r0, r2]
+ ldrsb r2, [r1, r2]
+ cmp r3, r2
+ bne _022319EC
+ mov r2, #3
+ ldrsb r3, [r0, r2]
+ ldrsb r2, [r1, r2]
+ cmp r3, r2
+ bne _022319EC
+ mov r2, #4
+ ldrsb r3, [r0, r2]
+ ldrsb r0, [r1, r2]
+ cmp r3, r0
+ bne _022319EC
+ mov r0, #1
+ bx lr
+_022319EC:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD80_022319C0
+
+ thumb_func_start MOD80_022319F0
+MOD80_022319F0: ; 0x022319F0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD80_0223205C
+ ldr r0, [r4, #4]
+ bl MOD80_02231AB0
+ add r0, r4, #0
+ bl MOD80_02231BF4
+ add r0, r4, #0
+ bl MOD80_02231EA8
+ add r0, r4, #0
+ bl MOD80_02231CBC
+ ldr r0, [r4, #0x20]
+ cmp r0, #8
+ bne _02231A30
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ b _02231A46
+_02231A30:
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+_02231A46:
+ add r1, r4, #0
+ add r1, #0xb8
+ ldrh r1, [r1]
+ add r0, r4, #0
+ bl MOD80_02232D7C
+ add r0, r4, #0
+ bl MOD80_02236D84
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_022319F0
+
+ thumb_func_start MOD80_02231A64
+MOD80_02231A64: ; 0x02231A64
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222E79C
+ bl FUN_02033EEC
+ ldr r1, [r4, #0x2c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02231A80 ; =0x02237B04
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_02231A80: .word 0x02237B04
+ thumb_func_end MOD80_02231A64
+
+ thumb_func_start MOD80_02231A84
+MOD80_02231A84: ; 0x02231A84
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02033ED0
+ add r0, r4, #0
+ bl MOD80_02231E44
+ add r0, r4, #0
+ bl MOD80_022320E8
+ add r0, r4, #0
+ bl MOD80_0223200C
+ ldr r0, [r4, #4]
+ bl MOD80_02231BC8
+ add r0, r4, #0
+ bl MOD80_0222E7B0
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02231A84
+
+ thumb_func_start MOD80_02231AB0
+MOD80_02231AB0: ; 0x02231AB0
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _02231BB0 ; =0x02237210
+ add r3, sp, #0x8c
+ 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, _02231BB4 ; =0x02237288
+ 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, #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, _02231BB8 ; =0x022372A4
+ 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, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _02231BBC ; =0x0223726C
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #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, _02231BC0 ; =0x02237234
+ 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, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _02231BC4 ; =0x02237250
+ 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]
+ str r0, [r3]
+ add r0, r4, #0
+ mov r1, #5
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ nop
+_02231BB0: .word 0x02237210
+_02231BB4: .word 0x02237288
+_02231BB8: .word 0x022372A4
+_02231BBC: .word 0x0223726C
+_02231BC0: .word 0x02237234
+_02231BC4: .word 0x02237250
+ thumb_func_end MOD80_02231AB0
+
+ thumb_func_start MOD80_02231BC8
+MOD80_02231BC8: ; 0x02231BC8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ 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 MOD80_02231BC8
+
+ thumb_func_start MOD80_02231BF4
+MOD80_02231BF4: ; 0x02231BF4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0x3e
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #5
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x3e
+ bl FUN_02002EEC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x24]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0xc
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x18
+ add r2, r4, #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, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x1d
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD80_02231BF4
+
+ thumb_func_start MOD80_02231CBC
+MOD80_02231CBC: ; 0x02231CBC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ mov r2, #0xcf
+ add r5, r0, #0
+ lsl r2, r2, #4
+ add r0, sp, #0
+ add r1, r5, #0
+ add r2, r5, r2
+ mov r3, #1
+ bl MOD80_0222E5E8
+ add r0, r5, #0
+ add r0, #0xba
+ ldrh r0, [r0]
+ lsl r1, r0, #2
+ ldr r0, _02231E28 ; =0x022372C0
+ ldrh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xba
+ ldrh r0, [r0]
+ lsl r1, r0, #2
+ ldr r0, _02231E2C ; =0x022372C2
+ ldrh r0, [r0, r1]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ ldr r1, _02231E30 ; =0x00000D5C
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _02231E30 ; =0x00000D5C
+ mov r1, #4
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _02231E30 ; =0x00000D5C
+ mov r1, #1
+ ldr r0, [r5, r0]
+ bl FUN_02020238
+ ldr r6, _02231E28 ; =0x022372C0
+ mov r7, #0
+ add r4, r5, #0
+_02231D1E:
+ ldrh r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldrh r0, [r6, #2]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0x14
+ str r0, [sp, #0x24]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ ldr r1, _02231E34 ; =0x00000D64
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ add r1, r7, #6
+ bl FUN_02020130
+ ldr r0, _02231E34 ; =0x00000D64
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_02020238
+ add r7, r7, #1
+ add r6, r6, #4
+ add r4, r4, #4
+ cmp r7, #0x1e
+ blt _02231D1E
+ ldr r6, _02231E28 ; =0x022372C0
+ mov r7, #0
+ add r4, r5, #0
+_02231D5C:
+ ldrh r0, [r6]
+ add r0, r0, #4
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldrh r0, [r6, #2]
+ add r0, r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x24]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ ldr r1, _02231E38 ; =0x00000DDC
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #0x28
+ bl FUN_02020130
+ ldr r0, _02231E38 ; =0x00000DDC
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_02020238
+ add r7, r7, #1
+ add r6, r6, #4
+ add r4, r4, #4
+ cmp r7, #0x1e
+ blt _02231D5C
+ ldr r6, _02231E28 ; =0x022372C0
+ mov r7, #0
+ add r4, r5, #0
+_02231D9E:
+ ldrh r0, [r6]
+ add r0, #0xc
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldrh r0, [r6, #2]
+ add r0, r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x24]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ ldr r1, _02231E3C ; =0x00000E54
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #0x2a
+ bl FUN_02020130
+ ldr r0, _02231E3C ; =0x00000E54
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_02020238
+ add r7, r7, #1
+ add r6, r6, #4
+ add r4, r4, #4
+ cmp r7, #6
+ blt _02231D9E
+ mov r7, #0xe9
+ ldr r4, _02231E40 ; =0x02237208
+ mov r6, #0
+ lsl r7, r7, #4
+_02231DE2:
+ ldrh r0, [r4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldrh r0, [r4, #2]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0xc]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ mov r1, #0xe9
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0xe9
+ lsl r0, r0, #4
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ add r1, #0x26
+ bl FUN_02020130
+ ldr r0, [r5, r7]
+ mov r1, #1
+ bl FUN_02020238
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #2
+ blt _02231DE2
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231E28: .word 0x022372C0
+_02231E2C: .word 0x022372C2
+_02231E30: .word 0x00000D5C
+_02231E34: .word 0x00000D64
+_02231E38: .word 0x00000DDC
+_02231E3C: .word 0x00000E54
+_02231E40: .word 0x02237208
+ thumb_func_end MOD80_02231CBC
+
+ thumb_func_start MOD80_02231E44
+MOD80_02231E44: ; 0x02231E44
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r7, #0xe9
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #4
+_02231E50:
+ ldr r0, [r4, r7]
+ bl FUN_0201FFC8
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #2
+ blt _02231E50
+ ldr r0, _02231E98 ; =0x00000D5C
+ ldr r0, [r5, r0]
+ bl FUN_0201FFC8
+ ldr r7, _02231E9C ; =0x00000DDC
+ mov r6, #0
+ add r4, r5, #0
+_02231E6C:
+ ldr r0, _02231EA0 ; =0x00000D64
+ ldr r0, [r4, r0]
+ bl FUN_0201FFC8
+ ldr r0, [r4, r7]
+ bl FUN_0201FFC8
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #0x1e
+ blt _02231E6C
+ ldr r6, _02231EA4 ; =0x00000E54
+ mov r4, #0
+_02231E86:
+ ldr r0, [r5, r6]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02231E86
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02231E98: .word 0x00000D5C
+_02231E9C: .word 0x00000DDC
+_02231EA0: .word 0x00000D64
+_02231EA4: .word 0x00000E54
+ thumb_func_end MOD80_02231E44
+
+ thumb_func_start MOD80_02231EA8
+MOD80_02231EA8: ; 0x02231EA8
+ push {r3, r4, lr}
+ sub sp, #0x14
+ mov r3, #1
+ add r4, r0, #0
+ str r3, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ ldr r1, _02231FDC ; =0x00000EB8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ bl FUN_02019064
+ ldr r0, _02231FDC ; =0x00000EB8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r2, #0
+ mov r1, #0xb5
+ ldr r0, _02231FE0 ; =0x000F0E00
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02231FDC ; =0x00000EB8
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ mov r3, #1
+ bl MOD80_02236D50
+ mov r1, #3
+ str r1, [sp]
+ mov r0, #0xd
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #0x60
+ ldr r1, _02231FE4 ; =0x00000EC8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #5
+ bl FUN_02019064
+ ldr r0, _02231FE4 ; =0x00000EC8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ ldr r0, _02231FE4 ; =0x00000EC8
+ add r0, r4, r0
+ bl FUN_020191D0
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r3, #2
+ ldr r1, _02231FE8 ; =0x00000E98
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ add r0, #0xfc
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ bl FUN_02019064
+ ldr r0, _02231FE8 ; =0x00000E98
+ mov r1, #0
+ add r0, r4, r0
+ 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]
+ ldr r0, _02231FEC ; =0x0000013F
+ ldr r1, _02231FF0 ; =0x00000FB8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, _02231FF0 ; =0x00000FB8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, _02231FF4 ; =0x00000165
+ ldr r1, _02231FF8 ; =0x00000EE8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #1
+ mov r3, #0x19
+ bl FUN_02019064
+ ldr r0, _02231FF8 ; =0x00000EE8
+ mov r1, #6
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r3, #1
+ ldr r0, _02231FFC ; =0x00010306
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r1, _02232000 ; =0x00000B48
+ ldr r0, _02231FF8 ; =0x00000EE8
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ mov r2, #0
+ bl MOD80_02236D50
+ mov r1, #0xd
+ str r1, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, _02232004 ; =0x00000171
+ ldr r1, _02232008 ; =0x00000ED8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0x15
+ bl FUN_02019064
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+_02231FDC: .word 0x00000EB8
+_02231FE0: .word 0x000F0E00
+_02231FE4: .word 0x00000EC8
+_02231FE8: .word 0x00000E98
+_02231FEC: .word 0x0000013F
+_02231FF0: .word 0x00000FB8
+_02231FF4: .word 0x00000165
+_02231FF8: .word 0x00000EE8
+_02231FFC: .word 0x00010306
+_02232000: .word 0x00000B48
+_02232004: .word 0x00000171
+_02232008: .word 0x00000ED8
+ thumb_func_end MOD80_02231EA8
+
+ thumb_func_start MOD80_0223200C
+MOD80_0223200C: ; 0x0223200C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02232044 ; =0x00000FB8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _02232048 ; =0x00000EE8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _0223204C ; =0x00000ED8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _02232050 ; =0x00000E98
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _02232054 ; =0x00000EC8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _02232058 ; =0x00000EB8
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r4, pc}
+ nop
+_02232044: .word 0x00000FB8
+_02232048: .word 0x00000EE8
+_0223204C: .word 0x00000ED8
+_02232050: .word 0x00000E98
+_02232054: .word 0x00000EC8
+_02232058: .word 0x00000EB8
+ thumb_func_end MOD80_0223200C
+
+ thumb_func_start MOD80_0223205C
+MOD80_0223205C: ; 0x0223205C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x12
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _022320D4 ; =0x00000B44
+ str r0, [r4, r1]
+ mov r0, #0xb4
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _022320D8 ; =0x00000B4C
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x24]
+ cmp r0, #5
+ bne _02232090
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #0x15
+ bl FUN_0200A914
+ mov r1, #0xb5
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ b _022320A4
+_02232090:
+ cmp r0, #6
+ bne _022320A4
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #0x11
+ bl FUN_0200A914
+ mov r1, #0xb5
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+_022320A4:
+ ldr r0, _022320DC ; =0x00000B34
+ mov r1, #0x67
+ ldr r0, [r4, r0]
+ bl FUN_0200A914
+ ldr r1, _022320E0 ; =0x00000B48
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xba
+ ldrh r0, [r0]
+ cmp r0, #0x1e
+ bne _022320C4
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xba
+ strh r1, [r0]
+_022320C4:
+ mov r0, #0x3e
+ mov r1, #0x78
+ bl FUN_02016998
+ ldr r1, _022320E4 ; =0x00001004
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_022320D4: .word 0x00000B44
+_022320D8: .word 0x00000B4C
+_022320DC: .word 0x00000B34
+_022320E0: .word 0x00000B48
+_022320E4: .word 0x00001004
+ thumb_func_end MOD80_0223205C
+
+ thumb_func_start MOD80_022320E8
+MOD80_022320E8: ; 0x022320E8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02232118 ; =0x00001004
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _0223211C ; =0x00000B44
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _02232120 ; =0x00000B4C
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _02232124 ; =0x00000B48
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0xb5
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .align 2, 0
+_02232118: .word 0x00001004
+_0223211C: .word 0x00000B44
+_02232120: .word 0x00000B4C
+_02232124: .word 0x00000B48
+ thumb_func_end MOD80_022320E8
+
+ thumb_func_start MOD80_02232128
+MOD80_02232128: ; 0x02232128
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _02232138
+ mov r0, #1
+ str r0, [r4, #0x2c]
+_02232138:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02232128
+
+ thumb_func_start MOD80_0223213C
+MOD80_0223213C: ; 0x0223213C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD80_0223237C
+ ldr r0, [r5, #0x24]
+ cmp r0, #5
+ beq _0223214E
+ b _02232250
+_0223214E:
+ ldr r0, _02232370 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #2
+ tst r0, r2
+ beq _02232168
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r0, #2
+ str r0, [r5, #0x2c]
+ b _02232368
+_02232168:
+ mov r1, #1
+ add r0, r2, #0
+ tst r0, r1
+ beq _022321B6
+ add r0, r5, #0
+ add r0, #0xba
+ ldrh r0, [r0]
+ cmp r0, #0x1e
+ bne _0223218E
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r0, #2
+ str r0, [r5, #0x2c]
+ ldr r0, _02232374 ; =0x000005DC
+ bl FUN_020054C8
+ b _02232368
+_0223218E:
+ cmp r0, #0x1f
+ beq _022321B6
+ ldr r0, _02232374 ; =0x000005DC
+ bl FUN_020054C8
+ add r2, r5, #0
+ add r3, r5, #0
+ ldr r1, [r5]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02233054
+ cmp r0, #1
+ beq _022321B8
+ cmp r0, #2
+ beq _02232232
+_022321B6:
+ b _02232368
+_022321B8:
+ add r2, r5, #0
+ add r3, r5, #0
+ ldr r1, [r5]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FF8
+ cmp r0, #0
+ beq _02232214
+ add r2, r5, #0
+ add r3, r5, #0
+ ldr r1, [r5]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FB8
+ add r2, r0, #0
+ mov r0, #0xb3
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r0, _02232378 ; =0x00000F0F
+ mov r3, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x16
+ mov r2, #1
+ str r3, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r5, #0
+ mov r1, #3
+ mov r2, #7
+ bl MOD80_0222E6DC
+ b _02232368
+_02232214:
+ ldr r0, _02232378 ; =0x00000F0F
+ mov r2, #1
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x1a
+ mov r3, #0
+ str r2, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #1
+ bl MOD80_0222E6DC
+ b _02232368
+_02232232:
+ ldr r0, _02232378 ; =0x00000F0F
+ mov r2, #1
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x1b
+ mov r3, #0
+ str r2, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #1
+ bl MOD80_0222E6DC
+ b _02232368
+_02232250:
+ cmp r0, #6
+ bne _022322BA
+ ldr r0, _02232370 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _02232274
+ add r0, r5, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r0, #2
+ str r0, [r5, #0x2c]
+ ldr r0, _02232374 ; =0x000005DC
+ bl FUN_020054C8
+ b _02232368
+_02232274:
+ mov r0, #1
+ tst r0, r1
+ beq _02232368
+ add r0, r5, #0
+ add r0, #0xba
+ ldrh r3, [r0]
+ cmp r3, #0x1e
+ bne _0223229A
+ add r0, r5, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r0, #2
+ str r0, [r5, #0x2c]
+ ldr r0, _02232374 ; =0x000005DC
+ bl FUN_020054C8
+ b _02232368
+_0223229A:
+ cmp r3, #0x1f
+ beq _02232368
+ add r2, r5, #0
+ ldr r1, [r5]
+ add r2, #0xb8
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02233054
+ cmp r0, #0
+ beq _02232362
+ cmp r0, #1
+ beq _022322BC
+ cmp r0, #2
+ beq _02232362
+_022322BA:
+ b _02232368
+_022322BC:
+ add r2, r5, #0
+ add r3, r5, #0
+ ldr r1, [r5]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FB8
+ add r2, r5, #0
+ add r2, #0xc4
+ mov r1, #0xba
+ ldr r3, [r2]
+ mov r2, #0x49
+ lsl r1, r1, #2
+ lsl r2, r2, #2
+ add r1, r5, r1
+ mul r2, r3
+ add r1, r1, r2
+ add r4, r0, #0
+ bl MOD80_022330E4
+ cmp r0, #0
+ beq _0223235A
+ add r2, r5, #0
+ add r3, r5, #0
+ ldr r1, [r5]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FF8
+ cmp r0, #0
+ beq _0223233C
+ mov r0, #0xb3
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ACF8
+ ldr r0, _02232378 ; =0x00000F0F
+ mov r3, #0
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x12
+ mov r2, #1
+ str r3, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r5, #0
+ mov r1, #3
+ mov r2, #9
+ bl MOD80_0222E6DC
+ ldr r0, _02232374 ; =0x000005DC
+ bl FUN_020054C8
+ b _02232368
+_0223233C:
+ ldr r0, _02232378 ; =0x00000F0F
+ mov r2, #1
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x1a
+ mov r3, #0
+ str r2, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #1
+ bl MOD80_0222E6DC
+ b _02232368
+_0223235A:
+ ldr r0, _02232374 ; =0x000005DC
+ bl FUN_020054C8
+ b _02232368
+_02232362:
+ ldr r0, _02232374 ; =0x000005DC
+ bl FUN_020054C8
+_02232368:
+ mov r0, #3
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02232370: .word 0x021C48B8
+_02232374: .word 0x000005DC
+_02232378: .word 0x00000F0F
+ thumb_func_end MOD80_0223213C
+
+ thumb_func_start MOD80_0223237C
+MOD80_0223237C: ; 0x0223237C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _02232448 ; =0x021C48B8
+ mov r4, #0
+ ldr r0, [r0, #0x48]
+ mov r2, #0x40
+ add r1, r4, #0
+ tst r2, r0
+ beq _02232392
+ mov r1, #1
+ b _022323AE
+_02232392:
+ mov r2, #0x80
+ tst r2, r0
+ beq _0223239C
+ mov r1, #2
+ b _022323AE
+_0223239C:
+ mov r2, #0x20
+ tst r2, r0
+ beq _022323A6
+ mov r1, #3
+ b _022323AE
+_022323A6:
+ mov r2, #0x10
+ tst r0, r2
+ beq _022323AE
+ mov r1, #4
+_022323AE:
+ cmp r1, #0
+ beq _022323FE
+ add r0, r5, #0
+ add r0, #0xba
+ ldrh r0, [r0]
+ ldr r3, _0223244C ; =0x02237340
+ sub r2, r1, #1
+ lsl r6, r0, #2
+ add r1, r3, r6
+ ldrb r2, [r2, r1]
+ cmp r2, r0
+ beq _022323FE
+ cmp r2, #0x63
+ beq _022323CE
+ cmp r2, #0x65
+ bne _022323F6
+_022323CE:
+ add r0, r5, #0
+ add r0, #0xb8
+ ldrh r0, [r0]
+ mov r1, #0x13
+ sub r2, #0x64
+ bl MOD80_02232460
+ add r1, r5, #0
+ add r1, #0xb8
+ strh r0, [r1]
+ add r1, r5, #0
+ add r1, #0xb8
+ ldrh r1, [r1]
+ add r0, r5, #0
+ bl MOD80_02232D7C
+ ldr r0, _02232450 ; =0x000005DC
+ bl FUN_020054C8
+ b _022323FE
+_022323F6:
+ add r0, r5, #0
+ add r0, #0xba
+ mov r4, #1
+ strh r2, [r0]
+_022323FE:
+ cmp r4, #0
+ beq _02232420
+ ldr r0, _02232450 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ add r0, #0xba
+ ldrh r0, [r0]
+ ldr r1, _02232454 ; =0x022372C0
+ ldr r2, _02232458 ; =0x022372C2
+ lsl r3, r0, #2
+ ldr r0, _0223245C ; =0x00000D5C
+ ldrh r1, [r1, r3]
+ ldrh r2, [r2, r3]
+ ldr r0, [r5, r0]
+ bl MOD80_0222E6E4
+_02232420:
+ add r0, r5, #0
+ add r0, #0xba
+ ldrh r0, [r0]
+ cmp r0, #0x1f
+ beq _0223242E
+ cmp r0, #5
+ bhi _0223243A
+_0223242E:
+ ldr r0, _0223245C ; =0x00000D5C
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_02020238
+ pop {r4, r5, r6, pc}
+_0223243A:
+ ldr r0, _0223245C ; =0x00000D5C
+ mov r1, #1
+ ldr r0, [r5, r0]
+ bl FUN_02020238
+ pop {r4, r5, r6, pc}
+ nop
+_02232448: .word 0x021C48B8
+_0223244C: .word 0x02237340
+_02232450: .word 0x000005DC
+_02232454: .word 0x022372C0
+_02232458: .word 0x022372C2
+_0223245C: .word 0x00000D5C
+ thumb_func_end MOD80_0223237C
+
+ thumb_func_start MOD80_02232460
+MOD80_02232460: ; 0x02232460
+ add r0, r0, r2
+ bpl _02232468
+ sub r0, r1, #1
+ bx lr
+_02232468:
+ cmp r0, r1
+ bne _0223246E
+ mov r0, #0
+_0223246E:
+ bx lr
+ thumb_func_end MOD80_02232460
+
+ thumb_func_start MOD80_02232470
+MOD80_02232470: ; 0x02232470
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0
+ add r2, sp, #8
+ strb r0, [r2, #8]
+ mov r0, #1
+ strb r0, [r2, #9]
+ mov r0, #3
+ strb r0, [r2, #0xa]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0xf
+ bic r3, r1
+ strb r3, [r2, #0xb]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0x30
+ bic r3, r1
+ strb r3, [r2, #0xb]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0xc0
+ bic r3, r1
+ mov r1, #0x3e
+ strb r3, [r2, #0xb]
+ bl FUN_02012838
+ ldr r1, _02232510 ; =0x00000FC8
+ mov r2, #0x5e
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ ldr r1, _02232514 ; =0x00000B34
+ mov r3, #1
+ ldr r1, [r4, r1]
+ bl FUN_02012880
+ ldr r0, _02232510 ; =0x00000FC8
+ ldr r1, _02232514 ; =0x00000B34
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x5f
+ mov r3, #2
+ bl FUN_02012880
+ ldr r0, _02232510 ; =0x00000FC8
+ ldr r1, _02232514 ; =0x00000B34
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x60
+ mov r3, #3
+ bl FUN_02012880
+ ldr r0, _02232510 ; =0x00000FC8
+ mov r2, #0x1f
+ ldr r1, [r4, r0]
+ sub r0, #0xf0
+ str r1, [sp, #8]
+ add r0, r4, r0
+ mov r1, #1
+ mov r3, #0xb
+ str r0, [sp, #0xc]
+ bl FUN_0200CCA4
+ mov r0, #0x3e
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #8
+ mov r1, #9
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r1, #0xfd
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #8
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02232510: .word 0x00000FC8
+_02232514: .word 0x00000B34
+ thumb_func_end MOD80_02232470
+
+ thumb_func_start MOD80_02232518
+MOD80_02232518: ; 0x02232518
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02001C78
+ cmp r0, #3
+ bhi _0223253C
+ cmp r0, #1
+ blo _0223253A
+ beq _02232546
+ cmp r0, #2
+ beq _02232574
+ cmp r0, #3
+ beq _0223262E
+_0223253A:
+ b _0223265A
+_0223253C:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223262E
+ b _0223265A
+_02232546:
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _02232660 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02232664 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ mov r0, #2
+ str r0, [r5, #0x2c]
+ add r0, r5, #0
+ mov r1, #8
+ mov r2, #5
+ bl MOD80_0222E7A8
+ b _0223265A
+_02232574:
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _02232660 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02232664 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ add r2, r5, #0
+ add r3, r5, #0
+ ldr r1, [r5]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FB8
+ bl MOD80_02233018
+ cmp r0, #0
+ beq _022325CE
+ ldr r0, _02232668 ; =0x00000F0F
+ mov r2, #1
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x25
+ mov r3, #0
+ str r2, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #1
+ bl MOD80_0222E6DC
+ b _0223265A
+_022325CE:
+ add r0, r5, #0
+ add r0, #0xb8
+ ldrh r0, [r0]
+ mov r4, #0
+ bl MOD80_02232FAC
+ cmp r0, #0
+ beq _022325FE
+ add r1, r5, #0
+ ldr r0, [r5]
+ add r1, #0xba
+ ldrh r1, [r1]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9B0
+ mov r1, #0xa1
+ add r2, r4, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022325FE
+ mov r0, #0xe
+ mov r4, #1
+ str r0, [r5, #0x2c]
+_022325FE:
+ cmp r4, #0
+ bne _0223265A
+ add r2, r5, #0
+ add r3, r5, #0
+ ldr r1, [r5]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FB8
+ add r1, r5, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r0, #2
+ str r0, [r5, #0x2c]
+ add r0, r5, #0
+ mov r1, #6
+ mov r2, #0
+ bl MOD80_0222E7A8
+ b _0223265A
+_0223262E:
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _02232660 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02232664 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _0223266C ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200D0E0
+ mov r0, #1
+ str r0, [r5, #0x2c]
+_0223265A:
+ mov r0, #3
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232660: .word 0x00000FC8
+_02232664: .word 0x00000ED8
+_02232668: .word 0x00000F0F
+_0223266C: .word 0x00000E98
+ thumb_func_end MOD80_02232518
+
+ thumb_func_start MOD80_02232670
+MOD80_02232670: ; 0x02232670
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0
+ add r2, sp, #8
+ strb r0, [r2, #8]
+ mov r0, #1
+ strb r0, [r2, #9]
+ mov r0, #3
+ strb r0, [r2, #0xa]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0xf
+ bic r3, r1
+ strb r3, [r2, #0xb]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0x30
+ bic r3, r1
+ strb r3, [r2, #0xb]
+ ldrb r3, [r2, #0xb]
+ mov r1, #0xc0
+ bic r3, r1
+ mov r1, #0x3e
+ strb r3, [r2, #0xb]
+ bl FUN_02012838
+ ldr r1, _02232710 ; =0x00000FC8
+ mov r2, #0x54
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ ldr r1, _02232714 ; =0x00000B34
+ mov r3, #1
+ ldr r1, [r4, r1]
+ bl FUN_02012880
+ ldr r0, _02232710 ; =0x00000FC8
+ ldr r1, _02232714 ; =0x00000B34
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x55
+ mov r3, #2
+ bl FUN_02012880
+ ldr r0, _02232710 ; =0x00000FC8
+ ldr r1, _02232714 ; =0x00000B34
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x56
+ mov r3, #3
+ bl FUN_02012880
+ ldr r0, _02232710 ; =0x00000FC8
+ mov r2, #0x1f
+ ldr r1, [r4, r0]
+ sub r0, #0xf0
+ str r1, [sp, #8]
+ add r0, r4, r0
+ mov r1, #0
+ mov r3, #0xb
+ str r0, [sp, #0xc]
+ bl FUN_0200CCA4
+ mov r0, #0x3e
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #8
+ mov r1, #9
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r1, #0xfd
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #0xa
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02232710: .word 0x00000FC8
+_02232714: .word 0x00000B34
+ thumb_func_end MOD80_02232670
+
+ thumb_func_start MOD80_02232718
+MOD80_02232718: ; 0x02232718
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02001C78
+ cmp r0, #3
+ bhi _0223273C
+ cmp r0, #1
+ blo _0223273A
+ beq _02232746
+ cmp r0, #2
+ beq _02232774
+ cmp r0, #3
+ beq _0223280A
+_0223273A:
+ b _02232836
+_0223273C:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223280A
+ b _02232836
+_02232746:
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223283C ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02232840 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ mov r0, #2
+ str r0, [r5, #0x2c]
+ add r0, r5, #0
+ mov r1, #8
+ mov r2, #6
+ bl MOD80_0222E7A8
+ b _02232836
+_02232774:
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223283C ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02232840 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ add r2, r5, #0
+ add r3, r5, #0
+ ldr r1, [r5]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FB8
+ bl MOD80_02233018
+ cmp r0, #0
+ beq _022327CE
+ ldr r0, _02232844 ; =0x00000F0F
+ mov r2, #1
+ str r0, [sp]
+ add r0, r5, #0
+ mov r1, #0x25
+ mov r3, #0
+ str r2, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #1
+ bl MOD80_0222E6DC
+ b _02232836
+_022327CE:
+ add r0, r5, #0
+ add r0, #0xb8
+ ldrh r0, [r0]
+ mov r4, #0
+ bl MOD80_02232FAC
+ cmp r0, #0
+ beq _022327FE
+ add r1, r5, #0
+ ldr r0, [r5]
+ add r1, #0xba
+ ldrh r1, [r1]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9B0
+ mov r1, #0xa1
+ add r2, r4, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _022327FE
+ mov r0, #0xb
+ mov r4, #1
+ str r0, [r5, #0x2c]
+_022327FE:
+ cmp r4, #0
+ bne _02232836
+ add r0, r5, #0
+ bl MOD80_02232990
+ b _02232836
+_0223280A:
+ mov r0, #0xfd
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223283C ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02232840 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _02232848 ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200D0E0
+ mov r0, #1
+ str r0, [r5, #0x2c]
+_02232836:
+ mov r0, #3
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223283C: .word 0x00000FC8
+_02232840: .word 0x00000ED8
+_02232844: .word 0x00000F0F
+_02232848: .word 0x00000E98
+ thumb_func_end MOD80_02232718
+
+ thumb_func_start MOD80_0223284C
+MOD80_0223284C: ; 0x0223284C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _0223285C
+ cmp r0, #8
+ bne _0223287C
+_0223285C:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, _022328A0 ; =0x0000100C
+ mov r1, #1
+ str r1, [r4, r0]
+ b _02232894
+_0223287C:
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+_02232894:
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #4
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_022328A0: .word 0x0000100C
+ thumb_func_end MOD80_0223284C
+
+ thumb_func_start MOD80_022328A4
+MOD80_022328A4: ; 0x022328A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _022328C0 ; =0x000001AD
+ mov r1, #0xf
+ bl MOD80_0222E6A8
+ ldr r1, _022328C4 ; =0x00000FCC
+ str r0, [r4, r1]
+ mov r0, #6
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_022328C0: .word 0x000001AD
+_022328C4: .word 0x00000FCC
+ thumb_func_end MOD80_022328A4
+
+ thumb_func_start MOD80_022328C8
+MOD80_022328C8: ; 0x022328C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022328FC ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _022328F8
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _022328EA
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ b _022328F8
+_022328EA:
+ mov r0, #2
+ mov r1, #0
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+_022328F8:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_022328FC: .word 0x00000FCC
+ thumb_func_end MOD80_022328C8
+
+ thumb_func_start MOD80_02232900
+MOD80_02232900: ; 0x02232900
+ push {r4, lr}
+ sub sp, #8
+ ldr r1, _02232928 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r2, #1
+ mov r1, #0x19
+ mov r3, #0
+ str r2, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0xc
+ bl MOD80_0222E6DC
+ mov r0, #3
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02232928: .word 0x00000F0F
+ thumb_func_end MOD80_02232900
+
+ thumb_func_start MOD80_0223292C
+MOD80_0223292C: ; 0x0223292C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _02232948 ; =0x000001AD
+ mov r1, #0xd
+ bl MOD80_0222E6A8
+ ldr r1, _0223294C ; =0x00000FCC
+ str r0, [r4, r1]
+ mov r0, #0xd
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02232948: .word 0x000001AD
+_0223294C: .word 0x00000FCC
+ thumb_func_end MOD80_0223292C
+
+ thumb_func_start MOD80_02232950
+MOD80_02232950: ; 0x02232950
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02232988 ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02232982
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _0223297C
+ ldr r0, _0223298C ; =0x00000FB8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200D0E0
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ b _02232982
+_0223297C:
+ add r0, r4, #0
+ bl MOD80_02232990
+_02232982:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02232988: .word 0x00000FCC
+_0223298C: .word 0x00000FB8
+ thumb_func_end MOD80_02232950
+
+ thumb_func_start MOD80_02232990
+MOD80_02232990: ; 0x02232990
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r1, #0x7e
+ add r0, #0xc4
+ lsl r1, r1, #2
+ add r2, r4, r1
+ ldr r0, [r0]
+ sub r1, #0xd4
+ mul r1, r0
+ add r0, r2, r1
+ bl MOD80_022331F8
+ cmp r0, #0
+ beq _022329E6
+ add r0, r4, #0
+ add r0, #0xb8
+ ldrh r0, [r0]
+ cmp r0, #0x12
+ beq _022329E6
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ cmp r0, #6
+ bne _022329E6
+ ldr r0, _02232A2C ; =0x00000F0F
+ mov r2, #1
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x1c
+ mov r3, #0
+ str r2, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #1
+ bl MOD80_0222E6DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_022329E6:
+ add r2, r4, #0
+ add r3, r4, #0
+ ldr r1, [r4]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FB8
+ add r1, r4, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ ldr r0, _02232A30 ; =0x0000100C
+ mov r1, #1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #9
+ bl MOD80_0222E7A8
+ add r0, r4, #0
+ add r0, #0xd4
+ add r1, r4, #0
+ bl MOD80_0223311C
+ mov r0, #0
+ add r4, #0xc0
+ str r0, [r4]
+ mov r0, #1
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_02232A2C: .word 0x00000F0F
+_02232A30: .word 0x0000100C
+ thumb_func_end MOD80_02232990
+
+ thumb_func_start MOD80_02232A34
+MOD80_02232A34: ; 0x02232A34
+ push {r4, lr}
+ sub sp, #8
+ ldr r1, _02232A5C ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r2, #1
+ mov r1, #0x19
+ mov r3, #0
+ str r2, [sp, #4]
+ bl MOD80_02232B34
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0xf
+ bl MOD80_0222E6DC
+ mov r0, #3
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02232A5C: .word 0x00000F0F
+ thumb_func_end MOD80_02232A34
+
+ thumb_func_start MOD80_02232A60
+MOD80_02232A60: ; 0x02232A60
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _02232A7C ; =0x000001AD
+ mov r1, #0xd
+ bl MOD80_0222E6A8
+ ldr r1, _02232A80 ; =0x00000FCC
+ str r0, [r4, r1]
+ mov r0, #0x10
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02232A7C: .word 0x000001AD
+_02232A80: .word 0x00000FCC
+ thumb_func_end MOD80_02232A60
+
+ thumb_func_start MOD80_02232A84
+MOD80_02232A84: ; 0x02232A84
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02232AE0 ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02232ADA
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _02232AB0
+ ldr r0, _02232AE4 ; =0x00000FB8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200D0E0
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ b _02232ADA
+_02232AB0:
+ add r2, r4, #0
+ add r3, r4, #0
+ ldr r1, [r4]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FB8
+ add r1, r4, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ bl MOD80_0222E7A8
+_02232ADA:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02232AE0: .word 0x00000FCC
+_02232AE4: .word 0x00000FB8
+ thumb_func_end MOD80_02232A84
+
+ thumb_func_start MOD80_02232AE8
+MOD80_02232AE8: ; 0x02232AE8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02232B02
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_02232B02:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02232AE8
+
+ thumb_func_start MOD80_02232B08
+MOD80_02232B08: ; 0x02232B08
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02232B2C
+ ldr r0, _02232B30 ; =0x00000FB8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200D0E0
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_02232B2C:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02232B30: .word 0x00000FB8
+ thumb_func_end MOD80_02232B08
+
+ thumb_func_start MOD80_02232B34
+MOD80_02232B34: ; 0x02232B34
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _02232B9C ; =0x00000B34
+ add r6, r2, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0xb3
+ add r7, r0, #0
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, #0x1c
+ ldr r1, [r5, r1]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ bne _02232B60
+ ldr r0, _02232BA0 ; =0x00000E98
+ b _02232B62
+_02232B60:
+ ldr r0, _02232BA4 ; =0x00000FB8
+_02232B62:
+ add r4, r5, r0
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r6, [sp, #4]
+ ldr r2, _02232BA8 ; =0x00000B4C
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232B9C: .word 0x00000B34
+_02232BA0: .word 0x00000E98
+_02232BA4: .word 0x00000FB8
+_02232BA8: .word 0x00000B4C
+ thumb_func_end MOD80_02232B34
+
+ thumb_func_start MOD80_02232BAC
+MOD80_02232BAC: ; 0x02232BAC
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ add r2, r3, #0
+ bl FUN_02006704
+ add r4, r0, #0
+ beq _02232BCE
+ add r1, r5, #0
+ bl FUN_020B0030
+ cmp r0, #0
+ bne _02232BCE
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02232BCE:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02232BAC
+
+ thumb_func_start MOD80_02232BD4
+MOD80_02232BD4: ; 0x02232BD4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r2, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ str r0, [sp]
+ add r7, r3, #0
+ ldr r4, [sp, #0x28]
+ bl FUN_0206B6D4
+ add r1, r0, #0
+ ldr r0, [sp, #0x24]
+ add r2, sp, #8
+ mov r3, #0x3e
+ bl MOD80_02232BAC
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ add r1, r4, #0
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ add r1, #0xc
+ lsl r2, r2, #8
+ bl MIi_CpuCopyFast
+ lsl r0, r7, #4
+ add r0, #0xc
+ lsl r0, r0, #5
+ str r0, [r4]
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ add r2, r6, #0
+ bl FUN_0206B7BC
+ add r0, r0, #3
+ str r0, [r4, #4]
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD80_02232BD4
+
+ thumb_func_start MOD80_02232C2C
+MOD80_02232C2C: ; 0x02232C2C
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_020687C8
+ strb r0, [r4, #3]
+ pop {r4, pc}
+ thumb_func_end MOD80_02232C2C
+
+ thumb_func_start MOD80_02232C38
+MOD80_02232C38: ; 0x02232C38
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _02232C84 ; =0x00001010
+ mov r6, #2
+ lsl r6, r6, #8
+ add r7, r6, #0
+ ldr r5, [r0, r1]
+ str r0, [sp]
+ mov r4, #0
+ add r7, #0xc
+_02232C4A:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _02232C6E
+ add r0, r5, #0
+ add r0, #0xc
+ add r1, r6, #0
+ bl DC_FlushRange
+ add r0, r5, #0
+ ldr r1, [r5]
+ add r0, #0xc
+ add r2, r6, #0
+ bl GX_LoadOBJ
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #4]
+ bl FUN_02020248
+_02232C6E:
+ add r4, r4, #1
+ add r5, r5, r7
+ cmp r4, #0x1e
+ blt _02232C4A
+ ldr r1, _02232C84 ; =0x00001010
+ ldr r0, [sp]
+ ldr r0, [r0, r1]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232C84: .word 0x00001010
+ thumb_func_end MOD80_02232C38
+
+ thumb_func_start MOD80_02232C88
+MOD80_02232C88: ; 0x02232C88
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ str r1, [sp, #0xc]
+ add r7, r2, #0
+ add r6, r3, #0
+ ldr r4, [sp, #0x40]
+ bl FUN_02066A6C
+ add r0, r5, #0
+ mov r1, #0xab
+ mov r2, #0
+ bl FUN_020672BC
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r6]
+ add r0, r5, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020672BC
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020672BC
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020672BC
+ str r0, [sp, #0x18]
+ ldrh r0, [r6]
+ mov r1, #0x6f
+ mov r2, #0
+ strh r0, [r4]
+ add r0, r5, #0
+ bl FUN_020672BC
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02232CF2
+ mov r0, #0
+ strb r0, [r4, #3]
+_02232CF2:
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02066A94
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02232D60
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ str r0, [sp]
+ ldr r0, [sp, #0x3c]
+ ldr r2, [sp, #0x14]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x44]
+ ldr r3, [sp, #0x38]
+ str r0, [sp, #8]
+ ldrh r0, [r6]
+ bl MOD80_02232BD4
+ ldr r0, [sp, #0xc]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _02232D54
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [sp, #0x18]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _02232D48
+ add r0, r7, #0
+ mov r1, #0x29
+ bl FUN_02020130
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_02232D48:
+ add r0, r7, #0
+ mov r1, #0x28
+ bl FUN_02020130
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_02232D54:
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_02232D60:
+ ldr r0, [sp, #0xc]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [sp, #0x44]
+ mov r1, #0
+ str r1, [r0, #8]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02232C88
+
+ thumb_func_start MOD80_02232D7C
+MOD80_02232D7C: ; 0x02232D7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x68
+ add r5, r0, #0
+ ldr r0, [r5]
+ str r1, [sp, #0x10]
+ ldr r0, [r0, #0xc]
+ ldr r1, _02232F7C ; =0x00003D68
+ str r0, [sp, #0x20]
+ mov r0, #3
+ bl FUN_020169D8
+ ldr r1, _02232F80 ; =0x00001010
+ str r0, [sp, #0x18]
+ str r0, [r5, r1]
+ mov r0, #0x13
+ mov r1, #0x3e
+ bl FUN_02006670
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ blt _02232E3A
+ cmp r0, #0x12
+ bge _02232E3A
+ ldr r6, _02232F84 ; =0x00001004
+ mov r4, #0
+_02232DB0:
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x10]
+ add r2, r4, #0
+ bl FUN_0206B5E4
+ ldr r2, [r5, r6]
+ lsl r1, r4, #2
+ add r1, r2, r1
+ bl MOD80_02232C2C
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x1e
+ blo _02232DB0
+ mov r4, #0
+_02232DD0:
+ ldr r0, _02232F84 ; =0x00001004
+ lsl r6, r4, #2
+ ldr r1, [r5, r0]
+ mov r0, #0
+ strh r0, [r1, r6]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x10]
+ add r2, r4, #0
+ add r7, r5, r6
+ bl FUN_0206B5E4
+ ldr r1, [sp, #0x1c]
+ str r4, [sp]
+ str r1, [sp, #4]
+ ldr r1, _02232F84 ; =0x00001004
+ add r2, r4, #0
+ ldr r1, [r5, r1]
+ add r3, sp, #0x2c
+ add r1, r1, r6
+ str r1, [sp, #8]
+ mov r1, #0x83
+ lsl r1, r1, #2
+ mul r2, r1
+ ldr r1, [sp, #0x18]
+ lsl r6, r4, #1
+ add r1, r1, r2
+ str r1, [sp, #0xc]
+ ldr r1, _02232F88 ; =0x00000D64
+ ldr r2, _02232F8C ; =0x00000DDC
+ ldr r1, [r7, r1]
+ ldr r2, [r7, r2]
+ add r3, r3, r6
+ bl MOD80_02232C88
+ cmp r4, #6
+ bhs _02232E22
+ ldr r0, _02232F90 ; =0x00000E54
+ mov r1, #0
+ ldr r0, [r7, r0]
+ bl FUN_020200A0
+_02232E22:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x1e
+ blo _02232DD0
+ ldr r2, _02232F94 ; =0x00000B44
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r5, r2]
+ bl FUN_0206B484
+ b _02232F22
+_02232E3A:
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ mov r4, #0
+ str r0, [sp, #0x14]
+ cmp r0, #0
+ ble _02232EC8
+_02232E4A:
+ ldr r0, [r5]
+ add r1, r4, #0
+ ldr r0, [r0, #8]
+ bl FUN_0206B9B0
+ str r0, [sp, #0x24]
+ bl FUN_020690E4
+ ldr r1, _02232F84 ; =0x00001004
+ lsl r6, r4, #2
+ ldr r1, [r5, r1]
+ str r0, [sp, #0x28]
+ add r1, r1, r6
+ bl MOD80_02232C2C
+ ldr r0, [sp, #0x1c]
+ str r4, [sp]
+ str r0, [sp, #4]
+ ldr r0, _02232F84 ; =0x00001004
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ ldr r2, _02232F8C ; =0x00000DDC
+ add r0, r0, r6
+ str r0, [sp, #8]
+ mov r0, #0x83
+ lsl r0, r0, #2
+ mul r1, r0
+ ldr r0, [sp, #0x18]
+ add r7, r5, r6
+ add r0, r0, r1
+ str r0, [sp, #0xc]
+ ldr r1, _02232F88 ; =0x00000D64
+ ldr r0, [sp, #0x28]
+ ldr r1, [r7, r1]
+ ldr r2, [r7, r2]
+ lsl r6, r4, #1
+ add r3, sp, #0x2c
+ add r3, r3, r6
+ bl MOD80_02232C88
+ ldr r0, [sp, #0x24]
+ mov r1, #0xa1
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ ldr r0, _02232F90 ; =0x00000E54
+ beq _02232EB4
+ ldr r0, [r7, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _02232EBC
+_02232EB4:
+ ldr r0, [r7, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02232EBC:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, [sp, #0x14]
+ cmp r4, r0
+ blt _02232E4A
+_02232EC8:
+ cmp r4, #0x1e
+ bhs _02232F14
+ mov r7, #0
+_02232ECE:
+ ldr r0, _02232F84 ; =0x00001004
+ lsl r1, r4, #2
+ ldr r0, [r5, r0]
+ add r6, r5, r1
+ strh r7, [r0, r1]
+ ldr r0, _02232F88 ; =0x00000D64
+ add r1, r7, #0
+ ldr r0, [r6, r0]
+ bl FUN_020200A0
+ ldr r0, _02232F8C ; =0x00000DDC
+ mov r1, #0
+ ldr r0, [r6, r0]
+ bl FUN_020200A0
+ mov r0, #0x83
+ lsl r0, r0, #2
+ add r1, r4, #0
+ mul r1, r0
+ ldr r0, [sp, #0x18]
+ add r1, r0, r1
+ mov r0, #0
+ str r0, [r1, #8]
+ cmp r4, #6
+ bhs _02232F0A
+ ldr r0, _02232F90 ; =0x00000E54
+ mov r1, #0
+ ldr r0, [r6, r0]
+ bl FUN_020200A0
+_02232F0A:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x1e
+ blo _02232ECE
+_02232F14:
+ ldr r2, _02232F98 ; =0x00000B34
+ mov r1, #0x59
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+_02232F22:
+ ldr r0, [sp, #0x1c]
+ bl FUN_020066F4
+ ldr r0, _02232F9C ; =0x00000EC8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_02019620
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _02232FA0 ; =0x00010200
+ ldr r1, _02232F94 ; =0x00000B44
+ str r0, [sp, #4]
+ ldr r0, _02232F9C ; =0x00000EC8
+ ldr r1, [r5, r1]
+ add r0, r5, r0
+ mov r2, #0
+ mov r3, #5
+ bl MOD80_02236D50
+ ldr r0, [r5, #0x24]
+ cmp r0, #6
+ bne _02232F72
+ add r3, r5, #0
+ add r3, #0xc4
+ mov r2, #0xba
+ ldr r4, [r3]
+ mov r3, #0x49
+ ldr r0, _02232F84 ; =0x00001004
+ lsl r2, r2, #2
+ lsl r3, r3, #2
+ ldr r1, _02232F88 ; =0x00000D64
+ add r2, r5, r2
+ mul r3, r4
+ add r2, r2, r3
+ ldr r0, [r5, r0]
+ ldr r3, [sp, #0x18]
+ add r1, r5, r1
+ bl MOD80_022331C4
+_02232F72:
+ ldr r1, _02232FA4 ; =MOD80_02232C38
+ ldr r0, _02232FA8 ; =0x00001014
+ str r1, [r5, r0]
+ add sp, #0x68
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02232F7C: .word 0x00003D68
+_02232F80: .word 0x00001010
+_02232F84: .word 0x00001004
+_02232F88: .word 0x00000D64
+_02232F8C: .word 0x00000DDC
+_02232F90: .word 0x00000E54
+_02232F94: .word 0x00000B44
+_02232F98: .word 0x00000B34
+_02232F9C: .word 0x00000EC8
+_02232FA0: .word 0x00010200
+_02232FA4: .word MOD80_02232C38
+_02232FA8: .word 0x00001014
+ thumb_func_end MOD80_02232D7C
+
+ thumb_func_start MOD80_02232FAC
+MOD80_02232FAC: ; 0x02232FAC
+ cmp r0, #0x12
+ bne _02232FB4
+ mov r0, #1
+ bx lr
+_02232FB4:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD80_02232FAC
+
+ thumb_func_start MOD80_02232FB8
+MOD80_02232FB8: ; 0x02232FB8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ add r7, r1, #0
+ add r4, r3, #0
+ bl MOD80_02232FAC
+ cmp r0, #0
+ beq _02232FEA
+ add r0, r5, #0
+ bl FUN_0206B9AC
+ sub r0, r0, #1
+ cmp r4, r0
+ ble _02232FDC
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02232FDC:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ pop {r3, r4, r5, r6, r7, pc}
+_02232FEA:
+ add r0, r7, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl FUN_0206B5E4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02232FB8
+
+ thumb_func_start MOD80_02232FF8
+MOD80_02232FF8: ; 0x02232FF8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r2, #0
+ bl MOD80_02232FAC
+ cmp r0, #0
+ beq _02233014
+ add r0, r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #2
+ bge _02233014
+ mov r0, #0
+ pop {r4, pc}
+_02233014:
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD80_02232FF8
+
+ thumb_func_start MOD80_02233018
+MOD80_02233018: ; 0x02233018
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r4, #0
+ bl FUN_02066A6C
+ ldr r5, _02233050 ; =0x02237220
+ str r0, [sp]
+ add r6, r4, #0
+_02233028:
+ ldrh r1, [r5]
+ add r0, r7, #0
+ mov r2, #0
+ bl FUN_020672BC
+ add r6, r6, #1
+ add r4, r4, r0
+ add r5, r5, #2
+ cmp r6, #0xa
+ blt _02233028
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl FUN_02066A94
+ cmp r4, #0
+ beq _0223304C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223304C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02233050: .word 0x02237220
+ thumb_func_end MOD80_02233018
+
+ thumb_func_start MOD80_02233054
+MOD80_02233054: ; 0x02233054
+ push {r4, lr}
+ bl MOD80_02232FB8
+ add r4, r0, #0
+ bne _02233062
+ mov r0, #0
+ pop {r4, pc}
+_02233062:
+ mov r1, #0xab
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ bne _02233072
+ mov r0, #0
+ pop {r4, pc}
+_02233072:
+ add r0, r4, #0
+ mov r1, #0xac
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ beq _02233084
+ mov r0, #2
+ pop {r4, pc}
+_02233084:
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD80_02233054
+
+ thumb_func_start MOD80_02233088
+MOD80_02233088: ; 0x02233088
+ push {r3, r4}
+ mov r4, #0
+ ldrsh r3, [r0, r4]
+ ldrsh r2, [r1, r4]
+ cmp r3, r2
+ beq _0223309A
+ add r0, r4, #0
+ pop {r3, r4}
+ bx lr
+_0223309A:
+ mov r2, #2
+ ldrsb r3, [r1, r2]
+ cmp r3, #3
+ beq _022330AE
+ ldrsb r2, [r0, r2]
+ cmp r3, r2
+ beq _022330AE
+ add r0, r4, #0
+ pop {r3, r4}
+ bx lr
+_022330AE:
+ mov r2, #3
+ ldrsb r3, [r0, r2]
+ cmp r3, #0
+ bne _022330BC
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+_022330BC:
+ ldrsb r0, [r1, r2]
+ cmp r0, #0
+ beq _022330CC
+ cmp r0, r3
+ ble _022330CC
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+_022330CC:
+ mov r0, #4
+ ldrsb r0, [r1, r0]
+ cmp r0, #0
+ beq _022330DE
+ cmp r0, r3
+ bge _022330DE
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+_022330DE:
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD80_02233088
+
+ thumb_func_start MOD80_022330E4
+MOD80_022330E4: ; 0x022330E4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #5
+ mov r2, #0
+ add r5, r0, #0
+ bl FUN_020672BC
+ add r1, sp, #0
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020672BC
+ add r1, r0, #1
+ add r0, sp, #0
+ strb r1, [r0, #2]
+ add r0, r5, #0
+ bl FUN_020687C8
+ add r1, sp, #0
+ strb r0, [r1, #3]
+ add r0, sp, #0
+ add r1, r4, #0
+ bl MOD80_02233088
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD80_022330E4
+
+ thumb_func_start MOD80_0223311C
+MOD80_0223311C: ; 0x0223311C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ add r1, sp, #0
+ strh r0, [r1, #6]
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020672BC
+ add r1, r0, #1
+ add r0, sp, #0
+ strb r1, [r0, #8]
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_020687C8
+ add r1, sp, #0
+ strb r0, [r1, #9]
+ add r0, r4, #0
+ ldrh r2, [r1, #6]
+ add r0, #0xec
+ strh r2, [r0]
+ add r0, r4, #0
+ ldrh r1, [r1, #8]
+ add r0, #0xee
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD80_02234288
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ add r2, r5, r0
+ add r5, #0xc4
+ ldr r1, [r5]
+ sub r0, #0xd4
+ mul r0, r1
+ add r0, r2, r0
+ bl FUN_020690E4
+ mov r1, #5
+ mov r2, #0
+ add r5, r0, #0
+ bl FUN_020672BC
+ add r1, sp, #0
+ strh r0, [r1]
+ add r0, r5, #0
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020672BC
+ add r0, r0, #1
+ add r1, sp, #0
+ strb r0, [r1, #2]
+ mov r0, #0
+ strb r0, [r1, #3]
+ strb r0, [r1, #4]
+ add r0, r4, #0
+ ldrh r2, [r1]
+ add r0, #0xf0
+ strh r2, [r0]
+ add r0, r4, #0
+ ldrh r2, [r1, #2]
+ add r0, #0xf2
+ add r4, #0xf4
+ strh r2, [r0]
+ ldrh r0, [r1, #4]
+ strh r0, [r4]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD80_0223311C
+
+ thumb_func_start MOD80_022331C4
+MOD80_022331C4: ; 0x022331C4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ mov r6, #0
+_022331CE:
+ mov r0, #0
+ ldrsh r0, [r5, r0]
+ cmp r0, #0
+ beq _022331E8
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD80_02233088
+ cmp r0, #0
+ bne _022331E8
+ ldr r0, [r4, #4]
+ add r0, r0, #3
+ str r0, [r4, #4]
+_022331E8:
+ mov r0, #0x83
+ lsl r0, r0, #2
+ add r6, r6, #1
+ add r5, r5, #4
+ add r4, r4, r0
+ cmp r6, #0x1e
+ blt _022331CE
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD80_022331C4
+
+ thumb_func_start MOD80_022331F8
+MOD80_022331F8: ; 0x022331F8
+ push {r3, lr}
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ cmp r0, #0
+ beq _02233212
+ mov r0, #1
+ pop {r3, pc}
+_02233212:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD80_022331F8
+
+ thumb_func_start MOD80_02233218
+MOD80_02233218: ; 0x02233218
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD80_02233618
+ ldr r0, [r4, #4]
+ bl MOD80_02233358
+ add r0, r4, #0
+ bl MOD80_0223346C
+ add r0, r4, #0
+ bl MOD80_02233500
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD80_02236D84
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ ldr r2, _02233298 ; =0x00000B34
+ str r0, [sp, #4]
+ sub r0, r0, #4
+ str r0, [sp, #8]
+ add r1, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, r2, #4
+ ldr r3, _0223329C ; =0x00000F08
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r3, r4, r3
+ bl MOD80_02233FB4
+ ldr r1, _022332A0 ; =0x00000B18
+ add r3, r4, #0
+ add r0, r4, r1
+ str r0, [sp]
+ add r0, r1, #0
+ add r0, #0x1c
+ add r1, #0x18
+ ldr r2, _022332A4 ; =0x00000F38
+ add r3, #0xbc
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ ldr r3, [r3]
+ add r2, r4, r2
+ bl MOD80_022340DC
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02233298: .word 0x00000B34
+_0223329C: .word 0x00000F08
+_022332A0: .word 0x00000B18
+_022332A4: .word 0x00000F38
+ thumb_func_end MOD80_02233218
+
+ thumb_func_start MOD80_022332A8
+MOD80_022332A8: ; 0x022332A8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222E79C
+ bl FUN_02033EEC
+ ldr r1, [r4, #0x2c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _022332C4 ; =0x02237B84
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_022332C4: .word 0x02237B84
+ thumb_func_end MOD80_022332A8
+
+ thumb_func_start MOD80_022332C8
+MOD80_022332C8: ; 0x022332C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02033ED0
+ add r0, r4, #0
+ bl MOD80_02233684
+ add r0, r4, #0
+ bl MOD80_022335E0
+ ldr r0, [r4, #4]
+ bl MOD80_02233440
+ add r0, r4, #0
+ bl MOD80_0222E7B0
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD80_022332C8
+
+ thumb_func_start MOD80_022332EC
+MOD80_022332EC: ; 0x022332EC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _0223334C ; =0x00000B34
+ add r4, r2, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ mov r1, #0xb3
+ add r6, r0, #0
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, #0x1c
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ ldr r0, _02233350 ; =0x00000E98
+ mov r1, #0xf
+ add r0, r5, r0
+ bl FUN_02019620
+ ldr r0, _02233350 ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ ldr r0, _02233350 ; =0x00000E98
+ ldr r2, _02233354 ; =0x00000B4C
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0223334C: .word 0x00000B34
+_02233350: .word 0x00000E98
+_02233354: .word 0x00000B4C
+ thumb_func_end MOD80_022332EC
+
+ thumb_func_start MOD80_02233358
+MOD80_02233358: ; 0x02233358
+ push {r4, r5, lr}
+ sub sp, #0x8c
+ ldr r5, _0223342C ; =0x02237420
+ add r4, r0, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x70
+ 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, _02233430 ; =0x0223743C
+ 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, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _02233434 ; =0x02237458
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _02233438 ; =0x02237404
+ 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, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _0223343C ; =0x022373E8
+ 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, #5
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ add sp, #0x8c
+ pop {r4, r5, pc}
+ nop
+_0223342C: .word 0x02237420
+_02233430: .word 0x0223743C
+_02233434: .word 0x02237458
+_02233438: .word 0x02237404
+_0223343C: .word 0x022373E8
+ thumb_func_end MOD80_02233358
+
+ thumb_func_start MOD80_02233440
+MOD80_02233440: ; 0x02233440
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ 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 MOD80_02233440
+
+ thumb_func_start MOD80_0223346C
+MOD80_0223346C: ; 0x0223346C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0x3e
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x68
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x3e
+ bl FUN_02002EEC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x24]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0xb
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x68
+ mov r1, #0x17
+ add r2, r4, #0
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD80_0223346C
+
+ thumb_func_start MOD80_02233500
+MOD80_02233500: ; 0x02233500
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r3, #1
+ add r7, r0, #0
+ str r3, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ ldr r1, _022335CC ; =0x00000EB8
+ str r0, [sp, #0x10]
+ ldr r0, [r7, #4]
+ add r1, r7, r1
+ mov r2, #0
+ bl FUN_02019064
+ ldr r0, _022335CC ; =0x00000EB8
+ mov r1, #0
+ add r0, r7, r0
+ bl FUN_02019620
+ mov r2, #0
+ mov r1, #0xb5
+ ldr r0, _022335D0 ; =0x000F0E00
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r0, _022335CC ; =0x00000EB8
+ lsl r1, r1, #4
+ ldr r1, [r7, r1]
+ add r0, r7, r0
+ mov r3, #1
+ bl MOD80_02236D1C
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r3, #2
+ ldr r1, _022335D4 ; =0x00000E98
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x60
+ str r0, [sp, #0x10]
+ ldr r0, [r7, #4]
+ add r1, r7, r1
+ mov r2, #0
+ bl FUN_02019064
+ ldr r0, _022335D4 ; =0x00000E98
+ mov r1, #0
+ add r0, r7, r0
+ bl FUN_02019620
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, _022335D8 ; =0x00000F08
+ ldr r4, _022335DC ; =0x022373D0
+ mov r6, #0x96
+ add r5, r7, r0
+_0223357E:
+ ldrh r0, [r4, #2]
+ add r1, r5, #0
+ mov r2, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldrh r3, [r4]
+ ldr r0, [r7, #4]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ bl FUN_020191D0
+ ldr r0, [sp, #0x14]
+ add r6, #0x16
+ add r0, r0, #1
+ add r4, r4, #4
+ add r5, #0x10
+ str r0, [sp, #0x14]
+ cmp r0, #6
+ blt _0223357E
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022335CC: .word 0x00000EB8
+_022335D0: .word 0x000F0E00
+_022335D4: .word 0x00000E98
+_022335D8: .word 0x00000F08
+_022335DC: .word 0x022373D0
+ thumb_func_end MOD80_02233500
+
+ thumb_func_start MOD80_022335E0
+MOD80_022335E0: ; 0x022335E0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, _0223360C ; =0x00000F08
+ mov r4, #0
+ add r5, r6, r0
+_022335EA:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #6
+ blt _022335EA
+ ldr r0, _02233610 ; =0x00000E98
+ add r0, r6, r0
+ bl FUN_02019178
+ ldr r0, _02233614 ; =0x00000EB8
+ add r0, r6, r0
+ bl FUN_02019178
+ pop {r4, r5, r6, pc}
+ nop
+_0223360C: .word 0x00000F08
+_02233610: .word 0x00000E98
+_02233614: .word 0x00000EB8
+ thumb_func_end MOD80_022335E0
+
+ thumb_func_start MOD80_02233618
+MOD80_02233618: ; 0x02233618
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xb4
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _02233680 ; =0x00000B4C
+ str r0, [r4, r1]
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #0x5a
+ bl FUN_0200A914
+ mov r1, #0xb5
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #0x3e
+ mov r1, #0x30
+ bl FUN_02016998
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x30
+ bl MIi_CpuClearFast
+ mov r2, #0xfe
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ mov r0, #0x3e
+ mov r1, #0
+ add r2, #0x1c
+ bl MOD80_02234204
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ str r0, [r1, #0x18]
+ mov r0, #0x3e
+ bl MOD80_02234228
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ add r1, #0x38
+ str r0, [r2, #0x14]
+ add r0, r4, r1
+ bl MOD80_022346D8
+ pop {r4, pc}
+ .align 2, 0
+_02233680: .word 0x00000B4C
+ thumb_func_end MOD80_02233618
+
+ thumb_func_start MOD80_02233684
+MOD80_02233684: ; 0x02233684
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x14]
+ bl FUN_02016A18
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r0, [r0, #0x18]
+ bl FUN_02016A18
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _022336C0 ; =0x00000B4C
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0xb5
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ nop
+_022336C0: .word 0x00000B4C
+ thumb_func_end MOD80_02233684
+
+ thumb_func_start MOD80_022336C4
+MOD80_022336C4: ; 0x022336C4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _022336EC
+ ldr r0, _022336F4 ; =0x00000F0F
+ mov r1, #9
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_022332EC
+ add r0, r4, #0
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD80_0222E6DC
+_022336EC:
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_022336F4: .word 0x00000F0F
+ thumb_func_end MOD80_022336C4
+
+ thumb_func_start MOD80_022336F8
+MOD80_022336F8: ; 0x022336F8
+ push {r3, r4, lr}
+ sub sp, #0x14
+ ldr r1, _02233770 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ tst r1, r2
+ beq _02233714
+ mov r1, #5
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #2
+ str r0, [r4, #0x2c]
+_02233714:
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #0xd
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _02233774 ; =0x0000011A
+ ldr r1, _02233778 ; =0x00000ED8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0xf
+ bl FUN_02019064
+ ldr r0, _02233778 ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0xd
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _0223377C ; =0x0000014E
+ ldr r1, _02233780 ; =0x00000EE8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0x15
+ bl FUN_02019064
+ ldr r0, _02233780 ; =0x00000EE8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #3
+ str r0, [r4, #0x2c]
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+_02233770: .word 0x021C48B8
+_02233774: .word 0x0000011A
+_02233778: .word 0x00000ED8
+_0223377C: .word 0x0000014E
+_02233780: .word 0x00000EE8
+ thumb_func_end MOD80_022336F8
+
+ thumb_func_start MOD80_02233784
+MOD80_02233784: ; 0x02233784
+ push {r4, lr}
+ ldr r2, _022337AC ; =0x00000FC8
+ add r4, r0, #0
+ ldr r3, _022337B0 ; =0x00000B34
+ add r1, r4, r2
+ sub r2, #0xf0
+ ldr r3, [r4, r3]
+ add r2, r4, r2
+ bl MOD80_02234370
+ ldr r1, _022337B4 ; =0x00000FD4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, _022337B8 ; =0x0000FFFF
+ add r0, #0xb0
+ strh r1, [r0]
+ mov r0, #4
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_022337AC: .word 0x00000FC8
+_022337B0: .word 0x00000B34
+_022337B4: .word 0x00000FD4
+_022337B8: .word 0x0000FFFF
+ thumb_func_end MOD80_02233784
+
+ thumb_func_start MOD80_022337BC
+MOD80_022337BC: ; 0x022337BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02233878 ; =0x00000FD4
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0xb0
+ bl MOD80_02234698
+ cmp r0, #9
+ bhi _022337F0
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022337DC: ; jump table
+ .short _02233872 - _022337DC - 2 ; case 0
+ .short _022337FA - _022337DC - 2 ; case 1
+ .short _022337FA - _022337DC - 2 ; case 2
+ .short _022337FA - _022337DC - 2 ; case 3
+ .short _022337FA - _022337DC - 2 ; case 4
+ .short _022337FA - _022337DC - 2 ; case 5
+ .short _022337FA - _022337DC - 2 ; case 6
+ .short _022337FA - _022337DC - 2 ; case 7
+ .short _022337FA - _022337DC - 2 ; case 8
+ .short _022337FA - _022337DC - 2 ; case 9
+_022337F0:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02233820
+ b _02233872
+_022337FA:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ sub r0, #0xc
+ add r1, r2, #6
+ ldr r0, [r4, r0]
+ add r2, r2, #4
+ bl FUN_02001300
+ ldr r0, _0223387C ; =0x00000FC8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ mov r0, #5
+ str r0, [r4, #0x2c]
+ ldr r0, _02233880 ; =0x000005DC
+ bl FUN_020054C8
+ b _02233872
+_02233820:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ sub r0, #0xc
+ add r1, r2, #6
+ ldr r0, [r4, r0]
+ add r2, r2, #4
+ bl FUN_02001300
+ ldr r0, _0223387C ; =0x00000FC8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r0, _02233884 ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _02233888 ; =0x00000E98
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200D0E0
+ ldr r0, _02233884 ; =0x00000ED8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _0223388C ; =0x00000EE8
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r1, #5
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ ldr r0, _02233880 ; =0x000005DC
+ bl FUN_020054C8
+_02233872:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02233878: .word 0x00000FD4
+_0223387C: .word 0x00000FC8
+_02233880: .word 0x000005DC
+_02233884: .word 0x00000ED8
+_02233888: .word 0x00000E98
+_0223388C: .word 0x00000EE8
+ thumb_func_end MOD80_022337BC
+
+ thumb_func_start MOD80_02233890
+MOD80_02233890: ; 0x02233890
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r3, _022338D4 ; =0x00000B38
+ add r4, r0, #0
+ ldr r1, [r4, r3]
+ mov r2, #0xfe
+ lsl r2, r2, #4
+ str r1, [sp]
+ ldr r1, [r4, r2]
+ sub r3, r3, #4
+ str r1, [sp, #4]
+ ldr r1, [r4]
+ ldr r1, [r1, #0x10]
+ str r1, [sp, #8]
+ add r1, r2, #0
+ sub r1, #0x18
+ sub r2, #0xf8
+ ldr r3, [r4, r3]
+ add r1, r4, r1
+ add r2, r4, r2
+ bl MOD80_022344DC
+ ldr r1, _022338D8 ; =0x00000FD4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, _022338DC ; =0x0000FFFF
+ add r0, #0xb0
+ strh r1, [r0]
+ mov r0, #6
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_022338D4: .word 0x00000B38
+_022338D8: .word 0x00000FD4
+_022338DC: .word 0x0000FFFF
+ thumb_func_end MOD80_02233890
+
+ thumb_func_start MOD80_022338E0
+MOD80_022338E0: ; 0x022338E0
+ cmp r1, #0
+ beq _022338EE
+ cmp r1, #0xfe
+ beq _022338F6
+ cmp r1, #0xff
+ beq _022338FE
+ b _02233906
+_022338EE:
+ mov r1, #1
+ strb r1, [r0, #2]
+ add r0, r1, #0
+ bx lr
+_022338F6:
+ mov r1, #2
+ strb r1, [r0, #2]
+ mov r0, #1
+ bx lr
+_022338FE:
+ mov r1, #3
+ strb r1, [r0, #2]
+ mov r0, #1
+ bx lr
+_02233906:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD80_022338E0
+
+ thumb_func_start MOD80_0223390C
+MOD80_0223390C: ; 0x0223390C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _02233A4C ; =0x00000FD4
+ add r1, r4, #0
+ ldr r0, [r4, r0]
+ add r1, #0xb0
+ bl MOD80_02234698
+ add r5, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ beq _02233932
+ add r0, r0, #1
+ cmp r5, r0
+ bne _02233930
+ b _02233A44
+_02233930:
+ b _0223398C
+_02233932:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ sub r0, #0xc
+ add r1, r2, #0
+ ldr r0, [r4, r0]
+ add r1, #0xa
+ add r2, #8
+ bl FUN_02001300
+ ldr r0, _02233A50 ; =0x00000FC8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r0, _02233A54 ; =0x00000EE8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _02233A58 ; =0x00000ED8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _02233A54 ; =0x00000EE8
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ ldr r0, _02233A5C ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r3, [r4, r0]
+ add r0, #0x38
+ ldrh r2, [r3, #6]
+ ldrh r1, [r3, #4]
+ add r0, r4, r0
+ add r1, r2, r1
+ ldrh r2, [r3, #0xa]
+ ldrh r3, [r3, #8]
+ bl MOD80_022346F0
+ b _02233A44
+_0223398C:
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r2, [r4, r0]
+ sub r0, #0xc
+ add r1, r2, #0
+ ldr r0, [r4, r0]
+ add r1, #0xa
+ add r2, #8
+ bl FUN_02001300
+ ldr r0, _02233A50 ; =0x00000FC8
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r0, _02233A58 ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _02233A54 ; =0x00000EE8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ ldr r0, _02233A58 ; =0x00000ED8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _02233A54 ; =0x00000EE8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _02233A60 ; =0x00000B1C
+ strh r5, [r4, r0]
+ ldr r0, _02233A5C ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #0x12
+ bl FUN_02068678
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ str r0, [r2, #0x20]
+ ldr r1, [r4, r1]
+ ldr r0, _02233A60 ; =0x00000B1C
+ ldr r1, [r1, #0x20]
+ add r0, r4, r0
+ bl MOD80_022338E0
+ cmp r0, #0
+ beq _02233A00
+ mov r0, #0xa
+ str r0, [r4, #0x2c]
+ ldr r0, _02233A64 ; =0x00000B1E
+ ldrsb r1, [r4, r0]
+ b _02233A06
+_02233A00:
+ mov r0, #7
+ str r0, [r4, #0x2c]
+ mov r1, #3
+_02233A06:
+ ldr r2, _02233A60 ; =0x00000B1C
+ ldr r3, _02233A68 ; =0x00000F08
+ ldrsh r0, [r4, r2]
+ add r3, r4, r3
+ str r0, [sp]
+ mov r0, #0
+ str r1, [sp, #4]
+ mvn r0, r0
+ str r0, [sp, #8]
+ add r0, r2, #0
+ add r1, r2, #0
+ add r0, #0x18
+ add r1, #0x1c
+ add r2, #0x14
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ bl MOD80_02233FB4
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r3, [r4, r0]
+ add r0, #0x38
+ ldrh r2, [r3, #6]
+ ldrh r1, [r3, #4]
+ add r0, r4, r0
+ add r1, r2, r1
+ ldrh r2, [r3, #0xa]
+ ldrh r3, [r3, #8]
+ bl MOD80_022346F0
+_02233A44:
+ mov r0, #3
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02233A4C: .word 0x00000FD4
+_02233A50: .word 0x00000FC8
+_02233A54: .word 0x00000EE8
+_02233A58: .word 0x00000ED8
+_02233A5C: .word 0x000005DC
+_02233A60: .word 0x00000B1C
+_02233A64: .word 0x00000B1E
+_02233A68: .word 0x00000F08
+ thumb_func_end MOD80_0223390C
+
+ thumb_func_start MOD80_02233A6C
+MOD80_02233A6C: ; 0x02233A6C
+ push {r3, r4, lr}
+ sub sp, #0x14
+ ldr r1, _02233ABC ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0xa
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_022332EC
+ add r0, r4, #0
+ mov r1, #0x10
+ mov r2, #8
+ bl MOD80_0222E6DC
+ mov r0, #0xa
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02233AC0 ; =0x0000011A
+ ldr r1, _02233AC4 ; =0x00000ED8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0x15
+ bl FUN_02019064
+ ldr r0, _02233AC4 ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #3
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02233ABC: .word 0x00000F0F
+_02233AC0: .word 0x0000011A
+_02233AC4: .word 0x00000ED8
+ thumb_func_end MOD80_02233A6C
+
+ thumb_func_start MOD80_02233AC8
+MOD80_02233AC8: ; 0x02233AC8
+ push {r4, lr}
+ ldr r1, _02233AF0 ; =0x00000FC8
+ add r4, r0, #0
+ ldr r2, _02233AF4 ; =0x00000B34
+ add r0, r4, r1
+ sub r1, #0xf0
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ bl MOD80_02234560
+ ldr r1, _02233AF8 ; =0x00000FD4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, _02233AFC ; =0x0000FFFF
+ add r0, #0xb0
+ strh r1, [r0]
+ mov r0, #9
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02233AF0: .word 0x00000FC8
+_02233AF4: .word 0x00000B34
+_02233AF8: .word 0x00000FD4
+_02233AFC: .word 0x0000FFFF
+ thumb_func_end MOD80_02233AC8
+
+ thumb_func_start MOD80_02233B00
+MOD80_02233B00: ; 0x02233B00
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _02233BCC ; =0x00000FD4
+ add r1, r5, #0
+ ldr r0, [r5, r0]
+ add r1, #0xb0
+ bl MOD80_02234698
+ add r4, r0, #0
+ cmp r4, #2
+ bhi _02233B26
+ cmp r4, #0
+ beq _02233B6A
+ cmp r4, #1
+ beq _02233B6A
+ cmp r4, #2
+ beq _02233B6A
+ b _02233BC6
+_02233B26:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bne _02233BC6
+ ldr r0, _02233BCC ; =0x00000FD4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _02233BD0 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02233BD4 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _02233BD8 ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200D0E0
+ ldr r0, _02233BD4 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02233BDC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ b _02233BC6
+_02233B6A:
+ ldr r0, _02233BCC ; =0x00000FD4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _02233BD0 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02233BD4 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _02233BD4 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02233BDC ; =0x000005DC
+ bl FUN_020054C8
+ ldr r3, _02233BE0 ; =0x00000F08
+ ldr r2, _02233BE4 ; =0x00000B1E
+ add r0, r4, #1
+ strb r0, [r5, r2]
+ mov r1, #0xa
+ str r1, [r5, #0x2c]
+ sub r0, r2, #2
+ ldrsh r0, [r5, r0]
+ sub r1, #0xb
+ add r3, r5, r3
+ str r0, [sp]
+ ldrsb r0, [r5, r2]
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r2, #0
+ add r1, r2, #0
+ add r0, #0x16
+ add r1, #0x1a
+ add r2, #0x12
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl MOD80_02233FB4
+_02233BC6:
+ mov r0, #3
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02233BCC: .word 0x00000FD4
+_02233BD0: .word 0x00000FC8
+_02233BD4: .word 0x00000ED8
+_02233BD8: .word 0x00000E98
+_02233BDC: .word 0x000005DC
+_02233BE0: .word 0x00000F08
+_02233BE4: .word 0x00000B1E
+ thumb_func_end MOD80_02233B00
+
+ thumb_func_start MOD80_02233BE8
+MOD80_02233BE8: ; 0x02233BE8
+ push {r3, r4, lr}
+ sub sp, #0x14
+ ldr r1, _02233C38 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0xb
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_022332EC
+ add r0, r4, #0
+ mov r1, #0x10
+ mov r2, #0xb
+ bl MOD80_0222E6DC
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0xd
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _02233C3C ; =0x0000011A
+ ldr r1, _02233C40 ; =0x00000ED8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0xf
+ bl FUN_02019064
+ ldr r0, _02233C40 ; =0x00000ED8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #3
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02233C38: .word 0x00000F0F
+_02233C3C: .word 0x0000011A
+_02233C40: .word 0x00000ED8
+ thumb_func_end MOD80_02233BE8
+
+ thumb_func_start MOD80_02233C44
+MOD80_02233C44: ; 0x02233C44
+ push {r4, lr}
+ ldr r1, _02233C6C ; =0x00000FC8
+ add r4, r0, #0
+ ldr r2, _02233C70 ; =0x00000B34
+ add r0, r4, r1
+ sub r1, #0xf0
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ bl MOD80_022345D0
+ ldr r1, _02233C74 ; =0x00000FD4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, _02233C78 ; =0x0000FFFF
+ add r0, #0xb0
+ strh r1, [r0]
+ mov r0, #0xc
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02233C6C: .word 0x00000FC8
+_02233C70: .word 0x00000B34
+_02233C74: .word 0x00000FD4
+_02233C78: .word 0x0000FFFF
+ thumb_func_end MOD80_02233C44
+
+ thumb_func_start MOD80_02233C7C
+MOD80_02233C7C: ; 0x02233C7C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _02233D6C ; =0x00000FD4
+ add r1, r5, #0
+ ldr r0, [r5, r0]
+ add r1, #0xb0
+ bl MOD80_02234698
+ add r4, r0, #0
+ cmp r4, #0xc
+ beq _02233CA4
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _02233CA4
+ add r0, r0, #1
+ cmp r4, r0
+ beq _02233D66
+ b _02233CFA
+_02233CA4:
+ ldr r0, _02233D6C ; =0x00000FD4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _02233D70 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02233D74 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _02233D78 ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200D0E0
+ ldr r0, _02233D74 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02233D7C ; =0x000005DC
+ bl FUN_020054C8
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ ldr r1, [r5, r1]
+ ldr r0, _02233D80 ; =0x00000B1C
+ ldr r1, [r1, #0x20]
+ add r0, r5, r0
+ bl MOD80_022338E0
+ cmp r0, #0
+ beq _02233CF4
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ b _02233D66
+_02233CF4:
+ mov r0, #7
+ str r0, [r5, #0x2c]
+ b _02233D66
+_02233CFA:
+ ldr r0, _02233D7C ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _02233D6C ; =0x00000FD4
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _02233D70 ; =0x00000FC8
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ ldr r0, _02233D74 ; =0x00000ED8
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _02233D74 ; =0x00000ED8
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r0, _02233D80 ; =0x00000B1C
+ add r1, r4, #0
+ add r0, r5, r0
+ bl MOD80_02234640
+ mov r0, #0xd
+ ldr r1, _02233D84 ; =0x00000B1F
+ str r0, [r5, #0x2c]
+ ldrsb r0, [r5, r1]
+ add r1, r1, #1
+ ldrsb r1, [r5, r1]
+ bl MOD80_02234668
+ ldr r2, _02233D80 ; =0x00000B1C
+ ldr r3, _02233D88 ; =0x00000F08
+ ldrsh r1, [r5, r2]
+ add r3, r5, r3
+ str r1, [sp]
+ add r1, r2, #2
+ ldrsb r1, [r5, r1]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r2, #0
+ add r1, r2, #0
+ add r0, #0x18
+ add r1, #0x1c
+ add r2, #0x14
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl MOD80_02233FB4
+_02233D66:
+ mov r0, #3
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02233D6C: .word 0x00000FD4
+_02233D70: .word 0x00000FC8
+_02233D74: .word 0x00000ED8
+_02233D78: .word 0x00000E98
+_02233D7C: .word 0x000005DC
+_02233D80: .word 0x00000B1C
+_02233D84: .word 0x00000B1F
+_02233D88: .word 0x00000F08
+ thumb_func_end MOD80_02233C7C
+
+ thumb_func_start MOD80_02233D8C
+MOD80_02233D8C: ; 0x02233D8C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _02233DB0 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0x17
+ mov r2, #1
+ mov r3, #0
+ bl MOD80_022332EC
+ add r0, r4, #0
+ mov r1, #0x10
+ mov r2, #0xe
+ bl MOD80_0222E6DC
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02233DB0: .word 0x00000F0F
+ thumb_func_end MOD80_02233D8C
+
+ thumb_func_start MOD80_02233DB4
+MOD80_02233DB4: ; 0x02233DB4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _02233DD0 ; =0x000001EA
+ mov r1, #0xf
+ bl MOD80_0222E6A8
+ ldr r1, _02233DD4 ; =0x00000FCC
+ str r0, [r4, r1]
+ mov r0, #0xf
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02233DD0: .word 0x000001EA
+_02233DD4: .word 0x00000FCC
+ thumb_func_end MOD80_02233DB4
+
+ thumb_func_start MOD80_02233DD8
+MOD80_02233DD8: ; 0x02233DD8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02233E28 ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02233E22
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _02233E04
+ mov r1, #5
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ b _02233E22
+_02233E04:
+ mov r1, #7
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #2
+ str r0, [r4, #0x2c]
+ ldr r0, _02233E2C ; =0x0000100C
+ mov r1, #1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xd4
+ add r1, r4, #0
+ bl MOD80_02234330
+_02233E22:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02233E28: .word 0x00000FCC
+_02233E2C: .word 0x0000100C
+ thumb_func_end MOD80_02233DD8
+
+ thumb_func_start MOD80_02233E30
+MOD80_02233E30: ; 0x02233E30
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02233E5C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, _02233E80 ; =0x0000100C
+ mov r1, #1
+ str r1, [r4, r0]
+ b _02233E74
+_02233E5C:
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+_02233E74:
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #4
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02233E80: .word 0x0000100C
+ thumb_func_end MOD80_02233E30
+
+ thumb_func_start MOD80_02233E84
+MOD80_02233E84: ; 0x02233E84
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02233E9E
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_02233E9E:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02233E84
+
+ thumb_func_start MOD80_02233EA4
+MOD80_02233EA4: ; 0x02233EA4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ add r5, r3, #0
+ cmp r2, #0
+ beq _02233ED2
+ add r0, r1, #0
+ add r1, r2, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, [sp, #0x1c]
+ str r5, [sp]
+ str r0, [sp, #4]
+ ldr r3, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD80_02236D50
+ add r0, r4, #0
+ bl FUN_02021A20
+_02233ED2:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02233EA4
+
+ thumb_func_start MOD80_02233ED8
+MOD80_02233ED8: ; 0x02233ED8
+ cmp r0, #1
+ bne _02233EE2
+ ldr r0, _02233EF0 ; =0x02237B48
+ ldr r0, [r0]
+ bx lr
+_02233EE2:
+ cmp r0, #2
+ bne _02233EEA
+ ldr r0, _02233EF0 ; =0x02237B48
+ ldr r1, [r0, #4]
+_02233EEA:
+ add r0, r1, #0
+ bx lr
+ nop
+_02233EF0: .word 0x02237B48
+ thumb_func_end MOD80_02233ED8
+
+ thumb_func_start MOD80_02233EF4
+MOD80_02233EF4: ; 0x02233EF4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ add r5, r2, #0
+ cmp r3, #0
+ bne _02233F04
+ cmp r5, #3
+ beq _02233F54
+_02233F04:
+ add r0, r1, #0
+ ldr r1, _02233F58 ; =0x022373C0
+ lsl r2, r5, #2
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #3
+ ble _02233F34
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD80_02233ED8
+ mov r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD80_02236D50
+ b _02233F4E
+_02233F34:
+ ldr r1, [sp, #0x20]
+ add r0, r5, #0
+ bl MOD80_02233ED8
+ ldr r1, [sp, #0x1c]
+ ldr r3, [sp, #0x18]
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD80_02236D50
+_02233F4E:
+ add r0, r4, #0
+ bl FUN_02021A20
+_02233F54:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02233F58: .word 0x022373C0
+ thumb_func_end MOD80_02233EF4
+
+ thumb_func_start MOD80_02233F5C
+MOD80_02233F5C: ; 0x02233F5C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ add r5, r3, #0
+ cmp r2, r0
+ beq _02233F92
+ add r0, r1, #0
+ ldr r1, _02233F98 ; =0x02237494
+ lsl r2, r2, #3
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, [sp, #0x1c]
+ str r5, [sp]
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD80_02236D50
+ add r0, r4, #0
+ bl FUN_02021A20
+_02233F92:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02233F98: .word 0x02237494
+ thumb_func_end MOD80_02233F5C
+
+ thumb_func_start MOD80_02233F9C
+MOD80_02233F9C: ; 0x02233F9C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r4, [sp, #0x18]
+ str r4, [sp]
+ ldr r4, [sp, #0x1c]
+ str r4, [sp, #4]
+ mov r4, #0
+ str r4, [sp, #8]
+ bl MOD80_02233F5C
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD80_02233F9C
+
+ thumb_func_start MOD80_02233FB4
+MOD80_02233FB4: ; 0x02233FB4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x10]
+ mov r1, #0x61
+ str r0, [sp, #0xc]
+ add r6, r3, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, _02234044 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ add r0, r6, #0
+ add r3, r2, #0
+ bl MOD80_02236D50
+ add r5, r6, #0
+ mov r4, #1
+ add r5, #0x10
+ mov r7, #0
+_02233FE0:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02019620
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #3
+ blt _02233FE0
+ mov r3, #0
+ ldr r0, _02234044 ; =0x000F0200
+ str r3, [sp]
+ str r0, [sp, #4]
+ add r0, r6, #0
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x30]
+ add r0, #0x10
+ bl MOD80_02233EA4
+ ldr r2, [sp, #0x34]
+ sub r0, r2, #1
+ cmp r0, #1
+ bhi _02234022
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x46
+ str r0, [sp, #4]
+ ldr r0, _02234044 ; =0x000F0200
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0x10
+ bl MOD80_02233EF4
+_02234022:
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02234044 ; =0x000F0200
+ add r6, #0x20
+ str r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x38]
+ add r0, r6, #0
+ mov r3, #2
+ bl MOD80_02233F9C
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02234044: .word 0x000F0200
+ thumb_func_end MOD80_02233FB4
+
+ thumb_func_start MOD80_02234048
+MOD80_02234048: ; 0x02234048
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x10]
+ mov r1, #0x61
+ str r0, [sp, #0xc]
+ add r6, r3, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, _022340D8 ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ add r0, r6, #0
+ add r3, r2, #0
+ bl MOD80_02236D50
+ add r5, r6, #0
+ mov r4, #1
+ add r5, #0x10
+ mov r7, #0
+_02234074:
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02019620
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #3
+ blt _02234074
+ mov r3, #0
+ ldr r0, _022340D8 ; =0x000F0200
+ str r3, [sp]
+ str r0, [sp, #4]
+ add r0, r6, #0
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x30]
+ add r0, #0x10
+ bl MOD80_02233EA4
+ ldr r2, [sp, #0x34]
+ sub r0, r2, #1
+ cmp r0, #1
+ bhi _022340B6
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x46
+ str r0, [sp, #4]
+ ldr r0, _022340D8 ; =0x000F0200
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0x10
+ bl MOD80_02233EF4
+_022340B6:
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _022340D8 ; =0x000F0200
+ add r6, #0x20
+ str r0, [sp, #4]
+ ldr r1, [sp, #0xc]
+ ldr r2, [sp, #0x38]
+ add r0, r6, #0
+ mov r3, #2
+ bl MOD80_02233F9C
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022340D8: .word 0x000F0200
+ thumb_func_end MOD80_02234048
+
+ thumb_func_start MOD80_022340DC
+MOD80_022340DC: ; 0x022340DC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r4, r0, #0
+ add r5, r1, #0
+ mov r0, #0xb
+ mov r1, #0x3e
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r7, [sp, #0x38]
+ bl FUN_020219F4
+ str r0, [sp, #0x18]
+ mov r0, #0xb
+ mov r1, #0x3e
+ bl FUN_020219F4
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x18]
+ mov r1, #0x76
+ bl FUN_020672BC
+ ldr r0, [sp, #0xc]
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020672BC
+ add r6, r0, #1
+ ldr r0, [sp, #0xc]
+ bl FUN_020687C8
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0x64
+ bl FUN_0200A914
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ mov r1, #3
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x66
+ mov r3, #0x3e
+ bl FUN_0200A9C4
+ str r0, [sp, #0x1c]
+ cmp r6, #3
+ beq _0223415A
+ ldr r1, _022341F8 ; =0x022373C0
+ lsl r2, r6, #2
+ ldr r1, [r1, r2]
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0
+ bl FUN_0200A8E0
+_0223415A:
+ ldr r5, [sp, #8]
+ mov r4, #0
+_0223415E:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #3
+ blt _0223415E
+ mov r2, #0
+ ldr r0, _022341FC ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x20]
+ add r3, r2, #0
+ bl MOD80_02236D50
+ mov r2, #0
+ ldr r0, _022341FC ; =0x000F0200
+ str r2, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x18]
+ add r0, #0x10
+ add r3, r2, #0
+ bl MOD80_02236D50
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _022341FC ; =0x000F0200
+ mov r2, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0x1c]
+ add r0, #0x20
+ add r3, r2, #0
+ bl MOD80_02236D50
+ cmp r6, #3
+ beq _022341CA
+ sub r0, r6, #1
+ mov r3, #0
+ lsl r1, r0, #2
+ ldr r0, _02234200 ; =0x02237B48
+ str r3, [sp]
+ ldr r0, [r0, r1]
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ mov r2, #0x46
+ add r0, #0x10
+ str r0, [sp, #8]
+ bl MOD80_02236D50
+_022341CA:
+ ldr r0, [sp, #0xc]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r7]
+ ldr r0, [sp, #0x10]
+ strb r6, [r7, #2]
+ strb r0, [r7, #3]
+ ldr r0, [sp, #0x1c]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022341F8: .word 0x022373C0
+_022341FC: .word 0x000F0200
+_02234200: .word 0x02237B48
+ thumb_func_end MOD80_022340DC
+
+ thumb_func_start MOD80_02234204
+MOD80_02234204: ; 0x02234204
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ mov r2, #0
+ add r3, r0, #0
+ str r2, [sp]
+ add r0, sp, #8
+ str r0, [sp, #4]
+ mov r0, #0x4b
+ mov r1, #0xd
+ bl FUN_02006D18
+ ldr r1, [sp, #8]
+ lsr r1, r1, #1
+ str r1, [r4]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02234204
+
+ thumb_func_start MOD80_02234228
+MOD80_02234228: ; 0x02234228
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ ldr r1, _02234280 ; =0x000001EE
+ add r5, r0, #0
+ mov r0, #0x3e
+ bl FUN_02016998
+ add r4, r0, #0
+ ldr r2, _02234280 ; =0x000001EE
+ mov r0, #0
+ add r1, r4, #0
+ bl MIi_CpuClearFast
+ mov r2, #0
+ str r2, [sp]
+ add r0, sp, #8
+ str r0, [sp, #4]
+ mov r0, #0x4b
+ mov r1, #0xc
+ add r3, r5, #0
+ bl FUN_02006D18
+ add r7, r0, #0
+ ldr r0, [sp, #8]
+ ldr r5, _02234284 ; =0x00000000
+ lsr r3, r0, #1
+ beq _02234274
+ ldr r0, _02234280 ; =0x000001EE
+ add r6, r7, #0
+ mov r1, #1
+_02234264:
+ ldrh r2, [r6]
+ cmp r2, r0
+ bhs _0223426C
+ strb r1, [r4, r2]
+_0223426C:
+ add r5, r5, #1
+ add r6, r6, #2
+ cmp r5, r3
+ blo _02234264
+_02234274:
+ add r0, r7, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234280: .word 0x000001EE
+_02234284: .word 0x00000000
+ thumb_func_end MOD80_02234228
+
+ thumb_func_start MOD80_02234288
+MOD80_02234288: ; 0x02234288
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0xb8
+ ldrh r0, [r0]
+ bl MOD80_02232FAC
+ cmp r0, #0
+ beq _022342B0
+ bl FUN_020669BC
+ add r2, r0, #0
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ add r1, r5, #0
+ bl MIi_CpuCopyFast
+ b _022342BC
+_022342B0:
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ add r1, r5, #0
+ bl FUN_02069A64
+_022342BC:
+ ldr r0, [r4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_0202398C
+ add r1, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r2, #8
+ bl StringCopyN
+ ldr r0, [r4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_020239C0
+ mov r1, #0x47
+ lsl r1, r1, #2
+ strh r0, [r5, r1]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x18]
+ bl FUN_02029B38
+ ldr r1, _02234324 ; =0x0000011E
+ strb r0, [r5, r1]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x18]
+ bl FUN_02029B3C
+ ldr r1, _02234328 ; =0x0000011F
+ strb r0, [r5, r1]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_02023A28
+ mov r1, #0x12
+ lsl r1, r1, #4
+ strb r0, [r5, r1]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x1c]
+ bl FUN_020239CC
+ add r1, r5, #0
+ add r1, #0xf6
+ strb r0, [r1]
+ ldr r0, _0223432C ; =0x00000122
+ mov r1, #0xa
+ strb r1, [r5, r0]
+ mov r1, #2
+ add r0, r0, #1
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_02234324: .word 0x0000011E
+_02234328: .word 0x0000011F
+_0223432C: .word 0x00000122
+ thumb_func_end MOD80_02234288
+
+ thumb_func_start MOD80_02234330
+MOD80_02234330: ; 0x02234330
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD80_02234288
+ ldr r0, _0223436C ; =0x00000B18
+ add r1, r5, #0
+ ldrh r2, [r4, r0]
+ add r1, #0xec
+ strh r2, [r1]
+ add r1, r0, #2
+ ldrh r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xee
+ strh r2, [r1]
+ add r1, r0, #4
+ ldrh r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xf0
+ strh r2, [r1]
+ add r1, r0, #6
+ ldrh r2, [r4, r1]
+ add r1, r5, #0
+ add r1, #0xf2
+ strh r2, [r1]
+ add r0, #8
+ ldrh r0, [r4, r0]
+ add r5, #0xf4
+ strh r0, [r5]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223436C: .word 0x00000B18
+ thumb_func_end MOD80_02234330
+
+ thumb_func_start MOD80_02234370
+MOD80_02234370: ; 0x02234370
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #9
+ mov r1, #0x3e
+ str r2, [sp]
+ add r6, r3, #0
+ bl FUN_02012838
+ str r0, [r5]
+ mov r4, #0
+_02234388:
+ add r2, r4, #0
+ ldr r0, [r5]
+ add r1, r6, #0
+ add r2, #0x68
+ add r3, r4, #1
+ bl FUN_02012880
+ add r4, r4, #1
+ cmp r4, #9
+ blt _02234388
+ ldr r3, _022343D8 ; =0x02237474
+ add r2, sp, #4
+ 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}
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ mov r2, #0x1f
+ mov r3, #0xb
+ str r0, [sp, #0x10]
+ bl FUN_0200CCA4
+ mov r0, #0xfe
+ lsl r0, r0, #4
+ ldr r2, [r7, r0]
+ add r0, sp, #4
+ ldrh r1, [r2, #6]
+ ldrh r2, [r2, #4]
+ mov r3, #0x3e
+ bl FUN_020010A8
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022343D8: .word 0x02237474
+ thumb_func_end MOD80_02234370
+
+ thumb_func_start MOD80_022343DC
+MOD80_022343DC: ; 0x022343DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #0x38]
+ str r1, [sp, #4]
+ str r0, [sp, #0x38]
+ ldr r0, [sp, #0x40]
+ ldr r4, [sp, #0x44]
+ lsl r5, r0, #1
+ add r0, r0, #1
+ lsl r1, r0, #1
+ ldr r0, _022344D8 ; =0x02237B50
+ str r2, [sp, #8]
+ ldrh r1, [r0, r1]
+ ldrh r0, [r0, r5]
+ str r3, [sp, #0xc]
+ mov r6, #0
+ sub r7, r1, r0
+ add r0, r4, #0
+ bl FUN_02024CA4
+ str r0, [sp, #0x14]
+ ldr r0, _022344D8 ; =0x02237B50
+ ldrh r0, [r0, r5]
+ str r0, [sp, #0x18]
+ add r0, r6, #0
+ str r0, [sp, #0x1c]
+ cmp r7, #0
+ ble _02234456
+ ldr r0, [sp, #0x18]
+ lsl r1, r0, #1
+ ldr r0, [sp, #0xc]
+ add r5, r0, r1
+_0223441E:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02234434
+ ldrh r1, [r5]
+ add r0, r4, #0
+ bl FUN_020245F0
+ cmp r0, #0
+ beq _0223444A
+ add r6, r6, #1
+ b _0223444A
+_02234434:
+ ldrh r1, [r5]
+ ldr r0, [sp, #0x38]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _0223444A
+ add r0, r4, #0
+ bl FUN_020245F0
+ cmp r0, #0
+ beq _0223444A
+ add r6, r6, #1
+_0223444A:
+ ldr r0, [sp, #0x1c]
+ add r5, r5, #2
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r7
+ blt _0223441E
+_02234456:
+ add r0, r6, #1
+ mov r1, #0x3e
+ bl FUN_02012838
+ ldr r1, [sp]
+ str r0, [r1]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ cmp r7, #0
+ ble _022344C2
+ ldr r0, [sp, #0x18]
+ lsl r1, r0, #1
+ ldr r0, [sp, #0xc]
+ add r5, r0, r1
+_02234472:
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ beq _02234494
+ ldrh r1, [r5]
+ add r0, r4, #0
+ bl FUN_020245F0
+ cmp r0, #0
+ beq _022344B6
+ ldrh r2, [r5]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ add r3, r2, #0
+ bl FUN_02012880
+ b _022344B6
+_02234494:
+ ldrh r1, [r5]
+ ldr r0, [sp, #0x38]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _022344B6
+ add r0, r4, #0
+ bl FUN_020245F0
+ cmp r0, #0
+ beq _022344B6
+ ldrh r2, [r5]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ add r3, r2, #0
+ bl FUN_02012880
+_022344B6:
+ ldr r0, [sp, #0x10]
+ add r5, r5, #2
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, r7
+ blt _02234472
+_022344C2:
+ ldr r0, [sp]
+ mov r2, #0x75
+ add r3, r2, #0
+ ldr r0, [r0]
+ ldr r1, [sp, #8]
+ sub r3, #0x77
+ bl FUN_02012880
+ add r0, r6, #1
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022344D8: .word 0x02237B50
+ thumb_func_end MOD80_022343DC
+
+ thumb_func_start MOD80_022344DC
+MOD80_022344DC: ; 0x022344DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ ldr r5, [sp, #0x54]
+ add r7, r0, #0
+ add r6, r1, #0
+ add r0, r2, #0
+ mov r1, #0xf
+ str r2, [sp, #0x10]
+ str r3, [sp, #0x14]
+ bl FUN_02019620
+ ldrh r1, [r5, #6]
+ ldrh r0, [r5, #4]
+ ldr r2, [sp, #0x14]
+ add r4, r1, r0
+ ldr r0, [r5, #0x14]
+ ldr r1, [sp, #0x50]
+ str r0, [sp]
+ ldr r0, [r5, #0x1c]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x58]
+ str r4, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r3, [r5, #0x18]
+ add r0, r6, #0
+ bl MOD80_022343DC
+ ldr r3, _02234558 ; =0x02237474
+ add r5, r0, #0
+ add r2, sp, #0x18
+ 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 r0, sp, #0x18
+ strh r5, [r0, #0x10]
+ ldr r0, [r6]
+ mov r1, #0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ mov r2, #0x1f
+ mov r3, #0xb
+ str r0, [sp, #0x24]
+ bl FUN_0200CCA4
+ lsl r1, r4, #1
+ ldr r2, _0223455C ; =0x0000101C
+ add r3, r7, r1
+ ldrh r1, [r3, r2]
+ add r2, #0x14
+ ldrh r2, [r3, r2]
+ add r0, sp, #0x18
+ mov r3, #0x3e
+ bl FUN_020010A8
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02234558: .word 0x02237474
+_0223455C: .word 0x0000101C
+ thumb_func_end MOD80_022344DC
+
+ thumb_func_start MOD80_02234560
+MOD80_02234560: ; 0x02234560
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #4
+ mov r1, #0x3e
+ add r7, r2, #0
+ bl FUN_02012838
+ ldr r5, _022345C8 ; =0x02237B64
+ str r0, [r6]
+ mov r4, #0
+_02234578:
+ ldr r0, [r6]
+ ldr r2, [r5]
+ ldr r3, [r5, #4]
+ add r1, r7, #0
+ bl FUN_02012880
+ add r4, r4, #1
+ add r5, #8
+ cmp r4, #4
+ blt _02234578
+ ldr r3, _022345CC ; =0x02237474
+ add r2, sp, #4
+ 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}
+ mov r1, #4
+ add r0, sp, #4
+ strh r1, [r0, #0x10]
+ ldr r0, [r6]
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ mov r2, #0x1f
+ mov r3, #0xb
+ str r0, [sp, #0x10]
+ bl FUN_0200CCA4
+ mov r1, #0
+ add r0, sp, #4
+ add r2, r1, #0
+ mov r3, #0x3e
+ bl FUN_020010A8
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022345C8: .word 0x02237B64
+_022345CC: .word 0x02237474
+ thumb_func_end MOD80_02234560
+
+ thumb_func_start MOD80_022345D0
+MOD80_022345D0: ; 0x022345D0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xd
+ mov r1, #0x3e
+ add r7, r2, #0
+ bl FUN_02012838
+ ldr r5, _02234638 ; =0x02237494
+ str r0, [r6]
+ mov r4, #0
+_022345E8:
+ ldr r0, [r6]
+ ldr r2, [r5]
+ add r1, r7, #0
+ add r3, r4, #0
+ bl FUN_02012880
+ add r4, r4, #1
+ add r5, #8
+ cmp r4, #0xd
+ blt _022345E8
+ ldr r3, _0223463C ; =0x02237474
+ add r2, sp, #4
+ 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}
+ mov r1, #0xd
+ add r0, sp, #4
+ strh r1, [r0, #0x10]
+ ldr r0, [r6]
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ mov r2, #0x1f
+ mov r3, #0xb
+ str r0, [sp, #0x10]
+ bl FUN_0200CCA4
+ mov r1, #0
+ add r0, sp, #4
+ add r2, r1, #0
+ mov r3, #0x3e
+ bl FUN_020010A8
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234638: .word 0x02237494
+_0223463C: .word 0x02237474
+ thumb_func_end MOD80_022345D0
+
+ thumb_func_start MOD80_02234640
+MOD80_02234640: ; 0x02234640
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #0xc
+ blt _0223464E
+ bl ErrorHandling
+_0223464E:
+ ldr r0, _02234660 ; =0x02237498
+ lsl r1, r5, #3
+ ldrsh r0, [r0, r1]
+ strb r0, [r4, #3]
+ ldr r0, _02234664 ; =0x0223749A
+ ldrsh r0, [r0, r1]
+ strb r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+ nop
+_02234660: .word 0x02237498
+_02234664: .word 0x0223749A
+ thumb_func_end MOD80_02234640
+
+ thumb_func_start MOD80_02234668
+MOD80_02234668: ; 0x02234668
+ push {r3, r4, r5, r6}
+ ldr r6, _02234694 ; =0x02237494
+ mov r5, #0
+ mov r2, #6
+ mov r3, #4
+_02234672:
+ ldrsh r4, [r6, r3]
+ cmp r0, r4
+ bne _02234684
+ ldrsh r4, [r6, r2]
+ cmp r1, r4
+ bne _02234684
+ add r0, r5, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+_02234684:
+ add r5, r5, #1
+ add r6, #8
+ cmp r5, #0xd
+ blt _02234672
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_02234694: .word 0x02237494
+ thumb_func_end MOD80_02234668
+
+ thumb_func_start MOD80_02234698
+MOD80_02234698: ; 0x02234698
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02001204
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, sp, #0
+ bl FUN_0200143C
+ add r0, sp, #0
+ ldrh r1, [r4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _022346CA
+ ldr r0, _022346D0 ; =0x0000FFFF
+ cmp r1, r0
+ beq _022346C4
+ ldr r0, _022346D4 ; =0x000005DC
+ bl FUN_020054C8
+_022346C4:
+ add r0, sp, #0
+ ldrh r0, [r0]
+ strh r0, [r4]
+_022346CA:
+ add r0, r6, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022346D0: .word 0x0000FFFF
+_022346D4: .word 0x000005DC
+ thumb_func_end MOD80_02234698
+
+ thumb_func_start MOD80_022346D8
+MOD80_022346D8: ; 0x022346D8
+ mov r2, #0
+ add r3, r0, #0
+ add r1, r2, #0
+_022346DE:
+ strh r1, [r3, #4]
+ strh r1, [r3, #0x18]
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #0xa
+ blt _022346DE
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ bx lr
+ thumb_func_end MOD80_022346D8
+
+ thumb_func_start MOD80_022346F0
+MOD80_022346F0: ; 0x022346F0
+ lsl r1, r1, #1
+ add r0, r0, r1
+ strh r2, [r0, #4]
+ strh r3, [r0, #0x18]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD80_022346F0
+
+ thumb_func_start MOD80_022346FC
+MOD80_022346FC: ; 0x022346FC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD80_022349A4
+ ldr r0, [r4, #4]
+ bl MOD80_02234780
+ add r0, r4, #0
+ bl MOD80_022348CC
+ add r0, r4, #0
+ bl MOD80_02234958
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD80_02236D84
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_022346FC
+
+ thumb_func_start MOD80_02234740
+MOD80_02234740: ; 0x02234740
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222E79C
+ bl FUN_02033EEC
+ ldr r1, [r4, #0x2c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _0223475C ; =0x02237BC8
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0223475C: .word 0x02237BC8
+ thumb_func_end MOD80_02234740
+
+ thumb_func_start MOD80_02234760
+MOD80_02234760: ; 0x02234760
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_022349BC
+ add r0, r4, #0
+ bl MOD80_02234994
+ ldr r0, [r4, #4]
+ bl MOD80_022348A0
+ add r0, r4, #0
+ bl MOD80_0222E7B0
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02234760
+
+ thumb_func_start MOD80_02234780
+MOD80_02234780: ; 0x02234780
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _02234888 ; =0x022374FC
+ add r3, sp, #0x8c
+ 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, _0223488C ; =0x02237544
+ 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, #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, _02234890 ; =0x02237528
+ 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, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _02234894 ; =0x0223757C
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #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, _02234898 ; =0x02237560
+ 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, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _0223489C ; =0x0223750C
+ 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, #5
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ nop
+_02234888: .word 0x022374FC
+_0223488C: .word 0x02237544
+_02234890: .word 0x02237528
+_02234894: .word 0x0223757C
+_02234898: .word 0x02237560
+_0223489C: .word 0x0223750C
+ thumb_func_end MOD80_02234780
+
+ thumb_func_start MOD80_022348A0
+MOD80_022348A0: ; 0x022348A0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ 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 MOD80_022348A0
+
+ thumb_func_start MOD80_022348CC
+MOD80_022348CC: ; 0x022348CC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r0, #0x60
+ mov r1, #0
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ mov r0, #0x68
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x3e
+ bl FUN_02002EEC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x24]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ ldr r0, _02234954 ; =0x00000FEC
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ bne _02234944
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E74C
+_02234944:
+ ldr r0, [r5, #0x20]
+ cmp r0, #9
+ bne _02234950
+ add r0, r5, #0
+ bl MOD80_0222F338
+_02234950:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02234954: .word 0x00000FEC
+ thumb_func_end MOD80_022348CC
+
+ thumb_func_start MOD80_02234958
+MOD80_02234958: ; 0x02234958
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ ldr r1, _02234990 ; =0x00000E98
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, _02234990 ; =0x00000E98
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02234990: .word 0x00000E98
+ thumb_func_end MOD80_02234958
+
+ thumb_func_start MOD80_02234994
+MOD80_02234994: ; 0x02234994
+ ldr r1, _0223499C ; =0x00000E98
+ ldr r3, _022349A0 ; =FUN_02019178
+ add r0, r0, r1
+ bx r3
+ .align 2, 0
+_0223499C: .word 0x00000E98
+_022349A0: .word FUN_02019178
+ thumb_func_end MOD80_02234994
+
+ thumb_func_start MOD80_022349A4
+MOD80_022349A4: ; 0x022349A4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xb4
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _022349B8 ; =0x00000B4C
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_022349B8: .word 0x00000B4C
+ thumb_func_end MOD80_022349A4
+
+ thumb_func_start MOD80_022349BC
+MOD80_022349BC: ; 0x022349BC
+ ldr r1, _022349C4 ; =0x00000B4C
+ ldr r3, _022349C8 ; =FUN_02021A20
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_022349C4: .word 0x00000B4C
+_022349C8: .word FUN_02021A20
+ thumb_func_end MOD80_022349BC
+
+ thumb_func_start MOD80_022349CC
+MOD80_022349CC: ; 0x022349CC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r1, [r4, #0x24]
+ cmp r1, #0xc
+ bhi _02234AA4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022349E4: ; jump table
+ .short _02234AA4 - _022349E4 - 2 ; case 0
+ .short _02234AA4 - _022349E4 - 2 ; case 1
+ .short _02234AA4 - _022349E4 - 2 ; case 2
+ .short _02234AA4 - _022349E4 - 2 ; case 3
+ .short _02234AA4 - _022349E4 - 2 ; case 4
+ .short _02234AA4 - _022349E4 - 2 ; case 5
+ .short _02234AA4 - _022349E4 - 2 ; case 6
+ .short _022349FE - _022349E4 - 2 ; case 7
+ .short _02234A1A - _022349E4 - 2 ; case 8
+ .short _02234A36 - _022349E4 - 2 ; case 9
+ .short _02234A52 - _022349E4 - 2 ; case 10
+ .short _02234A74 - _022349E4 - 2 ; case 11
+ .short _02234A8A - _022349E4 - 2 ; case 12
+_022349FE:
+ ldr r1, _02234AB4 ; =0x00000F0F
+ mov r2, #0x18
+ str r1, [sp]
+ ldr r1, _02234AB8 ; =0x00000B34
+ mov r3, #1
+ ldr r1, [r4, r1]
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #2
+ bl MOD80_0222E6DC
+ b _02234AA8
+_02234A1A:
+ ldr r1, _02234AB4 ; =0x00000F0F
+ mov r2, #0x18
+ str r1, [sp]
+ ldr r1, _02234AB8 ; =0x00000B34
+ mov r3, #1
+ ldr r1, [r4, r1]
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #7
+ bl MOD80_0222E6DC
+ b _02234AA8
+_02234A36:
+ ldr r1, _02234AB4 ; =0x00000F0F
+ mov r2, #0x18
+ str r1, [sp]
+ ldr r1, _02234AB8 ; =0x00000B34
+ mov r3, #1
+ ldr r1, [r4, r1]
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0xc
+ bl MOD80_0222E6DC
+ b _02234AA8
+_02234A52:
+ ldr r1, _02234AB4 ; =0x00000F0F
+ mov r2, #0x18
+ str r1, [sp]
+ ldr r1, _02234AB8 ; =0x00000B34
+ mov r3, #1
+ ldr r1, [r4, r1]
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x12
+ bl MOD80_0222E6DC
+ ldr r0, _02234ABC ; =0x0000100C
+ mov r1, #1
+ str r1, [r4, r0]
+ b _02234AA8
+_02234A74:
+ ldr r1, _02234AB4 ; =0x00000F0F
+ mov r2, #0x18
+ str r1, [sp]
+ ldr r1, _02234AB8 ; =0x00000B34
+ mov r3, #0
+ ldr r1, [r4, r1]
+ bl MOD80_02236C70
+ mov r0, #0x18
+ str r0, [r4, #0x2c]
+ b _02234AA8
+_02234A8A:
+ ldr r1, _02234AB4 ; =0x00000F0F
+ mov r2, #0x8a
+ str r1, [sp]
+ ldr r1, _02234AB8 ; =0x00000B34
+ mov r3, #1
+ ldr r1, [r4, r1]
+ bl MOD80_02236C70
+ mov r0, #1
+ str r0, [r4, #0x18]
+ mov r0, #0x1d
+ str r0, [r4, #0x2c]
+ b _02234AA8
+_02234AA4:
+ bl ErrorHandling
+_02234AA8:
+ add r0, r4, #0
+ bl MOD80_0222E8BC
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02234AB4: .word 0x00000F0F
+_02234AB8: .word 0x00000B34
+_02234ABC: .word 0x0000100C
+ thumb_func_end MOD80_022349CC
+
+ thumb_func_start MOD80_02234AC0
+MOD80_02234AC0: ; 0x02234AC0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xd4
+ bl FUN_0206AA84
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD80_0222DBC4
+ mov r0, #3
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #6
+ bl MOD80_02235820
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02234AC0
+
+ thumb_func_start MOD80_02234AE4
+MOD80_02234AE4: ; 0x02234AE4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _02234B5A
+ bl MOD80_0222DBB8
+ add r1, r0, #0
+ add r1, #0xf
+ cmp r1, #0xf
+ bhi _02234B5A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234B08: ; jump table
+ .short _02234B4E - _02234B08 - 2 ; case 0
+ .short _02234B4E - _02234B08 - 2 ; case 1
+ .short _02234B56 - _02234B08 - 2 ; case 2
+ .short _02234B46 - _02234B08 - 2 ; case 3
+ .short _02234B3E - _02234B08 - 2 ; case 4
+ .short _02234B3E - _02234B08 - 2 ; case 5
+ .short _02234B3E - _02234B08 - 2 ; case 6
+ .short _02234B3E - _02234B08 - 2 ; case 7
+ .short _02234B3E - _02234B08 - 2 ; case 8
+ .short _02234B3E - _02234B08 - 2 ; case 9
+ .short _02234B3E - _02234B08 - 2 ; case 10
+ .short _02234B46 - _02234B08 - 2 ; case 11
+ .short _02234B5A - _02234B08 - 2 ; case 12
+ .short _02234B4E - _02234B08 - 2 ; case 13
+ .short _02234B36 - _02234B08 - 2 ; case 14
+ .short _02234B28 - _02234B08 - 2 ; case 15
+_02234B28:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD80_02235534
+ mov r0, #0x1e
+ str r0, [r4, #0x2c]
+ b _02234B5A
+_02234B36:
+ str r0, [r4, #0x3c]
+ mov r0, #0x26
+ str r0, [r4, #0x2c]
+ b _02234B5A
+_02234B3E:
+ str r0, [r4, #0x3c]
+ mov r0, #0x27
+ str r0, [r4, #0x2c]
+ b _02234B5A
+_02234B46:
+ str r0, [r4, #0x3c]
+ mov r0, #0x27
+ str r0, [r4, #0x2c]
+ b _02234B5A
+_02234B4E:
+ str r0, [r4, #0x3c]
+ mov r0, #0x26
+ str r0, [r4, #0x2c]
+ b _02234B5A
+_02234B56:
+ bl FUN_020335E0
+_02234B5A:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02234AE4
+
+ thumb_func_start MOD80_02234B60
+MOD80_02234B60: ; 0x02234B60
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DC14
+ mov r0, #5
+ str r0, [r4, #0x2c]
+ mov r0, #1
+ strh r0, [r4, #0x36]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02234B60
+
+ thumb_func_start MOD80_02234B74
+MOD80_02234B74: ; 0x02234B74
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _02234BD2
+ bl MOD80_0222DBB8
+ add r1, r0, #0
+ add r1, #0xf
+ cmp r1, #0xf
+ bhi _02234BD2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234B98: ; jump table
+ .short _02234BC6 - _02234B98 - 2 ; case 0
+ .short _02234BC6 - _02234B98 - 2 ; case 1
+ .short _02234BCE - _02234B98 - 2 ; case 2
+ .short _02234BBE - _02234B98 - 2 ; case 3
+ .short _02234BD2 - _02234B98 - 2 ; case 4
+ .short _02234BD2 - _02234B98 - 2 ; case 5
+ .short _02234BD2 - _02234B98 - 2 ; case 6
+ .short _02234BD2 - _02234B98 - 2 ; case 7
+ .short _02234BD2 - _02234B98 - 2 ; case 8
+ .short _02234BD2 - _02234B98 - 2 ; case 9
+ .short _02234BC6 - _02234B98 - 2 ; case 10
+ .short _02234BBE - _02234B98 - 2 ; case 11
+ .short _02234BC6 - _02234B98 - 2 ; case 12
+ .short _02234BC6 - _02234B98 - 2 ; case 13
+ .short _02234BC6 - _02234B98 - 2 ; case 14
+ .short _02234BB8 - _02234B98 - 2 ; case 15
+_02234BB8:
+ mov r0, #0x21
+ str r0, [r4, #0x2c]
+ b _02234BD2
+_02234BBE:
+ str r0, [r4, #0x3c]
+ mov r0, #0x27
+ str r0, [r4, #0x2c]
+ b _02234BD2
+_02234BC6:
+ mov r0, #4
+ bl FUN_020336A0
+ b _02234BD2
+_02234BCE:
+ bl FUN_020335E0
+_02234BD2:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02234B74
+
+ thumb_func_start MOD80_02234BD8
+MOD80_02234BD8: ; 0x02234BD8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xd4
+ bl MOD80_0222DC68
+ mov r0, #8
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #0xb
+ bl MOD80_02235820
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02234BD8
+
+ thumb_func_start MOD80_02234BF4
+MOD80_02234BF4: ; 0x02234BF4
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _02234C82
+ bl MOD80_0222DBB8
+ add r1, r0, #0
+ add r1, #0xf
+ cmp r1, #0xf
+ bhi _02234C82
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234C18: ; jump table
+ .short _02234C76 - _02234C18 - 2 ; case 0
+ .short _02234C76 - _02234C18 - 2 ; case 1
+ .short _02234C7E - _02234C18 - 2 ; case 2
+ .short _02234C6E - _02234C18 - 2 ; case 3
+ .short _02234C82 - _02234C18 - 2 ; case 4
+ .short _02234C82 - _02234C18 - 2 ; case 5
+ .short _02234C82 - _02234C18 - 2 ; case 6
+ .short _02234C82 - _02234C18 - 2 ; case 7
+ .short _02234C82 - _02234C18 - 2 ; case 8
+ .short _02234C82 - _02234C18 - 2 ; case 9
+ .short _02234C82 - _02234C18 - 2 ; case 10
+ .short _02234C68 - _02234C18 - 2 ; case 11
+ .short _02234C62 - _02234C18 - 2 ; case 12
+ .short _02234C76 - _02234C18 - 2 ; case 13
+ .short _02234C82 - _02234C18 - 2 ; case 14
+ .short _02234C38 - _02234C18 - 2 ; case 15
+_02234C38:
+ ldr r0, _02234C88 ; =0x000001F5
+ ldrsb r5, [r4, r0]
+ cmp r5, #0
+ beq _02234C46
+ mov r0, #0x18
+ str r0, [r4, #0x2c]
+ b _02234C82
+_02234C46:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0202AC18
+ add r1, r4, #0
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, #0xd4
+ add r3, r5, #0
+ bl MOD80_022355F0
+ mov r0, #0x1e
+ str r0, [r4, #0x2c]
+ b _02234C82
+_02234C62:
+ mov r0, #0x26
+ str r0, [r4, #0x2c]
+ b _02234C82
+_02234C68:
+ mov r0, #0x26
+ str r0, [r4, #0x2c]
+ b _02234C82
+_02234C6E:
+ str r0, [r4, #0x3c]
+ mov r0, #0x27
+ str r0, [r4, #0x2c]
+ b _02234C82
+_02234C76:
+ str r0, [r4, #0x3c]
+ mov r0, #0x26
+ str r0, [r4, #0x2c]
+ b _02234C82
+_02234C7E:
+ bl FUN_020335E0
+_02234C82:
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ nop
+_02234C88: .word 0x000001F5
+ thumb_func_end MOD80_02234BF4
+
+ thumb_func_start MOD80_02234C8C
+MOD80_02234C8C: ; 0x02234C8C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DD4C
+ mov r0, #0xa
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02234C8C
+
+ thumb_func_start MOD80_02234C9C
+MOD80_02234C9C: ; 0x02234C9C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _02234CF8
+ bl MOD80_0222DBB8
+ add r0, #0xf
+ cmp r0, #0xf
+ bhi _02234CF8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234CBE: ; jump table
+ .short _02234CEC - _02234CBE - 2 ; case 0
+ .short _02234CEC - _02234CBE - 2 ; case 1
+ .short _02234CF4 - _02234CBE - 2 ; case 2
+ .short _02234CEC - _02234CBE - 2 ; case 3
+ .short _02234CF8 - _02234CBE - 2 ; case 4
+ .short _02234CF8 - _02234CBE - 2 ; case 5
+ .short _02234CF8 - _02234CBE - 2 ; case 6
+ .short _02234CF8 - _02234CBE - 2 ; case 7
+ .short _02234CF8 - _02234CBE - 2 ; case 8
+ .short _02234CF8 - _02234CBE - 2 ; case 9
+ .short _02234CE4 - _02234CBE - 2 ; case 10
+ .short _02234CE4 - _02234CBE - 2 ; case 11
+ .short _02234CE4 - _02234CBE - 2 ; case 12
+ .short _02234CEC - _02234CBE - 2 ; case 13
+ .short _02234CF8 - _02234CBE - 2 ; case 14
+ .short _02234CDE - _02234CBE - 2 ; case 15
+_02234CDE:
+ mov r0, #0x21
+ str r0, [r4, #0x2c]
+ b _02234CF8
+_02234CE4:
+ mov r0, #3
+ bl FUN_020336A0
+ b _02234CF8
+_02234CEC:
+ mov r0, #4
+ bl FUN_020336A0
+ b _02234CF8
+_02234CF4:
+ bl FUN_020335E0
+_02234CF8:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02234C9C
+
+ thumb_func_start MOD80_02234CFC
+MOD80_02234CFC: ; 0x02234CFC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xd4
+ bl FUN_0206AA84
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ mov r0, #0x49
+ lsl r0, r0, #2
+ mul r0, r1
+ add r1, r4, r0
+ mov r0, #3
+ lsl r0, r0, #8
+ ldr r2, _02234D38 ; =0x000009F4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0xd4
+ add r2, r4, r2
+ bl MOD80_0222DE04
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #0x10
+ bl MOD80_02235820
+ mov r0, #0xd
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02234D38: .word 0x000009F4
+ thumb_func_end MOD80_02234CFC
+
+ thumb_func_start MOD80_02234D3C
+MOD80_02234D3C: ; 0x02234D3C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _02234DEE
+ bl MOD80_0222DBB8
+ add r1, r0, #0
+ add r1, #0xf
+ cmp r1, #0xf
+ bhi _02234DEE
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234D60: ; jump table
+ .short _02234DE2 - _02234D60 - 2 ; case 0
+ .short _02234DE2 - _02234D60 - 2 ; case 1
+ .short _02234DEA - _02234D60 - 2 ; case 2
+ .short _02234DDA - _02234D60 - 2 ; case 3
+ .short _02234DD2 - _02234D60 - 2 ; case 4
+ .short _02234DD2 - _02234D60 - 2 ; case 5
+ .short _02234DD2 - _02234D60 - 2 ; case 6
+ .short _02234DD2 - _02234D60 - 2 ; case 7
+ .short _02234DD2 - _02234D60 - 2 ; case 8
+ .short _02234DD2 - _02234D60 - 2 ; case 9
+ .short _02234DCA - _02234D60 - 2 ; case 10
+ .short _02234DEE - _02234D60 - 2 ; case 11
+ .short _02234DEE - _02234D60 - 2 ; case 12
+ .short _02234DE2 - _02234D60 - 2 ; case 13
+ .short _02234DEE - _02234D60 - 2 ; case 14
+ .short _02234D80 - _02234D60 - 2 ; case 15
+_02234D80:
+ mov r0, #0x1e
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD80_02235534
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r1, _02234DF4 ; =0x000009F4
+ ldrh r2, [r2]
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD80_022356AC
+ ldr r0, [r4]
+ ldr r1, _02234DF4 ; =0x000009F4
+ ldr r0, [r0, #0x18]
+ add r1, r4, r1
+ bl MOD80_02235784
+ ldr r0, [r4]
+ mov r1, #0x19
+ ldr r0, [r0, #0x28]
+ bl FUN_0202A170
+ ldr r0, [r4]
+ ldr r1, _02234DF4 ; =0x000009F4
+ ldr r0, [r0, #0x2c]
+ add r1, r4, r1
+ bl MOD80_022357A0
+ ldr r0, [r4]
+ mov r1, #0x18
+ ldr r0, [r0, #0x28]
+ bl FUN_0202A0E8
+ b _02234DEE
+_02234DCA:
+ str r0, [r4, #0x3c]
+ mov r0, #0x11
+ str r0, [r4, #0x2c]
+ b _02234DEE
+_02234DD2:
+ str r0, [r4, #0x3c]
+ mov r0, #0x27
+ str r0, [r4, #0x2c]
+ b _02234DEE
+_02234DDA:
+ str r0, [r4, #0x3c]
+ mov r0, #0x27
+ str r0, [r4, #0x2c]
+ b _02234DEE
+_02234DE2:
+ str r0, [r4, #0x3c]
+ mov r0, #0x26
+ str r0, [r4, #0x2c]
+ b _02234DEE
+_02234DEA:
+ bl FUN_020335E0
+_02234DEE:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02234DF4: .word 0x000009F4
+ thumb_func_end MOD80_02234D3C
+
+ thumb_func_start MOD80_02234DF8
+MOD80_02234DF8: ; 0x02234DF8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DE68
+ mov r0, #0xf
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02234DF8
+
+ thumb_func_start MOD80_02234E08
+MOD80_02234E08: ; 0x02234E08
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _02234E64
+ bl MOD80_0222DBB8
+ add r0, #0xf
+ cmp r0, #0xf
+ bhi _02234E64
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234E2A: ; jump table
+ .short _02234E58 - _02234E2A - 2 ; case 0
+ .short _02234E58 - _02234E2A - 2 ; case 1
+ .short _02234E60 - _02234E2A - 2 ; case 2
+ .short _02234E58 - _02234E2A - 2 ; case 3
+ .short _02234E64 - _02234E2A - 2 ; case 4
+ .short _02234E64 - _02234E2A - 2 ; case 5
+ .short _02234E64 - _02234E2A - 2 ; case 6
+ .short _02234E64 - _02234E2A - 2 ; case 7
+ .short _02234E64 - _02234E2A - 2 ; case 8
+ .short _02234E64 - _02234E2A - 2 ; case 9
+ .short _02234E50 - _02234E2A - 2 ; case 10
+ .short _02234E64 - _02234E2A - 2 ; case 11
+ .short _02234E64 - _02234E2A - 2 ; case 12
+ .short _02234E58 - _02234E2A - 2 ; case 13
+ .short _02234E64 - _02234E2A - 2 ; case 14
+ .short _02234E4A - _02234E2A - 2 ; case 15
+_02234E4A:
+ mov r0, #0x21
+ str r0, [r4, #0x2c]
+ b _02234E64
+_02234E50:
+ mov r0, #3
+ bl FUN_020336A0
+ b _02234E64
+_02234E58:
+ mov r0, #4
+ bl FUN_020336A0
+ b _02234E64
+_02234E60:
+ bl FUN_020335E0
+_02234E64:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02234E08
+
+ thumb_func_start MOD80_02234E68
+MOD80_02234E68: ; 0x02234E68
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xd4
+ bl MOD80_0222DCB8
+ mov r0, #0x19
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02234E68
+
+ thumb_func_start MOD80_02234E7C
+MOD80_02234E7C: ; 0x02234E7C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _02234EE2
+ bl MOD80_0222DBB8
+ add r1, r0, #0
+ add r1, #0xf
+ cmp r1, #0x10
+ bhi _02234EE2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234EA0: ; jump table
+ .short _02234FF4 - _02234EA0 - 2 ; case 0
+ .short _02234FF4 - _02234EA0 - 2 ; case 1
+ .short _02234FFC - _02234EA0 - 2 ; case 2
+ .short _02234FF4 - _02234EA0 - 2 ; case 3
+ .short _02235006 - _02234EA0 - 2 ; case 4
+ .short _02235006 - _02234EA0 - 2 ; case 5
+ .short _02235006 - _02234EA0 - 2 ; case 6
+ .short _02235006 - _02234EA0 - 2 ; case 7
+ .short _02235006 - _02234EA0 - 2 ; case 8
+ .short _02235006 - _02234EA0 - 2 ; case 9
+ .short _02235006 - _02234EA0 - 2 ; case 10
+ .short _02234FA4 - _02234EA0 - 2 ; case 11
+ .short _02234F38 - _02234EA0 - 2 ; case 12
+ .short _02234FF4 - _02234EA0 - 2 ; case 13
+ .short _02235006 - _02234EA0 - 2 ; case 14
+ .short _02234EC2 - _02234EA0 - 2 ; case 15
+ .short _02234EC8 - _02234EA0 - 2 ; case 16
+_02234EC2:
+ mov r0, #0x1a
+ str r0, [r4, #0x2c]
+ b _02235006
+_02234EC8:
+ mov r0, #1
+ add r1, r4, #0
+ strh r0, [r4, #0x36]
+ add r0, r4, #0
+ add r1, #0xd4
+ bl MOD80_022357DC
+ cmp r0, #0
+ beq _02234F2C
+ cmp r0, #1
+ beq _02234EE4
+ cmp r0, #2
+ beq _02234F08
+_02234EE2:
+ b _02235006
+_02234EE4:
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ ldr r0, _0223500C ; =0x00000F0F
+ ldr r1, _02235010 ; =0x00000B34
+ str r0, [sp]
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #0x1d
+ mov r3, #1
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x1c
+ bl MOD80_0222E6DC
+ b _02235006
+_02234F08:
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ ldr r0, _0223500C ; =0x00000F0F
+ ldr r1, _02235010 ; =0x00000B34
+ str r0, [sp]
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ mov r2, #0x23
+ mov r3, #1
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x1c
+ bl MOD80_0222E6DC
+ b _02235006
+_02234F2C:
+ mov r0, #0x12
+ str r0, [r4, #0x2c]
+ ldr r0, _02235014 ; =0x0000100C
+ mov r1, #1
+ str r1, [r4, r0]
+ b _02235006
+_02234F38:
+ mov r0, #0
+ strh r0, [r4, #0x36]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0202ABDC
+ cmp r0, #0
+ beq _02234F9C
+ mov r0, #0x3e
+ bl FUN_020669C0
+ add r5, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ ldr r0, [r0]
+ bl FUN_0202ABEC
+ add r0, r5, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0xb3
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r0, #2
+ str r0, [r4, #0x28]
+ mov r0, #0x22
+ str r0, [r4, #0x2c]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0202AC18
+ add r2, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r3, #0
+ bl MOD80_022355F0
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0202ABE4
+ add r0, r5, #0
+ bl FUN_02016A18
+ b _02235006
+_02234F9C:
+ add r0, r4, #0
+ bl MOD80_022350C4
+ b _02235006
+_02234FA4:
+ mov r0, #0
+ strh r0, [r4, #0x36]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0202ABDC
+ cmp r0, #0
+ beq _02235006
+ mov r0, #0x3e
+ bl FUN_020669C0
+ add r5, r0, #0
+ ldr r0, [r4]
+ add r1, r5, #0
+ ldr r0, [r0]
+ bl FUN_0202ABEC
+ add r0, r5, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0xb3
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r0, #3
+ str r0, [r4, #0x28]
+ mov r0, #0x22
+ str r0, [r4, #0x2c]
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0202ABE4
+ add r0, r5, #0
+ bl FUN_02016A18
+ b _02235006
+_02234FF4:
+ str r0, [r4, #0x3c]
+ mov r0, #0x26
+ str r0, [r4, #0x2c]
+ b _02235006
+_02234FFC:
+ mov r0, #3
+ mov r1, #1
+ mov r2, #0
+ bl FUN_02033F70
+_02235006:
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ nop
+_0223500C: .word 0x00000F0F
+_02235010: .word 0x00000B34
+_02235014: .word 0x0000100C
+ thumb_func_end MOD80_02234E7C
+
+ thumb_func_start MOD80_02235018
+MOD80_02235018: ; 0x02235018
+ push {r4, lr}
+ mov r1, #1
+ mov r2, #0
+ add r4, r0, #0
+ bl MOD80_0222E7A8
+ mov r0, #0x24
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02235018
+
+ thumb_func_start MOD80_0223502C
+MOD80_0223502C: ; 0x0223502C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xd4
+ bl MOD80_0222DC68
+ mov r0, #0x1b
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_0223502C
+
+ thumb_func_start MOD80_02235040
+MOD80_02235040: ; 0x02235040
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _022350BE
+ bl MOD80_0222DBB8
+ add r1, r0, #0
+ add r1, #0xf
+ cmp r1, #0xf
+ bhi _022350B8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02235064: ; jump table
+ .short _022350AC - _02235064 - 2 ; case 0
+ .short _022350AC - _02235064 - 2 ; case 1
+ .short _022350B4 - _02235064 - 2 ; case 2
+ .short _022350A4 - _02235064 - 2 ; case 3
+ .short _022350B8 - _02235064 - 2 ; case 4
+ .short _022350B8 - _02235064 - 2 ; case 5
+ .short _022350B8 - _02235064 - 2 ; case 6
+ .short _022350B8 - _02235064 - 2 ; case 7
+ .short _022350B8 - _02235064 - 2 ; case 8
+ .short _022350B8 - _02235064 - 2 ; case 9
+ .short _022350B8 - _02235064 - 2 ; case 10
+ .short _022350B8 - _02235064 - 2 ; case 11
+ .short _0223509E - _02235064 - 2 ; case 12
+ .short _022350AC - _02235064 - 2 ; case 13
+ .short _022350B8 - _02235064 - 2 ; case 14
+ .short _02235084 - _02235064 - 2 ; case 15
+_02235084:
+ add r0, r4, #0
+ bl MOD80_02235830
+ cmp r0, #0
+ beq _02235098
+ mov r0, #0x16
+ str r0, [r4, #0x2c]
+ mov r0, #0
+ strh r0, [r4, #0x36]
+ b _022350B8
+_02235098:
+ mov r0, #1
+ strh r0, [r4, #0x36]
+ b _022350B8
+_0223509E:
+ mov r0, #0
+ strh r0, [r4, #0x36]
+ b _022350B8
+_022350A4:
+ str r0, [r4, #0x3c]
+ mov r0, #0x27
+ str r0, [r4, #0x2c]
+ b _022350B8
+_022350AC:
+ str r0, [r4, #0x3c]
+ mov r0, #0x26
+ str r0, [r4, #0x2c]
+ b _022350B8
+_022350B4:
+ bl FUN_020335E0
+_022350B8:
+ add r0, r4, #0
+ bl MOD80_022350C4
+_022350BE:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02235040
+
+ thumb_func_start MOD80_022350C4
+MOD80_022350C4: ; 0x022350C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x1c]
+ cmp r1, #1
+ beq _022350D4
+ cmp r1, #2
+ beq _022350E2
+ pop {r4, pc}
+_022350D4:
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r0, #0x24
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+_022350E2:
+ mov r1, #2
+ mov r2, #3
+ bl MOD80_0222E7A8
+ mov r0, #0x24
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+ thumb_func_end MOD80_022350C4
+
+ thumb_func_start MOD80_022350F0
+MOD80_022350F0: ; 0x022350F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0202AC18
+ ldr r3, _02235154 ; =0x000001F5
+ add r1, r4, #0
+ add r2, r0, #0
+ ldrsb r3, [r4, r3]
+ add r0, r4, #0
+ add r1, #0xd4
+ bl MOD80_022355F0
+ ldr r0, [r4]
+ add r1, r4, #0
+ ldr r0, [r0, #0x18]
+ add r1, #0xd4
+ bl MOD80_02235784
+ ldr r0, [r4]
+ mov r1, #0x19
+ ldr r0, [r0, #0x28]
+ bl FUN_0202A170
+ ldr r0, [r4]
+ add r1, r4, #0
+ ldr r0, [r0, #0x2c]
+ add r1, #0xd4
+ bl MOD80_022357A0
+ ldr r0, [r4]
+ mov r1, #0x18
+ ldr r0, [r0, #0x28]
+ bl FUN_0202A0E8
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0202ABE4
+ mov r0, #0x1e
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #0x13
+ mov r2, #0xb
+ bl MOD80_02235820
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02235154: .word 0x000001F5
+ thumb_func_end MOD80_022350F0
+
+ thumb_func_start MOD80_02235158
+MOD80_02235158: ; 0x02235158
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DD08
+ mov r0, #0x14
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02235158
+
+ thumb_func_start MOD80_02235168
+MOD80_02235168: ; 0x02235168
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _022351C8
+ bl MOD80_0222DBB8
+ add r1, r0, #0
+ add r1, #0xf
+ cmp r1, #0xf
+ bhi _022351C8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223518C: ; jump table
+ .short _022351BC - _0223518C - 2 ; case 0
+ .short _022351BC - _0223518C - 2 ; case 1
+ .short _022351C4 - _0223518C - 2 ; case 2
+ .short _022351BA - _0223518C - 2 ; case 3
+ .short _022351C8 - _0223518C - 2 ; case 4
+ .short _022351C8 - _0223518C - 2 ; case 5
+ .short _022351C8 - _0223518C - 2 ; case 6
+ .short _022351C8 - _0223518C - 2 ; case 7
+ .short _022351C8 - _0223518C - 2 ; case 8
+ .short _022351C8 - _0223518C - 2 ; case 9
+ .short _022351C8 - _0223518C - 2 ; case 10
+ .short _022351BA - _0223518C - 2 ; case 11
+ .short _022351B2 - _0223518C - 2 ; case 12
+ .short _022351BC - _0223518C - 2 ; case 13
+ .short _022351C8 - _0223518C - 2 ; case 14
+ .short _022351AC - _0223518C - 2 ; case 15
+_022351AC:
+ mov r0, #0x21
+ str r0, [r4, #0x2c]
+ b _022351C8
+_022351B2:
+ mov r0, #3
+ bl FUN_020336A0
+ b _022351C8
+_022351BA:
+ str r0, [r4, #0x3c]
+_022351BC:
+ mov r0, #4
+ bl FUN_020336A0
+ b _022351C8
+_022351C4:
+ bl FUN_020335E0
+_022351C8:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02235168
+
+ thumb_func_start MOD80_022351CC
+MOD80_022351CC: ; 0x022351CC
+ mov r0, #3
+ bx lr
+ thumb_func_end MOD80_022351CC
+
+ thumb_func_start MOD80_022351D0
+MOD80_022351D0: ; 0x022351D0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ strh r1, [r4, #0x36]
+ mov r1, #9
+ mov r2, #7
+ bl MOD80_0222E7A8
+ mov r0, #0x24
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_022351D0
+
+ thumb_func_start MOD80_022351E8
+MOD80_022351E8: ; 0x022351E8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ strh r1, [r4, #0x36]
+ mov r1, #9
+ mov r2, #8
+ bl MOD80_0222E7A8
+ mov r0, #0x24
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_022351E8
+
+ thumb_func_start MOD80_02235200
+MOD80_02235200: ; 0x02235200
+ push {r4, lr}
+ mov r1, #9
+ add r2, r1, #0
+ add r4, r0, #0
+ bl MOD80_0222E7A8
+ mov r0, #0x24
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02235200
+
+ thumb_func_start MOD80_02235214
+MOD80_02235214: ; 0x02235214
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ strh r1, [r4, #0x36]
+ mov r1, #9
+ mov r2, #0xa
+ bl MOD80_0222E7A8
+ mov r0, #0x1e
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02235214
+
+ thumb_func_start MOD80_0223522C
+MOD80_0223522C: ; 0x0223522C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DD4C
+ mov r0, #0x17
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_0223522C
+
+ thumb_func_start MOD80_0223523C
+MOD80_0223523C: ; 0x0223523C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _022352A6
+ bl MOD80_0222DBB8
+ add r0, #0xf
+ cmp r0, #0xf
+ bhi _022352A6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223525E: ; jump table
+ .short _0223529A - _0223525E - 2 ; case 0
+ .short _0223529A - _0223525E - 2 ; case 1
+ .short _022352A2 - _0223525E - 2 ; case 2
+ .short _0223529A - _0223525E - 2 ; case 3
+ .short _022352A6 - _0223525E - 2 ; case 4
+ .short _022352A6 - _0223525E - 2 ; case 5
+ .short _022352A6 - _0223525E - 2 ; case 6
+ .short _022352A6 - _0223525E - 2 ; case 7
+ .short _022352A6 - _0223525E - 2 ; case 8
+ .short _022352A6 - _0223525E - 2 ; case 9
+ .short _02235292 - _0223525E - 2 ; case 10
+ .short _0223528C - _0223525E - 2 ; case 11
+ .short _02235286 - _0223525E - 2 ; case 12
+ .short _0223529A - _0223525E - 2 ; case 13
+ .short _022352A6 - _0223525E - 2 ; case 14
+ .short _0223527E - _0223525E - 2 ; case 15
+_0223527E:
+ add r0, r4, #0
+ bl MOD80_022350C4
+ b _022352A6
+_02235286:
+ add r0, r4, #0
+ bl MOD80_022350C4
+_0223528C:
+ add r0, r4, #0
+ bl MOD80_022350C4
+_02235292:
+ mov r0, #3
+ bl FUN_020336A0
+ b _022352A6
+_0223529A:
+ mov r0, #4
+ bl FUN_020336A0
+ b _022352A6
+_022352A2:
+ bl FUN_020335E0
+_022352A6:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_0223523C
+
+ thumb_func_start MOD80_022352AC
+MOD80_022352AC: ; 0x022352AC
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _022352E8 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _022352EC ; =0x00000B34
+ mov r2, #0x89
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x24
+ bl MOD80_0222E6DC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ add r0, r4, #0
+ bl MOD80_02235C40
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_022352E8: .word 0x00000F0F
+_022352EC: .word 0x00000B34
+ thumb_func_end MOD80_022352AC
+
+ thumb_func_start MOD80_022352F0
+MOD80_022352F0: ; 0x022352F0
+ push {r3, lr}
+ ldr r1, [r0, #0x3c]
+ mov r2, #0x90
+ add r1, #0xf
+ cmp r1, #0xe
+ bhi _02235330
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02235308: ; jump table
+ .short _02235330 - _02235308 - 2 ; case 0
+ .short _0223532E - _02235308 - 2 ; case 1
+ .short _02235330 - _02235308 - 2 ; case 2
+ .short _02235330 - _02235308 - 2 ; case 3
+ .short _02235326 - _02235308 - 2 ; case 4
+ .short _02235326 - _02235308 - 2 ; case 5
+ .short _02235326 - _02235308 - 2 ; case 6
+ .short _02235326 - _02235308 - 2 ; case 7
+ .short _02235326 - _02235308 - 2 ; case 8
+ .short _02235326 - _02235308 - 2 ; case 9
+ .short _02235330 - _02235308 - 2 ; case 10
+ .short _02235330 - _02235308 - 2 ; case 11
+ .short _02235330 - _02235308 - 2 ; case 12
+ .short _0223532E - _02235308 - 2 ; case 13
+ .short _0223532A - _02235308 - 2 ; case 14
+_02235326:
+ mov r2, #0x1a
+ b _02235330
+_0223532A:
+ mov r2, #0x8d
+ b _02235330
+_0223532E:
+ mov r2, #0x92
+_02235330:
+ ldr r1, _02235340 ; =0x00000F0F
+ mov r3, #1
+ str r1, [sp]
+ ldr r1, _02235344 ; =0x00000B34
+ ldr r1, [r0, r1]
+ bl MOD80_02236C70
+ pop {r3, pc}
+ .align 2, 0
+_02235340: .word 0x00000F0F
+_02235344: .word 0x00000B34
+ thumb_func_end MOD80_022352F0
+
+ thumb_func_start MOD80_02235348
+MOD80_02235348: ; 0x02235348
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_022352F0
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x24
+ bl MOD80_0222E6DC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02235348
+
+ thumb_func_start MOD80_02235370
+MOD80_02235370: ; 0x02235370
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_022352F0
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x24
+ bl MOD80_0222E6DC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02235370
+
+ thumb_func_start MOD80_02235398
+MOD80_02235398: ; 0x02235398
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0x25
+ mov r2, #0x1e
+ bl MOD80_0222E6DC
+ add r0, r4, #0
+ mov r1, #0x21
+ mov r2, #0x24
+ bl MOD80_02235820
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02235398
+
+ thumb_func_start MOD80_022353B4
+MOD80_022353B4: ; 0x022353B4
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_02022830
+ ldr r0, [r4]
+ mov r1, #2
+ ldr r0, [r0, #0x20]
+ bl FUN_02022840
+ mov r0, #0x1f
+ str r0, [r4, #0x2c]
+ bl FUN_0201B9EC
+ ldr r1, _022353EC ; =0x00000445
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x3c
+ blo _022353E0
+ bl ErrorHandling
+_022353E0:
+ ldr r0, _022353F0 ; =0x00000FDC
+ add r1, r5, #2
+ str r1, [r4, r0]
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ nop
+_022353EC: .word 0x00000445
+_022353F0: .word 0x00000FDC
+ thumb_func_end MOD80_022353B4
+
+ thumb_func_start MOD80_022353F4
+MOD80_022353F4: ; 0x022353F4
+ ldr r1, _0223540C ; =0x00000FDC
+ ldr r2, [r0, r1]
+ sub r2, r2, #1
+ str r2, [r0, r1]
+ ldr r1, [r0, r1]
+ cmp r1, #0
+ bne _02235406
+ mov r1, #0x20
+ str r1, [r0, #0x2c]
+_02235406:
+ mov r0, #3
+ bx lr
+ nop
+_0223540C: .word 0x00000FDC
+ thumb_func_end MOD80_022353F4
+
+ thumb_func_start MOD80_02235410
+MOD80_02235410: ; 0x02235410
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02022854
+ cmp r0, #1
+ bne _02235426
+ ldr r0, _0223542C ; =0x00000FE4
+ ldrh r0, [r4, r0]
+ str r0, [r4, #0x2c]
+_02235426:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_0223542C: .word 0x00000FE4
+ thumb_func_end MOD80_02235410
+
+ thumb_func_start MOD80_02235430
+MOD80_02235430: ; 0x02235430
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02022854
+ cmp r0, #2
+ bne _0223544C
+ ldr r0, _02235450 ; =0x00000FE6
+ ldrh r0, [r4, r0]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+_0223544C:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02235450: .word 0x00000FE6
+ thumb_func_end MOD80_02235430
+
+ thumb_func_start MOD80_02235454
+MOD80_02235454: ; 0x02235454
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02022830
+ ldr r0, [r4]
+ mov r1, #2
+ ldr r0, [r0, #0x20]
+ bl FUN_02022840
+ mov r0, #0x23
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02235454
+
+ thumb_func_start MOD80_02235470
+MOD80_02235470: ; 0x02235470
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02022854
+ cmp r0, #2
+ bne _022354AE
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ ldr r0, _022354B4 ; =0x00000F0F
+ ldr r1, _022354B8 ; =0x00000B34
+ str r0, [sp]
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x28]
+ add r0, r4, #0
+ mov r3, #1
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x1c
+ bl MOD80_0222E6DC
+_022354AE:
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_022354B4: .word 0x00000F0F
+_022354B8: .word 0x00000B34
+ thumb_func_end MOD80_02235470
+
+ thumb_func_start MOD80_022354BC
+MOD80_022354BC: ; 0x022354BC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD80_0222E8D8
+ bl FUN_02033ED0
+ ldr r0, _02235510 ; =0x0000100C
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _022354EC
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ b _02235504
+_022354EC:
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+_02235504:
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ mov r0, #4
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02235510: .word 0x0000100C
+ thumb_func_end MOD80_022354BC
+
+ thumb_func_start MOD80_02235514
+MOD80_02235514: ; 0x02235514
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223552E
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_0223552E:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02235514
+
+ thumb_func_start MOD80_02235534
+MOD80_02235534: ; 0x02235534
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0xb8
+ ldrh r0, [r0]
+ add r6, r1, #0
+ cmp r0, #0x12
+ beq _02235590
+ mov r0, #0x3e
+ bl FUN_020669C0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ add r1, #0xb8
+ add r2, #0xba
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206B5E4
+ add r1, r4, #0
+ bl FUN_02069A64
+ add r2, r5, #0
+ ldr r0, [r5]
+ add r2, #0xb8
+ ldrh r2, [r2]
+ ldr r0, [r0]
+ add r1, r4, #0
+ bl FUN_0202ABF8
+ add r1, r5, #0
+ add r2, r5, #0
+ ldr r0, [r5]
+ add r1, #0xb8
+ add r2, #0xba
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206B2FC
+ add r0, r4, #0
+ bl FUN_02016A18
+ b _022355DC
+_02235590:
+ add r1, r5, #0
+ ldr r0, [r5]
+ add r1, #0xba
+ ldrh r1, [r1]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9B0
+ add r4, r0, #0
+ bl FUN_0206AA84
+ add r2, r5, #0
+ ldr r0, [r5]
+ add r2, #0xb8
+ ldrh r2, [r2]
+ ldr r0, [r0]
+ add r1, r4, #0
+ bl FUN_0202ABF8
+ add r1, r5, #0
+ ldr r0, [r5]
+ add r1, #0xba
+ ldrh r1, [r1]
+ ldr r0, [r0, #8]
+ bl FUN_0206B938
+ ldr r0, [r5]
+ ldr r1, _022355EC ; =0x000001B9
+ ldr r0, [r0, #8]
+ bl FUN_0206BAE4
+ cmp r0, #0
+ bne _022355DC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x20]
+ bl FUN_02029EF8
+ bl FUN_02029F08
+_022355DC:
+ cmp r6, #0
+ beq _022355EA
+ ldr r0, [r5]
+ mov r1, #1
+ ldr r0, [r0]
+ bl FUN_0202ABE4
+_022355EA:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022355EC: .word 0x000001B9
+ thumb_func_end MOD80_02235534
+
+ thumb_func_start MOD80_022355F0
+MOD80_022355F0: ; 0x022355F0
+ push {r0, r1, r2, r3}
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #0
+ add r6, r3, #0
+ bl FUN_020671BC
+ ldr r0, [r5]
+ add r1, r4, #0
+ ldr r0, [r0, #0x20]
+ bl FUN_0202C144
+ mov r0, #0x12
+ str r0, [sp, #0x20]
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ cmp r0, #6
+ bne _02235624
+ mov r0, #0
+ str r0, [sp, #0x20]
+_02235624:
+ cmp r6, #0
+ beq _02235640
+ mov r1, #0x46
+ add r0, sp, #0
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #9
+ add r2, sp, #0
+ bl FUN_02067830
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl MOD80_02235754
+_02235640:
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x12
+ bne _02235664
+ ldr r0, [r5]
+ add r1, r4, #0
+ ldr r0, [r0, #8]
+ bl FUN_0206B900
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ add r1, r5, #0
+ mov r2, #0x12
+ add r1, #0xcc
+ str r2, [r1]
+ sub r1, r0, #1
+ b _02235690
+_02235664:
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ add r1, sp, #0x20
+ ldr r0, [r0, #0xc]
+ add r2, sp, #4
+ bl FUN_0206B384
+ add r0, r4, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r5]
+ ldr r1, [sp, #0x20]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206B244
+ add r0, r5, #0
+ ldr r1, [sp, #0x20]
+ add r0, #0xcc
+ str r1, [r0]
+ ldr r1, [sp, #4]
+_02235690:
+ add r0, r5, #0
+ add r0, #0xd0
+ str r1, [r0]
+ ldr r0, [r5]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0202ABE4
+ add sp, #8
+ pop {r4, r5, r6}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ .align 2, 0
+ thumb_func_end MOD80_022355F0
+
+ thumb_func_start MOD80_022356AC
+MOD80_022356AC: ; 0x022356AC
+ push {r0, r1, r2, r3}
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ ldr r0, [r0, #0x20]
+ bl FUN_0202C144
+ mov r0, #0x12
+ str r0, [sp, #0x20]
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ cmp r0, #6
+ bne _022356D2
+ mov r0, #0
+ str r0, [sp, #0x20]
+_022356D2:
+ mov r1, #0x46
+ add r0, sp, #0
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #9
+ add r2, sp, #0
+ bl FUN_02067830
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x12
+ bne _02235706
+ ldr r0, [r5]
+ add r1, r4, #0
+ ldr r0, [r0, #8]
+ bl FUN_0206B900
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ add r1, r5, #0
+ mov r2, #0x12
+ add r1, #0xcc
+ str r2, [r1]
+ sub r1, r0, #1
+ b _02235732
+_02235706:
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ add r1, sp, #0x20
+ ldr r0, [r0, #0xc]
+ add r2, sp, #4
+ bl FUN_0206B384
+ add r0, r4, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r5]
+ ldr r1, [sp, #0x20]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206B244
+ add r0, r5, #0
+ ldr r1, [sp, #0x20]
+ add r0, #0xcc
+ str r1, [r0]
+ ldr r1, [sp, #4]
+_02235732:
+ add r0, r5, #0
+ add r0, #0xd0
+ str r1, [r0]
+ ldr r0, [r5]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0202ABE4
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl MOD80_02235754
+ add sp, #8
+ pop {r3, r4, r5}
+ pop {r3}
+ add sp, #0x10
+ bx r3
+ thumb_func_end MOD80_022356AC
+
+ thumb_func_start MOD80_02235754
+MOD80_02235754: ; 0x02235754
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r0, sp, #0xc
+ add r1, sp, #0
+ bl MOD04_021DE1F8
+ ldr r1, [sp, #0x14]
+ ldr r3, [sp, #0xc]
+ add r0, r4, #0
+ lsl r4, r3, #0x18
+ ldr r3, [sp, #0x10]
+ lsl r1, r1, #0x18
+ lsl r3, r3, #0x18
+ lsr r3, r3, #8
+ ldr r2, [sp, #0x18]
+ lsr r1, r1, #0x10
+ orr r3, r4
+ orr r1, r3
+ orr r1, r2
+ bl FUN_0202AC10
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ thumb_func_end MOD80_02235754
+
+ thumb_func_start MOD80_02235784
+MOD80_02235784: ; 0x02235784
+ push {r4, lr}
+ ldr r3, _0223579C ; =0x0000011E
+ add r4, r1, #0
+ add r2, r3, #1
+ ldrb r1, [r4, r3]
+ add r3, r3, #5
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ bl FUN_020337C8
+ pop {r4, pc}
+ nop
+_0223579C: .word 0x0000011E
+ thumb_func_end MOD80_02235784
+
+ thumb_func_start MOD80_022357A0
+MOD80_022357A0: ; 0x022357A0
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0x74
+ add r2, sp, #4
+ bl FUN_020671BC
+ add r0, r4, #0
+ bl FUN_020689E0
+ add r3, r0, #0
+ mov r0, #0x3e
+ str r0, [sp]
+ add r0, #0xce
+ add r0, r4, r0
+ add r4, #0xf6
+ ldrb r1, [r4]
+ add r2, sp, #4
+ bl FUN_0202952C
+ add r1, r0, #0
+ add r0, r5, #0
+ mov r2, #4
+ bl FUN_02028AD4
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD80_022357A0
+
+ thumb_func_start MOD80_022357DC
+MOD80_022357DC: ; 0x022357DC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ bl MOD80_022331F8
+ cmp r0, #0
+ beq _022357FA
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ cmp r0, #6
+ bne _022357FA
+ mov r0, #2
+ pop {r4, pc}
+_022357FA:
+ ldr r0, _0223581C ; =0x00001008
+ ldrh r1, [r4, r0]
+ mov r0, #0x87
+ lsl r0, r0, #2
+ cmp r1, r0
+ bne _02235816
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ cmp r0, #6
+ bne _02235816
+ mov r0, #1
+ pop {r4, pc}
+_02235816:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0223581C: .word 0x00001008
+ thumb_func_end MOD80_022357DC
+
+ thumb_func_start MOD80_02235820
+MOD80_02235820: ; 0x02235820
+ ldr r3, _0223582C ; =0x00000FE4
+ strh r1, [r0, r3]
+ add r1, r3, #2
+ strh r2, [r0, r1]
+ bx lr
+ nop
+_0223582C: .word 0x00000FE4
+ thumb_func_end MOD80_02235820
+
+ thumb_func_start MOD80_02235830
+MOD80_02235830: ; 0x02235830
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl FUN_0202ABDC
+ cmp r0, #0
+ bne _0223584A
+ ldrh r0, [r4, #0x36]
+ cmp r0, #0
+ beq _0223584A
+ mov r0, #1
+ pop {r4, pc}
+_0223584A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02235830
+
+ thumb_func_start MOD80_02235850
+MOD80_02235850: ; 0x02235850
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD80_02235C88
+ ldr r2, _022358F0 ; =0x00000D14
+ add r0, sp, #0
+ add r1, r5, #0
+ add r2, r5, r2
+ mov r3, #2
+ bl MOD80_0222E5E8
+ mov r0, #2
+ str r0, [sp, #0x28]
+ lsl r0, r0, #0x12
+ str r0, [sp, #8]
+ ldr r0, _022358F4 ; =0x00182000
+ str r0, [sp, #0xc]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ mov r1, #0xe7
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0xe7
+ lsl r0, r0, #4
+ mov r1, #7
+ mul r1, r4
+ ldr r0, [r5, r0]
+ add r1, r1, #3
+ bl FUN_02020130
+ mov r0, #0xe7
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r4, _022358F8 ; =0x022375A6
+ mov r7, #0
+ mov r6, #0xe
+_022358AC:
+ add r0, sp, #0
+ bl FUN_0201FE94
+ ldr r1, _022358FC ; =0x00000E74
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _022358FC ; =0x00000E74
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _022358FC ; =0x00000E74
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _022358FC ; =0x00000E74
+ ldrh r1, [r4]
+ ldrh r2, [r4, #2]
+ ldr r0, [r5, r0]
+ bl MOD80_02235AFC
+ add r7, r7, #1
+ add r5, r5, #4
+ add r6, r6, #4
+ add r4, r4, #4
+ cmp r7, #7
+ blt _022358AC
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022358F0: .word 0x00000D14
+_022358F4: .word 0x00182000
+_022358F8: .word 0x022375A6
+_022358FC: .word 0x00000E74
+ thumb_func_end MOD80_02235850
+
+ thumb_func_start MOD80_02235900
+MOD80_02235900: ; 0x02235900
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD80_02235850
+ ldr r0, _0223593C ; =MOD80_02235964
+ mov r1, #0x10
+ mov r2, #5
+ mov r3, #0x3e
+ bl FUN_020061E8
+ ldr r1, _02235940 ; =0x00000FE8
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ bl FUN_0201B6C8
+ mov r1, #0
+ add r2, r1, #0
+ str r1, [r0]
+ sub r2, #0x28
+ str r2, [r0, #4]
+ str r4, [r0, #8]
+ str r5, [r0, #0xc]
+ bl MOD80_02235948
+ ldr r0, _02235944 ; =0x0000062F
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+ nop
+_0223593C: .word MOD80_02235964
+_02235940: .word 0x00000FE8
+_02235944: .word 0x0000062F
+ thumb_func_end MOD80_02235900
+
+ thumb_func_start MOD80_02235948
+MOD80_02235948: ; 0x02235948
+ add r3, r0, #0
+ ldr r2, [r3, #0xc]
+ mov r0, #0xe7
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ ldr r3, [r3, #8]
+ mov r2, #7
+ mul r2, r3
+ ldr r3, _02235960 ; =FUN_02020130
+ add r1, r1, r2
+ bx r3
+ nop
+_02235960: .word FUN_02020130
+ thumb_func_end MOD80_02235948
+
+ thumb_func_start MOD80_02235964
+MOD80_02235964: ; 0x02235964
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ ldr r0, [r4]
+ ldr r5, [r4, #0xc]
+ cmp r0, #3
+ bhi _02235A06
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223597E: ; jump table
+ .short _02235986 - _0223597E - 2 ; case 0
+ .short _022359AE - _0223597E - 2 ; case 1
+ .short _022359CA - _0223597E - 2 ; case 2
+ .short _022359F2 - _0223597E - 2 ; case 3
+_02235986:
+ ldr r0, [r4, #4]
+ cmp r0, #0xa0
+ ble _0223599A
+ mov r0, #0xa0
+ str r0, [r4, #4]
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [r4]
+ bl MOD80_02235948
+_0223599A:
+ ldr r0, [r4, #4]
+ mov r1, #0x80
+ add r2, r0, #5
+ mov r0, #0xe7
+ str r2, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD80_02235AFC
+ pop {r4, r5, r6, pc}
+_022359AE:
+ mov r0, #0xe7
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _02235A06
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD80_02235948
+ mov r0, #2
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_022359CA:
+ ldr r0, [r4, #4]
+ cmp r0, #0x82
+ bge _022359DE
+ mov r0, #0x82
+ str r0, [r4, #4]
+ mov r1, #3
+ add r0, r4, #0
+ str r1, [r4]
+ bl MOD80_02235948
+_022359DE:
+ ldr r0, [r4, #4]
+ mov r1, #0x80
+ sub r2, r0, #2
+ mov r0, #0xe7
+ str r2, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD80_02235AFC
+ pop {r4, r5, r6, pc}
+_022359F2:
+ ldr r0, _02235A08 ; =0x0000060D
+ bl FUN_020054C8
+ ldr r1, [r4, #0xc]
+ ldr r0, _02235A0C ; =0x00000FEC
+ mov r2, #1
+ strh r2, [r1, r0]
+ add r0, r6, #0
+ bl FUN_0200621C
+_02235A06:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02235A08: .word 0x0000060D
+_02235A0C: .word 0x00000FEC
+ thumb_func_end MOD80_02235964
+
+ thumb_func_start MOD80_02235A10
+MOD80_02235A10: ; 0x02235A10
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r0, _02235A48 ; =MOD80_02235A54
+ mov r1, #0x10
+ mov r2, #5
+ mov r3, #0x3e
+ bl FUN_020061E8
+ ldr r1, _02235A4C ; =0x00000FE8
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ bl FUN_0201B6C8
+ mov r1, #0
+ str r1, [r0]
+ mov r1, #0x82
+ str r1, [r0, #4]
+ str r4, [r0, #8]
+ mov r1, #5
+ str r5, [r0, #0xc]
+ bl MOD80_02235948
+ ldr r0, _02235A50 ; =0x0000060E
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+ nop
+_02235A48: .word MOD80_02235A54
+_02235A4C: .word 0x00000FE8
+_02235A50: .word 0x0000060E
+ thumb_func_end MOD80_02235A10
+
+ thumb_func_start MOD80_02235A54
+MOD80_02235A54: ; 0x02235A54
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ ldr r5, [r4, #0xc]
+ cmp r1, #3
+ bhi _02235AF4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02235A6C: ; jump table
+ .short _02235A74 - _02235A6C - 2 ; case 0
+ .short _02235A9E - _02235A6C - 2 ; case 1
+ .short _02235AC2 - _02235A6C - 2 ; case 2
+ .short _02235AEA - _02235A6C - 2 ; case 3
+_02235A74:
+ ldr r0, [r4, #4]
+ cmp r0, #0xa0
+ ble _02235A8A
+ mov r0, #0xa0
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4]
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD80_02235948
+_02235A8A:
+ ldr r0, [r4, #4]
+ mov r1, #0x80
+ add r2, r0, #2
+ mov r0, #0xe7
+ str r2, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD80_02235AFC
+ pop {r3, r4, r5, pc}
+_02235A9E:
+ mov r0, #0xe7
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _02235AF4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD80_02235948
+ mov r0, #2
+ str r0, [r4]
+ mov r0, #0x63
+ lsl r0, r0, #4
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_02235AC2:
+ mov r0, #0x13
+ ldr r1, [r4, #4]
+ mvn r0, r0
+ cmp r1, r0
+ bge _02235AD6
+ mov r1, #3
+ add r0, r4, #0
+ str r1, [r4]
+ bl MOD80_02235948
+_02235AD6:
+ ldr r0, [r4, #4]
+ mov r1, #0x80
+ sub r2, r0, #5
+ mov r0, #0xe7
+ str r2, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD80_02235AFC
+ pop {r3, r4, r5, pc}
+_02235AEA:
+ ldr r1, _02235AF8 ; =0x00000FEC
+ mov r2, #1
+ strh r2, [r5, r1]
+ bl FUN_0200621C
+_02235AF4:
+ pop {r3, r4, r5, pc}
+ nop
+_02235AF8: .word 0x00000FEC
+ thumb_func_end MOD80_02235A54
+
+ thumb_func_start MOD80_02235AFC
+MOD80_02235AFC: ; 0x02235AFC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r1, #0
+ ble _02235B1A
+ lsl r0, r1, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _02235B28
+_02235B1A:
+ lsl r0, r1, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_02235B28:
+ bl _ffix
+ sub r5, #8
+ str r0, [sp]
+ cmp r5, #0
+ ble _02235B46
+ lsl r0, r5, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _02235B54
+_02235B46:
+ lsl r0, r5, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_02235B54:
+ bl _ffix
+ mov r1, #1
+ lsl r1, r1, #0x14
+ add r0, r0, r1
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, sp, #0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD80_02235AFC
+
+ thumb_func_start MOD80_02235B70
+MOD80_02235B70: ; 0x02235B70
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02235B8C ; =0x022375C2
+ bl FUN_02020988
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02235B86
+ cmp r0, r4
+ blt _02235B8A
+_02235B86:
+ mov r0, #0
+ mvn r0, r0
+_02235B8A:
+ pop {r4, pc}
+ .align 2, 0
+_02235B8C: .word 0x022375C2
+ thumb_func_end MOD80_02235B70
+
+ thumb_func_start MOD80_02235B90
+MOD80_02235B90: ; 0x02235B90
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ add r0, r1, #0
+ beq _02235BAA
+ add r0, r2, #0
+ cmp r0, #1
+ bne _02235BAA
+ ldr r0, _02235C24 ; =0x0000064F
+ bl FUN_020054C8
+_02235BAA:
+ ldr r4, [sp, #4]
+ mov r0, #0xe
+ mov r6, #0
+ str r0, [sp, #0x10]
+ add r5, r4, #0
+ mov r7, #0x11
+_02235BB6:
+ ldr r0, [sp, #8]
+ cmp r6, r0
+ bge _02235C00
+ ldr r0, _02235C28 ; =0x000002EE
+ ldr r1, [sp, #4]
+ ldrb r0, [r4, r0]
+ mov r3, #0xc6
+ add r2, r1, #0
+ str r0, [sp]
+ ldr r0, _02235C2C ; =0x00000FF4
+ lsl r3, r3, #2
+ ldr r0, [r1, r0]
+ ldr r1, _02235C30 ; =0x00000FFC
+ ldrb r3, [r4, r3]
+ ldr r1, [r2, r1]
+ add r2, r6, #0
+ bl MOD80_02235CD0
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ ldr r0, _02235C34 ; =0x00000E74
+ beq _02235BEC
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x10]
+ bl FUN_02020130
+ b _02235BF4
+_02235BEC:
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ bl FUN_02020130
+_02235BF4:
+ ldr r0, _02235C34 ; =0x00000E74
+ mov r1, #1
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ b _02235C0A
+_02235C00:
+ ldr r0, _02235C34 ; =0x00000E74
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+_02235C0A:
+ mov r0, #0x49
+ lsl r0, r0, #2
+ add r4, r4, r0
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r0, r0, #4
+ str r0, [sp, #0x10]
+ add r5, r5, #4
+ add r7, r7, #4
+ cmp r6, #7
+ blt _02235BB6
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235C24: .word 0x0000064F
+_02235C28: .word 0x000002EE
+_02235C2C: .word 0x00000FF4
+_02235C30: .word 0x00000FFC
+_02235C34: .word 0x00000E74
+ thumb_func_end MOD80_02235B90
+
+ thumb_func_start MOD80_02235C38
+MOD80_02235C38: ; 0x02235C38
+ lsl r0, r0, #2
+ add r0, #0xe
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD80_02235C38
+
+ thumb_func_start MOD80_02235C40
+MOD80_02235C40: ; 0x02235C40
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r7, _02235C84 ; =0x00000E74
+ add r5, r0, #0
+ mov r4, #0
+_02235C48:
+ ldr r0, [r5, r7]
+ bl FUN_02020128
+ cmp r0, #0
+ beq _02235C7A
+ ldr r0, _02235C84 ; =0x00000E74
+ ldr r0, [r5, r0]
+ bl FUN_020201DC
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD80_02235C38
+ add r0, r0, #1
+ cmp r6, r0
+ beq _02235C7A
+ add r0, r4, #0
+ bl MOD80_02235C38
+ add r1, r0, #0
+ ldr r0, _02235C84 ; =0x00000E74
+ add r1, r1, #1
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+_02235C7A:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ blt _02235C48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235C84: .word 0x00000E74
+ thumb_func_end MOD80_02235C40
+
+ thumb_func_start MOD80_02235C88
+MOD80_02235C88: ; 0x02235C88
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r2, _02235CC8 ; =0x00000FFC
+ add r4, r0, #0
+ mov r0, #0x56
+ mov r1, #7
+ add r2, r4, r2
+ mov r3, #0x3e
+ bl FUN_02006C08
+ ldr r3, _02235CCC ; =0x00000FF8
+ mov r1, #9
+ str r0, [r4, r3]
+ mov r0, #0x3e
+ sub r3, r3, #4
+ str r0, [sp]
+ mov r0, #0x56
+ mov r2, #1
+ add r3, r4, r3
+ bl FUN_02006BB0
+ mov r1, #0xff
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #4
+ mov r1, #2
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xe
+ bl DC_FlushRange
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02235CC8: .word 0x00000FFC
+_02235CCC: .word 0x00000FF8
+ thumb_func_end MOD80_02235C88
+
+ thumb_func_start MOD80_02235CD0
+MOD80_02235CD0: ; 0x02235CD0
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r6, r1, #0
+ ldr r0, [sp, #0x18]
+ add r1, r3, #0
+ add r5, r2, #0
+ bl FUN_020536C8
+ add r4, r0, #0
+ mov r0, #6
+ lsl r0, r0, #8
+ ldr r1, [r7, #0x14]
+ mul r0, r4
+ add r0, r1, r0
+ ldr r1, _02235D0C ; =0x02237598
+ lsl r2, r5, #1
+ ldrh r1, [r1, r2]
+ mov r2, #2
+ ldr r6, [r6, #0xc]
+ lsl r2, r2, #8
+ bl GXS_LoadOBJ
+ lsl r0, r4, #5
+ add r1, r5, #2
+ add r0, r6, r0
+ lsl r1, r1, #5
+ mov r2, #0x20
+ bl GXS_LoadOBJPltt
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235D0C: .word 0x02237598
+ thumb_func_end MOD80_02235CD0
+
+ thumb_func_start MOD80_02235D10
+MOD80_02235D10: ; 0x02235D10
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02235D30 ; =0x00000FEC
+ ldrh r1, [r4, r0]
+ cmp r1, #0
+ beq _02235D2E
+ add r0, #0xc
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0xff
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+_02235D2E:
+ pop {r4, pc}
+ .align 2, 0
+_02235D30: .word 0x00000FEC
+ thumb_func_end MOD80_02235D10
+
+ thumb_func_start MOD80_02235D34
+MOD80_02235D34: ; 0x02235D34
+ push {r4, lr}
+ add r4, r0, #0
+ add r2, r4, #0
+ add r3, r4, #0
+ ldr r1, [r4]
+ add r2, #0xb8
+ add r3, #0xba
+ ldr r0, [r1, #8]
+ ldrh r2, [r2]
+ ldrh r3, [r3]
+ ldr r1, [r1, #0xc]
+ bl MOD80_02232FB8
+ str r0, [r4, #0x60]
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0x71
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r2, #1
+ add r0, #0x73
+ strb r2, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x74
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x72
+ strb r2, [r0]
+ add r0, r4, #0
+ add r0, #0x78
+ strh r1, [r0]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02079C70
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x34]
+ str r0, [r4, #0x7c]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x24]
+ str r0, [r4, #0x64]
+ ldr r0, [r4]
+ ldr r0, [r0, #0x20]
+ bl FUN_0202A918
+ add r1, r4, #0
+ add r1, #0x80
+ str r0, [r1]
+ add r0, r4, #0
+ ldr r1, _02235DCC ; =0x022375E4
+ add r0, #0x60
+ bl FUN_0207B000
+ ldr r1, [r4]
+ add r0, r4, #0
+ ldr r1, [r1, #0x1c]
+ add r0, #0x60
+ bl FUN_0207C2A4
+ add r1, r4, #0
+ ldr r0, _02235DD0 ; =0x020FA6E8
+ add r1, #0x60
+ mov r2, #0x3e
+ bl FUN_02006234
+ str r0, [r4, #0x5c]
+ mov r0, #1
+ add r4, #0xac
+ str r0, [r4]
+ mov r0, #2
+ pop {r4, pc}
+ nop
+_02235DCC: .word 0x022375E4
+_02235DD0: .word 0x020FA6E8
+ thumb_func_end MOD80_02235D34
+
+ thumb_func_start MOD80_02235DD4
+MOD80_02235DD4: ; 0x02235DD4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x5c]
+ mov r4, #3
+ bl FUN_02006290
+ cmp r0, #0
+ beq _02235DF6
+ ldr r0, [r5, #0x5c]
+ bl FUN_02006260
+ ldr r2, [r5, #0x24]
+ add r0, r5, #0
+ mov r1, #5
+ bl MOD80_0222E7A8
+ mov r4, #4
+_02235DF6:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02235DD4
+
+ thumb_func_start MOD80_02235DFC
+MOD80_02235DFC: ; 0x02235DFC
+ push {r3, lr}
+ bl MOD80_0222E7B0
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02235DFC
+
+ thumb_func_start MOD80_02235E08
+MOD80_02235E08: ; 0x02235E08
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x3e
+ bl FUN_020669C0
+ mov r1, #1
+ lsl r1, r1, #0xc
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x24]
+ cmp r0, #0xa
+ bls _02235E20
+ b _02235F94
+_02235E20:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02235E2C: ; jump table
+ .short _02235F94 - _02235E2C - 2 ; case 0
+ .short _02235F94 - _02235E2C - 2 ; case 1
+ .short _02235F94 - _02235E2C - 2 ; case 2
+ .short _02235F94 - _02235E2C - 2 ; case 3
+ .short _02235F94 - _02235E2C - 2 ; case 4
+ .short _02235F94 - _02235E2C - 2 ; case 5
+ .short _02235F94 - _02235E2C - 2 ; case 6
+ .short _02235E42 - _02235E2C - 2 ; case 7
+ .short _02235E88 - _02235E2C - 2 ; case 8
+ .short _02235F26 - _02235E2C - 2 ; case 9
+ .short _02235ECE - _02235E2C - 2 ; case 10
+_02235E42:
+ add r0, r4, #0
+ add r0, #0xd4
+ bl FUN_020690E4
+ add r1, r4, #0
+ add r1, #0x90
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD80_022361AC
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x9c
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0xa0
+ str r1, [r0]
+ b _02235F94
+_02235E88:
+ add r0, r4, #0
+ add r0, #0xd4
+ bl FUN_020690E4
+ add r1, r4, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD80_022361AC
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x9c
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #4
+ add r0, #0xa0
+ str r1, [r0]
+ b _02235F94
+_02235ECE:
+ add r0, r4, #0
+ add r0, #0xd4
+ bl FUN_020690E4
+ add r1, r4, #0
+ add r1, #0x94
+ str r0, [r1]
+ ldr r0, [r4]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ bl FUN_0202ABEC
+ mov r0, #1
+ lsl r0, r0, #0xc
+ ldr r0, [r4, r0]
+ bl FUN_020690E4
+ add r1, r4, #0
+ add r1, #0x90
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xd4
+ bl MOD80_022361AC
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x9c
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa0
+ str r1, [r0]
+ b _02235F94
+_02235F26:
+ ldr r0, [r4]
+ ldr r1, [r4, r1]
+ ldr r0, [r0]
+ bl FUN_0202ABEC
+ mov r0, #1
+ lsl r0, r0, #0xc
+ ldr r0, [r4, r0]
+ bl FUN_020690E4
+ add r1, r4, #0
+ add r1, #0x90
+ str r0, [r1]
+ add r0, r4, #0
+ mov r1, #0x7e
+ add r0, #0xc4
+ lsl r1, r1, #2
+ add r2, r4, r1
+ ldr r0, [r0]
+ sub r1, #0xd4
+ mul r1, r0
+ add r0, r2, r1
+ bl FUN_020690E4
+ add r1, r4, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r4, #0
+ mov r1, #0x7e
+ add r0, #0xc4
+ lsl r1, r1, #2
+ add r2, r4, r1
+ ldr r0, [r0]
+ sub r1, #0xd4
+ mul r1, r0
+ add r0, r2, r1
+ bl MOD80_022361AC
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x9c
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa0
+ str r1, [r0]
+_02235F94:
+ ldr r0, [r4]
+ mov r2, #0x3e
+ ldr r1, [r0, #0x24]
+ add r0, r4, #0
+ add r0, #0xa4
+ str r1, [r0]
+ add r1, r4, #0
+ ldr r0, _02235FB8 ; =0x022375F0
+ add r1, #0x90
+ bl FUN_02006234
+ str r0, [r4, #0x5c]
+ mov r0, #1
+ add r4, #0xac
+ str r0, [r4]
+ mov r0, #2
+ pop {r4, pc}
+ nop
+_02235FB8: .word 0x022375F0
+ thumb_func_end MOD80_02235E08
+
+ thumb_func_start MOD80_02235FBC
+MOD80_02235FBC: ; 0x02235FBC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ mov r6, #3
+ cmp r0, #0
+ beq _02235FD2
+ cmp r0, #1
+ bne _02235FD0
+ b _02236148
+_02235FD0:
+ b _0223617E
+_02235FD2:
+ ldr r0, [r4, #0x5c]
+ bl FUN_02006290
+ cmp r0, #0
+ bne _02235FDE
+ b _0223617E
+_02235FDE:
+ ldr r0, [r4, #0x5c]
+ bl FUN_02006260
+ ldr r1, [r4, #0x24]
+ cmp r1, #9
+ bne _02236060
+ add r0, r4, #0
+ bl MOD80_022361E8
+ mov r1, #6
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020671BC
+ add r3, r0, #0
+ add r0, sp, #0x30
+ lsl r3, r3, #0x10
+ str r0, [sp]
+ mov r0, #0
+ add r1, r7, #0
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02069168
+ str r0, [sp, #0x24]
+ cmp r0, #0
+ beq _02236052
+ ldr r5, [r4]
+ ldr r0, [r5, #0x20]
+ bl FUN_0204C1A8
+ ldr r1, [r5, #0x3c]
+ ldr r2, [sp, #0x24]
+ str r1, [sp]
+ ldr r1, [r5, #0x10]
+ str r1, [sp, #4]
+ ldr r1, [r5, #0x30]
+ str r1, [sp, #8]
+ ldr r1, [r5, #0x28]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x30]
+ add r1, r7, #0
+ str r0, [sp, #0x14]
+ mov r0, #4
+ str r0, [sp, #0x18]
+ mov r0, #0x3e
+ str r0, [sp, #0x1c]
+ ldr r3, [r5, #0x24]
+ mov r0, #0
+ bl FUN_0206C700
+ add r1, r4, #0
+ add r1, #0xa8
+ str r0, [r1]
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ b _0223617E
+_02236052:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r6, #4
+ b _0223617E
+_02236060:
+ cmp r1, #8
+ beq _02236068
+ cmp r1, #0xa
+ bne _0223613A
+_02236068:
+ add r0, r4, #0
+ bl MOD80_022361E8
+ add r7, r0, #0
+ mov r0, #0x3e
+ bl FUN_020669C0
+ str r0, [sp, #0x20]
+ ldr r0, [r4]
+ ldr r1, [sp, #0x20]
+ ldr r0, [r0]
+ bl FUN_0202ABEC
+ add r0, r7, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ add r5, r0, #0
+ ldr r0, [sp, #0x20]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r5, r0
+ bne _022360B6
+ mov r1, #0
+ add r0, r7, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ add r5, r0, #0
+ mov r1, #0
+ ldr r0, [sp, #0x20]
+ add r2, r1, #0
+ bl FUN_020671BC
+ cmp r5, r0
+ beq _02236126
+_022360B6:
+ add r0, r7, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ add r3, r0, #0
+ add r0, sp, #0x2c
+ lsl r3, r3, #0x10
+ str r0, [sp]
+ mov r0, #0
+ add r1, r7, #0
+ mov r2, #1
+ lsr r3, r3, #0x10
+ bl FUN_02069168
+ str r0, [sp, #0x28]
+ cmp r0, #0
+ beq _02236118
+ ldr r5, [r4]
+ ldr r0, [r5, #0x20]
+ bl FUN_0204C1A8
+ ldr r1, [r5, #0x3c]
+ ldr r2, [sp, #0x28]
+ str r1, [sp]
+ ldr r1, [r5, #0x10]
+ str r1, [sp, #4]
+ ldr r1, [r5, #0x30]
+ str r1, [sp, #8]
+ ldr r1, [r5, #0x28]
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x2c]
+ add r1, r7, #0
+ str r0, [sp, #0x14]
+ mov r0, #4
+ str r0, [sp, #0x18]
+ mov r0, #0x3e
+ str r0, [sp, #0x1c]
+ ldr r3, [r5, #0x24]
+ mov r0, #0
+ bl FUN_0206C700
+ add r1, r4, #0
+ add r1, #0xa8
+ str r0, [r1]
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ b _02236132
+_02236118:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r6, #4
+ b _02236132
+_02236126:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r6, #4
+_02236132:
+ ldr r0, [sp, #0x20]
+ bl FUN_02016A18
+ b _0223617E
+_0223613A:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r6, #4
+ b _0223617E
+_02236148:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ bl FUN_0206C91C
+ cmp r0, #0
+ beq _0223617E
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ bl FUN_0206C92C
+ add r0, r4, #0
+ bl MOD80_02236218
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _02236184 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #0xc
+ bl MOD80_0222E7A8
+ mov r6, #4
+_0223617E:
+ add r0, r6, #0
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236184: .word 0xFFFF1FFF
+ thumb_func_end MOD80_02235FBC
+
+ thumb_func_start MOD80_02236188
+MOD80_02236188: ; 0x02236188
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl MOD80_0222E7B0
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02236188
+
+ thumb_func_start MOD80_022361AC
+MOD80_022361AC: ; 0x022361AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x3e
+ bl FUN_02023928
+ add r4, r0, #0
+ bl FUN_02023948
+ mov r1, #0x43
+ lsl r1, r1, #2
+ add r0, r4, #0
+ add r1, r5, r1
+ bl FUN_0202395C
+ ldr r1, _022361E0 ; =0x00000122
+ add r0, r4, #0
+ ldrb r1, [r5, r1]
+ bl FUN_02023A6C
+ ldr r1, _022361E4 ; =0x00000123
+ add r0, r4, #0
+ ldrb r1, [r5, r1]
+ bl FUN_02023A74
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022361E0: .word 0x00000122
+_022361E4: .word 0x00000123
+ thumb_func_end MOD80_022361AC
+
+ thumb_func_start MOD80_022361E8
+MOD80_022361E8: ; 0x022361E8
+ push {r3, lr}
+ cmp r1, #9
+ bne _02236200
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ add r2, r0, r1
+ add r0, #0xc4
+ ldr r0, [r0]
+ sub r1, #0xd4
+ mul r1, r0
+ add r0, r2, r1
+ pop {r3, pc}
+_02236200:
+ cmp r1, #0xa
+ bne _02236208
+ add r0, #0xd4
+ pop {r3, pc}
+_02236208:
+ cmp r1, #8
+ bne _02236210
+ add r0, #0xd4
+ pop {r3, pc}
+_02236210:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD80_022361E8
+
+ thumb_func_start MOD80_02236218
+MOD80_02236218: ; 0x02236218
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r1, [r5, #0x24]
+ bl MOD80_022361E8
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ cmp r0, #0x12
+ bne _02236248
+ ldr r0, [r5]
+ add r5, #0xd0
+ ldr r0, [r0, #8]
+ ldr r1, [r5]
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02069B88
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_02236248:
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r5, #0
+ str r0, [sp, #4]
+ str r0, [sp]
+ ldr r0, [r5]
+ add r1, #0xcc
+ add r2, #0xd0
+ ldr r0, [r0, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0206B2FC
+ ldr r0, [r5]
+ add r1, sp, #4
+ ldr r0, [r0, #0xc]
+ add r2, sp, #0
+ bl FUN_0206B384
+ add r0, r4, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r5]
+ ldr r1, [sp, #4]
+ ldr r0, [r0, #0xc]
+ bl FUN_0206B244
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD80_02236218
+
+ thumb_func_start MOD80_02236284
+MOD80_02236284: ; 0x02236284
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD80_02236664
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4, #4]
+ bl MOD80_02236378
+ add r0, r4, #0
+ bl MOD80_02236488
+ add r0, r4, #0
+ bl MOD80_02236580
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, [r4]
+ ldr r0, [r0, #0x20]
+ bl FUN_02033288
+ add r0, r4, #0
+ bl MOD80_02236D84
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ bne _0223631E
+ ldr r0, [r4]
+ ldr r0, [r0, #0x40]
+ cmp r0, #0
+ beq _02236318
+ ldr r0, _02236328 ; =0x00000F0F
+ ldr r1, _0223632C ; =0x00000B3C
+ str r0, [sp]
+ mov r2, #1
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #2
+ bl MOD80_0222E6DC
+ add r0, r4, #0
+ bl MOD80_0222E8BC
+ b _02236322
+_02236318:
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ b _02236322
+_0223631E:
+ mov r0, #0xf
+ str r0, [r4, #0x2c]
+_02236322:
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02236328: .word 0x00000F0F
+_0223632C: .word 0x00000B3C
+ thumb_func_end MOD80_02236284
+
+ thumb_func_start MOD80_02236330
+MOD80_02236330: ; 0x02236330
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222E79C
+ bl FUN_02033EEC
+ ldr r1, [r4, #0x2c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _0223634C ; =0x02237C68
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0223634C: .word 0x02237C68
+ thumb_func_end MOD80_02236330
+
+ thumb_func_start MOD80_02236350
+MOD80_02236350: ; 0x02236350
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0223669C
+ add r0, r4, #0
+ bl MOD80_02236638
+ ldr r0, [r4, #4]
+ bl MOD80_02236464
+ add r0, r4, #0
+ bl MOD80_0222E7B0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _02236374
+ mov r0, #5
+ pop {r4, pc}
+_02236374:
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD80_02236350
+
+ thumb_func_start MOD80_02236378
+MOD80_02236378: ; 0x02236378
+ push {r3, r4, r5, lr}
+ sub sp, #0x70
+ ldr r5, _02236454 ; =0x02237638
+ add r4, r0, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x54
+ 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
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _02236458 ; =0x0223761C
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r5, _0223645C ; =0x02237654
+ 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, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _02236460 ; =0x02237600
+ 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, #5
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x3e
+ bl FUN_02017F18
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E74C
+ add sp, #0x70
+ pop {r3, r4, r5, pc}
+ nop
+_02236454: .word 0x02237638
+_02236458: .word 0x0223761C
+_0223645C: .word 0x02237654
+_02236460: .word 0x02237600
+ thumb_func_end MOD80_02236378
+
+ thumb_func_start MOD80_02236464
+MOD80_02236464: ; 0x02236464
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ 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 MOD80_02236464
+
+ thumb_func_start MOD80_02236488
+MOD80_02236488: ; 0x02236488
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ mov r0, #0x5c
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ mov r0, #0x5c
+ mov r1, #3
+ mov r2, #4
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x3e
+ bl FUN_02002EEC
+ mov r1, #0x1a
+ mov r0, #4
+ lsl r1, r1, #4
+ mov r2, #0x3e
+ bl FUN_02002EEC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x24]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x3e
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0
+ mov r0, #0x36
+ str r1, [sp]
+ lsl r0, r0, #6
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #1
+ bl FUN_0200687C
+ mov r1, #0
+ mov r0, #6
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #4
+ add r2, r4, #0
+ mov r3, #1
+ bl FUN_020068C8
+ mov r1, #0
+ mov r0, #0x36
+ str r1, [sp]
+ lsl r0, r0, #6
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #9
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_0200687C
+ mov r1, #0
+ mov r0, #6
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x3e
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #0xa
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD80_02236488
+
+ thumb_func_start MOD80_02236580
+MOD80_02236580: ; 0x02236580
+ push {r3, r4, lr}
+ sub sp, #0x14
+ mov r3, #4
+ add r4, r0, #0
+ str r3, [sp]
+ mov r0, #0x17
+ str r0, [sp, #4]
+ mov r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x94
+ ldr r1, _02236628 ; =0x00000EC8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ bl FUN_02019064
+ ldr r0, _02236628 ; =0x00000EC8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r1, _0223662C ; =0x00000EB8
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #4
+ bl FUN_02019064
+ ldr r0, _0223662C ; =0x00000EB8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ mov r3, #1
+ mov r1, #0xb5
+ ldr r0, _02236630 ; =0x000F0E00
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0223662C ; =0x00000EB8
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ mov r2, #0
+ bl MOD80_02236D1C
+ 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, #0x28
+ ldr r1, _02236634 ; =0x00000E98
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ ldr r0, _02236634 ; =0x00000E98
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02236628: .word 0x00000EC8
+_0223662C: .word 0x00000EB8
+_02236630: .word 0x000F0E00
+_02236634: .word 0x00000E98
+ thumb_func_end MOD80_02236580
+
+ thumb_func_start MOD80_02236638
+MOD80_02236638: ; 0x02236638
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02236658 ; =0x00000E98
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _0223665C ; =0x00000EB8
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, _02236660 ; =0x00000EC8
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r4, pc}
+ nop
+_02236658: .word 0x00000E98
+_0223665C: .word 0x00000EB8
+_02236660: .word 0x00000EC8
+ thumb_func_end MOD80_02236638
+
+ thumb_func_start MOD80_02236664
+MOD80_02236664: ; 0x02236664
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xb4
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _02236694 ; =0x00000B4C
+ str r0, [r4, r1]
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #0x3e
+ bl FUN_020219F4
+ ldr r1, _02236698 ; =0x00000B7C
+ str r0, [r4, r1]
+ sub r1, #0x48
+ ldr r0, [r4, r1]
+ mov r1, #0x1f
+ bl FUN_0200A914
+ mov r1, #0xb5
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_02236694: .word 0x00000B4C
+_02236698: .word 0x00000B7C
+ thumb_func_end MOD80_02236664
+
+ thumb_func_start MOD80_0223669C
+MOD80_0223669C: ; 0x0223669C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xb5
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _022366BC ; =0x00000B7C
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _022366C0 ; =0x00000B4C
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .align 2, 0
+_022366BC: .word 0x00000B7C
+_022366C0: .word 0x00000B4C
+ thumb_func_end MOD80_0223669C
+
+ thumb_func_start MOD80_022366C4
+MOD80_022366C4: ; 0x022366C4
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _022366F4 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0x2d
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ mov r2, #0x10
+ mov r3, #1
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r2, #1
+ bl MOD80_0222E6DC
+ ldr r0, _022366F8 ; =0x0000100A
+ mov r1, #1
+ strh r1, [r4, r0]
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_022366F4: .word 0x00000F0F
+_022366F8: .word 0x0000100A
+ thumb_func_end MOD80_022366C4
+
+ thumb_func_start MOD80_022366FC
+MOD80_022366FC: ; 0x022366FC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, _02236758 ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02236750
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _0223672E
+ bl FUN_020332DC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #9
+ str r0, [r4, #0x2c]
+ b _02236750
+_0223672E:
+ ldr r0, _0223675C ; =0x00000F0F
+ ldr r1, _02236760 ; =0x00000B3C
+ str r0, [sp]
+ mov r2, #1
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #2
+ bl MOD80_0222E6DC
+ add r0, r4, #0
+ bl MOD80_0222E8BC
+_02236750:
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02236758: .word 0x00000FCC
+_0223675C: .word 0x00000F0F
+_02236760: .word 0x00000B3C
+ thumb_func_end MOD80_022366FC
+
+ thumb_func_start MOD80_02236764
+MOD80_02236764: ; 0x02236764
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0223678C ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _02236790 ; =0x00000B34
+ mov r2, #7
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r2, #0xe
+ bl MOD80_0222E6DC
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0223678C: .word 0x00000F0F
+_02236790: .word 0x00000B34
+ thumb_func_end MOD80_02236764
+
+ thumb_func_start MOD80_02236794
+MOD80_02236794: ; 0x02236794
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022367F4 ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _022367F0
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _022367D2
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ bne _022367BE
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ b _022367F0
+_022367BE:
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #0xb
+ bl MOD80_0222E7A8
+ mov r0, #1
+ str r0, [r4, #0x1c]
+ mov r0, #9
+ str r0, [r4, #0x2c]
+ b _022367F0
+_022367D2:
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ beq _022367DE
+ bl MOD04_021DDBBC
+_022367DE:
+ bl FUN_020332DC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #9
+ str r0, [r4, #0x2c]
+_022367F0:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_022367F4: .word 0x00000FCC
+ thumb_func_end MOD80_02236794
+
+ thumb_func_start MOD80_022367F8
+MOD80_022367F8: ; 0x022367F8
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _02236820 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0x2d
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ mov r2, #0x19
+ mov r3, #1
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0x10
+ bl MOD80_0222E6DC
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02236820: .word 0x00000F0F
+ thumb_func_end MOD80_022367F8
+
+ thumb_func_start MOD80_02236824
+MOD80_02236824: ; 0x02236824
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_020332DC
+ bl MOD04_021DDBBC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #0x11
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02236824
+
+ thumb_func_start MOD80_02236844
+MOD80_02236844: ; 0x02236844
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0223686C ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0x2d
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ mov r2, #0x1a
+ mov r3, #1
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0x12
+ mov r2, #9
+ bl MOD80_0222E6DC
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223686C: .word 0x00000F0F
+ thumb_func_end MOD80_02236844
+
+ thumb_func_start MOD80_02236870
+MOD80_02236870: ; 0x02236870
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x50
+ mov r1, #2
+ mov r2, #1
+ mov r3, #0x14
+ bl MOD04_021DDEE0
+ mov r0, #2
+ bl MOD04_021DDE7C
+ bl MOD04_021DDDCC
+ mov r0, #3
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+ thumb_func_end MOD80_02236870
+
+ thumb_func_start MOD80_02236890
+MOD80_02236890: ; 0x02236890
+ push {r3, r4, lr}
+ sub sp, #0x44
+ add r4, r0, #0
+ bl MOD04_021DDCE8
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ beq _022368F4
+ bl MOD04_021DDC1C
+ cmp r0, #4
+ beq _022368EA
+ cmp r0, #7
+ beq _022368B4
+ cmp r0, #8
+ beq _022368D4
+ b _022368F4
+_022368B4:
+ add r0, sp, #4
+ bl MOD04_021DD808
+ str r0, [r4, #0x40]
+ ldr r0, [sp, #4]
+ str r0, [r4, #0x44]
+ bl MOD04_021DD6F0
+ bl MOD04_021DDBBC
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ mov r0, #0x15
+ str r0, [r4, #0x2c]
+ b _022368F4
+_022368D4:
+ add r0, sp, #0
+ bl MOD04_021DD808
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ mov r0, #0x13
+ str r0, [r4, #0x2c]
+ sub r0, #0x15
+ str r0, [r4, #0x3c]
+ b _022368F4
+_022368EA:
+ add r0, sp, #8
+ bl MOD04_021DD9DC
+ mov r0, #4
+ str r0, [r4, #0x2c]
+_022368F4:
+ mov r0, #3
+ add sp, #0x44
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02236890
+
+ thumb_func_start MOD80_022368FC
+MOD80_022368FC: ; 0x022368FC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD04_021DE05C
+ cmp r0, #0
+ beq _0223690C
+ mov r0, #5
+ str r0, [r4, #0x2c]
+_0223690C:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_022368FC
+
+ thumb_func_start MOD80_02236910
+MOD80_02236910: ; 0x02236910
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl MOD04_021DDF4C
+ cmp r0, #3
+ beq _02236928
+ cmp r0, #4
+ beq _0223692E
+ cmp r0, #5
+ beq _0223692E
+ b _02236998
+_02236928:
+ mov r0, #6
+ str r0, [r4, #0x2c]
+ b _02236998
+_0223692E:
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ add r0, sp, #4
+ add r1, sp, #0
+ bl MOD04_021DD718
+ str r0, [r4, #0x40]
+ ldr r0, [sp, #4]
+ str r0, [r4, #0x44]
+ bl MOD04_021DD6F0
+ bl MOD04_021DDBBC
+ ldr r0, [sp]
+ cmp r0, #7
+ bhi _02236986
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223695C: ; jump table
+ .short _02236986 - _0223695C - 2 ; case 0
+ .short _0223696C - _0223695C - 2 ; case 1
+ .short _0223696C - _0223695C - 2 ; case 2
+ .short _02236986 - _0223695C - 2 ; case 3
+ .short _02236972 - _0223695C - 2 ; case 4
+ .short _02236986 - _0223695C - 2 ; case 5
+ .short _0223697C - _0223695C - 2 ; case 6
+ .short _02236982 - _0223695C - 2 ; case 7
+_0223696C:
+ mov r0, #0x15
+ str r0, [r4, #0x2c]
+ b _02236986
+_02236972:
+ bl MOD04_021EB550
+ mov r0, #0x15
+ str r0, [r4, #0x2c]
+ b _02236986
+_0223697C:
+ mov r0, #0x15
+ str r0, [r4, #0x2c]
+ b _02236986
+_02236982:
+ bl FUN_020335E0
+_02236986:
+ ldr r1, [sp, #4]
+ ldr r0, _022369A0 ; =0xFFFFB1E0
+ cmp r1, r0
+ bge _02236998
+ ldr r0, _022369A4 ; =0xFFFF8AD1
+ cmp r1, r0
+ blt _02236998
+ mov r0, #0x15
+ str r0, [r4, #0x2c]
+_02236998:
+ mov r0, #3
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022369A0: .word 0xFFFFB1E0
+_022369A4: .word 0xFFFF8AD1
+ thumb_func_end MOD80_02236910
+
+ thumb_func_start MOD80_022369A8
+MOD80_022369A8: ; 0x022369A8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #0x14]
+ bl FUN_02028228
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #4]
+ bl FUN_02023830
+ cmp r0, #0
+ bne _022369CC
+ ldr r1, [r5]
+ ldr r0, [r1, #4]
+ ldr r1, [r1, #0x38]
+ bl FUN_02023834
+_022369CC:
+ ldr r0, [r5]
+ ldr r0, [r0, #4]
+ bl FUN_02023830
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_02096D68
+ add r3, r0, #0
+ add r2, r1, #0
+ add r0, r6, #0
+ add r1, r3, #0
+ bl MOD80_0222D5C0
+ mov r0, #7
+ str r0, [r5, #0x2c]
+ mov r0, #3
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD80_022369A8
+
+ thumb_func_start MOD80_022369F0
+MOD80_022369F0: ; 0x022369F0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DEBC
+ mov r0, #8
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_022369F0
+
+ thumb_func_start MOD80_02236A00
+MOD80_02236A00: ; 0x02236A00
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD80_0222DB98
+ cmp r0, #0
+ beq _02236A82
+ bl MOD80_0222DBB8
+ add r1, r0, #0
+ add r1, #0xf
+ cmp r1, #0x11
+ bhi _02236A82
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02236A24: ; jump table
+ .short _02236A68 - _02236A24 - 2 ; case 0
+ .short _02236A70 - _02236A24 - 2 ; case 1
+ .short _02236A78 - _02236A24 - 2 ; case 2
+ .short _02236A68 - _02236A24 - 2 ; case 3
+ .short _02236A82 - _02236A24 - 2 ; case 4
+ .short _02236A82 - _02236A24 - 2 ; case 5
+ .short _02236A82 - _02236A24 - 2 ; case 6
+ .short _02236A82 - _02236A24 - 2 ; case 7
+ .short _02236A82 - _02236A24 - 2 ; case 8
+ .short _02236A82 - _02236A24 - 2 ; case 9
+ .short _02236A82 - _02236A24 - 2 ; case 10
+ .short _02236A82 - _02236A24 - 2 ; case 11
+ .short _02236A82 - _02236A24 - 2 ; case 12
+ .short _02236A70 - _02236A24 - 2 ; case 13
+ .short _02236A60 - _02236A24 - 2 ; case 14
+ .short _02236A48 - _02236A24 - 2 ; case 15
+ .short _02236A58 - _02236A24 - 2 ; case 16
+ .short _02236A60 - _02236A24 - 2 ; case 17
+_02236A48:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD80_0222E7A8
+ mov r0, #9
+ str r0, [r4, #0x2c]
+ b _02236A82
+_02236A58:
+ str r0, [r4, #0x3c]
+ mov r0, #0x13
+ str r0, [r4, #0x2c]
+ b _02236A82
+_02236A60:
+ str r0, [r4, #0x3c]
+ mov r0, #0x13
+ str r0, [r4, #0x2c]
+ b _02236A82
+_02236A68:
+ str r0, [r4, #0x3c]
+ mov r0, #0x13
+ str r0, [r4, #0x2c]
+ b _02236A82
+_02236A70:
+ str r0, [r4, #0x3c]
+ mov r0, #0x13
+ str r0, [r4, #0x2c]
+ b _02236A82
+_02236A78:
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ bl FUN_020335E0
+_02236A82:
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02236A00
+
+ thumb_func_start MOD80_02236A8C
+MOD80_02236A8C: ; 0x02236A8C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x44]
+ neg r0, r0
+ bl MOD04_021D80E0
+ ldr r2, [r4, #0x44]
+ add r1, r0, #0
+ add r0, r4, #0
+ neg r2, r2
+ bl MOD80_02236E04
+ mov r0, #0x16
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD80_02236A8C
+
+ thumb_func_start MOD80_02236AAC
+MOD80_02236AAC: ; 0x02236AAC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02236AD4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ bne _02236AC0
+ mov r0, #2
+ tst r0, r1
+ beq _02236ACE
+_02236AC0:
+ ldr r0, _02236AD8 ; =0x00000EC8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200CCF8
+ mov r0, #0
+ str r0, [r4, #0x2c]
+_02236ACE:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02236AD4: .word 0x021C48B8
+_02236AD8: .word 0x00000EC8
+ thumb_func_end MOD80_02236AAC
+
+ thumb_func_start MOD80_02236ADC
+MOD80_02236ADC: ; 0x02236ADC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_02033ED0
+ add r0, r4, #0
+ bl MOD80_0222E8D8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3e
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ ldr r0, _02236B14 ; =0x0000100C
+ mov r1, #1
+ str r1, [r4, r0]
+ mov r0, #4
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_02236B14: .word 0x0000100C
+ thumb_func_end MOD80_02236ADC
+
+ thumb_func_start MOD80_02236B18
+MOD80_02236B18: ; 0x02236B18
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02236B4C ; =0x00000FCC
+ mov r1, #0x3e
+ ldr r0, [r4, r0]
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02236B48
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _02236B3A
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ b _02236B48
+_02236B3A:
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #9
+ str r0, [r4, #0x2c]
+_02236B48:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_02236B4C: .word 0x00000FCC
+ thumb_func_end MOD80_02236B18
+
+ thumb_func_start MOD80_02236B50
+MOD80_02236B50: ; 0x02236B50
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #0x3c]
+ mov r2, #0
+ add r0, #0xf
+ cmp r0, #0x11
+ bhi _02236B9E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02236B6C: ; jump table
+ .short _02236B9C - _02236B6C - 2 ; case 0
+ .short _02236B98 - _02236B6C - 2 ; case 1
+ .short _02236B9E - _02236B6C - 2 ; case 2
+ .short _02236B9C - _02236B6C - 2 ; case 3
+ .short _02236B9E - _02236B6C - 2 ; case 4
+ .short _02236B9E - _02236B6C - 2 ; case 5
+ .short _02236B9E - _02236B6C - 2 ; case 6
+ .short _02236B9E - _02236B6C - 2 ; case 7
+ .short _02236B9E - _02236B6C - 2 ; case 8
+ .short _02236B9E - _02236B6C - 2 ; case 9
+ .short _02236B9C - _02236B6C - 2 ; case 10
+ .short _02236B9E - _02236B6C - 2 ; case 11
+ .short _02236B9C - _02236B6C - 2 ; case 12
+ .short _02236B98 - _02236B6C - 2 ; case 13
+ .short _02236B94 - _02236B6C - 2 ; case 14
+ .short _02236B9E - _02236B6C - 2 ; case 15
+ .short _02236B90 - _02236B6C - 2 ; case 16
+ .short _02236B94 - _02236B6C - 2 ; case 17
+_02236B90:
+ mov r2, #0x8c
+ b _02236B9E
+_02236B94:
+ mov r2, #0x8d
+ b _02236B9E
+_02236B98:
+ mov r2, #0x92
+ b _02236B9E
+_02236B9C:
+ mov r2, #0x91
+_02236B9E:
+ ldr r0, _02236BC0 ; =0x00000F0F
+ ldr r1, _02236BC4 ; =0x00000B34
+ str r0, [sp]
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ mov r3, #1
+ bl MOD80_02236C70
+ add r0, r4, #0
+ mov r1, #0xa
+ mov r2, #0x14
+ bl MOD80_0222E6DC
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02236BC0: .word 0x00000F0F
+_02236BC4: .word 0x00000B34
+ thumb_func_end MOD80_02236B50
+
+ thumb_func_start MOD80_02236BC8
+MOD80_02236BC8: ; 0x02236BC8
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_020332DC
+ bl MOD04_021DDBBC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD80_0222E7A8
+ mov r0, #9
+ str r0, [r4, #0x2c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02236BC8
+
+ thumb_func_start MOD80_02236BE8
+MOD80_02236BE8: ; 0x02236BE8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02236C02
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_02236C02:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02236BE8
+
+ thumb_func_start MOD80_02236C08
+MOD80_02236C08: ; 0x02236C08
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02236C32
+ ldr r0, _02236C38 ; =0x00000FDC
+ ldr r0, [r4, r0]
+ cmp r0, #0x1e
+ ble _02236C2A
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_02236C2A:
+ ldr r0, _02236C38 ; =0x00000FDC
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_02236C32:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02236C38: .word 0x00000FDC
+ thumb_func_end MOD80_02236C08
+
+ thumb_func_start MOD80_02236C3C
+MOD80_02236C3C: ; 0x02236C3C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02236C66
+ mov r2, #0x8d
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ lsl r2, r2, #2
+ bl MOD80_0222E6A8
+ ldr r1, _02236C6C ; =0x00000FCC
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x30]
+ str r0, [r4, #0x2c]
+_02236C66:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_02236C6C: .word 0x00000FCC
+ thumb_func_end MOD80_02236C3C
+
+ thumb_func_start MOD80_02236C70
+MOD80_02236C70: ; 0x02236C70
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ add r4, r3, #0
+ bl FUN_0200A914
+ mov r1, #0xb3
+ add r6, r0, #0
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, #0x1c
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02236CD8 ; =0x00000E98
+ mov r1, #0xf
+ add r0, r5, r0
+ bl FUN_02019620
+ ldr r0, _02236CD8 ; =0x00000E98
+ mov r1, #0
+ add r0, r5, r0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ ldr r0, _02236CD8 ; =0x00000E98
+ ldr r2, _02236CDC ; =0x00000B4C
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ ldr r0, _02236CE0 ; =0x00000FDC
+ mov r1, #0
+ str r1, [r5, r0]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02236CD8: .word 0x00000E98
+_02236CDC: .word 0x00000B4C
+_02236CE0: .word 0x00000FDC
+ thumb_func_end MOD80_02236C70
+
+ thumb_func_start MOD80_02236CE4
+MOD80_02236CE4: ; 0x02236CE4
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r3, #1
+ beq _02236CF2
+ cmp r3, #2
+ beq _02236D08
+ b _02236D16
+_02236CF2:
+ ldr r0, [sp, #0xc]
+ mov r2, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r1, r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r2, r0, #1
+ b _02236D16
+_02236D08:
+ ldr r0, [sp, #0xc]
+ mov r2, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r2, r1, r0
+_02236D16:
+ add r0, r2, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD80_02236CE4
+
+ thumb_func_start MOD80_02236D1C
+MOD80_02236D1C: ; 0x02236D1C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r3, #0
+ ldr r3, [sp, #0x24]
+ add r5, r0, #0
+ str r3, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r6, r1, #0
+ bl MOD80_02236CE4
+ add r3, r0, #0
+ str r4, [sp]
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r6, #0
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD80_02236D1C
+
+ thumb_func_start MOD80_02236D50
+MOD80_02236D50: ; 0x02236D50
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r3, #0
+ ldr r3, [sp, #0x24]
+ add r5, r0, #0
+ str r3, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r6, r1, #0
+ bl MOD80_02236CE4
+ add r3, r0, #0
+ str r4, [sp]
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ str r1, [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}
+ .align 2, 0
+ thumb_func_end MOD80_02236D50
+
+ thumb_func_start MOD80_02236D84
+MOD80_02236D84: ; 0x02236D84
+ ldr r3, _02236D88 ; =FUN_02033E74
+ bx r3
+ .align 2, 0
+_02236D88: .word FUN_02033E74
+ thumb_func_end MOD80_02236D84
+
+ thumb_func_start MOD80_02236D8C
+MOD80_02236D8C: ; 0x02236D8C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #1
+ add r6, r1, #0
+ lsl r0, r0, #8
+ mov r1, #0x3e
+ bl FUN_020219F4
+ add r4, r0, #0
+ mov r0, #0x2d
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r1, #0xb3
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r1, #0x4c
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ ldr r0, _02236DFC ; =0x00000EC8
+ mov r1, #0xf
+ add r0, r5, r0
+ bl FUN_02019620
+ ldr r0, _02236DFC ; =0x00000EC8
+ mov r1, #1
+ add r0, r5, r0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ ldr r0, _02236DFC ; =0x00000EC8
+ ldr r2, _02236E00 ; =0x00000B7C
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02236DFC: .word 0x00000EC8
+_02236E00: .word 0x00000B7C
+ thumb_func_end MOD80_02236D8C
+
+ thumb_func_start MOD80_02236E04
+MOD80_02236E04: ; 0x02236E04
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02236E16
+ mov r4, #0xb
+_02236E16:
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xb3
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #5
+ bl FUN_0200AD38
+ ldr r0, _02236E44 ; =0x00000E98
+ mov r1, #1
+ add r0, r5, r0
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD80_02236D8C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02236E44: .word 0x00000E98
+ thumb_func_end MOD80_02236E04
+
+ .section .rodata
+ ; 0x02236E48
+ .incbin "baserom.nds", 0x2E8A88, 0x828
+
+ .section .data
+ ; 0x02237680
+ .incbin "baserom.nds", 0x2E92C0, 0x660
+
+ .section .bss
+ ; 0x02237CE0
+ .space 0x160
diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s
new file mode 100644
index 00000000..c0b33a96
--- /dev/null
+++ b/arm9/modules/81/asm/module_81.s
@@ -0,0 +1,10353 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD81_02237E40
+MOD81_02237E40: ; 0x02237E40
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _02237E50
+ b _02237FC8
+_02237E50:
+ mov r0, #3
+ mov r1, #0x39
+ lsl r2, r0, #0xf
+ bl FUN_0201681C
+ mov r0, #3
+ mov r1, #0x3a
+ lsl r2, r0, #0xf
+ bl FUN_0201681C
+ bl MOD81_02238858
+ ldr r1, _02237FD0 ; =0x00000492
+ mov r0, #3
+ mov r2, #1
+ bl FUN_0200433C
+ mov r1, #0x55
+ add r0, r5, #0
+ lsl r1, r1, #2
+ mov r2, #0x39
+ bl FUN_02006268
+ add r4, r0, #0
+ bne _02237E84
+ b _02237FC2
+_02237E84:
+ add r0, r5, #0
+ bl FUN_0200628C
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #0x39
+ bl FUN_02016B94
+ str r0, [r4, #8]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ mov r1, #0x39
+ bl FUN_020219F4
+ str r0, [r4, #0x14]
+ ldr r2, _02237FD4 ; =0x00000137
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x39
+ bl FUN_0200A86C
+ str r0, [r4, #0x10]
+ mov r0, #0x39
+ bl FUN_0200AA80
+ str r0, [r4, #0xc]
+ ldr r2, [r4]
+ ldr r0, [r2, #0x10]
+ cmp r0, #1
+ beq _02237ECC
+ cmp r0, #2
+ beq _02237EFE
+ cmp r0, #4
+ beq _02237F0A
+ b _02237F22
+_02237ECC:
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200ACF8
+ ldr r2, [r4]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #4]
+ mov r1, #1
+ bl FUN_0200ACF8
+ ldr r2, [r4]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #8]
+ mov r1, #2
+ bl FUN_0200ABC0
+ ldr r0, [r4]
+ ldr r0, [r0, #4]
+ bl MOD81_02237FE8
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ b _02237F22
+_02237EFE:
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200ACF8
+ b _02237F22
+_02237F0A:
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #4]
+ mov r1, #1
+ bl FUN_0200ACF8
+ ldr r0, [r4]
+ ldr r0, [r0, #4]
+ bl MOD81_02237FE8
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+_02237F22:
+ bl FUN_020B0FC0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x7f
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r1, #0x39
+ str r1, [sp, #0x10]
+ mov r1, #0x80
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r4, #0
+ mov r0, #0x40
+ add r1, #0x1c
+ mov r2, #0x39
+ bl FUN_02008C9C
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ mov r2, #0x3a
+ add r0, #0x1c
+ mov r1, #0
+ lsl r2, r2, #0xe
+ bl FUN_02008D24
+ ldr r0, [r4]
+ mov r1, #5
+ ldr r0, [r0]
+ mov r2, #0
+ bl FUN_020672BC
+ mov r1, #0x53
+ lsl r1, r1, #2
+ strh r0, [r4, r1]
+ ldr r0, [r4]
+ mov r1, #5
+ ldr r0, [r0, #4]
+ mov r2, #0
+ bl FUN_020672BC
+ ldr r1, _02237FD8 ; =0x0000014E
+ strh r0, [r4, r1]
+ mov r0, #0
+ add r1, r1, #2
+ str r0, [r4, r1]
+ 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, _02237FDC ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _02237FE0 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, _02237FE4 ; =MOD81_022380F4
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA7C
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ add r1, #0xc
+ str r0, [r4, r1]
+_02237FC2:
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, pc}
+_02237FC8:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02237FD0: .word 0x00000492
+_02237FD4: .word 0x00000137
+_02237FD8: .word 0x0000014E
+_02237FDC: .word 0xFFFFE0FF
+_02237FE0: .word 0x04001000
+_02237FE4: .word MOD81_022380F4
+ thumb_func_end MOD81_02237E40
+
+ thumb_func_start MOD81_02237FE8
+MOD81_02237FE8: ; 0x02237FE8
+ push {r3, lr}
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ mov r1, #0x1c
+ bl FUN_02068678
+ cmp r0, #0
+ bne _02238000
+ mov r0, #1
+ pop {r3, pc}
+_02238000:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD81_02237FE8
+
+ thumb_func_start MOD81_02238004
+MOD81_02238004: ; 0x02238004
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl OS_DisableInterrupts
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200CAB4
+ bl FUN_02033ED0
+ ldr r0, [r4, #0xc]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x14]
+ bl FUN_02021A20
+ ldr r0, [r4, #8]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x18]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x39
+ bl FUN_020168D0
+ mov r0, #0x3a
+ bl FUN_020168D0
+ add r0, r6, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02238004
+
+ thumb_func_start MOD81_02238064
+MOD81_02238064: ; 0x02238064
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r3, [r4, #4]
+ cmp r3, #7
+ bhs _022380E0
+ ldr r1, [r4]
+ ldr r6, _022380E4 ; =0x0223CF90
+ lsl r2, r3, #4
+ ldr r1, [r1, #0x10]
+ ldr r6, [r6, r2]
+ tst r1, r6
+ beq _022380D0
+ mov r1, #0x15
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ bne _02238098
+ ldr r1, _022380E8 ; =0x0223CF84
+ ldr r1, [r1, r2]
+ blx r1
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+_02238098:
+ ldr r2, [r4, #4]
+ mov r0, #0x15
+ lsl r3, r2, #4
+ ldr r2, _022380EC ; =0x0223CF88
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r2, [r2, r3]
+ add r1, r5, #0
+ blx r2
+ cmp r0, #0
+ beq _022380D8
+ ldr r1, [r4, #4]
+ mov r0, #0x15
+ lsl r2, r1, #4
+ ldr r1, _022380F0 ; =0x0223CF8C
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r1, [r1, r2]
+ blx r1
+ mov r0, #0x15
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ str r1, [r5]
+ b _022380D8
+_022380D0:
+ add r0, r3, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [r5]
+_022380D8:
+ bl MOD81_02238864
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_022380E0:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022380E4: .word 0x0223CF90
+_022380E8: .word 0x0223CF84
+_022380EC: .word 0x0223CF88
+_022380F0: .word 0x0223CF8C
+ thumb_func_end MOD81_02238064
+
+ thumb_func_start MOD81_022380F4
+MOD81_022380F4: ; 0x022380F4
+ push {r3, lr}
+ ldr r0, [r1, #0x18]
+ bl FUN_0201FDEC
+ bl FUN_02009F80
+ ldr r3, _02238110 ; =0x027E0000
+ ldr r1, _02238114 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_02238110: .word 0x027E0000
+_02238114: .word 0x00003FF8
+ thumb_func_end MOD81_022380F4
+
+ thumb_func_start MOD81_02238118
+MOD81_02238118: ; 0x02238118
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x39
+ add r6, r1, #0
+ add r1, r0, #0
+ add r1, #0xc7
+ bl FUN_02016998
+ add r4, r0, #0
+ ldr r0, _022381DC ; =0x00000000
+ str r0, [r5]
+ beq _022381D4
+ mov r0, #0x5d
+ mov r1, #6
+ add r2, sp, #4
+ mov r3, #0x39
+ bl FUN_02006C08
+ add r7, r0, #0
+ beq _02238152
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #0x60
+ bl MIi_CpuClear16
+ add r0, r7, #0
+ bl FUN_02016A18
+_02238152:
+ add r1, r4, #0
+ mov r0, #0
+ add r1, #0xec
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xe8
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xf0
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xf4
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xe4
+ str r5, [r1]
+ add r1, r4, #0
+ add r1, #0xf8
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xfc
+ str r6, [r1]
+ add r3, r4, #0
+ add r2, r0, #0
+_02238182:
+ add r1, r3, #0
+ add r1, #0xc4
+ add r0, r0, #1
+ add r3, r3, #4
+ str r2, [r1]
+ cmp r0, #8
+ blt _02238182
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _022381E0 ; =0x04000050
+ mov r1, #4
+ mov r2, #0xc
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _022381E4 ; =0x04001050
+ mov r1, #4
+ mov r2, #0xc
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ ldr r0, _022381E8 ; =MOD81_02238248
+ add r1, r4, #0
+ mov r2, #0x14
+ bl FUN_0200CA44
+ add r1, r4, #0
+ add r1, #0xc0
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022381D4
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ mov r1, #1
+ str r1, [r0]
+_022381D4:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022381DC: .word 0x00000000
+_022381E0: .word 0x04000050
+_022381E4: .word 0x04001050
+_022381E8: .word MOD81_02238248
+ thumb_func_end MOD81_02238118
+
+ thumb_func_start MOD81_022381EC
+MOD81_022381EC: ; 0x022381EC
+ add r1, r0, #0
+ add r1, #0xe4
+ ldr r1, [r1]
+ ldr r1, [r1]
+ cmp r1, #1
+ bne _022381FE
+ mov r1, #1
+ add r0, #0xe8
+ str r1, [r0]
+_022381FE:
+ bx lr
+ thumb_func_end MOD81_022381EC
+
+ thumb_func_start MOD81_02238200
+MOD81_02238200: ; 0x02238200
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02238246
+ mov r4, #0
+ add r5, r6, #0
+_02238212:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02238224
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD81_0223840C
+_02238224:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _02238212
+ add r0, r6, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ mov r1, #0
+ str r1, [r0]
+ add r0, r6, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FUN_0200CAB4
+ add r0, r6, #0
+ bl FUN_02016A18
+_02238246:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD81_02238200
+
+ thumb_func_start MOD81_02238248
+MOD81_02238248: ; 0x02238248
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022382C6
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _02238284
+ ldr r0, _0223832C ; =0x000006AE
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0x1e
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD81_02238358
+_02238284:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02238328
+ bl GX_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
+ add r0, r4, #0
+ mov r1, #0x60
+ bl DC_FlushRange
+ mov r1, #6
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ mov r2, #0x60
+ bl GX_LoadBGExtPltt
+ mov r1, #6
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ mov r2, #0x60
+ bl GXS_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
+ mov r0, #0
+ add r4, #0xec
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_022382C6:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02238308
+ bl GX_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
+ add r0, r4, #0
+ mov r1, #0x60
+ bl DC_FlushRange
+ mov r1, #6
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ mov r2, #0x60
+ bl GX_LoadBGExtPltt
+ mov r1, #6
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ mov r2, #0x60
+ bl GXS_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xec
+ str r1, [r0]
+_02238308:
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02238328
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ mov r1, #0
+ str r1, [r0]
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02238328:
+ pop {r3, r4, r5, pc}
+ nop
+_0223832C: .word 0x000006AE
+ thumb_func_end MOD81_02238248
+
+ thumb_func_start MOD81_02238330
+MOD81_02238330: ; 0x02238330
+ push {r3, r4}
+ cmp r1, #0
+ blt _02238340
+ cmp r1, #0x60
+ bge _02238340
+ mov r4, #0
+ lsl r1, r1, #1
+ strh r4, [r0, r1]
+_02238340:
+ cmp r2, #0
+ blt _0223834C
+ cmp r2, #0x60
+ bge _0223834C
+ lsl r1, r2, #1
+ strh r3, [r0, r1]
+_0223834C:
+ mov r1, #1
+ add r0, #0xec
+ str r1, [r0]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_02238330
+
+ thumb_func_start MOD81_02238358
+MOD81_02238358: ; 0x02238358
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02238404
+ mov r0, #0x39
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02238404
+ add r0, r5, #0
+ str r5, [r4]
+ add r0, #0xfc
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _0223838A
+ mov r0, #0
+ mvn r0, r0
+ b _0223838C
+_0223838A:
+ mov r0, #0xf
+_0223838C:
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #2
+ str r0, [r4, #8]
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r1, r4, #0
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r2, #0xa
+ str r0, [r4, #0x14]
+ ldr r0, _02238408 ; =MOD81_0223843C
+ bl FUN_0200CA44
+ add r1, r5, #0
+ add r1, #0xf8
+ ldr r1, [r1]
+ lsl r1, r1, #2
+ add r1, r5, r1
+ add r1, #0xc4
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r0, #0xc4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022383FE
+ add r0, r5, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xf4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ cmp r0, #8
+ blt _02238404
+ mov r0, #0
+ add r5, #0xf8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_022383FE:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02238404:
+ pop {r3, r4, r5, pc}
+ nop
+_02238408: .word MOD81_0223843C
+ thumb_func_end MOD81_02238358
+
+ thumb_func_start MOD81_0223840C
+MOD81_0223840C: ; 0x0223840C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r5, #0
+ lsl r4, r1, #2
+ add r6, #0xc4
+ ldr r0, [r6, r4]
+ cmp r0, #0
+ beq _0223843A
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ ldr r0, [r6, r4]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r6, r4]
+ add r0, r5, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ add r5, #0xf4
+ sub r0, r0, #1
+ str r0, [r5]
+_0223843A:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD81_0223840C
+
+ thumb_func_start MOD81_0223843C
+MOD81_0223843C: ; 0x0223843C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0xc]
+ add r1, r0, #1
+ str r1, [r4, #0xc]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ blt _022384A4
+ mov r3, #0
+ str r3, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ cmp r0, #1
+ bne _0223847C
+ ldr r1, [r4, #4]
+ ldr r0, [r4]
+ add r2, r1, #1
+ cmp r2, #0xf
+ blt _0223846E
+ bl MOD81_02238330
+ ldr r0, [r4]
+ ldr r1, [r4, #0x10]
+ bl MOD81_0223840C
+ pop {r4, pc}
+_0223846E:
+ ldr r3, _022384A8 ; =0x00007FFF
+ bl MOD81_02238330
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, pc}
+_0223847C:
+ ldr r2, [r4, #4]
+ ldr r0, [r4]
+ cmp r2, #0
+ bge _02238496
+ add r1, r2, #0
+ add r2, r2, #1
+ bl MOD81_02238330
+ ldr r0, [r4]
+ ldr r1, [r4, #0x10]
+ bl MOD81_0223840C
+ pop {r4, pc}
+_02238496:
+ ldr r3, _022384A8 ; =0x00007FFF
+ add r1, r2, #1
+ bl MOD81_02238330
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+_022384A4:
+ pop {r4, pc}
+ nop
+_022384A8: .word 0x00007FFF
+ thumb_func_end MOD81_0223843C
+
+ thumb_func_start MOD81_022384AC
+MOD81_022384AC: ; 0x022384AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ add r6, r1, #0
+ mov r0, #0x39
+ mov r1, #0x24
+ add r7, r2, #0
+ str r3, [sp, #4]
+ ldr r5, [sp, #0x28]
+ bl FUN_02016998
+ add r4, r0, #0
+ ldr r0, _0223850C ; =0x00000001
+ str r0, [r5]
+ beq _02238504
+ ldr r1, [sp]
+ str r1, [r4]
+ str r6, [r4, #8]
+ ldr r1, [sp, #4]
+ str r7, [r4, #0xc]
+ str r1, [r4, #0x10]
+ ldr r1, [sp, #0x20]
+ str r1, [r4, #0x14]
+ cmp r6, r7
+ bge _022384E0
+ mov r0, #0
+_022384E0:
+ str r0, [r4, #0x18]
+ ldr r0, [sp, #0x24]
+ mov r2, #0
+ str r0, [r4, #0x1c]
+ str r5, [r4, #4]
+ ldr r0, _02238510 ; =MOD81_02238514
+ add r1, r4, #0
+ str r2, [r5]
+ bl FUN_0200CA60
+ str r0, [r4, #0x20]
+ cmp r0, #0
+ bne _02238504
+ mov r0, #1
+ str r0, [r5]
+ add r0, r4, #0
+ bl FUN_02016A18
+_02238504:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223850C: .word 0x00000001
+_02238510: .word MOD81_02238514
+ thumb_func_end MOD81_022384AC
+
+ thumb_func_start MOD81_02238514
+MOD81_02238514: ; 0x02238514
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ mul r1, r0
+ asr r2, r1, #0xc
+ asr r1, r2, #4
+ lsr r1, r1, #0x1b
+ add r1, r2, r1
+ asr r2, r1, #5
+ ldr r1, [r4, #0x18]
+ cmp r1, #0
+ beq _02238536
+ cmp r1, #1
+ beq _0223854C
+ b _02238560
+_02238536:
+ ldr r1, [r4, #0xc]
+ add r0, r0, r2
+ cmp r0, r1
+ bge _02238542
+ str r0, [r4, #8]
+ b _02238560
+_02238542:
+ str r1, [r4, #8]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ str r1, [r0]
+ b _02238560
+_0223854C:
+ ldr r1, [r4, #0xc]
+ sub r0, r0, r2
+ cmp r0, r1
+ ble _02238558
+ str r0, [r4, #8]
+ b _02238560
+_02238558:
+ str r1, [r4, #8]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ str r1, [r0]
+_02238560:
+ add r0, r4, #0
+ bl MOD81_02238588
+ ldr r0, [r4, #4]
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223857C
+ add r0, r4, #0
+ bl MOD81_02238898
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+_0223857C:
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02238514
+
+ thumb_func_start MOD81_02238588
+MOD81_02238588: ; 0x02238588
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ add r2, sp, #4
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #8]
+ mov r3, #0x80
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r0, #2
+ ldr r0, _022385CC ; =0x0223CF6C
+ ldr r0, [r0, r1]
+ mov r1, #2
+ str r0, [sp]
+ ldr r0, [r4]
+ bl FUN_02017BD0
+ ldr r0, [r4, #0x1c]
+ add r2, sp, #4
+ lsl r1, r0, #2
+ ldr r0, _022385CC ; =0x0223CF6C
+ mov r3, #0x80
+ ldr r0, [r0, r1]
+ mov r1, #6
+ str r0, [sp]
+ ldr r0, [r4]
+ bl FUN_02017BD0
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+_022385CC: .word 0x0223CF6C
+ thumb_func_end MOD81_02238588
+
+ thumb_func_start MOD81_022385D0
+MOD81_022385D0: ; 0x022385D0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r5, r0, #0
+ ldr r0, [sp, #0x58]
+ add r4, r1, #0
+ str r2, [sp, #0x14]
+ str r3, [sp, #0x18]
+ cmp r0, #0
+ beq _022385E8
+ mov r6, #0x19
+ lsl r6, r6, #8
+ b _022385EC
+_022385E8:
+ mov r6, #0x32
+ lsl r6, r6, #6
+_022385EC:
+ mov r0, #0x39
+ add r1, r6, #0
+ bl FUN_020169D8
+ add r7, r0, #0
+ beq _02238690
+ ldr r3, _022386B8 ; =0x0223CF74
+ add r2, sp, #0x24
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ cmp r4, #0
+ ldr r0, [r5]
+ bne _0223860E
+ ldr r4, [r0]
+ b _02238610
+_0223860E:
+ ldr r4, [r0, #4]
+_02238610:
+ add r0, r4, #0
+ bl FUN_02066A6C
+ str r0, [sp, #0x20]
+ add r0, sp, #0x34
+ add r1, r4, #0
+ mov r2, #2
+ bl FUN_02068B70
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl FUN_020672BC
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ ldr r1, [sp, #0x58]
+ lsr r0, r0, #0x10
+ cmp r1, #0
+ beq _02238648
+ ldr r1, [sp, #0x2c]
+ lsl r1, r1, #1
+ str r1, [sp, #0x2c]
+_02238648:
+ ldr r1, [sp, #0x1c]
+ str r7, [sp]
+ str r1, [sp, #4]
+ ldr r1, [sp, #0x58]
+ mov r2, #0x39
+ str r1, [sp, #8]
+ mov r1, #2
+ str r1, [sp, #0xc]
+ str r0, [sp, #0x10]
+ add r1, sp, #0x24
+ ldrh r0, [r1, #0x10]
+ ldrh r1, [r1, #0x12]
+ add r3, sp, #0x24
+ bl FUN_02012530
+ add r0, r7, #0
+ add r1, r6, #0
+ bl DC_FlushRange
+ ldr r1, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp]
+ lsl r1, r1, #0x18
+ ldr r0, [r5, #8]
+ lsr r1, r1, #0x18
+ add r2, r7, #0
+ add r3, r6, #0
+ bl FUN_02017E14
+ ldr r1, [sp, #0x20]
+ add r0, r4, #0
+ bl FUN_02066A94
+ add r0, r7, #0
+ bl FUN_02016A18
+_02238690:
+ ldr r0, [sp, #0x14]
+ cmp r0, #4
+ blo _0223869A
+ mov r2, #4
+ b _0223869C
+_0223869A:
+ mov r2, #0
+_0223869C:
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x39
+ ldr r3, [sp, #0x18]
+ str r0, [sp, #4]
+ add r1, sp, #0x24
+ ldrh r0, [r1, #0x10]
+ ldrh r1, [r1, #0x14]
+ lsl r3, r3, #5
+ bl FUN_02006930
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022386B8: .word 0x0223CF74
+ thumb_func_end MOD81_022385D0
+
+ thumb_func_start MOD81_022386BC
+MOD81_022386BC: ; 0x022386BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ cmp r1, #0
+ bne _022386CE
+ mov r1, #0xc6
+ b _022386DE
+_022386CE:
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _022386DC
+ mov r1, #0xc7
+ b _022386DE
+_022386DC:
+ mov r1, #0xc6
+_022386DE:
+ mov r0, #0x39
+ str r0, [sp]
+ mov r0, #7
+ mov r2, #0
+ add r3, sp, #0x1c
+ bl FUN_02006BDC
+ add r7, r0, #0
+ beq _02238746
+ mov r0, #0xa
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ ldr r2, [sp, #0x38]
+ add r0, #0xc
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #0x20
+ ldr r3, [sp, #0x3c]
+ str r0, [sp, #0x14]
+ str r0, [sp, #0x18]
+ lsl r1, r4, #0x18
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #8]
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02018170
+ mov r0, #0xa
+ str r0, [sp]
+ str r0, [sp, #4]
+ lsl r0, r6, #0x18
+ ldr r2, [sp, #0x38]
+ ldr r3, [sp, #0x3c]
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ lsl r1, r4, #0x18
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #8]
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020186B4
+ add r0, r7, #0
+ bl FUN_02016A18
+_02238746:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD81_022386BC
+
+ thumb_func_start MOD81_0223874C
+MOD81_0223874C: ; 0x0223874C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r3, #0
+ mov r0, #0x3a
+ add r3, r5, #0
+ str r0, [sp]
+ add r1, r2, #0
+ add r0, r4, #0
+ mov r2, #1
+ add r3, #8
+ bl FUN_02006C30
+ str r0, [r5]
+ mov r0, #0x3a
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #1
+ add r3, #0xc
+ bl FUN_02006C5C
+ str r0, [r5, #4]
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223874C
+
+ thumb_func_start MOD81_02238784
+MOD81_02238784: ; 0x02238784
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02238796
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4]
+_02238796:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022387A4
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4, #4]
+_022387A4:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02238784
+
+ thumb_func_start MOD81_022387A8
+MOD81_022387A8: ; 0x022387A8
+ str r2, [r0]
+ str r3, [r0, #8]
+ ldr r2, [r1, #8]
+ str r2, [r0, #0xc]
+ ldr r1, [r1, #0xc]
+ ldr r2, [sp]
+ str r1, [r0, #0x10]
+ add r1, r0, #0
+ add r1, #0x20
+ strb r2, [r1]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ bx lr
+ thumb_func_end MOD81_022387A8
+
+ thumb_func_start MOD81_022387C8
+MOD81_022387C8: ; 0x022387C8
+ push {r4, lr}
+ sub sp, #0x20
+ ldr r0, [r0, #0x18]
+ str r0, [sp]
+ lsl r0, r2, #0xc
+ str r0, [sp, #8]
+ lsl r0, r3, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x18]
+ mov r0, #0x39
+ str r0, [sp, #0x1c]
+ add r0, sp, #0
+ bl FUN_0201FF84
+ add r4, r0, #0
+ beq _02238804
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+_02238804:
+ add r0, r4, #0
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_022387C8
+
+ thumb_func_start MOD81_0223880C
+MOD81_0223880C: ; 0x0223880C
+ ldr r0, [r0, #8]
+ bx lr
+ thumb_func_end MOD81_0223880C
+
+ thumb_func_start MOD81_02238810
+MOD81_02238810: ; 0x02238810
+ ldr r0, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD81_02238810
+
+ thumb_func_start MOD81_02238814
+MOD81_02238814: ; 0x02238814
+ ldr r0, [r0, #0x10]
+ bx lr
+ thumb_func_end MOD81_02238814
+
+ thumb_func_start MOD81_02238818
+MOD81_02238818: ; 0x02238818
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_02238818
+
+ thumb_func_start MOD81_02238820
+MOD81_02238820: ; 0x02238820
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_02238820
+
+ thumb_func_start MOD81_02238828
+MOD81_02238828: ; 0x02238828
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_02238828
+
+ thumb_func_start MOD81_02238830
+MOD81_02238830: ; 0x02238830
+ mov r1, #0x53
+ lsl r1, r1, #2
+ ldrh r0, [r0, r1]
+ bx lr
+ thumb_func_end MOD81_02238830
+
+ thumb_func_start MOD81_02238838
+MOD81_02238838: ; 0x02238838
+ ldr r1, _02238840 ; =0x0000014E
+ ldrh r0, [r0, r1]
+ bx lr
+ nop
+_02238840: .word 0x0000014E
+ thumb_func_end MOD81_02238838
+
+ thumb_func_start MOD81_02238844
+MOD81_02238844: ; 0x02238844
+ ldr r0, [r0]
+ ldr r3, _0223884C ; =FUN_02025084
+ ldr r0, [r0, #0x14]
+ bx r3
+ .align 2, 0
+_0223884C: .word FUN_02025084
+ thumb_func_end MOD81_02238844
+
+ thumb_func_start MOD81_02238850
+MOD81_02238850: ; 0x02238850
+ ldr r0, [r0]
+ ldr r0, [r0, #0x10]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_02238850
+
+ thumb_func_start MOD81_02238858
+MOD81_02238858: ; 0x02238858
+ ldr r0, _02238860 ; =0x0223D3C0
+ mov r1, #0
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_02238860: .word 0x0223D3C0
+ thumb_func_end MOD81_02238858
+
+ thumb_func_start MOD81_02238864
+MOD81_02238864: ; 0x02238864
+ push {r4, r5, r6, lr}
+ ldr r6, _02238890 ; =0x0223D3C0
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _0223888C
+ mov r4, #0
+ cmp r0, #0
+ ble _02238886
+ ldr r5, _02238894 ; =0x0223D3C4
+_02238876:
+ ldr r0, [r5]
+ bl FUN_02016A18
+ ldr r0, [r6]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02238876
+_02238886:
+ ldr r0, _02238890 ; =0x0223D3C0
+ mov r1, #0
+ str r1, [r0]
+_0223888C:
+ pop {r4, r5, r6, pc}
+ nop
+_02238890: .word 0x0223D3C0
+_02238894: .word 0x0223D3C4
+ thumb_func_end MOD81_02238864
+
+ thumb_func_start MOD81_02238898
+MOD81_02238898: ; 0x02238898
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022388B8 ; =0x0223D3C0
+ ldr r0, [r0]
+ cmp r0, #0x20
+ blt _022388A8
+ bl ErrorHandling
+_022388A8:
+ ldr r0, _022388B8 ; =0x0223D3C0
+ ldr r2, [r0]
+ add r1, r2, #1
+ str r1, [r0]
+ ldr r0, _022388BC ; =0x0223D3C4
+ lsl r1, r2, #2
+ str r4, [r0, r1]
+ pop {r4, pc}
+ .align 2, 0
+_022388B8: .word 0x0223D3C0
+_022388BC: .word 0x0223D3C4
+ thumb_func_end MOD81_02238898
+
+ thumb_func_start MOD81_022388C0
+MOD81_022388C0: ; 0x022388C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r4, r1, #0
+ mov r0, #0x3a
+ mov r1, #0x20
+ add r5, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r6, r0, #0
+ beq _02238906
+ ldr r3, [sp]
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD81_02238CA0
+ mov r1, #0x8c
+ mov r0, #0x3a
+ mul r1, r7
+ bl FUN_02016998
+ str r0, [r6, #0x18]
+ mov r4, #0
+ str r7, [r6, #0x1c]
+ cmp r7, #0
+ bls _02238906
+ add r5, r4, #0
+_022388F6:
+ ldr r0, [r6, #0x18]
+ add r0, r0, r5
+ bl MOD81_02238A38
+ add r4, r4, #1
+ add r5, #0x8c
+ cmp r4, r7
+ blo _022388F6
+_02238906:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD81_022388C0
+
+ thumb_func_start MOD81_0223890C
+MOD81_0223890C: ; 0x0223890C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ mov r6, #0
+ cmp r0, #0
+ bls _0223892C
+ add r4, r6, #0
+_0223891A:
+ ldr r0, [r5, #0x18]
+ add r0, r0, r4
+ bl MOD81_02238A6C
+ ldr r0, [r5, #0x1c]
+ add r6, r6, #1
+ add r4, #0x8c
+ cmp r6, r0
+ blo _0223891A
+_0223892C:
+ ldr r0, [r5, #0x18]
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl MOD81_02238D0C
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD81_0223890C
+
+ thumb_func_start MOD81_02238940
+MOD81_02238940: ; 0x02238940
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, #0
+ add r5, r0, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ bl FUN_0201EBA4
+ ldr r0, [r5, #0x1c]
+ mov r6, #0
+ cmp r0, #0
+ bls _02238976
+ add r4, r6, #0
+_0223895E:
+ ldr r0, [r5, #0x18]
+ add r0, r0, r4
+ ldr r1, [r0, #0x64]
+ cmp r1, #0
+ beq _0223896C
+ bl MOD81_02238988
+_0223896C:
+ ldr r0, [r5, #0x1c]
+ add r6, r6, #1
+ add r4, #0x8c
+ cmp r6, r0
+ blo _0223895E
+_02238976:
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #0
+ str r2, [sp]
+ bl FUN_020BB1C0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02238940
+
+ thumb_func_start MOD81_02238988
+MOD81_02238988: ; 0x02238988
+ push {r4, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ add r0, sp, #0x2c
+ bl MTX_Identity33_
+ add r0, r4, #0
+ add r0, #0x80
+ ldrh r0, [r0]
+ ldr r3, _02238A34 ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #8
+ bl MTX_RotX33_
+ add r1, sp, #0x2c
+ add r0, sp, #8
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r0, r4, #0
+ add r0, #0x82
+ ldrh r0, [r0]
+ ldr r3, _02238A34 ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #8
+ bl MTX_RotY33_
+ add r1, sp, #0x2c
+ add r0, sp, #8
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r0, r4, #0
+ add r0, #0x84
+ ldrh r0, [r0]
+ ldr r3, _02238A34 ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #8
+ bl MTX_RotZ33_
+ add r1, sp, #0x2c
+ add r0, sp, #8
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0x1f
+ beq _02238A20
+ str r0, [sp]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ str r0, [sp, #4]
+ bl FUN_020B8390
+_02238A20:
+ add r1, r4, #0
+ add r0, r4, #4
+ add r4, #0x74
+ add r1, #0x68
+ add r2, sp, #0x2c
+ add r3, r4, #0
+ bl FUN_0201B26C
+ add sp, #0x50
+ pop {r4, pc}
+ .align 2, 0
+_02238A34: .word 0x020FFA38
+ thumb_func_end MOD81_02238988
+
+ thumb_func_start MOD81_02238A38
+MOD81_02238A38: ; 0x02238A38
+ mov r1, #0
+ str r1, [r0, #0x64]
+ add r2, r0, #0
+ str r1, [r0]
+ add r2, #0x84
+ strh r1, [r2]
+ mov r2, #0x84
+ ldrsh r3, [r0, r2]
+ add r2, r0, #0
+ add r2, #0x82
+ strh r3, [r2]
+ mov r2, #0x82
+ ldrsh r3, [r0, r2]
+ add r2, r0, #0
+ add r2, #0x80
+ strh r3, [r2]
+ mov r2, #1
+ lsl r2, r2, #0xc
+ str r2, [r0, #0x7c]
+ str r2, [r0, #0x78]
+ str r2, [r0, #0x74]
+ str r1, [r0, #0x70]
+ str r1, [r0, #0x6c]
+ str r1, [r0, #0x68]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_02238A38
+
+ thumb_func_start MOD81_02238A6C
+MOD81_02238A6C: ; 0x02238A6C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02238A80
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r4]
+ str r0, [r4, #0x64]
+_02238A80:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02238A6C
+
+ thumb_func_start MOD81_02238A84
+MOD81_02238A84: ; 0x02238A84
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r4, [r0, #0x18]
+ add r6, r1, #0
+ mov r0, #0x8c
+ mul r6, r0
+ add r7, r2, #0
+ mov r0, #1
+ str r0, [sp]
+ str r3, [sp, #4]
+ add r1, r3, #0
+ add r0, r7, #0
+ mov r2, #0
+ mov r3, #0x3a
+ add r5, r4, r6
+ bl FUN_02006C98
+ str r0, [r4, r6]
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r4, r6]
+ bl DC_FlushRange
+ ldr r0, [r4, r6]
+ cmp r0, #0
+ beq _02238B02
+ bl FUN_020BC13C
+ str r0, [r5, #0x58]
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r5, #0x5c]
+ ldr r0, [r5]
+ bl FUN_020BC0FC
+ str r0, [r5, #0x60]
+ bl FUN_0201B3C4
+ ldr r0, [r5]
+ ldr r1, [r5, #0x60]
+ bl FUN_0201B3A8
+ ldr r1, [r5, #0x5c]
+ add r0, r5, #4
+ bl FUN_020B80B4
+ ldr r0, [sp, #0x20]
+ mov r1, #0x1f
+ str r0, [r5, #0x68]
+ ldr r0, [sp, #0x24]
+ str r0, [r5, #0x6c]
+ ldr r0, [sp, #0x28]
+ str r0, [r5, #0x70]
+ add r0, r5, #0
+ add r0, #0x88
+ str r1, [r0]
+ ldr r0, [sp, #0x2c]
+ str r0, [r5, #0x64]
+_02238B02:
+ add r0, r5, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD81_02238A84
+
+ thumb_func_start MOD81_02238B08
+MOD81_02238B08: ; 0x02238B08
+ add r2, r0, #0
+ add r2, #0x68
+ add r3, r1, #0
+ ldmia r2!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r3]
+ bx lr
+ thumb_func_end MOD81_02238B08
+
+ thumb_func_start MOD81_02238B18
+MOD81_02238B18: ; 0x02238B18
+ add r3, r1, #0
+ add r2, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x68
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ bx lr
+ thumb_func_end MOD81_02238B18
+
+ thumb_func_start MOD81_02238B28
+MOD81_02238B28: ; 0x02238B28
+ add r2, r0, #0
+ add r2, #0x80
+ ldrh r2, [r2]
+ strh r2, [r1]
+ add r2, r0, #0
+ add r2, #0x82
+ ldrh r2, [r2]
+ add r0, #0x84
+ strh r2, [r1, #2]
+ ldrh r0, [r0]
+ strh r0, [r1, #4]
+ bx lr
+ thumb_func_end MOD81_02238B28
+
+ thumb_func_start MOD81_02238B40
+MOD81_02238B40: ; 0x02238B40
+ ldrh r3, [r1]
+ add r2, r0, #0
+ add r2, #0x80
+ strh r3, [r2]
+ add r2, r0, #0
+ ldrh r3, [r1, #2]
+ add r2, #0x82
+ add r0, #0x84
+ strh r3, [r2]
+ ldrh r1, [r1, #4]
+ strh r1, [r0]
+ bx lr
+ thumb_func_end MOD81_02238B40
+
+ thumb_func_start MOD81_02238B58
+MOD81_02238B58: ; 0x02238B58
+ str r1, [r0, #0x64]
+ bx lr
+ thumb_func_end MOD81_02238B58
+
+ thumb_func_start MOD81_02238B5C
+MOD81_02238B5C: ; 0x02238B5C
+ push {r3, lr}
+ add r2, r0, #0
+ add r2, #0x88
+ str r1, [r2]
+ cmp r1, #0x1f
+ ldr r0, [r0, #0x5c]
+ beq _02238B76
+ mov r2, #0x1f
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_020BC02C
+ pop {r3, pc}
+_02238B76:
+ mov r2, #0x1f
+ mov r1, #1
+ lsl r2, r2, #0x10
+ bl FUN_020BC02C
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02238B5C
+
+ thumb_func_start MOD81_02238B84
+MOD81_02238B84: ; 0x02238B84
+ str r1, [r0, #0x74]
+ str r1, [r0, #0x78]
+ str r1, [r0, #0x7c]
+ bx lr
+ thumb_func_end MOD81_02238B84
+
+ thumb_func_start MOD81_02238B8C
+MOD81_02238B8C: ; 0x02238B8C
+ push {r3, r4, lr}
+ sub sp, #0x4c
+ add r4, r0, #0
+ add r0, sp, #0x28
+ bl MTX_Identity33_
+ add r0, r4, #0
+ add r0, #0x80
+ ldrh r0, [r0]
+ ldr r3, _02238C3C ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #4
+ bl MTX_RotX33_
+ add r1, sp, #0x28
+ add r0, sp, #4
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r0, r4, #0
+ add r0, #0x82
+ ldrh r0, [r0]
+ ldr r3, _02238C3C ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #4
+ bl MTX_RotY33_
+ add r1, sp, #0x28
+ add r0, sp, #4
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r0, r4, #0
+ add r0, #0x84
+ ldrh r0, [r0]
+ ldr r3, _02238C3C ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #4
+ bl MTX_RotZ33_
+ add r1, sp, #0x28
+ add r0, sp, #4
+ add r2, r1, #0
+ bl MTX_Concat33
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ bl FUN_0201EBA4
+ add r1, r4, #0
+ ldr r0, [r4, #0x5c]
+ add r4, #0x74
+ add r1, #0x68
+ add r2, sp, #0x28
+ add r3, r4, #0
+ bl FUN_0201B6D0
+ add r4, r0, #0
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #0
+ str r2, [sp]
+ bl FUN_020BB1C0
+ add r0, r4, #0
+ add sp, #0x4c
+ pop {r3, r4, pc}
+ .align 2, 0
+_02238C3C: .word 0x020FFA38
+ thumb_func_end MOD81_02238B8C
+
+ thumb_func_start MOD81_02238C40
+MOD81_02238C40: ; 0x02238C40
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r4, r1, #0
+ ldr r1, [r2]
+ add r0, sp, #0
+ bl FUN_0201F03C
+ add r2, sp, #0
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02238C40
+
+ thumb_func_start MOD81_02238C60
+MOD81_02238C60: ; 0x02238C60
+ ldr r3, _02238C6C ; =FUN_0201EF90
+ add r2, r0, #0
+ add r0, r1, #0
+ ldr r1, [r2]
+ bx r3
+ nop
+_02238C6C: .word FUN_0201EF90
+ thumb_func_end MOD81_02238C60
+
+ thumb_func_start MOD81_02238C70
+MOD81_02238C70: ; 0x02238C70
+ ldr r3, _02238C7C ; =FUN_0201EFB4
+ add r2, r0, #0
+ add r0, r1, #0
+ ldr r1, [r2]
+ bx r3
+ nop
+_02238C7C: .word FUN_0201EFB4
+ thumb_func_end MOD81_02238C70
+
+ thumb_func_start MOD81_02238C80
+MOD81_02238C80: ; 0x02238C80
+ ldr r3, _02238C8C ; =FUN_0201EE2C
+ add r2, r0, #0
+ add r0, r1, #0
+ ldr r1, [r2]
+ bx r3
+ nop
+_02238C8C: .word FUN_0201EE2C
+ thumb_func_end MOD81_02238C80
+
+ thumb_func_start MOD81_02238C90
+MOD81_02238C90: ; 0x02238C90
+ ldr r3, _02238C9C ; =FUN_0201EEF0
+ add r2, r0, #0
+ add r0, r1, #0
+ ldr r1, [r2]
+ bx r3
+ nop
+_02238C9C: .word FUN_0201EEF0
+ thumb_func_end MOD81_02238C90
+
+ thumb_func_start MOD81_02238CA0
+MOD81_02238CA0: ; 0x02238CA0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0x3a
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_0201EB64
+ str r0, [r5]
+ str r4, [r5, #4]
+ str r6, [r5, #8]
+ mov r1, #0x4b
+ add r2, r5, #0
+ str r7, [r5, #0xc]
+ mov r0, #0
+ strh r0, [r5, #0x10]
+ strh r0, [r5, #0x12]
+ strh r0, [r5, #0x14]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ ldr r3, _02238D08 ; =0x00000FA4
+ str r0, [sp, #8]
+ add r0, r5, #4
+ lsl r1, r1, #0xe
+ add r2, #0x10
+ bl FUN_0201ECA8
+ mov r1, #0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x10]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x14]
+ ldr r1, [r5]
+ add r0, sp, #0xc
+ bl FUN_0201EC58
+ ldr r0, [r5]
+ bl FUN_0201EB8C
+ mov r1, #0xfa
+ ldr r2, [r5]
+ mov r0, #0
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02238D08: .word 0x00000FA4
+ thumb_func_end MOD81_02238CA0
+
+ thumb_func_start MOD81_02238D0C
+MOD81_02238D0C: ; 0x02238D0C
+ ldr r3, _02238D14 ; =FUN_0201EB70
+ ldr r0, [r0]
+ bx r3
+ nop
+_02238D14: .word FUN_0201EB70
+ thumb_func_end MOD81_02238D0C
+
+ thumb_func_start MOD81_02238D18
+MOD81_02238D18: ; 0x02238D18
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x3a
+ mov r1, #0x6c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02238D60
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD81_0223880C
+ str r0, [r4, #0x40]
+ mov r0, #0x3a
+ bl FUN_02006D98
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ mov r1, #0x3a
+ bl FUN_020219F4
+ str r0, [r4, #0x54]
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ mov r1, #0x3a
+ bl FUN_020219F4
+ str r0, [r4, #0x58]
+ mov r0, #0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x68]
+_02238D60:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD81_02238D18
+
+ thumb_func_start MOD81_02238D64
+MOD81_02238D64: ; 0x02238D64
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02238DC2
+ bl MOD81_0223951C
+ add r0, r4, #0
+ bl MOD81_022395E8
+ add r0, r4, #0
+ bl MOD81_02239498
+ ldr r0, [r4, #0x54]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x58]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x5c]
+ bl MOD81_0223890C
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x40]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x40]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ add r0, #0x44
+ bl FUN_02019178
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02238DB6
+ bl FUN_02007534
+_02238DB6:
+ ldr r0, [r4, #0xc]
+ bl FUN_020072E8
+ add r0, r4, #0
+ bl FUN_02016A18
+_02238DC2:
+ pop {r4, pc}
+ thumb_func_end MOD81_02238D64
+
+ thumb_func_start MOD81_02238DC4
+MOD81_02238DC4: ; 0x02238DC4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4]
+ add r5, r0, #0
+ cmp r2, #4
+ bhs _02238DF2
+ lsl r3, r2, #2
+ ldr r2, _02238DF8 ; =0x0223CFFC
+ add r1, r5, #4
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _02238DE8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5, #4]
+_02238DE8:
+ add r0, r5, #0
+ bl MOD81_02238DFC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02238DF2:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_02238DF8: .word 0x0223CFFC
+ thumb_func_end MOD81_02238DC4
+
+ thumb_func_start MOD81_02238DFC
+MOD81_02238DFC: ; 0x02238DFC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl G3X_ResetMtxStack
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ bl FUN_020BB394
+ bl FUN_020B02C8
+ ldr r0, [r4, #0xc]
+ bl FUN_020081C4
+ ldr r0, [r4, #0xc]
+ bl FUN_02006ED4
+ mov r2, #1
+ str r2, [sp]
+ mov r0, #0x12
+ add r1, sp, #0
+ bl FUN_020BB1C0
+ ldr r0, [r4, #0x5c]
+ bl MOD81_02238940
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020222B4
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02238DFC
+
+ thumb_func_start MOD81_02238E44
+MOD81_02238E44: ; 0x02238E44
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, _02239040 ; =0x0223D054
+ bl FUN_0201E66C
+ ldr r2, _02239044 ; =0x04000304
+ ldr r0, _02239048 ; =0xFFFF7FFF
+ ldrh r1, [r2]
+ and r0, r1
+ strh r0, [r2]
+ ldr r0, _0223904C ; =0x0223D00C
+ bl FUN_02016BBC
+ ldr r0, [r4, #0x40]
+ ldr r2, _02239050 ; =0x0223D01C
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x40]
+ ldr r2, _02239054 ; =0x0223D038
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x40]
+ ldr r2, _02239054 ; =0x0223D038
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r2, _02239058 ; =0x04000008
+ mov r0, #3
+ ldrh r3, [r2]
+ mov r1, #1
+ bic r3, r0
+ add r0, r3, #0
+ orr r0, r1
+ strh r0, [r2]
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #0x40]
+ 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, [r4, #0x40]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r4]
+ bl MOD81_02238844
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3a
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ mov r2, #0x6d
+ mov r3, #2
+ bl FUN_0200CD68
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ add r1, r4, #0
+ str r0, [sp, #8]
+ mov r2, #1
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r0, [r4, #0x40]
+ add r1, #0x44
+ mov r3, #2
+ bl FUN_02019064
+ add r0, r4, #0
+ add r0, #0x44
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0x20
+ str r3, [sp]
+ mov r0, #0x3a
+ str r0, [sp, #4]
+ mov r0, #0xe
+ mov r1, #7
+ mov r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x40]
+ mov r0, #0x5d
+ mov r1, #0x16
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x40]
+ mov r0, #0x5d
+ mov r1, #0x15
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3a
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0x17
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x40]
+ mov r0, #0x5d
+ mov r1, #0x16
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x40]
+ mov r0, #0x5d
+ mov r1, #0x15
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3a
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0x17
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_02017CD0
+ add r0, r4, #0
+ bl MOD81_022392D8
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD81_022388C0
+ str r0, [r4, #0x5c]
+ add r0, r4, #0
+ bl MOD81_022393A4
+ str r0, [r4, #0x10]
+ mov r1, #0
+ mov r0, #0x6a
+ str r1, [sp]
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ ldr r0, _0223905C ; =0x00073800
+ mov r2, #0x5d
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4, #0x5c]
+ mov r3, #0x1b
+ bl MOD81_02238A84
+ ldr r2, _02239060 ; =0x0223CFF4
+ str r0, [r4, #0x60]
+ ldrh r3, [r2]
+ add r0, sp, #0x14
+ add r1, sp, #0x14
+ strh r3, [r0]
+ ldrh r3, [r2, #2]
+ ldrh r2, [r2, #4]
+ strh r3, [r0, #2]
+ strh r2, [r0, #4]
+ ldr r0, [r4, #0x60]
+ bl MOD81_02238B40
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add r0, r4, #0
+ bl MOD81_022393F4
+ ldr r0, _02239064 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ bl FUN_02033E74
+ mov r0, #1
+ mov r1, #0x39
+ bl FUN_02033F04
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_02239040: .word 0x0223D054
+_02239044: .word 0x04000304
+_02239048: .word 0xFFFF7FFF
+_0223904C: .word 0x0223D00C
+_02239050: .word 0x0223D01C
+_02239054: .word 0x0223D038
+_02239058: .word 0x04000008
+_0223905C: .word 0x00073800
+_02239060: .word 0x0223CFF4
+_02239064: .word 0x04000050
+ thumb_func_end MOD81_02238E44
+
+ thumb_func_start MOD81_02239068
+MOD81_02239068: ; 0x02239068
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r1]
+ cmp r0, #0
+ bne _0223908E
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223908E
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #1
+ pop {r4, pc}
+_0223908E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02239068
+
+ thumb_func_start MOD81_02239094
+MOD81_02239094: ; 0x02239094
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #4
+ bhi _022390CE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022390AE: ; jump table
+ .short _022390B8 - _022390AE - 2 ; case 0
+ .short _022390C4 - _022390AE - 2 ; case 1
+ .short _02239138 - _022390AE - 2 ; case 2
+ .short _022391BE - _022390AE - 2 ; case 3
+ .short _022391DE - _022390AE - 2 ; case 4
+_022390B8:
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _022391EE
+_022390C4:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0xa
+ bgt _022390D0
+_022390CE:
+ b _022391EE
+_022390D0:
+ ldr r0, [r4]
+ bl MOD81_02238814
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD81_02238810
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD81_02238850
+ cmp r0, #1
+ bne _022390F0
+ mov r1, #0
+ mov r6, #2
+ b _022390F4
+_022390F0:
+ mov r1, #4
+ mov r6, #3
+_022390F4:
+ ldr r0, [sp, #0xc]
+ ldr r2, [r4, #0x54]
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0x58]
+ ldr r2, [r4, #0x54]
+ add r0, r7, #0
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r4, #0
+ ldr r2, [r4, #0x58]
+ add r0, #0x44
+ mov r1, #1
+ bl FUN_0201BD84
+ add r0, r4, #0
+ add r0, #0x44
+ mov r1, #0x6d
+ mov r2, #2
+ bl FUN_0200D06C
+ add r0, r4, #0
+ add r0, #0x44
+ bl FUN_020191D0
+ mov r0, #0
+ str r0, [r4, #8]
+ str r6, [r5]
+ b _022391EE
+_02239138:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0x3c
+ ble _022391EE
+ ldr r0, [r4]
+ bl MOD81_02238814
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD81_02238810
+ add r7, r0, #0
+ ldr r2, [r4, #0x54]
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0x58]
+ ldr r2, [r4, #0x54]
+ add r0, r7, #0
+ bl FUN_0200B7B8
+ ldr r0, [r4]
+ bl MOD81_02238818
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ bne _0223918A
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02007314
+ ldr r0, [r4]
+ bl MOD81_02238830
+ bl FUN_02005578
+_0223918A:
+ add r0, r4, #0
+ add r0, #0x44
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r4, #0
+ ldr r2, [r4, #0x58]
+ add r0, #0x44
+ mov r1, #1
+ bl FUN_0201BD84
+ add r0, r4, #0
+ add r0, #0x44
+ bl FUN_02019548
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _022391EE
+_022391BE:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0x3c
+ ble _022391EE
+ add r0, r4, #0
+ add r0, #0x44
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _022391EE
+_022391DE:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0x14
+ ble _022391EE
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022391EE:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD81_02239094
+
+ thumb_func_start MOD81_022391F4
+MOD81_022391F4: ; 0x022391F4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #4
+ bhi _022392CE
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223920E: ; jump table
+ .short _02239218 - _0223920E - 2 ; case 0
+ .short _02239232 - _0223920E - 2 ; case 1
+ .short _02239258 - _0223920E - 2 ; case 2
+ .short _02239284 - _0223920E - 2 ; case 3
+ .short _022392B6 - _0223920E - 2 ; case 4
+_02239218:
+ ldr r0, _022392D4 ; =0x000006A8
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #0xc
+ bl MOD81_022394BC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022392CE
+_02239232:
+ bl MOD81_0223950C
+ cmp r0, #0
+ beq _022392CE
+ ldr r0, [r5, #0x10]
+ bl FUN_02007534
+ ldr r0, [r5, #0x2c]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r5, #0x2c]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022392CE
+_02239258:
+ ldr r0, [r5, #0x2c]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _022392CE
+ ldr r0, [r5, #0x60]
+ mov r1, #1
+ bl MOD81_02238B58
+ mov r1, #0x10
+ add r0, r5, #0
+ mov r2, #0
+ add r3, r1, #0
+ bl MOD81_022394BC
+ add r0, r5, #0
+ bl MOD81_02239578
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022392CE
+_02239284:
+ bl MOD81_022395D4
+ cmp r0, #2
+ bge _02239296
+ add r0, r5, #0
+ bl MOD81_022395C4
+ cmp r0, #1
+ bne _022392CE
+_02239296:
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _022392CE
+_022392B6:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _022392CE
+ add r0, r5, #0
+ bl MOD81_022395C4
+ cmp r0, #0
+ beq _022392CE
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_022392CE:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022392D4: .word 0x000006A8
+ thumb_func_end MOD81_022391F4
+
+ thumb_func_start MOD81_022392D8
+MOD81_022392D8: ; 0x022392D8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _02239380 ; =0x04000060
+ ldr r2, _02239384 ; =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 r3, [r0]
+ ldr r1, _02239388 ; =0x0000CFFB
+ and r1, r3
+ strh r1, [r0]
+ add r1, r2, #2
+ ldrh r3, [r0]
+ lsr r2, r2, #0x11
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0223938C ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _02239390 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020AEB70
+ mov r0, #1
+ lsl r0, r0, #0xe
+ mov r1, #1
+ bl FUN_020AEDF4
+ ldr r3, _02239394 ; =0x021064B8
+ mov r0, #1
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _02239398 ; =0x021064C0
+ add r4, r0, #0
+ ldr r3, [r3]
+ mov r0, #0x80
+ mov r1, #0
+ mov r2, #1
+ blx r3
+ ldr r2, _0223939C ; =0x7FFF0000
+ add r6, r0, #0
+ and r2, r4
+ lsl r1, r4, #0x10
+ lsr r2, r2, #0x10
+ ldr r0, [r5, #0xc]
+ lsr r1, r1, #0xd
+ lsl r2, r2, #4
+ bl FUN_020081A8
+ ldr r2, _022393A0 ; =0xFFFF0000
+ lsl r1, r6, #0x10
+ and r2, r6
+ lsr r2, r2, #0x10
+ ldr r0, [r5, #0xc]
+ lsr r1, r1, #0xd
+ lsl r2, r2, #3
+ bl FUN_020081B4
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02239380: .word 0x04000060
+_02239384: .word 0xFFFFCFFD
+_02239388: .word 0x0000CFFB
+_0223938C: .word 0x04000540
+_02239390: .word 0xBFFF0000
+_02239394: .word 0x021064B8
+_02239398: .word 0x021064C0
+_0223939C: .word 0x7FFF0000
+_022393A0: .word 0xFFFF0000
+ thumb_func_end MOD81_022392D8
+
+ thumb_func_start MOD81_022393A4
+MOD81_022393A4: ; 0x022393A4
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl MOD81_02238818
+ add r5, r0, #0
+ add r0, sp, #0x10
+ add r1, r5, #0
+ mov r2, #2
+ bl FUN_02068B70
+ ldr r0, [r4]
+ bl MOD81_02238830
+ add r1, r0, #0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02069010
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_02068E1C
+ add r3, r0, #0
+ mov r1, #0
+ str r1, [sp]
+ add r0, r4, #0
+ str r1, [sp, #4]
+ add r0, #0x14
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4, #0xc]
+ add r3, #0x50
+ add r1, sp, #0x10
+ mov r2, #0x80
+ bl FUN_020073A0
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD81_022393A4
+
+ thumb_func_start MOD81_022393F4
+MOD81_022393F4: ; 0x022393F4
+ push {r4, lr}
+ sub sp, #0x70
+ add r4, r0, #0
+ add r0, #0x30
+ mov r1, #0x5d
+ mov r2, #7
+ mov r3, #8
+ bl MOD81_0223874C
+ add r0, sp, #0x5c
+ bl FUN_020B19DC
+ add r0, sp, #0x38
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ add r0, sp, #0x38
+ str r0, [sp, #0x10]
+ mov r0, #0x5d
+ mov r1, #9
+ bl FUN_02006AE4
+ mov r0, #0x3a
+ str r0, [sp]
+ add r0, sp, #0x5c
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0xa
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #2
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, sp, #0x14
+ add r1, #0x30
+ add r2, sp, #0x38
+ add r3, sp, #0x5c
+ bl MOD81_022387A8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ mov r2, #0x80
+ mov r3, #0x64
+ bl MOD81_022387C8
+ str r0, [r4, #0x28]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ mov r2, #0x80
+ mov r3, #0x5a
+ bl MOD81_022387C8
+ str r0, [r4, #0x2c]
+ mov r1, #1
+ bl FUN_02020238
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, #0x2c]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x70
+ pop {r4, pc}
+ thumb_func_end MOD81_022393F4
+
+ thumb_func_start MOD81_02239498
+MOD81_02239498: ; 0x02239498
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_022394A0:
+ ldr r0, [r5, #0x28]
+ cmp r0, #0
+ beq _022394AA
+ bl FUN_0201FFC8
+_022394AA:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _022394A0
+ add r6, #0x30
+ add r0, r6, #0
+ bl MOD81_02238784
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD81_02239498
+
+ thumb_func_start MOD81_022394BC
+MOD81_022394BC: ; 0x022394BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x3a
+ mov r1, #0x14
+ str r2, [sp]
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02239502
+ str r5, [r4]
+ lsl r0, r6, #0xc
+ str r0, [r4, #4]
+ ldr r0, [sp]
+ lsl r1, r0, #0xc
+ str r1, [r4, #8]
+ ldr r0, [r4, #4]
+ sub r0, r1, r0
+ add r1, r7, #0
+ bl _s32_div_f
+ str r0, [r4, #0xc]
+ ldr r0, _02239504 ; =MOD81_0223953C
+ str r7, [r4, #0x10]
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA60
+ str r0, [r5, #0x64]
+ ldr r0, _02239508 ; =0x04000050
+ mov r1, #1
+ add r2, r6, #0
+ bl G2x_SetBlendBrightness_
+_02239502:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239504: .word MOD81_0223953C
+_02239508: .word 0x04000050
+ thumb_func_end MOD81_022394BC
+
+ thumb_func_start MOD81_0223950C
+MOD81_0223950C: ; 0x0223950C
+ ldr r0, [r0, #0x64]
+ cmp r0, #0
+ bne _02239516
+ mov r0, #1
+ bx lr
+_02239516:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_0223950C
+
+ thumb_func_start MOD81_0223951C
+MOD81_0223951C: ; 0x0223951C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ beq _02239538
+ bl FUN_0201B6C8
+ bl MOD81_02238898
+ ldr r0, [r4, #0x64]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x64]
+_02239538:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223951C
+
+ thumb_func_start MOD81_0223953C
+MOD81_0223953C: ; 0x0223953C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #0
+ ble _0223955E
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #0xc]
+ add r2, r1, r0
+ str r2, [r4, #4]
+ ldr r0, _02239574 ; =0x04000050
+ mov r1, #1
+ asr r2, r2, #0xc
+ bl G2x_SetBlendBrightness_
+ pop {r4, pc}
+_0223955E:
+ ldr r2, [r4, #8]
+ ldr r0, _02239574 ; =0x04000050
+ mov r1, #1
+ asr r2, r2, #0xc
+ bl G2x_SetBlendBrightness_
+ ldr r0, [r4]
+ bl MOD81_0223951C
+ pop {r4, pc}
+ nop
+_02239574: .word 0x04000050
+ thumb_func_end MOD81_0223953C
+
+ thumb_func_start MOD81_02239578
+MOD81_02239578: ; 0x02239578
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x3a
+ mov r1, #0x30
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _022395B8
+ str r5, [r4]
+ ldr r0, [r5, #0x60]
+ add r1, r4, #0
+ str r0, [r4, #4]
+ add r1, #8
+ bl MOD81_02238B08
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x14
+ bl MOD81_02238B28
+ ldr r0, _022395BC ; =0x00002F60
+ mov r2, #0
+ str r0, [r4, #0x1c]
+ str r2, [r4, #0x20]
+ strh r2, [r4, #0x2c]
+ str r2, [r4, #0x24]
+ ldr r0, _022395C0 ; =MOD81_02239608
+ add r1, r4, #0
+ str r2, [r4, #0x28]
+ bl FUN_0200CA44
+ str r0, [r5, #0x68]
+_022395B8:
+ pop {r3, r4, r5, pc}
+ nop
+_022395BC: .word 0x00002F60
+_022395C0: .word MOD81_02239608
+ thumb_func_end MOD81_02239578
+
+ thumb_func_start MOD81_022395C4
+MOD81_022395C4: ; 0x022395C4
+ ldr r0, [r0, #0x68]
+ cmp r0, #0
+ bne _022395CE
+ mov r0, #1
+ bx lr
+_022395CE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_022395C4
+
+ thumb_func_start MOD81_022395D4
+MOD81_022395D4: ; 0x022395D4
+ push {r3, lr}
+ ldr r0, [r0, #0x68]
+ cmp r0, #0
+ beq _022395E4
+ bl FUN_0201B6C8
+ ldr r0, [r0, #0x20]
+ pop {r3, pc}
+_022395E4:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD81_022395D4
+
+ thumb_func_start MOD81_022395E8
+MOD81_022395E8: ; 0x022395E8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x68]
+ cmp r0, #0
+ beq _02239604
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ ldr r0, [r4, #0x68]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x68]
+_02239604:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_022395E8
+
+ thumb_func_start MOD81_02239608
+MOD81_02239608: ; 0x02239608
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _0223967C
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x1c]
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ cmp r1, #0
+ blt _0223962A
+ mov r0, #0x1e
+ lsl r0, r0, #6
+ sub r0, r1, r0
+ str r0, [r4, #0x1c]
+ b _0223967C
+_0223962A:
+ mov r0, #0x1e
+ lsl r0, r0, #6
+ sub r0, r1, r0
+ str r0, [r4, #0x1c]
+ ldr r1, [r4, #0xc]
+ ldr r0, _022396E0 ; =0xFFFFC000
+ cmp r1, r0
+ bgt _0223967C
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #0x1c]
+ mov r0, #0x2c
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ neg r1, r0
+ mov r0, #0xfa
+ lsl r0, r0, #4
+ str r1, [r4, #0x1c]
+ cmp r1, r0
+ bge _02239658
+ mov r0, #1
+ str r0, [r4, #0x24]
+_02239658:
+ ldr r0, _022396E4 ; =0x000005E6
+ bl FUN_020054C8
+ ldr r0, [r4, #0x20]
+ add r0, r0, #1
+ str r0, [r4, #0x20]
+ cmp r0, #1
+ beq _0223966E
+ cmp r0, #3
+ beq _02239674
+ b _0223967C
+_0223966E:
+ mov r0, #0xb0
+ strh r0, [r4, #0x2c]
+ b _0223967C
+_02239674:
+ mov r0, #0x2c
+ ldrsh r0, [r4, r0]
+ add r0, #0x50
+ strh r0, [r4, #0x2c]
+_0223967C:
+ mov r0, #0x14
+ mov r2, #0x2c
+ ldrsh r3, [r4, r0]
+ ldrsh r0, [r4, r2]
+ add r1, r4, #0
+ add r1, #0x14
+ add r0, r3, r0
+ strh r0, [r4, #0x14]
+ mov r0, #0x18
+ ldrsh r3, [r4, r0]
+ ldrsh r0, [r4, r2]
+ sub r0, r3, r0
+ strh r0, [r4, #0x18]
+ ldr r0, [r4, #4]
+ bl MOD81_02238B40
+ mov r2, #0x2c
+ ldrsh r3, [r4, r2]
+ ldr r5, [r4, #8]
+ add r1, r4, #0
+ lsl r0, r3, #2
+ add r0, r3, r0
+ add r0, r5, r0
+ str r0, [r4, #8]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #0x10]
+ add r1, #8
+ lsl r0, r2, #2
+ add r0, r2, r0
+ add r0, r3, r0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #4]
+ bl MOD81_02238B18
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _022396DE
+ mov r0, #0x2c
+ ldrsh r0, [r4, r0]
+ sub r0, #0xe
+ strh r0, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ cmp r0, #0x1e
+ ble _022396DE
+ ldr r0, [r4]
+ bl MOD81_022395E8
+_022396DE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022396E0: .word 0xFFFFC000
+_022396E4: .word 0x000005E6
+ thumb_func_end MOD81_02239608
+
+ thumb_func_start MOD81_022396E8
+MOD81_022396E8: ; 0x022396E8
+ push {r3, r4, r5, lr}
+ mov r1, #0x5b
+ add r5, r0, #0
+ mov r0, #0x3a
+ lsl r1, r1, #2
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223974A
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD81_0223880C
+ add r1, r4, #0
+ add r1, #0xc0
+ str r0, [r1]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xcc
+ str r1, [r0]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ bl FUN_0201BA60
+ add r1, r4, #0
+ add r1, #0xbc
+ str r0, [r1]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0xd0
+ str r2, [r0]
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ ldr r0, _02239750 ; =MOD81_02239F58
+ add r1, r4, #0
+ bl FUN_0200CA98
+_0223974A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02239750: .word MOD81_02239F58
+ thumb_func_end MOD81_022396E8
+
+ thumb_func_start MOD81_02239754
+MOD81_02239754: ; 0x02239754
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ cmp r5, #0
+ beq _022397A0
+ add r0, r5, #0
+ bl MOD81_02239C94
+ add r0, r5, #0
+ bl MOD81_02239DF0
+ add r0, r5, #0
+ bl MOD81_02239F1C
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02239782
+ bl FUN_0200CAB4
+_02239782:
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02239790
+ bl MOD81_0223A1FC
+_02239790:
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_0201BA1C
+ add r0, r5, #0
+ bl FUN_02016A18
+_022397A0:
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD81_02239754
+
+ thumb_func_start MOD81_022397A8
+MOD81_022397A8: ; 0x022397A8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4]
+ add r5, r0, #0
+ cmp r2, #4
+ bhs _022397D6
+ lsl r3, r2, #2
+ ldr r2, _022397DC ; =0x0223D094
+ add r1, r5, #4
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _022397CC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5, #4]
+_022397CC:
+ add r0, r5, #0
+ bl MOD81_022397E0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_022397D6:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_022397DC: .word 0x0223D094
+ thumb_func_end MOD81_022397A8
+
+ thumb_func_start MOD81_022397E0
+MOD81_022397E0: ; 0x022397E0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02239800
+ bl G3X_ResetMtxStack
+ add r4, #0xd4
+ ldr r0, [r4]
+ bl MOD81_02238940
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020222B4
+_02239800:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_022397E0
+
+ thumb_func_start MOD81_02239804
+MOD81_02239804: ; 0x02239804
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD81_022399FC
+ add r0, r4, #0
+ bl MOD81_02239CDC
+ add r0, r4, #0
+ bl MOD81_02239E00
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02239804
+
+ thumb_func_start MOD81_02239838
+MOD81_02239838: ; 0x02239838
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _02239848
+ cmp r1, #1
+ beq _0223985E
+ b _02239876
+_02239848:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _02239876
+ ldr r0, _0223987C ; =0x0223D444
+ mov r1, #0
+ str r1, [r0]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02239876
+_0223985E:
+ ldr r1, _0223987C ; =0x0223D444
+ ldr r2, [r1]
+ cmp r2, #0x1e
+ bge _0223986A
+ add r2, r2, #1
+ str r2, [r1]
+_0223986A:
+ add r0, #0xd0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02239876
+ mov r0, #1
+ pop {r4, pc}
+_02239876:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0223987C: .word 0x0223D444
+ thumb_func_end MOD81_02239838
+
+ thumb_func_start MOD81_02239880
+MOD81_02239880: ; 0x02239880
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #4
+ bhi _02239926
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02239898: ; jump table
+ .short _022398A2 - _02239898 - 2 ; case 0
+ .short _022398AE - _02239898 - 2 ; case 1
+ .short _022398F2 - _02239898 - 2 ; case 2
+ .short _02239908 - _02239898 - 2 ; case 3
+ .short _0223991E - _02239898 - 2 ; case 4
+_022398A2:
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02239926
+_022398AE:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #8
+ ble _02239926
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #0x18
+ bl MOD81_0223A228
+ add r0, r4, #0
+ bl MOD81_0223A2AC
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD81_02238B5C
+ add r4, #0xd8
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD81_02238B58
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02239926
+_022398F2:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD81_0223A658
+ cmp r0, #0
+ beq _02239926
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02239926
+_02239908:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD81_0223A64C
+ cmp r0, #0
+ beq _02239926
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _02239926
+_0223991E:
+ bl MOD81_02239F4C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02239926:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02239880
+
+ thumb_func_start MOD81_0223992C
+MOD81_0223992C: ; 0x0223992C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #4
+ bhi _022399F2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02239946: ; jump table
+ .short _02239950 - _02239946 - 2 ; case 0
+ .short _02239966 - _02239946 - 2 ; case 1
+ .short _02239984 - _02239946 - 2 ; case 2
+ .short _022399A0 - _02239946 - 2 ; case 3
+ .short _022399E4 - _02239946 - 2 ; case 4
+_02239950:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD81_0223A664
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _022399F2
+_02239966:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #2
+ ble _022399F2
+ mov r0, #0
+ str r0, [r4, #8]
+ add r4, #0xc4
+ ldr r0, [r4]
+ bl MOD81_022381EC
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _022399F2
+_02239984:
+ add r1, r4, #0
+ add r1, #0xc8
+ ldr r1, [r1]
+ cmp r1, #0
+ bne _022399F2
+ mov r1, #0x59
+ lsl r1, r1, #2
+ add r1, r4, r1
+ bl MOD81_0223A104
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _022399F2
+_022399A0:
+ ldr r0, [r4, #8]
+ cmp r0, #0x28
+ bge _022399B6
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0x28
+ bne _022399B6
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ bl FUN_020054C8
+_022399B6:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD81_0223A64C
+ cmp r0, #0
+ beq _022399F2
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0
+ ldr r3, _022399F8 ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _022399F2
+_022399E4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _022399F2
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_022399F2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022399F8: .word 0x00007FFF
+ thumb_func_end MOD81_0223992C
+
+ thumb_func_start MOD81_022399FC
+MOD81_022399FC: ; 0x022399FC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _02239C78 ; =0x0223D0EC
+ bl FUN_0201E66C
+ ldr r2, _02239C7C ; =0x04000304
+ ldr r0, _02239C80 ; =0xFFFF7FFF
+ ldrh r1, [r2]
+ and r0, r1
+ strh r0, [r2]
+ ldr r0, _02239C84 ; =0x0223D084
+ bl FUN_02016BBC
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r2, _02239C88 ; =0x0223D0B4
+ mov r1, #2
+ mov r3, #1
+ bl FUN_02016C18
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r2, _02239C88 ; =0x0223D0B4
+ mov r1, #6
+ mov r3, #1
+ bl FUN_02016C18
+ bl OS_DisableInterrupts
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r2, _02239C8C ; =0x0223D0D0
+ mov r1, #3
+ mov r3, #2
+ bl FUN_02016C18
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r2, _02239C8C ; =0x0223D0D0
+ mov r1, #7
+ mov r3, #2
+ bl FUN_02016C18
+ add r0, r5, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ mov r1, #2
+ ldr r2, [r2]
+ mov r0, #0x5d
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5d
+ mov r1, #2
+ mov r3, #6
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ add r2, r4, #0
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5d
+ mov r3, #2
+ bl FUN_020068C8
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5d
+ mov r3, #6
+ bl FUN_020068C8
+ ldr r0, [r4]
+ bl MOD81_02238828
+ add r5, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3a
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3a
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #3
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ ldr r0, _02239C90 ; =0x0223D07C
+ lsl r1, r5, #1
+ ldrh r5, [r0, r1]
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ mov r1, #3
+ mov r2, #0
+ add r3, r5, #0
+ bl FUN_02006948
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ mov r1, #3
+ mov r2, #4
+ add r3, r5, #0
+ bl FUN_02006948
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5d
+ mov r1, #5
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5d
+ mov r1, #5
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5d
+ mov r1, #4
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5d
+ mov r1, #4
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0x3a
+ mov r1, #0x60
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _02239C02
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #0x60
+ bl MIi_CpuClear32
+ add r0, r5, #0
+ mov r1, #0x60
+ bl DC_FlushRange
+ bl GX_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
+ mov r1, #6
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ mov r2, #0x60
+ bl GX_LoadBGExtPltt
+ mov r1, #6
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ mov r2, #0x60
+ bl GXS_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
+ add r0, r5, #0
+ bl FUN_02016A18
+_02239C02:
+ add r0, r4, #0
+ add r0, #0xc0
+ mov r3, #0xff
+ ldr r0, [r0]
+ mov r1, #6
+ mov r2, #3
+ mvn r3, r3
+ bl FUN_020179E0
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add r0, r4, #0
+ add r0, #0xc0
+ mov r1, #3
+ ldr r0, [r0]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ add r0, #0xc8
+ mov r1, #1
+ bl MOD81_02238118
+ add r1, r4, #0
+ add r1, #0xc4
+ str r0, [r1]
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xd0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xc0
+ mov r1, #0x12
+ mov r2, #1
+ ldr r0, [r0]
+ lsl r1, r1, #6
+ lsl r2, r2, #0xc
+ mov r3, #1
+ bl MOD81_022384AC
+ add r4, #0xcc
+ str r0, [r4]
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02239C78: .word 0x0223D0EC
+_02239C7C: .word 0x04000304
+_02239C80: .word 0xFFFF7FFF
+_02239C84: .word 0x0223D084
+_02239C88: .word 0x0223D0B4
+_02239C8C: .word 0x0223D0D0
+_02239C90: .word 0x0223D07C
+ thumb_func_end MOD81_022399FC
+
+ thumb_func_start MOD81_02239C94
+MOD81_02239C94: ; 0x02239C94
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02239CAA
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl MOD81_02238200
+_02239CAA:
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_020178A0
+ add r4, #0xc0
+ ldr r0, [r4]
+ mov r1, #7
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02239C94
+
+ thumb_func_start MOD81_02239CDC
+MOD81_02239CDC: ; 0x02239CDC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _02239DBC ; =0x04000060
+ ldr r1, _02239DC0 ; =0xFFFFCFFD
+ ldrh r2, [r0]
+ and r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ add r2, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _02239DC4 ; =0x0000CFFB
+ and r2, r3
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #8
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x20
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, _02239DC8 ; =0x0223D0A4
+ bl G3X_SetEdgeColorTable
+ mov r1, #0
+ ldr r0, _02239DCC ; =0x000043FF
+ ldr r2, _02239DD0 ; =0x00007FFF
+ mov r3, #0x3f
+ str r1, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _02239DD4 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _02239DD8 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020AEB70
+ mov r0, #1
+ lsl r0, r0, #0xe
+ mov r1, #1
+ bl FUN_020AEDF4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r1, _02239DDC ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ strh r2, [r1]
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD81_022388C0
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r1, #0
+ ldr r0, _02239DE0 ; =0xFFFC8800
+ str r1, [sp]
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r4, #0
+ str r1, [sp, #0xc]
+ add r0, #0xd4
+ ldr r0, [r0]
+ mov r2, #0x5d
+ mov r3, #0x1b
+ bl MOD81_02238A84
+ add r1, r4, #0
+ add r1, #0xd8
+ str r0, [r1]
+ ldr r1, _02239DE4 ; =0x0000EBE0
+ ldr r0, _02239DE8 ; =0x0223D444
+ strh r1, [r0, #4]
+ mov r1, #0
+ strh r1, [r0, #6]
+ strh r1, [r0, #8]
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ ldr r1, _02239DEC ; =0x0223D448
+ bl MOD81_02238C60
+ add r4, #0xd8
+ mov r1, #7
+ ldr r0, [r4]
+ lsl r1, r1, #0xa
+ bl MOD81_02238B84
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02239DBC: .word 0x04000060
+_02239DC0: .word 0xFFFFCFFD
+_02239DC4: .word 0x0000CFFB
+_02239DC8: .word 0x0223D0A4
+_02239DCC: .word 0x000043FF
+_02239DD0: .word 0x00007FFF
+_02239DD4: .word 0x04000540
+_02239DD8: .word 0xBFFF0000
+_02239DDC: .word 0x04000008
+_02239DE0: .word 0xFFFC8800
+_02239DE4: .word 0x0000EBE0
+_02239DE8: .word 0x0223D444
+_02239DEC: .word 0x0223D448
+ thumb_func_end MOD81_02239CDC
+
+ thumb_func_start MOD81_02239DF0
+MOD81_02239DF0: ; 0x02239DF0
+ push {r3, lr}
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02239DFE
+ bl MOD81_0223890C
+_02239DFE:
+ pop {r3, pc}
+ thumb_func_end MOD81_02239DF0
+
+ thumb_func_start MOD81_02239E00
+MOD81_02239E00: ; 0x02239E00
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x74
+ add r7, r0, #0
+ add r0, #0xc
+ mov r1, #0x5d
+ mov r2, #0xb
+ mov r3, #0xc
+ bl MOD81_0223874C
+ add r0, sp, #0x60
+ bl FUN_020B19DC
+ add r0, sp, #0x3c
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ add r0, sp, #0x3c
+ str r0, [sp, #0x10]
+ mov r0, #0x5d
+ mov r1, #0xd
+ bl FUN_02006AE4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ add r0, sp, #0x3c
+ str r0, [sp, #0x10]
+ mov r0, #0x5d
+ mov r1, #0xd
+ mov r2, #1
+ bl FUN_02006AE4
+ mov r0, #0x3a
+ str r0, [sp]
+ add r0, sp, #0x60
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0xe
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #0x3a
+ str r0, [sp]
+ add r0, sp, #0x60
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0xe
+ mov r2, #2
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #1
+ add r1, r7, #0
+ str r0, [sp]
+ add r0, sp, #0x18
+ add r1, #0xc
+ add r2, sp, #0x3c
+ add r3, sp, #0x60
+ bl MOD81_022387A8
+ ldr r0, _02239F18 ; =0x035947D1
+ bl FUN_0201BA1C
+ mov r0, #0
+ str r0, [sp, #0x14]
+ add r4, r7, #0
+_02239E9A:
+ bl FUN_0201BA60
+ mov r1, #0xe8
+ bl _u32_div_f
+ add r6, r1, #0
+ add r6, #0xc
+ bl FUN_0201BA60
+ mov r1, #0x71
+ lsl r1, r1, #2
+ bl _u32_div_f
+ add r5, r1, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ sub r5, #0x1c
+ str r0, [sp, #4]
+ ldr r0, [r7]
+ add r1, sp, #0x18
+ add r2, r6, #0
+ add r3, r5, #0
+ bl MOD81_022387C8
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r5, #0x38
+ ldr r0, [r7]
+ add r1, sp, #0x18
+ add r2, r6, #0
+ add r3, r5, #0
+ bl MOD81_022387C8
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r4, #0x20]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [sp, #0x14]
+ add r4, #8
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, #0x14
+ blt _02239E9A
+ add sp, #0x74
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02239F18: .word 0x035947D1
+ thumb_func_end MOD81_02239E00
+
+ thumb_func_start MOD81_02239F1C
+MOD81_02239F1C: ; 0x02239F1C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02239F24:
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _02239F2E
+ bl FUN_0201FFC8
+_02239F2E:
+ ldr r0, [r5, #0x20]
+ cmp r0, #0
+ beq _02239F38
+ bl FUN_0201FFC8
+_02239F38:
+ add r4, r4, #1
+ add r5, #8
+ cmp r4, #0x14
+ blt _02239F24
+ add r6, #0xc
+ add r0, r6, #0
+ bl MOD81_02238784
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD81_02239F1C
+
+ thumb_func_start MOD81_02239F4C
+MOD81_02239F4C: ; 0x02239F4C
+ mov r1, #0x5a
+ mov r2, #1
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_02239F4C
+
+ thumb_func_start MOD81_02239F58
+MOD81_02239F58: ; 0x02239F58
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5a
+ add r4, r1, #0
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02239FAC
+ mov r1, #0
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xc0
+ mov r3, #0xff
+ ldr r0, [r0]
+ mov r1, #2
+ mov r2, #3
+ mvn r3, r3
+ bl FUN_020179E0
+ add r4, #0xc0
+ ldr r0, [r4]
+ mov r1, #6
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #3
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #1
+ bl FUN_0201797C
+ ldr r2, _02239FB0 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_02239FAC:
+ pop {r3, r4, r5, pc}
+ nop
+_02239FB0: .word 0x04000304
+ thumb_func_end MOD81_02239F58
+
+ thumb_func_start MOD81_02239FB4
+MOD81_02239FB4: ; 0x02239FB4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r5, [r2, #4]
+ add r0, r2, #0
+ str r1, [r0]
+ mov r1, #0x52
+ mov r7, #0
+ lsl r1, r1, #2
+ str r7, [r0, r1]
+ add r1, r1, #4
+ str r2, [sp]
+ str r7, [r0, r1]
+ add r4, r2, #0
+ add r6, r2, #0
+_02239FD0:
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0202011C
+ add r2, r6, #0
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x58
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r7, r7, #1
+ str r0, [r2]
+ add r4, r4, #4
+ add r5, #8
+ add r6, #0xc
+ cmp r7, #0x14
+ blt _02239FD0
+ ldr r0, _0223A018 ; =MOD81_0223A01C
+ ldr r1, [sp]
+ mov r2, #0
+ bl FUN_0200CA44
+ ldr r1, [sp]
+ ldr r1, [r1]
+ str r0, [r1]
+ ldr r0, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0223A014
+ ldr r0, [sp]
+ bl FUN_02016A18
+_0223A014:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A018: .word MOD81_0223A01C
+ thumb_func_end MOD81_02239FB4
+
+ thumb_func_start MOD81_0223A01C
+MOD81_0223A01C: ; 0x0223A01C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r1, #0
+ mov r1, #0x52
+ lsl r1, r1, #2
+ ldr r0, [r6, r1]
+ add r0, r0, #1
+ str r0, [r6, r1]
+ ldr r0, [r6, r1]
+ cmp r0, #0xc
+ ble _0223A050
+ mov r0, #0
+ str r0, [r6, r1]
+ add r0, r1, #4
+ ldr r0, [r6, r0]
+ cmp r0, #0x14
+ bge _0223A050
+ lsl r0, r0, #2
+ mov r2, #1
+ add r0, r6, r0
+ str r2, [r0, #8]
+ add r0, r1, #4
+ ldr r0, [r6, r0]
+ add r2, r0, #1
+ add r0, r1, #4
+ str r2, [r6, r0]
+_0223A050:
+ mov r0, #0
+ add r7, r6, #0
+ str r0, [sp, #4]
+ add r5, r6, #0
+ str r6, [sp]
+ add r4, r0, #0
+ add r7, #0x58
+_0223A05E:
+ mov r1, #0x21
+ ldr r2, [r5, #0x5c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ mov r1, #0x6a
+ add r0, r5, #0
+ lsl r1, r1, #0xe
+ add r0, #0x5c
+ str r2, [r5, #0x5c]
+ cmp r2, r1
+ blt _0223A09E
+ mov r1, #0x71
+ ldr r2, [r0]
+ lsl r1, r1, #0xe
+ sub r1, r2, r1
+ str r1, [r0]
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _0223A09E
+ ldr r0, [r6, #4]
+ mov r1, #1
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ bl FUN_020200A0
+ ldr r0, [r6, #4]
+ mov r1, #1
+ add r0, r0, r4
+ ldr r0, [r0, #0x20]
+ bl FUN_020200A0
+_0223A09E:
+ ldr r0, [r6, #4]
+ add r1, r7, #0
+ add r0, r0, r4
+ ldr r0, [r0, #0x1c]
+ bl FUN_02020044
+ add r2, r5, #0
+ add r2, #0x58
+ add r3, sp, #8
+ ldmia r2!, {r0, r1}
+ mov ip, r3
+ stmia r3!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r3]
+ mov r0, #0xe
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ ldr r0, [r6, #4]
+ mov r1, ip
+ add r0, r0, r4
+ ldr r0, [r0, #0x20]
+ bl FUN_02020044
+ ldr r0, [sp]
+ add r5, #0xc
+ add r0, r0, #4
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r4, #8
+ add r0, r0, #1
+ add r7, #0xc
+ str r0, [sp, #4]
+ cmp r0, #0x14
+ blt _0223A05E
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223A01C
+
+ thumb_func_start MOD81_0223A0EC
+MOD81_0223A0EC: ; 0x0223A0EC
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223A102
+ bl FUN_0201B6C8
+ ldr r0, [r0]
+ mov r1, #0
+ str r1, [r0]
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223A102:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223A0EC
+
+ thumb_func_start MOD81_0223A104
+MOD81_0223A104: ; 0x0223A104
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x17
+ add r6, r0, #0
+ mov r0, #0x3a
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223A170
+ str r6, [r4]
+ add r6, #0xc0
+ mov r0, #0x55
+ ldr r1, [r6]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl FUN_02017B54
+ lsl r1, r0, #0xc
+ mov r0, #0x56
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl FUN_02017B54
+ mov r1, #0x57
+ lsl r0, r0, #0xc
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r2, #0
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ str r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xc
+ str r5, [r4, r0]
+ add r1, #0x10
+ str r2, [r4, r1]
+ ldr r0, _0223A174 ; =MOD81_0223A178
+ add r1, r4, #0
+ bl FUN_0200CA60
+ str r0, [r5]
+ cmp r0, #0
+ bne _0223A170
+ add r0, r4, #0
+ bl FUN_02016A18
+_0223A170:
+ pop {r4, r5, r6, pc}
+ nop
+_0223A174: .word MOD81_0223A178
+ thumb_func_end MOD81_0223A104
+
+ thumb_func_start MOD81_0223A178
+MOD81_0223A178: ; 0x0223A178
+ push {r4, r5, r6, lr}
+ mov r3, #0x59
+ add r4, r1, #0
+ lsl r3, r3, #2
+ mov r0, #2
+ ldr r1, [r4, r3]
+ lsl r0, r0, #0x14
+ cmp r1, r0
+ bge _0223A1FA
+ sub r0, r3, #4
+ ldr r1, [r4, r0]
+ add r0, r3, #0
+ sub r0, #0x44
+ add r1, r1, r0
+ sub r0, r3, #4
+ str r1, [r4, r0]
+ add r5, r3, #0
+ ldr r1, [r4, r3]
+ ldr r0, [r4, r0]
+ sub r5, #0xc
+ add r0, r1, r0
+ str r0, [r4, r3]
+ add r0, r3, #0
+ sub r0, #0x10
+ ldr r5, [r4, r5]
+ ldr r3, [r4, r3]
+ ldr r0, [r4, r0]
+ sub r3, r5, r3
+ mov r1, #2
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r5, #0x55
+ lsl r5, r5, #2
+ add r3, r5, #0
+ ldr r0, [r4, r5]
+ add r3, #8
+ add r5, #0x10
+ ldr r6, [r4, r3]
+ ldr r3, [r4, r5]
+ mov r1, #6
+ sub r3, r6, r3
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ mov r1, #0x59
+ lsl r1, r1, #2
+ mov r0, #2
+ ldr r2, [r4, r1]
+ lsl r0, r0, #0x12
+ cmp r2, r0
+ blt _0223A1FA
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223A1FA
+ add r1, #8
+ ldr r0, [r4]
+ add r1, r4, r1
+ add r2, r4, #4
+ bl MOD81_02239FB4
+_0223A1FA:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD81_0223A178
+
+ thumb_func_start MOD81_0223A1FC
+MOD81_0223A1FC: ; 0x0223A1FC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ beq _0223A226
+ bl FUN_0201B6C8
+ add r4, r0, #0
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r2, #0
+ str r2, [r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD81_0223A0EC
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223A226:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD81_0223A1FC
+
+ thumb_func_start MOD81_0223A228
+MOD81_0223A228: ; 0x0223A228
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r5, r1, #0
+ mov r0, #0x3a
+ mov r1, #0x14
+ add r7, r2, #0
+ add r6, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223A268
+ lsl r0, r5, #0xc
+ str r0, [r4]
+ lsl r1, r7, #0xc
+ str r1, [r4, #8]
+ ldr r0, [r4]
+ sub r0, r1, r0
+ add r1, r6, #0
+ bl _s32_div_f
+ str r0, [r4, #4]
+ ldr r0, [sp]
+ str r6, [r4, #0xc]
+ add r1, r5, #0
+ str r0, [r4, #0x10]
+ bl MOD81_02238B5C
+ ldr r0, _0223A26C ; =MOD81_0223A270
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+_0223A268:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223A26C: .word MOD81_0223A270
+ thumb_func_end MOD81_0223A228
+
+ thumb_func_start MOD81_0223A270
+MOD81_0223A270: ; 0x0223A270
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0
+ ble _0223A292
+ ldr r1, [r4]
+ ldr r0, [r4, #4]
+ add r1, r1, r0
+ str r1, [r4]
+ ldr r0, [r4, #0x10]
+ asr r1, r1, #0xc
+ bl MOD81_02238B5C
+ pop {r3, r4, r5, pc}
+_0223A292:
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0x10]
+ asr r1, r1, #0xc
+ bl MOD81_02238B5C
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223A270
+
+ thumb_func_start MOD81_0223A2AC
+MOD81_0223A2AC: ; 0x0223A2AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0xdc
+ add r0, #0xd8
+ add r1, r4, #0
+ ldr r0, [r0]
+ add r1, #8
+ bl MOD81_02238B08
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, r4, #0
+ ldr r0, [r0]
+ add r1, #0x20
+ bl MOD81_02238B28
+ add r3, r4, #0
+ add r3, #8
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x14
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ str r0, [r4, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r5, #0xdc
+ str r0, [r5]
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #0x28]
+ ldr r1, [r4, #0xc]
+ ldr r0, _0223A37C ; =0xFFFF8000
+ sub r0, r0, r1
+ mov r1, #0x1e
+ bl _s32_div_f
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r2, #1
+ mov r1, #0x1e
+ add r0, #0x80
+ str r1, [r0]
+ mov r1, #0
+ str r1, [r4, #0x38]
+ str r1, [r4, #0x3c]
+ str r1, [r4, #0x40]
+ add r0, r4, #0
+ str r1, [r4, #0x44]
+ add r0, #0x54
+ strh r1, [r0]
+ add r0, r4, #0
+ lsl r2, r2, #0xe
+ add r0, #0x56
+ strh r2, [r0]
+ add r0, r4, #0
+ add r0, #0x5a
+ strh r1, [r0]
+ str r1, [r4, #0x7c]
+ add r2, r4, #0
+ add r0, r1, #0
+_0223A330:
+ add r3, r2, #0
+ add r3, #0x5c
+ strh r0, [r3]
+ add r3, r2, #0
+ add r3, #0x5e
+ strh r0, [r3]
+ add r3, r2, #0
+ add r3, #0x60
+ strh r0, [r3]
+ add r3, r2, #0
+ add r3, #0x62
+ add r1, r1, #1
+ add r2, #8
+ strh r0, [r3]
+ cmp r1, #3
+ blt _0223A330
+ mov r1, #0xd
+ str r0, [r4, #0x78]
+ add r0, r4, #0
+ lsl r1, r1, #8
+ mov r2, #0x1e
+ bl MOD81_0223A384
+ mov r1, #0x29
+ mov r2, #5
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xe
+ mov r3, #0x1e
+ bl MOD81_0223A3C0
+ ldr r0, _0223A380 ; =MOD81_0223A57C
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ pop {r3, r4, r5, pc}
+ nop
+_0223A37C: .word 0xFFFF8000
+_0223A380: .word MOD81_0223A57C
+ thumb_func_end MOD81_0223A2AC
+
+ thumb_func_start MOD81_0223A384
+MOD81_0223A384: ; 0x0223A384
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ beq _0223A3B2
+ mov r0, #0x56
+ ldrsh r0, [r5, r0]
+ add r1, r6, #0
+ sub r0, r4, r0
+ bl _s32_div_f
+ add r1, r5, #0
+ add r1, #0x5a
+ strh r0, [r1]
+ mov r0, #0x56
+ ldrsh r1, [r5, r0]
+ mov r0, #0x5a
+ ldrsh r0, [r5, r0]
+ add r1, r1, r0
+ add r0, r5, #0
+ add r0, #0x56
+ strh r1, [r0]
+ b _0223A3B6
+_0223A3B2:
+ add r0, #0x56
+ strh r4, [r0]
+_0223A3B6:
+ add r0, r5, #0
+ add r0, #0x58
+ strh r4, [r0]
+ str r6, [r5, #0x74]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD81_0223A384
+
+ thumb_func_start MOD81_0223A3C0
+MOD81_0223A3C0: ; 0x0223A3C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ beq _0223A3F8
+ ldr r0, [r5, #0x38]
+ add r1, r7, #0
+ sub r0, r4, r0
+ bl _s32_div_f
+ str r0, [r5, #0x40]
+ ldr r0, [r5, #0x3c]
+ add r1, r7, #0
+ sub r0, r6, r0
+ bl _s32_div_f
+ str r0, [r5, #0x44]
+ ldr r1, [r5, #0x38]
+ ldr r0, [r5, #0x40]
+ add r0, r1, r0
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x3c]
+ ldr r0, [r5, #0x44]
+ add r0, r1, r0
+ str r0, [r5, #0x3c]
+ str r4, [r5, #0x48]
+ str r6, [r5, #0x4c]
+_0223A3F8:
+ str r7, [r5, #0x50]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD81_0223A3C0
+
+ thumb_func_start MOD81_0223A3FC
+MOD81_0223A3FC: ; 0x0223A3FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ beq _0223A422
+ lsl r0, r4, #3
+ str r0, [sp]
+ add r1, r5, r0
+ mov r0, #0x5c
+ ldrsh r0, [r1, r0]
+ add r1, r7, #0
+ sub r0, r6, r0
+ bl _s32_div_f
+ ldr r1, [sp]
+ add r1, r5, r1
+ add r1, #0x5e
+ strh r0, [r1]
+_0223A422:
+ lsl r1, r4, #3
+ add r0, r5, r1
+ add r0, #0x60
+ strh r6, [r0]
+ add r0, r5, r1
+ add r0, #0x62
+ strh r7, [r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223A3FC
+
+ thumb_func_start MOD81_0223A434
+MOD81_0223A434: ; 0x0223A434
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x74]
+ cmp r0, #0
+ beq _0223A460
+ sub r0, r0, #1
+ str r0, [r5, #0x74]
+ beq _0223A456
+ mov r0, #0x56
+ ldrsh r1, [r5, r0]
+ mov r0, #0x5a
+ ldrsh r0, [r5, r0]
+ add r1, r1, r0
+ add r0, r5, #0
+ add r0, #0x56
+ strh r1, [r0]
+ b _0223A460
+_0223A456:
+ mov r0, #0x58
+ ldrsh r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x56
+ strh r1, [r0]
+_0223A460:
+ mov r0, #0x54
+ ldrsh r1, [r5, r0]
+ mov r0, #0x56
+ ldrsh r0, [r5, r0]
+ add r1, r1, r0
+ add r0, r5, #0
+ add r0, #0x54
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0x54
+ ldrh r0, [r0]
+ mov r1, #0xb6
+ bl _s32_div_f
+ add r4, r0, #0
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ cmp r4, r0
+ blt _0223A488
+ sub r4, r4, r0
+_0223A488:
+ ldr r0, [r5, #0x50]
+ cmp r0, #0
+ beq _0223A4AE
+ ldr r1, [r5, #0x38]
+ ldr r0, [r5, #0x40]
+ add r0, r1, r0
+ str r0, [r5, #0x38]
+ ldr r1, [r5, #0x3c]
+ ldr r0, [r5, #0x44]
+ add r0, r1, r0
+ str r0, [r5, #0x3c]
+ ldr r0, [r5, #0x50]
+ sub r0, r0, #1
+ str r0, [r5, #0x50]
+ bne _0223A4AE
+ ldr r0, [r5, #0x48]
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #0x4c]
+ str r0, [r5, #0x3c]
+_0223A4AE:
+ add r0, r4, #0
+ add r0, #0x5a
+ lsl r1, r0, #2
+ ldr r0, _0223A578 ; =0x020EDF50
+ ldr r2, [r5, #0x38]
+ ldr r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r3, #2
+ mov r6, #0
+ lsl r3, r3, #0xa
+ add r3, r0, r3
+ adc r1, r6
+ lsl r0, r1, #0x14
+ lsr r1, r3, #0xc
+ ldr r2, [r5, #8]
+ orr r1, r0
+ add r0, r2, r1
+ str r0, [r5, #0x14]
+ ldr r2, [r5, #0x3c]
+ ldr r0, _0223A578 ; =0x020EDF50
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r4, #2
+ add r3, r6, #0
+ lsl r4, r4, #0xa
+ add r4, r0, r4
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r4, #0xc
+ ldr r2, [r5, #0x10]
+ orr r1, r0
+ add r0, r2, r1
+ str r0, [r5, #0x1c]
+ mov r0, #0x22
+ ldrsh r1, [r5, r0]
+ mov r0, #0x56
+ ldrsh r0, [r5, r0]
+ mov r2, #0x5e
+ mov r6, #0x60
+ add r0, r1, r0
+ strh r0, [r5, #0x22]
+ add r0, r5, #0
+ mov r1, #0x5c
+_0223A512:
+ add r4, r0, #0
+ add r4, #0x62
+ ldrh r4, [r4]
+ cmp r4, #0
+ beq _0223A54A
+ add r4, r0, #0
+ add r4, #0x62
+ ldrh r4, [r4]
+ sub r7, r4, #1
+ add r4, r0, #0
+ add r4, #0x62
+ strh r7, [r4]
+ add r4, r0, #0
+ add r4, #0x62
+ ldrh r4, [r4]
+ cmp r4, #0
+ bne _0223A53E
+ ldrsh r7, [r0, r6]
+ add r4, r0, #0
+ add r4, #0x5c
+ strh r7, [r4]
+ b _0223A54A
+_0223A53E:
+ ldrsh r7, [r0, r1]
+ ldrsh r4, [r0, r2]
+ add r7, r7, r4
+ add r4, r0, #0
+ add r4, #0x5c
+ strh r7, [r4]
+_0223A54A:
+ add r3, r3, #1
+ add r0, #8
+ cmp r3, #3
+ blt _0223A512
+ mov r0, #0x20
+ ldrsh r1, [r5, r0]
+ mov r0, #0x5c
+ ldrsh r0, [r5, r0]
+ add r0, r1, r0
+ strh r0, [r5, #0x20]
+ mov r0, #0x22
+ ldrsh r1, [r5, r0]
+ mov r0, #0x64
+ ldrsh r0, [r5, r0]
+ add r0, r1, r0
+ strh r0, [r5, #0x22]
+ mov r0, #0x24
+ ldrsh r1, [r5, r0]
+ mov r0, #0x6c
+ ldrsh r0, [r5, r0]
+ add r0, r1, r0
+ strh r0, [r5, #0x24]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223A578: .word 0x020EDF50
+ thumb_func_end MOD81_0223A434
+
+ thumb_func_start MOD81_0223A57C
+MOD81_0223A57C: ; 0x0223A57C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223A5DC
+ ldr r1, [r4, #0x28]
+ ldr r0, [r4, #0x2c]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #0
+ bgt _0223A5DC
+ mov r1, #2
+ lsl r1, r1, #8
+ str r1, [r4, #0x30]
+ mov r0, #0
+ lsl r1, r1, #5
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ add r2, r1, #0
+ mov r3, #0x3c
+ bl MOD81_0223A3C0
+ ldr r2, _0223A5F8 ; =0xFFFFF800
+ add r0, r4, #0
+ mov r1, #0
+ mov r3, #0x1e
+ bl MOD81_0223A3FC
+ mov r0, #1
+ str r0, [r4, #0x7c]
+ ldr r1, _0223A5FC ; =MOD81_0223A600
+ add r0, r5, #0
+ bl FUN_0201B6C4
+_0223A5DC:
+ add r0, r4, #0
+ bl MOD81_0223A434
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x14
+ bl MOD81_02238B18
+ ldr r0, [r4]
+ add r4, #0x20
+ add r1, r4, #0
+ bl MOD81_02238B40
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223A5F8: .word 0xFFFFF800
+_0223A5FC: .word MOD81_0223A600
+ thumb_func_end MOD81_0223A57C
+
+ thumb_func_start MOD81_0223A600
+MOD81_0223A600: ; 0x0223A600
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x78]
+ cmp r0, #0
+ bne _0223A64A
+ ldr r1, [r4, #0x2c]
+ ldr r0, [r4, #0x30]
+ add r1, r1, r0
+ str r1, [r4, #0x2c]
+ ldr r0, [r4, #0x28]
+ add r0, r0, r1
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD81_0223A434
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x14
+ bl MOD81_02238B18
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x20
+ bl MOD81_02238B40
+ ldr r0, [r4]
+ bl MOD81_02238B8C
+ cmp r0, #0
+ bne _0223A64A
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD81_02238B58
+ mov r0, #1
+ str r0, [r4, #0x78]
+_0223A64A:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223A600
+
+ thumb_func_start MOD81_0223A64C
+MOD81_0223A64C: ; 0x0223A64C
+ push {r3, lr}
+ bl FUN_0201B6C8
+ ldr r0, [r0, #0x78]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223A64C
+
+ thumb_func_start MOD81_0223A658
+MOD81_0223A658: ; 0x0223A658
+ push {r3, lr}
+ bl FUN_0201B6C8
+ ldr r0, [r0, #0x7c]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223A658
+
+ thumb_func_start MOD81_0223A664
+MOD81_0223A664: ; 0x0223A664
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl FUN_0201B6C8
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x78]
+ add r0, sp, #0
+ strh r1, [r0, #4]
+ ldrh r1, [r0, #4]
+ strh r1, [r0, #2]
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl MOD81_02238C80
+ ldr r0, [r4, #4]
+ add r1, sp, #0
+ bl MOD81_02238C60
+ ldr r1, _0223A6EC ; =0x000058CC
+ mov r0, #2
+ lsl r0, r0, #0x12
+ str r1, [r4, #0x2c]
+ sub r0, r1, r0
+ str r0, [r4, #0x28]
+ add r0, r4, #0
+ mov r1, #0
+ mov r3, #0x14
+ add r0, #0x80
+ str r3, [r0]
+ ldr r0, [r4, #0x28]
+ add r2, r1, #0
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD81_0223A3C0
+ mov r2, #0x56
+ ldrsh r2, [r4, r2]
+ add r0, r4, #0
+ mov r1, #1
+ neg r2, r2
+ mov r3, #0x1e
+ bl MOD81_0223A3FC
+ mov r1, #2
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xfe
+ mov r3, #0x32
+ bl MOD81_0223A3FC
+ mov r1, #2
+ ldr r0, [r4]
+ lsl r1, r1, #0xc
+ bl MOD81_02238B84
+ ldr r0, [r4]
+ mov r1, #1
+ bl MOD81_02238B58
+ ldr r1, _0223A6F0 ; =MOD81_0223A6F4
+ add r0, r5, #0
+ bl FUN_0201B6C4
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223A6EC: .word 0x000058CC
+_0223A6F0: .word MOD81_0223A6F4
+ thumb_func_end MOD81_0223A664
+
+ thumb_func_start MOD81_0223A6F4
+MOD81_0223A6F4: ; 0x0223A6F4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD81_0223A434
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223A734
+ ldr r1, [r4, #0x28]
+ ldr r0, [r4, #0x2c]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0223A734
+ ldr r1, _0223A74C ; =MOD81_0223A750
+ add r0, r5, #0
+ bl FUN_0201B6C4
+_0223A734:
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x14
+ bl MOD81_02238B18
+ ldr r0, [r4]
+ add r4, #0x20
+ add r1, r4, #0
+ bl MOD81_02238B40
+ pop {r3, r4, r5, pc}
+ nop
+_0223A74C: .word MOD81_0223A750
+ thumb_func_end MOD81_0223A6F4
+
+ thumb_func_start MOD81_0223A750
+MOD81_0223A750: ; 0x0223A750
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD81_0223A434
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #0x6e
+ ble _0223A792
+ ldr r1, [r4, #0x28]
+ ldr r0, _0223A7A8 ; =0xFFFC5800
+ sub r0, r0, r1
+ mov r1, #0x35
+ bl _s32_div_f
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #0x35
+ add r0, #0x80
+ str r1, [r0]
+ ldr r1, _0223A7AC ; =MOD81_0223A7B0
+ add r0, r5, #0
+ bl FUN_0201B6C4
+_0223A792:
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x14
+ bl MOD81_02238B18
+ ldr r0, [r4]
+ add r4, #0x20
+ add r1, r4, #0
+ bl MOD81_02238B40
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223A7A8: .word 0xFFFC5800
+_0223A7AC: .word MOD81_0223A7B0
+ thumb_func_end MOD81_0223A750
+
+ thumb_func_start MOD81_0223A7B0
+MOD81_0223A7B0: ; 0x0223A7B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD81_0223A434
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223A7F0
+ ldr r1, [r4, #0x28]
+ ldr r0, [r4, #0x2c]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0223A7F0
+ ldr r1, _0223A808 ; =MOD81_0223A80C
+ add r0, r5, #0
+ bl FUN_0201B6C4
+_0223A7F0:
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x14
+ bl MOD81_02238B18
+ ldr r0, [r4]
+ add r4, #0x20
+ add r1, r4, #0
+ bl MOD81_02238B40
+ pop {r3, r4, r5, pc}
+ nop
+_0223A808: .word MOD81_0223A80C
+ thumb_func_end MOD81_0223A7B0
+
+ thumb_func_start MOD81_0223A80C
+MOD81_0223A80C: ; 0x0223A80C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD81_0223A434
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ ble _0223A83E
+ mov r0, #2
+ lsl r0, r0, #0x10
+ str r0, [r4, #0x2c]
+ ldr r1, _0223A854 ; =MOD81_0223A858
+ add r0, r5, #0
+ bl FUN_0201B6C4
+_0223A83E:
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x14
+ bl MOD81_02238B18
+ ldr r0, [r4]
+ add r4, #0x20
+ add r1, r4, #0
+ bl MOD81_02238B40
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223A854: .word MOD81_0223A858
+ thumb_func_end MOD81_0223A80C
+
+ thumb_func_start MOD81_0223A858
+MOD81_0223A858: ; 0x0223A858
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x78]
+ cmp r0, #0
+ bne _0223A894
+ add r0, r4, #0
+ bl MOD81_0223A434
+ ldr r1, [r4, #0x28]
+ ldr r0, [r4, #0x2c]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x18]
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x14
+ bl MOD81_02238B18
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0x20
+ bl MOD81_02238B40
+ ldr r0, [r4]
+ bl MOD81_02238B8C
+ cmp r0, #0
+ bne _0223A894
+ mov r0, #1
+ str r0, [r4, #0x78]
+_0223A894:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223A858
+
+ thumb_func_start MOD81_0223A898
+MOD81_0223A898: ; 0x0223A898
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x3a
+ mov r1, #0xa4
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223A8C2
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD81_0223880C
+ str r0, [r4, #0x24]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD81_0223AD80
+_0223A8C2:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223A898
+
+ thumb_func_start MOD81_0223A8C8
+MOD81_0223A8C8: ; 0x0223A8C8
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223A8F6
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD81_0223ABC0
+ add r0, r4, #0
+ bl MOD81_0223ACD8
+ add r0, r4, #0
+ bl MOD81_0223AD68
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD81_0223AD88
+ add r0, r4, #0
+ bl FUN_02016A18
+_0223A8F6:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223A8C8
+
+ thumb_func_start MOD81_0223A8F8
+MOD81_0223A8F8: ; 0x0223A8F8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4]
+ add r5, r0, #0
+ cmp r2, #2
+ bhs _0223A926
+ lsl r3, r2, #2
+ ldr r2, _0223A92C ; =0x0223D114
+ add r1, r5, #4
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _0223A91C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5, #4]
+_0223A91C:
+ add r0, r5, #0
+ bl MOD81_0223A930
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223A926:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_0223A92C: .word 0x0223D114
+ thumb_func_end MOD81_0223A8F8
+
+ thumb_func_start MOD81_0223A930
+MOD81_0223A930: ; 0x0223A930
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _0223A94C
+ bl G3X_ResetMtxStack
+ ldr r0, [r4, #0x28]
+ bl MOD81_02238940
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020222B4
+_0223A94C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223A930
+
+ thumb_func_start MOD81_0223A950
+MOD81_0223A950: ; 0x0223A950
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD81_0223AA68
+ add r0, r4, #0
+ bl MOD81_0223ABD8
+ add r0, r4, #0
+ bl MOD81_0223ACE8
+ mov r2, #0
+ ldr r0, _0223A990 ; =MOD81_0223B090
+ add r1, r4, #0
+ str r2, [r4, #0xc]
+ bl FUN_0200CA98
+ mov r0, #3
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ ldr r3, _0223A994 ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0223A990: .word MOD81_0223B090
+_0223A994: .word 0x00007FFF
+ thumb_func_end MOD81_0223A950
+
+ thumb_func_start MOD81_0223A998
+MOD81_0223A998: ; 0x0223A998
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #4
+ bhi _0223AA54
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223A9B2: ; jump table
+ .short _0223A9BC - _0223A9B2 - 2 ; case 0
+ .short _0223A9C8 - _0223A9B2 - 2 ; case 1
+ .short _0223A9F2 - _0223A9B2 - 2 ; case 2
+ .short _0223AA1C - _0223A9B2 - 2 ; case 3
+ .short _0223AA46 - _0223A9B2 - 2 ; case 4
+_0223A9BC:
+ mov r0, #0
+ str r0, [r5, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223AA54
+_0223A9C8:
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+ cmp r0, #0xa
+ ble _0223AA54
+ ldr r0, _0223AA5C ; =0x000006AC
+ bl FUN_020054C8
+ add r1, r5, #0
+ add r0, r5, #0
+ add r1, #0x34
+ bl MOD81_0223AD9C
+ ldr r0, [r5, #0x2c]
+ mov r1, #1
+ bl MOD81_02238B58
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223AA54
+_0223A9F2:
+ add r0, r5, #0
+ add r0, #0x34
+ bl MOD81_0223AE48
+ cmp r0, #0
+ beq _0223AA54
+ ldr r0, _0223AA60 ; =0x000006AD
+ bl FUN_020054C8
+ ldr r0, [r5, #0x20]
+ mov r1, #3
+ bl FUN_02020130
+ ldr r0, [r5, #0x20]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223AA54
+_0223AA1C:
+ ldr r0, [r5, #0x20]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _0223AA54
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0
+ ldr r3, _0223AA64 ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223AA54
+_0223AA46:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223AA54
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_0223AA54:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223AA5C: .word 0x000006AC
+_0223AA60: .word 0x000006AD
+_0223AA64: .word 0x00007FFF
+ thumb_func_end MOD81_0223A998
+
+ thumb_func_start MOD81_0223AA68
+MOD81_0223AA68: ; 0x0223AA68
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, _0223ABAC ; =0x0223D158
+ bl FUN_0201E66C
+ ldr r2, _0223ABB0 ; =0x04000304
+ ldr r0, _0223ABB4 ; =0xFFFF7FFF
+ ldrh r1, [r2]
+ and r0, r1
+ strh r0, [r2]
+ ldr r0, _0223ABB8 ; =0x0223D11C
+ bl FUN_02016BBC
+ ldr r0, [r4, #0x24]
+ ldr r2, _0223ABBC ; =0x0223D13C
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x24]
+ ldr r2, _0223ABBC ; =0x0223D13C
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4]
+ bl MOD81_02238828
+ cmp r0, #3
+ bhi _0223AABA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223AAB2: ; jump table
+ .short _0223AABA - _0223AAB2 - 2 ; case 0
+ .short _0223AAC6 - _0223AAB2 - 2 ; case 1
+ .short _0223AAD2 - _0223AAB2 - 2 ; case 2
+ .short _0223AADE - _0223AAB2 - 2 ; case 3
+_0223AABA:
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ mov r7, #0x10
+ mov r6, #0x11
+ mov r5, #0
+ b _0223AAE8
+_0223AAC6:
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ mov r7, #0x10
+ mov r6, #0x11
+ mov r5, #0x20
+ b _0223AAE8
+_0223AAD2:
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ mov r7, #0x10
+ mov r6, #0x11
+ mov r5, #0x40
+ b _0223AAE8
+_0223AADE:
+ mov r0, #0x18
+ str r0, [sp, #0x10]
+ mov r7, #0x19
+ mov r6, #0x1a
+ mov r5, #0
+_0223AAE8:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x24]
+ mov r0, #0x5d
+ add r1, r7, #0
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x24]
+ mov r0, #0x5d
+ add r1, r7, #0
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r4, #0x24]
+ mov r0, #0x5d
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r4, #0x24]
+ mov r0, #0x5d
+ mov r3, #7
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ add r1, r6, #0
+ add r3, r5, #0
+ bl FUN_02006948
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ add r1, r6, #0
+ mov r2, #4
+ add r3, r5, #0
+ bl FUN_02006948
+ mov r1, #3
+ add r3, r1, #0
+ ldr r0, [r4, #0x24]
+ add r2, r1, #0
+ add r3, #0xfd
+ bl FUN_020179E0
+ ldr r0, [r4, #0x24]
+ mov r1, #7
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223ABAC: .word 0x0223D158
+_0223ABB0: .word 0x04000304
+_0223ABB4: .word 0xFFFF7FFF
+_0223ABB8: .word 0x0223D11C
+_0223ABBC: .word 0x0223D13C
+ thumb_func_end MOD81_0223AA68
+
+ thumb_func_start MOD81_0223ABC0
+MOD81_0223ABC0: ; 0x0223ABC0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x24]
+ mov r1, #7
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223ABC0
+
+ thumb_func_start MOD81_0223ABD8
+MOD81_0223ABD8: ; 0x0223ABD8
+ push {r3, r4, lr}
+ sub sp, #0x24
+ add r4, r0, #0
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _0223ACAC ; =0x04000060
+ ldr r1, _0223ACB0 ; =0xFFFFCFFD
+ ldrh r2, [r0]
+ and r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ add r2, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0223ACB4 ; =0x0000CFFB
+ and r2, r3
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #8
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x20
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, _0223ACB8 ; =0x0223D12C
+ bl G3X_SetEdgeColorTable
+ mov r1, #0
+ ldr r0, _0223ACBC ; =0x000043FF
+ ldr r2, _0223ACC0 ; =0x00007FFF
+ mov r3, #0x3f
+ str r1, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0223ACC4 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _0223ACC8 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020AEB70
+ mov r0, #1
+ lsl r0, r0, #0xe
+ mov r1, #1
+ bl FUN_020AEDF4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r1, _0223ACCC ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ strh r2, [r1]
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD81_022388C0
+ str r0, [r4, #0x28]
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ mov r2, #0x5d
+ mov r3, #0x1b
+ bl MOD81_02238A84
+ ldr r1, _0223ACD0 ; =0x000018E3
+ str r0, [r4, #0x2c]
+ add r0, sp, #0x10
+ strh r1, [r0]
+ mov r1, #0
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0x10
+ bl MOD81_02238C60
+ ldr r0, [r4, #0x28]
+ ldr r1, _0223ACD4 ; =0x000007D2
+ bl MOD81_02238C90
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0x18
+ bl MOD81_02238C40
+ add sp, #0x24
+ pop {r3, r4, pc}
+ nop
+_0223ACAC: .word 0x04000060
+_0223ACB0: .word 0xFFFFCFFD
+_0223ACB4: .word 0x0000CFFB
+_0223ACB8: .word 0x0223D12C
+_0223ACBC: .word 0x000043FF
+_0223ACC0: .word 0x00007FFF
+_0223ACC4: .word 0x04000540
+_0223ACC8: .word 0xBFFF0000
+_0223ACCC: .word 0x04000008
+_0223ACD0: .word 0x000018E3
+_0223ACD4: .word 0x000007D2
+ thumb_func_end MOD81_0223ABD8
+
+ thumb_func_start MOD81_0223ACD8
+MOD81_0223ACD8: ; 0x0223ACD8
+ push {r3, lr}
+ ldr r0, [r0, #0x28]
+ cmp r0, #0
+ beq _0223ACE4
+ bl MOD81_0223890C
+_0223ACE4:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223ACD8
+
+ thumb_func_start MOD81_0223ACE8
+MOD81_0223ACE8: ; 0x0223ACE8
+ push {r4, lr}
+ sub sp, #0x70
+ add r4, r0, #0
+ add r0, #0x10
+ mov r1, #0x5d
+ mov r2, #7
+ mov r3, #8
+ bl MOD81_0223874C
+ add r0, sp, #0x5c
+ bl FUN_020B19DC
+ add r0, sp, #0x38
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ add r0, sp, #0x38
+ str r0, [sp, #0x10]
+ mov r0, #0x5d
+ mov r1, #9
+ bl FUN_02006AE4
+ mov r0, #0x3a
+ str r0, [sp]
+ add r0, sp, #0x5c
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0xa
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #0
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, sp, #0x14
+ add r1, #0x10
+ add r2, sp, #0x38
+ add r3, sp, #0x5c
+ bl MOD81_022387A8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ mov r2, #0x80
+ mov r3, #0x60
+ bl MOD81_022387C8
+ mov r1, #0
+ str r0, [r4, #0x20]
+ bl FUN_020200A0
+ add sp, #0x70
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223ACE8
+
+ thumb_func_start MOD81_0223AD68
+MOD81_0223AD68: ; 0x0223AD68
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0223AD76
+ bl FUN_0201FFC8
+_0223AD76:
+ add r4, #0x10
+ add r0, r4, #0
+ bl MOD81_02238784
+ pop {r4, pc}
+ thumb_func_end MOD81_0223AD68
+
+ thumb_func_start MOD81_0223AD80
+MOD81_0223AD80: ; 0x0223AD80
+ mov r1, #0
+ str r1, [r0, #4]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_0223AD80
+
+ thumb_func_start MOD81_0223AD88
+MOD81_0223AD88: ; 0x0223AD88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0223AD9A
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+_0223AD9A:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223AD88
+
+ thumb_func_start MOD81_0223AD9C
+MOD81_0223AD9C: ; 0x0223AD9C
+ push {r4, lr}
+ add r4, r1, #0
+ str r0, [r4]
+ ldr r1, [r0, #0x2c]
+ ldr r2, _0223AE2C ; =0xFFFFD870
+ str r1, [r4, #0xc]
+ ldr r0, [r0, #0x28]
+ ldr r1, _0223AE30 ; =0xFFF50E00
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ str r1, [r4, #0x14]
+ mov r1, #0xe2
+ lsl r1, r1, #0xc
+ str r1, [r4, #0x18]
+ add r1, r4, #0
+ add r1, #0x6c
+ strh r2, [r1]
+ add r1, r4, #0
+ ldr r2, _0223AE34 ; =0xFFFFF550
+ add r1, #0x6e
+ strh r2, [r1]
+ ldr r1, _0223AE38 ; =0x000134C4
+ str r1, [r4, #0x3c]
+ ldr r1, _0223AE3C ; =0xFFFF4D56
+ str r1, [r4, #0x40]
+ str r0, [r4, #0x60]
+ str r0, [r4, #0x64]
+ mov r1, #2
+ str r0, [r4, #0x68]
+ lsl r1, r1, #0xc
+ strh r1, [r4, #0x34]
+ ldr r1, _0223AE40 ; =0xFFFFE000
+ strh r1, [r4, #0x36]
+ strh r0, [r4, #0x38]
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x34
+ bl MOD81_02238B40
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x54]
+ mov r0, #0x4a
+ lsl r0, r0, #0xa
+ str r0, [r4, #0x44]
+ mov r0, #0x63
+ lsl r0, r0, #0xa
+ str r0, [r4, #0x48]
+ mov r0, #0
+ str r0, [r4, #0x5c]
+ add r0, r4, #0
+ bl MOD81_0223AE90
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x28
+ bl MOD81_02238B18
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x34
+ bl MOD81_02238B28
+ ldr r0, _0223AE44 ; =MOD81_0223AF5C
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ pop {r4, pc}
+ nop
+_0223AE2C: .word 0xFFFFD870
+_0223AE30: .word 0xFFF50E00
+_0223AE34: .word 0xFFFFF550
+_0223AE38: .word 0x000134C4
+_0223AE3C: .word 0xFFFF4D56
+_0223AE40: .word 0xFFFFE000
+_0223AE44: .word MOD81_0223AF5C
+ thumb_func_end MOD81_0223AD9C
+
+ thumb_func_start MOD81_0223AE48
+MOD81_0223AE48: ; 0x0223AE48
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ bne _0223AE52
+ mov r0, #1
+ bx lr
+_0223AE52:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_0223AE48
+
+ thumb_func_start MOD81_0223AE58
+MOD81_0223AE58: ; 0x0223AE58
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [sp, #0x18]
+ add r5, r0, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r4, #0
+ beq _0223AE8E
+ ldr r0, [r5, #0x44]
+ sub r0, r1, r0
+ add r1, r4, #0
+ bl _s32_div_f
+ str r0, [r5, #0x4c]
+ ldr r0, [r5, #0x48]
+ add r1, r4, #0
+ sub r0, r6, r0
+ bl _s32_div_f
+ str r0, [r5, #0x50]
+ ldr r0, [r5, #0x54]
+ add r1, r4, #0
+ sub r0, r7, r0
+ bl _s32_div_f
+ str r0, [r5, #0x58]
+ ldr r0, [sp, #0x18]
+ str r0, [r5, #0x5c]
+_0223AE8E:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD81_0223AE58
+
+ thumb_func_start MOD81_0223AE90
+MOD81_0223AE90: ; 0x0223AE90
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0x6c
+ ldrh r0, [r0]
+ mov r1, #0xb6
+ bl _s32_div_f
+ add r4, r0, #0
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ cmp r4, r0
+ blt _0223AEAA
+ sub r4, r4, r0
+_0223AEAA:
+ mov r0, #0x6c
+ ldrsh r1, [r5, r0]
+ mov r0, #0x6e
+ ldrsh r0, [r5, r0]
+ add r1, r1, r0
+ add r0, r5, #0
+ add r0, #0x6c
+ strh r1, [r0]
+ ldr r0, [r5, #0x5c]
+ cmp r0, #0
+ beq _0223AEE4
+ ldr r1, [r5, #0x44]
+ ldr r0, [r5, #0x4c]
+ add r0, r1, r0
+ str r0, [r5, #0x44]
+ ldr r1, [r5, #0x48]
+ ldr r0, [r5, #0x50]
+ add r0, r1, r0
+ str r0, [r5, #0x48]
+ ldr r1, [r5, #0x54]
+ ldr r0, [r5, #0x58]
+ add r1, r1, r0
+ str r1, [r5, #0x54]
+ ldr r0, [r5, #0xc]
+ bl MOD81_02238B84
+ ldr r0, [r5, #0x5c]
+ sub r0, r0, #1
+ str r0, [r5, #0x5c]
+_0223AEE4:
+ add r0, r4, #0
+ add r0, #0x5a
+ lsl r1, r0, #2
+ ldr r0, _0223AF58 ; =0x020EDF50
+ ldr r2, [r5, #0x44]
+ ldr r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [r5, #0x1c]
+ ldr r2, [r5, #0x48]
+ ldr r0, _0223AF58 ; =0x020EDF50
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [r5, #0x20]
+ add r1, r5, #0
+ str r3, [r5, #0x24]
+ mov r0, #0x34
+ ldrsh r2, [r5, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ add r0, r2, r0
+ strh r0, [r5, #0x34]
+ ldr r0, [r5, #0xc]
+ add r1, #0x34
+ bl MOD81_02238B40
+ add r0, r5, #0
+ add r1, r5, #0
+ add r5, #0x28
+ add r0, #0x1c
+ add r1, #0x10
+ add r2, r5, #0
+ bl VEC_Add
+ pop {r3, r4, r5, pc}
+ nop
+_0223AF58: .word 0x020EDF50
+ thumb_func_end MOD81_0223AE90
+
+ thumb_func_start MOD81_0223AF5C
+MOD81_0223AF5C: ; 0x0223AF5C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r1, [r4, #0x68]
+ cmp r1, #0x3c
+ bge _0223AF6C
+ add r1, r1, #1
+ str r1, [r4, #0x68]
+_0223AF6C:
+ ldr r1, [r4, #0x60]
+ cmp r1, #4
+ bls _0223AF74
+ b _0223B084
+_0223AF74:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223AF80: ; jump table
+ .short _0223AF8A - _0223AF80 - 2 ; case 0
+ .short _0223AFBE - _0223AF80 - 2 ; case 1
+ .short _0223AFFC - _0223AF80 - 2 ; case 2
+ .short _0223B042 - _0223AF80 - 2 ; case 3
+ .short _0223B072 - _0223AF80 - 2 ; case 4
+_0223AF8A:
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0x3c]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD81_0223AE90
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x28
+ bl MOD81_02238B18
+ ldr r0, [r4, #0xc]
+ bl MOD81_02238B8C
+ cmp r0, #0
+ beq _0223B084
+ ldr r0, [r4, #0x60]
+ add sp, #4
+ add r0, r0, #1
+ str r0, [r4, #0x60]
+ pop {r3, r4, pc}
+_0223AFBE:
+ ldr r0, [r4, #0xc]
+ bl MOD81_02238B8C
+ cmp r0, #0
+ bne _0223AFD8
+ ldr r0, [r4]
+ bl MOD81_0223B088
+ ldr r0, [r4, #0x60]
+ add sp, #4
+ add r0, r0, #1
+ str r0, [r4, #0x60]
+ pop {r3, r4, pc}
+_0223AFD8:
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0x3c]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD81_0223AE90
+ ldr r0, [r4, #0xc]
+ add r4, #0x28
+ add r1, r4, #0
+ bl MOD81_02238B18
+ add sp, #4
+ pop {r3, r4, pc}
+_0223AFFC:
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0x3c]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD81_0223AE90
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x28
+ bl MOD81_02238B18
+ ldr r0, [r4, #0x68]
+ cmp r0, #0x3c
+ blt _0223B084
+ mov r1, #2
+ lsl r1, r1, #0xa
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ add r2, r1, #0
+ lsr r3, r1, #2
+ bl MOD81_0223AE58
+ mov r0, #0
+ str r0, [r4, #0x64]
+ ldr r0, [r4, #0x60]
+ add sp, #4
+ add r0, r0, #1
+ str r0, [r4, #0x60]
+ pop {r3, r4, pc}
+_0223B042:
+ add r0, r4, #0
+ bl MOD81_0223AE90
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x28
+ bl MOD81_02238B18
+ ldr r0, [r4, #0x64]
+ add r0, r0, #1
+ str r0, [r4, #0x64]
+ cmp r0, #0xc
+ blt _0223B084
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD81_02238B58
+ mov r0, #0
+ str r0, [r4, #0x64]
+ ldr r0, [r4, #0x60]
+ add sp, #4
+ add r0, r0, #1
+ str r0, [r4, #0x60]
+ pop {r3, r4, pc}
+_0223B072:
+ ldr r1, [r4, #0x64]
+ add r1, r1, #1
+ str r1, [r4, #0x64]
+ cmp r1, #8
+ ble _0223B084
+ mov r1, #0
+ str r1, [r4, #4]
+ bl FUN_0200CAB4
+_0223B084:
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD81_0223AF5C
+
+ thumb_func_start MOD81_0223B088
+MOD81_0223B088: ; 0x0223B088
+ mov r1, #1
+ str r1, [r0, #0xc]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_0223B088
+
+ thumb_func_start MOD81_0223B090
+MOD81_0223B090: ; 0x0223B090
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0223B0DC
+ mov r3, #0
+ ldr r1, _0223B0E0 ; =0x00001150
+ str r3, [r4, #0xc]
+ add r0, sp, #0
+ strh r1, [r0]
+ strh r3, [r0, #2]
+ strh r3, [r0, #4]
+ mov r1, #3
+ ldr r0, [r4, #0x24]
+ add r2, r1, #0
+ bl FUN_020179E0
+ mov r2, #3
+ add r3, r2, #0
+ ldr r0, [r4, #0x24]
+ mov r1, #7
+ add r3, #0xfd
+ bl FUN_020179E0
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl MOD81_02238C70
+ ldr r2, _0223B0E4 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0223B0DC:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223B0E0: .word 0x00001150
+_0223B0E4: .word 0x04000304
+ thumb_func_end MOD81_0223B090
+
+ thumb_func_start MOD81_0223B0E8
+MOD81_0223B0E8: ; 0x0223B0E8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x3a
+ mov r1, #0x24
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223B106
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD81_0223880C
+ str r0, [r4, #0xc]
+_0223B106:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223B0E8
+
+ thumb_func_start MOD81_0223B10C
+MOD81_0223B10C: ; 0x0223B10C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223B11C
+ bl MOD81_0223B478
+ add r0, r4, #0
+ bl FUN_02016A18
+_0223B11C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223B10C
+
+ thumb_func_start MOD81_0223B120
+MOD81_0223B120: ; 0x0223B120
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4]
+ add r5, r0, #0
+ cmp r2, #2
+ bhs _0223B148
+ lsl r3, r2, #2
+ ldr r2, _0223B14C ; =0x0223D180
+ add r1, r5, #4
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _0223B144
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5, #4]
+_0223B144:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223B148:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223B14C: .word 0x0223D180
+ thumb_func_end MOD81_0223B120
+
+ thumb_func_start MOD81_0223B150
+MOD81_0223B150: ; 0x0223B150
+ push {lr}
+ sub sp, #0xc
+ bl MOD81_0223B264
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ ldr r3, _0223B174 ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+_0223B174: .word 0x00007FFF
+ thumb_func_end MOD81_0223B150
+
+ thumb_func_start MOD81_0223B178
+MOD81_0223B178: ; 0x0223B178
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0223B190
+ cmp r0, #1
+ beq _0223B1C2
+ cmp r0, #2
+ beq _0223B1EE
+ b _0223B1FC
+_0223B190:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223B1FC
+ ldr r0, _0223B204 ; =0xFFE80000
+ mov r2, #0
+ str r0, [r5, #0x10]
+ mov r0, #5
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x14]
+ ldr r0, _0223B208 ; =0x00005999
+ add r1, r5, #0
+ str r0, [r5, #0x18]
+ ldr r0, _0223B20C ; =0xFFFFDDDE
+ str r0, [r5, #0x1c]
+ mov r0, #0x3c
+ str r0, [r5, #8]
+ ldr r0, _0223B210 ; =MOD81_0223B21C
+ str r2, [r5, #0x20]
+ bl FUN_0200CA60
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223B1FC
+_0223B1C2:
+ ldr r0, [r5, #0x20]
+ cmp r0, #0
+ beq _0223B1FC
+ ldr r0, _0223B214 ; =0x000006A9
+ bl FUN_020054C8
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0
+ ldr r3, _0223B218 ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223B1FC
+_0223B1EE:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223B1FC
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_0223B1FC:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0223B204: .word 0xFFE80000
+_0223B208: .word 0x00005999
+_0223B20C: .word 0xFFFFDDDE
+_0223B210: .word MOD81_0223B21C
+_0223B214: .word 0x000006A9
+_0223B218: .word 0x00007FFF
+ thumb_func_end MOD81_0223B178
+
+ thumb_func_start MOD81_0223B21C
+MOD81_0223B21C: ; 0x0223B21C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0223B24A
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x18]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0x1c]
+ add r2, r1, r0
+ str r2, [r4, #0x14]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0xc]
+ asr r1, r1, #0xc
+ asr r2, r2, #0xc
+ bl MOD81_0223B4B0
+ pop {r3, r4, r5, pc}
+_0223B24A:
+ mov r1, #0x2f
+ mvn r1, r1
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0
+ bl MOD81_0223B4B0
+ mov r0, #1
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223B21C
+
+ thumb_func_start MOD81_0223B264
+MOD81_0223B264: ; 0x0223B264
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _0223B45C ; =0x0223D1EC
+ bl FUN_0201E66C
+ ldr r2, _0223B460 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _0223B464 ; =0x0223D188
+ bl FUN_02016BBC
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223B468 ; =0x0223D198
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223B468 ; =0x0223D198
+ mov r1, #5
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223B46C ; =0x0223D1B4
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223B470 ; =0x0223D1D0
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223B470 ; =0x0223D1D0
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r1, #0x13
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r1, #0x13
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r1, #0x12
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r1, #0x12
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3a
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0x14
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3a
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0x14
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r0, #0xc8
+ str r0, [sp]
+ mov r1, #1
+ ldr r0, [r4, #0xc]
+ mov r2, #0
+ add r3, r1, #0
+ bl FUN_02017F48
+ mov r0, #0xc8
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ mov r1, #5
+ mov r2, #0
+ mov r3, #1
+ bl FUN_02017F48
+ mov r0, #0xc8
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ mov r2, #0
+ mov r3, #1
+ bl FUN_02017F48
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4]
+ mov r2, #1
+ mov r3, #0xe
+ bl MOD81_022385D0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4]
+ mov r2, #5
+ mov r3, #0xe
+ bl MOD81_022385D0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #1
+ mov r2, #2
+ mov r3, #0xf
+ bl MOD81_022385D0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x40
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ mov r2, #0xc8
+ bl FUN_02018540
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x40
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r0, [r4, #0xc]
+ mov r1, #5
+ mov r2, #0xc8
+ bl FUN_02018540
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x40
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ mov r2, #0xc8
+ bl FUN_02018540
+ mov r0, #0x14
+ str r0, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #1
+ mov r3, #0xe
+ bl MOD81_022386BC
+ mov r0, #0x14
+ str r0, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #5
+ mov r3, #0xe
+ bl MOD81_022386BC
+ mov r2, #2
+ str r2, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #1
+ mov r3, #0xf
+ bl MOD81_022386BC
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_02017CD0
+ ldr r0, [r4, #0xc]
+ mov r1, #5
+ bl FUN_02017CD0
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_02017CD0
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223B474 ; =0xFFFFFE80
+ mov r1, #0x50
+ bl MOD81_0223B4B0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0223B45C: .word 0x0223D1EC
+_0223B460: .word 0x04000304
+_0223B464: .word 0x0223D188
+_0223B468: .word 0x0223D198
+_0223B46C: .word 0x0223D1B4
+_0223B470: .word 0x0223D1D0
+_0223B474: .word 0xFFFFFE80
+ thumb_func_end MOD81_0223B264
+
+ thumb_func_start MOD81_0223B478
+MOD81_0223B478: ; 0x0223B478
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #7
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #5
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223B478
+
+ thumb_func_start MOD81_0223B4B0
+MOD81_0223B4B0: ; 0x0223B4B0
+ push {r4, r5, r6, lr}
+ ldr r3, _0223B4E4 ; =0x000001FF
+ add r4, r1, #0
+ add r6, r2, #0
+ and r4, r3
+ add r5, r0, #0
+ mov r1, #2
+ mov r2, #3
+ and r3, r6
+ bl FUN_020179E0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #3
+ add r3, r4, #0
+ bl FUN_020179E0
+ add r4, #0xc0
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #3
+ add r3, r4, #0
+ bl FUN_020179E0
+ pop {r4, r5, r6, pc}
+ nop
+_0223B4E4: .word 0x000001FF
+ thumb_func_end MOD81_0223B4B0
+
+ thumb_func_start MOD81_0223B4E8
+MOD81_0223B4E8: ; 0x0223B4E8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x3a
+ mov r1, #0xb0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223B51C
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD81_0223880C
+ str r0, [r4, #0x24]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD81_0223B9A0
+ ldr r0, _0223B520 ; =MOD81_0223BCA8
+ add r1, r4, #0
+ bl FUN_02015F10
+_0223B51C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223B520: .word MOD81_0223BCA8
+ thumb_func_end MOD81_0223B4E8
+
+ thumb_func_start MOD81_0223B524
+MOD81_0223B524: ; 0x0223B524
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223B552
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD81_0223B7D0
+ add r0, r4, #0
+ bl MOD81_0223B8F8
+ add r0, r4, #0
+ bl MOD81_0223B988
+ add r0, r4, #0
+ add r0, #0x34
+ bl MOD81_0223B9A8
+ add r0, r4, #0
+ bl FUN_02016A18
+_0223B552:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223B524
+
+ thumb_func_start MOD81_0223B554
+MOD81_0223B554: ; 0x0223B554
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4]
+ add r5, r0, #0
+ cmp r2, #2
+ bhs _0223B57C
+ lsl r3, r2, #2
+ ldr r2, _0223B580 ; =0x0223D214
+ add r1, r5, #4
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _0223B578
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5, #4]
+_0223B578:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223B57C:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223B580: .word 0x0223D214
+ thumb_func_end MOD81_0223B554
+
+ thumb_func_start MOD81_0223B584
+MOD81_0223B584: ; 0x0223B584
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD81_0223B670
+ add r0, r4, #0
+ bl MOD81_0223B7E8
+ add r0, r4, #0
+ bl MOD81_0223B908
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ ldr r3, _0223B5B8 ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0223B5B8: .word 0x00007FFF
+ thumb_func_end MOD81_0223B584
+
+ thumb_func_start MOD81_0223B5BC
+MOD81_0223B5BC: ; 0x0223B5BC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #3
+ bhi _0223B662
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B5D6: ; jump table
+ .short _0223B5DE - _0223B5D6 - 2 ; case 0
+ .short _0223B5FE - _0223B5D6 - 2 ; case 1
+ .short _0223B628 - _0223B5D6 - 2 ; case 2
+ .short _0223B654 - _0223B5D6 - 2 ; case 3
+_0223B5DE:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223B662
+ ldr r0, [r5, #0x20]
+ mov r1, #3
+ bl FUN_02020130
+ ldr r0, [r5, #0x20]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223B662
+_0223B5FE:
+ ldr r0, [r5, #0x20]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _0223B662
+ ldr r0, _0223B668 ; =0x000006AB
+ bl FUN_020054C8
+ add r1, r5, #0
+ add r0, r5, #0
+ add r1, #0x34
+ bl MOD81_0223B9BC
+ ldr r0, [r5, #0x2c]
+ mov r1, #1
+ bl MOD81_02238B58
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223B662
+_0223B628:
+ add r5, #0x34
+ add r0, r5, #0
+ bl MOD81_0223BA7C
+ cmp r0, #0
+ beq _0223B662
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0
+ ldr r3, _0223B66C ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223B662
+_0223B654:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223B662
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_0223B662:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0223B668: .word 0x000006AB
+_0223B66C: .word 0x00007FFF
+ thumb_func_end MOD81_0223B5BC
+
+ thumb_func_start MOD81_0223B670
+MOD81_0223B670: ; 0x0223B670
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, _0223B7C0 ; =0x0223D258
+ bl FUN_0201E66C
+ ldr r2, _0223B7C4 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _0223B7C8 ; =0x0223D21C
+ bl FUN_02016BBC
+ ldr r0, [r4, #0x24]
+ ldr r2, _0223B7CC ; =0x0223D23C
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x24]
+ ldr r2, _0223B7CC ; =0x0223D23C
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4]
+ bl MOD81_02238828
+ cmp r0, #3
+ bhi _0223B6C2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223B6BA: ; jump table
+ .short _0223B6C2 - _0223B6BA - 2 ; case 0
+ .short _0223B6CE - _0223B6BA - 2 ; case 1
+ .short _0223B6DA - _0223B6BA - 2 ; case 2
+ .short _0223B6E6 - _0223B6BA - 2 ; case 3
+_0223B6C2:
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ mov r7, #0x10
+ mov r6, #0x11
+ mov r5, #0
+ b _0223B6F0
+_0223B6CE:
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ mov r7, #0x10
+ mov r6, #0x11
+ mov r5, #0x20
+ b _0223B6F0
+_0223B6DA:
+ mov r0, #0xf
+ str r0, [sp, #0x10]
+ mov r7, #0x10
+ mov r6, #0x11
+ mov r5, #0x40
+ b _0223B6F0
+_0223B6E6:
+ mov r0, #0x18
+ str r0, [sp, #0x10]
+ mov r7, #0x19
+ mov r6, #0x1a
+ mov r5, #0
+_0223B6F0:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x24]
+ mov r0, #0x5d
+ add r1, r7, #0
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x24]
+ mov r0, #0x5d
+ add r1, r7, #0
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r4, #0x24]
+ mov r0, #0x5d
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r4, #0x24]
+ mov r0, #0x5d
+ mov r3, #7
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ add r1, r6, #0
+ add r3, r5, #0
+ bl FUN_02006948
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ add r1, r6, #0
+ mov r2, #4
+ add r3, r5, #0
+ bl FUN_02006948
+ mov r1, #3
+ ldr r0, [r4, #0x24]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_020179E0
+ mov r2, #3
+ add r3, r2, #0
+ ldr r0, [r4, #0x24]
+ mov r1, #7
+ add r3, #0xfd
+ bl FUN_020179E0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ bl FUN_02033E74
+ mov r0, #1
+ mov r1, #0x39
+ bl FUN_02033F04
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223B7C0: .word 0x0223D258
+_0223B7C4: .word 0x04000304
+_0223B7C8: .word 0x0223D21C
+_0223B7CC: .word 0x0223D23C
+ thumb_func_end MOD81_0223B670
+
+ thumb_func_start MOD81_0223B7D0
+MOD81_0223B7D0: ; 0x0223B7D0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x24]
+ mov r1, #7
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223B7D0
+
+ thumb_func_start MOD81_0223B7E8
+MOD81_0223B7E8: ; 0x0223B7E8
+ push {r3, r4, lr}
+ sub sp, #0x24
+ add r4, r0, #0
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _0223B8C8 ; =0x04000060
+ ldr r1, _0223B8CC ; =0xFFFFCFFD
+ ldrh r2, [r0]
+ and r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ add r2, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0223B8D0 ; =0x0000CFFB
+ and r2, r3
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #8
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x20
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, _0223B8D4 ; =0x0223D22C
+ bl G3X_SetEdgeColorTable
+ mov r1, #0
+ ldr r0, _0223B8D8 ; =0x000043FF
+ ldr r2, _0223B8DC ; =0x00007FFF
+ mov r3, #0x3f
+ str r1, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0223B8E0 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _0223B8E4 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020AEB70
+ mov r0, #1
+ lsl r0, r0, #0xe
+ mov r1, #1
+ bl FUN_020AEDF4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r1, _0223B8E8 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ strh r2, [r1]
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD81_022388C0
+ str r0, [r4, #0x28]
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ mov r2, #0x5d
+ mov r3, #0x1b
+ bl MOD81_02238A84
+ ldr r1, _0223B8EC ; =0x000018E3
+ str r0, [r4, #0x2c]
+ add r0, sp, #0x10
+ strh r1, [r0]
+ mov r1, #0
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0x10
+ bl MOD81_02238C60
+ ldr r1, _0223B8F0 ; =0x00001150
+ add r0, sp, #0x10
+ strh r1, [r0]
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0x10
+ bl MOD81_02238C70
+ ldr r0, [r4, #0x28]
+ ldr r1, _0223B8F4 ; =0x000007D2
+ bl MOD81_02238C90
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0x18
+ bl MOD81_02238C40
+ add sp, #0x24
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223B8C8: .word 0x04000060
+_0223B8CC: .word 0xFFFFCFFD
+_0223B8D0: .word 0x0000CFFB
+_0223B8D4: .word 0x0223D22C
+_0223B8D8: .word 0x000043FF
+_0223B8DC: .word 0x00007FFF
+_0223B8E0: .word 0x04000540
+_0223B8E4: .word 0xBFFF0000
+_0223B8E8: .word 0x04000008
+_0223B8EC: .word 0x000018E3
+_0223B8F0: .word 0x00001150
+_0223B8F4: .word 0x000007D2
+ thumb_func_end MOD81_0223B7E8
+
+ thumb_func_start MOD81_0223B8F8
+MOD81_0223B8F8: ; 0x0223B8F8
+ push {r3, lr}
+ ldr r0, [r0, #0x28]
+ cmp r0, #0
+ beq _0223B904
+ bl MOD81_0223890C
+_0223B904:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223B8F8
+
+ thumb_func_start MOD81_0223B908
+MOD81_0223B908: ; 0x0223B908
+ push {r4, lr}
+ sub sp, #0x70
+ add r4, r0, #0
+ add r0, #0x10
+ mov r1, #0x5d
+ mov r2, #7
+ mov r3, #8
+ bl MOD81_0223874C
+ add r0, sp, #0x5c
+ bl FUN_020B19DC
+ add r0, sp, #0x38
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ add r0, sp, #0x38
+ str r0, [sp, #0x10]
+ mov r0, #0x5d
+ mov r1, #9
+ bl FUN_02006AE4
+ mov r0, #0x3a
+ str r0, [sp]
+ add r0, sp, #0x5c
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0xa
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #1
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, sp, #0x14
+ add r1, #0x10
+ add r2, sp, #0x38
+ add r3, sp, #0x5c
+ bl MOD81_022387A8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ mov r2, #0x80
+ mov r3, #0x60
+ bl MOD81_022387C8
+ mov r1, #0
+ str r0, [r4, #0x20]
+ bl FUN_020200A0
+ add sp, #0x70
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223B908
+
+ thumb_func_start MOD81_0223B988
+MOD81_0223B988: ; 0x0223B988
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0223B996
+ bl FUN_0201FFC8
+_0223B996:
+ add r4, #0x10
+ add r0, r4, #0
+ bl MOD81_02238784
+ pop {r4, pc}
+ thumb_func_end MOD81_0223B988
+
+ thumb_func_start MOD81_0223B9A0
+MOD81_0223B9A0: ; 0x0223B9A0
+ mov r1, #0
+ str r1, [r0, #4]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_0223B9A0
+
+ thumb_func_start MOD81_0223B9A8
+MOD81_0223B9A8: ; 0x0223B9A8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0223B9BA
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #4]
+_0223B9BA:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223B9A8
+
+ thumb_func_start MOD81_0223B9BC
+MOD81_0223B9BC: ; 0x0223B9BC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ str r0, [r4]
+ ldr r1, [r0, #0x2c]
+ ldr r2, _0223BA5C ; =0xFFFFD870
+ str r1, [r4, #0xc]
+ ldr r0, [r0, #0x28]
+ ldr r1, _0223BA60 ; =0x003D6C00
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ str r1, [r4, #0x14]
+ ldr r1, _0223BA64 ; =0xFFE44000
+ str r1, [r4, #0x18]
+ add r1, r4, #0
+ add r1, #0x78
+ strh r2, [r1]
+ add r1, r4, #0
+ ldr r2, _0223BA68 ; =0xFFFFF550
+ add r1, #0x7a
+ strh r2, [r1]
+ ldr r1, _0223BA6C ; =0xFFFEF2C6
+ str r1, [r4, #0x3c]
+ ldr r1, _0223BA70 ; =0x0000936D
+ str r1, [r4, #0x40]
+ str r0, [r4, #0x6c]
+ str r0, [r4, #0x70]
+ mov r1, #2
+ str r0, [r4, #0x74]
+ lsl r1, r1, #0xc
+ strh r1, [r4, #0x34]
+ ldr r1, _0223BA74 ; =0xFFFFE000
+ strh r1, [r4, #0x36]
+ strh r0, [r4, #0x38]
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x34
+ bl MOD81_02238B40
+ mov r3, #2
+ lsl r3, r3, #8
+ mov r1, #0x4a
+ mov r2, #0x63
+ str r3, [r4, #0x5c]
+ lsl r0, r3, #2
+ str r0, [r4, #0x44]
+ str r0, [r4, #0x48]
+ mov r0, #0
+ str r0, [r4, #0x68]
+ mov r0, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ lsl r1, r1, #0xa
+ lsl r2, r2, #0xa
+ lsl r3, r3, #3
+ bl MOD81_0223BA8C
+ add r0, r4, #0
+ bl MOD81_0223BAD0
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x28
+ bl MOD81_02238B18
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x34
+ bl MOD81_02238B28
+ ldr r0, _0223BA78 ; =MOD81_0223BBC8
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ str r0, [r4, #4]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0223BA5C: .word 0xFFFFD870
+_0223BA60: .word 0x003D6C00
+_0223BA64: .word 0xFFE44000
+_0223BA68: .word 0xFFFFF550
+_0223BA6C: .word 0xFFFEF2C6
+_0223BA70: .word 0x0000936D
+_0223BA74: .word 0xFFFFE000
+_0223BA78: .word MOD81_0223BBC8
+ thumb_func_end MOD81_0223B9BC
+
+ thumb_func_start MOD81_0223BA7C
+MOD81_0223BA7C: ; 0x0223BA7C
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ bne _0223BA86
+ mov r0, #1
+ bx lr
+_0223BA86:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_0223BA7C
+
+ thumb_func_start MOD81_0223BA8C
+MOD81_0223BA8C: ; 0x0223BA8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [sp, #0x18]
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ str r0, [sp]
+ cmp r0, #0
+ beq _0223BACC
+ ldr r0, [r5, #0x44]
+ ldr r1, [sp]
+ sub r0, r4, r0
+ bl _s32_div_f
+ str r0, [r5, #0x4c]
+ ldr r0, [r5, #0x48]
+ ldr r1, [sp]
+ sub r0, r6, r0
+ bl _s32_div_f
+ str r0, [r5, #0x50]
+ ldr r0, [r5, #0x5c]
+ ldr r1, [sp]
+ sub r0, r7, r0
+ bl _s32_div_f
+ str r0, [r5, #0x60]
+ str r4, [r5, #0x54]
+ str r6, [r5, #0x58]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #0x64]
+ str r0, [r5, #0x68]
+_0223BACC:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223BA8C
+
+ thumb_func_start MOD81_0223BAD0
+MOD81_0223BAD0: ; 0x0223BAD0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _0223BBC0 ; =0x0223D3A0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0223BBAE
+ add r0, r5, #0
+ add r0, #0x78
+ ldrh r0, [r0]
+ mov r1, #0xb6
+ bl _s32_div_f
+ add r4, r0, #0
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ cmp r4, r0
+ blt _0223BAF4
+ sub r4, r4, r0
+_0223BAF4:
+ mov r0, #0x78
+ ldrsh r1, [r5, r0]
+ mov r0, #0x7a
+ ldrsh r0, [r5, r0]
+ sub r1, r1, r0
+ add r0, r5, #0
+ add r0, #0x78
+ strh r1, [r0]
+ ldr r0, [r5, #0x68]
+ cmp r0, #0
+ beq _0223BB3C
+ sub r0, r0, #1
+ str r0, [r5, #0x68]
+ beq _0223BB28
+ ldr r1, [r5, #0x44]
+ ldr r0, [r5, #0x4c]
+ add r0, r1, r0
+ str r0, [r5, #0x44]
+ ldr r1, [r5, #0x48]
+ ldr r0, [r5, #0x50]
+ add r0, r1, r0
+ str r0, [r5, #0x48]
+ ldr r1, [r5, #0x5c]
+ ldr r0, [r5, #0x60]
+ add r0, r1, r0
+ b _0223BB32
+_0223BB28:
+ ldr r0, [r5, #0x54]
+ str r0, [r5, #0x44]
+ ldr r0, [r5, #0x58]
+ str r0, [r5, #0x48]
+ ldr r0, [r5, #0x64]
+_0223BB32:
+ str r0, [r5, #0x5c]
+ ldr r0, [r5, #0xc]
+ ldr r1, [r5, #0x5c]
+ bl MOD81_02238B84
+_0223BB3C:
+ add r0, r4, #0
+ add r0, #0x5a
+ lsl r1, r0, #2
+ ldr r0, _0223BBC4 ; =0x020EDF50
+ ldr r2, [r5, #0x44]
+ ldr r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [r5, #0x1c]
+ ldr r2, [r5, #0x48]
+ ldr r0, _0223BBC4 ; =0x020EDF50
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [r5, #0x20]
+ add r1, r5, #0
+ str r3, [r5, #0x24]
+ mov r0, #0x34
+ ldrsh r2, [r5, r0]
+ mov r0, #3
+ lsl r0, r0, #8
+ sub r0, r2, r0
+ strh r0, [r5, #0x34]
+ ldr r0, [r5, #0xc]
+ add r1, #0x34
+ bl MOD81_02238B40
+ add r0, r5, #0
+ add r1, r5, #0
+ add r5, #0x28
+ add r0, #0x1c
+ add r1, #0x10
+ add r2, r5, #0
+ bl VEC_Add
+ pop {r3, r4, r5, pc}
+_0223BBAE:
+ add r2, r5, #0
+ add r2, #0x10
+ ldmia r2!, {r0, r1}
+ add r5, #0x28
+ stmia r5!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_0223BBC0: .word 0x0223D3A0
+_0223BBC4: .word 0x020EDF50
+ thumb_func_end MOD81_0223BAD0
+
+ thumb_func_start MOD81_0223BBC8
+MOD81_0223BBC8: ; 0x0223BBC8
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x74]
+ cmp r1, #0x46
+ bge _0223BBD6
+ add r1, r1, #1
+ str r1, [r4, #0x74]
+_0223BBD6:
+ ldr r1, [r4, #0x6c]
+ cmp r1, #3
+ bhi _0223BC9C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223BBE8: ; jump table
+ .short _0223BBF0 - _0223BBE8 - 2 ; case 0
+ .short _0223BC16 - _0223BBE8 - 2 ; case 1
+ .short _0223BC50 - _0223BBE8 - 2 ; case 2
+ .short _0223BC8A - _0223BBE8 - 2 ; case 3
+_0223BBF0:
+ add r0, r4, #0
+ bl MOD81_0223BAD0
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x28
+ bl MOD81_02238B18
+ ldr r0, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r4, #0x74]
+ cmp r0, #0xc
+ blt _0223BC9C
+ mov r0, #0
+ str r0, [r4, #0x74]
+ ldr r0, [r4, #0x6c]
+ add r0, r0, #1
+ str r0, [r4, #0x6c]
+ pop {r4, pc}
+_0223BC16:
+ ldr r0, [r4, #0xc]
+ bl MOD81_02238B8C
+ cmp r0, #0
+ bne _0223BC2E
+ ldr r0, [r4]
+ bl MOD81_0223BCA0
+ ldr r0, [r4, #0x6c]
+ add r0, r0, #1
+ str r0, [r4, #0x6c]
+ pop {r4, pc}
+_0223BC2E:
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0x3c]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD81_0223BAD0
+ ldr r0, [r4, #0xc]
+ add r4, #0x28
+ add r1, r4, #0
+ bl MOD81_02238B18
+ pop {r4, pc}
+_0223BC50:
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0x3c]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD81_0223BAD0
+ add r1, r4, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0x28
+ bl MOD81_02238B18
+ ldr r0, [r4, #0x74]
+ cmp r0, #0x46
+ blt _0223BC9C
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD81_02238B58
+ mov r0, #0
+ str r0, [r4, #0x70]
+ ldr r0, [r4, #0x6c]
+ add r0, r0, #1
+ str r0, [r4, #0x6c]
+ pop {r4, pc}
+_0223BC8A:
+ ldr r1, [r4, #0x70]
+ add r1, r1, #1
+ str r1, [r4, #0x70]
+ cmp r1, #8
+ ble _0223BC9C
+ mov r1, #0
+ str r1, [r4, #4]
+ bl FUN_0200CAB4
+_0223BC9C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223BBC8
+
+ thumb_func_start MOD81_0223BCA0
+MOD81_0223BCA0: ; 0x0223BCA0
+ mov r1, #1
+ str r1, [r0, #0xc]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_0223BCA0
+
+ thumb_func_start MOD81_0223BCA8
+MOD81_0223BCA8: ; 0x0223BCA8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _0223BCC6
+ bl G3X_ResetMtxStack
+ ldr r0, [r4, #0x28]
+ bl MOD81_02238940
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020222B4
+_0223BCC6:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _0223BD08
+ ldr r1, _0223BD0C ; =0x0000EEB0
+ add r0, sp, #0
+ strh r1, [r0]
+ mov r1, #0
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ mov r1, #3
+ add r3, r1, #0
+ ldr r0, [r4, #0x24]
+ add r2, r1, #0
+ add r3, #0xfd
+ bl FUN_020179E0
+ ldr r0, [r4, #0x24]
+ mov r1, #7
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl MOD81_02238C70
+ ldr r2, _0223BD10 ; =0x04000304
+ ldr r0, _0223BD14 ; =0xFFFF7FFF
+ ldrh r1, [r2]
+ and r0, r1
+ strh r0, [r2]
+ mov r0, #0
+ str r0, [r4, #0xc]
+_0223BD08:
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_0223BD0C: .word 0x0000EEB0
+_0223BD10: .word 0x04000304
+_0223BD14: .word 0xFFFF7FFF
+ thumb_func_end MOD81_0223BCA8
+
+ thumb_func_start MOD81_0223BD18
+MOD81_0223BD18: ; 0x0223BD18
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x3a
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223BD46
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD81_0223880C
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x20]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ str r0, [r4, #0x38]
+_0223BD46:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223BD18
+
+ thumb_func_start MOD81_0223BD4C
+MOD81_0223BD4C: ; 0x0223BD4C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223BD80
+ bl MOD81_0223C1A8
+ add r0, r4, #0
+ bl MOD81_0223C2EC
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _0223BD66
+ bl MOD81_0223C460
+_0223BD66:
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ beq _0223BD70
+ bl MOD81_0223C3B0
+_0223BD70:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ beq _0223BD7A
+ bl MOD81_0223C514
+_0223BD7A:
+ add r0, r4, #0
+ bl FUN_02016A18
+_0223BD80:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223BD4C
+
+ thumb_func_start MOD81_0223BD84
+MOD81_0223BD84: ; 0x0223BD84
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4]
+ add r5, r0, #0
+ cmp r2, #3
+ bhs _0223BDB2
+ lsl r3, r2, #2
+ ldr r2, _0223BDB8 ; =0x0223D288
+ add r1, r5, #4
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _0223BDA8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5, #4]
+_0223BDA8:
+ add r0, r5, #0
+ bl MOD81_0223BDBC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223BDB2:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_0223BDB8: .word 0x0223D288
+ thumb_func_end MOD81_0223BD84
+
+ thumb_func_start MOD81_0223BDBC
+MOD81_0223BDBC: ; 0x0223BDBC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0223BDEE
+ mov r0, #0x2a
+ ldrsh r1, [r4, r0]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ strh r0, [r4, #0x2a]
+ add r1, r4, #0
+ ldr r0, [r4, #0x24]
+ add r1, #0x28
+ bl MOD81_02238B40
+ bl G3X_ResetMtxStack
+ ldr r0, [r4, #0x20]
+ bl MOD81_02238940
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020222B4
+_0223BDEE:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223BDBC
+
+ thumb_func_start MOD81_0223BDF0
+MOD81_0223BDF0: ; 0x0223BDF0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD81_0223BF74
+ add r0, r4, #0
+ bl MOD81_0223C1DC
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ ldr r3, _0223BE1C ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223BE1C: .word 0x00007FFF
+ thumb_func_end MOD81_0223BDF0
+
+ thumb_func_start MOD81_0223BE20
+MOD81_0223BE20: ; 0x0223BE20
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #6
+ bhi _0223BEEA
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223BE38: ; jump table
+ .short _0223BE46 - _0223BE38 - 2 ; case 0
+ .short _0223BE64 - _0223BE38 - 2 ; case 1
+ .short _0223BE7E - _0223BE38 - 2 ; case 2
+ .short _0223BE90 - _0223BE38 - 2 ; case 3
+ .short _0223BEA8 - _0223BE38 - 2 ; case 4
+ .short _0223BECC - _0223BE38 - 2 ; case 5
+ .short _0223BEE0 - _0223BE38 - 2 ; case 6
+_0223BE46:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223BEEA
+ mov r0, #0
+ str r0, [r4, #8]
+ add r0, r4, #0
+ add r4, #0x30
+ add r1, r4, #0
+ bl MOD81_0223C3CC
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223BEEA
+_0223BE64:
+ ldr r1, [r4, #8]
+ add r1, r1, #1
+ str r1, [r4, #8]
+ cmp r1, #8
+ ble _0223BEEA
+ add r4, #0x34
+ add r1, r4, #0
+ bl MOD81_0223C300
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223BEEA
+_0223BE7E:
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ bne _0223BEEA
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ bne _0223BEEA
+ add r0, r1, #1
+ str r0, [r5]
+ b _0223BEEA
+_0223BE90:
+ mov r1, #0
+ add r0, #0x14
+ mvn r1, r1
+ bl MOD81_02238118
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223BEEA
+_0223BEA8:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0x1e
+ ble _0223BEEA
+ add r0, r4, #0
+ add r0, #0x38
+ str r0, [sp]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x1f
+ mov r2, #0
+ mov r3, #0x28
+ bl MOD81_0223C47C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223BEEA
+_0223BECC:
+ ldr r0, [r4, #0x38]
+ cmp r0, #0
+ bne _0223BEEA
+ ldr r0, [r4, #0x10]
+ bl MOD81_022381EC
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223BEEA
+_0223BEE0:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0223BEEA
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0223BEEA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223BE20
+
+ thumb_func_start MOD81_0223BEF0
+MOD81_0223BEF0: ; 0x0223BEF0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0223BF08
+ cmp r0, #1
+ beq _0223BF30
+ cmp r0, #2
+ beq _0223BF5A
+ b _0223BF6E
+_0223BF08:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ mov r3, #1
+ str r0, [sp]
+ add r0, r5, #0
+ str r3, [sp, #4]
+ add r0, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, #0xc]
+ lsl r1, r3, #0xc
+ lsl r2, r3, #0xa
+ bl MOD81_022384AC
+ str r0, [r5, #0x18]
+ mov r0, #0
+ str r0, [r5, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223BF6E
+_0223BF30:
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+ cmp r0, #0xd
+ ble _0223BF6E
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0223BF6E
+_0223BF5A:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223BF6E
+ ldr r0, [r5, #0x1c]
+ cmp r0, #0
+ beq _0223BF6E
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_0223BF6E:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD81_0223BEF0
+
+ thumb_func_start MOD81_0223BF74
+MOD81_0223BF74: ; 0x0223BF74
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _0223C18C ; =0x0223D2EC
+ bl FUN_0201E66C
+ ldr r2, _0223C190 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _0223C194 ; =0x0223D294
+ bl FUN_02016BBC
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223C198 ; =0x0223D2B4
+ mov r1, #2
+ mov r3, #1
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223C198 ; =0x0223D2B4
+ mov r1, #6
+ mov r3, #1
+ bl FUN_02016C18
+ bl OS_DisableInterrupts
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223C19C ; =0x0223D2D0
+ mov r1, #3
+ mov r3, #2
+ bl FUN_02016C18
+ ldr r0, [r4, #0xc]
+ ldr r2, _0223C19C ; =0x0223D2D0
+ mov r1, #7
+ mov r3, #2
+ bl FUN_02016C18
+ add r0, r5, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ mov r1, #2
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r1, #2
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r3, #6
+ bl FUN_020068C8
+ ldr r0, [r4]
+ bl MOD81_02238828
+ add r5, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3a
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3a
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #3
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ ldr r0, _0223C1A0 ; =0x0223D280
+ lsl r1, r5, #1
+ ldrh r5, [r0, r1]
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ mov r1, #3
+ mov r2, #0
+ add r3, r5, #0
+ bl FUN_02006948
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ mov r1, #3
+ mov r2, #4
+ add r3, r5, #0
+ bl FUN_02006948
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r1, #5
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r1, #5
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r1, #4
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x5d
+ mov r1, #4
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0x3a
+ mov r1, #0x60
+ bl FUN_02016998
+ add r5, r0, #0
+ beq _0223C14A
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #0x60
+ bl MIi_CpuClear32
+ add r0, r5, #0
+ mov r1, #0x60
+ bl DC_FlushRange
+ bl GX_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
+ mov r1, #6
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ mov r2, #0x60
+ bl GX_LoadBGExtPltt
+ mov r1, #6
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ mov r2, #0x60
+ bl GXS_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
+ add r0, r5, #0
+ bl FUN_02016A18
+_0223C14A:
+ ldr r0, [r4, #0xc]
+ ldr r3, _0223C1A4 ; =0xFFFFFE80
+ mov r1, #2
+ mov r2, #3
+ bl FUN_020179E0
+ mov r2, #3
+ add r3, r2, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ sub r3, #0xc3
+ bl FUN_020179E0
+ mov r1, #3
+ ldr r0, [r4, #0xc]
+ add r2, r1, #0
+ mov r3, #0x43
+ bl FUN_020179E0
+ mov r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223C18C: .word 0x0223D2EC
+_0223C190: .word 0x04000304
+_0223C194: .word 0x0223D294
+_0223C198: .word 0x0223D2B4
+_0223C19C: .word 0x0223D2D0
+_0223C1A0: .word 0x0223D280
+_0223C1A4: .word 0xFFFFFE80
+ thumb_func_end MOD81_0223BF74
+
+ thumb_func_start MOD81_0223C1A8
+MOD81_0223C1A8: ; 0x0223C1A8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _0223C1B8
+ ldr r0, [r4, #0x10]
+ bl MOD81_02238200
+_0223C1B8:
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #7
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223C1A8
+
+ thumb_func_start MOD81_0223C1DC
+MOD81_0223C1DC: ; 0x0223C1DC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _0223C2C0 ; =0x04000060
+ ldr r1, _0223C2C4 ; =0xFFFFCFFD
+ ldrh r2, [r0]
+ and r2, r1
+ strh r2, [r0]
+ ldrh r3, [r0]
+ add r2, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0223C2C8 ; =0x0000CFFB
+ and r2, r3
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #8
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x20
+ orr r1, r2
+ strh r1, [r0]
+ ldr r0, _0223C2CC ; =0x0223D2A4
+ bl G3X_SetEdgeColorTable
+ mov r1, #0
+ ldr r0, _0223C2D0 ; =0x000043FF
+ ldr r2, _0223C2D4 ; =0x00007FFF
+ mov r3, #0x3f
+ str r1, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0223C2D8 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _0223C2DC ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020AEB70
+ mov r0, #1
+ lsl r0, r0, #0xe
+ mov r1, #1
+ bl FUN_020AEDF4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r1, _0223C2E0 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ strh r2, [r1]
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD81_022388C0
+ str r0, [r4, #0x20]
+ mov r1, #0
+ mov r0, #0x23
+ str r1, [sp]
+ lsl r0, r0, #0xe
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x20]
+ mov r2, #0x5d
+ mov r3, #0x1b
+ bl MOD81_02238A84
+ str r0, [r4, #0x24]
+ ldr r0, _0223C2E4 ; =0x0223D450
+ mov r1, #0
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ ldr r0, [r4, #0x20]
+ ldr r1, _0223C2E8 ; =0x0223D450
+ bl MOD81_02238C60
+ ldr r0, [r4, #0x20]
+ mov r1, #1
+ bl MOD81_02238C80
+ mov r1, #2
+ ldr r0, [r4, #0x24]
+ lsl r1, r1, #0xc
+ bl MOD81_02238B84
+ ldr r0, [r4, #0x24]
+ add r4, #0x28
+ add r1, r4, #0
+ bl MOD81_02238B28
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0223C2C0: .word 0x04000060
+_0223C2C4: .word 0xFFFFCFFD
+_0223C2C8: .word 0x0000CFFB
+_0223C2CC: .word 0x0223D2A4
+_0223C2D0: .word 0x000043FF
+_0223C2D4: .word 0x00007FFF
+_0223C2D8: .word 0x04000540
+_0223C2DC: .word 0xBFFF0000
+_0223C2E0: .word 0x04000008
+_0223C2E4: .word 0x0223D450
+_0223C2E8: .word 0x0223D450
+ thumb_func_end MOD81_0223C1DC
+
+ thumb_func_start MOD81_0223C2EC
+MOD81_0223C2EC: ; 0x0223C2EC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0223C2FE
+ bl MOD81_0223890C
+ mov r0, #0
+ str r0, [r4, #0x20]
+_0223C2FE:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223C2EC
+
+ thumb_func_start MOD81_0223C300
+MOD81_0223C300: ; 0x0223C300
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #0x3a
+ mov r1, #0x24
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223C340
+ str r6, [r4]
+ ldr r0, [r6, #0xc]
+ add r1, r4, #0
+ str r0, [r4, #4]
+ ldr r0, _0223C344 ; =0xFFE80000
+ mov r2, #0
+ str r0, [r4, #0xc]
+ asr r0, r0, #1
+ str r0, [r4, #0x10]
+ ldr r0, _0223C348 ; =0x00009999
+ str r0, [r4, #0x14]
+ mov r0, #0x28
+ str r0, [r4, #8]
+ ldr r0, _0223C34C ; =MOD81_0223C350
+ str r5, [r4, #0x1c]
+ bl FUN_0200CA60
+ str r0, [r5]
+ cmp r0, #0
+ bne _0223C340
+ add r0, r4, #0
+ bl FUN_02016A18
+_0223C340:
+ pop {r4, r5, r6, pc}
+ nop
+_0223C344: .word 0xFFE80000
+_0223C348: .word 0x00009999
+_0223C34C: .word MOD81_0223C350
+ thumb_func_end MOD81_0223C300
+
+ thumb_func_start MOD81_0223C350
+MOD81_0223C350: ; 0x0223C350
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _0223C390
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ mov r2, #3
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x14]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ ldr r3, [r4, #0xc]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ ldr r3, [r4, #0x10]
+ ldr r0, [r4, #4]
+ mov r1, #6
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_020179E0
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_0223C390:
+ ldr r0, [r4, #4]
+ mov r1, #2
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ mov r2, #3
+ mov r3, #0xc0
+ bl FUN_020179E0
+ add r0, r5, #0
+ bl MOD81_0223C3B0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD81_0223C350
+
+ thumb_func_start MOD81_0223C3B0
+MOD81_0223C3B0: ; 0x0223C3B0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223C3CA
+ bl FUN_0201B6C8
+ ldr r1, [r0, #0x1c]
+ mov r2, #0
+ str r2, [r1]
+ bl MOD81_02238898
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223C3CA:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223C3B0
+
+ thumb_func_start MOD81_0223C3CC
+MOD81_0223C3CC: ; 0x0223C3CC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #0x3a
+ mov r1, #0x1c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223C418
+ str r5, [r4]
+ ldr r0, [r6, #0x24]
+ add r1, r4, #0
+ str r0, [r4, #8]
+ add r1, #0xc
+ bl MOD81_02238B08
+ mov r0, #0x32
+ ldr r1, [r4, #0x10]
+ lsl r0, r0, #0xc
+ sub r1, r0, r1
+ asr r0, r1, #3
+ lsr r0, r0, #0x1c
+ add r0, r1, r0
+ asr r0, r0, #4
+ str r0, [r4, #0x18]
+ mov r0, #0x10
+ str r0, [r4, #4]
+ ldr r0, _0223C41C ; =MOD81_0223C420
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ str r0, [r5]
+ cmp r0, #0
+ bne _0223C418
+ add r0, r4, #0
+ bl FUN_02016A18
+_0223C418:
+ pop {r4, r5, r6, pc}
+ nop
+_0223C41C: .word MOD81_0223C420
+ thumb_func_end MOD81_0223C3CC
+
+ thumb_func_start MOD81_0223C420
+MOD81_0223C420: ; 0x0223C420
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0223C446
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x18]
+ add r0, r1, r0
+ str r0, [r4, #0x10]
+ add r1, r4, #0
+ ldr r0, [r4, #8]
+ add r1, #0xc
+ bl MOD81_02238B18
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_0223C446:
+ mov r0, #0x32
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ add r4, #0xc
+ add r1, r4, #0
+ bl MOD81_02238B18
+ add r0, r5, #0
+ bl MOD81_0223C460
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223C420
+
+ thumb_func_start MOD81_0223C460
+MOD81_0223C460: ; 0x0223C460
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223C47A
+ bl FUN_0201B6C8
+ ldr r1, [r0]
+ mov r2, #0
+ str r2, [r1]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223C47A:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223C460
+
+ thumb_func_start MOD81_0223C47C
+MOD81_0223C47C: ; 0x0223C47C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ add r6, r1, #0
+ mov r0, #0x3a
+ mov r1, #0x18
+ str r2, [sp, #4]
+ add r7, r3, #0
+ ldr r5, [sp, #0x20]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223C4D4
+ str r5, [r4]
+ lsl r0, r6, #0xc
+ str r0, [r4, #4]
+ ldr r0, [sp, #4]
+ lsl r1, r0, #0xc
+ str r1, [r4, #0xc]
+ ldr r0, [r4, #4]
+ sub r0, r1, r0
+ add r1, r7, #0
+ bl _s32_div_f
+ str r0, [r4, #8]
+ ldr r0, [sp]
+ str r7, [r4, #0x10]
+ add r1, r6, #0
+ str r0, [r4, #0x14]
+ bl MOD81_02238B5C
+ ldr r0, _0223C4DC ; =MOD81_0223C4E0
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ str r0, [r5]
+ cmp r0, #0
+ bne _0223C4D8
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_0223C4D4:
+ mov r0, #0
+ str r0, [r5]
+_0223C4D8:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223C4DC: .word MOD81_0223C4E0
+ thumb_func_end MOD81_0223C47C
+
+ thumb_func_start MOD81_0223C4E0
+MOD81_0223C4E0: ; 0x0223C4E0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r1, #0x10]
+ sub r0, r0, #1
+ str r0, [r1, #0x10]
+ cmp r0, #0
+ ble _0223C500
+ ldr r2, [r1, #4]
+ ldr r0, [r1, #8]
+ add r2, r2, r0
+ str r2, [r1, #4]
+ ldr r0, [r1, #0x14]
+ asr r1, r2, #0xc
+ bl MOD81_02238B5C
+ pop {r4, pc}
+_0223C500:
+ ldr r0, [r1, #0x14]
+ ldr r1, [r1, #0xc]
+ asr r1, r1, #0xc
+ bl MOD81_02238B5C
+ add r0, r4, #0
+ bl MOD81_0223C514
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223C4E0
+
+ thumb_func_start MOD81_0223C514
+MOD81_0223C514: ; 0x0223C514
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223C52E
+ bl FUN_0201B6C8
+ ldr r1, [r0]
+ mov r2, #0
+ str r2, [r1]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223C52E:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223C514
+
+ thumb_func_start MOD81_0223C530
+MOD81_0223C530: ; 0x0223C530
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x3a
+ mov r1, #0x70
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223C57A
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl MOD81_0223880C
+ str r0, [r4, #0x44]
+ mov r0, #0x3a
+ bl FUN_02006D98
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ mov r1, #0x3a
+ bl FUN_020219F4
+ str r0, [r4, #0x58]
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ mov r1, #0x3a
+ bl FUN_020219F4
+ str r0, [r4, #0x5c]
+ mov r0, #0
+ str r0, [r4, #0x68]
+ str r0, [r4, #0x6c]
+ str r0, [r4, #0x60]
+_0223C57A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223C530
+
+ thumb_func_start MOD81_0223C580
+MOD81_0223C580: ; 0x0223C580
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223C5D2
+ bl MOD81_0223CD08
+ add r0, r4, #0
+ bl MOD81_0223CC84
+ ldr r0, [r4, #0x6c]
+ bl MOD81_0223CDE0
+ ldr r0, [r4, #0x58]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x5c]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x60]
+ cmp r0, #0
+ beq _0223C5AC
+ bl MOD81_0223890C
+_0223C5AC:
+ ldr r0, [r4, #0x44]
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ add r0, #0x48
+ bl FUN_02019178
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _0223C5C6
+ bl FUN_02007534
+_0223C5C6:
+ ldr r0, [r4, #0x10]
+ bl FUN_020072E8
+ add r0, r4, #0
+ bl FUN_02016A18
+_0223C5D2:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223C580
+
+ thumb_func_start MOD81_0223C5D4
+MOD81_0223C5D4: ; 0x0223C5D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r2, [r4]
+ add r5, r0, #0
+ cmp r2, #4
+ bhs _0223C602
+ lsl r3, r2, #2
+ ldr r2, _0223C608 ; =0x0223D31C
+ add r1, r5, #4
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _0223C5F8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5, #4]
+_0223C5F8:
+ add r0, r5, #0
+ bl MOD81_0223C60C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223C602:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_0223C608: .word 0x0223D31C
+ thumb_func_end MOD81_0223C5D4
+
+ thumb_func_start MOD81_0223C60C
+MOD81_0223C60C: ; 0x0223C60C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl G3X_ResetMtxStack
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ bl FUN_020BB394
+ bl FUN_020B02C8
+ ldr r0, [r4, #0x10]
+ bl FUN_020081C4
+ ldr r0, [r4, #0x10]
+ bl FUN_02006ED4
+ mov r2, #1
+ str r2, [sp]
+ mov r0, #0x12
+ add r1, sp, #0
+ bl FUN_020BB1C0
+ ldr r0, [r4, #0x60]
+ cmp r0, #0
+ beq _0223C64A
+ bl MOD81_02238940
+_0223C64A:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020222B4
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223C60C
+
+ thumb_func_start MOD81_0223C658
+MOD81_0223C658: ; 0x0223C658
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, _0223C808 ; =0x0223D374
+ bl FUN_0201E66C
+ ldr r2, _0223C80C ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _0223C810 ; =0x0223D32C
+ bl FUN_02016BBC
+ ldr r0, [r4, #0x44]
+ ldr r2, _0223C814 ; =0x0223D33C
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x44]
+ ldr r2, _0223C818 ; =0x0223D358
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r2, _0223C81C ; =0x04000008
+ mov r0, #3
+ ldrh r3, [r2]
+ mov r1, #1
+ bic r3, r0
+ add r0, r3, #0
+ orr r0, r1
+ strh r0, [r2]
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4, #0x44]
+ 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, [r4, #0x44]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r4]
+ bl MOD81_02238844
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x3a
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x44]
+ mov r1, #1
+ mov r2, #0x6d
+ mov r3, #2
+ bl FUN_0200CD68
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ add r1, r4, #0
+ str r0, [sp, #8]
+ mov r2, #1
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r0, [r4, #0x44]
+ add r1, #0x48
+ mov r3, #2
+ bl FUN_02019064
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0x20
+ str r3, [sp]
+ mov r0, #0x3a
+ str r0, [sp, #4]
+ mov r0, #0xe
+ mov r1, #7
+ mov r2, #0
+ bl FUN_02006930
+ ldr r0, [r4, #0x44]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x44]
+ mov r0, #0x5d
+ mov r1, #0x16
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x44]
+ mov r0, #0x5d
+ mov r1, #0x15
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3a
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0x17
+ add r3, r2, #0
+ bl FUN_02006930
+ add r0, r4, #0
+ bl MOD81_0223CAC4
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD81_022388C0
+ str r0, [r4, #0x60]
+ add r0, r4, #0
+ bl MOD81_0223CB90
+ mov r1, #6
+ mov r2, #1
+ str r0, [r4, #0x14]
+ bl FUN_02007558
+ mov r1, #0
+ mov r0, #0x13
+ str r1, [sp]
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0x1e
+ lsl r0, r0, #0xe
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4, #0x60]
+ mov r2, #0x5d
+ mov r3, #0x1b
+ bl MOD81_02238A84
+ ldr r2, _0223C820 ; =0x0223D314
+ str r0, [r4, #0x64]
+ ldrh r3, [r2]
+ add r0, sp, #0x14
+ add r1, sp, #0x14
+ strh r3, [r0]
+ ldrh r3, [r2, #2]
+ ldrh r2, [r2, #4]
+ strh r3, [r0, #2]
+ strh r2, [r0, #4]
+ ldr r0, [r4, #0x64]
+ bl MOD81_02238B40
+ add r0, r4, #0
+ bl MOD81_0223CBE0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0223C824 ; =0x04000050
+ mov r1, #1
+ mov r2, #4
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_0223C808: .word 0x0223D374
+_0223C80C: .word 0x04000304
+_0223C810: .word 0x0223D32C
+_0223C814: .word 0x0223D33C
+_0223C818: .word 0x0223D358
+_0223C81C: .word 0x04000008
+_0223C820: .word 0x0223D314
+_0223C824: .word 0x04000050
+ thumb_func_end MOD81_0223C658
+
+ thumb_func_start MOD81_0223C828
+MOD81_0223C828: ; 0x0223C828
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r1]
+ cmp r0, #0
+ bne _0223C84E
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223C84E
+ ldr r0, [r4, #0x2c]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x2c]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #1
+ pop {r4, pc}
+_0223C84E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223C828
+
+ thumb_func_start MOD81_0223C854
+MOD81_0223C854: ; 0x0223C854
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #4
+ bhi _0223C91C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223C86C: ; jump table
+ .short _0223C876 - _0223C86C - 2 ; case 0
+ .short _0223C884 - _0223C86C - 2 ; case 1
+ .short _0223C8AE - _0223C86C - 2 ; case 2
+ .short _0223C8D6 - _0223C86C - 2 ; case 3
+ .short _0223C90E - _0223C86C - 2 ; case 4
+_0223C876:
+ add r1, r4, #0
+ add r1, #0x6c
+ bl MOD81_0223CD64
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+_0223C884:
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0
+ bne _0223C91C
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ bl MOD81_02238B58
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223C91C
+_0223C8AE:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0xa
+ ble _0223C91C
+ ldr r0, [r4, #0x14]
+ mov r1, #6
+ mov r2, #0
+ bl FUN_02007558
+ add r0, r4, #0
+ mov r1, #0x10
+ mov r2, #0
+ mov r3, #0xc
+ bl MOD81_0223CCA8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _0223C91C
+_0223C8D6:
+ bl MOD81_0223CCF8
+ cmp r0, #0
+ beq _0223C91C
+ ldr r0, [r4]
+ bl MOD81_02238820
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0
+ bne _0223C902
+ ldr r0, [r4]
+ bl MOD81_02238838
+ bl FUN_02005578
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_02007314
+_0223C902:
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223C91C
+_0223C90E:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0x1e
+ ble _0223C91C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0223C91C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD81_0223C854
+
+ thumb_func_start MOD81_0223C920
+MOD81_0223C920: ; 0x0223C920
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #5
+ bhi _0223C95C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0223C93A: ; jump table
+ .short _0223C946 - _0223C93A - 2 ; case 0
+ .short _0223C952 - _0223C93A - 2 ; case 1
+ .short _0223C9D0 - _0223C93A - 2 ; case 2
+ .short _0223CA32 - _0223C93A - 2 ; case 3
+ .short _0223CA52 - _0223C93A - 2 ; case 4
+ .short _0223CA7C - _0223C93A - 2 ; case 5
+_0223C946:
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223CA8A
+_0223C952:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0xa
+ bgt _0223C95E
+_0223C95C:
+ b _0223CA8A
+_0223C95E:
+ ldr r0, [r4]
+ bl MOD81_02238814
+ str r0, [sp, #0xc]
+ ldr r0, [r4]
+ bl MOD81_02238810
+ add r7, r0, #0
+ ldr r0, [r4]
+ bl MOD81_02238850
+ cmp r0, #1
+ bne _0223C97E
+ mov r1, #2
+ add r6, r1, #0
+ b _0223C982
+_0223C97E:
+ mov r1, #5
+ mov r6, #3
+_0223C982:
+ ldr r0, [sp, #0xc]
+ ldr r2, [r4, #0x58]
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0x5c]
+ ldr r2, [r4, #0x58]
+ add r0, r7, #0
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x48
+ mov r1, #1
+ bl FUN_0201BD84
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0x6d
+ mov r2, #2
+ bl FUN_0200D06C
+ add r0, r4, #0
+ add r0, #0x48
+ bl FUN_020191D0
+ ldr r0, _0223CA90 ; =0x00000484
+ bl FUN_02005C28
+ mov r0, #0
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4, #0xc]
+ str r6, [r5]
+ b _0223CA8A
+_0223C9D0:
+ mov r1, #0x3c
+ bl MOD81_0223CA94
+ cmp r0, #0
+ beq _0223CA8A
+ ldr r0, [r4]
+ bl MOD81_02238814
+ add r6, r0, #0
+ ldr r0, [r4]
+ bl MOD81_02238810
+ add r7, r0, #0
+ ldr r2, [r4, #0x58]
+ add r0, r6, #0
+ mov r1, #3
+ bl FUN_0200A8E0
+ ldr r1, [r4, #0x5c]
+ ldr r2, [r4, #0x58]
+ add r0, r7, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x48
+ mov r1, #1
+ bl FUN_0201BD84
+ add r0, r4, #0
+ add r0, #0x48
+ bl FUN_02019548
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223CA8A
+_0223CA32:
+ mov r1, #0x3c
+ bl MOD81_0223CA94
+ cmp r0, #0
+ beq _0223CA8A
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223CA8A
+_0223CA52:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0xa
+ ble _0223CA8A
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3a
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0223CA8A
+_0223CA7C:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0223CA8A
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223CA8A:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223CA90: .word 0x00000484
+ thumb_func_end MOD81_0223C920
+
+ thumb_func_start MOD81_0223CA94
+MOD81_0223CA94: ; 0x0223CA94
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _0223CAA6
+ bl FUN_02005CBC
+ str r0, [r5, #0xc]
+_0223CAA6:
+ ldr r0, [r5, #8]
+ cmp r0, r4
+ bge _0223CAB4
+ add r0, r0, #1
+ str r0, [r5, #8]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223CAB4:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bne _0223CABE
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0223CABE:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223CA94
+
+ thumb_func_start MOD81_0223CAC4
+MOD81_0223CAC4: ; 0x0223CAC4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _0223CB6C ; =0x04000060
+ ldr r2, _0223CB70 ; =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 r3, [r0]
+ ldr r1, _0223CB74 ; =0x0000CFFB
+ and r1, r3
+ strh r1, [r0]
+ add r1, r2, #2
+ ldrh r3, [r0]
+ lsr r2, r2, #0x11
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0223CB78 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _0223CB7C ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020AEB70
+ mov r0, #1
+ lsl r0, r0, #0xe
+ mov r1, #1
+ bl FUN_020AEDF4
+ ldr r3, _0223CB80 ; =0x021064B8
+ mov r0, #1
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _0223CB84 ; =0x021064C0
+ add r4, r0, #0
+ ldr r3, [r3]
+ mov r0, #0x80
+ mov r1, #0
+ mov r2, #1
+ blx r3
+ ldr r2, _0223CB88 ; =0x7FFF0000
+ add r6, r0, #0
+ and r2, r4
+ lsl r1, r4, #0x10
+ lsr r2, r2, #0x10
+ ldr r0, [r5, #0x10]
+ lsr r1, r1, #0xd
+ lsl r2, r2, #4
+ bl FUN_020081A8
+ ldr r2, _0223CB8C ; =0xFFFF0000
+ lsl r1, r6, #0x10
+ and r2, r6
+ lsr r2, r2, #0x10
+ ldr r0, [r5, #0x10]
+ lsr r1, r1, #0xd
+ lsl r2, r2, #3
+ bl FUN_020081B4
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0223CB6C: .word 0x04000060
+_0223CB70: .word 0xFFFFCFFD
+_0223CB74: .word 0x0000CFFB
+_0223CB78: .word 0x04000540
+_0223CB7C: .word 0xBFFF0000
+_0223CB80: .word 0x021064B8
+_0223CB84: .word 0x021064C0
+_0223CB88: .word 0x7FFF0000
+_0223CB8C: .word 0xFFFF0000
+ thumb_func_end MOD81_0223CAC4
+
+ thumb_func_start MOD81_0223CB90
+MOD81_0223CB90: ; 0x0223CB90
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl MOD81_02238820
+ add r5, r0, #0
+ add r0, sp, #0x10
+ add r1, r5, #0
+ mov r2, #2
+ bl FUN_02068B70
+ ldr r0, [r4]
+ bl MOD81_02238838
+ add r1, r0, #0
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02069010
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_02068E1C
+ add r3, r0, #0
+ mov r1, #0
+ str r1, [sp]
+ add r0, r4, #0
+ str r1, [sp, #4]
+ add r0, #0x18
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r4, #0x10]
+ add r3, #0x50
+ add r1, sp, #0x10
+ mov r2, #0x80
+ bl FUN_020073A0
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD81_0223CB90
+
+ thumb_func_start MOD81_0223CBE0
+MOD81_0223CBE0: ; 0x0223CBE0
+ push {r4, lr}
+ sub sp, #0x70
+ add r4, r0, #0
+ add r0, #0x34
+ mov r1, #0x5d
+ mov r2, #7
+ mov r3, #8
+ bl MOD81_0223874C
+ add r0, sp, #0x5c
+ bl FUN_020B19DC
+ add r0, sp, #0x38
+ bl FUN_020B1A24
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x3a
+ str r0, [sp, #0xc]
+ add r0, sp, #0x38
+ str r0, [sp, #0x10]
+ mov r0, #0x5d
+ mov r1, #9
+ bl FUN_02006AE4
+ mov r0, #0x3a
+ str r0, [sp]
+ add r0, sp, #0x5c
+ str r0, [sp, #4]
+ mov r0, #0x5d
+ mov r1, #0xa
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #2
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, sp, #0x14
+ add r1, #0x34
+ add r2, sp, #0x38
+ add r3, sp, #0x5c
+ bl MOD81_022387A8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ mov r2, #0x80
+ mov r3, #0x64
+ bl MOD81_022387C8
+ str r0, [r4, #0x2c]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ mov r2, #0x80
+ mov r3, #0x5a
+ bl MOD81_022387C8
+ str r0, [r4, #0x30]
+ mov r1, #1
+ bl FUN_02020238
+ ldr r0, [r4, #0x2c]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x70
+ pop {r4, pc}
+ thumb_func_end MOD81_0223CBE0
+
+ thumb_func_start MOD81_0223CC84
+MOD81_0223CC84: ; 0x0223CC84
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0223CC8C:
+ ldr r0, [r5, #0x2c]
+ cmp r0, #0
+ beq _0223CC96
+ bl FUN_0201FFC8
+_0223CC96:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #2
+ blt _0223CC8C
+ add r6, #0x34
+ add r0, r6, #0
+ bl MOD81_02238784
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD81_0223CC84
+
+ thumb_func_start MOD81_0223CCA8
+MOD81_0223CCA8: ; 0x0223CCA8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x3a
+ mov r1, #0x14
+ str r2, [sp]
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223CCEE
+ str r5, [r4]
+ lsl r0, r6, #0xc
+ str r0, [r4, #4]
+ ldr r0, [sp]
+ lsl r1, r0, #0xc
+ str r1, [r4, #8]
+ ldr r0, [r4, #4]
+ sub r0, r1, r0
+ add r1, r7, #0
+ bl _s32_div_f
+ str r0, [r4, #0xc]
+ ldr r0, _0223CCF0 ; =MOD81_0223CD28
+ str r7, [r4, #0x10]
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA60
+ str r0, [r5, #0x68]
+ ldr r0, _0223CCF4 ; =0x04000050
+ mov r1, #1
+ add r2, r6, #0
+ bl G2x_SetBlendBrightness_
+_0223CCEE:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223CCF0: .word MOD81_0223CD28
+_0223CCF4: .word 0x04000050
+ thumb_func_end MOD81_0223CCA8
+
+ thumb_func_start MOD81_0223CCF8
+MOD81_0223CCF8: ; 0x0223CCF8
+ ldr r0, [r0, #0x68]
+ cmp r0, #0
+ bne _0223CD02
+ mov r0, #1
+ bx lr
+_0223CD02:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD81_0223CCF8
+
+ thumb_func_start MOD81_0223CD08
+MOD81_0223CD08: ; 0x0223CD08
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x68]
+ cmp r0, #0
+ beq _0223CD24
+ bl FUN_0201B6C8
+ bl MOD81_02238898
+ ldr r0, [r4, #0x68]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x68]
+_0223CD24:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223CD08
+
+ thumb_func_start MOD81_0223CD28
+MOD81_0223CD28: ; 0x0223CD28
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #0
+ ble _0223CD4A
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #0xc]
+ add r2, r1, r0
+ str r2, [r4, #4]
+ ldr r0, _0223CD60 ; =0x04000050
+ mov r1, #1
+ asr r2, r2, #0xc
+ bl G2x_SetBlendBrightness_
+ pop {r4, pc}
+_0223CD4A:
+ ldr r2, [r4, #8]
+ ldr r0, _0223CD60 ; =0x04000050
+ mov r1, #1
+ asr r2, r2, #0xc
+ bl G2x_SetBlendBrightness_
+ ldr r0, [r4]
+ bl MOD81_0223CD08
+ pop {r4, pc}
+ nop
+_0223CD60: .word 0x04000050
+ thumb_func_end MOD81_0223CD28
+
+ thumb_func_start MOD81_0223CD64
+MOD81_0223CD64: ; 0x0223CD64
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x3a
+ mov r1, #0x44
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0223CDD2
+ mov r1, #0
+ str r1, [r4, #4]
+ str r6, [r4]
+ ldr r0, [r5, #0x60]
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #0x64]
+ str r0, [r4, #0x14]
+ str r5, [r4, #8]
+ ldr r0, _0223CDD8 ; =0x000018CC
+ str r1, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ mov r0, #0x14
+ str r0, [r4, #0x20]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ strh r0, [r4, #0x3a]
+ str r1, [r4, #0x40]
+ ldr r0, [r4, #0x14]
+ bl MOD81_02238B5C
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl MOD81_02238B58
+ add r1, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x24
+ bl MOD81_02238B08
+ add r1, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x34
+ bl MOD81_02238B28
+ ldr r0, _0223CDDC ; =MOD81_0223CE54
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ str r0, [r6]
+ cmp r0, #0
+ bne _0223CDD6
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+_0223CDD2:
+ mov r0, #0
+ str r0, [r6]
+_0223CDD6:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0223CDD8: .word 0x000018CC
+_0223CDDC: .word MOD81_0223CE54
+ thumb_func_end MOD81_0223CD64
+
+ thumb_func_start MOD81_0223CDE0
+MOD81_0223CDE0: ; 0x0223CDE0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0223CDFA
+ bl FUN_0201B6C8
+ ldr r1, [r0]
+ mov r2, #0
+ str r2, [r1]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0223CDFA:
+ pop {r4, pc}
+ thumb_func_end MOD81_0223CDE0
+
+ thumb_func_start MOD81_0223CDFC
+MOD81_0223CDFC: ; 0x0223CDFC
+ add r1, r0, #0
+ ldr r0, [r1, #0x40]
+ cmp r0, #0
+ beq _0223CE1E
+ mov r0, #0x3a
+ ldrsh r2, [r1, r0]
+ mov r0, #0x3c
+ ldrsh r0, [r1, r0]
+ add r0, r2, r0
+ strh r0, [r1, #0x3a]
+ ldr r0, [r1, #0x40]
+ sub r0, r0, #1
+ str r0, [r1, #0x40]
+ bne _0223CE1E
+ mov r0, #0x3e
+ ldrsh r0, [r1, r0]
+ strh r0, [r1, #0x3a]
+_0223CE1E:
+ mov r0, #0x36
+ ldrsh r2, [r1, r0]
+ mov r0, #0x3a
+ ldrsh r0, [r1, r0]
+ ldr r3, _0223CE34 ; =MOD81_02238B40
+ add r0, r2, r0
+ strh r0, [r1, #0x36]
+ ldr r0, [r1, #0x14]
+ add r1, #0x34
+ bx r3
+ nop
+_0223CE34: .word MOD81_02238B40
+ thumb_func_end MOD81_0223CDFC
+
+ thumb_func_start MOD81_0223CE38
+MOD81_0223CE38: ; 0x0223CE38
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ beq _0223CE50
+ mov r0, #0x3a
+ ldrsh r0, [r5, r0]
+ sub r0, r1, r0
+ add r1, r4, #0
+ bl _s32_div_f
+ strh r0, [r5, #0x3c]
+ str r4, [r5, #0x40]
+_0223CE50:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD81_0223CE38
+
+ thumb_func_start MOD81_0223CE54
+MOD81_0223CE54: ; 0x0223CE54
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD81_0223CDFC
+ ldr r0, [r4, #4]
+ cmp r0, #5
+ bhi _0223CF62
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223CE72: ; jump table
+ .short _0223CE7E - _0223CE72 - 2 ; case 0
+ .short _0223CEAE - _0223CE72 - 2 ; case 1
+ .short _0223CEC6 - _0223CE72 - 2 ; case 2
+ .short _0223CEDC - _0223CE72 - 2 ; case 3
+ .short _0223CF24 - _0223CE72 - 2 ; case 4
+ .short _0223CF52 - _0223CE72 - 2 ; case 5
+_0223CE7E:
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _0223CE9E
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ add r0, r1, r0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x20]
+ sub r0, r0, #1
+ str r0, [r4, #0x20]
+ ldr r1, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ asr r1, r1, #0xc
+ bl MOD81_02238B5C
+ pop {r3, r4, r5, pc}
+_0223CE9E:
+ ldr r0, [r4, #0x14]
+ mov r1, #0x1f
+ bl MOD81_02238B5C
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_0223CEAE:
+ mov r1, #6
+ add r0, r4, #0
+ lsl r1, r1, #6
+ mov r2, #0x1e
+ bl MOD81_0223CE38
+ mov r0, #0
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_0223CEC6:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #0xa
+ ble _0223CF62
+ mov r0, #0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_0223CEDC:
+ ldr r1, [r4, #0x28]
+ ldr r0, [r4, #0x30]
+ add r0, r1, r0
+ str r0, [r4, #0x28]
+ mov r0, #0x1e
+ ldr r1, [r4, #0x30]
+ lsl r0, r0, #6
+ sub r0, r1, r0
+ str r0, [r4, #0x30]
+ add r1, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x24
+ bl MOD81_02238B18
+ ldr r1, [r4, #0x28]
+ ldr r0, _0223CF64 ; =0xFFFF5000
+ cmp r1, r0
+ bge _0223CF62
+ ldr r0, _0223CF68 ; =0x000005E6
+ bl FUN_020054C8
+ mov r0, #0
+ ldr r1, [r4, #0x30]
+ mvn r0, r0
+ mul r0, r1
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #8
+ bl MOD81_0223CCA8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_0223CF24:
+ ldr r1, [r4, #0x28]
+ ldr r0, [r4, #0x30]
+ add r1, r1, r0
+ mov r0, #0x13
+ lsl r0, r0, #0xc
+ str r1, [r4, #0x28]
+ cmp r1, r0
+ blt _0223CF36
+ str r0, [r4, #0x28]
+_0223CF36:
+ add r1, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x24
+ bl MOD81_02238B18
+ mov r0, #0x13
+ ldr r1, [r4, #0x28]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bne _0223CF62
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_0223CF52:
+ ldr r0, [r4, #8]
+ bl MOD81_0223CCF8
+ cmp r0, #0
+ beq _0223CF62
+ add r0, r5, #0
+ bl MOD81_0223CDE0
+_0223CF62:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223CF64: .word 0xFFFF5000
+_0223CF68: .word 0x000005E6
+ thumb_func_end MOD81_0223CE54
+
+ .section .rodata
+ ; 0x0223CF6C
+ .incbin "baserom.nds", 0x2EEB2C, 0x430
+
+ .section .data
+ ; 0x0223D3A0
+ .incbin "baserom.nds", 0x2EEF60, 0x20
+
+ .section .bss
+ ; 0x0223D3C0
+ .space 0xA0
diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s
new file mode 100644
index 00000000..962ebed4
--- /dev/null
+++ b/arm9/modules/82/asm/module_82.s
@@ -0,0 +1,4455 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD82_0222D5C0
+MOD82_0222D5C0: ; 0x0222D5C0
+ push {r3, r4}
+ ldr r3, _0222D5D8 ; =0x0222FB00
+ mov r4, #1
+ str r4, [r3]
+ mov r4, #0
+ str r4, [r3, #4]
+ str r0, [r3, #8]
+ str r1, [r3, #0xc]
+ str r2, [r3, #0x10]
+ pop {r3, r4}
+ bx lr
+ nop
+_0222D5D8: .word 0x0222FB00
+ thumb_func_end MOD82_0222D5C0
+
+ thumb_func_start MOD82_0222D5DC
+MOD82_0222D5DC: ; 0x0222D5DC
+ push {r3, lr}
+ ldr r1, _0222D7B8 ; =0x0222FB00
+ ldr r0, [r1]
+ cmp r0, #0xa
+ bls _0222D5E8
+ b _0222D7B4
+_0222D5E8:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222D5F4: ; jump table
+ .short _0222D7B4 - _0222D5F4 - 2 ; case 0
+ .short _0222D7B4 - _0222D5F4 - 2 ; case 1
+ .short _0222D60A - _0222D5F4 - 2 ; case 2
+ .short _0222D7A8 - _0222D5F4 - 2 ; case 3
+ .short _0222D654 - _0222D5F4 - 2 ; case 4
+ .short _0222D7A8 - _0222D5F4 - 2 ; case 5
+ .short _0222D6C4 - _0222D5F4 - 2 ; case 6
+ .short _0222D7A8 - _0222D5F4 - 2 ; case 7
+ .short _0222D736 - _0222D5F4 - 2 ; case 8
+ .short _0222D7A8 - _0222D5F4 - 2 ; case 9
+ .short _0222D7B4 - _0222D5F4 - 2 ; case 10
+_0222D60A:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D618
+ cmp r0, #7
+ beq _0222D630
+ pop {r3, pc}
+_0222D618:
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD82_0222D99C
+ ldr r1, _0222D7B8 ; =0x0222FB00
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D630:
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ bl MOD79_02212480
+ cmp r0, #0
+ ble _0222D646
+ ldr r0, _0222D7BC ; =0x0222FC00
+ ldrb r1, [r0, #3]
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ b _0222D64C
+_0222D646:
+ mov r1, #1
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mvn r1, r1
+_0222D64C:
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D654:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D662
+ cmp r0, #7
+ beq _0222D67A
+ pop {r3, pc}
+_0222D662:
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD82_0222D99C
+ ldr r1, _0222D7B8 ; =0x0222FB00
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D67A:
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ bl MOD79_02212480
+ ldr r1, _0222D7C0 ; =0x00000A38
+ cmp r0, r1
+ bne _0222D692
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222D6BE
+_0222D692:
+ ldr r0, _0222D7BC ; =0x0222FC00
+ ldr r0, [r0, #8]
+ ldrb r0, [r0]
+ cmp r0, #2
+ beq _0222D6A2
+ cmp r0, #5
+ beq _0222D6AC
+ b _0222D6B6
+_0222D6A2:
+ mov r1, #2
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D6BE
+_0222D6AC:
+ mov r1, #1
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mvn r1, r1
+ str r1, [r0, #4]
+ b _0222D6BE
+_0222D6B6:
+ mov r1, #4
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D6BE:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D6C4:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D6D2
+ cmp r0, #7
+ beq _0222D6EA
+ pop {r3, pc}
+_0222D6D2:
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD82_0222D99C
+ ldr r1, _0222D7B8 ; =0x0222FB00
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D6EA:
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mov r1, #0xa
+ ldr r2, _0222D7BC ; =0x0222FC00
+ str r1, [r0]
+ ldrb r2, [r2, #3]
+ cmp r2, #5
+ bhi _0222D728
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0222D704: ; jump table
+ .short _0222D728 - _0222D704 - 2 ; case 0
+ .short _0222D710 - _0222D704 - 2 ; case 1
+ .short _0222D716 - _0222D704 - 2 ; case 2
+ .short _0222D728 - _0222D704 - 2 ; case 3
+ .short _0222D71C - _0222D704 - 2 ; case 4
+ .short _0222D722 - _0222D704 - 2 ; case 5
+_0222D710:
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222D730
+_0222D716:
+ sub r1, #0xd
+ str r1, [r0, #4]
+ b _0222D730
+_0222D71C:
+ sub r1, #0xb
+ str r1, [r0, #4]
+ b _0222D730
+_0222D722:
+ sub r1, #0xc
+ str r1, [r0, #4]
+ b _0222D730
+_0222D728:
+ mov r1, #4
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D730:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D736:
+ bl MOD79_022123A8
+ cmp r0, #1
+ beq _0222D744
+ cmp r0, #7
+ beq _0222D75C
+ pop {r3, pc}
+_0222D744:
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ bl MOD79_02212474
+ bl MOD82_0222D99C
+ ldr r1, _0222D7B8 ; =0x0222FB00
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D75C:
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mov r1, #0xa
+ ldr r2, _0222D7BC ; =0x0222FC00
+ str r1, [r0]
+ ldrb r2, [r2, #3]
+ cmp r2, #5
+ bhi _0222D79A
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0222D776: ; jump table
+ .short _0222D79A - _0222D776 - 2 ; case 0
+ .short _0222D782 - _0222D776 - 2 ; case 1
+ .short _0222D79A - _0222D776 - 2 ; case 2
+ .short _0222D788 - _0222D776 - 2 ; case 3
+ .short _0222D78E - _0222D776 - 2 ; case 4
+ .short _0222D794 - _0222D776 - 2 ; case 5
+_0222D782:
+ mov r1, #0
+ str r1, [r0, #4]
+ b _0222D7A2
+_0222D788:
+ mov r1, #1
+ str r1, [r0, #4]
+ b _0222D7A2
+_0222D78E:
+ mov r1, #2
+ str r1, [r0, #4]
+ b _0222D7A2
+_0222D794:
+ sub r1, #0xc
+ str r1, [r0, #4]
+ b _0222D7A2
+_0222D79A:
+ mov r1, #4
+ ldr r0, _0222D7B8 ; =0x0222FB00
+ mvn r1, r1
+ str r1, [r0, #4]
+_0222D7A2:
+ bl MOD56_0221244C
+ pop {r3, pc}
+_0222D7A8:
+ mov r0, #0xa
+ str r0, [r1]
+ sub r0, #0xe
+ str r0, [r1, #4]
+ bl MOD56_0221244C
+_0222D7B4:
+ pop {r3, pc}
+ nop
+_0222D7B8: .word 0x0222FB00
+_0222D7BC: .word 0x0222FC00
+_0222D7C0: .word 0x00000A38
+ thumb_func_end MOD82_0222D5DC
+
+ thumb_func_start MOD82_0222D7C4
+MOD82_0222D7C4: ; 0x0222D7C4
+ ldr r1, _0222D7E0 ; =0x0222FB00
+ ldr r0, [r1]
+ cmp r0, #1
+ beq _0222D7D2
+ cmp r0, #0xa
+ beq _0222D7D6
+ b _0222D7DC
+_0222D7D2:
+ mov r0, #1
+ bx lr
+_0222D7D6:
+ mov r0, #1
+ str r0, [r1]
+ bx lr
+_0222D7DC:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0222D7E0: .word 0x0222FB00
+ thumb_func_end MOD82_0222D7C4
+
+ thumb_func_start MOD82_0222D7E4
+MOD82_0222D7E4: ; 0x0222D7E4
+ ldr r0, _0222D7EC ; =0x0222FB00
+ ldr r0, [r0, #4]
+ bx lr
+ nop
+_0222D7EC: .word 0x0222FB00
+ thumb_func_end MOD82_0222D7E4
+
+ thumb_func_start MOD82_0222D7F0
+MOD82_0222D7F0: ; 0x0222D7F0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl MOD79_022122E4
+ ldr r0, _0222D830 ; =0x0222FB00
+ sub r1, r4, #1
+ strb r1, [r0, #0x14]
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0222D834 ; =0x0222F8E0
+ ldr r1, _0222D838 ; =0x0222FB14
+ ldr r3, _0222D83C ; =0x0222FC03
+ mov r2, #1
+ bl MOD82_0222D964
+ cmp r0, #0
+ beq _0222D81E
+ ldr r0, _0222D830 ; =0x0222FB00
+ mov r1, #2
+ str r1, [r0]
+ add sp, #4
+ pop {r3, r4, pc}
+_0222D81E:
+ ldr r0, _0222D830 ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ sub r1, #0xf
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222D830: .word 0x0222FB00
+_0222D834: .word 0x0222F8E0
+_0222D838: .word 0x0222FB14
+_0222D83C: .word 0x0222FC03
+ thumb_func_end MOD82_0222D7F0
+
+ thumb_func_start MOD82_0222D840
+MOD82_0222D840: ; 0x0222D840
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r0, _0222D88C ; =0x0222FC00
+ add r6, r2, #0
+ add r4, r1, #0
+ str r6, [r0, #8]
+ bl MOD79_022122E4
+ ldr r0, _0222D890 ; =0x0222FB00
+ sub r1, r5, #1
+ strb r1, [r0, #0x14]
+ sub r1, r4, #1
+ strb r1, [r0, #0x15]
+ ldr r0, _0222D894 ; =0x00000A38
+ ldr r1, _0222D898 ; =0x0222FB14
+ str r0, [sp]
+ ldr r0, _0222D89C ; =0x0222F92C
+ mov r2, #2
+ add r3, r6, #0
+ bl MOD82_0222D964
+ cmp r0, #0
+ beq _0222D87A
+ ldr r0, _0222D890 ; =0x0222FB00
+ mov r1, #4
+ str r1, [r0]
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_0222D87A:
+ ldr r0, _0222D890 ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ sub r1, #0xf
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222D88C: .word 0x0222FC00
+_0222D890: .word 0x0222FB00
+_0222D894: .word 0x00000A38
+_0222D898: .word 0x0222FB14
+_0222D89C: .word 0x0222F92C
+ thumb_func_end MOD82_0222D840
+
+ thumb_func_start MOD82_0222D8A0
+MOD82_0222D8A0: ; 0x0222D8A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl MOD79_022122E4
+ ldr r0, _0222D904 ; =0x0222FB14
+ add r1, r7, #0
+ mov r2, #0xe4
+ bl memcpy
+ ldr r0, _0222D908 ; =0x0222FBE0
+ sub r1, r5, #1
+ strb r1, [r0, #0x18]
+ sub r1, r4, #1
+ strb r1, [r0, #0x19]
+ ldr r3, _0222D90C ; =0x0222FBFB
+ ldr r2, _0222D910 ; =0x0222FB0C
+ strb r6, [r0, #0x1a]
+ mov r1, #8
+_0222D8CA:
+ ldrb r0, [r2]
+ add r2, r2, #1
+ strb r0, [r3]
+ add r3, r3, #1
+ sub r1, r1, #1
+ bne _0222D8CA
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0222D914 ; =0x0222F978
+ ldr r1, _0222D904 ; =0x0222FB14
+ ldr r3, _0222D918 ; =0x0222FC03
+ mov r2, #0xef
+ bl MOD82_0222D964
+ cmp r0, #0
+ beq _0222D8F2
+ ldr r0, _0222D91C ; =0x0222FB00
+ mov r1, #6
+ str r1, [r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_0222D8F2:
+ ldr r0, _0222D91C ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ sub r1, #0xf
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222D904: .word 0x0222FB14
+_0222D908: .word 0x0222FBE0
+_0222D90C: .word 0x0222FBFB
+_0222D910: .word 0x0222FB0C
+_0222D914: .word 0x0222F978
+_0222D918: .word 0x0222FC03
+_0222D91C: .word 0x0222FB00
+ thumb_func_end MOD82_0222D8A0
+
+ thumb_func_start MOD82_0222D920
+MOD82_0222D920: ; 0x0222D920
+ push {r3, lr}
+ bl MOD79_022122E4
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, _0222D954 ; =0x0222F9C4
+ ldr r1, _0222D958 ; =0x0222FB14
+ ldr r3, _0222D95C ; =0x0222FC03
+ mov r2, #0
+ bl MOD82_0222D964
+ cmp r0, #0
+ beq _0222D942
+ ldr r0, _0222D960 ; =0x0222FB00
+ mov r1, #8
+ str r1, [r0]
+ pop {r3, pc}
+_0222D942:
+ ldr r0, _0222D960 ; =0x0222FB00
+ mov r1, #0xa
+ str r1, [r0]
+ sub r1, #0xf
+ str r1, [r0, #4]
+ bl MOD56_0221244C
+ pop {r3, pc}
+ nop
+_0222D954: .word 0x0222F9C4
+_0222D958: .word 0x0222FB14
+_0222D95C: .word 0x0222FC03
+_0222D960: .word 0x0222FB00
+ thumb_func_end MOD82_0222D920
+
+ thumb_func_start MOD82_0222D964
+MOD82_0222D964: ; 0x0222D964
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r1, [sp, #0x18]
+ str r3, [sp]
+ str r1, [sp, #4]
+ add r4, r2, #0
+ ldr r1, _0222D998 ; =0x0222FB00
+ add r2, r5, #0
+ ldr r1, [r1, #8]
+ add r3, r4, #0
+ bl MOD79_02212308
+ cmp r0, #0
+ beq _0222D98A
+ cmp r0, #1
+ beq _0222D990
+ cmp r0, #2
+ b _0222D990
+_0222D98A:
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222D990:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_0222D998: .word 0x0222FB00
+ thumb_func_end MOD82_0222D964
+
+ thumb_func_start MOD82_0222D99C
+MOD82_0222D99C: ; 0x0222D99C
+ push {r4, lr}
+ cmp r0, #0x20
+ bhi _0222DA14
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222D9AE: ; jump table
+ .short _0222D9F0 - _0222D9AE - 2 ; case 0
+ .short _0222D9F0 - _0222D9AE - 2 ; case 1
+ .short _0222D9F6 - _0222D9AE - 2 ; case 2
+ .short _0222D9F0 - _0222D9AE - 2 ; case 3
+ .short _0222D9F0 - _0222D9AE - 2 ; case 4
+ .short _0222D9F0 - _0222D9AE - 2 ; case 5
+ .short _0222D9F0 - _0222D9AE - 2 ; case 6
+ .short _0222DA14 - _0222D9AE - 2 ; case 7
+ .short _0222D9F6 - _0222D9AE - 2 ; case 8
+ .short _0222D9F0 - _0222D9AE - 2 ; case 9
+ .short _0222D9F0 - _0222D9AE - 2 ; case 10
+ .short _0222D9FC - _0222D9AE - 2 ; case 11
+ .short _0222DA02 - _0222D9AE - 2 ; case 12
+ .short _0222DA02 - _0222D9AE - 2 ; case 13
+ .short _0222D9F0 - _0222D9AE - 2 ; case 14
+ .short _0222DA0E - _0222D9AE - 2 ; case 15
+ .short _0222DA08 - _0222D9AE - 2 ; case 16
+ .short _0222DA08 - _0222D9AE - 2 ; case 17
+ .short _0222DA08 - _0222D9AE - 2 ; case 18
+ .short _0222DA08 - _0222D9AE - 2 ; case 19
+ .short _0222D9F0 - _0222D9AE - 2 ; case 20
+ .short _0222D9F0 - _0222D9AE - 2 ; case 21
+ .short _0222D9F0 - _0222D9AE - 2 ; case 22
+ .short _0222D9F0 - _0222D9AE - 2 ; case 23
+ .short _0222DA14 - _0222D9AE - 2 ; case 24
+ .short _0222D9F6 - _0222D9AE - 2 ; case 25
+ .short _0222DA08 - _0222D9AE - 2 ; case 26
+ .short _0222DA08 - _0222D9AE - 2 ; case 27
+ .short _0222DA08 - _0222D9AE - 2 ; case 28
+ .short _0222DA08 - _0222D9AE - 2 ; case 29
+ .short _0222DA0E - _0222D9AE - 2 ; case 30
+ .short _0222DA08 - _0222D9AE - 2 ; case 31
+ .short _0222D9F0 - _0222D9AE - 2 ; case 32
+_0222D9F0:
+ mov r4, #4
+ mvn r4, r4
+ b _0222DA18
+_0222D9F6:
+ mov r4, #4
+ mvn r4, r4
+ b _0222DA18
+_0222D9FC:
+ mov r4, #6
+ mvn r4, r4
+ b _0222DA18
+_0222DA02:
+ mov r4, #6
+ mvn r4, r4
+ b _0222DA18
+_0222DA08:
+ mov r4, #1
+ mvn r4, r4
+ b _0222DA18
+_0222DA0E:
+ mov r4, #1
+ mvn r4, r4
+ b _0222DA18
+_0222DA14:
+ mov r4, #4
+ mvn r4, r4
+_0222DA18:
+ mov r0, #4
+ mvn r0, r0
+ cmp r4, r0
+ beq _0222DA30
+ bl FUN_020A71F8
+ cmp r0, #9
+ beq _0222DA2C
+ mov r4, #5
+ mvn r4, r4
+_0222DA2C:
+ bl MOD04_021DD6F0
+_0222DA30:
+ add r0, r4, #0
+ pop {r4, pc}
+ thumb_func_end MOD82_0222D99C
+
+ thumb_func_start MOD82_0222DA34
+MOD82_0222DA34: ; 0x0222DA34
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _0222DA48
+ cmp r0, #1
+ beq _0222DB34
+ b _0222DB4A
+_0222DA48:
+ 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, _0222DB50 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _0222DB54 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r2, #5
+ mov r0, #3
+ mov r1, #0x44
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, _0222DB58 ; =0x00000EC8
+ add r0, r6, #0
+ mov r2, #0x44
+ bl FUN_02006268
+ ldr r2, _0222DB58 ; =0x00000EC8
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x44
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ ldr r0, _0222DB5C ; =0x0222FC0C
+ add r2, sp, #0
+ ldr r3, _0222DB60 ; =0x0222F814
+ str r4, [r0]
+ add r7, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, r7, #0
+ bl FUN_02016BBC
+ mov r0, #0xb
+ mov r1, #0x20
+ mov r2, #0x44
+ bl FUN_0200AA90
+ ldr r1, _0222DB64 ; =0x00000B78
+ ldr r2, _0222DB68 ; =0x0000024E
+ str r0, [r4, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x44
+ bl FUN_0200A86C
+ ldr r1, _0222DB6C ; =0x00000B7C
+ mov r2, #0x25
+ str r0, [r4, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #4
+ mov r3, #0x44
+ bl FUN_0200A86C
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r2, _0222DB70 ; =0x00000265
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x44
+ bl FUN_0200A86C
+ ldr r1, _0222DB74 ; =0x00000B84
+ str r0, [r4, r1]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD82_0222DD04
+ add r0, r4, #0
+ bl MOD82_0222DFD4
+ mov r1, #0
+ mov r0, #0x34
+ add r2, r1, #0
+ bl FUN_0200433C
+ ldr r1, _0222DB78 ; =0x00020020
+ mov r0, #0x44
+ bl FUN_02016998
+ str r0, [r4, #0x24]
+ add r0, #0x1f
+ mov r1, #0x1f
+ bic r0, r1
+ mov r1, #2
+ lsl r1, r1, #0x10
+ mov r2, #0
+ bl tempName_NNS_FndCreateExpHeapEx
+ str r0, [r4, #0x28]
+ mov r0, #1
+ str r0, [r5]
+ b _0222DB4A
+_0222DB34:
+ bl FUN_02088858
+ bl FUN_020888BC
+ bl FUN_0202E49C
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222DB4A:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DB50: .word 0xFFFFE0FF
+_0222DB54: .word 0x04001000
+_0222DB58: .word 0x00000EC8
+_0222DB5C: .word 0x0222FC0C
+_0222DB60: .word 0x0222F814
+_0222DB64: .word 0x00000B78
+_0222DB68: .word 0x0000024E
+_0222DB6C: .word 0x00000B7C
+_0222DB70: .word 0x00000265
+_0222DB74: .word 0x00000B84
+_0222DB78: .word 0x00020020
+ thumb_func_end MOD82_0222DA34
+
+ thumb_func_start MOD82_0222DB7C
+MOD82_0222DB7C: ; 0x0222DB7C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ add r5, r0, #0
+ bl MOD04_021DD984
+ bl MOD82_0222D5DC
+ bl MOD04_021DD984
+ ldr r1, [r4]
+ cmp r1, #5
+ bhi _0222DC24
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222DBA4: ; jump table
+ .short _0222DBB0 - _0222DBA4 - 2 ; case 0
+ .short _0222DBCC - _0222DBA4 - 2 ; case 1
+ .short _0222DBE0 - _0222DBA4 - 2 ; case 2
+ .short _0222DBEE - _0222DBA4 - 2 ; case 3
+ .short _0222DC02 - _0222DBA4 - 2 ; case 4
+ .short _0222DC20 - _0222DBA4 - 2 ; case 5
+_0222DBB0:
+ bl FUN_0202E4C8
+ cmp r0, #0
+ beq _0222DC24
+ ldr r1, [r5, #0x28]
+ ldr r0, _0222DC38 ; =0x0222FC0C
+ str r1, [r0, #4]
+ ldr r0, _0222DC3C ; =MOD82_0222DF74
+ ldr r1, _0222DC40 ; =MOD82_0222DF9C
+ bl MOD04_021DD968
+ mov r0, #1
+ str r0, [r4]
+ b _0222DC24
+_0222DBCC:
+ ldr r3, [r5, #0x10]
+ mov r2, #0xc
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _0222DC44 ; =0x0222FA0C
+ add r0, r5, #0
+ ldr r2, [r2, r6]
+ blx r2
+ str r0, [r4]
+ b _0222DC24
+_0222DBE0:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DC24
+ mov r0, #3
+ str r0, [r4]
+ b _0222DC24
+_0222DBEE:
+ ldr r3, [r5, #0x10]
+ mov r2, #0xc
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _0222DC48 ; =0x0222FA10
+ add r0, r5, #0
+ ldr r2, [r2, r6]
+ blx r2
+ str r0, [r4]
+ b _0222DC24
+_0222DC02:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DC24
+ ldr r3, [r5, #0x10]
+ mov r2, #0xc
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _0222DC4C ; =0x0222FA14
+ ldr r1, [r4]
+ ldr r2, [r2, r6]
+ add r0, r5, #0
+ blx r2
+ str r0, [r4]
+ b _0222DC24
+_0222DC20:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222DC24:
+ mov r0, #0xba
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0222DC32
+ bl FUN_0201FDEC
+_0222DC32:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0222DC38: .word 0x0222FC0C
+_0222DC3C: .word MOD82_0222DF74
+_0222DC40: .word MOD82_0222DF9C
+_0222DC44: .word 0x0222FA0C
+_0222DC48: .word 0x0222FA10
+_0222DC4C: .word 0x0222FA14
+ thumb_func_end MOD82_0222DB7C
+
+ thumb_func_start MOD82_0222DC50
+MOD82_0222DC50: ; 0x0222DC50
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ bl FUN_02016A18
+ bl FUN_020888CC
+ bl FUN_02088868
+ add r0, r4, #0
+ bl MOD82_0222DFFC
+ ldr r0, _0222DCB8 ; =0x00000B84
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x2e
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0222DCBC ; =0x00000B7C
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0222DCC0 ; =0x00000B78
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ add r0, r4, #0
+ bl MOD82_0222DD20
+ bl FUN_0202E4F0
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x44
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222DCB8: .word 0x00000B84
+_0222DCBC: .word 0x00000B7C
+_0222DCC0: .word 0x00000B78
+ thumb_func_end MOD82_0222DC50
+
+ thumb_func_start MOD82_0222DCC4
+MOD82_0222DCC4: ; 0x0222DCC4
+ push {r3, lr}
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _0222DCDC ; =0x027E0000
+ ldr r1, _0222DCE0 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ .align 2, 0
+_0222DCDC: .word 0x027E0000
+_0222DCE0: .word 0x00003FF8
+ thumb_func_end MOD82_0222DCC4
+
+ thumb_func_start MOD82_0222DCE4
+MOD82_0222DCE4: ; 0x0222DCE4
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _0222DD00 ; =0x0222F834
+ add r3, sp, #0
+ mov r2, #5
+_0222DCEE:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222DCEE
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_0222DD00: .word 0x0222F834
+ thumb_func_end MOD82_0222DCE4
+
+ thumb_func_start MOD82_0222DD04
+MOD82_0222DD04: ; 0x0222DD04
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ bl FUN_0200628C
+ mov r1, #0
+ str r0, [r4]
+ add r0, r4, #0
+ add r2, r1, #0
+ str r1, [r4, #0x10]
+ bl MOD82_0222DFCC
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222DD04
+
+ thumb_func_start MOD82_0222DD20
+MOD82_0222DD20: ; 0x0222DD20
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD82_0222DD20
+
+ thumb_func_start MOD82_0222DD24
+MOD82_0222DD24: ; 0x0222DD24
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _0222DD50 ; =0x0222F824
+ 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, #0x44
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0222DD50: .word 0x0222F824
+ thumb_func_end MOD82_0222DD24
+
+ thumb_func_start MOD82_0222DD54
+MOD82_0222DD54: ; 0x0222DD54
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7e
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x44
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ ldr r1, _0222DE40 ; =0x00000BA4
+ mov r0, #0xa
+ add r1, r6, r1
+ mov r2, #0x44
+ bl FUN_02008C9C
+ mov r1, #0xba
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ add r0, r1, #4
+ mov r2, #1
+ add r0, r6, r0
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ ldr r7, _0222DE44 ; =0x00000CCC
+ mov r4, #0
+ add r5, r6, #0
+_0222DD9C:
+ mov r0, #2
+ add r1, r4, #0
+ mov r2, #0x44
+ bl FUN_02008DEC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222DD9C
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x44
+ str r0, [sp, #8]
+ ldr r0, _0222DE44 ; =0x00000CCC
+ mov r1, #0x68
+ ldr r0, [r6, r0]
+ mov r2, #0x23
+ bl FUN_02008F34
+ ldr r1, _0222DE48 ; =0x00000CDC
+ mov r3, #0
+ str r0, [r6, r1]
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0x44
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r6, r1]
+ mov r1, #0x68
+ mov r2, #9
+ bl FUN_02008FEC
+ mov r1, #0xce
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x44
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x68
+ mov r2, #0x24
+ mov r3, #1
+ bl FUN_020090AC
+ ldr r1, _0222DE4C ; =0x00000CE4
+ mov r2, #0x25
+ str r0, [r6, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x44
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x68
+ mov r3, #1
+ bl FUN_020090AC
+ ldr r1, _0222DE50 ; =0x00000CE8
+ str r0, [r6, r1]
+ sub r1, #0xc
+ ldr r0, [r6, r1]
+ bl FUN_02009A50
+ mov r0, #0xce
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DE40: .word 0x00000BA4
+_0222DE44: .word 0x00000CCC
+_0222DE48: .word 0x00000CDC
+_0222DE4C: .word 0x00000CE4
+_0222DE50: .word 0x00000CE8
+ thumb_func_end MOD82_0222DD54
+
+ thumb_func_start MOD82_0222DE54
+MOD82_0222DE54: ; 0x0222DE54
+ push {r3, r4}
+ mov r4, #0xba
+ lsl r4, r4, #4
+ ldr r1, [r1, r4]
+ str r1, [r0]
+ str r2, [r0, #4]
+ mov r2, #0
+ mov r1, #1
+ str r2, [r0, #0x10]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ strh r2, [r0, #0x20]
+ mov r1, #1
+ str r1, [r0, #0x24]
+ str r3, [r0, #0x28]
+ mov r1, #0x44
+ str r1, [r0, #0x2c]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD82_0222DE54
+
+ thumb_func_start MOD82_0222DE80
+MOD82_0222DE80: ; 0x0222DE80
+ 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]
+ str r1, [sp, #0xc]
+ ldr r2, _0222DF28 ; =0x00000CCC
+ str r1, [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, #0x40
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ ldr r2, _0222DF2C ; =0x00000D0C
+ add r0, sp, #0x2c
+ add r1, r5, #0
+ add r2, r5, r2
+ mov r3, #1
+ bl MOD82_0222DE54
+ ldr r4, _0222DF30 ; =0x0222F80C
+ ldr r7, _0222DF34 ; =0x00000D78
+ mov r6, #0
+_0222DED4:
+ ldrh r0, [r4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldrh r0, [r4, #2]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ ldr r1, _0222DF34 ; =0x00000D78
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _0222DF34 ; =0x00000D78
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #2
+ blt _0222DED4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ bl FUN_02033E74
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DF28: .word 0x00000CCC
+_0222DF2C: .word 0x00000D0C
+_0222DF30: .word 0x0222F80C
+_0222DF34: .word 0x00000D78
+ thumb_func_end MOD82_0222DE80
+
+ thumb_func_start MOD82_0222DF38
+MOD82_0222DF38: ; 0x0222DF38
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ ldr r5, _0222DF68 ; =0x0222F804
+ add r4, sp, #4
+ ldrh r6, [r5]
+ add r3, sp, #4
+ strh r6, [r4]
+ ldrh r6, [r5, #2]
+ strh r6, [r4, #2]
+ ldrh r6, [r5, #4]
+ ldrh r5, [r5, #6]
+ strh r6, [r4, #4]
+ strh r5, [r4, #6]
+ strb r1, [r4, #2]
+ strh r2, [r4, #6]
+ mov r1, #0x44
+ str r1, [sp]
+ add r1, r3, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_02002198
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222DF68: .word 0x0222F804
+ thumb_func_end MOD82_0222DF38
+
+ thumb_func_start MOD82_0222DF6C
+MOD82_0222DF6C: ; 0x0222DF6C
+ str r1, [r0, #0x1c]
+ str r2, [r0, #0x20]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD82_0222DF6C
+
+ thumb_func_start MOD82_0222DF74
+MOD82_0222DF74: ; 0x0222DF74
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r2, #0
+ bl OS_DisableInterrupts
+ add r6, r0, #0
+ ldr r0, _0222DF98 ; =0x0222FC0C
+ add r1, r5, #0
+ ldr r0, [r0, #4]
+ add r2, r4, #0
+ bl tempName_NNS_FndAllocFromExpHeapEx
+ add r4, r0, #0
+ add r0, r6, #0
+ bl OS_RestoreInterrupts
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222DF98: .word 0x0222FC0C
+ thumb_func_end MOD82_0222DF74
+
+ thumb_func_start MOD82_0222DF9C
+MOD82_0222DF9C: ; 0x0222DF9C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ beq _0222DFB8
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ ldr r0, _0222DFBC ; =0x0222FC0C
+ add r1, r5, #0
+ ldr r0, [r0, #4]
+ bl FUN_020ADDF0
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+_0222DFB8:
+ pop {r3, r4, r5, pc}
+ nop
+_0222DFBC: .word 0x0222FC0C
+ thumb_func_end MOD82_0222DF9C
+
+ thumb_func_start MOD82_0222DFC0
+MOD82_0222DFC0: ; 0x0222DFC0
+ push {r3, lr}
+ bl MOD04_021DDB08
+ mov r1, #3
+ sub r0, r1, r0
+ pop {r3, pc}
+ thumb_func_end MOD82_0222DFC0
+
+ thumb_func_start MOD82_0222DFCC
+MOD82_0222DFCC: ; 0x0222DFCC
+ str r1, [r0, #0x14]
+ str r2, [r0, #0x18]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD82_0222DFCC
+
+ thumb_func_start MOD82_0222DFD4
+MOD82_0222DFD4: ; 0x0222DFD4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD82_0222DCE4
+ bl MOD82_0222DD24
+ add r0, r4, #0
+ bl MOD82_0222DD54
+ add r0, r4, #0
+ bl MOD82_0222DE80
+ ldr r0, _0222DFF8 ; =MOD82_0222DCC4
+ mov r1, #0
+ bl FUN_02015F10
+ pop {r4, pc}
+ nop
+_0222DFF8: .word MOD82_0222DCC4
+ thumb_func_end MOD82_0222DFD4
+
+ thumb_func_start MOD82_0222DFFC
+MOD82_0222DFFC: ; 0x0222DFFC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _0222E048 ; =0x00000CDC
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0xce
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ ldr r7, _0222E04C ; =0x00000CCC
+ mov r4, #0
+ add r5, r6, #0
+_0222E018:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E018
+ mov r0, #0xba
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_0201FD58
+ mov r0, #0xba
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E048: .word 0x00000CDC
+_0222E04C: .word 0x00000CCC
+ thumb_func_end MOD82_0222DFFC
+
+ thumb_func_start MOD82_0222E050
+MOD82_0222E050: ; 0x0222E050
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl MOD82_0222E4AC
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x44
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4, #4]
+ bl MOD82_0222E15C
+ add r0, r4, #0
+ bl MOD82_0222E264
+ add r0, r4, #0
+ bl MOD82_0222E35C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl FUN_02033288
+ add r0, r4, #0
+ bl MOD82_0222F6D0
+ ldr r0, [r4]
+ mov r1, #0
+ ldr r0, [r0]
+ bl FUN_0202A444
+ str r0, [r4, #0x38]
+ str r0, [r4, #0x3c]
+ mov r0, #1
+ str r0, [r4, #0x44]
+ ldr r0, _0222E110 ; =0x00000EB4
+ mov r1, #0
+ str r1, [r4, r0]
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ bne _0222E104
+ ldr r0, [r4]
+ ldr r0, [r0, #0x24]
+ cmp r0, #0
+ beq _0222E0FE
+ ldr r0, _0222E114 ; =0x00000F0F
+ mov r1, #0x2e
+ str r0, [sp]
+ lsl r1, r1, #6
+ mov r2, #1
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #2
+ bl MOD82_0222DF6C
+ add r0, r4, #0
+ bl MOD82_0222F700
+ b _0222E108
+_0222E0FE:
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ b _0222E108
+_0222E104:
+ mov r0, #0x31
+ str r0, [r4, #0x1c]
+_0222E108:
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0222E110: .word 0x00000EB4
+_0222E114: .word 0x00000F0F
+ thumb_func_end MOD82_0222E050
+
+ thumb_func_start MOD82_0222E118
+MOD82_0222E118: ; 0x0222E118
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD82_0222DFC0
+ bl FUN_02033EEC
+ ldr r1, [r4, #0x1c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _0222E134 ; =0x0222FA18
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r4, pc}
+ nop
+_0222E134: .word 0x0222FA18
+ thumb_func_end MOD82_0222E118
+
+ thumb_func_start MOD82_0222E138
+MOD82_0222E138: ; 0x0222E138
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD82_0222E504
+ add r0, r4, #0
+ bl MOD82_0222E474
+ ldr r0, [r4, #4]
+ bl MOD82_0222E240
+ ldr r0, [r4, #0x14]
+ str r0, [r4, #0x10]
+ cmp r0, #0
+ bne _0222E158
+ mov r0, #5
+ pop {r4, pc}
+_0222E158:
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD82_0222E138
+
+ thumb_func_start MOD82_0222E15C
+MOD82_0222E15C: ; 0x0222E15C
+ push {r3, r4, r5, lr}
+ sub sp, #0x70
+ ldr r5, _0222E230 ; =0x0222F894
+ add r4, r0, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x54
+ 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
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _0222E234 ; =0x0222F878
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r5, _0222E238 ; =0x0222F8B0
+ 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, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _0222E23C ; =0x0222F85C
+ 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, #5
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x44
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x44
+ bl FUN_02017F18
+ add sp, #0x70
+ pop {r3, r4, r5, pc}
+ nop
+_0222E230: .word 0x0222F894
+_0222E234: .word 0x0222F878
+_0222E238: .word 0x0222F8B0
+_0222E23C: .word 0x0222F85C
+ thumb_func_end MOD82_0222E15C
+
+ thumb_func_start MOD82_0222E240
+MOD82_0222E240: ; 0x0222E240
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ 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 MOD82_0222E240
+
+ thumb_func_start MOD82_0222E264
+MOD82_0222E264: ; 0x0222E264
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x44
+ str r0, [sp, #4]
+ mov r0, #0x5c
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x44
+ str r0, [sp, #4]
+ mov r0, #0x5c
+ mov r1, #3
+ mov r2, #4
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x44
+ bl FUN_02002EEC
+ mov r1, #0x1a
+ mov r0, #4
+ lsl r1, r1, #4
+ mov r2, #0x44
+ bl FUN_02002EEC
+ ldr r0, [r5]
+ ldr r0, [r0, #0x10]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x44
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x44
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0
+ mov r0, #0x36
+ str r1, [sp]
+ lsl r0, r0, #6
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x44
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #1
+ bl FUN_0200687C
+ mov r1, #0
+ mov r0, #6
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x44
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #4
+ add r2, r4, #0
+ mov r3, #1
+ bl FUN_020068C8
+ mov r1, #0
+ mov r0, #0x36
+ str r1, [sp]
+ lsl r0, r0, #6
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x44
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #9
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_0200687C
+ mov r1, #0
+ mov r0, #6
+ str r1, [sp]
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x44
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #0xa
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD82_0222E264
+
+ thumb_func_start MOD82_0222E35C
+MOD82_0222E35C: ; 0x0222E35C
+ push {r3, r4, lr}
+ sub sp, #0x14
+ mov r3, #4
+ add r4, r0, #0
+ str r3, [sp]
+ mov r0, #0x17
+ str r0, [sp, #4]
+ mov r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xa4
+ mov r1, #0x37
+ str r0, [sp, #0x10]
+ lsl r1, r1, #6
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ bl FUN_02019064
+ mov r0, #0x37
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0xe
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x94
+ mov r1, #0xda
+ str r0, [sp, #0x10]
+ lsl r1, r1, #4
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0x1a
+ bl FUN_02019064
+ mov r0, #0xda
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xe
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x9c
+ mov r1, #0xd9
+ str r0, [sp, #0x10]
+ lsl r1, r1, #4
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0x1a
+ bl FUN_02019064
+ mov r0, #0xd9
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r2, #1
+ mov r1, #0xdb
+ lsl r1, r1, #4
+ str r2, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x85
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r3, #4
+ bl FUN_02019064
+ mov r0, #0xdb
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #6
+ bl FUN_02019620
+ mov r3, #1
+ ldr r0, _0222E46C ; =0x00010406
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r1, _0222E470 ; =0x00000B8C
+ mov r0, #0xdb
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ mov r2, #0
+ bl MOD82_0222F62C
+ mov r0, #0x13
+ str r0, [sp]
+ mov r1, #0x1b
+ str r1, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ str r0, [sp, #0x10]
+ lsl r1, r1, #7
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0x36
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_0222E46C: .word 0x00010406
+_0222E470: .word 0x00000B8C
+ thumb_func_end MOD82_0222E35C
+
+ thumb_func_start MOD82_0222E474
+MOD82_0222E474: ; 0x0222E474
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x36
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0xdb
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0xd9
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0xda
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x37
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r4, pc}
+ thumb_func_end MOD82_0222E474
+
+ thumb_func_start MOD82_0222E4AC
+MOD82_0222E4AC: ; 0x0222E4AC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xb4
+ mov r1, #0x44
+ bl FUN_020219F4
+ ldr r1, _0222E4F4 ; =0x00000B88
+ str r0, [r4, r1]
+ mov r0, #4
+ mov r1, #0x44
+ bl FUN_020219F4
+ mov r1, #0xb9
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #3
+ mov r1, #0x44
+ bl FUN_020219F4
+ ldr r1, _0222E4F8 ; =0x00000B94
+ str r0, [r4, r1]
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #0xa
+ bl FUN_0200A914
+ ldr r1, _0222E4FC ; =0x00000B8C
+ str r0, [r4, r1]
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #0x44
+ bl FUN_020219F4
+ ldr r1, _0222E500 ; =0x00000B98
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0222E4F4: .word 0x00000B88
+_0222E4F8: .word 0x00000B94
+_0222E4FC: .word 0x00000B8C
+_0222E500: .word 0x00000B98
+ thumb_func_end MOD82_0222E4AC
+
+ thumb_func_start MOD82_0222E504
+MOD82_0222E504: ; 0x0222E504
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222E534 ; =0x00000B98
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0222E538 ; =0x00000B8C
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0222E53C ; =0x00000B94
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0xb9
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0222E540 ; =0x00000B88
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .align 2, 0
+_0222E534: .word 0x00000B98
+_0222E538: .word 0x00000B8C
+_0222E53C: .word 0x00000B94
+_0222E540: .word 0x00000B88
+ thumb_func_end MOD82_0222E504
+
+ thumb_func_start MOD82_0222E544
+MOD82_0222E544: ; 0x0222E544
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222E56C ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222E570 ; =0x00000B84
+ mov r2, #0x10
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2e
+ mov r2, #1
+ bl MOD82_0222DF6C
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222E56C: .word 0x00000F0F
+_0222E570: .word 0x00000B84
+ thumb_func_end MOD82_0222E544
+
+ thumb_func_start MOD82_0222E574
+MOD82_0222E574: ; 0x0222E574
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0xeb
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x44
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222E5CC
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _0222E5A8
+ bl FUN_020332DC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD82_0222DFCC
+ mov r0, #0x2c
+ str r0, [r4, #0x1c]
+ b _0222E5CC
+_0222E5A8:
+ ldr r0, _0222E5D4 ; =0x00000F0F
+ mov r1, #0x2e
+ str r0, [sp]
+ lsl r1, r1, #6
+ mov r2, #1
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ add r3, r2, #0
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #2
+ bl MOD82_0222DF6C
+ add r0, r4, #0
+ bl MOD82_0222F700
+_0222E5CC:
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222E5D4: .word 0x00000F0F
+ thumb_func_end MOD82_0222E574
+
+ thumb_func_start MOD82_0222E5D8
+MOD82_0222E5D8: ; 0x0222E5D8
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222E600 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ mov r1, #0x2e
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ mov r2, #8
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2e
+ mov r2, #0x32
+ bl MOD82_0222DF6C
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222E600: .word 0x00000F0F
+ thumb_func_end MOD82_0222E5D8
+
+ thumb_func_start MOD82_0222E604
+MOD82_0222E604: ; 0x0222E604
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xeb
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x44
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222E656
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _0222E636
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ bne _0222E630
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ b _0222E656
+_0222E630:
+ mov r0, #0x27
+ str r0, [r4, #0x1c]
+ b _0222E656
+_0222E636:
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ bne _0222E64C
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD82_0222DFCC
+ mov r0, #0x2c
+ b _0222E64E
+_0222E64C:
+ mov r0, #0x27
+_0222E64E:
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ mov r1, #1
+ str r1, [r0, #0x20]
+_0222E656:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222E604
+
+ thumb_func_start MOD82_0222E65C
+MOD82_0222E65C: ; 0x0222E65C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x2c
+ mov r1, #2
+ mov r2, #1
+ mov r3, #0x14
+ bl MOD04_021DDEE0
+ mov r0, #2
+ bl MOD04_021DDE7C
+ bl MOD04_021DDDCC
+ mov r0, #3
+ str r0, [r4, #0x1c]
+ pop {r4, pc}
+ thumb_func_end MOD82_0222E65C
+
+ thumb_func_start MOD82_0222E67C
+MOD82_0222E67C: ; 0x0222E67C
+ push {r3, r4, lr}
+ sub sp, #0x44
+ add r4, r0, #0
+ bl MOD04_021DDCE8
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ beq _0222E6E8
+ bl MOD04_021DDC1C
+ cmp r0, #4
+ beq _0222E6DE
+ cmp r0, #7
+ beq _0222E6A0
+ cmp r0, #8
+ beq _0222E6C4
+ b _0222E6E8
+_0222E6A0:
+ add r0, sp, #4
+ bl MOD04_021DD808
+ ldr r1, _0222E6F0 ; =0x00000EB8
+ str r0, [r4, r1]
+ ldr r2, [sp, #4]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ bl MOD04_021DD6F0
+ bl MOD04_021DDBBC
+ add r0, r4, #0
+ bl MOD82_0222F724
+ mov r0, #0x35
+ str r0, [r4, #0x1c]
+ b _0222E6E8
+_0222E6C4:
+ add r0, sp, #0
+ bl MOD04_021DD808
+ add r0, r4, #0
+ bl MOD82_0222F724
+ mov r1, #0x33
+ mov r0, #0x3b
+ str r1, [r4, #0x1c]
+ sub r1, #0x35
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ b _0222E6E8
+_0222E6DE:
+ add r0, sp, #8
+ bl MOD04_021DD9DC
+ mov r0, #4
+ str r0, [r4, #0x1c]
+_0222E6E8:
+ mov r0, #3
+ add sp, #0x44
+ pop {r3, r4, pc}
+ nop
+_0222E6F0: .word 0x00000EB8
+ thumb_func_end MOD82_0222E67C
+
+ thumb_func_start MOD82_0222E6F4
+MOD82_0222E6F4: ; 0x0222E6F4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD04_021DE05C
+ cmp r0, #0
+ beq _0222E704
+ mov r0, #5
+ str r0, [r4, #0x1c]
+_0222E704:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD82_0222E6F4
+
+ thumb_func_start MOD82_0222E708
+MOD82_0222E708: ; 0x0222E708
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl MOD04_021DDF4C
+ cmp r0, #3
+ beq _0222E720
+ cmp r0, #4
+ beq _0222E726
+ cmp r0, #5
+ beq _0222E726
+ b _0222E794
+_0222E720:
+ mov r0, #6
+ str r0, [r4, #0x1c]
+ b _0222E794
+_0222E726:
+ add r0, r4, #0
+ bl MOD82_0222F724
+ add r0, sp, #4
+ add r1, sp, #0
+ bl MOD04_021DD718
+ ldr r1, _0222E79C ; =0x00000EB8
+ str r0, [r4, r1]
+ ldr r2, [sp, #4]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ bl MOD04_021DD6F0
+ bl MOD04_021DDBBC
+ ldr r0, [sp]
+ cmp r0, #7
+ bhi _0222E782
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E758: ; jump table
+ .short _0222E782 - _0222E758 - 2 ; case 0
+ .short _0222E768 - _0222E758 - 2 ; case 1
+ .short _0222E768 - _0222E758 - 2 ; case 2
+ .short _0222E782 - _0222E758 - 2 ; case 3
+ .short _0222E76E - _0222E758 - 2 ; case 4
+ .short _0222E782 - _0222E758 - 2 ; case 5
+ .short _0222E778 - _0222E758 - 2 ; case 6
+ .short _0222E77E - _0222E758 - 2 ; case 7
+_0222E768:
+ mov r0, #0x35
+ str r0, [r4, #0x1c]
+ b _0222E782
+_0222E76E:
+ bl MOD04_021EB550
+ mov r0, #0x35
+ str r0, [r4, #0x1c]
+ b _0222E782
+_0222E778:
+ mov r0, #0x35
+ str r0, [r4, #0x1c]
+ b _0222E782
+_0222E77E:
+ bl FUN_020335E0
+_0222E782:
+ ldr r1, [sp, #4]
+ ldr r0, _0222E7A0 ; =0xFFFFB1E0
+ cmp r1, r0
+ bge _0222E794
+ ldr r0, _0222E7A4 ; =0xFFFF8AD1
+ cmp r1, r0
+ blt _0222E794
+ mov r0, #0x35
+ str r0, [r4, #0x1c]
+_0222E794:
+ mov r0, #3
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0222E79C: .word 0x00000EB8
+_0222E7A0: .word 0xFFFFB1E0
+_0222E7A4: .word 0xFFFF8AD1
+ thumb_func_end MOD82_0222E708
+
+ thumb_func_start MOD82_0222E7A8
+MOD82_0222E7A8: ; 0x0222E7A8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02023830
+ cmp r0, #0
+ bne _0222E7C2
+ ldr r1, [r5]
+ ldr r0, [r1, #8]
+ ldr r1, [r1, #0x1c]
+ bl FUN_02023834
+_0222E7C2:
+ ldr r0, [r5]
+ ldr r0, [r0, #8]
+ bl FUN_02023830
+ add r4, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0, #0x14]
+ bl FUN_02096D68
+ add r3, r0, #0
+ add r2, r1, #0
+ add r0, r4, #0
+ add r1, r3, #0
+ bl MOD82_0222D5C0
+ mov r0, #7
+ str r0, [r5, #0x1c]
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD82_0222E7A8
+
+ thumb_func_start MOD82_0222E7E8
+MOD82_0222E7E8: ; 0x0222E7E8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD82_0222D920
+ mov r0, #8
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD82_0222E7E8
+
+ thumb_func_start MOD82_0222E7F8
+MOD82_0222E7F8: ; 0x0222E7F8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD82_0222D7C4
+ cmp r0, #0
+ beq _0222E8AA
+ bl MOD82_0222D7E4
+ add r1, r0, #7
+ cmp r1, #9
+ bhi _0222E8AA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222E81A: ; jump table
+ .short _0222E882 - _0222E81A - 2 ; case 0
+ .short _0222E894 - _0222E81A - 2 ; case 1
+ .short _0222E8A6 - _0222E81A - 2 ; case 2
+ .short _0222E882 - _0222E81A - 2 ; case 3
+ .short _0222E8AA - _0222E81A - 2 ; case 4
+ .short _0222E894 - _0222E81A - 2 ; case 5
+ .short _0222E870 - _0222E81A - 2 ; case 6
+ .short _0222E82E - _0222E81A - 2 ; case 7
+ .short _0222E85E - _0222E81A - 2 ; case 8
+ .short _0222E870 - _0222E81A - 2 ; case 9
+_0222E82E:
+ add r0, r4, #0
+ bl MOD82_0222F724
+ ldr r0, [r4]
+ ldr r0, [r0, #0x18]
+ cmp r0, #0
+ beq _0222E846
+ cmp r0, #1
+ beq _0222E852
+ cmp r0, #2
+ beq _0222E858
+ b _0222E8AA
+_0222E846:
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #0xb
+ bl MOD82_0222DF6C
+ b _0222E8AA
+_0222E852:
+ mov r0, #0x17
+ str r0, [r4, #0x1c]
+ b _0222E8AA
+_0222E858:
+ mov r0, #0x1b
+ str r0, [r4, #0x1c]
+ b _0222E8AA
+_0222E85E:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222E8AA
+_0222E870:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222E8AA
+_0222E882:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222E8AA
+_0222E894:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222E8AA
+_0222E8A6:
+ bl FUN_020335E0
+_0222E8AA:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222E7F8
+
+ thumb_func_start MOD82_0222E8B0
+MOD82_0222E8B0: ; 0x0222E8B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x38]
+ bl MOD82_0222D7F0
+ mov r0, #0xa
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F700
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD82_0222E8B0
+
+ thumb_func_start MOD82_0222E8C8
+MOD82_0222E8C8: ; 0x0222E8C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD82_0222D7C4
+ cmp r0, #0
+ beq _0222E954
+ bl MOD82_0222D7E4
+ add r1, r0, #7
+ cmp r1, #6
+ bhi _0222E944
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222E8EA: ; jump table
+ .short _0222E928 - _0222E8EA - 2 ; case 0
+ .short _0222E91C - _0222E8EA - 2 ; case 1
+ .short _0222E934 - _0222E8EA - 2 ; case 2
+ .short _0222E928 - _0222E8EA - 2 ; case 3
+ .short _0222E910 - _0222E8EA - 2 ; case 4
+ .short _0222E904 - _0222E8EA - 2 ; case 5
+ .short _0222E8F8 - _0222E8EA - 2 ; case 6
+_0222E8F8:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ b _0222E94E
+_0222E904:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ b _0222E94E
+_0222E910:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ b _0222E94E
+_0222E91C:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ b _0222E94E
+_0222E928:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ b _0222E94E
+_0222E934:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ bl FUN_020335E0
+ b _0222E94E
+_0222E944:
+ cmp r0, #0
+ ble _0222E94E
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0x1c]
+_0222E94E:
+ add r0, r4, #0
+ bl MOD82_0222F724
+_0222E954:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD82_0222E8C8
+
+ thumb_func_start MOD82_0222E958
+MOD82_0222E958: ; 0x0222E958
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222E980 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222E984 ; =0x00000B7C
+ mov r2, #0
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0xc
+ bl MOD82_0222DF6C
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222E980: .word 0x00000F0F
+_0222E984: .word 0x00000B7C
+ thumb_func_end MOD82_0222E958
+
+ thumb_func_start MOD82_0222E988
+MOD82_0222E988: ; 0x0222E988
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xda
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #0xa
+ bl FUN_0200CCA4
+ mov r1, #0xb9
+ mov r0, #0xda
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x44]
+ add r0, r4, r0
+ mov r3, #3
+ bl MOD82_0222F694
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD82_0222F6D8
+ mov r0, #0xda
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_020191D0
+ mov r0, #0xd
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD82_0222E988
+
+ thumb_func_start MOD82_0222E9CC
+MOD82_0222E9CC: ; 0x0222E9CC
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ ldr r2, _0222EA9C ; =0x021C48B8
+ mov r1, #0x40
+ ldr r3, [r2, #0x4c]
+ add r4, r0, #0
+ tst r1, r3
+ beq _0222EA08
+ ldr r0, [r4, #0x44]
+ add r1, r0, #1
+ str r1, [r4, #0x44]
+ ldr r0, [r4, #0x40]
+ cmp r1, r0
+ ble _0222E9EC
+ mov r0, #1
+ str r0, [r4, #0x44]
+_0222E9EC:
+ mov r1, #0xb9
+ mov r0, #0xda
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x44]
+ add r0, r4, r0
+ mov r3, #3
+ bl MOD82_0222F694
+ ldr r0, _0222EAA0 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222EA94
+_0222EA08:
+ mov r1, #0x80
+ tst r1, r3
+ beq _0222EA38
+ ldr r0, [r4, #0x44]
+ sub r0, r0, #1
+ str r0, [r4, #0x44]
+ cmp r0, #1
+ bge _0222EA1C
+ ldr r0, [r4, #0x40]
+ str r0, [r4, #0x44]
+_0222EA1C:
+ mov r1, #0xb9
+ mov r0, #0xda
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x44]
+ add r0, r4, r0
+ mov r3, #3
+ bl MOD82_0222F694
+ ldr r0, _0222EAA0 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222EA94
+_0222EA38:
+ ldr r2, [r2, #0x48]
+ mov r1, #1
+ tst r1, r2
+ beq _0222EA7C
+ add r0, sp, #0
+ add r1, sp, #0x10
+ bl MOD04_021DE1F8
+ ldr r0, [r4]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x44]
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ ldr r0, [r0, #4]
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ add r3, sp, #0
+ bl FUN_0202A6B4
+ cmp r0, #0
+ beq _0222EA66
+ mov r0, #0x12
+ b _0222EA68
+_0222EA66:
+ mov r0, #0xe
+_0222EA68:
+ mov r1, #0
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD82_0222F6D8
+ ldr r0, _0222EAA0 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222EA94
+_0222EA7C:
+ mov r1, #2
+ tst r1, r2
+ beq _0222EA94
+ mov r1, #0
+ add r2, r1, #0
+ bl MOD82_0222F6D8
+ mov r0, #0x13
+ str r0, [r4, #0x1c]
+ ldr r0, _0222EAA0 ; =0x000005DC
+ bl FUN_020054C8
+_0222EA94:
+ mov r0, #3
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ nop
+_0222EA9C: .word 0x021C48B8
+_0222EAA0: .word 0x000005DC
+ thumb_func_end MOD82_0222E9CC
+
+ thumb_func_start MOD82_0222EAA4
+MOD82_0222EAA4: ; 0x0222EAA4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0222EB00 ; =0x00000B78
+ ldr r2, [r4, #0x44]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, _0222EB00 ; =0x00000B78
+ ldr r2, [r4, #0x3c]
+ ldr r0, [r4, r0]
+ bl FUN_0200AD38
+ ldr r0, _0222EB04 ; =0x00000F0F
+ mov r2, #1
+ str r0, [sp]
+ ldr r1, _0222EB08 ; =0x00000B7C
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ add r3, r2, #0
+ bl MOD82_0222F4D8
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0xf
+ bl MOD82_0222DF6C
+ add r4, #0x48
+ ldr r2, _0222EB0C ; =0x00000A38
+ mov r0, #0
+ add r1, r4, #0
+ bl MIi_CpuClearFast
+ mov r0, #3
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_0222EB00: .word 0x00000B78
+_0222EB04: .word 0x00000F0F
+_0222EB08: .word 0x00000B7C
+_0222EB0C: .word 0x00000A38
+ thumb_func_end MOD82_0222EAA4
+
+ thumb_func_start MOD82_0222EB10
+MOD82_0222EB10: ; 0x0222EB10
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222EB38 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222EB3C ; =0x00000B7C
+ mov r2, #2
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F4D8
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0xb
+ bl MOD82_0222DF6C
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222EB38: .word 0x00000F0F
+_0222EB3C: .word 0x00000B7C
+ thumb_func_end MOD82_0222EB10
+
+ thumb_func_start MOD82_0222EB40
+MOD82_0222EB40: ; 0x0222EB40
+ push {r4, lr}
+ add r4, r0, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x38]
+ ldr r1, [r4, #0x44]
+ add r2, #0x48
+ bl MOD82_0222D840
+ add r0, r4, #0
+ bl MOD82_0222F700
+ mov r0, #0x10
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222EB40
+
+ thumb_func_start MOD82_0222EB60
+MOD82_0222EB60: ; 0x0222EB60
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ bl MOD82_0222D7C4
+ cmp r0, #0
+ beq _0222EC44
+ bl MOD82_0222D7E4
+ add r1, r0, #7
+ cmp r1, #7
+ bhi _0222EC44
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222EB84: ; jump table
+ .short _0222EC1E - _0222EB84 - 2 ; case 0
+ .short _0222EC0C - _0222EB84 - 2 ; case 1
+ .short _0222EC30 - _0222EB84 - 2 ; case 2
+ .short _0222EBFA - _0222EB84 - 2 ; case 3
+ .short _0222EBFA - _0222EB84 - 2 ; case 4
+ .short _0222EBE8 - _0222EB84 - 2 ; case 5
+ .short _0222EBD6 - _0222EB84 - 2 ; case 6
+ .short _0222EB94 - _0222EB84 - 2 ; case 7
+_0222EB94:
+ ldr r0, [r4]
+ ldr r2, [r4, #0x38]
+ ldr r3, [r4, #0x44]
+ add r1, r4, #0
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #4]
+ add r1, #0x48
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0202A754
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x11
+ bl MOD82_0222DF6C
+ add r0, sp, #0
+ add r1, sp, #0x10
+ bl MOD04_021DE1F8
+ ldr r0, [r4]
+ ldr r1, [r4, #0x3c]
+ ldr r2, [r4, #0x44]
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ ldr r0, [r0, #4]
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ add r3, sp, #0
+ bl FUN_0202A60C
+ b _0222EC44
+_0222EBD6:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EC44
+_0222EBE8:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EC44
+_0222EBFA:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #9
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EC44
+_0222EC0C:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EC44
+_0222EC1E:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EC44
+_0222EC30:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ bl FUN_020335E0
+_0222EC44:
+ mov r0, #3
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222EB60
+
+ thumb_func_start MOD82_0222EC4C
+MOD82_0222EC4C: ; 0x0222EC4C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222EC80 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222EC84 ; =0x00000B7C
+ mov r2, #3
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0x2b
+ bl MOD82_0222DF6C
+ add r0, r4, #0
+ bl MOD82_0222F724
+ ldr r0, [r4]
+ mov r1, #0
+ str r1, [r0, #0x20]
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222EC80: .word 0x00000F0F
+_0222EC84: .word 0x00000B7C
+ thumb_func_end MOD82_0222EC4C
+
+ thumb_func_start MOD82_0222EC88
+MOD82_0222EC88: ; 0x0222EC88
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222ECB4 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222ECB8 ; =0x00000B7C
+ mov r2, #7
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0x18
+ bl MOD82_0222DF6C
+ add r0, r4, #0
+ bl MOD82_0222F700
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222ECB4: .word 0x00000F0F
+_0222ECB8: .word 0x00000B7C
+ thumb_func_end MOD82_0222EC88
+
+ thumb_func_start MOD82_0222ECBC
+MOD82_0222ECBC: ; 0x0222ECBC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ ldr r0, [r0]
+ bl FUN_0202A524
+ add r4, r0, #0
+ ldr r0, [r5]
+ add r1, sp, #0
+ ldr r0, [r0, #4]
+ bl FUN_0202A784
+ ldr r0, [r5]
+ mov r2, #0x2a
+ lsl r2, r2, #6
+ ldr r0, [r0, #0xc]
+ mov r1, #1
+ add r2, r5, r2
+ bl FUN_02066840
+ add r1, sp, #0
+ ldrb r0, [r1]
+ mov r3, #0x2a
+ lsl r3, r3, #6
+ ldrb r1, [r1, #1]
+ add r2, r4, #0
+ add r3, r5, r3
+ bl MOD82_0222D8A0
+ mov r0, #0x19
+ str r0, [r5, #0x1c]
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222ECBC
+
+ thumb_func_start MOD82_0222ED00
+MOD82_0222ED00: ; 0x0222ED00
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD82_0222D7C4
+ cmp r0, #0
+ beq _0222EDB8
+ bl MOD82_0222D7E4
+ add r1, r0, #7
+ cmp r1, #7
+ bhi _0222EDB8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222ED22: ; jump table
+ .short _0222ED92 - _0222ED22 - 2 ; case 0
+ .short _0222ED80 - _0222ED22 - 2 ; case 1
+ .short _0222EDA4 - _0222ED22 - 2 ; case 2
+ .short _0222ED92 - _0222ED22 - 2 ; case 3
+ .short _0222ED6E - _0222ED22 - 2 ; case 4
+ .short _0222ED5C - _0222ED22 - 2 ; case 5
+ .short _0222ED4A - _0222ED22 - 2 ; case 6
+ .short _0222ED32 - _0222ED22 - 2 ; case 7
+_0222ED32:
+ ldr r0, [r4]
+ mov r1, #5
+ ldr r0, [r0]
+ mov r2, #2
+ bl FUN_0202A578
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x1a
+ bl MOD82_0222DF6C
+ b _0222EDB8
+_0222ED4A:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EDB8
+_0222ED5C:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EDB8
+_0222ED6E:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EDB8
+_0222ED80:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EDB8
+_0222ED92:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222EDB8
+_0222EDA4:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ bl FUN_020335E0
+_0222EDB8:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD82_0222ED00
+
+ thumb_func_start MOD82_0222EDBC
+MOD82_0222EDBC: ; 0x0222EDBC
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222EDF0 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222EDF4 ; =0x00000B7C
+ mov r2, #8
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0x2b
+ bl MOD82_0222DF6C
+ add r0, r4, #0
+ bl MOD82_0222F724
+ ldr r0, [r4]
+ mov r1, #0
+ str r1, [r0, #0x20]
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222EDF0: .word 0x00000F0F
+_0222EDF4: .word 0x00000B7C
+ thumb_func_end MOD82_0222EDBC
+
+ thumb_func_start MOD82_0222EDF8
+MOD82_0222EDF8: ; 0x0222EDF8
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222EE20 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222EE24 ; =0x00000B7C
+ mov r2, #5
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0x1c
+ bl MOD82_0222DF6C
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222EE20: .word 0x00000F0F
+_0222EE24: .word 0x00000B7C
+ thumb_func_end MOD82_0222EDF8
+
+ thumb_func_start MOD82_0222EE28
+MOD82_0222EE28: ; 0x0222EE28
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [r4, #0x3c]
+ mov r0, #0xd9
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #0xa
+ bl FUN_0200CCA4
+ ldr r1, _0222EE70 ; =0x00000B94
+ mov r0, #0xd9
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x3c]
+ add r0, r4, r0
+ mov r3, #2
+ bl MOD82_0222F694
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD82_0222F6D8
+ mov r0, #0xd9
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_020191D0
+ mov r0, #0x1d
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_0222EE70: .word 0x00000B94
+ thumb_func_end MOD82_0222EE28
+
+ thumb_func_start MOD82_0222EE74
+MOD82_0222EE74: ; 0x0222EE74
+ push {r4, lr}
+ ldr r2, _0222EF18 ; =0x021C48B8
+ mov r1, #0x40
+ ldr r3, [r2, #0x4c]
+ add r4, r0, #0
+ tst r1, r3
+ beq _0222EEAA
+ ldr r0, [r4, #0x3c]
+ add r0, r0, #1
+ str r0, [r4, #0x3c]
+ cmp r0, #0xa
+ ble _0222EE90
+ mov r0, #1
+ str r0, [r4, #0x3c]
+_0222EE90:
+ ldr r1, _0222EF1C ; =0x00000B94
+ mov r0, #0xd9
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x3c]
+ add r0, r4, r0
+ mov r3, #2
+ bl MOD82_0222F694
+ ldr r0, _0222EF20 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222EF12
+_0222EEAA:
+ mov r1, #0x80
+ tst r1, r3
+ beq _0222EED8
+ ldr r0, [r4, #0x3c]
+ sub r0, r0, #1
+ str r0, [r4, #0x3c]
+ cmp r0, #1
+ bge _0222EEBE
+ mov r0, #0xa
+ str r0, [r4, #0x3c]
+_0222EEBE:
+ ldr r1, _0222EF1C ; =0x00000B94
+ mov r0, #0xd9
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x3c]
+ add r0, r4, r0
+ mov r3, #2
+ bl MOD82_0222F694
+ ldr r0, _0222EF20 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222EF12
+_0222EED8:
+ ldr r2, [r2, #0x48]
+ mov r1, #1
+ tst r1, r2
+ beq _0222EEFA
+ mov r1, #0
+ add r2, r1, #0
+ bl MOD82_0222F6D8
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #0x1e
+ bl MOD82_0222DF6C
+ ldr r0, _0222EF20 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222EF12
+_0222EEFA:
+ mov r1, #2
+ tst r1, r2
+ beq _0222EF12
+ mov r1, #0
+ add r2, r1, #0
+ bl MOD82_0222F6D8
+ mov r0, #0x15
+ str r0, [r4, #0x1c]
+ ldr r0, _0222EF20 ; =0x000005DC
+ bl FUN_020054C8
+_0222EF12:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_0222EF18: .word 0x021C48B8
+_0222EF1C: .word 0x00000B94
+_0222EF20: .word 0x000005DC
+ thumb_func_end MOD82_0222EE74
+
+ thumb_func_start MOD82_0222EF24
+MOD82_0222EF24: ; 0x0222EF24
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222EF4C ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222EF50 ; =0x00000B7C
+ mov r2, #6
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0x1f
+ bl MOD82_0222DF6C
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222EF4C: .word 0x00000F0F
+_0222EF50: .word 0x00000B7C
+ thumb_func_end MOD82_0222EF24
+
+ thumb_func_start MOD82_0222EF54
+MOD82_0222EF54: ; 0x0222EF54
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [r4, #0x44]
+ mov r0, #0xda
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #0xa
+ bl FUN_0200CCA4
+ mov r1, #0xb9
+ mov r0, #0xda
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x44]
+ add r0, r4, r0
+ mov r3, #3
+ bl MOD82_0222F694
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD82_0222F6D8
+ mov r0, #0xda
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_020191D0
+ mov r0, #0x20
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD82_0222EF54
+
+ thumb_func_start MOD82_0222EF9C
+MOD82_0222EF9C: ; 0x0222EF9C
+ push {r4, lr}
+ ldr r2, _0222F040 ; =0x021C48B8
+ mov r1, #0x40
+ ldr r3, [r2, #0x4c]
+ add r4, r0, #0
+ tst r1, r3
+ beq _0222EFD8
+ ldr r0, [r4, #0x44]
+ add r1, r0, #1
+ str r1, [r4, #0x44]
+ ldr r0, [r4, #0x40]
+ add r0, r0, #1
+ cmp r1, r0
+ bne _0222EFBC
+ mov r0, #1
+ str r0, [r4, #0x44]
+_0222EFBC:
+ mov r1, #0xb9
+ mov r0, #0xda
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x44]
+ add r0, r4, r0
+ mov r3, #3
+ bl MOD82_0222F694
+ ldr r0, _0222F044 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222F03C
+_0222EFD8:
+ mov r1, #0x80
+ tst r1, r3
+ beq _0222F008
+ ldr r0, [r4, #0x44]
+ sub r0, r0, #1
+ str r0, [r4, #0x44]
+ cmp r0, #1
+ bge _0222EFEC
+ ldr r0, [r4, #0x40]
+ str r0, [r4, #0x44]
+_0222EFEC:
+ mov r1, #0xb9
+ mov r0, #0xda
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r2, [r4, #0x44]
+ add r0, r4, r0
+ mov r3, #3
+ bl MOD82_0222F694
+ ldr r0, _0222F044 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222F03C
+_0222F008:
+ ldr r2, [r2, #0x48]
+ mov r1, #1
+ tst r1, r2
+ beq _0222F024
+ mov r1, #0
+ add r2, r1, #0
+ bl MOD82_0222F6D8
+ mov r0, #0x21
+ str r0, [r4, #0x1c]
+ ldr r0, _0222F044 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222F03C
+_0222F024:
+ mov r1, #2
+ tst r1, r2
+ beq _0222F03C
+ mov r1, #0
+ add r2, r1, #0
+ bl MOD82_0222F6D8
+ mov r0, #0x1b
+ str r0, [r4, #0x1c]
+ ldr r0, _0222F044 ; =0x000005DC
+ bl FUN_020054C8
+_0222F03C:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F040: .word 0x021C48B8
+_0222F044: .word 0x000005DC
+ thumb_func_end MOD82_0222EF9C
+
+ thumb_func_start MOD82_0222F048
+MOD82_0222F048: ; 0x0222F048
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0222F09C ; =0x00000B78
+ ldr r2, [r4, #0x44]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, _0222F09C ; =0x00000B78
+ ldr r2, [r4, #0x3c]
+ ldr r0, [r4, r0]
+ bl FUN_0200AD38
+ ldr r0, _0222F0A0 ; =0x00000F0F
+ mov r2, #1
+ str r0, [sp]
+ ldr r1, _0222F0A4 ; =0x00000B7C
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ add r3, r2, #0
+ bl MOD82_0222F4D8
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0x22
+ bl MOD82_0222DF6C
+ mov r0, #0x22
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_0222F09C: .word 0x00000B78
+_0222F0A0: .word 0x00000F0F
+_0222F0A4: .word 0x00000B7C
+ thumb_func_end MOD82_0222F048
+
+ thumb_func_start MOD82_0222F0A8
+MOD82_0222F0A8: ; 0x0222F0A8
+ push {r4, lr}
+ add r4, r0, #0
+ add r2, r4, #0
+ ldr r0, [r4, #0x3c]
+ ldr r1, [r4, #0x44]
+ add r2, #0x48
+ bl MOD82_0222D840
+ mov r0, #0x23
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F700
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222F0A8
+
+ thumb_func_start MOD82_0222F0C8
+MOD82_0222F0C8: ; 0x0222F0C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD82_0222D7C4
+ cmp r0, #0
+ beq _0222F18C
+ bl MOD82_0222D7E4
+ add r1, r0, #7
+ cmp r1, #7
+ bhi _0222F18C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222F0EA: ; jump table
+ .short _0222F166 - _0222F0EA - 2 ; case 0
+ .short _0222F154 - _0222F0EA - 2 ; case 1
+ .short _0222F178 - _0222F0EA - 2 ; case 2
+ .short _0222F166 - _0222F0EA - 2 ; case 3
+ .short _0222F142 - _0222F0EA - 2 ; case 4
+ .short _0222F130 - _0222F0EA - 2 ; case 5
+ .short _0222F11E - _0222F0EA - 2 ; case 6
+ .short _0222F0FA - _0222F0EA - 2 ; case 7
+_0222F0FA:
+ ldr r0, [r4]
+ ldr r2, [r4, #0x3c]
+ ldr r3, [r4, #0x44]
+ ldr r1, _0222F190 ; =0x00000684
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #4]
+ add r1, r4, r1
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0202A838
+ add r0, r4, #0
+ mov r1, #0x25
+ mov r2, #0x24
+ bl MOD82_0222DF6C
+ b _0222F18C
+_0222F11E:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222F18C
+_0222F130:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222F18C
+_0222F142:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #9
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222F18C
+_0222F154:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222F18C
+_0222F166:
+ mov r1, #9
+ str r1, [r4, #0x1c]
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ b _0222F18C
+_0222F178:
+ mov r1, #0x3b
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ mov r0, #0x33
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+ bl FUN_020335E0
+_0222F18C:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F190: .word 0x00000684
+ thumb_func_end MOD82_0222F0C8
+
+ thumb_func_start MOD82_0222F194
+MOD82_0222F194: ; 0x0222F194
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222F1C8 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222F1CC ; =0x00000B7C
+ mov r2, #3
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0x2b
+ bl MOD82_0222DF6C
+ add r0, r4, #0
+ bl MOD82_0222F724
+ ldr r0, [r4]
+ mov r1, #0
+ str r1, [r0, #0x20]
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222F1C8: .word 0x00000F0F
+_0222F1CC: .word 0x00000B7C
+ thumb_func_end MOD82_0222F194
+
+ thumb_func_start MOD82_0222F1D0
+MOD82_0222F1D0: ; 0x0222F1D0
+ mov r1, #0x27
+ str r1, [r0, #0x1c]
+ mov r0, #3
+ bx lr
+ thumb_func_end MOD82_0222F1D0
+
+ thumb_func_start MOD82_0222F1D8
+MOD82_0222F1D8: ; 0x0222F1D8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #2
+ ldr r0, [r0, #0xc]
+ bl FUN_02022840
+ mov r0, #0x26
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222F1D8
+
+ thumb_func_start MOD82_0222F1F0
+MOD82_0222F1F0: ; 0x0222F1F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #0xc]
+ bl FUN_02022854
+ cmp r0, #2
+ bne _0222F20A
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD82_0222F724
+_0222F20A:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222F1F0
+
+ thumb_func_start MOD82_0222F210
+MOD82_0222F210: ; 0x0222F210
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222F238 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222F23C ; =0x00000B7C
+ mov r2, #4
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2e
+ mov r2, #0x14
+ bl MOD82_0222DF6C
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222F238: .word 0x00000F0F
+_0222F23C: .word 0x00000B7C
+ thumb_func_end MOD82_0222F210
+
+ thumb_func_start MOD82_0222F240
+MOD82_0222F240: ; 0x0222F240
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xeb
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x44
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F26E
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _0222F264
+ mov r0, #0xb
+ str r0, [r4, #0x1c]
+ b _0222F26E
+_0222F264:
+ mov r0, #0x27
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ mov r1, #1
+ str r1, [r0, #0x20]
+_0222F26E:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222F240
+
+ thumb_func_start MOD82_0222F274
+MOD82_0222F274: ; 0x0222F274
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222F29C ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222F2A0 ; =0x00000B7C
+ mov r2, #9
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2e
+ mov r2, #0x16
+ bl MOD82_0222DF6C
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222F29C: .word 0x00000F0F
+_0222F2A0: .word 0x00000B7C
+ thumb_func_end MOD82_0222F274
+
+ thumb_func_start MOD82_0222F2A4
+MOD82_0222F2A4: ; 0x0222F2A4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xeb
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x44
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F2D2
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _0222F2C8
+ mov r0, #0x1b
+ str r0, [r4, #0x1c]
+ b _0222F2D2
+_0222F2C8:
+ mov r0, #0x27
+ str r0, [r4, #0x1c]
+ ldr r0, [r4]
+ mov r1, #1
+ str r1, [r0, #0x20]
+_0222F2D2:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222F2A4
+
+ thumb_func_start MOD82_0222F2D8
+MOD82_0222F2D8: ; 0x0222F2D8
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222F300 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222F304 ; =0x00000B84
+ mov r2, #0x19
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2d
+ mov r2, #0x28
+ bl MOD82_0222DF6C
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222F300: .word 0x00000F0F
+_0222F304: .word 0x00000B84
+ thumb_func_end MOD82_0222F2D8
+
+ thumb_func_start MOD82_0222F308
+MOD82_0222F308: ; 0x0222F308
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD04_021DDBBC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD82_0222DFCC
+ mov r0, #0x29
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222F308
+
+ thumb_func_start MOD82_0222F324
+MOD82_0222F324: ; 0x0222F324
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222F350 ; =0x00000F0F
+ add r4, r0, #0
+ str r1, [sp]
+ ldr r1, _0222F354 ; =0x00000B84
+ mov r2, #0x1a
+ ldr r1, [r4, r1]
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r4, #0
+ mov r1, #0x2f
+ mov r2, #0x2c
+ bl MOD82_0222DF6C
+ ldr r0, _0222F358 ; =0x00000EC4
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #3
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222F350: .word 0x00000F0F
+_0222F354: .word 0x00000B84
+_0222F358: .word 0x00000EC4
+ thumb_func_end MOD82_0222F324
+
+ thumb_func_start MOD82_0222F35C
+MOD82_0222F35C: ; 0x0222F35C
+ mov r0, #3
+ bx lr
+ thumb_func_end MOD82_0222F35C
+
+ thumb_func_start MOD82_0222F360
+MOD82_0222F360: ; 0x0222F360
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ bl FUN_02033ED0
+ bl FUN_020332DC
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x44
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ mov r0, #4
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD82_0222F360
+
+ thumb_func_start MOD82_0222F390
+MOD82_0222F390: ; 0x0222F390
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xeb
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x44
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F3B8
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _0222F3B4
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ b _0222F3B8
+_0222F3B4:
+ mov r0, #0x27
+ str r0, [r4, #0x1c]
+_0222F3B8:
+ mov r0, #3
+ pop {r4, pc}
+ thumb_func_end MOD82_0222F390
+
+ thumb_func_start MOD82_0222F3BC
+MOD82_0222F3BC: ; 0x0222F3BC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x3b
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r4, #0
+ add r0, r0, #7
+ cmp r0, #9
+ bhi _0222F400
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222F3DA: ; jump table
+ .short _0222F3FA - _0222F3DA - 2 ; case 0
+ .short _0222F3EE - _0222F3DA - 2 ; case 1
+ .short _0222F400 - _0222F3DA - 2 ; case 2
+ .short _0222F3FA - _0222F3DA - 2 ; case 3
+ .short _0222F3FE - _0222F3DA - 2 ; case 4
+ .short _0222F3EE - _0222F3DA - 2 ; case 5
+ .short _0222F3F6 - _0222F3DA - 2 ; case 6
+ .short _0222F400 - _0222F3DA - 2 ; case 7
+ .short _0222F3F2 - _0222F3DA - 2 ; case 8
+ .short _0222F3F6 - _0222F3DA - 2 ; case 9
+_0222F3EE:
+ mov r4, #0xd
+ b _0222F400
+_0222F3F2:
+ mov r4, #0xb
+ b _0222F400
+_0222F3F6:
+ mov r4, #0xc
+ b _0222F400
+_0222F3FA:
+ mov r4, #0xe
+ b _0222F400
+_0222F3FE:
+ mov r4, #0xf
+_0222F400:
+ add r0, r5, #0
+ bl MOD82_0222F724
+ ldr r0, _0222F428 ; =0x00000F0F
+ ldr r1, _0222F42C ; =0x00000B7C
+ str r0, [sp]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #1
+ bl MOD82_0222F59C
+ add r0, r5, #0
+ mov r1, #0x2d
+ mov r2, #0x34
+ bl MOD82_0222DF6C
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+ nop
+_0222F428: .word 0x00000F0F
+_0222F42C: .word 0x00000B7C
+ thumb_func_end MOD82_0222F3BC
+
+ thumb_func_start MOD82_0222F430
+MOD82_0222F430: ; 0x0222F430
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_020332DC
+ bl MOD04_021DDBBC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD82_0222DFCC
+ mov r0, #0x2c
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222F430
+
+ thumb_func_start MOD82_0222F450
+MOD82_0222F450: ; 0x0222F450
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222F46C ; =0x00000B9C
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0222F468
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0x1c]
+_0222F468:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F46C: .word 0x00000B9C
+ thumb_func_end MOD82_0222F450
+
+ thumb_func_start MOD82_0222F470
+MOD82_0222F470: ; 0x0222F470
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222F49C ; =0x00000B9C
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0222F498
+ ldr r0, _0222F4A0 ; =0x00000EC4
+ ldr r0, [r4, r0]
+ cmp r0, #0x1e
+ ble _0222F490
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0x1c]
+_0222F490:
+ ldr r0, _0222F4A0 ; =0x00000EC4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_0222F498:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F49C: .word 0x00000B9C
+_0222F4A0: .word 0x00000EC4
+ thumb_func_end MOD82_0222F470
+
+ thumb_func_start MOD82_0222F4A4
+MOD82_0222F4A4: ; 0x0222F4A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222F4D4 ; =0x00000B9C
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0222F4CE
+ mov r2, #0x91
+ ldr r0, [r4, #4]
+ mov r1, #0xd
+ lsl r2, r2, #2
+ bl MOD82_0222DF38
+ mov r1, #0xeb
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0x1c]
+_0222F4CE:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_0222F4D4: .word 0x00000B9C
+ thumb_func_end MOD82_0222F4A4
+
+ thumb_func_start MOD82_0222F4D8
+MOD82_0222F4D8: ; 0x0222F4D8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ add r4, r3, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r1, _0222F53C ; =0x00000B78
+ add r2, r6, #0
+ ldr r0, [r5, r1]
+ add r1, #0x10
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ mov r0, #0x36
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x36
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ mov r0, #0x36
+ lsl r0, r0, #6
+ ldr r2, _0222F540 ; =0x00000B88
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ ldr r1, _0222F544 ; =0x00000B9C
+ str r0, [r5, r1]
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222F53C: .word 0x00000B78
+_0222F540: .word 0x00000B88
+_0222F544: .word 0x00000B9C
+ thumb_func_end MOD82_0222F4D8
+
+ thumb_func_start MOD82_0222F548
+MOD82_0222F548: ; 0x0222F548
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222F56C ; =0x00000EBC
+ ldr r0, [r4, r0]
+ neg r0, r0
+ bl MOD04_021D80E0
+ ldr r2, _0222F56C ; =0x00000EBC
+ add r1, r0, #0
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ neg r2, r2
+ bl MOD82_0222F7C0
+ mov r0, #0x36
+ str r0, [r4, #0x1c]
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F56C: .word 0x00000EBC
+ thumb_func_end MOD82_0222F548
+
+ thumb_func_start MOD82_0222F570
+MOD82_0222F570: ; 0x0222F570
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222F598 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ bne _0222F584
+ mov r0, #2
+ tst r0, r1
+ beq _0222F594
+_0222F584:
+ mov r0, #0x37
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0
+ str r0, [r4, #0x1c]
+_0222F594:
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+_0222F598: .word 0x021C48B8
+ thumb_func_end MOD82_0222F570
+
+ thumb_func_start MOD82_0222F59C
+MOD82_0222F59C: ; 0x0222F59C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ ldr r2, _0222F5EC ; =0x00000B88
+ add r4, r3, #0
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r0, #0x36
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x36
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ mov r0, #0x36
+ lsl r0, r0, #6
+ ldr r2, _0222F5EC ; =0x00000B88
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ ldr r1, _0222F5F0 ; =0x00000B9C
+ str r0, [r5, r1]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222F5EC: .word 0x00000B88
+_0222F5F0: .word 0x00000B9C
+ thumb_func_end MOD82_0222F59C
+
+ thumb_func_start MOD82_0222F5F4
+MOD82_0222F5F4: ; 0x0222F5F4
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r3, #1
+ beq _0222F602
+ cmp r3, #2
+ beq _0222F618
+ b _0222F626
+_0222F602:
+ ldr r0, [sp, #0xc]
+ mov r2, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r1, r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r2, r0, #1
+ b _0222F626
+_0222F618:
+ ldr r0, [sp, #0xc]
+ mov r2, #0
+ bl FUN_02002E14
+ ldrb r1, [r4, #7]
+ lsl r1, r1, #3
+ sub r2, r1, r0
+_0222F626:
+ add r0, r2, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD82_0222F5F4
+
+ thumb_func_start MOD82_0222F62C
+MOD82_0222F62C: ; 0x0222F62C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r3, #0
+ ldr r3, [sp, #0x24]
+ add r5, r0, #0
+ str r3, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r6, r1, #0
+ bl MOD82_0222F5F4
+ add r3, r0, #0
+ str r4, [sp]
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #1
+ add r2, r6, #0
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD82_0222F62C
+
+ thumb_func_start MOD82_0222F660
+MOD82_0222F660: ; 0x0222F660
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r3, #0
+ ldr r3, [sp, #0x24]
+ add r5, r0, #0
+ str r3, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ ldr r3, [sp, #0x20]
+ add r6, r1, #0
+ bl MOD82_0222F5F4
+ add r3, r0, #0
+ str r4, [sp]
+ mov r1, #0
+ ldr r0, [sp, #0x24]
+ str r1, [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}
+ .align 2, 0
+ thumb_func_end MOD82_0222F660
+
+ thumb_func_start MOD82_0222F694
+MOD82_0222F694: ; 0x0222F694
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ mov r1, #0xf
+ add r5, r0, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_02019620
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ mov r3, #2
+ bl FUN_02021B04
+ mov r3, #1
+ ldr r0, _0222F6CC ; =0x00010200
+ str r3, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD82_0222F660
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F6CC: .word 0x00010200
+ thumb_func_end MOD82_0222F694
+
+ thumb_func_start MOD82_0222F6D0
+MOD82_0222F6D0: ; 0x0222F6D0
+ ldr r3, _0222F6D4 ; =FUN_02033E74
+ bx r3
+ .align 2, 0
+_0222F6D4: .word FUN_02033E74
+ thumb_func_end MOD82_0222F6D0
+
+ thumb_func_start MOD82_0222F6D8
+MOD82_0222F6D8: ; 0x0222F6D8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ cmp r1, #1
+ bhi _0222F6F6
+ ldr r0, _0222F6F8 ; =0x00000D78
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ ldr r0, _0222F6FC ; =0x00000D7C
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+_0222F6F6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F6F8: .word 0x00000D78
+_0222F6FC: .word 0x00000D7C
+ thumb_func_end MOD82_0222F6D8
+
+ thumb_func_start MOD82_0222F700
+MOD82_0222F700: ; 0x0222F700
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222F720 ; =0x00000EB4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F71C
+ mov r0, #0x36
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0200D858
+ ldr r1, _0222F720 ; =0x00000EB4
+ str r0, [r4, r1]
+_0222F71C:
+ pop {r4, pc}
+ nop
+_0222F720: .word 0x00000EB4
+ thumb_func_end MOD82_0222F700
+
+ thumb_func_start MOD82_0222F724
+MOD82_0222F724: ; 0x0222F724
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222F73C ; =0x00000EB4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F73A
+ bl FUN_0200DBFC
+ ldr r0, _0222F73C ; =0x00000EB4
+ mov r1, #0
+ str r1, [r4, r0]
+_0222F73A:
+ pop {r4, pc}
+ .align 2, 0
+_0222F73C: .word 0x00000EB4
+ thumb_func_end MOD82_0222F724
+
+ thumb_func_start MOD82_0222F740
+MOD82_0222F740: ; 0x0222F740
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #1
+ add r6, r1, #0
+ lsl r0, r0, #8
+ mov r1, #0x44
+ bl FUN_020219F4
+ add r4, r0, #0
+ ldr r0, _0222F7B0 ; =0x00000B84
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ ldr r1, _0222F7B4 ; =0x00000B78
+ add r2, r4, #0
+ ldr r0, [r5, r1]
+ add r1, #0x20
+ ldr r1, [r5, r1]
+ bl FUN_0200B7B8
+ mov r0, #0x37
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x37
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ mov r0, #0x37
+ lsl r0, r0, #6
+ ldr r2, _0222F7B8 ; =0x00000B98
+ str r3, [sp, #8]
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ ldr r1, _0222F7BC ; =0x00000B9C
+ str r0, [r5, r1]
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222F7B0: .word 0x00000B84
+_0222F7B4: .word 0x00000B78
+_0222F7B8: .word 0x00000B98
+_0222F7BC: .word 0x00000B9C
+ thumb_func_end MOD82_0222F740
+
+ thumb_func_start MOD82_0222F7C0
+MOD82_0222F7C0: ; 0x0222F7C0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _0222F7D2
+ mov r4, #0xb
+_0222F7D2:
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0222F800 ; =0x00000B78
+ mov r1, #0
+ ldr r0, [r5, r0]
+ mov r3, #5
+ bl FUN_0200AD38
+ mov r0, #0x36
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD82_0222F740
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_0222F800: .word 0x00000B78
+ thumb_func_end MOD82_0222F7C0
+
+ .section .rodata
+ ; 0x0222F804
+ .incbin "baserom.nds", 0x2F1244, 0xC8
+
+ .section .data
+ ; 0x0222F8E0
+ .incbin "baserom.nds", 0x2F1320, 0x220
+
+ .section .bss
+ ; 0x0222FB00
+ .space 0x120
diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s
new file mode 100644
index 00000000..1eda08dc
--- /dev/null
+++ b/arm9/modules/83/asm/module_83.s
@@ -0,0 +1,26448 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD83_0222D5C0
+MOD83_0222D5C0: ; 0x0222D5C0
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD83_0222D5C0
+
+ thumb_func_start MOD83_0222D5C4
+MOD83_0222D5C4: ; 0x0222D5C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ add r5, r0, #0
+ mov r0, #5
+ lsl r0, r0, #6
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0222D63C
+ mov r1, #0x4f
+ mov r0, #0
+ add r3, r5, #0
+ lsl r1, r1, #2
+_0222D5E0:
+ ldr r2, [r3, r1]
+ cmp r2, #1
+ bne _0222D632
+ lsl r1, r0, #2
+ add r3, r5, r1
+ mov r1, #0x4f
+ add r6, r0, #0
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r3, r1]
+ mov r3, #0x1c
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r1, r1, #4
+ ldr r7, _0222D670 ; =0x0223A794
+ mul r6, r3
+ add r4, r7, r6
+ ldr r3, [r4, #0x10]
+ add r0, sp, #8
+ add r1, r5, r1
+ bl MOD83_022388E4
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0xc]
+ add r0, sp, #8
+ mov r3, #0x13
+ bl MOD83_02238934
+ ldr r0, [r4, #0x14]
+ add r1, sp, #8
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r2, [r7, r6]
+ ldr r3, [r4, #4]
+ bl MOD83_02238A38
+ add sp, #0x5c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0222D632:
+ add r0, r0, #1
+ add r3, r3, #4
+ cmp r0, #1
+ blt _0222D5E0
+ b _0222D668
+_0222D63C:
+ ldr r0, _0222D674 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0222D662
+ ldr r0, _0222D678 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #5
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #5
+ lsl r0, r0, #6
+ add r0, r5, r0
+ bl FUN_02019178
+_0222D662:
+ add sp, #0x5c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0222D668:
+ mov r0, #0
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222D670: .word 0x0223A794
+_0222D674: .word 0x021C48B8
+_0222D678: .word 0x000005DC
+ thumb_func_end MOD83_0222D5C4
+
+ thumb_func_start MOD83_0222D67C
+MOD83_0222D67C: ; 0x0222D67C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0
+ bl MOD83_02236E18
+ mov r4, #0
+ str r4, [r5, #0x24]
+ cmp r0, #0
+ bne _0222D6E6
+ bl MOD83_02236E9C
+ cmp r0, #4
+ bhi _0222D6BE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222D6A2: ; jump table
+ .short _0222D6AC - _0222D6A2 - 2 ; case 0
+ .short _0222D6B0 - _0222D6A2 - 2 ; case 1
+ .short _0222D6B4 - _0222D6A2 - 2 ; case 2
+ .short _0222D6B8 - _0222D6A2 - 2 ; case 3
+ .short _0222D6BC - _0222D6A2 - 2 ; case 4
+_0222D6AC:
+ mov r4, #2
+ b _0222D6BE
+_0222D6B0:
+ mov r4, #1
+ b _0222D6BE
+_0222D6B4:
+ mov r4, #5
+ b _0222D6BE
+_0222D6B8:
+ mov r4, #4
+ b _0222D6BE
+_0222D6BC:
+ mov r4, #3
+_0222D6BE:
+ add r0, r4, #0
+ bl FUN_02016438
+ ldr r0, [r5, #8]
+ bl FUN_02024CA4
+ cmp r0, #0
+ beq _0222D6E6
+ bl MOD83_02236EA8
+ ldr r1, _0222D6E8 ; =0x020ECAC4
+ ldrb r1, [r1]
+ cmp r1, r0
+ bne _0222D6E6
+ bl MOD83_02236E9C
+ add r0, r0, #1
+ str r0, [r5, #0x24]
+ bl MOD83_02239490
+_0222D6E6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222D6E8: .word 0x020ECAC4
+ thumb_func_end MOD83_0222D67C
+
+ thumb_func_start MOD83_0222D6EC
+MOD83_0222D6EC: ; 0x0222D6EC
+ push {r4, lr}
+ mov r1, #0x43
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ sub r0, #0xa
+ cmp r0, #4
+ bhi _0222D7DC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222D708: ; jump table
+ .short _0222D712 - _0222D708 - 2 ; case 0
+ .short _0222D718 - _0222D708 - 2 ; case 1
+ .short _0222D7DC - _0222D708 - 2 ; case 2
+ .short _0222D74C - _0222D708 - 2 ; case 3
+ .short _0222D7D0 - _0222D708 - 2 ; case 4
+_0222D712:
+ mov r0, #0xb
+ str r0, [r4, r1]
+ pop {r4, pc}
+_0222D718:
+ ldr r0, [r4, #4]
+ bl FUN_02032D44
+ mov r1, #0x78
+ add r0, r1, #0
+ add r0, #0x98
+ str r1, [r4, r0]
+ mov r1, #0xd
+ add r0, r1, #0
+ add r0, #0xff
+ str r1, [r4, r0]
+ mov r0, #0
+ str r0, [r4, #0x40]
+ ldr r0, [r4, #0x14]
+ bl FUN_0202AF50
+ cmp r0, #1
+ bne _0222D7DC
+ ldr r1, [r4, #0x40]
+ mov r0, #1
+ orr r1, r0
+ str r1, [r4, #0x40]
+ ldr r1, [r4, #0x44]
+ orr r0, r1
+ str r0, [r4, #0x44]
+ pop {r4, pc}
+_0222D74C:
+ add r1, #0xc
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _0222D7DC
+ bl FUN_02032D9C
+ ldr r1, [r4, #0x40]
+ bic r0, r1
+ beq _0222D7B2
+ mov r2, #0x45
+ lsl r2, r2, #2
+ ldr r3, [r4, r2]
+ cmp r3, #0xf
+ bne _0222D7B2
+ add r2, r2, #4
+ ldr r2, [r4, r2]
+ cmp r2, #0
+ bne _0222D7B2
+ cmp r1, r0
+ beq _0222D7B2
+ mov r2, #1
+ add r1, r0, #0
+ str r2, [r4, #0x48]
+ tst r1, r2
+ beq _0222D782
+ str r2, [r4, #0x34]
+ add r0, r2, #0
+_0222D782:
+ mov r1, #2
+ add r2, r0, #0
+ tst r2, r1
+ beq _0222D790
+ mov r0, #1
+ str r0, [r4, #0x2c]
+ add r0, r1, #0
+_0222D790:
+ mov r1, #4
+ add r2, r0, #0
+ tst r2, r1
+ beq _0222D79E
+ mov r0, #1
+ str r0, [r4, #0x30]
+ add r0, r1, #0
+_0222D79E:
+ mov r1, #3
+ tst r1, r0
+ beq _0222D7AC
+ mov r1, #0x4e
+ mov r2, #1
+ lsl r1, r1, #2
+ str r2, [r4, r1]
+_0222D7AC:
+ ldr r1, [r4, #0x40]
+ orr r0, r1
+ str r0, [r4, #0x40]
+_0222D7B2:
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222D7DC
+ bl FUN_02032D80
+ mov r0, #0x43
+ mov r1, #0xc
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0222D7D0:
+ bl FUN_02032D80
+ mov r0, #0x43
+ mov r1, #0xc
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222D7DC:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222D6EC
+
+ thumb_func_start MOD83_0222D7E0
+MOD83_0222D7E0: ; 0x0222D7E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ mov r1, #0x45
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ sub r0, #0xf
+ cmp r0, #4
+ bls _0222D7F4
+ b _0222D994
+_0222D7F4:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222D800: ; jump table
+ .short _0222D80A - _0222D800 - 2 ; case 0
+ .short _0222D832 - _0222D800 - 2 ; case 1
+ .short _0222D85E - _0222D800 - 2 ; case 2
+ .short _0222D932 - _0222D800 - 2 ; case 3
+ .short _0222D974 - _0222D800 - 2 ; case 4
+_0222D80A:
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222D818
+ add sp, #0x60
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222D818:
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ sub r2, r0, #1
+ add r0, r1, #4
+ str r2, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222D82C
+ mov r0, #0x10
+ str r0, [r4, r1]
+_0222D82C:
+ add sp, #0x60
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222D832:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x51
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #2
+ bl FUN_0200CB00
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02018744
+ ldr r1, _0222D99C ; =0x00006B5A
+ ldr r0, _0222D9A0 ; =0x05000042
+ strh r1, [r0]
+ mov r0, #0x45
+ mov r1, #0x11
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222D994
+_0222D85E:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ add r1, #0x10
+ str r0, [sp, #4]
+ add r0, sp, #0xc
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #0xc
+ bl MOD83_022388E4
+ ldr r0, [r4, #0x44]
+ ldr r1, [r4, #0x40]
+ mvn r0, r0
+ and r0, r1
+ mov r1, #1
+ add r2, r0, #0
+ tst r2, r1
+ beq _0222D892
+ ldr r2, [r4, #0x38]
+ tst r1, r2
+ beq _0222D88E
+ ldr r5, _0222D9A4 ; =0x0223A7F0
+ b _0222D8B2
+_0222D88E:
+ ldr r5, _0222D9A8 ; =0x0223A804
+ b _0222D8B2
+_0222D892:
+ mov r1, #2
+ add r2, r0, #0
+ tst r2, r1
+ beq _0222D8A8
+ ldr r2, [r4, #0x38]
+ tst r1, r2
+ beq _0222D8A4
+ ldr r5, _0222D9AC ; =0x0223A818
+ b _0222D8B2
+_0222D8A4:
+ ldr r5, _0222D9B0 ; =0x0223A82C
+ b _0222D8B2
+_0222D8A8:
+ mov r1, #0x80
+ tst r1, r0
+ beq _0222D8B2
+ ldr r5, _0222D9B4 ; =0x0223A840
+ mov r0, #0
+_0222D8B2:
+ ldr r1, [r4, #0x44]
+ mov r3, #0x13
+ orr r0, r1
+ str r0, [r4, #0x44]
+ ldr r1, [r5, #8]
+ ldr r2, [r5, #0xc]
+ add r0, sp, #0xc
+ bl MOD83_02238934
+ mov r0, #1
+ str r0, [sp, #0x38]
+ ldr r0, [r5, #0x10]
+ add r1, sp, #0xc
+ str r0, [sp]
+ ldr r0, [r4]
+ ldr r2, [r5]
+ ldr r3, [r5, #4]
+ bl MOD83_02238A38
+ ldr r0, [sp, #0x1c]
+ bl FUN_0201AB14
+ add r6, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_0201AB18
+ add r7, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_0201AB0C
+ add r5, r0, #0
+ ldr r0, [sp, #0x1c]
+ bl FUN_0201AB10
+ str r5, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #1
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_020186B4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r1, #0x1e
+ add r0, r1, #0
+ add r0, #0xfe
+ str r1, [r4, r0]
+ mov r0, #0x12
+ add r1, #0xf6
+ str r0, [r4, r1]
+ b _0222D994
+_0222D932:
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222D94A
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ add r1, #8
+ sub r0, r0, #1
+ str r0, [r4, r1]
+ b _0222D994
+_0222D94A:
+ ldr r0, _0222D9B8 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #3
+ tst r0, r2
+ beq _0222D994
+ add r1, #0x10
+ add r0, r4, r1
+ bl FUN_02019178
+ mov r0, #0x45
+ mov r1, #0x13
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r1, _0222D9B8 ; =0x021C48B8
+ add r0, #0xc
+ ldr r1, [r1, #0x48]
+ str r1, [r4, r0]
+ ldr r0, _0222D9BC ; =0x000005DC
+ bl FUN_020054C8
+ b _0222D994
+_0222D974:
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x45
+ mov r1, #0xf
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222D994:
+ mov r0, #1
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222D99C: .word 0x00006B5A
+_0222D9A0: .word 0x05000042
+_0222D9A4: .word 0x0223A7F0
+_0222D9A8: .word 0x0223A804
+_0222D9AC: .word 0x0223A818
+_0222D9B0: .word 0x0223A82C
+_0222D9B4: .word 0x0223A840
+_0222D9B8: .word 0x021C48B8
+_0222D9BC: .word 0x000005DC
+ thumb_func_end MOD83_0222D7E0
+
+ thumb_func_start MOD83_0222D9C0
+MOD83_0222D9C0: ; 0x0222D9C0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ sub r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, r1
+ beq _0222DA48
+ sub r1, r1, r0
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ asr r2, r0, #0x1f
+ add r1, r0, #0
+ eor r1, r2
+ sub r2, r1, r2
+ mov r1, #3
+ lsl r1, r1, #0xe
+ cmp r2, r1
+ ble _0222D9F6
+ cmp r0, #0
+ ble _0222D9F4
+ add r0, r1, #0
+ b _0222D9F6
+_0222D9F4:
+ ldr r0, _0222DA4C ; =0xFFFF4000
+_0222D9F6:
+ mov r1, #0x41
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ ldr r2, [r4, r1]
+ sub r2, r0, r2
+ asr r3, r2, #0x1f
+ eor r2, r3
+ sub r3, r2, r3
+ add r2, r1, #0
+ add r2, #0xfc
+ cmp r3, r2
+ bge _0222DA18
+ str r0, [r4, r1]
+_0222DA18:
+ mov r3, #0x41
+ lsl r3, r3, #2
+ ldr r5, [r4, r3]
+ ldr r0, [r4]
+ asr r3, r5, #0xb
+ lsr r3, r3, #0x14
+ add r3, r5, r3
+ mov r1, #0
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_0201AEE4
+ mov r3, #0x41
+ lsl r3, r3, #2
+ ldr r0, [r4]
+ ldr r4, [r4, r3]
+ mov r1, #2
+ asr r3, r4, #0xb
+ lsr r3, r3, #0x14
+ add r3, r4, r3
+ mov r2, #3
+ asr r3, r3, #0xc
+ bl FUN_0201AEE4
+_0222DA48:
+ pop {r3, r4, r5, pc}
+ nop
+_0222DA4C: .word 0xFFFF4000
+ thumb_func_end MOD83_0222D9C0
+
+ thumb_func_start MOD83_0222DA50
+MOD83_0222DA50: ; 0x0222DA50
+ push {r3, r4, r5, lr}
+ sub sp, #0x40
+ ldr r5, _0222DB4C ; =0x0223A380
+ add r4, r0, #0
+ add r3, sp, #0x18
+ mov r2, #5
+_0222DA5C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222DA5C
+ ldr r3, _0222DB50 ; =0x0223A370
+ add r2, sp, #8
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, sp, #0x18
+ bl FUN_0201E66C
+ add r0, sp, #8
+ bl FUN_02016BBC
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #0xf
+ ldr r0, [r4]
+ mov r2, #2
+ lsl r3, r3, #0xc
+ bl MOD83_022387D8
+ ldr r1, _0222DB54 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ mov r3, #0x51
+ bic r2, r0
+ mov r0, #2
+ orr r0, r2
+ strh r0, [r1]
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ mov r0, #2
+ lsl r0, r0, #0xe
+ str r0, [sp]
+ mov r1, #1
+ mov r3, #0x36
+ ldr r0, [r4]
+ add r2, r1, #0
+ lsl r3, r3, #0xa
+ bl MOD83_022387D8
+ ldr r1, _0222DB58 ; =0x0400000A
+ mov r0, #3
+ ldrh r2, [r1]
+ mov r3, #0x51
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ mov r3, #0xe
+ ldr r0, [r4]
+ add r2, r1, #0
+ lsl r3, r3, #0xc
+ bl MOD83_022387D8
+ ldr r1, _0222DB5C ; =0x0400000C
+ mov r0, #3
+ ldrh r2, [r1]
+ mov r3, #0x51
+ bic r2, r0
+ strh r2, [r1]
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ bl FUN_0201BD5C
+ mov r0, #0
+ mov r1, #0x20
+ mov r2, #0x51
+ bl FUN_02002ED0
+ mov r0, #0
+ add r1, r0, #0
+ mov r2, #0x51
+ bl FUN_02002ED0
+ mov r2, #5
+ mov r1, #0
+ lsl r2, r2, #0x18
+ ldr r0, _0222DB60 ; =0x00006B5A
+ strh r1, [r2]
+ strh r0, [r2, #0x3e]
+ str r1, [sp]
+ mov r0, #0x51
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #1
+ mov r3, #2
+ bl FUN_0200CB00
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x51
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #3
+ bl FUN_0200CB00
+ ldr r1, _0222DB60 ; =0x00006B5A
+ ldr r0, _0222DB64 ; =0x05000042
+ strh r1, [r0]
+ add sp, #0x40
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222DB4C: .word 0x0223A380
+_0222DB50: .word 0x0223A370
+_0222DB54: .word 0x04000008
+_0222DB58: .word 0x0400000A
+_0222DB5C: .word 0x0400000C
+_0222DB60: .word 0x00006B5A
+_0222DB64: .word 0x05000042
+ thumb_func_end MOD83_0222DA50
+
+ thumb_func_start MOD83_0222DB68
+MOD83_0222DB68: ; 0x0222DB68
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #0x25
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x27
+ mov r2, #0x24
+ mov r3, #0x26
+ bl MOD83_02238BC4
+ mov r0, #0
+ mov r1, #0x15
+ str r0, [sp]
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #0x80
+ mov r3, #8
+ bl MOD83_02238DBC
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #1
+ mov r1, #0x55
+ str r0, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r2, #0x80
+ mov r3, #0xb8
+ bl MOD83_02238DBC
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #8
+ pop {r4, pc}
+ thumb_func_end MOD83_0222DB68
+
+ thumb_func_start MOD83_0222DBD0
+MOD83_0222DBD0: ; 0x0222DBD0
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x51
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x29
+ mov r2, #0
+ mov r3, #0x80
+ bl FUN_02006930
+ mov r0, #0xe
+ lsl r0, r0, #6
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0x51
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x74
+ mov r1, #0x28
+ mov r3, #2
+ bl FUN_0200687C
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222DBD0
+
+ thumb_func_start MOD83_0222DC10
+MOD83_0222DC10: ; 0x0222DC10
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ mov r1, #2
+ add r6, r2, #0
+ add r7, r3, #0
+ bl FUN_0201886C
+ ldr r1, _0222DC5C ; =0x00004380
+ cmp r7, #2
+ bne _0222DC2A
+ add r1, r1, #2
+_0222DC2A:
+ lsl r2, r6, #5
+ add r3, r4, r2
+ lsl r2, r3, #1
+ add r3, r3, #1
+ strh r1, [r0, r2]
+ add r2, r1, #1
+ lsl r3, r3, #1
+ strh r2, [r0, r3]
+ add r3, r1, #0
+ add r2, r6, #1
+ lsl r2, r2, #5
+ add r4, r4, r2
+ add r3, #8
+ lsl r2, r4, #1
+ strh r3, [r0, r2]
+ add r2, r4, #1
+ add r1, #9
+ lsl r2, r2, #1
+ strh r1, [r0, r2]
+ ldr r0, [r5]
+ mov r1, #2
+ bl FUN_02017CD0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222DC5C: .word 0x00004380
+ thumb_func_end MOD83_0222DC10
+
+ thumb_func_start MOD83_0222DC60
+MOD83_0222DC60: ; 0x0222DC60
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r1, #2
+ bl FUN_0201886C
+ lsl r1, r6, #5
+ add r3, r4, r1
+ ldr r1, _0222DC9C ; =0x00004384
+ lsl r2, r3, #1
+ strh r1, [r0, r2]
+ add r2, r3, #1
+ lsl r2, r2, #1
+ strh r1, [r0, r2]
+ add r2, r6, #1
+ lsl r2, r2, #5
+ add r3, r4, r2
+ lsl r2, r3, #1
+ strh r1, [r0, r2]
+ add r2, r3, #1
+ lsl r2, r2, #1
+ strh r1, [r0, r2]
+ ldr r0, [r5]
+ mov r1, #2
+ bl FUN_02017CD0
+ pop {r4, r5, r6, pc}
+ nop
+_0222DC9C: .word 0x00004384
+ thumb_func_end MOD83_0222DC60
+
+ thumb_func_start MOD83_0222DCA0
+MOD83_0222DCA0: ; 0x0222DCA0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ add r0, r2, #0
+ add r7, r3, #0
+ ldr r2, [sp, #0x28]
+ mov r3, #0x51
+ bl FUN_0200A9C4
+ add r5, r0, #0
+ mov r0, #0
+ mov r1, #2
+ bl FUN_02002E4C
+ add r2, r0, #0
+ mov r0, #0
+ add r1, r5, #0
+ bl FUN_02002E14
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ add r4, #0x20
+ sub r3, r0, r4
+ ldr r0, [sp, #0x2c]
+ mov r1, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r7, [sp, #8]
+ add r0, r6, #0
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_0222DCA0
+
+ thumb_func_start MOD83_0222DCF4
+MOD83_0222DCF4: ; 0x0222DCF4
+ push {r3, lr}
+ sub sp, #8
+ add r2, r1, #0
+ cmp r2, #0x64
+ blt _0222DD04
+ mov r3, #3
+ mov r1, #0
+ b _0222DD12
+_0222DD04:
+ cmp r2, #0xa
+ blt _0222DD0E
+ mov r3, #3
+ mov r1, #1
+ b _0222DD12
+_0222DD0E:
+ mov r3, #2
+ mov r1, #1
+_0222DD12:
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r1, #0
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222DCF4
+
+ thumb_func_start MOD83_0222DD24
+MOD83_0222DD24: ; 0x0222DD24
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r2, [sp, #0x18]
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r4, r3, #0
+ ldr r2, _0222DEB4 ; =0x000001EE
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x51
+ bl FUN_0200A86C
+ str r0, [sp, #0x24]
+ mov r0, #0x51
+ bl FUN_0200AA80
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0xc]
+ bl FUN_020239CC
+ cmp r0, #1
+ bne _0222DD58
+ ldr r0, _0222DEB8 ; =0x0003040F
+ str r0, [sp, #0x1c]
+ b _0222DD5C
+_0222DD58:
+ ldr r0, _0222DEBC ; =0x0007080F
+ str r0, [sp, #0x1c]
+_0222DD5C:
+ ldr r0, [sp, #0x14]
+ ldr r1, _0222DEC0 ; =0x0223A85C
+ lsl r0, r0, #4
+ str r0, [sp, #0x20]
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x18]
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ mov r2, #3
+ ldr r0, [r0]
+ add r3, r4, #0
+ bl MOD83_02238A38
+ ldr r4, _0222DEC4 ; =0x0223A784
+ mov r6, #1
+ mov r5, #0x10
+_0222DD7C:
+ cmp r6, #4
+ bne _0222DD88
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x4c]
+ cmp r0, #0
+ beq _0222DDB8
+_0222DD88:
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x24]
+ ldr r2, [r4]
+ mov r3, #0x51
+ bl FUN_0200A9C4
+ add r7, r0, #0
+ str r5, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ add r2, r7, #0
+ ldr r0, [r0, #0x10]
+ mov r3, #0x20
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+_0222DDB8:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #5
+ blo _0222DD7C
+ ldr r2, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ ldr r2, [r2, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ mov r0, #0x10
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, #0x10]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x1c]
+ bl MOD83_0222DCA0
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x10]
+ bl FUN_02029EBC
+ add r1, r0, #0
+ ldr r0, [sp, #0x28]
+ bl MOD83_0222DCF4
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x10]
+ bl FUN_02029EC0
+ add r2, r0, #0
+ mov r3, #2
+ ldr r0, [sp, #0x28]
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ bl FUN_0200AD38
+ mov r0, #0x11
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, #0x10]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x1c]
+ bl MOD83_0222DCA0
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ ldr r2, [sp, #0x10]
+ str r3, [sp, #4]
+ ldr r0, [sp, #0x28]
+ ldr r2, [r2, #0x50]
+ bl FUN_0200AD38
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x30
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, #0x10]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x1c]
+ bl MOD83_0222DCA0
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x4c]
+ cmp r0, #0
+ beq _0222DE76
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #8]
+ bl FUN_02024440
+ add r1, r0, #0
+ ldr r0, [sp, #0x28]
+ bl MOD83_0222DCF4
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, #0x10]
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x1c]
+ bl MOD83_0222DCA0
+_0222DE76:
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x18]
+ ldr r0, [sp, #0x18]
+ ldr r2, [r2, #0x38]
+ ldr r3, [r3, #0x3c]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x10]
+ mov r1, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_0200CCA4
+ ldr r1, _0222DEC8 ; =0x0223A854
+ ldr r0, [sp, #0x20]
+ ldr r2, [r1, r0]
+ ldr r0, [sp, #0x14]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x10]
+ add r0, r0, r1
+ add r0, #0xcc
+ str r2, [r0]
+ ldr r0, [sp, #0x28]
+ bl FUN_0200AB18
+ ldr r0, [sp, #0x24]
+ bl FUN_0200A8B8
+ mov r0, #1
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DEB4: .word 0x000001EE
+_0222DEB8: .word 0x0003040F
+_0222DEBC: .word 0x0007080F
+_0222DEC0: .word 0x0223A85C
+_0222DEC4: .word 0x0223A784
+_0222DEC8: .word 0x0223A854
+ thumb_func_end MOD83_0222DD24
+
+ thumb_func_start MOD83_0222DECC
+MOD83_0222DECC: ; 0x0222DECC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r5, r1, #0
+ add r1, r2, #0
+ ldr r2, [r4, #0x24]
+ add r6, r3, #0
+ cmp r2, #0
+ bne _0222DEE4
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_0222DEE4:
+ sub r2, r2, #1
+ cmp r2, #4
+ bhi _0222DF12
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0222DEF6: ; jump table
+ .short _0222DF00 - _0222DEF6 - 2 ; case 0
+ .short _0222DF04 - _0222DEF6 - 2 ; case 1
+ .short _0222DF08 - _0222DEF6 - 2 ; case 2
+ .short _0222DF0C - _0222DEF6 - 2 ; case 3
+ .short _0222DF10 - _0222DEF6 - 2 ; case 4
+_0222DF00:
+ mov r0, #4
+ b _0222DF12
+_0222DF04:
+ mov r0, #5
+ b _0222DF12
+_0222DF08:
+ mov r0, #6
+ b _0222DF12
+_0222DF0C:
+ mov r0, #7
+ b _0222DF12
+_0222DF10:
+ mov r0, #8
+_0222DF12:
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r2, #3
+ add r3, r6, #0
+ bl MOD83_02238A38
+ add r0, r4, #0
+ mov r1, #0x1a
+ add r2, r6, #0
+ bl MOD83_0222DC60
+ ldr r0, _0222DF3C ; =0x0223A854
+ lsl r1, r5, #4
+ ldr r1, [r0, r1]
+ lsl r0, r5, #2
+ add r0, r4, r0
+ add r0, #0xcc
+ str r1, [r0]
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222DF3C: .word 0x0223A854
+ thumb_func_end MOD83_0222DECC
+
+ thumb_func_start MOD83_0222DF40
+MOD83_0222DF40: ; 0x0222DF40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0x34]
+ add r4, r1, #0
+ add r7, r3, #0
+ str r2, [sp, #4]
+ cmp r0, #0
+ bne _0222DF88
+ ldr r0, [r5, #0x14]
+ bl FUN_0202AF50
+ cmp r0, #1
+ bne _0222DF60
+ mov r0, #1
+ str r0, [r5, #0x34]
+_0222DF60:
+ ldr r0, [r5, #4]
+ bl FUN_02023788
+ bl FUN_02023820
+ cmp r0, #1
+ bne _0222DF72
+ mov r0, #1
+ str r0, [r5, #0x34]
+_0222DF72:
+ mov r0, #0x51
+ bl MOD83_022385FC
+ bl MOD83_02238700
+ cmp r0, #0
+ beq _0222DF88
+ mov r0, #1
+ str r0, [r5, #0x34]
+ bl MOD83_02239450
+_0222DF88:
+ ldr r0, [r5, #0x34]
+ cmp r0, #1
+ bne _0222DF98
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0
+ bne _0222DF98
+ mov r0, #0
+ str r0, [r5, #0x34]
+_0222DF98:
+ ldr r0, [r5, #0x34]
+ cmp r0, #1
+ bne _0222DFDC
+ ldr r0, _0222DFE4 ; =0x0223A85C
+ lsl r6, r4, #4
+ ldr r0, [r0, r6]
+ ldr r1, [sp, #4]
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #3
+ add r3, r7, #0
+ bl MOD83_02238A38
+ add r0, r5, #0
+ mov r1, #0x1a
+ add r2, r7, #0
+ bl MOD83_0222DC60
+ ldr r0, _0222DFE8 ; =0x0223A854
+ ldr r1, [r0, r6]
+ lsl r0, r4, #2
+ add r0, r5, r0
+ add r0, #0xcc
+ str r1, [r0]
+ ldr r1, [r5, #0x38]
+ mov r0, #1
+ orr r0, r1
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #0x14]
+ bl FUN_0202AF60
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222DFDC:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222DFE4: .word 0x0223A85C
+_0222DFE8: .word 0x0223A854
+ thumb_func_end MOD83_0222DF40
+
+ thumb_func_start MOD83_0222DFEC
+MOD83_0222DFEC: ; 0x0222DFEC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x2c]
+ add r4, r1, #0
+ add r7, r3, #0
+ cmp r0, #1
+ bne _0222E03C
+ ldr r0, [r5, #0x4c]
+ cmp r0, #1
+ bne _0222E03C
+ ldr r0, _0222E040 ; =0x0223A85C
+ lsl r6, r4, #4
+ ldr r0, [r0, r6]
+ add r1, r2, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #3
+ bl MOD83_02238A38
+ add r0, r5, #0
+ mov r1, #0x1a
+ add r2, r7, #0
+ mov r3, #1
+ bl MOD83_0222DC10
+ lsl r3, r4, #2
+ add r1, r5, r3
+ mov r0, #1
+ add r1, #0xe8
+ str r0, [r1]
+ ldr r1, _0222E044 ; =0x0223A854
+ ldr r2, [r1, r6]
+ add r1, r5, r3
+ add r1, #0xcc
+ str r2, [r1]
+ ldr r2, [r5, #0x38]
+ mov r1, #2
+ orr r1, r2
+ str r1, [r5, #0x38]
+ pop {r3, r4, r5, r6, r7, pc}
+_0222E03C:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E040: .word 0x0223A85C
+_0222E044: .word 0x0223A854
+ thumb_func_end MOD83_0222DFEC
+
+ thumb_func_start MOD83_0222E048
+MOD83_0222E048: ; 0x0222E048
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ add r5, r1, #0
+ add r7, r3, #0
+ cmp r0, #1
+ bne _0222E08A
+ ldr r0, _0222E090 ; =0x0223A85C
+ lsl r6, r5, #4
+ ldr r0, [r0, r6]
+ add r1, r2, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r2, #3
+ bl MOD83_02238A38
+ lsl r5, r5, #2
+ add r0, r4, r5
+ mov r3, #1
+ add r0, #0xe8
+ str r3, [r0]
+ add r0, r4, #0
+ mov r1, #0x1a
+ add r2, r7, #0
+ bl MOD83_0222DC10
+ ldr r0, _0222E094 ; =0x0223A854
+ ldr r1, [r0, r6]
+ add r0, r4, r5
+ add r0, #0xcc
+ str r1, [r0]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222E08A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E090: .word 0x0223A85C
+_0222E094: .word 0x0223A854
+ thumb_func_end MOD83_0222E048
+
+ thumb_func_start MOD83_0222E098
+MOD83_0222E098: ; 0x0222E098
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, _0222E0D4 ; =0x0223A85C
+ lsl r6, r4, #4
+ ldr r0, [r0, r6]
+ add r1, r2, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #3
+ add r7, r3, #0
+ bl MOD83_02238A38
+ lsl r4, r4, #2
+ add r0, r5, r4
+ mov r3, #2
+ add r0, #0xe8
+ str r3, [r0]
+ add r0, r5, #0
+ mov r1, #0x1a
+ add r2, r7, #0
+ bl MOD83_0222DC10
+ ldr r0, _0222E0D8 ; =0x0223A854
+ ldr r1, [r0, r6]
+ add r0, r5, r4
+ add r0, #0xcc
+ str r1, [r0]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E0D4: .word 0x0223A85C
+_0222E0D8: .word 0x0223A854
+ thumb_func_end MOD83_0222E098
+
+ thumb_func_start MOD83_0222E0DC
+MOD83_0222E0DC: ; 0x0222E0DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x70
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x13
+ str r0, [r7, #0x20]
+ ldr r0, [sp, #0xc]
+ ldr r4, _0222E1F0 ; =0x0223A854
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ str r0, [sp, #8]
+ add r0, #0x5c
+ str r0, [sp, #8]
+ add r0, r7, #0
+ str r0, [sp, #0x14]
+ add r0, #0x20
+ mov r5, #1
+ str r7, [sp, #0x18]
+ str r0, [sp, #0x14]
+_0222E104:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r1, [sp, #8]
+ ldr r3, _0222E1F4 ; =0x000001EE
+ add r0, sp, #0x1c
+ mov r2, #1
+ bl MOD83_022388E4
+ ldr r2, [r4, #4]
+ ldr r3, [r7, #0x20]
+ add r0, sp, #0x1c
+ mov r1, #0x1a
+ bl MOD83_02238934
+ ldr r0, [r4, #0xc]
+ mov ip, r0
+ cmp r0, #0
+ beq _0222E1A4
+ ldr r0, [sp, #0x18]
+ add r0, #0xcc
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0222E188
+ ldr r0, [sp, #0x2c]
+ mov r1, #3
+ bl FUN_0201AB1C
+ lsl r1, r5, #0x18
+ ldr r0, [sp, #0x2c]
+ lsr r1, r1, #0x18
+ bl FUN_0201AB20
+ ldr r2, [sp, #0x54]
+ ldr r3, [sp, #0x58]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x2c]
+ mov r1, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_0200CCA4
+ ldr r0, [sp, #0x18]
+ add r0, #0xe8
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _0222E172
+ add r0, r7, #0
+ mov r1, #0x1a
+ add r2, r5, #0
+ bl MOD83_0222DC10
+ b _0222E17C
+_0222E172:
+ add r0, r7, #0
+ mov r1, #0x1a
+ add r2, r5, #0
+ bl MOD83_0222DC60
+_0222E17C:
+ ldr r0, [r4, #4]
+ add r0, r0, #2
+ add r5, r5, r0
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0222E1C2
+_0222E188:
+ ldr r1, [sp, #0x10]
+ add r0, r7, #0
+ add r2, sp, #0x1c
+ add r3, r5, #0
+ mov r6, ip
+ blx r6
+ cmp r0, #1
+ bne _0222E1C2
+ ldr r0, [r4, #4]
+ add r0, r0, #2
+ add r5, r5, r0
+ mov r0, #1
+ str r0, [sp, #0xc]
+ b _0222E1C2
+_0222E1A4:
+ ldr r0, [r4, #8]
+ add r1, sp, #0x1c
+ str r0, [sp]
+ ldr r0, [r7]
+ mov r2, #3
+ add r3, r5, #0
+ bl MOD83_02238A38
+ ldr r0, [sp, #0x18]
+ ldr r1, [r4]
+ add r0, #0xcc
+ str r1, [r0]
+ ldr r0, [r4, #4]
+ add r0, r0, #2
+ add r5, r5, r0
+_0222E1C2:
+ ldr r0, [sp, #0x14]
+ ldr r1, [r4, #4]
+ ldr r2, [r0]
+ mov r0, #0x1a
+ mul r0, r1
+ add r1, r2, r0
+ ldr r0, [sp, #0x14]
+ add r4, #0x10
+ str r1, [r0]
+ ldr r0, [sp, #8]
+ add r0, #0x10
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #7
+ blo _0222E104
+ ldr r0, [sp, #0xc]
+ add sp, #0x70
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E1F0: .word 0x0223A854
+_0222E1F4: .word 0x000001EE
+ thumb_func_end MOD83_0222E0DC
+
+ thumb_func_start MOD83_0222E1F8
+MOD83_0222E1F8: ; 0x0222E1F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r6, r0, #0
+ add r5, r6, #0
+ str r1, [sp, #0xc]
+ mov r4, #0
+ add r5, #0x5c
+_0222E206:
+ add r0, r5, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0222E294
+ ldr r0, [sp, #0xc]
+ cmp r4, r0
+ bne _0222E256
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0xa
+ mov r3, #3
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ bl FUN_0201AB14
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ bl FUN_0201AB18
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ bl FUN_0201AB0C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_0201AB10
+ str r7, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ ldr r0, [r6]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ mov r1, #0
+ bl FUN_020186B4
+ b _0222E294
+_0222E256:
+ mov r1, #1
+ add r0, r5, #0
+ add r2, r1, #0
+ mov r3, #2
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ bl FUN_0201AB14
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ bl FUN_0201AB18
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ bl FUN_0201AB0C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_0201AB10
+ str r7, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r6]
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x1c]
+ mov r1, #0
+ bl FUN_020186B4
+_0222E294:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #7
+ blo _0222E206
+ ldr r0, [r6]
+ mov r1, #0
+ bl FUN_02017CD0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_0222E1F8
+
+ thumb_func_start MOD83_0222E2A8
+MOD83_0222E2A8: ; 0x0222E2A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r2, r1, #0
+ ldr r1, [r5, #0x54]
+ mov r7, #6
+ add r4, r1, #0
+ mov r0, #0
+ sub r6, r7, #7
+_0222E2B8:
+ add r4, r4, r2
+ cmp r4, r6
+ bne _0222E2C0
+ add r4, r0, #0
+_0222E2C0:
+ cmp r4, #7
+ bne _0222E2C6
+ add r4, r7, #0
+_0222E2C6:
+ cmp r4, r1
+ beq _0222E2DC
+ lsl r3, r4, #2
+ add r3, r5, r3
+ add r3, #0xcc
+ ldr r3, [r3]
+ cmp r3, #0
+ beq _0222E2B8
+ ldr r0, _0222E2E0 ; =0x000005DC
+ bl FUN_020054C8
+_0222E2DC:
+ str r4, [r5, #0x54]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E2E0: .word 0x000005DC
+ thumb_func_end MOD83_0222E2A8
+
+ thumb_func_start MOD83_0222E2E4
+MOD83_0222E2E4: ; 0x0222E2E4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x54]
+ add r1, r5, #0
+ add r1, #0x5c
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_0201AB18
+ sub r0, r0, #1
+ lsl r4, r0, #3
+ ldr r0, [r5, #0x54]
+ add r1, r5, #0
+ add r1, #0x5c
+ lsl r0, r0, #4
+ add r0, r1, r0
+ bl FUN_0201AB10
+ add r0, r0, #2
+ lsl r3, r0, #3
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r2, [r5, r0]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r2, r1, #0xc
+ cmp r2, r4
+ ble _0222E322
+ lsl r1, r4, #0xc
+ str r1, [r5, r0]
+_0222E322:
+ add r2, #0xc0
+ cmp r2, r4
+ bgt _0222E334
+ add r0, r4, r3
+ sub r0, #0xc0
+ lsl r1, r0, #0xc
+ mov r0, #0x42
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_0222E334:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222E2E4
+
+ thumb_func_start MOD83_0222E338
+MOD83_0222E338: ; 0x0222E338
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #0x42
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r0, r1]
+ ldr r5, [sp]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r7, r0, #0xc
+ add r0, r7, #0
+ str r0, [sp, #0xc]
+ add r0, #0xc0
+ ldr r6, [sp, #4]
+ add r5, #0x5c
+ str r0, [sp, #0xc]
+_0222E362:
+ add r0, r5, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0222E38E
+ add r0, r5, #0
+ bl FUN_0201AB18
+ sub r0, r0, #1
+ lsl r4, r0, #3
+ add r0, r5, #0
+ bl FUN_0201AB10
+ cmp r7, r4
+ ble _0222E384
+ mov r0, #1
+ str r0, [sp, #8]
+_0222E384:
+ ldr r0, [sp, #0xc]
+ cmp r0, r4
+ bgt _0222E38E
+ mov r0, #1
+ str r0, [sp, #4]
+_0222E38E:
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #7
+ blo _0222E362
+ mov r1, #0x15
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ ldr r1, [sp, #8]
+ bl FUN_020200A0
+ mov r1, #0x55
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r1, [sp, #4]
+ bl FUN_020200A0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222E338
+
+ thumb_func_start MOD83_0222E3B8
+MOD83_0222E3B8: ; 0x0222E3B8
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ mov r1, #0x15
+ add r7, r0, #0
+ lsl r1, r1, #4
+ ldr r0, [r7, r1]
+ cmp r0, #0
+ bne _0222E3D2
+ add r1, r1, #4
+ ldr r1, [r7, r1]
+ cmp r1, #0
+ beq _0222E3E4
+_0222E3D2:
+ bl FUN_0201FFC8
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0201FFC8
+ bl MOD83_02238E48
+_0222E3E4:
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x5c
+_0222E3EC:
+ ldr r0, [r4, #0x5c]
+ cmp r0, #0
+ beq _0222E3FE
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+_0222E3FE:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #7
+ blo _0222E3EC
+ ldr r0, [r7]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r7]
+ bl FUN_02016A18
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_0222E3B8
+
+ thumb_func_start MOD83_0222E430
+MOD83_0222E430: ; 0x0222E430
+ mov r1, #0x56
+ lsl r1, r1, #2
+ ldr r2, [r0, r1]
+ lsl r3, r2, #1
+ ldr r2, _0222E45C ; =0x0223A7B0
+ ldrh r2, [r2, r3]
+ cmp r2, #0
+ bne _0222E444
+ mov r2, #0
+ str r2, [r0, r1]
+_0222E444:
+ mov r1, #0x56
+ lsl r1, r1, #2
+ ldr r3, [r0, r1]
+ add r2, r3, #1
+ str r2, [r0, r1]
+ ldr r0, _0222E45C ; =0x0223A7B0
+ lsl r1, r3, #1
+ ldrh r1, [r0, r1]
+ ldr r0, _0222E460 ; =0x0500006C
+ strh r1, [r0]
+ bx lr
+ nop
+_0222E45C: .word 0x0223A7B0
+_0222E460: .word 0x0500006C
+ thumb_func_end MOD83_0222E430
+
+ thumb_func_start MOD83_0222E464
+MOD83_0222E464: ; 0x0222E464
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ add r0, r4, #0
+ bl FUN_0201AB60
+ ldr r3, _0222E484 ; =0x027E0000
+ ldr r1, _0222E488 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0222E484: .word 0x027E0000
+_0222E488: .word 0x00003FF8
+ thumb_func_end MOD83_0222E464
+
+ thumb_func_start MOD83_0222E48C
+MOD83_0222E48C: ; 0x0222E48C
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x51
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ mov r1, #0x57
+ add r0, r5, #0
+ lsl r1, r1, #2
+ mov r2, #0x51
+ bl FUN_02006268
+ mov r2, #0x57
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x51
+ bl FUN_02016B94
+ str r0, [r4]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [r4, #4]
+ bl FUN_0202251C
+ str r0, [r4, #0x14]
+ mov r0, #0x41
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, [r4, #4]
+ bl FUN_020238F4
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ bl FUN_02024DA0
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02023918
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ bl FUN_02024D64
+ str r0, [r4, #0x4c]
+ ldr r0, [r4, #0xc]
+ bl FUN_020239F4
+ str r0, [r4, #0x50]
+ mov r0, #0x45
+ mov r1, #0xf
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0x51
+ bl MOD83_02238770
+ ldr r0, [r4, #4]
+ bl FUN_02022804
+ cmp r0, #0
+ bne _0222E530
+ mov r0, #0x4d
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222E530:
+ mov r0, #0
+ bl FUN_0200516C
+ mov r0, #0
+ bl FUN_0200415C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_0222E48C
+
+ thumb_func_start MOD83_0222E540
+MOD83_0222E540: ; 0x0222E540
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ bl CTRDG_IsExisting
+ add r0, r4, #0
+ bl MOD83_0222D7E0
+ cmp r0, #1
+ bne _0222E570
+ add r0, r4, #0
+ bl MOD83_0222D6EC
+ add r0, r4, #0
+ bl MOD83_0222D9C0
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222E570:
+ add r0, r4, #0
+ bl MOD83_0222E430
+ ldr r0, [r5]
+ cmp r0, #9
+ bhi _0222E5D8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E588: ; jump table
+ .short _0222E59C - _0222E588 - 2 ; case 0
+ .short _0222E5A8 - _0222E588 - 2 ; case 1
+ .short _0222E5CE - _0222E588 - 2 ; case 2
+ .short _0222E5E8 - _0222E588 - 2 ; case 3
+ .short _0222E616 - _0222E588 - 2 ; case 4
+ .short _0222E656 - _0222E588 - 2 ; case 5
+ .short _0222E74A - _0222E588 - 2 ; case 6
+ .short _0222E772 - _0222E588 - 2 ; case 7
+ .short _0222E77C - _0222E588 - 2 ; case 8
+ .short _0222E784 - _0222E588 - 2 ; case 9
+_0222E59C:
+ add r0, r4, #0
+ bl MOD83_0222DA50
+ mov r0, #1
+ str r0, [r5]
+ b _0222E788
+_0222E5A8:
+ add r0, r4, #0
+ bl MOD83_0222D5C0
+ cmp r0, #0
+ bne _0222E5B8
+ mov r0, #3
+ str r0, [r5]
+ b _0222E788
+_0222E5B8:
+ mov r0, #1
+ mov r1, #2
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ mov r0, #5
+ ldr r1, _0222E79C ; =0x00007D8C
+ lsl r0, r0, #0x18
+ strh r1, [r0]
+ b _0222E788
+_0222E5CE:
+ add r0, r4, #0
+ bl MOD83_0222D5C4
+ cmp r0, #0
+ beq _0222E5DA
+_0222E5D8:
+ b _0222E788
+_0222E5DA:
+ mov r0, #0
+ mov r1, #3
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ b _0222E788
+_0222E5E8:
+ mov r0, #0x43
+ mov r1, #0xc
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, #0x28
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222E60A
+ mov r0, #2
+ str r0, [r4, #0x58]
+ mov r0, #0
+ mov r1, #7
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ b _0222E788
+_0222E60A:
+ add r0, r4, #0
+ bl MOD83_0222D67C
+ mov r0, #4
+ str r0, [r5]
+ b _0222E788
+_0222E616:
+ add r0, r4, #0
+ bl MOD83_0222DB68
+ add r0, r4, #0
+ bl MOD83_0222DBD0
+ ldr r0, _0222E7A0 ; =MOD83_0222E464
+ ldr r1, [r4]
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD83_0222E0DC
+ ldr r1, [r4, #0x54]
+ add r0, r4, #0
+ bl MOD83_0222E1F8
+ mov r0, #1
+ mov r1, #5
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ mov r0, #5
+ ldr r1, _0222E79C ; =0x00007D8C
+ lsl r0, r0, #0x18
+ strh r1, [r0]
+ mov r0, #0x43
+ mov r1, #0xa
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222E788
+_0222E656:
+ ldr r0, _0222E7A4 ; =0x021C48B8
+ mov r1, #3
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _0222E6E8
+ mov r1, #1
+ tst r0, r1
+ ldr r0, _0222E7A8 ; =0x000005DC
+ beq _0222E69A
+ bl FUN_020054C8
+ ldr r0, [r4, #0x54]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r0, #0xcc
+ ldr r0, [r0]
+ str r0, [r4, #0x58]
+ cmp r0, #5
+ bne _0222E6A8
+ bl CTRDG_IsPulledOut
+ cmp r0, #1
+ bne _0222E6A8
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0xc
+ beq _0222E692
+ bl FUN_02032D80
+_0222E692:
+ mov r0, #0x51
+ bl FUN_02089F24
+ b _0222E6A8
+_0222E69A:
+ bl FUN_020054C8
+ mov r0, #0
+ str r0, [r4, #0x58]
+ mov r0, #1
+ bl MOD83_02238860
+_0222E6A8:
+ ldr r0, [r4, #0x58]
+ cmp r0, #2
+ bne _0222E6C2
+ ldr r1, [r4, #0x40]
+ mov r0, #0x80
+ orr r1, r0
+ str r1, [r4, #0x40]
+ mov r1, #1
+ add r0, #0x98
+ str r1, [r4, r0]
+ mov r0, #6
+ str r0, [r5]
+ b _0222E6D8
+_0222E6C2:
+ cmp r0, #6
+ bne _0222E6CC
+ mov r0, #1
+ bl MOD83_02238860
+_0222E6CC:
+ mov r0, #0
+ mov r1, #7
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+_0222E6D8:
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0xd
+ bne _0222E788
+ mov r1, #0xe
+ str r1, [r4, r0]
+ b _0222E788
+_0222E6E8:
+ ldr r1, [r4, #0x48]
+ cmp r1, #1
+ bne _0222E6FA
+ add r0, r4, #0
+ bl MOD83_0222E0DC
+ mov r0, #0
+ str r0, [r4, #0x48]
+ b _0222E788
+_0222E6FA:
+ mov r1, #0x40
+ tst r0, r1
+ beq _0222E708
+ add r0, r4, #0
+ sub r1, #0x41
+ bl MOD83_0222E2A8
+_0222E708:
+ ldr r0, _0222E7A4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x80
+ tst r0, r1
+ beq _0222E71A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222E2A8
+_0222E71A:
+ ldr r1, [r4, #0x54]
+ add r0, r4, #0
+ bl MOD83_0222E1F8
+ add r0, r4, #0
+ bl MOD83_0222E2E4
+ add r0, r4, #0
+ bl MOD83_0222E338
+ ldr r0, [r5]
+ cmp r0, #5
+ bne _0222E788
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #1
+ bne _0222E788
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r1, #1
+ sub r0, #0x20
+ str r1, [r4, r0]
+ b _0222E788
+_0222E74A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0xf
+ bne _0222E788
+ add r0, #0xc
+ ldr r1, [r4, r0]
+ mov r0, #2
+ tst r0, r1
+ beq _0222E764
+ mov r0, #5
+ str r0, [r5]
+ b _0222E788
+_0222E764:
+ mov r0, #0
+ mov r1, #7
+ add r2, r5, #0
+ mov r3, #8
+ bl MOD83_0223886C
+ b _0222E788
+_0222E772:
+ add r0, r6, #0
+ bl MOD83_0222E3B8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222E77C:
+ add r0, r5, #0
+ bl MOD83_022388CC
+ b _0222E788
+_0222E784:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222E788:
+ add r0, r4, #0
+ bl MOD83_0222D6EC
+ add r0, r4, #0
+ bl MOD83_0222D9C0
+ bl MOD83_02238D58
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E79C: .word 0x00007D8C
+_0222E7A0: .word MOD83_0222E464
+_0222E7A4: .word 0x021C48B8
+_0222E7A8: .word 0x000005DC
+ thumb_func_end MOD83_0222E540
+
+ thumb_func_start MOD83_0222E7AC
+MOD83_0222E7AC: ; 0x0222E7AC
+ push {r3, lr}
+ ldr r0, [r0, #0x58]
+ cmp r0, #7
+ bhi _0222E822
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E7C0: ; jump table
+ .short _0222E81A - _0222E7C0 - 2 ; case 0
+ .short _0222E7D0 - _0222E7C0 - 2 ; case 1
+ .short _0222E7DA - _0222E7C0 - 2 ; case 2
+ .short _0222E7E4 - _0222E7C0 - 2 ; case 3
+ .short _0222E7F8 - _0222E7C0 - 2 ; case 4
+ .short _0222E7EE - _0222E7C0 - 2 ; case 5
+ .short _0222E802 - _0222E7C0 - 2 ; case 6
+ .short _0222E80A - _0222E7C0 - 2 ; case 7
+_0222E7D0:
+ ldr r0, _0222E824 ; =0x00000034
+ ldr r1, _0222E828 ; =0x021D76C8
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7DA:
+ ldr r0, _0222E824 ; =0x00000034
+ ldr r1, _0222E82C ; =0x021D76E8
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7E4:
+ ldr r0, _0222E830 ; =0x00000053
+ ldr r1, _0222E834 ; =0x0223A434
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7EE:
+ ldr r0, _0222E830 ; =0x00000053
+ ldr r1, _0222E838 ; =0x0223A4FC
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7F8:
+ ldr r0, _0222E830 ; =0x00000053
+ ldr r1, _0222E83C ; =0x0223A3A8
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E802:
+ ldr r0, _0222E840 ; =0x0223A8C4
+ bl FUN_020224D8
+ pop {r3, pc}
+_0222E80A:
+ bl FUN_0200541C
+ mov r0, #0
+ ldr r1, _0222E844 ; =0x020FD6D4
+ mvn r0, r0
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E81A:
+ ldr r0, _0222E848 ; =0x0000003F
+ ldr r1, _0222E84C ; =0x021DBAB8
+ bl FUN_02000E7C
+_0222E822:
+ pop {r3, pc}
+ .align 2, 0
+_0222E824: .word 0x00000034
+_0222E828: .word 0x021D76C8
+_0222E82C: .word 0x021D76E8
+_0222E830: .word 0x00000053
+_0222E834: .word 0x0223A434
+_0222E838: .word 0x0223A4FC
+_0222E83C: .word 0x0223A3A8
+_0222E840: .word 0x0223A8C4
+_0222E844: .word 0x020FD6D4
+_0222E848: .word 0x0000003F
+_0222E84C: .word 0x021DBAB8
+ thumb_func_end MOD83_0222E7AC
+
+ thumb_func_start MOD83_0222E850
+MOD83_0222E850: ; 0x0222E850
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02006278
+ bl MOD83_0222E7AC
+ add r0, r4, #0
+ bl FUN_0200627C
+ mov r0, #0x51
+ bl FUN_020168D0
+ mov r0, #0
+ bl MOD83_02239450
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222E850
+
+ thumb_func_start MOD83_0222E874
+MOD83_0222E874: ; 0x0222E874
+ push {r3, r4}
+ ldr r4, _0222E89C ; =0x0223A8E0
+ ldr r1, _0222E8A0 ; =0x00000123
+ mov r3, #0
+_0222E87C:
+ ldrh r2, [r4, #2]
+ cmp r0, r2
+ bne _0222E88C
+ ldr r0, _0222E89C ; =0x0223A8E0
+ lsl r1, r3, #2
+ ldrh r0, [r0, r1]
+ pop {r3, r4}
+ bx lr
+_0222E88C:
+ add r3, r3, #1
+ add r4, r4, #4
+ cmp r3, r1
+ blo _0222E87C
+ mov r0, #0x3f
+ pop {r3, r4}
+ bx lr
+ nop
+_0222E89C: .word 0x0223A8E0
+_0222E8A0: .word 0x00000123
+ thumb_func_end MOD83_0222E874
+
+ thumb_func_start MOD83_0222E8A4
+MOD83_0222E8A4: ; 0x0222E8A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _0222E90C ; =0x00002710
+ add r0, r4, #0
+ bl _s32_div_f
+ add r0, #0x30
+ strh r0, [r5]
+ ldr r1, _0222E90C ; =0x00002710
+ add r0, r4, #0
+ bl _s32_div_f
+ add r4, r1, #0
+ mov r1, #0xfa
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r0, #0x30
+ mov r1, #0xfa
+ strh r0, [r5, #2]
+ add r0, r4, #0
+ lsl r1, r1, #2
+ bl _s32_div_f
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #0x64
+ bl _s32_div_f
+ add r0, #0x30
+ strh r0, [r5, #4]
+ add r0, r4, #0
+ mov r1, #0x64
+ bl _s32_div_f
+ add r4, r1, #0
+ add r0, r4, #0
+ mov r1, #0xa
+ bl _s32_div_f
+ add r0, #0x30
+ strh r0, [r5, #6]
+ add r0, r4, #0
+ mov r1, #0xa
+ bl _s32_div_f
+ add r4, r1, #0
+ add r4, #0x30
+ strh r4, [r5, #8]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222E90C: .word 0x00002710
+ thumb_func_end MOD83_0222E8A4
+
+ thumb_func_start MOD83_0222E910
+MOD83_0222E910: ; 0x0222E910
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7, #0x10]
+ bl FUN_0202398C
+ ldr r5, _0222E948 ; =0x0223B860
+ add r4, r0, #0
+ mov r6, #0
+_0222E920:
+ ldrh r0, [r4]
+ bl MOD83_0222E874
+ strh r0, [r5]
+ add r6, r6, #1
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r6, #8
+ blt _0222E920
+ ldr r0, [r7, #0x10]
+ bl FUN_020239C0
+ add r1, r0, #0
+ ldr r0, _0222E94C ; =0x0223B870
+ bl MOD83_0222E8A4
+ ldr r0, _0222E950 ; =0x0223B860
+ mov r1, #0
+ strh r1, [r0, #0x1a]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E948: .word 0x0223B860
+_0222E94C: .word 0x0223B870
+_0222E950: .word 0x0223B860
+ thumb_func_end MOD83_0222E910
+
+ thumb_func_start MOD83_0222E954
+MOD83_0222E954: ; 0x0222E954
+ push {r3, r4, r5, lr}
+ sub sp, #0x48
+ ldr r5, _0222EA80 ; =0x0223A3C8
+ add r4, r0, #0
+ add r3, sp, #0x20
+ mov r2, #5
+_0222E960:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E960
+ ldr r3, _0222EA84 ; =0x0223A3B8
+ add r2, sp, #0x10
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r0, sp, #0x20
+ bl FUN_0201E66C
+ add r0, sp, #0x10
+ bl FUN_02016BBC
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #0xf
+ ldr r0, [r4, #4]
+ mov r2, #1
+ lsl r3, r3, #0xc
+ bl MOD83_022387D8
+ mov r0, #1
+ lsl r0, r0, #0xe
+ str r0, [sp]
+ mov r1, #1
+ mov r3, #0x3e
+ ldr r0, [r4, #4]
+ add r2, r1, #0
+ lsl r3, r3, #0xa
+ bl MOD83_022387D8
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #0x1e
+ ldr r0, [r4, #4]
+ mov r1, #4
+ mov r2, #1
+ lsl r3, r3, #0xa
+ bl MOD83_022387D8
+ mov r0, #1
+ lsl r0, r0, #0xe
+ str r0, [sp]
+ mov r3, #7
+ ldr r0, [r4, #4]
+ mov r1, #5
+ mov r2, #1
+ lsl r3, r3, #0xc
+ bl MOD83_022387D8
+ bl FUN_0201BD5C
+ mov r0, #0
+ ldr r2, [r4]
+ add r1, r0, #0
+ bl FUN_02002ED0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4]
+ mov r2, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ add r3, r2, #0
+ bl FUN_0200CB00
+ ldr r0, [r4, #0x14]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ mov r2, #0xa
+ mov r3, #2
+ bl FUN_0200CD68
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ add r3, r0, #0
+ add r2, r1, #0
+ add r3, #0x8c
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ mov r1, #1
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [r4]
+ add r3, r1, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x74
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #2
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x74
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r2, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_02017CD0
+ add r0, r4, #0
+ bl MOD83_0222EA88
+ add sp, #0x48
+ pop {r3, r4, r5, pc}
+ nop
+_0222EA80: .word 0x0223A3C8
+_0222EA84: .word 0x0223A3B8
+ thumb_func_end MOD83_0222E954
+
+ thumb_func_start MOD83_0222EA88
+MOD83_0222EA88: ; 0x0222EA88
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r2, #4
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0
+ add r3, #0xfc
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ ldr r0, [r4]
+ mov r3, #4
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x74
+ 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]
+ ldr r0, [r4]
+ mov r1, #2
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x74
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r2, #0
+ ldr r0, [r4, #4]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222EA88
+
+ thumb_func_start MOD83_0222EB04
+MOD83_0222EB04: ; 0x0222EB04
+ push {r3, r4, lr}
+ sub sp, #0x5c
+ add r4, r0, #0
+ add r0, #0x18
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0222EB4E
+ mov r0, #1
+ str r0, [sp]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, sp, #8
+ add r1, #0x18
+ mov r2, #0
+ mov r3, #0xc
+ bl MOD83_022388E4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ ldr r3, [r4, r3]
+ add r0, sp, #8
+ mov r1, #0x16
+ mov r2, #0x10
+ bl MOD83_02238934
+ mov r0, #2
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ add r1, sp, #8
+ mov r2, #5
+ mov r3, #4
+ bl MOD83_02238A38
+ add sp, #0x5c
+ mov r0, #1
+ pop {r3, r4, pc}
+_0222EB4E:
+ ldr r0, _0222EB78 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0222EB70
+ add r0, r4, #0
+ add r0, #0x18
+ mov r1, #0
+ bl FUN_0200CCF8
+ add r4, #0x18
+ add r0, r4, #0
+ bl FUN_02019178
+ add sp, #0x5c
+ mov r0, #0
+ pop {r3, r4, pc}
+_0222EB70:
+ mov r0, #1
+ add sp, #0x5c
+ pop {r3, r4, pc}
+ nop
+_0222EB78: .word 0x021C48B8
+ thumb_func_end MOD83_0222EB04
+
+ thumb_func_start MOD83_0222EB7C
+MOD83_0222EB7C: ; 0x0222EB7C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r3, _0222EC70 ; =0x00000172
+ add r0, #0x48
+ add r1, #0x28
+ mov r2, #0
+ bl MOD83_022388E4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ add r0, r4, #0
+ ldr r3, [r4, r3]
+ add r0, #0x48
+ mov r1, #0x1b
+ mov r2, #4
+ bl MOD83_02238934
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x48
+ add r2, r1, #0
+ bl MOD83_0223893C
+ mov r0, #0x46
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD83_02238AF4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ ldr r1, [r4, r3]
+ mov r2, #0
+ add r0, r1, r0
+ str r0, [r4, r3]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x9c
+ add r1, #0x18
+ add r3, #0x2e
+ bl MOD83_022388E4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ add r0, r4, #0
+ ldr r3, [r4, r3]
+ add r0, #0x9c
+ mov r1, #0x1e
+ mov r2, #4
+ bl MOD83_02238934
+ add r0, r4, #0
+ add r0, #0x9c
+ mov r1, #0
+ mov r2, #1
+ bl MOD83_0223893C
+ mov r0, #0xb
+ str r0, [sp]
+ add r1, r4, #0
+ mov r2, #1
+ ldr r0, [r4, #4]
+ add r1, #0x9c
+ add r3, r2, #0
+ bl MOD83_02238A38
+ add r0, r4, #0
+ add r0, #0x9c
+ bl MOD83_02238AF4
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0xa
+ mov r2, #7
+ mov r3, #9
+ bl MOD83_02238BC4
+ mov r0, #1
+ str r0, [sp]
+ ldr r1, _0222EC74 ; =0x00003170
+ mov r0, #0
+ ldr r1, [r4, r1]
+ mov r2, #0x80
+ mov r3, #0x4c
+ bl MOD83_02238DBC
+ ldr r1, _0222EC74 ; =0x00003170
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD83_0222EC78
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_0222EC70: .word 0x00000172
+_0222EC74: .word 0x00003170
+ thumb_func_end MOD83_0222EB7C
+
+ thumb_func_start MOD83_0222EC78
+MOD83_0222EC78: ; 0x0222EC78
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_0200AA80
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r5, #0
+ ldr r3, _0222ED84 ; =0x00000172
+ add r0, #0xf0
+ add r1, #0x38
+ mov r2, #0
+ bl MOD83_022388E4
+ mov r3, #0x51
+ lsl r3, r3, #2
+ add r0, r5, #0
+ ldr r3, [r5, r3]
+ add r0, #0xf0
+ mov r1, #0x1a
+ mov r2, #4
+ bl MOD83_02238934
+ add r0, r5, #0
+ add r0, #0xf0
+ mov r1, #0
+ mov r2, #1
+ bl MOD83_0223893C
+ mov r0, #0x41
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ ldr r2, [r5, #0x10]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x10]
+ bl FUN_020239C0
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ add r0, r4, #0
+ mov r3, #5
+ str r1, [sp, #4]
+ bl FUN_0200AD38
+ mov r0, #0x42
+ str r0, [sp]
+ add r1, r5, #0
+ ldr r0, [r5, #4]
+ add r1, #0xf0
+ mov r2, #3
+ mov r3, #0xd
+ bl MOD83_02238A38
+ add r1, r5, #0
+ mov r0, #0
+ add r1, #0xf8
+ str r0, [r1]
+ mov r1, #1
+ bl FUN_02002E4C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0xf0
+ mov r1, #0
+ bl MOD83_02238944
+ mov r2, #0x44
+ str r2, [sp]
+ add r1, r5, #0
+ sub r2, #0x45
+ ldr r0, [r5, #4]
+ add r1, #0xf0
+ add r3, r2, #0
+ bl MOD83_02238A38
+ add r0, sp, #0x10
+ bl OS_GetMacAddress
+ add r0, sp, #0x10
+ bl MOD83_02234704
+ add r1, sp, #0x1c
+ add r2, sp, #0x18
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ bl MOD83_02234748
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [sp, #0x18]
+ add r0, r4, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r0, r5, #0
+ mov r1, #1
+ add r0, #0xfc
+ str r1, [r0]
+ mov r2, #0x45
+ str r2, [sp]
+ ldr r0, [r5, #4]
+ add r5, #0xf0
+ sub r2, #0x46
+ add r1, r5, #0
+ add r3, r2, #0
+ bl MOD83_02238A38
+ add r0, r4, #0
+ bl FUN_0200AB18
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ nop
+_0222ED84: .word 0x00000172
+ thumb_func_end MOD83_0222EC78
+
+ thumb_func_start MOD83_0222ED88
+MOD83_0222ED88: ; 0x0222ED88
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02238E48
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019048
+ cmp r0, #1
+ bne _0222EDD0
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x28
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x28
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x38
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x38
+ bl FUN_02019178
+_0222EDD0:
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD83_0222ED88
+
+ thumb_func_start MOD83_0222EDF8
+MOD83_0222EDF8: ; 0x0222EDF8
+ push {r3, r4, r5, lr}
+ mov r3, #2
+ ldr r2, _0222EE80 ; =0x000034DC
+ mov r1, #0x55
+ lsl r3, r3, #0x10
+ add r5, r0, #0
+ bl MOD83_022387A0
+ add r4, r0, #0
+ mov r0, #0x55
+ str r0, [r4]
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [r4, #8]
+ bl FUN_020238F4
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #8]
+ bl FUN_02024DA0
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x14]
+ ldr r0, [r4]
+ bl MOD83_02238770
+ ldr r0, [r4, #8]
+ bl FUN_0202251C
+ ldr r1, _0222EE84 ; =0x00003174
+ mov r2, #0x53
+ str r0, [r4, r1]
+ mov r0, #9
+ lsl r2, r2, #2
+ str r0, [r4, r2]
+ add r0, r2, #0
+ mov r1, #0x28
+ sub r0, #8
+ str r1, [r4, r0]
+ add r1, r2, #0
+ mov r0, #0
+ add r1, #8
+ str r0, [r4, r1]
+ add r1, r2, #0
+ add r1, #0x10
+ str r0, [r4, r1]
+ add r2, #0xc
+ str r0, [r4, r2]
+ mov r2, #3
+ mov r1, #0x5b
+ lsl r2, r2, #8
+ bl FUN_0201681C
+ ldr r1, _0222EE88 ; =0x00000496
+ mov r0, #9
+ mov r2, #1
+ bl FUN_0200433C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_0222EE80: .word 0x000034DC
+_0222EE84: .word 0x00003174
+_0222EE88: .word 0x00000496
+ thumb_func_end MOD83_0222EDF8
+
+ thumb_func_start MOD83_0222EE8C
+MOD83_0222EE8C: ; 0x0222EE8C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r1, #0
+ add r6, r0, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0xd
+ bhi _0222EEF2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222EEAC: ; jump table
+ .short _0222EEC8 - _0222EEAC - 2 ; case 0
+ .short _0222EEEA - _0222EEAC - 2 ; case 1
+ .short _0222EF08 - _0222EEAC - 2 ; case 2
+ .short _0222EF5A - _0222EEAC - 2 ; case 3
+ .short _0222EF86 - _0222EEAC - 2 ; case 4
+ .short _0222EFC2 - _0222EEAC - 2 ; case 5
+ .short _0222EFFC - _0222EEAC - 2 ; case 6
+ .short _0222F02C - _0222EEAC - 2 ; case 7
+ .short _0222F02C - _0222EEAC - 2 ; case 8
+ .short _0222F02C - _0222EEAC - 2 ; case 9
+ .short _0222F02C - _0222EEAC - 2 ; case 10
+ .short _0222F012 - _0222EEAC - 2 ; case 11
+ .short _0222F01A - _0222EEAC - 2 ; case 12
+ .short _0222F026 - _0222EEAC - 2 ; case 13
+_0222EEC8:
+ bl MOD83_0222E954
+ ldr r0, [r4, #0xc]
+ bl FUN_02024D64
+ cmp r0, #0
+ bne _0222EEE4
+ mov r0, #1
+ add r1, r0, #0
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EEE4:
+ mov r0, #2
+ str r0, [r5]
+ b _0222F02C
+_0222EEEA:
+ bl MOD83_0222EB04
+ cmp r0, #0
+ beq _0222EEF4
+_0222EEF2:
+ b _0222F02C
+_0222EEF4:
+ mov r0, #1
+ bl MOD83_02238860
+ mov r0, #0
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EF08:
+ bl MOD83_0222EB7C
+ ldr r0, _0222F038 ; =0x00003174
+ ldr r0, [r4, r0]
+ bl FUN_0202ADF0
+ cmp r0, #0
+ bne _0222EF44
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x98
+ str r1, [r0]
+ mov r0, #0x15
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r1, _0222F03C ; =0x0000317C
+ add r2, r5, #0
+ str r0, [r4, r1]
+ mov r0, #1
+ mov r1, #3
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EF44:
+ mov r0, #0x53
+ mov r1, #7
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ mov r1, #4
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EF5A:
+ ldr r0, _0222F03C ; =0x0000317C
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0222F02C
+ ldr r0, _0222F040 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r1, r0
+ beq _0222F02C
+ bl MOD83_02238860
+ mov r0, #0
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EF86:
+ bl MOD83_0222F210
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #5
+ bne _0222EFAA
+ mov r0, #1
+ bl MOD83_02238860
+ mov r0, #0
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EFAA:
+ cmp r0, #4
+ bne _0222F02C
+ mov r0, #1
+ bl MOD83_02238860
+ mov r0, #0
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222EFC2:
+ bl MOD83_0222EA88
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r1, #0xc6
+ lsl r1, r1, #6
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0x55
+ bl MOD83_02233168
+ mov r0, #1
+ mov r1, #6
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ ldr r1, _0222F044 ; =0x000032D2
+ mov r0, #4
+ ldrb r2, [r4, r1]
+ bic r2, r0
+ strb r2, [r4, r1]
+ b _0222F02C
+_0222EFFC:
+ ldr r0, _0222F040 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _0222F02C
+ mov r0, #0
+ mov r1, #0xb
+ add r2, r5, #0
+ mov r3, #0xd
+ bl MOD83_0223886C
+ b _0222F02C
+_0222F012:
+ mov r0, #0
+ bl OS_ResetSystem
+ b _0222F02C
+_0222F01A:
+ add r0, r6, #0
+ bl MOD83_0222ED88
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_0222F026:
+ add r0, r5, #0
+ bl MOD83_022388CC
+_0222F02C:
+ bl MOD83_02238D58
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222F038: .word 0x00003174
+_0222F03C: .word 0x0000317C
+_0222F040: .word 0x021C48B8
+_0222F044: .word 0x000032D2
+ thumb_func_end MOD83_0222EE8C
+
+ thumb_func_start MOD83_0222F048
+MOD83_0222F048: ; 0x0222F048
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5b
+ bl FUN_020168D0
+ ldr r0, _0222F06C ; =0x0000003F
+ ldr r1, _0222F070 ; =0x021DBAB8
+ bl FUN_02000E7C
+ add r0, r4, #0
+ bl FUN_0200627C
+ mov r0, #0x55
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_0222F06C: .word 0x0000003F
+_0222F070: .word 0x021DBAB8
+ thumb_func_end MOD83_0222F048
+
+ thumb_func_start MOD83_0222F074
+MOD83_0222F074: ; 0x0222F074
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #0xc6
+ lsl r0, r0, #6
+ add r4, r5, r0
+ mov r2, #0xd6
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ ldr r2, _0222F1A0 ; =0x00000172
+ ldr r3, [r5]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ add r6, r0, #0
+ ldr r0, [r5]
+ bl FUN_0200AA80
+ mov r1, #0xc6
+ mov r2, #7
+ lsl r1, r1, #6
+ strh r2, [r5, r1]
+ ldr r3, [r5]
+ add r1, r6, #0
+ mov r2, #0x4c
+ str r0, [sp]
+ bl FUN_0200A9C4
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r7, r0, #0
+ add r1, r4, r1
+ mov r2, #0x24
+ bl FUN_02021EF0
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r0, #0xc
+ bl MOD83_02238EF4
+ add r7, r0, #0
+ mov r0, #0xa
+ bl MOD83_02238EF4
+ str r0, [sp, #4]
+ mov r0, #0xb
+ bl MOD83_02238EF4
+ ldr r1, [sp, #4]
+ mov r2, #1
+ orr r0, r1
+ add r1, r7, #0
+ orr r1, r0
+ mov r0, #0x53
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r1, r0, #4
+ strh r2, [r4, r1]
+ add r1, r0, #6
+ ldrb r2, [r4, r1]
+ mov r1, #1
+ bic r2, r1
+ add r1, r0, #6
+ strb r2, [r4, r1]
+ ldrb r2, [r4, r1]
+ mov r1, #2
+ bic r2, r1
+ add r1, r0, #6
+ strb r2, [r4, r1]
+ ldrb r2, [r4, r1]
+ mov r1, #4
+ orr r2, r1
+ add r1, r0, #6
+ strb r2, [r4, r1]
+ ldrb r2, [r4, r1]
+ mov r1, #8
+ orr r2, r1
+ add r1, r0, #6
+ strb r2, [r4, r1]
+ ldrb r2, [r4, r1]
+ mov r1, #0x20
+ add r0, r0, #6
+ bic r2, r1
+ strb r2, [r4, r0]
+ ldr r0, [sp]
+ ldr r3, [r5]
+ add r1, r6, #0
+ mov r2, #0x4b
+ bl FUN_0200A9C4
+ add r7, r0, #0
+ mov r1, #0x55
+ lsl r1, r1, #2
+ add r1, r4, r1
+ mov r2, #0xfa
+ bl FUN_02021EF0
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r3, _0222F1A4 ; =0x000001EA
+ strb r1, [r4, r0]
+ add r2, r0, #2
+ strh r3, [r4, r2]
+ add r2, r0, #4
+ strh r1, [r4, r2]
+ add r2, r0, #6
+ strh r1, [r4, r2]
+ add r0, #8
+ strb r1, [r4, r0]
+ add r0, sp, #8
+ bl FUN_020126B4
+ add r0, sp, #8
+ bl RTC_ConvertDateToDay
+ mov r1, #0xd5
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ bl FUN_0200AB18
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ ldr r0, _0222F1A8 ; =0x00003174
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ mov r2, #0
+ bl FUN_0202AC98
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ bl MOD83_022391EC
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F1A0: .word 0x00000172
+_0222F1A4: .word 0x000001EA
+_0222F1A8: .word 0x00003174
+ thumb_func_end MOD83_0222F074
+
+ thumb_func_start MOD83_0222F1AC
+MOD83_0222F1AC: ; 0x0222F1AC
+ mov r2, #0x16
+ lsl r2, r2, #4
+ str r1, [r0, r2]
+ bx lr
+ thumb_func_end MOD83_0222F1AC
+
+ thumb_func_start MOD83_0222F1B4
+MOD83_0222F1B4: ; 0x0222F1B4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x16
+ lsl r1, r1, #4
+ add r4, r3, #0
+ ldr r3, [r0, r1]
+ sub r3, r3, #1
+ str r3, [r0, r1]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0222F1D6
+ bl MOD83_02234518
+ mov r0, #0x17
+ str r0, [r5]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0222F1D6:
+ cmp r2, #0
+ beq _0222F1EE
+ bl MOD83_022344E4
+ cmp r0, #0
+ bne _0222F1EE
+ bl MOD83_02234518
+ mov r0, #0x16
+ str r0, [r5]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0222F1EE:
+ cmp r4, #0
+ beq _0222F206
+ ldr r0, _0222F20C ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ tst r0, r4
+ beq _0222F206
+ bl MOD83_02234518
+ mov r0, #0x1a
+ str r0, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222F206:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222F20C: .word 0x021C48B8
+ thumb_func_end MOD83_0222F1B4
+
+ thumb_func_start MOD83_0222F210
+MOD83_0222F210: ; 0x0222F210
+ push {r3, r4, r5, lr}
+ mov r5, #0x57
+ lsl r5, r5, #2
+ add r4, r0, #0
+ sub r0, r5, #4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222F236
+ bl MOD83_0223438C
+ mov r1, #3
+ sub r0, r1, r0
+ bl FUN_02033EEC
+ bl MOD83_02234238
+ mov r0, #1
+ bl MOD83_022345C8
+_0222F236:
+ ldr r0, [r4, r5]
+ cmp r0, #0x1e
+ bls _0222F23E
+ b _0222F736
+_0222F23E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222F24A: ; jump table
+ .short _0222F288 - _0222F24A - 2 ; case 0
+ .short _0222F29E - _0222F24A - 2 ; case 1
+ .short _0222F2C4 - _0222F24A - 2 ; case 2
+ .short _0222F2E6 - _0222F24A - 2 ; case 3
+ .short _0222F310 - _0222F24A - 2 ; case 4
+ .short _0222F736 - _0222F24A - 2 ; case 5
+ .short _0222F736 - _0222F24A - 2 ; case 6
+ .short _0222F342 - _0222F24A - 2 ; case 7
+ .short _0222F3B8 - _0222F24A - 2 ; case 8
+ .short _0222F3D6 - _0222F24A - 2 ; case 9
+ .short _0222F420 - _0222F24A - 2 ; case 10
+ .short _0222F45C - _0222F24A - 2 ; case 11
+ .short _0222F476 - _0222F24A - 2 ; case 12
+ .short _0222F4AA - _0222F24A - 2 ; case 13
+ .short _0222F4EC - _0222F24A - 2 ; case 14
+ .short _0222F50C - _0222F24A - 2 ; case 15
+ .short _0222F524 - _0222F24A - 2 ; case 16
+ .short _0222F53E - _0222F24A - 2 ; case 17
+ .short _0222F594 - _0222F24A - 2 ; case 18
+ .short _0222F61C - _0222F24A - 2 ; case 19
+ .short _0222F664 - _0222F24A - 2 ; case 20
+ .short _0222F736 - _0222F24A - 2 ; case 21
+ .short _0222F698 - _0222F24A - 2 ; case 22
+ .short _0222F69C - _0222F24A - 2 ; case 23
+ .short _0222F736 - _0222F24A - 2 ; case 24
+ .short _0222F736 - _0222F24A - 2 ; case 25
+ .short _0222F704 - _0222F24A - 2 ; case 26
+ .short _0222F736 - _0222F24A - 2 ; case 27
+ .short _0222F6D0 - _0222F24A - 2 ; case 28
+ .short _0222F35E - _0222F24A - 2 ; case 29
+ .short _0222F39C - _0222F24A - 2 ; case 30
+_0222F288:
+ add r0, r4, #0
+ bl MOD83_0222E910
+ bl FUN_0202E49C
+ mov r0, #0x52
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ str r1, [r4, r5]
+ b _0222F736
+_0222F29E:
+ bl FUN_0202E4C8
+ cmp r0, #0
+ beq _0222F356
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ ldr r0, _0222F5E0 ; =0x0223A8D4
+ add r1, r4, r1
+ bl MOD83_02233F94
+ mov r0, #0x56
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ bl FUN_02033E74
+ mov r0, #2
+ str r0, [r4, r5]
+ b _0222F736
+_0222F2C4:
+ bl MOD83_0223427C
+ mov r1, #0x19
+ add r0, r4, #0
+ lsl r1, r1, #6
+ bl MOD83_0222F1AC
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #0xa
+ bl FUN_0200D858
+ ldr r1, _0222F5E4 ; =0x000034D8
+ str r0, [r4, r1]
+ mov r0, #3
+ str r0, [r4, r5]
+ b _0222F736
+_0222F2E6:
+ bl MOD83_022343A4
+ cmp r0, #0
+ beq _0222F302
+ sub r1, r0, #1
+ mov r0, #0x59
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r1, _0222F5E8 ; =0x00000708
+ add r0, r4, #0
+ bl MOD83_0222F1AC
+ mov r0, #4
+ str r0, [r4, r5]
+_0222F302:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #0
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F310:
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD83_022342C8
+ cmp r0, #0
+ beq _0222F334
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD83_02234304
+ mov r0, #7
+ str r0, [r4, r5]
+ mov r0, #0x16
+ ldr r1, _0222F5E8 ; =0x00000708
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_0222F334:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #0
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F342:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #0
+ mov r3, #2
+ bl MOD83_0222F1B4
+ bl MOD83_022344E4
+ cmp r0, #0
+ bne _0222F358
+_0222F356:
+ b _0222F736
+_0222F358:
+ mov r0, #0x1d
+ str r0, [r4, r5]
+ b _0222F736
+_0222F35E:
+ mov r0, #0x1e
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F5EC ; =0x00003170
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0222F5E4 ; =0x000034D8
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ ldr r0, _0222F5E4 ; =0x000034D8
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, _0222F5F0 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x16
+ ldr r1, _0222F5E8 ; =0x00000708
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0x1e
+ str r0, [r4, r5]
+ b _0222F736
+_0222F39C:
+ ldr r0, _0222F5F4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F3AA
+ mov r0, #8
+ str r0, [r4, r5]
+_0222F3AA:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F3B8:
+ bl MOD83_022343C4
+ mov r0, #9
+ str r0, [r4, r5]
+ mov r0, #0x16
+ ldr r1, _0222F5E8 ; =0x00000708
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F3D6:
+ bl MOD83_02234450
+ cmp r0, #0
+ beq _0222F412
+ bl MOD83_022343F8
+ mov r0, #0xa
+ str r0, [r4, r5]
+ mov r1, #0x32
+ mov r0, #0x16
+ lsl r1, r1, #6
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0x22
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F5F0 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222F5E4 ; =0x000034D8
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0222F412:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F420:
+ bl MOD83_02234450
+ cmp r0, #0
+ beq _0222F44E
+ mov r0, #0x47
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F5EC ; =0x00003170
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ add r0, r4, #0
+ bl MOD83_0222EC78
+ mov r0, #0xb
+ str r0, [r4, r5]
+_0222F44E:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F45C:
+ ldr r0, _0222F5F8 ; =0x0223AD6C
+ mov r1, #0x2a
+ mov r2, #1
+ bl MOD83_02234424
+ mov r0, #0xc
+ str r0, [r4, r5]
+ mov r1, #0x32
+ mov r0, #0x16
+ lsl r1, r1, #6
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _0222F736
+_0222F476:
+ bl MOD83_0223447C
+ cmp r0, #0
+ beq _0222F49C
+ mov r0, #0xd
+ str r0, [r4, r5]
+ mov r0, #0x16
+ mov r1, #0x3c
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0x47
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+_0222F49C:
+ add r0, r4, #0
+ add r1, r4, r5
+ mov r2, #1
+ mov r3, #2
+ bl MOD83_0222F1B4
+ b _0222F736
+_0222F4AA:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F51C
+ mov r0, #0x48
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #0xa
+ bl FUN_0200D858
+ ldr r1, _0222F5E4 ; =0x000034D8
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD83_0222F074
+ ldr r0, [r4, #8]
+ bl MOD83_022394BC
+ mov r0, #0xe
+ str r0, [r4, r5]
+ b _0222F736
+_0222F4EC:
+ bl MOD83_022394CC
+ cmp r0, #1
+ bne _0222F51C
+ mov r0, #0xf
+ str r0, [r4, r5]
+ bl OS_GetTickLo
+ mov r1, #0x36
+ bl _s32_div_f
+ mov r0, #0x16
+ add r1, r1, #6
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _0222F736
+_0222F50C:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F51E
+_0222F51C:
+ b _0222F736
+_0222F51E:
+ mov r0, #0x10
+ str r0, [r4, r5]
+ b _0222F736
+_0222F524:
+ ldr r0, _0222F5F8 ; =0x0223AD6C
+ mov r1, #0x2a
+ mov r2, #2
+ bl MOD83_02234424
+ mov r0, #0x11
+ str r0, [r4, r5]
+ mov r1, #0x4b
+ mov r0, #0x16
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _0222F736
+_0222F53E:
+ bl MOD83_022344A8
+ cmp r0, #0
+ beq _0222F55A
+ bl MOD83_02239544
+ mov r0, #0x12
+ str r0, [r4, r5]
+ mov r1, #0x32
+ mov r0, #0x16
+ lsl r1, r1, #4
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _0222F736
+_0222F55A:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F57A
+ bl MOD83_02234518
+ mov r0, #0x17
+ mov r1, #0x78
+ str r0, [r4, r5]
+ add r0, r1, #0
+ add r0, #0xe8
+ str r1, [r4, r0]
+_0222F57A:
+ bl MOD83_022344E4
+ cmp r0, #0
+ bne _0222F62C
+ bl MOD83_02234518
+ mov r0, #0x16
+ mov r1, #0x78
+ str r0, [r4, r5]
+ add r0, r1, #0
+ add r0, #0xe8
+ str r1, [r4, r0]
+ b _0222F736
+_0222F594:
+ bl MOD83_02239574
+ cmp r0, #3
+ bne _0222F5AE
+ bl MOD83_02234518
+ mov r0, #0x16
+ mov r1, #0x78
+ str r0, [r4, r5]
+ add r0, r1, #0
+ add r0, #0xe8
+ str r1, [r4, r0]
+ b _0222F5FC
+_0222F5AE:
+ bl MOD83_02239574
+ cmp r0, #2
+ beq _0222F5BC
+ bl MOD83_022394CC
+ b _0222F5FC
+_0222F5BC:
+ bl MOD83_0223447C
+ cmp r0, #0
+ bne _0222F5CC
+ bl MOD83_022344E4
+ cmp r0, #0
+ bne _0222F5FC
+_0222F5CC:
+ mov r0, #0x13
+ str r0, [r4, r5]
+ mov r0, #0x16
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ bl MOD83_02234518
+ b _0222F736
+ nop
+_0222F5E0: .word 0x0223A8D4
+_0222F5E4: .word 0x000034D8
+_0222F5E8: .word 0x00000708
+_0222F5EC: .word 0x00003170
+_0222F5F0: .word 0x000005DC
+_0222F5F4: .word 0x021C48B8
+_0222F5F8: .word 0x0223AD6C
+_0222F5FC:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F61C
+ bl MOD83_02234518
+ mov r0, #0x17
+ str r0, [r4, r5]
+ mov r0, #0x16
+ mov r1, #0xa
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_0222F61C:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F62E
+_0222F62C:
+ b _0222F736
+_0222F62E:
+ mov r0, #0x14
+ str r0, [r4, r5]
+ mov r0, #0x49
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F73C ; =0x00003170
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0222F740 ; =0x000034D8
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ ldr r0, _0222F744 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222F740 ; =0x000034D8
+ mov r1, #0
+ str r1, [r4, r0]
+ b _0222F736
+_0222F664:
+ bl MOD83_02234558
+ cmp r0, #0
+ beq _0222F736
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222F686
+ bl FUN_0202E4F0
+ bl FUN_02033ED0
+ mov r0, #0x52
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222F686:
+ ldr r0, _0222F748 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F736
+ mov r0, #0x1b
+ str r0, [r4, r5]
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_0222F698:
+ mov r0, #0x17
+ str r0, [r4, r5]
+_0222F69C:
+ mov r0, #0x4a
+ str r0, [sp]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #2
+ mov r3, #0x13
+ bl MOD83_02238A38
+ ldr r0, _0222F73C ; =0x00003170
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ ldr r0, _0222F740 ; =0x000034D8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F6C4
+ bl FUN_0200DBFC
+_0222F6C4:
+ ldr r0, _0222F740 ; =0x000034D8
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #0x1c
+ str r0, [r4, r5]
+ b _0222F736
+_0222F6D0:
+ bl MOD83_02234558
+ cmp r0, #0
+ beq _0222F736
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222F6F2
+ bl FUN_0202E4F0
+ bl FUN_02033ED0
+ mov r0, #0x52
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_0222F6F2:
+ ldr r0, _0222F748 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F736
+ mov r0, #0
+ bl OS_ResetSystem
+ b _0222F736
+_0222F704:
+ bl MOD83_02234558
+ cmp r0, #0
+ beq _0222F736
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222F736
+ bl FUN_0202E4F0
+ bl FUN_02033ED0
+ mov r0, #0x52
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _0222F740 ; =0x000034D8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222F732
+ bl FUN_0200DBFC
+_0222F732:
+ mov r0, #5
+ pop {r3, r4, r5, pc}
+_0222F736:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0222F73C: .word 0x00003170
+_0222F740: .word 0x000034D8
+_0222F744: .word 0x000005DC
+_0222F748: .word 0x021C48B8
+ thumb_func_end MOD83_0222F210
+
+ thumb_func_start MOD83_0222F74C
+MOD83_0222F74C: ; 0x0222F74C
+ push {r4, lr}
+ ldr r1, _0222F79C ; =0x0223B884
+ add r4, r0, #0
+ ldr r1, [r1]
+ cmp r1, #0
+ bne _0222F798
+ bl MOD83_0222F9F8
+ mov r1, #0xf5
+ mov r0, #0xf
+ lsl r1, r1, #2
+ bl FUN_02016998
+ ldr r1, _0222F79C ; =0x0223B884
+ mov r2, #0xf5
+ str r0, [r1]
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ ldr r0, _0222F79C ; =0x0223B884
+ mov r1, #0x32
+ ldr r0, [r0]
+ mov r2, #0xa
+ strh r1, [r0, #0x24]
+ ldr r0, _0222F7A0 ; =MOD83_0222F89C
+ mov r1, #0
+ bl FUN_0200CA44
+ ldr r1, _0222F79C ; =0x0223B884
+ ldr r2, [r1]
+ str r0, [r2, #0x1c]
+ ldr r0, [r1]
+ str r4, [r0]
+ ldr r0, [r1]
+ add r0, r0, #4
+ bl FUN_020312BC
+_0222F798:
+ pop {r4, pc}
+ nop
+_0222F79C: .word 0x0223B884
+_0222F7A0: .word MOD83_0222F89C
+ thumb_func_end MOD83_0222F74C
+
+ thumb_func_start MOD83_0222F7A4
+MOD83_0222F7A4: ; 0x0222F7A4
+ ldr r2, _0222F7B0 ; =0x0223B884
+ ldr r3, [r2]
+ str r0, [r3, #0x20]
+ ldr r0, [r2]
+ strh r1, [r0, #0x24]
+ bx lr
+ .align 2, 0
+_0222F7B0: .word 0x0223B884
+ thumb_func_end MOD83_0222F7A4
+
+ thumb_func_start MOD83_0222F7B4
+MOD83_0222F7B4: ; 0x0222F7B4
+ push {r4, lr}
+ bl FUN_02031190
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _0222F7E2
+ mov r4, #0
+ ldr r1, _0222F7E4 ; =0x0223B884
+ ldr r0, _0222F7E8 ; =0x000003C1
+ add r3, r4, #0
+_0222F7CA:
+ ldr r2, [r1]
+ add r2, r2, r4
+ add r4, r4, #1
+ strb r3, [r2, r0]
+ cmp r4, #0x10
+ blt _0222F7CA
+ bl FUN_0202DBE0
+ ldr r0, _0222F7EC ; =MOD83_0222F7F0
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F7E2:
+ pop {r4, pc}
+ .align 2, 0
+_0222F7E4: .word 0x0223B884
+_0222F7E8: .word 0x000003C1
+_0222F7EC: .word MOD83_0222F7F0
+ thumb_func_end MOD83_0222F7B4
+
+ thumb_func_start MOD83_0222F7F0
+MOD83_0222F7F0: ; 0x0222F7F0
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ ldr r6, _0222F824 ; =0x0223B884
+ add r5, r4, #0
+_0222F7F8:
+ ldr r0, [r6]
+ add r0, r0, r5
+ ldr r0, [r0, #0x28]
+ cmp r0, #0
+ bne _0222F81A
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #1
+ bne _0222F81A
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ ldr r1, [r6]
+ add r1, r1, r5
+ str r0, [r1, #0x28]
+_0222F81A:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x10
+ blt _0222F7F8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222F824: .word 0x0223B884
+ thumb_func_end MOD83_0222F7F0
+
+ thumb_func_start MOD83_0222F828
+MOD83_0222F828: ; 0x0222F828
+ push {r3, lr}
+ bl FUN_0202E4C8
+ cmp r0, #0
+ beq _0222F83A
+ ldr r0, _0222F83C ; =MOD83_0222F840
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F83A:
+ pop {r3, pc}
+ .align 2, 0
+_0222F83C: .word MOD83_0222F840
+ thumb_func_end MOD83_0222F828
+
+ thumb_func_start MOD83_0222F840
+MOD83_0222F840: ; 0x0222F840
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0222F840
+
+ thumb_func_start MOD83_0222F844
+MOD83_0222F844: ; 0x0222F844
+ push {r3, lr}
+ ldr r0, _0222F85C ; =0x0223B884
+ ldr r0, [r0]
+ add r0, #0x27
+ ldrb r0, [r0]
+ bl FUN_020319D8
+ ldr r0, _0222F860 ; =MOD83_0222F864
+ mov r1, #0
+ bl MOD83_0222F7A4
+ pop {r3, pc}
+ .align 2, 0
+_0222F85C: .word 0x0223B884
+_0222F860: .word MOD83_0222F864
+ thumb_func_end MOD83_0222F844
+
+ thumb_func_start MOD83_0222F864
+MOD83_0222F864: ; 0x0222F864
+ push {r3, lr}
+ bl FUN_02031A2C
+ cmp r0, #0
+ beq _0222F88C
+ ldr r0, _0222F890 ; =0x0223B884
+ mov r2, #0
+ ldr r1, [r0]
+ mov r0, #0xf
+ lsl r0, r0, #6
+ strb r2, [r1, r0]
+ bl FUN_0202DBE0
+ mov r0, #0xab
+ bl FUN_02031588
+ ldr r0, _0222F894 ; =MOD83_0222F898
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F88C:
+ pop {r3, pc}
+ nop
+_0222F890: .word 0x0223B884
+_0222F894: .word MOD83_0222F898
+ thumb_func_end MOD83_0222F864
+
+ thumb_func_start MOD83_0222F898
+MOD83_0222F898: ; 0x0222F898
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0222F898
+
+ thumb_func_start MOD83_0222F89C
+MOD83_0222F89C: ; 0x0222F89C
+ push {r3, lr}
+ ldr r1, _0222F8C0 ; =0x0223B884
+ ldr r2, [r1]
+ cmp r2, #0
+ bne _0222F8AC
+ bl FUN_0200CAB4
+ pop {r3, pc}
+_0222F8AC:
+ ldr r1, [r2, #0x20]
+ cmp r1, #0
+ beq _0222F8BC
+ add r2, #0x26
+ ldrb r0, [r2]
+ cmp r0, #0
+ bne _0222F8BC
+ blx r1
+_0222F8BC:
+ pop {r3, pc}
+ nop
+_0222F8C0: .word 0x0223B884
+ thumb_func_end MOD83_0222F89C
+
+ thumb_func_start MOD83_0222F8C4
+MOD83_0222F8C4: ; 0x0222F8C4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl FUN_02030F40
+ cmp r0, #0
+ bne _0222F8EA
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_02031C74
+ add r0, r5, #0
+ bl MOD83_0222F74C
+ ldr r0, _0222F8EC ; =MOD83_0222F7B4
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F8EA:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222F8EC: .word MOD83_0222F7B4
+ thumb_func_end MOD83_0222F8C4
+
+ thumb_func_start MOD83_0222F8F0
+MOD83_0222F8F0: ; 0x0222F8F0
+ add r3, r0, #0
+ add r2, r1, #0
+ add r1, r3, #0
+ ldr r3, _0222F8FC ; =FUN_02030B3C
+ mov r0, #0x16
+ bx r3
+ .align 2, 0
+_0222F8FC: .word FUN_02030B3C
+ thumb_func_end MOD83_0222F8F0
+
+ thumb_func_start MOD83_0222F900
+MOD83_0222F900: ; 0x0222F900
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02030F40
+ cmp r0, #0
+ bne _0222F92C
+ bl MOD83_02231364
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ add r1, r4, #0
+ bl FUN_02031CA8
+ add r0, r5, #0
+ bl MOD83_0222F74C
+ ldr r0, _0222F930 ; =MOD83_0222F828
+ mov r1, #0
+ bl MOD83_0222F7A4
+_0222F92C:
+ pop {r3, r4, r5, pc}
+ nop
+_0222F930: .word MOD83_0222F828
+ thumb_func_end MOD83_0222F900
+
+ thumb_func_start MOD83_0222F934
+MOD83_0222F934: ; 0x0222F934
+ ldr r1, _0222F944 ; =0x0223B884
+ ldr r3, _0222F948 ; =MOD83_0222F7A4
+ ldr r1, [r1]
+ add r1, #0x27
+ strb r0, [r1]
+ ldr r0, _0222F94C ; =MOD83_0222F844
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_0222F944: .word 0x0223B884
+_0222F948: .word MOD83_0222F7A4
+_0222F94C: .word MOD83_0222F844
+ thumb_func_end MOD83_0222F934
+
+ thumb_func_start MOD83_0222F950
+MOD83_0222F950: ; 0x0222F950
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0222F956:
+ add r0, r4, #0
+ bl FUN_0202F124
+ add r1, r0, #0
+ beq _0222F976
+ add r0, #0x4c
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _0222F976
+ add r5, #0x8c
+ add r0, r5, #0
+ mov r2, #0x50
+ bl memcpy
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_0222F976:
+ add r4, r4, #1
+ cmp r4, #0x10
+ blt _0222F956
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0222F950
+
+ thumb_func_start MOD83_0222F984
+MOD83_0222F984: ; 0x0222F984
+ ldr r1, _0222F99C ; =0x0223B884
+ ldr r2, [r1]
+ add r1, r2, #0
+ add r1, #0x27
+ ldrb r1, [r1]
+ cmp r1, r0
+ bne _0222F99A
+ mov r0, #0xf
+ mov r1, #1
+ lsl r0, r0, #6
+ strb r1, [r2, r0]
+_0222F99A:
+ bx lr
+ .align 2, 0
+_0222F99C: .word 0x0223B884
+ thumb_func_end MOD83_0222F984
+
+ thumb_func_start MOD83_0222F9A0
+MOD83_0222F9A0: ; 0x0222F9A0
+ ldr r0, _0222F9AC ; =0x0223B884
+ ldr r1, [r0]
+ mov r0, #0xf
+ lsl r0, r0, #6
+ ldrb r0, [r1, r0]
+ bx lr
+ .align 2, 0
+_0222F9AC: .word 0x0223B884
+ thumb_func_end MOD83_0222F9A0
+
+ thumb_func_start MOD83_0222F9B0
+MOD83_0222F9B0: ; 0x0222F9B0
+ mov r0, #0xd6
+ lsl r0, r0, #2
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0222F9B0
+
+ thumb_func_start MOD83_0222F9B8
+MOD83_0222F9B8: ; 0x0222F9B8
+ ldr r0, _0222F9C0 ; =0x0223B884
+ ldr r0, [r0]
+ add r0, #0x68
+ bx lr
+ .align 2, 0
+_0222F9C0: .word 0x0223B884
+ thumb_func_end MOD83_0222F9B8
+
+ thumb_func_start MOD83_0222F9C4
+MOD83_0222F9C4: ; 0x0222F9C4
+ ldr r1, _0222F9D4 ; =0x0223B884
+ mov r2, #1
+ ldr r1, [r1]
+ add r1, r1, r0
+ ldr r0, _0222F9D8 ; =0x000003C1
+ strb r2, [r1, r0]
+ bx lr
+ nop
+_0222F9D4: .word 0x0223B884
+_0222F9D8: .word 0x000003C1
+ thumb_func_end MOD83_0222F9C4
+
+ thumb_func_start MOD83_0222F9DC
+MOD83_0222F9DC: ; 0x0222F9DC
+ push {r3, lr}
+ ldr r1, _0222F9F4 ; =0x0223B884
+ mov r0, #0xf
+ ldr r1, [r1]
+ bl FUN_02016A8C
+ ldr r0, _0222F9F4 ; =0x0223B884
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_02031A08
+ pop {r3, pc}
+ .align 2, 0
+_0222F9F4: .word 0x0223B884
+ thumb_func_end MOD83_0222F9DC
+
+ thumb_func_start MOD83_0222F9F8
+MOD83_0222F9F8: ; 0x0222F9F8
+ ldr r3, _0222FA04 ; =FUN_0202D8D0
+ add r2, r0, #0
+ ldr r0, _0222FA08 ; =0x0223A3F0
+ mov r1, #2
+ bx r3
+ nop
+_0222FA04: .word FUN_0202D8D0
+_0222FA08: .word 0x0223A3F0
+ thumb_func_end MOD83_0222F9F8
+
+ thumb_func_start MOD83_0222FA0C
+MOD83_0222FA0C: ; 0x0222FA0C
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #1
+ ldr r0, _0222FA40 ; =0x00002994
+ bne _0222FA2C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222FA3C
+ add r0, r4, #0
+ add r0, #0x18
+ mov r1, #1
+ bl FUN_0200D858
+ ldr r1, _0222FA40 ; =0x00002994
+ str r0, [r4, r1]
+ pop {r4, pc}
+_0222FA2C:
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0222FA36
+ bl FUN_0200DBFC
+_0222FA36:
+ ldr r0, _0222FA40 ; =0x00002994
+ mov r1, #0
+ str r1, [r4, r0]
+_0222FA3C:
+ pop {r4, pc}
+ nop
+_0222FA40: .word 0x00002994
+ thumb_func_end MOD83_0222FA0C
+
+ thumb_func_start MOD83_0222FA44
+MOD83_0222FA44: ; 0x0222FA44
+ ldr r3, _0222FA48 ; =MOD83_0222FA0C
+ bx r3
+ .align 2, 0
+_0222FA48: .word MOD83_0222FA0C
+ thumb_func_end MOD83_0222FA44
+
+ thumb_func_start MOD83_0222FA4C
+MOD83_0222FA4C: ; 0x0222FA4C
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r7, r0, #0
+ bl MOD83_02238E48
+ ldr r0, [r7, #0x7c]
+ cmp r0, #0
+ beq _0222FA62
+ bl FUN_02012870
+_0222FA62:
+ ldr r0, [r7, #0x78]
+ cmp r0, #0
+ beq _0222FA70
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+_0222FA70:
+ add r0, r7, #0
+ add r0, #0x18
+ bl FUN_02019570
+ add r0, r7, #0
+ add r0, #0x18
+ bl FUN_02019178
+ add r0, r7, #0
+ add r0, #0x58
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0222FA9C
+ add r0, r7, #0
+ add r0, #0x58
+ bl FUN_02019570
+ add r0, r7, #0
+ add r0, #0x58
+ bl FUN_02019178
+_0222FA9C:
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x28
+_0222FAA4:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _0222FAB6
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+_0222FAB6:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #3
+ blt _0222FAA4
+ ldr r0, [r7]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r7]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r7]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_0222FA4C
+
+ thumb_func_start MOD83_0222FAE8
+MOD83_0222FAE8: ; 0x0222FAE8
+ push {r3, lr}
+ sub sp, #8
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0xa
+ mov r2, #7
+ mov r3, #9
+ bl MOD83_02238BC4
+ add sp, #8
+ pop {r3, pc}
+ thumb_func_end MOD83_0222FAE8
+
+ thumb_func_start MOD83_0222FB0C
+MOD83_0222FB0C: ; 0x0222FB0C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ beq _0222FB32
+ str r1, [sp]
+ ldr r1, _0222FB40 ; =0x000005C4
+ mov r0, #0
+ ldr r1, [r4, r1]
+ mov r2, #0x80
+ mov r3, #0x64
+ bl MOD83_02238DBC
+ ldr r1, _0222FB40 ; =0x000005C4
+ add sp, #4
+ str r0, [r4, r1]
+ pop {r3, r4, pc}
+_0222FB32:
+ ldr r0, _0222FB40 ; =0x000005C4
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222FB40: .word 0x000005C4
+ thumb_func_end MOD83_0222FB0C
+
+ thumb_func_start MOD83_0222FB44
+MOD83_0222FB44: ; 0x0222FB44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #1
+ bne _0222FB5A
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CCF8
+_0222FB5A:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_0222FB44
+
+ thumb_func_start MOD83_0222FB5C
+MOD83_0222FB5C: ; 0x0222FB5C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _0222FBB0 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ beq _0222FB7A
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #3
+ bl MOD83_0223050C
+_0222FB7A:
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ ldr r0, _0222FBB0 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ beq _0222FBAA
+ add r0, r4, #0
+ mov r1, #0xf
+ bl MOD83_0222F900
+ ldr r1, _0222FBB4 ; =0x00001C20
+ ldr r0, _0222FBB8 ; =0x00000434
+ str r1, [r4, r0]
+ bl FUN_02033E74
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ mov r0, #7
+ pop {r3, r4, r5, pc}
+_0222FBAA:
+ mov r0, #0x13
+ pop {r3, r4, r5, pc}
+ nop
+_0222FBB0: .word 0x000015D4
+_0222FBB4: .word 0x00001C20
+_0222FBB8: .word 0x00000434
+ thumb_func_end MOD83_0222FB5C
+
+ thumb_func_start MOD83_0222FBBC
+MOD83_0222FBBC: ; 0x0222FBBC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0x80
+ ldr r1, [r0]
+ cmp r1, #1
+ bne _0222FBD2
+ mov r0, #0x30
+ pop {r3, r4, r5, pc}
+_0222FBD2:
+ sub r0, r1, #2
+ cmp r0, #2
+ bhi _0222FBDC
+ mov r0, #0x30
+ pop {r3, r4, r5, pc}
+_0222FBDC:
+ cmp r1, #5
+ bne _0222FBE4
+ mov r0, #0x30
+ pop {r3, r4, r5, pc}
+_0222FBE4:
+ ldr r0, _0222FC38 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222FBF4
+ ldr r0, _0222FC3C ; =0x00000438
+ ldr r0, [r4, r0]
+ bl MOD83_0222F934
+_0222FBF4:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #6
+ bl MOD83_0223050C
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ ldr r0, _0222FC38 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222FC22
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+_0222FC22:
+ ldr r0, _0222FC38 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222FC34
+ mov r0, #0xab
+ bl FUN_02031588
+ mov r0, #9
+ pop {r3, r4, r5, pc}
+_0222FC34:
+ mov r0, #0x15
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222FC38: .word 0x000015D4
+_0222FC3C: .word 0x00000438
+ thumb_func_end MOD83_0222FBBC
+
+ thumb_func_start MOD83_0222FC40
+MOD83_0222FC40: ; 0x0222FC40
+ push {r3, r4, r5, r6, r7, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _0222FCA4 ; =0x000015D4
+ add r5, r4, #0
+ add r6, r4, #0
+ ldr r0, [r4, r0]
+ add r5, #0xdc
+ add r6, #0x8c
+ cmp r0, #1
+ beq _0222FC5E
+ cmp r0, #3
+ beq _0222FC84
+ b _0222FC9E
+_0222FC5E:
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl MOD83_0222F9B8
+ mov r2, #0xd6
+ add r1, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #2
+ bl memcpy
+ add r0, r4, #0
+ add r4, #0xdc
+ add r0, #0x8c
+ add r1, r4, #0
+ mov r2, #0x56
+ bl MOD83_02239374
+ b _0222FC9E
+_0222FC84:
+ ldr r7, _0222FCA8 ; =0x000005D4
+ mov r2, #0xd6
+ add r1, r4, r7
+ add r0, r5, #0
+ add r1, #0x50
+ lsl r2, r2, #2
+ bl memcpy
+ add r0, r6, #0
+ add r1, r4, r7
+ mov r2, #0x50
+ bl memcpy
+_0222FC9E:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222FCA4: .word 0x000015D4
+_0222FCA8: .word 0x000005D4
+ thumb_func_end MOD83_0222FC40
+
+ thumb_func_start MOD83_0222FCAC
+MOD83_0222FCAC: ; 0x0222FCAC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222FCD8 ; =0x00002990
+ ldr r1, [r4, r0]
+ cmp r1, #1
+ bne _0222FCBE
+ mov r1, #0
+ sub r0, r0, #4
+ str r1, [r4, r0]
+_0222FCBE:
+ bl MOD83_022394CC
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _0222FCD4
+ ldr r0, _0222FCDC ; =0x0000061B
+ bl FUN_020054C8
+ ldr r0, _0222FCE0 ; =0x0000298C
+ mov r1, #0
+ str r1, [r4, r0]
+_0222FCD4:
+ pop {r4, pc}
+ nop
+_0222FCD8: .word 0x00002990
+_0222FCDC: .word 0x0000061B
+_0222FCE0: .word 0x0000298C
+ thumb_func_end MOD83_0222FCAC
+
+ thumb_func_start MOD83_0222FCE4
+MOD83_0222FCE4: ; 0x0222FCE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ bl FUN_02006278
+ add r6, r0, #0
+ add r4, r6, #0
+ add r5, r6, #0
+ add r0, r7, #0
+ add r4, #0x8c
+ add r5, #0xdc
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _0222FD12
+ mov r7, #0
+ b _0222FD3E
+_0222FD12:
+ mov r1, #0x35
+ add r2, r4, #0
+ mov r0, #0
+ lsl r1, r1, #4
+ strb r0, [r5, r1]
+ add r2, #0x4e
+ ldrb r2, [r2]
+ mov r7, #1
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ bne _0222FD2C
+ sub r1, #8
+ strb r0, [r5, r1]
+_0222FD2C:
+ add r0, sp, #8
+ bl FUN_020126B4
+ add r0, sp, #8
+ bl RTC_ConvertDateToDay
+ mov r1, #0xd5
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+_0222FD3E:
+ ldr r0, [sp]
+ bl FUN_0202251C
+ add r4, #0x4c
+ ldrh r1, [r4]
+ str r0, [sp, #4]
+ bl FUN_0202AF24
+ cmp r7, #0
+ bne _0222FD5E
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_0202AC98
+ b _0222FD66
+_0222FD5E:
+ ldr r0, [sp, #4]
+ add r1, r5, #0
+ bl FUN_0202AD08
+_0222FD66:
+ ldr r0, [sp]
+ bl MOD83_022394BC
+ ldr r0, _0222FD7C ; =0x00002990
+ mov r1, #0
+ str r1, [r6, r0]
+ ldr r1, _0222FD80 ; =MOD83_0222FCAC
+ sub r0, r0, #4
+ str r1, [r6, r0]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FD7C: .word 0x00002990
+_0222FD80: .word MOD83_0222FCAC
+ thumb_func_end MOD83_0222FCE4
+
+ thumb_func_start MOD83_0222FD84
+MOD83_0222FD84: ; 0x0222FD84
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ add r4, r1, #0
+ bl FUN_02006278
+ cmp r4, #0
+ bne _0222FD98
+ mov r5, #4
+ b _0222FD9C
+_0222FD98:
+ mov r5, #0
+ mvn r5, r5
+_0222FD9C:
+ ldr r1, [r0, #0x48]
+ add r4, r0, #0
+ add r4, #0x48
+ cmp r1, #0
+ bne _0222FDC6
+ mov r1, #0xa
+ str r1, [sp]
+ mov r1, #6
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ mov r2, #0
+ mov r1, #0x6b
+ str r2, [sp, #0xc]
+ lsl r1, r1, #2
+ str r1, [sp, #0x10]
+ ldr r0, [r0]
+ add r1, r4, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FDC6:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ ldr r1, _0222FDE4 ; =0x0223ADD8
+ add r0, r6, #0
+ mov r2, #2
+ add r3, r4, #0
+ str r5, [sp]
+ bl MOD83_022303B0
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222FDE4: .word 0x0223ADD8
+ thumb_func_end MOD83_0222FD84
+
+ thumb_func_start MOD83_0222FDE8
+MOD83_0222FDE8: ; 0x0222FDE8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ ldr r0, _0222FE20 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0222FE14
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+_0222FE14:
+ bl FUN_02033ED0
+ add r0, r5, #0
+ bl MOD83_02230118
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222FE20: .word 0x000015D4
+ thumb_func_end MOD83_0222FDE8
+
+ thumb_func_start MOD83_0222FE24
+MOD83_0222FE24: ; 0x0222FE24
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_02006278
+ add r5, r0, #0
+ bl MOD83_02238700
+ cmp r0, #0
+ beq _0222FE3C
+ mov r1, #2
+ b _0222FE3E
+_0222FE3C:
+ mov r1, #1
+_0222FE3E:
+ ldr r0, _0222FE98 ; =0x000015D4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x38
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r4, r5, #0
+ ldr r0, [r5, #0x48]
+ add r4, #0x48
+ cmp r0, #0
+ bne _0222FE76
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x6b
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FE76:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r2, #2
+ ldr r1, _0222FE9C ; =0x0223ADC8
+ add r0, r6, #0
+ add r3, r4, #0
+ str r2, [sp]
+ bl MOD83_022303B0
+ mov r0, #5
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222FE98: .word 0x000015D4
+_0222FE9C: .word 0x0223ADC8
+ thumb_func_end MOD83_0222FE24
+
+ thumb_func_start MOD83_0222FEA0
+MOD83_0222FEA0: ; 0x0222FEA0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _0222FF08 ; =0x000015D4
+ mov r1, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r5, r4, #0
+ ldr r0, [r4, #0x48]
+ add r5, #0x48
+ cmp r0, #0
+ bne _0222FEE6
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x6b
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r5, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FEE6:
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r0, #0x4e
+ str r0, [sp]
+ ldr r1, _0222FF0C ; =0x0223AD98
+ add r0, r6, #0
+ mov r2, #2
+ add r3, r5, #0
+ bl MOD83_022303B0
+ mov r0, #5
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222FF08: .word 0x000015D4
+_0222FF0C: .word 0x0223AD98
+ thumb_func_end MOD83_0222FEA0
+
+ thumb_func_start MOD83_0222FF10
+MOD83_0222FF10: ; 0x0222FF10
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _0222FF78 ; =0x000015D4
+ mov r1, #3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r5, r4, #0
+ ldr r0, [r4, #0x48]
+ add r5, #0x48
+ cmp r0, #0
+ bne _0222FF56
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x6b
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r5, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FF56:
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r0, #0x4d
+ str r0, [sp]
+ ldr r1, _0222FF7C ; =0x0223ADA8
+ add r0, r6, #0
+ mov r2, #2
+ add r3, r5, #0
+ bl MOD83_022303B0
+ mov r0, #5
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222FF78: .word 0x000015D4
+_0222FF7C: .word 0x0223ADA8
+ thumb_func_end MOD83_0222FF10
+
+ thumb_func_start MOD83_0222FF80
+MOD83_0222FF80: ; 0x0222FF80
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, [r0, #0x48]
+ add r4, #0x48
+ cmp r1, #0
+ bne _0222FFB4
+ mov r1, #0xa
+ str r1, [sp]
+ mov r1, #6
+ str r1, [sp, #4]
+ mov r1, #4
+ str r1, [sp, #8]
+ mov r2, #0
+ mov r1, #0x6b
+ str r2, [sp, #0xc]
+ lsl r1, r1, #2
+ str r1, [sp, #0x10]
+ ldr r0, [r0]
+ add r1, r4, #0
+ mov r3, #0x17
+ bl FUN_02019064
+_0222FFB4:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r0, #4
+ str r0, [sp]
+ ldr r1, _0222FFD4 ; =0x0223ADB8
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD83_022303B0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_0222FFD4: .word 0x0223ADB8
+ thumb_func_end MOD83_0222FF80
+
+ thumb_func_start MOD83_0222FFD8
+MOD83_0222FFD8: ; 0x0222FFD8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ bl FUN_02033ED0
+ ldr r0, _0223000C ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _02230004
+ bl MOD83_0222F9DC
+_02230004:
+ add r0, r5, #0
+ bl MOD83_02230118
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223000C: .word 0x000015D4
+ thumb_func_end MOD83_0222FFD8
+
+ thumb_func_start MOD83_02230010
+MOD83_02230010: ; 0x02230010
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #3
+ bl MOD83_0223050C
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ ldr r0, _02230044 ; =0x0223B888
+ mov r1, #0x24
+ str r1, [r0, #0x10]
+ mov r0, #0x20
+ pop {r3, r4, r5, pc}
+ nop
+_02230044: .word 0x0223B888
+ thumb_func_end MOD83_02230010
+
+ thumb_func_start MOD83_02230048
+MOD83_02230048: ; 0x02230048
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ sub r0, r0, #2
+ cmp r0, #2
+ bhi _02230060
+ mov r0, #0x30
+ pop {r3, r4, r5, pc}
+_02230060:
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FB0C
+ add r4, #0x18
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #7
+ bl MOD83_0223050C
+ mov r0, #0x21
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02230048
+
+ thumb_func_start MOD83_02230084
+MOD83_02230084: ; 0x02230084
+ push {r3, lr}
+ ldr r0, _022300A8 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x27
+ beq _02230096
+ cmp r0, #0x28
+ beq _02230096
+ cmp r0, #0x2f
+ bne _022300A4
+_02230096:
+ bl MOD83_02239A14
+ cmp r0, #0
+ beq _022300A4
+ ldr r0, _022300A8 ; =0x0223B888
+ mov r1, #0x2a
+ str r1, [r0, #0x10]
+_022300A4:
+ mov r0, #0x23
+ pop {r3, pc}
+ .align 2, 0
+_022300A8: .word 0x0223B888
+ thumb_func_end MOD83_02230084
+
+ thumb_func_start MOD83_022300AC
+MOD83_022300AC: ; 0x022300AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #3
+ bl MOD83_0223050C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ mov r1, #1
+ ldr r0, _022300F0 ; =0x000015DC
+ lsl r1, r1, #0xc
+ str r1, [r4, r0]
+ ldr r0, _022300F4 ; =0x00002620
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #0x1b
+ pop {r3, r4, r5, pc}
+ nop
+_022300F0: .word 0x000015DC
+_022300F4: .word 0x00002620
+ thumb_func_end MOD83_022300AC
+
+ thumb_func_start MOD83_022300F8
+MOD83_022300F8: ; 0x022300F8
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02006278
+ add r0, #0x38
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ mov r1, #0xc4
+ mov r2, #0
+ bl MOD83_02230464
+ mov r0, #3
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022300F8
+
+ thumb_func_start MOD83_02230118
+MOD83_02230118: ; 0x02230118
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_02006278
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ bl FUN_0202251C
+ ldr r0, _02230194 ; =0x000005C8
+ ldr r1, [r5, r0]
+ cmp r1, #0x1e
+ bne _0223013E
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD83_022313E4
+_0223013E:
+ add r0, r5, #0
+ add r0, #0x28
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r4, r5, #0
+ ldr r0, [r5, #0x38]
+ add r4, #0x38
+ cmp r0, #0
+ bne _02230172
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x49
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r3, #0xf
+ bl FUN_02019064
+_02230172:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ mov r0, #1
+ str r0, [sp]
+ ldr r1, _02230198 ; =0x0223AE20
+ add r0, r6, #0
+ mov r2, #4
+ add r3, r4, #0
+ bl MOD83_022303B0
+ mov r0, #4
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02230194: .word 0x000005C8
+_02230198: .word 0x0223AE20
+ thumb_func_end MOD83_02230118
+
+ thumb_func_start MOD83_0223019C
+MOD83_0223019C: ; 0x0223019C
+ push {r4, lr}
+ bl FUN_02006278
+ ldr r1, _022301CC ; =0x000005C8
+ add r4, r0, #0
+ ldr r2, [r4, r1]
+ cmp r2, #0x1e
+ bne _022301B6
+ mov r2, #1
+ add r1, r1, #4
+ str r2, [r4, r1]
+ bl MOD83_022313E4
+_022301B6:
+ ldr r2, _022301D0 ; =0x000015D8
+ mov r0, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x35
+ mov r3, #2
+ bl MOD83_0223886C
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ nop
+_022301CC: .word 0x000005C8
+_022301D0: .word 0x000015D8
+ thumb_func_end MOD83_0223019C
+
+ thumb_func_start MOD83_022301D4
+MOD83_022301D4: ; 0x022301D4
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _02230204 ; =0x000005C8
+ ldr r1, [r4, r0]
+ cmp r1, #0x1e
+ bne _022301EA
+ mov r1, #1
+ add r0, r0, #4
+ str r1, [r4, r0]
+_022301EA:
+ mov r0, #1
+ bl MOD83_02238860
+ ldr r2, _02230208 ; =0x000015D8
+ mov r0, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x34
+ mov r3, #2
+ bl MOD83_0223886C
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, pc}
+ .align 2, 0
+_02230204: .word 0x000005C8
+_02230208: .word 0x000015D8
+ thumb_func_end MOD83_022301D4
+
+ thumb_func_start MOD83_0223020C
+MOD83_0223020C: ; 0x0223020C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r3, #0
+ ldr r3, _02230254 ; =0x0223A418
+ add r7, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r2, sp, #0
+ ldmia r3!, {r0, r1}
+ mov ip, r2
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ lsr r1, r6, #0xb
+ str r0, [r2]
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ lsr r1, r5, #0xe
+ strb r1, [r0, #0x13]
+ lsl r1, r4, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ mov r2, ip
+ mov r3, #0
+ bl FUN_02016C18
+ lsl r1, r4, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230254: .word 0x0223A418
+ thumb_func_end MOD83_0223020C
+
+ thumb_func_start MOD83_02230258
+MOD83_02230258: ; 0x02230258
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ ldr r5, _022302B0 ; =0x0223A408
+ 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}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ mov r1, #0
+ mov r2, #0xf
+ add r0, r4, #0
+ lsl r2, r2, #0xc
+ add r3, r1, #0
+ bl MOD83_0223020C
+ mov r1, #1
+ mov r2, #0x3e
+ add r0, r4, #0
+ lsl r2, r2, #0xa
+ lsl r3, r1, #0xf
+ bl MOD83_0223020C
+ mov r2, #0xe
+ add r0, r4, #0
+ mov r1, #4
+ lsl r2, r2, #0xa
+ mov r3, #0
+ bl MOD83_0223020C
+ mov r2, #0x1e
+ mov r3, #1
+ add r0, r4, #0
+ mov r1, #5
+ lsl r2, r2, #0xa
+ lsl r3, r3, #0xe
+ bl MOD83_0223020C
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022302B0: .word 0x0223A408
+ thumb_func_end MOD83_02230258
+
+ thumb_func_start MOD83_022302B4
+MOD83_022302B4: ; 0x022302B4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ mov r2, #4
+ str r0, [sp]
+ mov r0, #0x56
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0
+ add r3, #0xfc
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x56
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ 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, #0x56
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #8
+ mov r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020186B4
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022302B4
+
+ thumb_func_start MOD83_02230330
+MOD83_02230330: ; 0x02230330
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x56
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0
+ add r3, r0, #0
+ add r2, r1, #0
+ add r3, #0x8c
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x56
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x56
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r1, #2
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #8
+ mov r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020186B4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02017CD0
+ add r0, r4, #0
+ bl MOD83_022302B4
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02230330
+
+ thumb_func_start MOD83_022303B0
+MOD83_022303B0: ; 0x022303B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp]
+ add r5, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #4]
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0x7c]
+ cmp r0, #0
+ beq _022303CC
+ bl FUN_02012870
+_022303CC:
+ add r0, r7, #0
+ mov r1, #0x56
+ bl FUN_02012838
+ str r0, [r4, #0x7c]
+ ldr r2, _0223045C ; =0x00000172
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x56
+ bl FUN_0200A86C
+ mov r6, #0
+ str r0, [r4, #0x10]
+ cmp r7, #0
+ ble _022303FE
+_022303EA:
+ ldr r0, [r4, #0x7c]
+ ldr r1, [r4, #0x10]
+ ldr r2, [r5]
+ ldr r3, [r5, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r5, #8
+ cmp r6, r7
+ blt _022303EA
+_022303FE:
+ ldr r0, [r4, #0x10]
+ bl FUN_0200A8B8
+ ldr r3, _02230460 ; =0x0223AE00
+ add r2, sp, #8
+ 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}
+ ldr r0, [r4, #0x7c]
+ str r0, [sp, #8]
+ add r0, sp, #8
+ strh r7, [r0, #0x12]
+ ldrh r1, [r0, #0x12]
+ strh r1, [r0, #0x10]
+ ldr r0, [sp, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x78]
+ cmp r0, #0
+ beq _02230436
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+_02230436:
+ mov r1, #0
+ add r0, sp, #8
+ add r2, r1, #0
+ mov r3, #0x56
+ bl FUN_020010A8
+ str r0, [r4, #0x78]
+ mov r0, #0
+ ldr r2, [sp, #0x40]
+ mvn r0, r0
+ cmp r2, r0
+ beq _02230458
+ add r4, #0x18
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl MOD83_0223050C
+_02230458:
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223045C: .word 0x00000172
+_02230460: .word 0x0223AE00
+ thumb_func_end MOD83_022303B0
+
+ thumb_func_start MOD83_02230464
+MOD83_02230464: ; 0x02230464
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r0, [sp, #0x14]
+ str r1, [sp, #0x1c]
+ str r2, [sp, #0x18]
+ bl FUN_02006278
+ add r7, r0, #0
+ ldr r0, [r7, #4]
+ mov r5, #0
+ bl FUN_0202251C
+ ldr r1, _02230508 ; =0x0223AD98
+ add r4, r7, #0
+ ldr r2, [r1, #0x50]
+ ldr r1, [r1, #0x54]
+ add r4, #0x28
+ add r5, r5, #1
+ str r2, [sp, #0x20]
+ str r1, [sp, #0x24]
+ bl FUN_0202AE70
+ cmp r0, #0
+ beq _022304A8
+ lsl r6, r5, #3
+ add r0, sp, #0x20
+ add r1, r0, r6
+ ldr r0, _02230508 ; =0x0223AD98
+ add r5, r5, #1
+ ldr r3, [r0, #0x58]
+ ldr r2, [r0, #0x5c]
+ add r0, sp, #0x20
+ str r3, [r0, r6]
+ str r2, [r1, #4]
+_022304A8:
+ lsl r6, r5, #3
+ add r0, sp, #0x20
+ add r1, r0, r6
+ ldr r0, _02230508 ; =0x0223AD98
+ ldr r3, [r0, #0x60]
+ ldr r2, [r0, #0x64]
+ add r0, sp, #0x20
+ str r3, [r0, r6]
+ str r2, [r1, #4]
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _022304E6
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #1
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ mov r2, #0
+ lsl r0, r0, #0x10
+ str r2, [sp, #0xc]
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r7]
+ add r1, r4, #0
+ mov r3, #8
+ bl FUN_02019064
+_022304E6:
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ ldr r0, [sp, #0x18]
+ add r1, sp, #0x20
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ add r2, r5, #1
+ add r3, r4, #0
+ bl MOD83_022303B0
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02230508: .word 0x0223AD98
+ thumb_func_end MOD83_02230464
+
+ thumb_func_start MOD83_0223050C
+MOD83_0223050C: ; 0x0223050C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r7, r2, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r2, _0223059C ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x56
+ bl FUN_0200A86C
+ str r0, [r4, #0x10]
+ mov r0, #0x56
+ bl FUN_0200AA80
+ str r0, [r4, #0xc]
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02002E4C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_02019620
+ ldr r6, [r4, #0x14]
+ cmp r6, #0
+ bne _02230554
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r2, r7, #0
+ mov r3, #0x56
+ bl FUN_0200A9C4
+ add r6, r0, #0
+_02230554:
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x68]
+ mov r1, #1
+ str r0, [sp, #4]
+ ldr r0, _022305A0 ; =0x0001020F
+ add r2, r6, #0
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ add r0, r5, #0
+ bl FUN_0201BDE0
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _0223057A
+ add r0, r6, #0
+ bl FUN_02021A20
+_0223057A:
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #2
+ bl FUN_0200D0BC
+ ldr r0, [r4, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0xc]
+ bl FUN_0200AB18
+ mov r0, #0xff
+ str r0, [r4, #0x68]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223059C: .word 0x00000172
+_022305A0: .word 0x0001020F
+ thumb_func_end MOD83_0223050C
+
+ thumb_func_start MOD83_022305A4
+MOD83_022305A4: ; 0x022305A4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r6, r2, #0
+ bl FUN_02006278
+ mov r0, #0x25
+ mov r1, #0x56
+ bl FUN_020219F4
+ add r1, r6, #0
+ mov r2, #0x24
+ add r4, r0, #0
+ bl FUN_02021E8C
+ mov r0, #0
+ mov r1, #6
+ bl FUN_02002E4C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02230600 ; =0x0001020F
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CCA4
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02230600: .word 0x0001020F
+ thumb_func_end MOD83_022305A4
+
+ thumb_func_start MOD83_02230604
+MOD83_02230604: ; 0x02230604
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl FUN_02006278
+ ldr r0, [r0, #0x78]
+ bl FUN_02001204
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _02230628
+ add r0, r0, #1
+ cmp r4, r0
+ beq _0223065E
+ b _02230642
+_02230628:
+ ldr r0, _02230660 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r6, #0
+ beq _0223065E
+ add r0, r7, #0
+ blx r6
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223065E
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02230642:
+ ldr r0, _02230660 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r4, #0
+ beq _0223065E
+ ldr r0, _02230664 ; =0x0223B888
+ str r4, [r0, #0xc]
+ add r0, r7, #0
+ blx r4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223065E
+ str r0, [r5]
+_0223065E:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230660: .word 0x000005DC
+_02230664: .word 0x0223B888
+ thumb_func_end MOD83_02230604
+
+ thumb_func_start MOD83_02230668
+MOD83_02230668: ; 0x02230668
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0201BD5C
+ mov r0, #0
+ add r1, r0, #0
+ mov r2, #0x56
+ bl FUN_02002ED0
+ mov r0, #0
+ mov r1, #0x20
+ mov r2, #0x56
+ bl FUN_02002ED0
+ ldr r0, [r4, #8]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x56
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #2
+ bl FUN_0200CD68
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x56
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #3
+ bl FUN_0200CB00
+ mov r0, #5
+ ldr r1, _02230710 ; =0x00007D8C
+ lsl r0, r0, #0x18
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x18
+ bl FUN_02019048
+ cmp r0, #0
+ bne _022306EC
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ add r1, r4, #0
+ str r2, [sp, #0xc]
+ mov r0, #0x28
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x18
+ mov r3, #2
+ bl FUN_02019064
+_022306EC:
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #0
+ bl MOD83_0223050C
+ add r0, r5, #0
+ mov r1, #0xc4
+ mov r2, #0
+ bl MOD83_02230464
+ ldr r0, [r4]
+ bl MOD83_02230330
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02230710: .word 0x00007D8C
+ thumb_func_end MOD83_02230668
+
+ thumb_func_start MOD83_02230714
+MOD83_02230714: ; 0x02230714
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, _022307A4 ; =0x000015DC
+ add r0, r6, #0
+ add r1, r4, r1
+ bl MOD83_02239F34
+ cmp r0, #4
+ bhi _022307A2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223073A: ; jump table
+ .short _022307A2 - _0223073A - 2 ; case 0
+ .short _02230744 - _0223073A - 2 ; case 1
+ .short _02230768 - _0223073A - 2 ; case 2
+ .short _02230768 - _0223073A - 2 ; case 3
+ .short _02230776 - _0223073A - 2 ; case 4
+_02230744:
+ ldr r1, _022307A8 ; =0x000015FC
+ add r0, r4, #0
+ mov r2, #0xea
+ add r0, #0x8c
+ add r1, r4, r1
+ lsl r2, r2, #2
+ bl memcpy
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x1b
+ add r4, #0x84
+ str r0, [r4]
+ mov r0, #0x13
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_02230768:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x11
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_02230776:
+ ldr r0, _022307AC ; =0x00002624
+ add r0, r4, r0
+ bl FUN_02019570
+ ldr r0, _022307AC ; =0x00002624
+ add r0, r4, r0
+ bl FUN_02019178
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_02018744
+ ldr r0, _022307B0 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #0xc4
+ mov r2, #0
+ bl MOD83_02230464
+ mov r0, #3
+ str r0, [r5]
+_022307A2:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022307A4: .word 0x000015DC
+_022307A8: .word 0x000015FC
+_022307AC: .word 0x00002624
+_022307B0: .word 0x000005DC
+ thumb_func_end MOD83_02230714
+
+ thumb_func_start MOD83_022307B4
+MOD83_022307B4: ; 0x022307B4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x5c
+ add r5, r0, #0
+ ldr r0, _0223083C ; =0x00002610
+ ldr r4, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022307C8
+ mov r4, #0xb
+_022307C8:
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_02018744
+ mov r0, #0x56
+ bl FUN_0200AA80
+ mov r1, #2
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, _02230840 ; =0x00002614
+ mov r1, #0
+ ldr r2, [r5, r2]
+ mov r3, #5
+ add r6, r0, #0
+ bl FUN_0200AD38
+ mov r0, #0x1f
+ ldr r1, _02230844 ; =0x00002624
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r3, _02230848 ; =0x00000265
+ add r0, sp, #8
+ add r1, r5, r1
+ mov r2, #1
+ bl MOD83_022388E4
+ add r0, sp, #8
+ mov r1, #0x18
+ mov r2, #0x10
+ mov r3, #0x64
+ bl MOD83_02238934
+ add r0, sp, #8
+ mov r1, #0
+ mov r2, #1
+ bl MOD83_0223893C
+ str r6, [sp, #0x1c]
+ str r4, [sp]
+ mov r2, #4
+ ldr r0, [r5]
+ add r1, sp, #8
+ add r3, r2, #0
+ bl MOD83_02238A38
+ add r0, r6, #0
+ bl FUN_0200AB18
+ add sp, #0x5c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0223083C: .word 0x00002610
+_02230840: .word 0x00002614
+_02230844: .word 0x00002624
+_02230848: .word 0x00000265
+ thumb_func_end MOD83_022307B4
+
+ thumb_func_start MOD83_0223084C
+MOD83_0223084C: ; 0x0223084C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r1, r0, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #3
+ bne _02230862
+ mov r4, #0x15
+ b _0223088C
+_02230862:
+ cmp r0, #4
+ bne _0223086A
+ mov r4, #0x19
+ b _0223088C
+_0223086A:
+ cmp r0, #2
+ bne _02230872
+ mov r4, #0x16
+ b _0223088C
+_02230872:
+ cmp r0, #1
+ bne _0223087A
+ mov r4, #0x1b
+ b _0223088C
+_0223087A:
+ cmp r0, #5
+ bne _0223088C
+ add r0, r5, #0
+ add r1, #0x18
+ mov r2, #9
+ mov r3, #0x33
+ bl MOD83_0223089C
+ pop {r3, r4, r5, pc}
+_0223088C:
+ add r0, r5, #0
+ add r1, #0x18
+ add r2, r4, #0
+ mov r3, #0x32
+ bl MOD83_0223089C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223084C
+
+ thumb_func_start MOD83_0223089C
+MOD83_0223089C: ; 0x0223089C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ add r6, r1, #0
+ add r5, r2, #0
+ str r3, [sp, #4]
+ bl FUN_02006278
+ add r4, r0, #0
+ cmp r6, #0
+ beq _022308F8
+ cmp r5, #0
+ beq _022308F8
+ ldr r2, _02230920 ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x56
+ bl FUN_0200A86C
+ add r7, r0, #0
+ mov r0, #0x56
+ bl FUN_0200AA80
+ add r1, r7, #0
+ add r2, r5, #0
+ mov r3, #0x56
+ str r0, [sp, #8]
+ bl FUN_0200A9C4
+ str r0, [r4, #0x14]
+ mov r0, #1
+ str r0, [r4, #0x68]
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD83_0223050C
+ ldr r0, [sp, #4]
+ str r0, [r4, #0x74]
+ ldr r0, [sp, #8]
+ bl FUN_0200AB18
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ b _02230918
+_022308F8:
+ ldr r0, [r4, #0x6c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02230918
+ ldr r0, [r4, #0x14]
+ bl FUN_02021A20
+ mov r0, #0
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x68]
+ add sp, #0xc
+ ldr r0, [r4, #0x74]
+ pop {r4, r5, r6, r7, pc}
+_02230918:
+ mov r0, #0x31
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02230920: .word 0x00000172
+ thumb_func_end MOD83_0223089C
+
+ thumb_func_start MOD83_02230924
+MOD83_02230924: ; 0x02230924
+ push {r3, lr}
+ ldr r1, _02230950 ; =0x000015D4
+ ldr r0, [r0, r1]
+ cmp r0, #4
+ bhi _0223094C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223093A: ; jump table
+ .short _0223094C - _0223093A - 2 ; case 0
+ .short _02230944 - _0223093A - 2 ; case 1
+ .short _0223094C - _0223093A - 2 ; case 2
+ .short _0223094C - _0223093A - 2 ; case 3
+ .short _0223094C - _0223093A - 2 ; case 4
+_02230944:
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+_0223094C:
+ pop {r3, pc}
+ nop
+_02230950: .word 0x000015D4
+ thumb_func_end MOD83_02230924
+
+ thumb_func_start MOD83_02230954
+MOD83_02230954: ; 0x02230954
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD83_02231370
+ mov r0, #3
+ mov r1, #0x56
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r1, _022309FC ; =0x00002998
+ add r0, r5, #0
+ mov r2, #0x56
+ bl FUN_02006268
+ ldr r2, _022309FC ; =0x00002998
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x56
+ bl FUN_02016B94
+ str r0, [r4]
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ bl MOD83_022331C0
+ ldr r0, [r4]
+ bl MOD83_02230258
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ ldr r1, _02230A00 ; =0x00000496
+ mov r0, #0xa
+ mov r2, #1
+ bl FUN_0200433C
+ mov r0, #0x56
+ bl MOD83_022385FC
+ bl MOD83_02238700
+ cmp r0, #0
+ beq _022309D0
+ ldr r0, _02230A04 ; =0x000015D4
+ mov r1, #2
+ str r1, [r4, r0]
+ ldr r0, _02230A08 ; =0x020ECAC0
+ ldrb r0, [r0]
+ bl FUN_02016438
+ mov r0, #1
+ bl MOD83_02239450
+_022309D0:
+ ldr r0, _02230A0C ; =0x000005C8
+ mov r1, #0x1d
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [r4, #4]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #8]
+ mov r0, #0xff
+ mov r2, #3
+ str r0, [r4, #0x68]
+ mov r0, #0
+ mov r1, #0x5b
+ lsl r2, r2, #8
+ bl FUN_0201681C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_022309FC: .word 0x00002998
+_02230A00: .word 0x00000496
+_02230A04: .word 0x000015D4
+_02230A08: .word 0x020ECAC0
+_02230A0C: .word 0x000005C8
+ thumb_func_end MOD83_02230954
+
+ thumb_func_start MOD83_02230A10
+MOD83_02230A10: ; 0x02230A10
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl CTRDG_IsExisting
+ ldr r0, _02230D5C ; =0x000005C8
+ ldr r0, [r4, r0]
+ cmp r0, #0x1d
+ beq _02230A30
+ add r0, r4, #0
+ bl MOD83_022313E4
+_02230A30:
+ ldr r3, [r5]
+ cmp r3, #0x38
+ bls _02230A3A
+ bl _02231334
+_02230A3A:
+ add r0, r3, r3
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02230A46: ; jump table
+ .short _02230AB8 - _02230A46 - 2 ; case 0
+ .short _02230ACA - _02230A46 - 2 ; case 1
+ .short _02230AE8 - _02230A46 - 2 ; case 2
+ .short _02230AF2 - _02230A46 - 2 ; case 3
+ .short _02230B00 - _02230A46 - 2 ; case 4
+ .short _02230B0E - _02230A46 - 2 ; case 5
+ .short _02231334 - _02230A46 - 2 ; case 6
+ .short _02230CA0 - _02230A46 - 2 ; case 7
+ .short _02230D50 - _02230A46 - 2 ; case 8
+ .short _02230D8C - _02230A46 - 2 ; case 9
+ .short _02230E4C - _02230A46 - 2 ; case 10
+ .short _02230E9A - _02230A46 - 2 ; case 11
+ .short _02230EBC - _02230A46 - 2 ; case 12
+ .short _02230F4C - _02230A46 - 2 ; case 13
+ .short _02230FA2 - _02230A46 - 2 ; case 14
+ .short _02230FCE - _02230A46 - 2 ; case 15
+ .short _0223100E - _02230A46 - 2 ; case 16
+ .short _02231030 - _02230A46 - 2 ; case 17
+ .short _0223105A - _02230A46 - 2 ; case 18
+ .short _0223107A - _02230A46 - 2 ; case 19
+ .short _0223110E - _02230A46 - 2 ; case 20
+ .short _0223111A - _02230A46 - 2 ; case 21
+ .short _0223113C - _02230A46 - 2 ; case 22
+ .short _02231172 - _02230A46 - 2 ; case 23
+ .short _0223118C - _02230A46 - 2 ; case 24
+ .short _02231204 - _02230A46 - 2 ; case 25
+ .short _02231334 - _02230A46 - 2 ; case 26
+ .short _02230B1C - _02230A46 - 2 ; case 27
+ .short _02231334 - _02230A46 - 2 ; case 28
+ .short _02231334 - _02230A46 - 2 ; case 29
+ .short _02231334 - _02230A46 - 2 ; case 30
+ .short _02230BD6 - _02230A46 - 2 ; case 31
+ .short _02230B28 - _02230A46 - 2 ; case 32
+ .short _02230BE8 - _02230A46 - 2 ; case 33
+ .short _02230C0A - _02230A46 - 2 ; case 34
+ .short _02230C7C - _02230A46 - 2 ; case 35
+ .short _02231334 - _02230A46 - 2 ; case 36
+ .short _02231334 - _02230A46 - 2 ; case 37
+ .short _02231334 - _02230A46 - 2 ; case 38
+ .short _02231334 - _02230A46 - 2 ; case 39
+ .short _02231334 - _02230A46 - 2 ; case 40
+ .short _02231334 - _02230A46 - 2 ; case 41
+ .short _02231334 - _02230A46 - 2 ; case 42
+ .short _02231334 - _02230A46 - 2 ; case 43
+ .short _02231334 - _02230A46 - 2 ; case 44
+ .short _02231334 - _02230A46 - 2 ; case 45
+ .short _02231334 - _02230A46 - 2 ; case 46
+ .short _02231334 - _02230A46 - 2 ; case 47
+ .short _02231220 - _02230A46 - 2 ; case 48
+ .short _02231244 - _02230A46 - 2 ; case 49
+ .short _02231252 - _02230A46 - 2 ; case 50
+ .short _0223126E - _02230A46 - 2 ; case 51
+ .short _02231284 - _02230A46 - 2 ; case 52
+ .short _02231298 - _02230A46 - 2 ; case 53
+ .short _022312AA - _02230A46 - 2 ; case 54
+ .short _022312EC - _02230A46 - 2 ; case 55
+ .short _0223132E - _02230A46 - 2 ; case 56
+_02230AB8:
+ mov r0, #0x56
+ bl MOD83_02238770
+ ldr r0, _02230D60 ; =0x000015D8
+ str r5, [r4, r0]
+ mov r0, #1
+ str r0, [r5]
+ bl _02231334
+_02230ACA:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD83_02230668
+ add r0, r4, #0
+ bl MOD83_0222FAE8
+ mov r0, #1
+ mov r1, #3
+ add r2, r5, #0
+ mov r3, #2
+ bl MOD83_0223886C
+ bl _02231334
+_02230AE8:
+ add r0, r5, #0
+ bl MOD83_022388CC
+ bl _02231334
+_02230AF2:
+ ldr r2, _02230D64 ; =MOD83_022301D4
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ bl _02231334
+_02230B00:
+ ldr r2, _02230D68 ; =MOD83_022300F8
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ bl _02231334
+_02230B0E:
+ ldr r2, _02230D6C ; =MOD83_0222FDE8
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ bl _02231334
+_02230B1C:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230714
+ bl _02231334
+_02230B28:
+ add r0, r4, #0
+ bl MOD83_022314B4
+ ldr r0, _02230D70 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x2c
+ bne _02230BC0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ add r0, r6, #0
+ bl MOD83_0222FC40
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x8c
+ bl MOD83_022332B4
+ add r1, r4, #0
+ add r1, #0x80
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02230B6C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x30
+ str r0, [r5]
+ b _02230BC0
+_02230B6C:
+ add r0, r4, #0
+ add r0, #0x58
+ bl FUN_02019048
+ cmp r0, #0
+ bne _02230B9A
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x71
+ add r1, r4, #0
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x58
+ mov r3, #3
+ bl FUN_02019064
+_02230B9A:
+ bl MOD83_02239DA0
+ add r1, r4, #0
+ add r2, r0, #0
+ add r0, r6, #0
+ add r1, #0x58
+ bl MOD83_022305A4
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #4
+ bl MOD83_0223050C
+ add r0, r6, #0
+ bl MOD83_0222FF80
+ mov r0, #0x1f
+ str r0, [r5]
+_02230BC0:
+ ldr r0, _02230D70 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ sub r0, #0x2d
+ cmp r0, #1
+ bls _02230BCC
+ b _02231334
+_02230BCC:
+ bl MOD83_02231494
+ mov r0, #0x11
+ str r0, [r5]
+ b _02231334
+_02230BD6:
+ ldr r2, _02230D74 ; =MOD83_02230084
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ add r0, r4, #0
+ bl MOD83_022314B4
+ b _02231334
+_02230BE8:
+ add r0, r6, #0
+ bl MOD83_0222FC40
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD83_022391EC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ add r0, r6, #0
+ bl MOD83_0222FCE4
+ mov r0, #0x22
+ str r0, [r5]
+ b _02231334
+_02230C0A:
+ bl MOD83_02239574
+ cmp r0, #4
+ bne _02230C16
+ bl MOD83_02239544
+_02230C16:
+ bl MOD83_02239574
+ cmp r0, #2
+ bne _02230C48
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ ldr r0, _02230D78 ; =0x00000624
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #8
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230C48:
+ bl MOD83_02239574
+ cmp r0, #3
+ bne _02230D38
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ mov r2, #0x1a
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230C7C:
+ add r0, r4, #0
+ bl MOD83_022314B4
+ ldr r0, _02230D70 ; =0x0223B888
+ ldr r1, [r0, #0x10]
+ add r0, r1, #0
+ sub r0, #0x2c
+ cmp r0, #2
+ bhi _02230D38
+ cmp r1, #0x2e
+ bne _02230C96
+ bl MOD83_02231494
+_02230C96:
+ add r0, r6, #0
+ bl MOD83_0222FFD8
+ str r0, [r5]
+ b _02231334
+_02230CA0:
+ add r0, r4, #0
+ bl MOD83_0222F950
+ ldr r1, _02230D7C ; =0x00000438
+ str r0, [r4, r1]
+ mov r0, #0
+ ldr r1, [r4, r1]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02230D20
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x8c
+ bl MOD83_022332B4
+ add r1, r4, #0
+ add r1, #0x80
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x58
+ bl FUN_02019048
+ cmp r0, #0
+ bne _02230CFA
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x71
+ add r1, r4, #0
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x58
+ mov r3, #3
+ bl FUN_02019064
+_02230CFA:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r0, r6, #0
+ add r1, #0x58
+ add r2, #0x8c
+ bl MOD83_022305A4
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #4
+ bl MOD83_0223050C
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD83_0222FD84
+ mov r0, #8
+ str r0, [r5]
+_02230D20:
+ ldr r0, _02230D80 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ bne _02230D3A
+ ldr r0, _02230D84 ; =0x00000434
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02230D3A
+_02230D38:
+ b _02231334
+_02230D3A:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ mov r0, #0x11
+ str r0, [r5]
+ b _02231334
+_02230D50:
+ ldr r2, _02230D88 ; =MOD83_0222FFD8
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ b _02231334
+ .align 2, 0
+_02230D5C: .word 0x000005C8
+_02230D60: .word 0x000015D8
+_02230D64: .word MOD83_022301D4
+_02230D68: .word MOD83_022300F8
+_02230D6C: .word MOD83_0222FDE8
+_02230D70: .word 0x0223B888
+_02230D74: .word MOD83_02230084
+_02230D78: .word 0x00000624
+_02230D7C: .word 0x00000438
+_02230D80: .word 0x021C48B8
+_02230D84: .word 0x00000434
+_02230D88: .word MOD83_0222FFD8
+_02230D8C:
+ bl FUN_02031190
+ add r7, r0, #0
+ beq _02230DE4
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _02230DE4
+ mov r0, #0xab
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _02230E14
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020334E8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #7
+ bl MOD83_0223050C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ mov r1, #0x96
+ ldr r0, _02231120 ; =0x00000434
+ lsl r1, r1, #2
+ str r1, [r4, r0]
+ mov r0, #0xa
+ str r0, [r5]
+ b _02230E14
+_02230DE4:
+ cmp r7, #0
+ beq _02230E14
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _02230E14
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x10
+ str r0, [r5]
+ b _02231334
+_02230E14:
+ ldr r0, _02231124 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ bne _02230E2C
+ ldr r0, _02231120 ; =0x00000434
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02230F1C
+_02230E2C:
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x11
+ str r0, [r5]
+ b _02231334
+_02230E4C:
+ bl MOD83_0222F9A0
+ cmp r0, #0
+ beq _02230E58
+ mov r0, #0xb
+ str r0, [r5]
+_02230E58:
+ bl FUN_02031190
+ ldr r1, _02231124 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ tst r1, r2
+ bne _02230E84
+ ldr r1, _02231120 ; =0x00000434
+ ldr r2, [r4, r1]
+ sub r2, r2, #1
+ str r2, [r4, r1]
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _02230E84
+ cmp r0, #0
+ beq _02230F1C
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _02230F1C
+_02230E84:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ mov r0, #0x11
+ str r0, [r5]
+ b _02231334
+_02230E9A:
+ add r0, r6, #0
+ bl MOD83_0222FC40
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD83_022391EC
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020334E8
+ add r0, r6, #0
+ bl MOD83_0222FCE4
+ mov r0, #0xc
+ str r0, [r5]
+ b _02231334
+_02230EBC:
+ bl FUN_02031190
+ cmp r0, #0
+ beq _02230EFA
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _02230EFA
+ bl MOD83_0222F9DC
+ ldr r0, _02231128 ; =0x00002990
+ mov r1, #1
+ str r1, [r4, r0]
+ bl MOD83_0223955C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ bl FUN_02033ED0
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ mov r0, #0xe
+ str r0, [r5]
+ b _02231334
+_02230EFA:
+ bl MOD83_02239574
+ cmp r0, #4
+ bne _02230F14
+ mov r0, #0x93
+ bl FUN_02031588
+ mov r0, #0xd
+ str r0, [r5]
+ ldr r0, _0223112C ; =0x0000043C
+ mov r1, #0x78
+ str r1, [r4, r0]
+ b _02231334
+_02230F14:
+ bl MOD83_02239574
+ cmp r0, #3
+ beq _02230F1E
+_02230F1C:
+ b _02231334
+_02230F1E:
+ bl MOD83_0223955C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #0x1a
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230F4C:
+ mov r0, #0x93
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _02230F66
+ bl MOD83_02239544
+ ldr r0, _0223112C ; =0x0000043C
+ mov r1, #0xa
+ str r1, [r4, r0]
+ mov r0, #0xf
+ str r0, [r5]
+ b _02231334
+_02230F66:
+ ldr r0, _0223112C ; =0x0000043C
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02231062
+ bl MOD83_0223955C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #0x1a
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230FA2:
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ mov r2, #0x1c
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02230FCE:
+ ldr r0, _0223112C ; =0x0000043C
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02231062
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ ldr r0, _02231130 ; =0x00000624
+ bl FUN_020054C8
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #8
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_0223100E:
+ ldr r0, _02231134 ; =0x000005DC
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #0x18
+ bl MOD83_0223050C
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ mov r0, #0x12
+ str r0, [r5]
+ b _02231334
+_02231030:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ ldr r0, _02231134 ; =0x000005DC
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #0x17
+ bl MOD83_0223050C
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ mov r0, #0x12
+ str r0, [r5]
+ b _02231334
+_0223105A:
+ ldr r0, _02231124 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ bne _02231064
+_02231062:
+ b _02231334
+_02231064:
+ ldr r0, _02231134 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r6, #0
+ mov r1, #0xc4
+ mov r2, #0
+ bl MOD83_02230464
+ mov r0, #3
+ str r0, [r5]
+ b _02231334
+_0223107A:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0x1b
+ beq _02231090
+ add r0, r4, #0
+ mov r1, #0xea
+ add r0, #0x8c
+ lsl r1, r1, #2
+ bl MOD83_02238728
+_02231090:
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x8c
+ bl MOD83_022332B4
+ add r1, r4, #0
+ add r1, #0x80
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _022310B8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r0, #0x30
+ str r0, [r5]
+ b _02231334
+_022310B8:
+ add r0, r4, #0
+ add r0, #0x58
+ bl FUN_02019048
+ cmp r0, #0
+ bne _022310E6
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #0
+ mov r0, #0x71
+ add r1, r4, #0
+ str r2, [sp, #0xc]
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x58
+ mov r3, #3
+ bl FUN_02019064
+_022310E6:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r0, r6, #0
+ add r1, #0x58
+ add r2, #0x8c
+ bl MOD83_022305A4
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #4
+ bl MOD83_0223050C
+ add r0, r6, #0
+ mov r1, #0
+ bl MOD83_0222FD84
+ mov r0, #0x14
+ str r0, [r5]
+ b _02231334
+_0223110E:
+ ldr r2, _02231138 ; =MOD83_0222FFD8
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02230604
+ b _02231334
+_0223111A:
+ mov r0, #0x16
+ str r0, [r5]
+ b _02231334
+ .align 2, 0
+_02231120: .word 0x00000434
+_02231124: .word 0x021C48B8
+_02231128: .word 0x00002990
+_0223112C: .word 0x0000043C
+_02231130: .word 0x00000624
+_02231134: .word 0x000005DC
+_02231138: .word MOD83_0222FFD8
+_0223113C:
+ add r0, r6, #0
+ bl MOD83_0222FC40
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl MOD83_022391EC
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #7
+ bl MOD83_0223050C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_0222FA0C
+ ldr r0, _0223134C ; =0x0000043C
+ mov r1, #0x3c
+ str r1, [r4, r0]
+ mov r0, #0x17
+ str r0, [r5]
+ b _02231334
+_02231172:
+ ldr r0, _0223134C ; =0x0000043C
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02231212
+ add r0, r6, #0
+ bl MOD83_0222FCE4
+ mov r0, #0x18
+ str r0, [r5]
+ b _02231334
+_0223118C:
+ bl MOD83_02239574
+ cmp r0, #4
+ bne _02231198
+ bl MOD83_02239544
+_02231198:
+ bl MOD83_02239574
+ cmp r0, #2
+ bne _022311D0
+ ldr r0, _0223134C ; =0x0000043C
+ mov r1, #1
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_0222FA0C
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ ldr r0, _02231350 ; =0x00000624
+ bl FUN_020054C8
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r2, #8
+ mov r3, #0x19
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_022311D0:
+ bl MOD83_02239574
+ cmp r0, #3
+ bne _02231212
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD83_0222FB0C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ mov r2, #0x1a
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ add r1, r4, #0
+ add r0, r6, #0
+ add r1, #0x18
+ mov r3, #0x36
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02231204:
+ ldr r0, _0223134C ; =0x0000043C
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02231214
+_02231212:
+ b _02231334
+_02231214:
+ mov r1, #1
+ lsl r1, r1, #0x10
+ str r1, [r4, r0]
+ mov r0, #0x36
+ str r0, [r5]
+ b _02231334
+_02231220:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #5
+ beq _02231230
+ add r0, r4, #0
+ bl MOD83_02230924
+_02231230:
+ add r0, r6, #0
+ bl MOD83_0223084C
+ str r0, [r5]
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl MOD83_0222FB44
+ b _02231334
+_02231244:
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ bl MOD83_0223089C
+ str r0, [r5]
+ b _02231334
+_02231252:
+ ldr r0, _02231354 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02231334
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl MOD83_0222FB44
+ add r0, r6, #0
+ bl MOD83_022300F8
+ str r0, [r5]
+ b _02231334
+_0223126E:
+ add r0, r6, #0
+ mov r1, #1
+ bl MOD83_0222FD84
+ mov r0, #8
+ str r0, [r5]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x80
+ str r1, [r0]
+ b _02231334
+_02231284:
+ add r0, r6, #0
+ bl MOD83_0222FA4C
+ mov r0, #0x11
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02231298:
+ add r0, r6, #0
+ bl MOD83_0222FA4C
+ mov r1, #0x11
+ mov r0, #1
+ lsl r1, r1, #6
+ add sp, #0x14
+ str r0, [r4, r1]
+ pop {r4, r5, r6, r7, pc}
+_022312AA:
+ ldr r0, _02231354 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02231334
+ ldr r0, _02231358 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _022312D6
+ ldr r2, _0223135C ; =0x000015D8
+ mov r0, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x37
+ mov r3, #2
+ bl MOD83_0223886C
+ b _02231334
+_022312D6:
+ mov r0, #1
+ bl MOD83_02238860
+ ldr r2, _0223135C ; =0x000015D8
+ mov r0, #0
+ ldr r2, [r4, r2]
+ mov r1, #0x38
+ mov r3, #2
+ bl MOD83_0223886C
+ b _02231334
+_022312EC:
+ ldr r0, [r4]
+ bl MOD83_022302B4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E74C
+ add r1, r4, #0
+ ldr r0, [r4]
+ add r1, #0xdc
+ mov r2, #0x56
+ bl MOD83_02233168
+ ldr r2, _0223135C ; =0x000015D8
+ mov r0, #1
+ ldr r2, [r4, r2]
+ mov r1, #0x36
+ mov r3, #2
+ bl MOD83_0223886C
+ add r0, r4, #0
+ add r0, #0xda
+ ldrb r1, [r0]
+ mov r0, #4
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0xda
+ strb r1, [r0]
+ b _02231334
+_0223132E:
+ mov r0, #0
+ bl OS_ResetSystem
+_02231334:
+ ldr r0, _02231360 ; =0x0000298C
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02231340
+ add r0, r4, #0
+ blx r1
+_02231340:
+ bl MOD83_02238D58
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223134C: .word 0x0000043C
+_02231350: .word 0x00000624
+_02231354: .word 0x021C48B8
+_02231358: .word 0x000005DC
+_0223135C: .word 0x000015D8
+_02231360: .word 0x0000298C
+ thumb_func_end MOD83_02230A10
+
+ thumb_func_start MOD83_02231364
+MOD83_02231364: ; 0x02231364
+ ldr r0, _0223136C ; =0x0223B888
+ ldr r0, [r0, #4]
+ bx lr
+ nop
+_0223136C: .word 0x0223B888
+ thumb_func_end MOD83_02231364
+
+ thumb_func_start MOD83_02231370
+MOD83_02231370: ; 0x02231370
+ ldr r1, _02231378 ; =0x0223B888
+ str r0, [r1, #4]
+ bx lr
+ nop
+_02231378: .word 0x0223B888
+ thumb_func_end MOD83_02231370
+
+ thumb_func_start MOD83_0223137C
+MOD83_0223137C: ; 0x0223137C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ mov r0, #0x11
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223139A
+ ldr r0, _022313D0 ; =0x0000003F
+ ldr r1, _022313D4 ; =0x021DBAB8
+ bl FUN_02000E7C
+ b _022313A6
+_0223139A:
+ cmp r0, #1
+ bne _022313A6
+ ldr r0, _022313D8 ; =0x00000053
+ ldr r1, _022313DC ; =0x0223A444
+ bl FUN_02000E7C
+_022313A6:
+ mov r0, #0x5b
+ bl FUN_020168D0
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x56
+ bl FUN_020168D0
+ ldr r0, _022313E0 ; =0x000015D4
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ bne _022313C6
+ mov r0, #0
+ bl FUN_02016438
+_022313C6:
+ mov r0, #0
+ bl MOD83_02239450
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022313D0: .word 0x0000003F
+_022313D4: .word 0x021DBAB8
+_022313D8: .word 0x00000053
+_022313DC: .word 0x0223A444
+_022313E0: .word 0x000015D4
+ thumb_func_end MOD83_0223137C
+
+ thumb_func_start MOD83_022313E4
+MOD83_022313E4: ; 0x022313E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02231438 ; =0x000005C8
+ ldr r0, [r4, r0]
+ cmp r0, #0x1c
+ beq _022313FA
+ cmp r0, #0x1d
+ beq _02231436
+ cmp r0, #0x1e
+ beq _0223140E
+ pop {r4, pc}
+_022313FA:
+ ldr r0, [r4, #4]
+ bl FUN_02032D44
+ ldr r0, _0223143C ; =0x000005CC
+ mov r1, #0x78
+ str r1, [r4, r0]
+ mov r1, #0x1e
+ sub r0, r0, #4
+ str r1, [r4, r0]
+ pop {r4, pc}
+_0223140E:
+ bl FUN_02032D9C
+ mov r1, #1
+ tst r0, r1
+ beq _0223141E
+ mov r0, #0x5d
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_0223141E:
+ ldr r0, _0223143C ; =0x000005CC
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02231436
+ bl FUN_02032D80
+ ldr r0, _02231438 ; =0x000005C8
+ mov r1, #0x1d
+ str r1, [r4, r0]
+_02231436:
+ pop {r4, pc}
+ .align 2, 0
+_02231438: .word 0x000005C8
+_0223143C: .word 0x000005CC
+ thumb_func_end MOD83_022313E4
+
+ thumb_func_start MOD83_02231440
+MOD83_02231440: ; 0x02231440
+ cmp r0, #4
+ bhi _0223148C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02231450: ; jump table
+ .short _0223145A - _02231450 - 2 ; case 0
+ .short _02231462 - _02231450 - 2 ; case 1
+ .short _0223146A - _02231450 - 2 ; case 2
+ .short _02231472 - _02231450 - 2 ; case 3
+ .short _02231486 - _02231450 - 2 ; case 4
+_0223145A:
+ ldr r0, _02231490 ; =0x0223B888
+ mov r1, #0x27
+ str r1, [r0, #0x10]
+ bx lr
+_02231462:
+ ldr r0, _02231490 ; =0x0223B888
+ mov r1, #0x28
+ str r1, [r0, #0x10]
+ bx lr
+_0223146A:
+ ldr r0, _02231490 ; =0x0223B888
+ mov r1, #0x29
+ str r1, [r0, #0x10]
+ bx lr
+_02231472:
+ ldr r0, _02231490 ; =0x0223B888
+ ldr r1, [r0, #0x10]
+ cmp r1, #0x29
+ bne _02231480
+ mov r1, #0x2b
+ str r1, [r0, #0x10]
+ bx lr
+_02231480:
+ mov r1, #0x2e
+ str r1, [r0, #0x10]
+ bx lr
+_02231486:
+ ldr r0, _02231490 ; =0x0223B888
+ mov r1, #0x2f
+ str r1, [r0, #0x10]
+_0223148C:
+ bx lr
+ nop
+_02231490: .word 0x0223B888
+ thumb_func_end MOD83_02231440
+
+ thumb_func_start MOD83_02231494
+MOD83_02231494: ; 0x02231494
+ push {r3, lr}
+ bl FUN_0202E4F0
+ ldr r0, _022314B0 ; =0x0223B888
+ ldr r0, [r0, #8]
+ bl FUN_02016A18
+ bl FUN_02033ED0
+ ldr r0, _022314B0 ; =0x0223B888
+ mov r1, #0
+ str r1, [r0, #8]
+ pop {r3, pc}
+ nop
+_022314B0: .word 0x0223B888
+ thumb_func_end MOD83_02231494
+
+ thumb_func_start MOD83_022314B4
+MOD83_022314B4: ; 0x022314B4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022315C0 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x2b
+ bne _022314DA
+ bl MOD83_02231494
+ bl MOD83_02239CEC
+ cmp r0, #0
+ beq _022314D4
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x2c
+ str r1, [r0, #0x10]
+ b _022314DA
+_022314D4:
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x2d
+ str r1, [r0, #0x10]
+_022314DA:
+ ldr r0, _022315C0 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ cmp r0, #0x24
+ beq _022314F6
+ cmp r0, #0x25
+ beq _022314F6
+ cmp r0, #0x26
+ beq _022314F6
+ cmp r0, #0x27
+ beq _022314F6
+ cmp r0, #0x28
+ beq _022314F6
+ cmp r0, #0x2a
+ bne _02231502
+_022314F6:
+ bl WM_GetLinkLevel
+ mov r1, #3
+ sub r0, r1, r0
+ bl FUN_02033EEC
+_02231502:
+ ldr r1, _022315C0 ; =0x0223B888
+ ldr r0, [r1, #0x10]
+ sub r0, #0x24
+ cmp r0, #0xb
+ bhi _0223157C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02231518: ; jump table
+ .short _02231530 - _02231518 - 2 ; case 0
+ .short _0223153C - _02231518 - 2 ; case 1
+ .short _0223157C - _02231518 - 2 ; case 2
+ .short _0223157C - _02231518 - 2 ; case 3
+ .short _02231572 - _02231518 - 2 ; case 4
+ .short _0223157C - _02231518 - 2 ; case 5
+ .short _0223157C - _02231518 - 2 ; case 6
+ .short _0223157C - _02231518 - 2 ; case 7
+ .short _0223157C - _02231518 - 2 ; case 8
+ .short _0223157C - _02231518 - 2 ; case 9
+ .short _0223157A - _02231518 - 2 ; case 10
+ .short _0223157C - _02231518 - 2 ; case 11
+_02231530:
+ bl FUN_0202E49C
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x25
+ str r1, [r0, #0x10]
+ b _0223157C
+_0223153C:
+ bl FUN_0202E4C8
+ cmp r0, #1
+ bne _0223157C
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0
+ str r1, [r0]
+ bl MOD83_02239D98
+ add r1, r0, #0
+ mov r0, #0x56
+ bl FUN_02016998
+ add r2, r0, #0
+ ldr r0, _022315C0 ; =0x0223B888
+ ldr r1, _022315C4 ; =MOD83_02231440
+ str r2, [r0, #8]
+ ldr r0, _022315C8 ; =0x000005D4
+ add r0, r4, r0
+ bl MOD83_02239A98
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x26
+ str r1, [r0, #0x10]
+ bl FUN_02033E74
+ b _0223157C
+_02231572:
+ ldr r0, [r1]
+ add r0, r0, #1
+ str r0, [r1]
+ b _0223157C
+_0223157A:
+ pop {r4, pc}
+_0223157C:
+ ldr r0, _022315CC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _022315BC
+ ldr r0, _022315C0 ; =0x0223B888
+ ldr r0, [r0, #0x10]
+ sub r0, #0x27
+ cmp r0, #8
+ bhi _022315BC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223159C: ; jump table
+ .short _022315AE - _0223159C - 2 ; case 0
+ .short _022315AE - _0223159C - 2 ; case 1
+ .short _022315BC - _0223159C - 2 ; case 2
+ .short _022315BC - _0223159C - 2 ; case 3
+ .short _022315BC - _0223159C - 2 ; case 4
+ .short _022315BC - _0223159C - 2 ; case 5
+ .short _022315BC - _0223159C - 2 ; case 6
+ .short _022315BC - _0223159C - 2 ; case 7
+ .short _022315AE - _0223159C - 2 ; case 8
+_022315AE:
+ bl MOD83_02239A14
+ cmp r0, #0
+ beq _022315BC
+ ldr r0, _022315C0 ; =0x0223B888
+ mov r1, #0x2a
+ str r1, [r0, #0x10]
+_022315BC:
+ pop {r4, pc}
+ nop
+_022315C0: .word 0x0223B888
+_022315C4: .word MOD83_02231440
+_022315C8: .word 0x000005D4
+_022315CC: .word 0x021C48B8
+ thumb_func_end MOD83_022314B4
+
+ thumb_func_start MOD83_022315D0
+MOD83_022315D0: ; 0x022315D0
+ push {r3, lr}
+ sub sp, #8
+ bl MOD83_022315F8
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0xf
+ mov r2, #0xc
+ mov r3, #0xe
+ bl MOD83_02238BC4
+ add sp, #8
+ pop {r3, pc}
+ thumb_func_end MOD83_022315D0
+
+ thumb_func_start MOD83_022315F8
+MOD83_022315F8: ; 0x022315F8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0223165C ; =0x00002D64
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231608
+ bl FUN_0201FFC8
+_02231608:
+ ldr r0, _02231660 ; =0x00002D68
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231614
+ bl FUN_0201FFC8
+_02231614:
+ ldr r0, _02231660 ; =0x00002D68
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r2, [r4, r0]
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223162C
+ bl FUN_0201FFC8
+_0223162C:
+ ldr r0, _02231664 ; =0x00002D70
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231638
+ bl FUN_0201FFC8
+_02231638:
+ ldr r0, _02231668 ; =0x00002D74
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231644
+ bl FUN_0201FFC8
+_02231644:
+ ldr r1, _02231668 ; =0x00002D74
+ mov r0, #0
+ str r0, [r4, r1]
+ ldr r2, [r4, r1]
+ sub r0, r1, #4
+ str r2, [r4, r0]
+ ldr r0, [r4, r0]
+ sub r1, #8
+ str r0, [r4, r1]
+ bl MOD83_02238E48
+ pop {r4, pc}
+ .align 2, 0
+_0223165C: .word 0x00002D64
+_02231660: .word 0x00002D68
+_02231664: .word 0x00002D70
+_02231668: .word 0x00002D74
+ thumb_func_end MOD83_022315F8
+
+ thumb_func_start MOD83_0223166C
+MOD83_0223166C: ; 0x0223166C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _022316B4 ; =0x00003CEC
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [r4, r1]
+ mov r1, #1
+ str r1, [sp]
+ ldr r1, _022316B8 ; =0x00002D64
+ mov r2, #0x48
+ ldr r1, [r4, r1]
+ mov r3, #0xa8
+ bl MOD83_02238DBC
+ ldr r1, _022316B8 ; =0x00002D64
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0
+ ldr r1, _022316BC ; =0x00002D68
+ str r0, [sp]
+ ldr r1, [r4, r1]
+ mov r2, #0xb8
+ mov r3, #0xa8
+ bl MOD83_02238DBC
+ ldr r1, _022316BC ; =0x00002D68
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #2
+ bl FUN_02020238
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_022316B4: .word 0x00003CEC
+_022316B8: .word 0x00002D64
+_022316BC: .word 0x00002D68
+ thumb_func_end MOD83_0223166C
+
+ thumb_func_start MOD83_022316C0
+MOD83_022316C0: ; 0x022316C0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #1
+ bne _022316D6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200CCF8
+_022316D6:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_022316C0
+
+ thumb_func_start MOD83_022316D8
+MOD83_022316D8: ; 0x022316D8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #1
+ bne _022316EE
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0200D0E0
+_022316EE:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_022316D8
+
+ thumb_func_start MOD83_022316F0
+MOD83_022316F0: ; 0x022316F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r0, _02231794 ; =0x00002B6C
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r0, #0
+ beq _02231708
+ bl FUN_02012870
+_02231708:
+ ldr r0, _02231798 ; =0x00002B68
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02231718
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+_02231718:
+ add r0, r7, #0
+ mov r1, #0x57
+ bl FUN_02012838
+ ldr r1, _02231794 ; =0x00002B6C
+ ldr r2, _0223179C ; =0x00000172
+ str r0, [r5, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ ldr r1, _022317A0 ; =0x000029A4
+ mov r6, #0
+ str r0, [r5, r1]
+ cmp r7, #0
+ ble _02231752
+_0223173A:
+ ldr r0, _02231794 ; =0x00002B6C
+ ldr r1, _022317A0 ; =0x000029A4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r7
+ blt _0223173A
+_02231752:
+ ldr r0, _022317A0 ; =0x000029A4
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r4, _022317A4 ; =0x0223AE90
+ add r3, sp, #4
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, _02231794 ; =0x00002B6C
+ mov r1, #0
+ ldr r0, [r5, r0]
+ mov r3, #0x57
+ str r0, [sp, #4]
+ add r0, sp, #4
+ strh r7, [r0, #0x10]
+ ldr r0, [sp]
+ str r0, [sp, #0x10]
+ add r0, r2, #0
+ add r2, r1, #0
+ bl FUN_020010A8
+ ldr r1, _02231798 ; =0x00002B68
+ str r0, [r5, r1]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02231794: .word 0x00002B6C
+_02231798: .word 0x00002B68
+_0223179C: .word 0x00000172
+_022317A0: .word 0x000029A4
+_022317A4: .word 0x0223AE90
+ thumb_func_end MOD83_022316F0
+
+ thumb_func_start MOD83_022317A8
+MOD83_022317A8: ; 0x022317A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r2, _02231818 ; =0x00000172
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ add r4, r0, #0
+ mov r0, #0x57
+ bl FUN_0200AA80
+ add r6, r0, #0
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02002E4C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_02019620
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ add r7, r0, #0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0223181C ; =0x00010200
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r7, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_020191D0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200A8B8
+ add r0, r6, #0
+ bl FUN_0200AB18
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231818: .word 0x00000172
+_0223181C: .word 0x00010200
+ thumb_func_end MOD83_022317A8
+
+ thumb_func_start MOD83_02231820
+MOD83_02231820: ; 0x02231820
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x57
+ mov r3, #0x1e
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0xb
+ mov r2, #0
+ lsl r3, r3, #4
+ bl FUN_02006930
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x57
+ mov r3, #6
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x10
+ mov r2, #0
+ lsl r3, r3, #6
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x57
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r1, #0x11
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x57
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r1, #0x12
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mov r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020186B4
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02231820
+
+ thumb_func_start MOD83_022318B0
+MOD83_022318B0: ; 0x022318B0
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02231A00
+ ldr r0, _022318DC ; =0x00002B70
+ mov r1, #0x2e
+ add r0, r4, r0
+ bl MOD83_022317A8
+ mov r3, #0xae
+ lsl r3, r3, #6
+ add r1, r4, r3
+ add r3, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ mov r2, #0xa
+ bl MOD83_02231F88
+ mov r0, #0xd
+ pop {r4, pc}
+ .align 2, 0
+_022318DC: .word 0x00002B70
+ thumb_func_end MOD83_022318B0
+
+ thumb_func_start MOD83_022318E0
+MOD83_022318E0: ; 0x022318E0
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02231A00
+ mov r1, #0xad
+ lsl r1, r1, #6
+ ldr r0, [r4, r1]
+ add r1, #0x20
+ ldr r1, [r4, r1]
+ add r1, r1, #1
+ bl FUN_0202AE90
+ cmp r0, #1
+ ldr r0, _0223192C ; =0x00002B70
+ bne _0223190C
+ add r0, r4, r0
+ mov r1, #0x3e
+ bl MOD83_022317A8
+ b _02231914
+_0223190C:
+ add r0, r4, r0
+ mov r1, #0x3d
+ bl MOD83_022317A8
+_02231914:
+ mov r3, #0xae
+ lsl r3, r3, #6
+ add r1, r4, r3
+ add r3, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ mov r2, #9
+ bl MOD83_02231F88
+ mov r0, #0xc
+ pop {r4, pc}
+ nop
+_0223192C: .word 0x00002B70
+ thumb_func_end MOD83_022318E0
+
+ thumb_func_start MOD83_02231930
+MOD83_02231930: ; 0x02231930
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02231A00
+ ldr r0, _022319C0 ; =0x00002B70
+ mov r1, #0x3f
+ add r0, r4, r0
+ bl MOD83_022317A8
+ ldr r0, _022319C0 ; =0x00002B70
+ mov r1, #0x13
+ add r0, r4, r0
+ bl FUN_0200D858
+ ldr r1, _022319C4 ; =0x00003CF0
+ str r0, [r4, r1]
+ mov r1, #0xad
+ lsl r1, r1, #6
+ ldr r0, [r4, r1]
+ add r1, #0x20
+ ldr r1, [r4, r1]
+ bl FUN_0202ADC8
+ ldr r0, _022319C8 ; =0x00002B44
+ ldr r0, [r4, r0]
+ bl FUN_02022720
+ ldr r0, _022319C4 ; =0x00003CF0
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ mov r0, #0xad
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0202AE70
+ cmp r0, #0
+ bne _02231984
+ mov r0, #0x1a
+ pop {r4, pc}
+_02231984:
+ ldr r1, _022319CC ; =0x00002B60
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ mov r2, #1
+ bl MOD83_022320A4
+ ldr r1, _022319CC ; =0x00002B60
+ str r0, [r4, r1]
+ add r1, #0x10
+ add r0, r4, r1
+ mov r1, #0x24
+ bl MOD83_022317A8
+ mov r3, #0xae
+ lsl r3, r3, #6
+ add r1, r4, r3
+ add r3, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ mov r2, #8
+ bl MOD83_02231F88
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02231DF0
+ mov r0, #5
+ pop {r4, pc}
+ nop
+_022319C0: .word 0x00002B70
+_022319C4: .word 0x00003CF0
+_022319C8: .word 0x00002B44
+_022319CC: .word 0x00002B60
+ thumb_func_end MOD83_02231930
+
+ thumb_func_start MOD83_022319D0
+MOD83_022319D0: ; 0x022319D0
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD83_02231A00
+ ldr r0, _022319FC ; =0x00002B70
+ mov r1, #0x24
+ add r0, r4, r0
+ bl MOD83_022317A8
+ mov r3, #0xae
+ lsl r3, r3, #6
+ add r1, r4, r3
+ add r3, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ mov r2, #8
+ bl MOD83_02231F88
+ mov r0, #5
+ pop {r4, pc}
+ .align 2, 0
+_022319FC: .word 0x00002B70
+ thumb_func_end MOD83_022319D0
+
+ thumb_func_start MOD83_02231A00
+MOD83_02231A00: ; 0x02231A00
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02231A40 ; =0x00002B6C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ mov r1, #0
+ ldr r0, _02231A40 ; =0x00002B6C
+ add r2, r1, #0
+ str r1, [r4, r0]
+ sub r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001300
+ ldr r0, _02231A44 ; =0x00002B68
+ mov r1, #0
+ str r1, [r4, r0]
+ add r0, #0x18
+ add r0, r4, r0
+ bl MOD83_022316C0
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_02019570
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r4, pc}
+ .align 2, 0
+_02231A40: .word 0x00002B6C
+_02231A44: .word 0x00002B68
+ thumb_func_end MOD83_02231A00
+
+ thumb_func_start MOD83_02231A48
+MOD83_02231A48: ; 0x02231A48
+ mov r0, #1
+ bx lr
+ thumb_func_end MOD83_02231A48
+
+ thumb_func_start MOD83_02231A4C
+MOD83_02231A4C: ; 0x02231A4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r7, r1, #0
+ ldr r1, [r5]
+ mov r0, #0x25
+ add r4, r2, #0
+ bl FUN_020219F4
+ ldr r1, _02231A9C ; =0x00002B60
+ add r6, r0, #0
+ ldr r2, [r5, r1]
+ sub r1, #0xc
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldr r2, [r2, r1]
+ mov r1, #0x41
+ lsl r1, r1, #2
+ add r1, r2, r1
+ mov r2, #0x24
+ bl FUN_02021E8C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02231A9C: .word 0x00002B60
+ thumb_func_end MOD83_02231A4C
+
+ thumb_func_start MOD83_02231AA0
+MOD83_02231AA0: ; 0x02231AA0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _02231B10 ; =0x00002B60
+ add r6, r1, #0
+ ldr r1, [r4, r0]
+ add r5, r2, #0
+ lsl r2, r1, #2
+ add r3, r4, r2
+ add r2, r0, #0
+ sub r2, #0xc
+ ldr r3, [r3, r2]
+ ldr r2, _02231B14 ; =0x00000152
+ ldrb r2, [r3, r2]
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1f
+ bne _02231AC6
+ mov r2, #0x27
+ b _02231ADE
+_02231AC6:
+ sub r0, #0x20
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02231AD8
+ add r1, r1, #1
+ bl FUN_0202AE90
+ cmp r0, #1
+ bne _02231ADC
+_02231AD8:
+ mov r2, #0x25
+ b _02231ADE
+_02231ADC:
+ mov r2, #0x26
+_02231ADE:
+ ldr r1, _02231B18 ; =0x000029A0
+ ldr r3, [r4]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_0200A9C4
+ add r4, r0, #0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r4, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r0, #1
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02231B10: .word 0x00002B60
+_02231B14: .word 0x00000152
+_02231B18: .word 0x000029A0
+ thumb_func_end MOD83_02231AA0
+
+ thumb_func_start MOD83_02231B1C
+MOD83_02231B1C: ; 0x02231B1C
+ push {r4, lr}
+ sub sp, #0x18
+ ldr r1, _02231B7C ; =0x00002B60
+ add r4, r0, #0
+ ldr r2, [r4, r1]
+ sub r1, #0xc
+ lsl r2, r2, #2
+ add r2, r4, r2
+ ldr r2, [r2, r1]
+ mov r1, #0xd5
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ add r0, sp, #8
+ bl RTC_ConvertDayToDate
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02231B80 ; =0x000029A0
+ mov r2, #0x7d
+ ldr r3, [sp, #8]
+ lsl r2, r2, #4
+ add r2, r3, r2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, _02231B80 ; =0x000029A0
+ ldr r2, [sp, #0xc]
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200B764
+ mov r1, #2
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02231B80 ; =0x000029A0
+ ldr r2, [sp, #0x10]
+ ldr r0, [r4, r0]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ mov r0, #1
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_02231B7C: .word 0x00002B60
+_02231B80: .word 0x000029A0
+ thumb_func_end MOD83_02231B1C
+
+ thumb_func_start MOD83_02231B84
+MOD83_02231B84: ; 0x02231B84
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #0xfb
+ mov r1, #0x57
+ add r4, r2, #0
+ bl FUN_020219F4
+ ldr r1, _02231BD4 ; =0x00002B60
+ add r6, r0, #0
+ ldr r2, [r5, r1]
+ sub r1, #0xc
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldr r2, [r2, r1]
+ mov r1, #0x55
+ lsl r1, r1, #2
+ add r1, r2, r1
+ mov r2, #0xfa
+ bl FUN_02021E8C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02231BD4: .word 0x00002B60
+ thumb_func_end MOD83_02231B84
+
+ thumb_func_start MOD83_02231BD8
+MOD83_02231BD8: ; 0x02231BD8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r3, r0, #0
+ ldr r0, _02231C50 ; =0x00002B60
+ add r6, r1, #0
+ ldr r1, [r3, r0]
+ sub r0, #0xc
+ lsl r1, r1, #2
+ add r1, r3, r1
+ ldr r1, [r1, r0]
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r5, r2, #0
+ ldrb r2, [r1, r0]
+ cmp r2, #0xff
+ bne _02231C2C
+ ldr r1, _02231C54 ; =0x000029A0
+ mov r2, #0x33
+ ldr r0, [r3, r1]
+ add r1, r1, #4
+ ldr r1, [r3, r1]
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ add r4, r0, #0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r5, [sp, #8]
+ add r0, r6, #0
+ mov r1, #1
+ add r2, r4, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02231C2C:
+ cmp r2, #0
+ beq _02231C48
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _02231C54 ; =0x000029A0
+ ldr r0, [r3, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ add sp, #0x10
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02231C48:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02231C50: .word 0x00002B60
+_02231C54: .word 0x000029A0
+ thumb_func_end MOD83_02231BD8
+
+ thumb_func_start MOD83_02231C58
+MOD83_02231C58: ; 0x02231C58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ mov r0, #0
+ add r7, r1, #0
+ add r1, r0, #1
+ ldr r0, _02231D38 ; =0x0223AE40
+ ldr r2, _02231D38 ; =0x0223AE40
+ ldr r0, [r0, #0x30]
+ ldr r2, [r2, #0x34]
+ str r0, [sp, #0x14]
+ ldr r0, _02231D3C ; =0x00002B60
+ str r2, [sp, #0x18]
+ ldr r2, [r5, r0]
+ sub r0, #0xc
+ lsl r2, r2, #2
+ add r2, r5, r2
+ ldr r2, [r2, r0]
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ ldrb r0, [r2, r0]
+ add r4, r1, #0
+ add r6, sp, #0x14
+ cmp r0, #0
+ beq _02231C9C
+ ldr r0, _02231D38 ; =0x0223AE40
+ ldr r2, _02231D38 ; =0x0223AE40
+ ldr r0, [r0, #0x38]
+ add r4, r1, #1
+ lsl r1, r1, #3
+ ldr r2, [r2, #0x3c]
+ add r3, r6, r1
+ str r0, [r6, r1]
+ str r2, [r3, #4]
+_02231C9C:
+ mov r1, #0xad
+ lsl r1, r1, #6
+ ldr r0, [r5, r1]
+ add r1, #0x20
+ ldr r1, [r5, r1]
+ add r1, r1, #1
+ bl FUN_0202AE90
+ cmp r0, #0
+ bne _02231CC2
+ ldr r2, _02231D38 ; =0x0223AE40
+ lsl r1, r4, #3
+ ldr r0, [r2, #0x40]
+ add r6, sp, #0x14
+ ldr r2, [r2, #0x44]
+ add r3, r6, r1
+ str r0, [r6, r1]
+ add r4, r4, #1
+ str r2, [r3, #4]
+_02231CC2:
+ ldr r2, _02231D38 ; =0x0223AE40
+ lsl r1, r4, #3
+ ldr r0, [r2, #0x48]
+ add r6, sp, #0x14
+ str r0, [r6, r1]
+ ldr r2, [r2, #0x4c]
+ add r3, r6, r1
+ ldr r0, _02231D40 ; =0x00002B3C
+ str r2, [r3, #4]
+ ldr r6, [r5, r0]
+ add r0, r7, #0
+ bl FUN_02019570
+ add r0, r7, #0
+ bl FUN_02019178
+ add r1, r4, #1
+ mov r0, #4
+ sub r0, r0, r1
+ ldr r1, [r6, #8]
+ lsl r0, r0, #1
+ add r1, r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ ldr r1, [r6, #0xc]
+ mov r2, #2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #4]
+ ldr r1, [r6, #0x10]
+ sub r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ ldr r0, _02231D44 ; =0x00002B38
+ add r1, r7, #0
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, _02231D48 ; =0x0000299C
+ ldr r3, [r6, #4]
+ ldr r0, [r5, r0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r5, #0
+ add r1, sp, #0x14
+ add r2, r4, #1
+ add r3, r7, #0
+ bl MOD83_022316F0
+ mov r0, #1
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231D38: .word 0x0223AE40
+_02231D3C: .word 0x00002B60
+_02231D40: .word 0x00002B3C
+_02231D44: .word 0x00002B38
+_02231D48: .word 0x0000299C
+ thumb_func_end MOD83_02231C58
+
+ thumb_func_start MOD83_02231D4C
+MOD83_02231D4C: ; 0x02231D4C
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, _02231D5C ; =0x0223AE40
+ mov r2, #2
+ bl MOD83_022316F0
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02231D5C: .word 0x0223AE40
+ thumb_func_end MOD83_02231D4C
+
+ thumb_func_start MOD83_02231D60
+MOD83_02231D60: ; 0x02231D60
+ push {r3, lr}
+ add r3, r1, #0
+ ldr r1, _02231D70 ; =0x0223AE60
+ mov r2, #2
+ bl MOD83_022316F0
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02231D70: .word 0x0223AE60
+ thumb_func_end MOD83_02231D60
+
+ thumb_func_start MOD83_02231D74
+MOD83_02231D74: ; 0x02231D74
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02231D94 ; =0x00002B70
+ add r4, r1, #0
+ add r0, r5, r0
+ mov r1, #2
+ bl MOD83_022317A8
+ ldr r1, _02231D98 ; =0x0223AE50
+ add r0, r5, #0
+ mov r2, #2
+ add r3, r4, #0
+ bl MOD83_022316F0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02231D94: .word 0x00002B70
+_02231D98: .word 0x0223AE50
+ thumb_func_end MOD83_02231D74
+
+ thumb_func_start MOD83_02231D9C
+MOD83_02231D9C: ; 0x02231D9C
+ push {r3, lr}
+ sub sp, #8
+ mov r3, #1
+ str r3, [sp]
+ ldr r1, _02231DB8 ; =0x000029A0
+ str r3, [sp, #4]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_0200AD38
+ mov r0, #1
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+_02231DB8: .word 0x000029A0
+ thumb_func_end MOD83_02231D9C
+
+ thumb_func_start MOD83_02231DBC
+MOD83_02231DBC: ; 0x02231DBC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x57
+ str r0, [sp, #8]
+ add r6, r2, #0
+ mov r0, #0
+ add r4, r3, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ cmp r4, #0
+ beq _02231DE4
+ mov r0, #0x1b
+ str r0, [r4]
+_02231DE4:
+ ldr r0, _02231DEC ; =0x00002BE0
+ str r6, [r5, r0]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02231DEC: .word 0x00002BE0
+ thumb_func_end MOD83_02231DBC
+
+ thumb_func_start MOD83_02231DF0
+MOD83_02231DF0: ; 0x02231DF0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ str r2, [sp, #0x14]
+ ldr r2, _02231F68 ; =0x00000172
+ ldr r3, [r5]
+ mov r0, #1
+ mov r1, #0x1a
+ ldr r4, _02231F6C ; =0x0223AEB0
+ bl FUN_0200A86C
+ ldr r1, _02231F70 ; =0x000029A4
+ str r0, [r5, r1]
+ ldr r0, [r5]
+ bl FUN_0200AA80
+ ldr r1, _02231F74 ; =0x000029A0
+ str r0, [r5, r1]
+ ldr r1, _02231F78 ; =0x00002B64
+ ldr r0, [sp, #0x14]
+ str r0, [r5, r1]
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD83_02232118
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ ldr r0, _02231F7C ; =0x000029A8
+ add r7, r4, #0
+ str r5, [sp, #0x1c]
+ add r6, r5, r0
+_02231E2E:
+ ldr r1, [r7]
+ ldr r0, [sp, #0x14]
+ cmp r0, r1
+ beq _02231E50
+ cmp r1, #2
+ beq _02231E50
+ ldr r1, [sp, #0x1c]
+ ldr r0, _02231F7C ; =0x000029A8
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _02231E50
+ add r0, r6, #0
+ bl FUN_02019570
+ add r0, r6, #0
+ bl FUN_02019178
+_02231E50:
+ ldr r0, [sp, #0x1c]
+ add r7, #0x30
+ add r0, #0x10
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x2c]
+ add r6, #0x10
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ cmp r0, #0x13
+ blo _02231E2E
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, _02231F7C ; =0x000029A8
+ mov r7, #0x31
+ str r5, [sp, #0x24]
+ str r5, [sp, #0x20]
+ add r6, r5, r0
+_02231E72:
+ ldr r1, [r4]
+ ldr r0, [sp, #0x14]
+ cmp r0, r1
+ bne _02231F2E
+ ldr r1, [sp, #0x24]
+ ldr r0, _02231F7C ; =0x000029A8
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _02231EBE
+ ldr r1, [sp, #0x20]
+ ldr r0, _02231F80 ; =0x00002AE8
+ mov r2, #0
+ str r7, [r1, r0]
+ ldr r0, [r4, #8]
+ add r1, r6, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, _02231F84 ; =0x0000299C
+ ldr r3, [r4, #4]
+ ldr r0, [r5, r0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+_02231EBE:
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x1c]
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02002E4C
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_02019620
+ ldr r0, [r4, #0x18]
+ ldr r3, [r4, #0x24]
+ str r0, [sp, #0x28]
+ ldr r2, [sp, #0x28]
+ add r0, r5, #0
+ add r1, r6, #0
+ blx r3
+ cmp r0, #1
+ bne _02231F20
+ ldr r2, [r4, #0x20]
+ cmp r2, #0
+ beq _02231F20
+ ldr r0, _02231F74 ; =0x000029A0
+ ldr r1, _02231F70 ; =0x000029A4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r3, [r5]
+ bl FUN_0200A9C4
+ str r0, [sp, #0x30]
+ ldr r0, [r4, #0x2c]
+ ldr r2, [sp, #0x30]
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r1, [r4, #0x14]
+ ldr r3, [r4, #0x28]
+ add r0, r6, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x30]
+ bl FUN_02021A20
+_02231F20:
+ add r0, r6, #0
+ bl FUN_020191D0
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x10]
+ mul r0, r1
+ add r7, r7, r0
+_02231F2E:
+ ldr r0, [sp, #0x24]
+ add r4, #0x30
+ add r0, #0x10
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x20]
+ add r6, #0x10
+ add r0, r0, #4
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #0x13
+ blo _02231E72
+ ldr r0, _02231F70 ; =0x000029A4
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r0, _02231F74 ; =0x000029A0
+ ldr r0, [r5, r0]
+ bl FUN_0200AB18
+ ldr r0, [sp, #0x14]
+ cmp r0, #0
+ bne _02231F64
+ add r0, r5, #0
+ bl MOD83_0223227C
+_02231F64:
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02231F68: .word 0x00000172
+_02231F6C: .word 0x0223AEB0
+_02231F70: .word 0x000029A4
+_02231F74: .word 0x000029A0
+_02231F78: .word 0x00002B64
+_02231F7C: .word 0x000029A8
+_02231F80: .word 0x00002AE8
+_02231F84: .word 0x0000299C
+ thumb_func_end MOD83_02231DF0
+
+ thumb_func_start MOD83_02231F88
+MOD83_02231F88: ; 0x02231F88
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r7, r3, #0
+ mov r3, #0x30
+ ldr r0, _02232084 ; =0x0223AEB0
+ mul r3, r2
+ add r6, r1, #0
+ add r4, r0, r3
+ ldr r0, [r6]
+ cmp r0, #0
+ bne _02231FD2
+ ldr r0, [r4, #8]
+ mov r2, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, _02232088 ; =0x0000299C
+ ldr r3, [r4, #4]
+ ldr r0, [r5, r0]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+_02231FD2:
+ ldr r1, [r4, #0x1c]
+ add r0, r6, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02019620
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _02231FFE
+ ldr r2, _0223208C ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ ldr r1, _02232090 ; =0x000029A4
+ str r0, [r5, r1]
+ mov r0, #0x57
+ bl FUN_0200AA80
+ ldr r1, _02232094 ; =0x000029A0
+ str r0, [r5, r1]
+_02231FFE:
+ ldr r0, _02232098 ; =0x00002B38
+ ldr r2, _0223209C ; =0x00010200
+ str r7, [r5, r0]
+ add r0, r0, #4
+ str r4, [r5, r0]
+ ldr r3, [r4, #0x24]
+ add r0, r5, #0
+ add r1, r6, #0
+ blx r3
+ ldr r2, [r4, #0x20]
+ cmp r2, #0
+ beq _02232054
+ ldr r1, _02232094 ; =0x000029A0
+ mov r3, #0x57
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_0200A9C4
+ str r0, [sp, #0x14]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ ldr r2, [sp, #0x14]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r1, [r4, #0x14]
+ add r0, r6, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ ldr r0, _02232090 ; =0x000029A4
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r0, _02232094 ; =0x000029A0
+ ldr r0, [r5, r0]
+ bl FUN_0200AB18
+_02232054:
+ ldr r0, _022320A0 ; =0x00002B70
+ add r0, r5, r0
+ cmp r6, r0
+ bne _0223206A
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #0x13
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ b _02232076
+_0223206A:
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #0xe
+ bl FUN_0200CCA4
+_02232076:
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x10]
+ mul r0, r1
+ add r0, r7, r0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232084: .word 0x0223AEB0
+_02232088: .word 0x0000299C
+_0223208C: .word 0x00000172
+_02232090: .word 0x000029A4
+_02232094: .word 0x000029A0
+_02232098: .word 0x00002B38
+_0223209C: .word 0x00010200
+_022320A0: .word 0x00002B70
+ thumb_func_end MOD83_02231F88
+
+ thumb_func_start MOD83_022320A4
+MOD83_022320A4: ; 0x022320A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ add r7, r4, #0
+_022320AE:
+ add r4, r4, r6
+ cmp r4, #3
+ bne _022320B6
+ mov r4, #0
+_022320B6:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022320C0
+ mov r4, #2
+_022320C0:
+ cmp r7, r4
+ beq _022320D4
+ mov r0, #0xad
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0202AE4C
+ cmp r0, #0
+ beq _022320AE
+_022320D4:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022320A4
+
+ thumb_func_start MOD83_022320D8
+MOD83_022320D8: ; 0x022320D8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r2, #0
+ mov r2, #1
+ add r5, r0, #0
+ str r2, [sp]
+ add r6, r3, #0
+ ldr r3, [r5]
+ mov r0, #0x74
+ bl FUN_02006C98
+ add r1, sp, #4
+ add r7, r0, #0
+ bl FUN_020B0180
+ ldr r0, _02232114 ; =0x0000299C
+ ldr r2, [sp, #4]
+ lsl r1, r4, #0x18
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ add r3, r6, #0
+ bl FUN_02017DFC
+ add r0, r7, #0
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232114: .word 0x0000299C
+ thumb_func_end MOD83_022320D8
+
+ thumb_func_start MOD83_02232118
+MOD83_02232118: ; 0x02232118
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #0
+ add r4, r1, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _02232204 ; =0x0000299C
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x74
+ mov r1, #6
+ bl FUN_0200687C
+ cmp r4, #0
+ beq _0223215E
+ cmp r4, #1
+ beq _0223217E
+ b _0223219C
+_0223215E:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _02232204 ; =0x0000299C
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x74
+ mov r1, #4
+ bl FUN_020068C8
+ b _0223219C
+_0223217E:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _02232204 ; =0x0000299C
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x74
+ mov r1, #5
+ bl FUN_020068C8
+_0223219C:
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ add r3, r0, #0
+ add r2, r1, #0
+ add r3, #0xec
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ ldr r0, [r5]
+ ldr r2, _02232204 ; =0x0000299C
+ str r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r0, #0x74
+ mov r3, #3
+ bl FUN_0200687C
+ mov r2, #3
+ add r0, r5, #0
+ mov r1, #2
+ lsl r3, r2, #9
+ bl MOD83_022320D8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #0xb
+ str r0, [sp, #8]
+ ldr r0, _02232204 ; =0x0000299C
+ mov r2, #0
+ ldr r0, [r5, r0]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, _02232204 ; =0x0000299C
+ mov r1, #3
+ ldr r0, [r5, r0]
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232204: .word 0x0000299C
+ thumb_func_end MOD83_02232118
+
+ thumb_func_start MOD83_02232208
+MOD83_02232208: ; 0x02232208
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl FUN_02006278
+ ldr r1, _02232270 ; =0x00002B68
+ ldr r0, [r0, r1]
+ bl FUN_02001204
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _0223222E
+ add r0, r0, #1
+ cmp r4, r0
+ beq _0223226C
+ b _02232248
+_0223222E:
+ ldr r0, _02232274 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r6, #0
+ beq _0223226C
+ add r0, r7, #0
+ blx r6
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223226C
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02232248:
+ ldr r0, _02232274 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r4, #0
+ beq _0223226C
+ cmp r4, #0x1e
+ bhs _0223225A
+ str r4, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223225A:
+ ldr r0, _02232278 ; =0x0223B89C
+ str r4, [r0]
+ add r0, r7, #0
+ blx r4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _0223226C
+ str r0, [r5]
+_0223226C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232270: .word 0x00002B68
+_02232274: .word 0x000005DC
+_02232278: .word 0x0223B89C
+ thumb_func_end MOD83_02232208
+
+ thumb_func_start MOD83_0223227C
+MOD83_0223227C: ; 0x0223227C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ ldr r1, _02232398 ; =0x00002D6C
+ add r5, r0, #0
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _022322DC
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _022322DC
+ add r1, #8
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _022322DC
+ bl MOD83_02238B38
+ cmp r0, #1
+ bne _022322A8
+ add r0, r5, #0
+ bl MOD83_022315F8
+_022322A8:
+ bl MOD83_02238AFC
+ bl MOD83_02238B4C
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x1a
+ mov r2, #0x17
+ mov r3, #0x19
+ bl MOD83_02238BC4
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #1
+ str r0, [sp, #4]
+ mov r0, #0x13
+ mov r3, #0x60
+ bl FUN_02006930
+_022322DC:
+ mov r0, #0xb2
+ mov r6, #0
+ str r0, [sp, #0x10]
+ str r6, [sp, #8]
+ add r4, r5, #0
+ mov r7, #0x64
+_022322E8:
+ ldr r0, _0223239C ; =0x00002B60
+ ldr r0, [r5, r0]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, _022323A0 ; =0x00002B54
+ ldr r1, [r1, r0]
+ ldr r0, [sp, #8]
+ add r1, r1, r0
+ ldr r0, _022323A4 ; =0x0000034A
+ ldrh r0, [r1, r0]
+ str r0, [sp, #0xc]
+ cmp r0, #0
+ bne _02232312
+ ldr r0, _02232398 ; =0x00002D6C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _0223237C
+ mov r1, #0
+ bl FUN_020200A0
+ b _0223237C
+_02232312:
+ add r0, r6, #0
+ add r0, #0xa
+ str r0, [sp]
+ ldr r1, _02232398 ; =0x00002D6C
+ ldr r2, [sp, #0x10]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ mov r3, #0x10
+ bl MOD83_02238DBC
+ ldr r1, _02232398 ; =0x00002D6C
+ str r0, [r4, r1]
+ mov r1, #0
+ ldr r0, [sp, #0xc]
+ add r2, r1, #0
+ bl FUN_0206B6D4
+ add r1, r0, #0
+ ldr r0, [r5]
+ mov r2, #0
+ str r0, [sp]
+ mov r0, #0x13
+ add r3, sp, #0x18
+ bl FUN_02006BB0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ mov r1, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #0x18]
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r7, #5
+ lsl r2, r2, #8
+ bl GX_LoadOBJ
+ mov r1, #0
+ ldr r0, [sp, #0xc]
+ add r2, r1, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, _02232398 ; =0x00002D6C
+ add r1, r1, #3
+ ldr r0, [r4, r0]
+ bl FUN_02020248
+ ldr r0, [sp, #0x14]
+ bl FUN_02016A18
+_0223237C:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ add r0, r0, #2
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x10]
+ add r4, r4, #4
+ add r0, #0x19
+ add r7, #0x10
+ str r0, [sp, #0x10]
+ cmp r6, #3
+ blt _022322E8
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02232398: .word 0x00002D6C
+_0223239C: .word 0x00002B60
+_022323A0: .word 0x00002B54
+_022323A4: .word 0x0000034A
+ thumb_func_end MOD83_0223227C
+
+ thumb_func_start MOD83_022323A8
+MOD83_022323A8: ; 0x022323A8
+ push {r4, lr}
+ mov r2, #2
+ add r4, r0, #0
+ mov r0, #3
+ mov r1, #0x57
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, _0223240C ; =0x00003CF4
+ add r0, r4, #0
+ mov r2, #0x57
+ bl FUN_02006268
+ ldr r2, _0223240C ; =0x00003CF4
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x57
+ bl FUN_02016B94
+ ldr r1, _02232410 ; =0x0000299C
+ str r0, [r4, r1]
+ mov r0, #0x57
+ str r0, [r4]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ ldr r0, _02232414 ; =0x00002B60
+ mov r1, #2
+ str r1, [r4, r0]
+ mov r1, #1
+ add r0, #0x7c
+ str r1, [r4, r0]
+ mov r0, #0x57
+ bl MOD83_02238770
+ mov r2, #3
+ mov r0, #0
+ mov r1, #0x5b
+ lsl r2, r2, #8
+ bl FUN_0201681C
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_0223240C: .word 0x00003CF4
+_02232410: .word 0x0000299C
+_02232414: .word 0x00002B60
+ thumb_func_end MOD83_022323A8
+
+ thumb_func_start MOD83_02232418
+MOD83_02232418: ; 0x02232418
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_020129C8
+ mov r0, #3
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_0201299C
+ ldr r1, _02232438 ; =0x04000010
+ mov r2, #8
+ mov r3, #1
+ bl FUN_020129D8
+ pop {r4, pc}
+ nop
+_02232438: .word 0x04000010
+ thumb_func_end MOD83_02232418
+
+ thumb_func_start MOD83_0223243C
+MOD83_0223243C: ; 0x0223243C
+ push {r3, r4, r5, lr}
+ ldr r4, _02232490 ; =0x000030D0
+ ldr r5, _02232494 ; =0x00000C14
+ add r4, r0, r4
+ add r0, r5, #0
+ str r1, [r4, r5]
+ sub r0, #0xc
+ str r2, [r4, r0]
+ add r0, r5, #0
+ sub r0, #8
+ sub r5, #0x14
+ str r3, [r4, r0]
+ ldr r0, [r4, r5]
+ cmp r0, #0
+ bne _0223246E
+ mov r2, #6
+ lsl r2, r2, #8
+ mov r0, #0x57
+ add r1, r4, #0
+ add r2, r4, r2
+ bl FUN_02012944
+ mov r1, #3
+ lsl r1, r1, #0xa
+ str r0, [r4, r1]
+_0223246E:
+ ldr r0, _02232498 ; =0x00000C04
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02232486
+ mov r2, #1
+ ldr r0, _0223249C ; =MOD83_02232418
+ add r1, r4, #0
+ lsl r2, r2, #0xa
+ bl FUN_0200CA60
+ ldr r1, _02232498 ; =0x00000C04
+ str r0, [r4, r1]
+_02232486:
+ mov r0, #0xc1
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232490: .word 0x000030D0
+_02232494: .word 0x00000C14
+_02232498: .word 0x00000C04
+_0223249C: .word MOD83_02232418
+ thumb_func_end MOD83_0223243C
+
+ thumb_func_start MOD83_022324A0
+MOD83_022324A0: ; 0x022324A0
+ push {r4, lr}
+ ldr r1, _022324D4 ; =0x000030D0
+ add r4, r0, r1
+ mov r0, #3
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022324B4
+ bl FUN_02012974
+_022324B4:
+ ldr r0, _022324D8 ; =0x00000C04
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022324C0
+ bl FUN_0200CAB4
+_022324C0:
+ mov r0, #3
+ mov r1, #0
+ lsl r0, r0, #0xa
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ bl FUN_020129C8
+ pop {r4, pc}
+ nop
+_022324D4: .word 0x000030D0
+_022324D8: .word 0x00000C04
+ thumb_func_end MOD83_022324A0
+
+ thumb_func_start MOD83_022324DC
+MOD83_022324DC: ; 0x022324DC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _022325E4 ; =0x000030D0
+ mov r5, #0x15
+ add r4, r0, r1
+ mov r0, #0xc1
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ lsl r5, r5, #0xe
+ cmp r1, #0
+ bne _022324F4
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022324F4:
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ cmp r1, #1
+ bne _02232542
+ add r1, r0, #0
+ sub r1, #8
+ ldr r2, [r4, r1]
+ sub r1, r0, #4
+ ldr r1, [r4, r1]
+ add r2, r2, r1
+ add r1, r0, #0
+ sub r1, #8
+ str r2, [r4, r1]
+ sub r1, r0, #4
+ ldr r2, [r4, r1]
+ add r1, r2, #0
+ add r2, r2, r1
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #8
+ ldr r2, [r4, r1]
+ asr r1, r2, #0xb
+ lsr r1, r1, #0x14
+ add r1, r2, r1
+ asr r2, r1, #0xc
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ cmp r2, r1
+ ble _0223257C
+ mov r2, #0
+ add r1, r0, #0
+ str r2, [r4, r0]
+ sub r1, #8
+ str r2, [r4, r1]
+ sub r0, r0, #4
+ mov r5, #0xa8
+ str r2, [r4, r0]
+ b _0223257C
+_02232542:
+ add r1, r0, #0
+ sub r1, #8
+ ldr r2, [r4, r1]
+ sub r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r2, r2, r1
+ add r1, r0, #0
+ sub r1, #8
+ str r2, [r4, r1]
+ sub r1, r0, #4
+ ldr r2, [r4, r1]
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r2, r1, #1
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ mov r2, #1
+ ldr r1, [r4, r1]
+ lsl r2, r2, #0xa
+ cmp r1, r2
+ bge _0223257C
+ mov r1, #0
+ lsl r3, r2, #2
+ add r2, r0, #0
+ str r1, [r4, r0]
+ sub r2, #8
+ str r3, [r4, r2]
+ sub r0, r0, #4
+ str r1, [r4, r0]
+_0223257C:
+ mov r0, #3
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_02012988
+ add r2, r0, #0
+ mov r0, #0x54
+ add r3, r0, #0
+ add r3, #0xfc
+_0223258E:
+ asr r1, r5, #0xb
+ lsr r1, r1, #0x14
+ add r1, r5, r1
+ asr r1, r1, #0xc
+ bpl _0223259A
+ mov r1, #0
+_0223259A:
+ cmp r1, #0xa8
+ ble _022325A0
+ mov r1, #0xa8
+_022325A0:
+ lsl r6, r3, #1
+ add r7, r2, r6
+ sub r6, r1, r0
+ strh r6, [r7, #6]
+ ldrh r6, [r7, #6]
+ sub r1, r0, r1
+ add r3, r3, #4
+ strh r6, [r7, #2]
+ mov r6, #0xa8
+ sub r6, r6, r0
+ lsl r6, r6, #3
+ add r6, r2, r6
+ strh r1, [r6, #6]
+ ldrh r1, [r6, #6]
+ add r0, r0, #1
+ strh r1, [r6, #2]
+ ldr r1, _022325E8 ; =0x00000C08
+ ldr r1, [r4, r1]
+ add r5, r5, r1
+ cmp r0, #0xa8
+ blt _0223258E
+ mov r1, #6
+ add r0, r2, #0
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ mov r0, #3
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_020129B4
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022325E4: .word 0x000030D0
+_022325E8: .word 0x00000C08
+ thumb_func_end MOD83_022324DC
+
+ thumb_func_start MOD83_022325EC
+MOD83_022325EC: ; 0x022325EC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_022394CC
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _02232606
+ ldr r0, _02232608 ; =0x0000061B
+ bl FUN_020054C8
+ ldr r0, _0223260C ; =0x00003CE8
+ mov r1, #0
+ str r1, [r4, r0]
+_02232606:
+ pop {r4, pc}
+ .align 2, 0
+_02232608: .word 0x0000061B
+_0223260C: .word 0x00003CE8
+ thumb_func_end MOD83_022325EC
+
+ thumb_func_start MOD83_02232610
+MOD83_02232610: ; 0x02232610
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02232658 ; =0x00002B60
+ ldr r1, [r4, r0]
+ sub r0, #0xc
+ lsl r1, r1, #2
+ add r1, r4, r1
+ ldr r2, [r1, r0]
+ mov r0, #0x35
+ lsl r0, r0, #4
+ ldrb r1, [r2, r0]
+ cmp r1, #0xff
+ beq _0223262E
+ add r1, r1, #1
+ strb r1, [r2, r0]
+_0223262E:
+ ldr r0, _02232658 ; =0x00002B60
+ ldr r1, [r4, r0]
+ sub r0, #0xc
+ lsl r1, r1, #2
+ add r1, r4, r1
+ ldr r2, [r1, r0]
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ ldrb r1, [r2, r0]
+ cmp r1, #0xff
+ beq _02232648
+ sub r1, r1, #1
+ strb r1, [r2, r0]
+_02232648:
+ ldr r0, _0223265C ; =0x00002B44
+ ldr r0, [r4, r0]
+ bl MOD83_022394BC
+ ldr r1, _02232660 ; =MOD83_022325EC
+ ldr r0, _02232664 ; =0x00003CE8
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_02232658: .word 0x00002B60
+_0223265C: .word 0x00002B44
+_02232660: .word MOD83_022325EC
+_02232664: .word 0x00003CE8
+ thumb_func_end MOD83_02232610
+
+ thumb_func_start MOD83_02232668
+MOD83_02232668: ; 0x02232668
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r2, #0
+ ldr r2, _02232768 ; =0x021C48B8
+ add r6, r1, #0
+ ldr r3, [r2, #0x48]
+ ldr r1, _0223276C ; =0x00003CEC
+ add r5, r0, #0
+ mov r2, #0x10
+ ldr r0, [r5, r1]
+ tst r2, r3
+ beq _02232686
+ cmp r0, #1
+ beq _02232686
+ mov r2, #1
+ str r2, [r5, r1]
+_02232686:
+ ldr r1, _02232768 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #0x20
+ tst r1, r2
+ beq _0223269C
+ ldr r1, _0223276C ; =0x00003CEC
+ ldr r2, [r5, r1]
+ cmp r2, #0
+ beq _0223269C
+ mov r2, #0
+ str r2, [r5, r1]
+_0223269C:
+ ldr r1, _0223276C ; =0x00003CEC
+ ldr r1, [r5, r1]
+ cmp r0, r1
+ beq _022326CC
+ cmp r1, #0
+ bne _022326AC
+ mov r1, #1
+ b _022326AE
+_022326AC:
+ mov r1, #0
+_022326AE:
+ ldr r0, _02232770 ; =0x00002D64
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _0223276C ; =0x00003CEC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _022326C2
+ mov r1, #1
+ b _022326C4
+_022326C2:
+ mov r1, #0
+_022326C4:
+ ldr r0, _02232774 ; =0x00002D68
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+_022326CC:
+ ldr r0, _02232768 ; =0x021C48B8
+ mov r4, #0
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ add r2, r1, #0
+ tst r2, r0
+ beq _022326DE
+ add r4, r0, #0
+ b _0223270E
+_022326DE:
+ mov r0, #1
+ and r1, r0
+ beq _022326F4
+ cmp r6, #0
+ beq _022326F4
+ ldr r2, _0223276C ; =0x00003CEC
+ ldr r2, [r5, r2]
+ cmp r2, #0
+ bne _022326F4
+ add r4, r0, #0
+ b _0223270E
+_022326F4:
+ cmp r1, #0
+ beq _02232704
+ ldr r0, _0223276C ; =0x00003CEC
+ ldr r0, [r5, r0]
+ cmp r0, #1
+ bne _02232704
+ mov r4, #2
+ b _0223270E
+_02232704:
+ cmp r1, #0
+ beq _0223270E
+ cmp r6, #0
+ bne _0223270E
+ mov r4, #3
+_0223270E:
+ cmp r4, #1
+ bne _02232746
+ ldr r0, _02232778 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xab
+ bl FUN_02031588
+ mov r3, #0xa
+ ldr r1, _0223277C ; =0x00002BD4
+ mov r0, #1
+ str r0, [r5, r1]
+ mov r0, #0x15
+ sub r1, #0x64
+ str r0, [r7]
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x11
+ lsl r3, r3, #6
+ bl MOD83_02231F88
+ ldr r0, _02232780 ; =0x00002B70
+ mov r1, #0x13
+ add r0, r5, r0
+ bl FUN_0200D858
+ ldr r1, _02232784 ; =0x00003CF0
+ str r0, [r5, r1]
+_02232746:
+ cmp r4, #2
+ bne _0223275A
+ ldr r0, _02232778 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0x13
+ bl MOD83_02233084
+_0223275A:
+ cmp r4, #3
+ bne _02232764
+ ldr r0, _02232778 ; =0x000005DC
+ bl FUN_020054C8
+_02232764:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232768: .word 0x021C48B8
+_0223276C: .word 0x00003CEC
+_02232770: .word 0x00002D64
+_02232774: .word 0x00002D68
+_02232778: .word 0x000005DC
+_0223277C: .word 0x00002BD4
+_02232780: .word 0x00002B70
+_02232784: .word 0x00003CF0
+ thumb_func_end MOD83_02232668
+
+ thumb_func_start MOD83_02232788
+MOD83_02232788: ; 0x02232788
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ add r6, r0, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0x1d
+ bls _0223279E
+ b _02232CF4
+_0223279E:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022327AA: ; jump table
+ .short _022327E6 - _022327AA - 2 ; case 0
+ .short _02232854 - _022327AA - 2 ; case 1
+ .short _02232866 - _022327AA - 2 ; case 2
+ .short _022328DC - _022327AA - 2 ; case 3
+ .short _02232956 - _022327AA - 2 ; case 4
+ .short _0223297E - _022327AA - 2 ; case 5
+ .short _0223299E - _022327AA - 2 ; case 6
+ .short _022329D6 - _022327AA - 2 ; case 7
+ .short _022329FA - _022327AA - 2 ; case 8
+ .short _02232A20 - _022327AA - 2 ; case 9
+ .short _02232A4C - _022327AA - 2 ; case 10
+ .short _02232A88 - _022327AA - 2 ; case 11
+ .short _02232AAC - _022327AA - 2 ; case 12
+ .short _02232AB8 - _022327AA - 2 ; case 13
+ .short _02232AC4 - _022327AA - 2 ; case 14
+ .short _02232AD6 - _022327AA - 2 ; case 15
+ .short _02232AE2 - _022327AA - 2 ; case 16
+ .short _02232B24 - _022327AA - 2 ; case 17
+ .short _02232B3A - _022327AA - 2 ; case 18
+ .short _02232BDC - _022327AA - 2 ; case 19
+ .short _02232BE8 - _022327AA - 2 ; case 20
+ .short _02232C36 - _022327AA - 2 ; case 21
+ .short _02232C26 - _022327AA - 2 ; case 22
+ .short _02232C6A - _022327AA - 2 ; case 23
+ .short _02232C7E - _022327AA - 2 ; case 24
+ .short _02232CB8 - _022327AA - 2 ; case 25
+ .short _02232CC8 - _022327AA - 2 ; case 26
+ .short _02232CD4 - _022327AA - 2 ; case 27
+ .short _02232CE4 - _022327AA - 2 ; case 28
+ .short _02232CF4 - _022327AA - 2 ; case 29
+_022327E6:
+ add r0, r6, #0
+ bl FUN_0200628C
+ ldr r1, [r0, #8]
+ ldr r0, _02232B54 ; =0x00002B44
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ bl FUN_0202251C
+ mov r1, #0xad
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ bl LoadPlayerDataAddress
+ ldr r1, _02232B58 ; =0x00002B48
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_02025084
+ ldr r1, _02232B5C ; =0x00002B4C
+ str r0, [r4, r1]
+ sub r1, #0xc
+ ldr r0, [r4, r1]
+ mov r1, #0
+ bl FUN_0202AC64
+ ldr r1, _02232B60 ; =0x00002B54
+ str r0, [r4, r1]
+ sub r1, #0x14
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_0202AC64
+ ldr r1, _02232B64 ; =0x00002B58
+ str r0, [r4, r1]
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #2
+ bl FUN_0202AC64
+ ldr r1, _02232B68 ; =0x00002B5C
+ mov r2, #1
+ str r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD83_022320A4
+ ldr r1, _02232B6C ; =0x00002B60
+ str r0, [r4, r1]
+ mov r0, #1
+ str r0, [r5]
+ b _02232CF4
+_02232854:
+ bl MOD83_022331C0
+ ldr r0, _02232B70 ; =0x0000299C
+ ldr r0, [r4, r0]
+ bl MOD83_022331E0
+ mov r0, #2
+ str r0, [r5]
+ b _02232CF4
+_02232866:
+ bl FUN_0201BD5C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_02232118
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x57
+ bl FUN_02002ED0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x57
+ str r0, [sp, #4]
+ ldr r0, _02232B70 ; =0x0000299C
+ mov r2, #1
+ ldr r0, [r4, r0]
+ mov r3, #0xd
+ bl FUN_0200CB00
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x57
+ str r0, [sp, #4]
+ ldr r0, _02232B70 ; =0x0000299C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #0xa
+ mov r3, #0xe
+ bl FUN_0200CB00
+ ldr r0, _02232B5C ; =0x00002B4C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ mov r2, #0x13
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x57
+ str r0, [sp, #4]
+ ldr r0, _02232B70 ; =0x0000299C
+ mov r3, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_0200CD68
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02231DF0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_022328DC:
+ ldr r1, _02232B6C ; =0x00002B60
+ mov r2, #0x40
+ ldr r6, [r4, r1]
+ ldr r1, _02232B74 ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ add r3, r1, #0
+ tst r3, r2
+ beq _022328F8
+ add r1, r6, #0
+ sub r2, #0x41
+ bl MOD83_022320A4
+ add r6, r0, #0
+ b _02232934
+_022328F8:
+ mov r2, #0x80
+ tst r2, r1
+ beq _0223290A
+ add r1, r6, #0
+ mov r2, #1
+ bl MOD83_022320A4
+ add r6, r0, #0
+ b _02232934
+_0223290A:
+ mov r0, #2
+ tst r0, r1
+ beq _02232924
+ ldr r0, _02232B78 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x1c
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232934
+_02232924:
+ mov r0, #1
+ tst r0, r1
+ beq _02232934
+ ldr r0, _02232B78 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #4
+ str r0, [r5]
+_02232934:
+ ldr r0, _02232B6C ; =0x00002B60
+ ldr r0, [r4, r0]
+ cmp r0, r6
+ bne _0223293E
+ b _02232CF4
+_0223293E:
+ mov r0, #6
+ lsl r0, r0, #8
+ bl FUN_020054C8
+ ldr r0, _02232B6C ; =0x00002B60
+ mov r1, #1
+ str r6, [r4, r0]
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD83_02231DF0
+ b _02232CF4
+_02232956:
+ ldr r1, _02232B7C ; =0x00002B70
+ mov r3, #0xa
+ add r1, r4, r1
+ mov r2, #7
+ lsl r3, r3, #6
+ bl MOD83_02231F88
+ ldr r3, _02232B80 ; =0x00002B90
+ mov r2, #8
+ add r1, r3, #0
+ str r0, [r4, r3]
+ sub r1, #0x10
+ ldr r3, [r4, r3]
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD83_02231F88
+ mov r0, #5
+ str r0, [r5]
+ b _02232CF4
+_0223297E:
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD83_02232208
+ ldr r0, _02232B74 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _02232A54
+ ldr r0, _02232B78 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xb
+ str r0, [r5]
+ b _02232CF4
+_0223299E:
+ mov r0, #6
+ lsl r0, r0, #8
+ bl FUN_020054C8
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, _02232B7C ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD83_022316D8
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD83_022316C0
+ mov r1, #1
+ add r0, r4, #0
+ lsl r2, r1, #0xc
+ mov r3, #0x66
+ bl MOD83_0223243C
+ mov r0, #7
+ str r0, [r5]
+ b _02232CF4
+_022329D6:
+ bl MOD83_022324DC
+ cmp r0, #0
+ beq _02232A54
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD83_02231DF0
+ ldr r2, _02232B84 ; =0x00708000
+ add r0, r4, #0
+ mov r1, #0
+ lsr r3, r2, #1
+ bl MOD83_0223243C
+ mov r0, #8
+ str r0, [r5]
+ b _02232CF4
+_022329FA:
+ bl MOD83_022324DC
+ ldr r0, _02232B74 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r1, r0
+ beq _02232A54
+ lsl r0, r0, #9
+ bl FUN_020054C8
+ mov r1, #1
+ add r0, r4, #0
+ lsl r2, r1, #0xc
+ mov r3, #0x66
+ bl MOD83_0223243C
+ mov r0, #9
+ str r0, [r5]
+ b _02232CF4
+_02232A20:
+ bl MOD83_022324DC
+ cmp r0, #0
+ beq _02232A54
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02231DF0
+ ldr r2, _02232B84 ; =0x00708000
+ add r0, r4, #0
+ mov r1, #0
+ lsr r3, r2, #1
+ bl MOD83_0223243C
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0xa
+ str r0, [r5]
+ b _02232CF4
+_02232A4C:
+ bl MOD83_022324DC
+ cmp r0, #0
+ bne _02232A56
+_02232A54:
+ b _02232CF4
+_02232A56:
+ ldr r0, _02232B7C ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #0x13
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #0
+ mov r2, #0xa
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl MOD83_022324A0
+ mov r0, #5
+ str r0, [r5]
+ b _02232CF4
+_02232A88:
+ bl MOD83_02231A00
+ ldr r0, _02232B7C ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD83_022316D8
+ ldr r0, _02232B7C ; =0x00002B70
+ add r0, r4, r0
+ bl FUN_02019570
+ ldr r0, _02232B7C ; =0x00002B70
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #3
+ str r0, [r5]
+ b _02232CF4
+_02232AAC:
+ ldr r2, _02232B88 ; =MOD83_022319D0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02232208
+ b _02232CF4
+_02232AB8:
+ ldr r2, _02232B88 ; =MOD83_022319D0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD83_02232208
+ b _02232CF4
+_02232AC4:
+ mov r1, #0xae
+ lsl r1, r1, #6
+ ldr r2, _02232B8C ; =0x00010200
+ add r1, r4, r1
+ bl MOD83_02231D74
+ mov r0, #0xd
+ str r0, [r5]
+ b _02232CF4
+_02232AD6:
+ mov r1, #0
+ mov r2, #0x10
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232AE2:
+ bl MOD83_02231A00
+ ldr r0, _02232B7C ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD83_022316D8
+ ldr r0, _02232B7C ; =0x00002B70
+ add r0, r4, r0
+ bl FUN_02019570
+ ldr r0, _02232B7C ; =0x00002B70
+ add r0, r4, r0
+ bl FUN_02019178
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD83_02231DF0
+ ldr r0, _02232B70 ; =0x0000299C
+ ldr r0, [r4, r0]
+ bl MOD83_02231820
+ add r0, r4, #0
+ bl MOD83_022315D0
+ add r0, r4, #0
+ bl MOD83_0223166C
+ mov r0, #0x11
+ str r0, [r5]
+ b _02232CF4
+_02232B24:
+ bl MOD83_02232D44
+ bl FUN_02033E74
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x12
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232B3A:
+ mov r6, #0
+ add r0, r6, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _02232BD0
+ add r0, r4, #0
+ add r0, #0x90
+ bl FUN_0202F10C
+ ldr r1, _02232B90 ; =0x00002AA8
+ b _02232B94
+ nop
+_02232B54: .word 0x00002B44
+_02232B58: .word 0x00002B48
+_02232B5C: .word 0x00002B4C
+_02232B60: .word 0x00002B54
+_02232B64: .word 0x00002B58
+_02232B68: .word 0x00002B5C
+_02232B6C: .word 0x00002B60
+_02232B70: .word 0x0000299C
+_02232B74: .word 0x021C48B8
+_02232B78: .word 0x000005DC
+_02232B7C: .word 0x00002B70
+_02232B80: .word 0x00002B90
+_02232B84: .word 0x00708000
+_02232B88: .word MOD83_022319D0
+_02232B8C: .word 0x00010200
+_02232B90: .word 0x00002AA8
+_02232B94:
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD83_02232E0C
+ add r6, r0, #0
+ bne _02232BC0
+ ldr r0, _02232D18 ; =0x00002BD0
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02232BC0
+ ldr r0, _02232D1C ; =0x00002AA8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_02019620
+ ldr r0, _02232D1C ; =0x00002AA8
+ add r0, r4, r0
+ bl FUN_020191D0
+ ldr r0, _02232D18 ; =0x00002BD0
+ mov r1, #0
+ str r1, [r4, r0]
+_02232BC0:
+ ldr r1, _02232D20 ; =0x00002A98
+ add r0, r4, #0
+ add r1, r4, r1
+ add r2, r6, #0
+ bl MOD83_02232FE4
+ ldr r0, _02232D18 ; =0x00002BD0
+ str r6, [r4, r0]
+_02232BD0:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD83_02232668
+ b _02232CF4
+_02232BDC:
+ mov r1, #0
+ mov r2, #0x14
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232BE8:
+ bl MOD83_022315F8
+ ldr r0, _02232D24 ; =0x00002B70
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD83_022316D8
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD83_022316C0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02231DF0
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x57
+ bl FUN_02002ED0
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #4
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232C26:
+ bl FUN_02031810
+ cmp r0, #0
+ bne _02232CF4
+ ldr r0, _02232D28 ; =0x00002BE0
+ ldr r0, [r4, r0]
+ str r0, [r5]
+ b _02232CF4
+_02232C36:
+ ldr r0, _02232D2C ; =0x00002BD4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02232CF4
+ ldr r1, _02232D30 ; =0x00002D78
+ add r0, r4, #0
+ ldr r2, [r4]
+ add r0, #0x90
+ add r1, r4, r1
+ bl MOD83_022392EC
+ ldr r0, _02232D30 ; =0x00002D78
+ mov r1, #0xd6
+ add r0, r4, r0
+ lsl r1, r1, #2
+ bl MOD83_0222F8F0
+ add r0, r4, #0
+ bl MOD83_02232610
+ mov r0, #0x17
+ str r0, [r5]
+ b _02232CF4
+_02232C6A:
+ bl MOD83_02239574
+ cmp r0, #4
+ bne _02232CF4
+ mov r0, #0x93
+ bl FUN_02031588
+ mov r0, #0x18
+ str r0, [r5]
+ b _02232CF4
+_02232C7E:
+ bl MOD83_02232DF0
+ cmp r0, #0
+ beq _02232C90
+ mov r0, #0x93
+ bl FUN_020315D8
+ cmp r0, #1
+ bne _02232CF4
+_02232C90:
+ bl MOD83_02239544
+ ldr r1, _02232D24 ; =0x00002B70
+ mov r3, #0xa
+ add r0, r4, #0
+ add r1, r4, r1
+ mov r2, #0x12
+ lsl r3, r3, #6
+ bl MOD83_02231F88
+ ldr r0, _02232D34 ; =0x00003CF0
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x19
+ bl MOD83_02233084
+ b _02232CF4
+_02232CB8:
+ ldr r0, _02232D38 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _02232CF4
+ mov r0, #0x13
+ str r0, [r5]
+ b _02232CF4
+_02232CC8:
+ mov r1, #0
+ mov r2, #0x1c
+ add r3, r5, #0
+ bl MOD83_02231DBC
+ b _02232CF4
+_02232CD4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _02232CF4
+ ldr r0, _02232D28 ; =0x00002BE0
+ ldr r0, [r4, r0]
+ str r0, [r5]
+ b _02232CF4
+_02232CE4:
+ bl MOD83_022315F8
+ add r0, r4, #0
+ bl MOD83_022324A0
+ add sp, #8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02232CF4:
+ ldr r0, _02232D3C ; =0x00002BE4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02232D00
+ bl FUN_0201FDEC
+_02232D00:
+ bl MOD83_02238D58
+ ldr r0, _02232D40 ; =0x00003CE8
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02232D10
+ add r0, r4, #0
+ blx r1
+_02232D10:
+ mov r0, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02232D18: .word 0x00002BD0
+_02232D1C: .word 0x00002AA8
+_02232D20: .word 0x00002A98
+_02232D24: .word 0x00002B70
+_02232D28: .word 0x00002BE0
+_02232D2C: .word 0x00002BD4
+_02232D30: .word 0x00002D78
+_02232D34: .word 0x00003CF0
+_02232D38: .word 0x021C48B8
+_02232D3C: .word 0x00002BE4
+_02232D40: .word 0x00003CE8
+ thumb_func_end MOD83_02232788
+
+ thumb_func_start MOD83_02232D44
+MOD83_02232D44: ; 0x02232D44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02232DA8 ; =0x00002B60
+ mov r2, #0xd6
+ ldr r1, [r5, r0]
+ sub r0, #0xc
+ lsl r1, r1, #2
+ add r1, r5, r1
+ ldr r4, [r1, r0]
+ add r0, r5, #0
+ add r0, #0xe0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl memcpy
+ mov r1, #0x41
+ add r0, r5, #0
+ lsl r1, r1, #2
+ add r0, #0x90
+ add r1, r4, r1
+ mov r2, #0x50
+ bl memcpy
+ ldr r0, _02232DAC ; =0x00000428
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0xde
+ ldrb r1, [r0]
+ mov r0, #0x10
+ mov r2, #0xf
+ bic r1, r0
+ add r0, r5, #0
+ add r0, #0xde
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0xde
+ ldrb r1, [r0]
+ mov r0, #0x20
+ orr r1, r0
+ add r0, r5, #0
+ add r0, #0xde
+ strb r1, [r0]
+ ldr r1, _02232DB0 ; =0x00002B44
+ add r0, r5, #4
+ ldr r1, [r5, r1]
+ bl MOD83_0222F8C4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02232DA8: .word 0x00002B60
+_02232DAC: .word 0x00000428
+_02232DB0: .word 0x00002B44
+ thumb_func_end MOD83_02232D44
+
+ thumb_func_start MOD83_02232DB4
+MOD83_02232DB4: ; 0x02232DB4
+ push {r3, r4}
+ ldr r3, [r0]
+ ldr r1, [r0, #4]
+ add r2, r0, #0
+ mov r4, #0
+ cmp r1, r3
+ bge _02232DC8
+ add r3, r1, #0
+ mov r4, #1
+ add r2, r0, #4
+_02232DC8:
+ ldr r1, [r0, #8]
+ cmp r1, r3
+ bge _02232DD6
+ add r2, r0, #0
+ add r3, r1, #0
+ mov r4, #2
+ add r2, #8
+_02232DD6:
+ ldr r1, [r0, #0xc]
+ cmp r1, r3
+ bge _02232DE2
+ add r2, r0, #0
+ mov r4, #3
+ add r2, #0xc
+_02232DE2:
+ ldr r0, _02232DEC ; =0x3FFF0001
+ str r0, [r2]
+ add r0, r4, #1
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_02232DEC: .word 0x3FFF0001
+ thumb_func_end MOD83_02232DB4
+
+ thumb_func_start MOD83_02232DF0
+MOD83_02232DF0: ; 0x02232DF0
+ push {r3, r4, r5, lr}
+ mov r5, #0
+ mov r4, #1
+_02232DF6:
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _02232E02
+ add r5, r5, #1
+_02232E02:
+ add r4, r4, #1
+ cmp r4, #5
+ blt _02232DF6
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_02232DF0
+
+ thumb_func_start MOD83_02232E0C
+MOD83_02232E0C: ; 0x02232E0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r5, r0, #0
+ mov r6, #0
+ mov r0, #1
+ str r1, [sp, #0x10]
+ add r7, r6, #0
+ str r0, [sp, #0x24]
+ add r4, r5, #4
+_02232E1E:
+ ldr r0, [sp, #0x24]
+ bl FUN_0202DFA4
+ cmp r0, #0
+ bne _02232E40
+ ldr r0, _02232FCC ; =0x00002BA8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02232E32
+ add r7, r7, #1
+_02232E32:
+ ldr r0, _02232FCC ; =0x00002BA8
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r1, _02232FD0 ; =0x3FFF0001
+ add r0, #0x14
+ str r1, [r4, r0]
+ b _02232E68
+_02232E40:
+ ldr r1, _02232FCC ; =0x00002BA8
+ ldr r1, [r4, r1]
+ cmp r1, r0
+ beq _02232E66
+ ldr r1, _02232FCC ; =0x00002BA8
+ add r7, r7, #1
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r1, #0x34
+ ldr r1, [r5, r1]
+ add r0, #0x34
+ add r2, r1, #1
+ ldr r0, [r5, r0]
+ ldr r1, _02232FD4 ; =0x00002BDC
+ add r6, r6, #1
+ str r2, [r5, r1]
+ sub r1, #0x20
+ str r0, [r4, r1]
+ b _02232E68
+_02232E66:
+ add r6, r6, #1
+_02232E68:
+ ldr r0, [sp, #0x24]
+ add r4, r4, #4
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #5
+ blt _02232E1E
+ cmp r7, #0
+ bne _02232E7E
+ add sp, #0x48
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02232E7E:
+ mov r1, #0xaf
+ lsl r1, r1, #6
+ ldr r0, [r5, r1]
+ str r0, [sp, #0x38]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x3c]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ add r1, #0xc
+ str r0, [sp, #0x40]
+ ldr r0, [r5, r1]
+ str r0, [sp, #0x44]
+ add r0, sp, #0x38
+ bl MOD83_02232DB4
+ str r0, [sp, #0x28]
+ add r0, sp, #0x38
+ bl MOD83_02232DB4
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x38
+ bl MOD83_02232DB4
+ str r0, [sp, #0x30]
+ add r0, sp, #0x38
+ bl MOD83_02232DB4
+ str r0, [sp, #0x34]
+ mov r0, #0x57
+ bl FUN_0200AA80
+ add r4, r0, #0
+ ldr r2, _02232FD8 ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ str r0, [sp, #0x1c]
+ mov r5, #0
+ ldr r0, [sp, #0x10]
+ add r1, r5, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ cmp r6, #0
+ ble _02232FAE
+ add r0, sp, #0x28
+ str r0, [sp, #0x18]
+_02232EE6:
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0]
+ bl FUN_0202DFA4
+ add r7, r0, #0
+ beq _02232F9E
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r7, #0
+ bl FUN_0200ABC0
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ mov r2, #0x35
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl FUN_020239CC
+ cmp r0, #0
+ str r5, [sp]
+ bne _02232F30
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02232FDC ; =0x00050600
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x20]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ b _02232F4A
+_02232F30:
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r1, #0
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x20]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+_02232F4A:
+ ldr r0, [sp, #0x20]
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_020239BC
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ lsl r2, r2, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #5
+ bl FUN_0200AD38
+ ldr r1, [sp, #0x1c]
+ add r0, r4, #0
+ mov r2, #0x36
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ add r7, r0, #0
+ str r5, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02232FE0 ; =0x000E0F00
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ add r2, r7, #0
+ mov r3, #0x50
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r5, #0x18
+_02232F9E:
+ ldr r0, [sp, #0x18]
+ add r0, r0, #4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r6
+ blt _02232EE6
+_02232FAE:
+ cmp r6, #0
+ beq _02232FB8
+ ldr r0, [sp, #0x10]
+ bl FUN_020191D0
+_02232FB8:
+ ldr r0, [sp, #0x1c]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl FUN_0200AB18
+ add r0, r6, #0
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02232FCC: .word 0x00002BA8
+_02232FD0: .word 0x3FFF0001
+_02232FD4: .word 0x00002BDC
+_02232FD8: .word 0x00000172
+_02232FDC: .word 0x00050600
+_02232FE0: .word 0x000E0F00
+ thumb_func_end MOD83_02232E0C
+
+ thumb_func_start MOD83_02232FE4
+MOD83_02232FE4: ; 0x02232FE4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _02233070 ; =0x00002B94
+ add r4, r1, #0
+ str r2, [r5, r0]
+ ldr r2, _02233074 ; =0x00000172
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x57
+ bl FUN_0200A86C
+ ldr r1, _02233078 ; =0x000029A4
+ str r0, [r5, r1]
+ mov r0, #0x57
+ bl FUN_0200AA80
+ ldr r1, _0223307C ; =0x000029A0
+ str r0, [r5, r1]
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r3, #1
+ str r3, [sp]
+ ldr r0, _0223307C ; =0x000029A0
+ str r3, [sp, #4]
+ ldr r2, _02233070 ; =0x00002B94
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ mov r1, #0
+ bl FUN_0200AD38
+ ldr r1, _0223307C ; =0x000029A0
+ mov r2, #0x38
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ mov r3, #0x57
+ bl FUN_0200A9C4
+ add r6, r0, #0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02233080 ; =0x00010200
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_020191D0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, _02233078 ; =0x000029A4
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0223307C ; =0x000029A0
+ ldr r0, [r5, r0]
+ bl FUN_0200AB18
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02233070: .word 0x00002B94
+_02233074: .word 0x00000172
+_02233078: .word 0x000029A4
+_0223307C: .word 0x000029A0
+_02233080: .word 0x00010200
+ thumb_func_end MOD83_02232FE4
+
+ thumb_func_start MOD83_02233084
+MOD83_02233084: ; 0x02233084
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD83_0222F9DC
+ bl FUN_02033ED0
+ ldr r0, _022330A0 ; =0x00002BE0
+ str r6, [r5, r0]
+ mov r0, #0x16
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+ nop
+_022330A0: .word 0x00002BE0
+ thumb_func_end MOD83_02233084
+
+ thumb_func_start MOD83_022330A4
+MOD83_022330A4: ; 0x022330A4
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ bl FUN_02006278
+ add r7, r0, #0
+ ldr r0, _02233154 ; =0x000029A8
+ mov r6, #0
+ add r4, r7, #0
+ add r5, r7, r0
+_022330B6:
+ ldr r0, _02233154 ; =0x000029A8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022330CA
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+_022330CA:
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, #0x10
+ cmp r6, #0x13
+ blo _022330B6
+ ldr r0, _02233158 ; =0x00002B70
+ ldr r1, [r7, r0]
+ cmp r1, #0
+ beq _022330EA
+ add r0, r7, r0
+ bl FUN_02019570
+ ldr r0, _02233158 ; =0x00002B70
+ add r0, r7, r0
+ bl FUN_02019178
+_022330EA:
+ mov r0, #0xae
+ lsl r0, r0, #6
+ ldr r1, [r7, r0]
+ cmp r1, #0
+ beq _02233104
+ add r0, r7, r0
+ bl FUN_02019570
+ mov r0, #0xae
+ lsl r0, r0, #6
+ add r0, r7, r0
+ bl FUN_02019178
+_02233104:
+ ldr r0, _0223315C ; =0x0000299C
+ mov r1, #0
+ ldr r0, [r7, r0]
+ bl FUN_020178A0
+ ldr r0, _0223315C ; =0x0000299C
+ mov r1, #1
+ ldr r0, [r7, r0]
+ bl FUN_020178A0
+ ldr r0, _0223315C ; =0x0000299C
+ mov r1, #2
+ ldr r0, [r7, r0]
+ bl FUN_020178A0
+ ldr r0, _0223315C ; =0x0000299C
+ mov r1, #3
+ ldr r0, [r7, r0]
+ bl FUN_020178A0
+ ldr r0, _0223315C ; =0x0000299C
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ ldr r0, _02233160 ; =0x00000053
+ ldr r1, _02233164 ; =0x0223A434
+ bl FUN_02000E7C
+ mov r0, #0x5b
+ bl FUN_020168D0
+ ldr r0, [sp]
+ bl FUN_0200627C
+ mov r0, #0x57
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02233154: .word 0x000029A8
+_02233158: .word 0x00002B70
+_0223315C: .word 0x0000299C
+_02233160: .word 0x00000053
+_02233164: .word 0x0223A434
+ thumb_func_end MOD83_022330A4
+
+ thumb_func_start MOD83_02233168
+MOD83_02233168: ; 0x02233168
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ bl MOD83_022331E0
+ ldr r1, _022331B4 ; =0x00003CF4
+ add r0, r5, #0
+ bl FUN_020169D8
+ ldr r2, _022331B4 ; =0x00003CF4
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ ldr r0, _022331B8 ; =0x0000299C
+ mov r1, #0x1e
+ str r6, [r4, r0]
+ mov r0, #0
+ lsl r1, r1, #4
+ add r2, r5, #0
+ str r5, [r4]
+ bl FUN_02002ED0
+ ldr r0, _022331BC ; =0x00002B54
+ mov r2, #0
+ str r7, [r4, r0]
+ add r0, #0xc
+ str r2, [r4, r0]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_02231DF0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022331B4: .word 0x00003CF4
+_022331B8: .word 0x0000299C
+_022331BC: .word 0x00002B54
+ thumb_func_end MOD83_02233168
+
+ thumb_func_start MOD83_022331C0
+MOD83_022331C0: ; 0x022331C0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _022331DC ; =0x0223A4D4
+ add r3, sp, #0
+ mov r2, #5
+_022331CA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022331CA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_022331DC: .word 0x0223A4D4
+ thumb_func_end MOD83_022331C0
+
+ thumb_func_start MOD83_022331E0
+MOD83_022331E0: ; 0x022331E0
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ ldr r5, _022332A0 ; =0x0223A454
+ add r3, sp, #0x70
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _022332A4 ; =0x0223A480
+ 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, #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, _022332A8 ; =0x0223A4B8
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _022332AC ; =0x0223A49C
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _022332B0 ; =0x0223A464
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ nop
+_022332A0: .word 0x0223A454
+_022332A4: .word 0x0223A480
+_022332A8: .word 0x0223A4B8
+_022332AC: .word 0x0223A49C
+_022332B0: .word 0x0223A464
+ thumb_func_end MOD83_022331E0
+
+ thumb_func_start MOD83_022332B4
+MOD83_022332B4: ; 0x022332B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ bl FUN_0202251C
+ mov r1, #0
+ ldr r4, [r5, #0x48]
+ mvn r1, r1
+ add r6, r0, #0
+ cmp r4, r1
+ bne _022332E8
+ add r2, r5, #0
+ add r2, #0x4c
+ ldrh r2, [r2]
+ lsr r1, r1, #0x10
+ cmp r2, r1
+ bne _022332E8
+ bl FUN_0202AC28
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_020227A0
+ mov r0, #0
+ bl OS_ResetSystem
+_022332E8:
+ cmp r4, #0
+ bne _022332F0
+ mov r4, #0
+ mvn r4, r4
+_022332F0:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r0, r4
+ bne _022332FC
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022332FC:
+ add r0, r5, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223331E
+ add r1, r5, #0
+ add r1, #0x4c
+ ldrh r1, [r1]
+ add r0, r6, #0
+ bl FUN_0202AEF4
+ cmp r0, #1
+ bne _0223331E
+ mov r0, #2
+ pop {r3, r4, r5, r6, r7, pc}
+_0223331E:
+ add r0, r5, #0
+ add r0, #0x4e
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _0223333A
+ add r0, r6, #0
+ bl FUN_0202AE0C
+ cmp r0, #0
+ bne _0223333A
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_0223333A:
+ add r0, r6, #0
+ bl FUN_0202ADF0
+ cmp r0, #0
+ bne _02233348
+ mov r0, #3
+ pop {r3, r4, r5, r6, r7, pc}
+_02233348:
+ add r5, #0x4e
+ ldrb r0, [r5]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _02233358
+ mov r0, #5
+ pop {r3, r4, r5, r6, r7, pc}
+_02233358:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022332B4
+
+ thumb_func_start MOD83_0223335C
+MOD83_0223335C: ; 0x0223335C
+ push {r3, lr}
+ mov r0, #4
+ bl MOD83_02234580
+ bl MOD83_02234C34
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223335C
+
+ thumb_func_start MOD83_0223336C
+MOD83_0223336C: ; 0x0223336C
+ push {r3, lr}
+ bl MOD83_02234704
+ str r0, [sp]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223336C
+
+ thumb_func_start MOD83_02233378
+MOD83_02233378: ; 0x02233378
+ push {r3, lr}
+ bl MOD83_02234724
+ add r1, sp, #0
+ strh r0, [r1]
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ pop {r3, pc}
+ thumb_func_end MOD83_02233378
+
+ thumb_func_start MOD83_02233388
+MOD83_02233388: ; 0x02233388
+ push {r4, lr}
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _022333AA
+ bl MOD83_0223456C
+ add r4, r0, #0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _022333A6
+ bl MOD83_02234C34
+ mov r0, #1
+ str r0, [r4, #0x1c]
+_022333A6:
+ mov r0, #1
+ pop {r4, pc}
+_022333AA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233388
+
+ thumb_func_start MOD83_022333B0
+MOD83_022333B0: ; 0x022333B0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223466C
+ mov r3, #0
+ add r1, r3, #0
+_022333BC:
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _022333CC
+ ldrh r2, [r0, #6]
+ cmp r4, r2
+ bne _022333CC
+ strb r1, [r0, #8]
+ strb r1, [r0, #0xa]
+_022333CC:
+ add r3, r3, #1
+ add r0, #0xc
+ cmp r3, #8
+ blt _022333BC
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022333B0
+
+ thumb_func_start MOD83_022333D8
+MOD83_022333D8: ; 0x022333D8
+ push {r3, lr}
+ bl MOD83_0223466C
+ add r1, r0, #0
+ add r1, #0x62
+ ldrh r3, [r1]
+ mov r2, #1
+ add r1, r3, #0
+ tst r1, r2
+ beq _022333FE
+ add r1, r0, #0
+ add r1, #0x62
+ ldrh r3, [r1]
+ mov r1, #1
+ add r0, #0x62
+ bic r3, r1
+ strh r3, [r0]
+ add r0, r2, #0
+ pop {r3, pc}
+_022333FE:
+ mov r1, #0x40
+ add r2, r3, #0
+ tst r2, r1
+ beq _02233418
+ add r1, r0, #0
+ add r1, #0x62
+ ldrh r2, [r1]
+ mov r1, #0x40
+ add r0, #0x62
+ bic r2, r1
+ strh r2, [r0]
+ mov r0, #7
+ pop {r3, pc}
+_02233418:
+ lsl r1, r1, #6
+ tst r1, r3
+ beq _02233430
+ add r1, r0, #0
+ add r1, #0x62
+ ldrh r2, [r1]
+ ldr r1, _02233434 ; =0xFFFFEFFF
+ add r0, #0x62
+ and r1, r2
+ strh r1, [r0]
+ mov r0, #0xd
+ pop {r3, pc}
+_02233430:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_02233434: .word 0xFFFFEFFF
+ thumb_func_end MOD83_022333D8
+
+ thumb_func_start MOD83_02233438
+MOD83_02233438: ; 0x02233438
+ push {r4, lr}
+ bl MOD83_0223466C
+ add r4, r0, #0
+ mov r1, #1
+ add r0, #0x60
+ strb r1, [r0]
+ bl WM_GetAllowedChannel
+ add r1, r4, #0
+ add r1, #0x62
+ strh r0, [r1]
+ add r0, r4, #0
+ add r0, #0x62
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _02233462
+ mov r0, #2
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ bne _02233466
+_02233462:
+ mov r0, #0
+ pop {r4, pc}
+_02233466:
+ add r0, r4, #0
+ mov r1, #0x66
+ add r0, #0x61
+ strb r1, [r0]
+ mov r0, #0
+ add r4, #0x64
+ strb r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD83_02233438
+
+ thumb_func_start MOD83_02233478
+MOD83_02233478: ; 0x02233478
+ push {r4, lr}
+ bl MOD83_02234564
+ add r4, r0, #0
+ bl WM_GetDispersionBeaconPeriod
+ strh r0, [r4, #0x18]
+ bl WM_GetNextTgid
+ strh r0, [r4, #0xc]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233478
+
+ thumb_func_start MOD83_02233490
+MOD83_02233490: ; 0x02233490
+ push {r4, lr}
+ bl MOD83_022345D4
+ add r4, r0, #0
+ bl MOD83_02234610
+ str r0, [r4]
+ bl MOD83_02234564
+ ldrh r0, [r0, #0x32]
+ strh r0, [r4, #4]
+ bl WM_GetDispersionScanPeriod
+ strh r0, [r4, #6]
+ mov r0, #0xff
+ strb r0, [r4, #8]
+ strb r0, [r4, #9]
+ strb r0, [r4, #0xa]
+ strb r0, [r4, #0xb]
+ strb r0, [r4, #0xc]
+ strb r0, [r4, #0xd]
+ pop {r4, pc}
+ thumb_func_end MOD83_02233490
+
+ thumb_func_start MOD83_022334BC
+MOD83_022334BC: ; 0x022334BC
+ push {r3, r4, r5, r6, r7, lr}
+ bl MOD83_022345D4
+ add r7, r0, #0
+ bl WM_GetAllowedChannel
+ add r3, r0, #0
+ beq _02233508
+ ldrh r2, [r7, #4]
+ mov r1, #0
+ mov r0, #1
+ mov ip, r2
+ mov r4, #0x1c
+_022334D6:
+ lsr r6, r2, #0x1f
+ lsl r5, r2, #0x1c
+ sub r5, r5, r6
+ ror r5, r4
+ add r5, r6, r5
+ add r6, r0, #0
+ lsl r6, r5
+ add r5, r3, #0
+ tst r5, r6
+ beq _02233500
+ mov r0, ip
+ add r0, r0, r1
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1c
+ sub r1, r1, r2
+ mov r0, #0x1c
+ ror r1, r0
+ add r0, r2, r1
+ add r0, r0, #1
+ strh r0, [r7, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_02233500:
+ add r1, r1, #1
+ add r2, r2, #1
+ cmp r1, #0x10
+ blt _022334D6
+_02233508:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022334BC
+
+ thumb_func_start MOD83_0223350C
+MOD83_0223350C: ; 0x0223350C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #4]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #8
+ bne _02233524
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233524:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223350C
+
+ thumb_func_start MOD83_02233528
+MOD83_02233528: ; 0x02233528
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _0223353C
+ bl MOD83_02234958
+_0223353C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233528
+
+ thumb_func_start MOD83_02233540
+MOD83_02233540: ; 0x02233540
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233576
+ mov r0, #2
+ bl MOD83_02234580
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _02233562
+ bl MOD83_022349CC
+ mov r0, #2
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233562:
+ bl MOD83_02234BF8
+ cmp r0, #0
+ bne _0223357E
+ bl MOD83_022349CC
+ mov r0, #2
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233576:
+ bl MOD83_02234958
+ bl MOD83_022349CC
+_0223357E:
+ pop {r3, pc}
+ thumb_func_end MOD83_02233540
+
+ thumb_func_start MOD83_02233580
+MOD83_02233580: ; 0x02233580
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _022335AA
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _022335A2
+ bl WM_Finish
+ mov r0, #0xc
+ bl MOD83_02234580
+ mov r0, #1
+ bl MOD83_0223464C
+ pop {r3, pc}
+_022335A2:
+ mov r0, #1
+ bl MOD83_02234580
+ pop {r3, pc}
+_022335AA:
+ bl MOD83_02234958
+ mov r0, #4
+ bl MOD83_02234580
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233580
+
+ thumb_func_start MOD83_022335B8
+MOD83_022335B8: ; 0x022335B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrh r0, [r5, #2]
+ cmp r0, #0
+ bne _02233616
+ bl MOD83_0223466C
+ add r4, r0, #0
+ add r0, #0x61
+ ldrh r1, [r5, #0xa]
+ ldrb r0, [r0]
+ cmp r0, r1
+ ble _022335E0
+ add r0, r4, #0
+ add r0, #0x61
+ strb r1, [r0]
+ add r0, r4, #0
+ ldrh r1, [r5, #8]
+ add r0, #0x64
+ strb r1, [r0]
+_022335E0:
+ bl MOD83_022333D8
+ cmp r0, #0
+ beq _022335F6
+ bl MOD83_022349EC
+ cmp r0, #0
+ bne _0223361E
+ bl MOD83_0223335C
+ pop {r3, r4, r5, pc}
+_022335F6:
+ add r4, #0x61
+ ldrb r0, [r4]
+ cmp r0, #0x66
+ bhs _02233610
+ bl MOD83_02233478
+ bl MOD83_02234A18
+ cmp r0, #0
+ bne _0223361E
+ bl MOD83_0223335C
+ pop {r3, r4, r5, pc}
+_02233610:
+ bl MOD83_0223335C
+ pop {r3, r4, r5, pc}
+_02233616:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_0223361E:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_022335B8
+
+ thumb_func_start MOD83_02233620
+MOD83_02233620: ; 0x02233620
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _0223363E
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233646
+ bl MOD83_02234A54
+ cmp r0, #0
+ bne _02233646
+ bl MOD83_0223335C
+ pop {r3, pc}
+_0223363E:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233646:
+ pop {r3, pc}
+ thumb_func_end MOD83_02233620
+
+ thumb_func_start MOD83_02233648
+MOD83_02233648: ; 0x02233648
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldrh r0, [r5, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r5, #2]
+ cmp r0, #0
+ beq _0223365C
+ b _0223376E
+_0223365C:
+ bl MOD83_0223466C
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ beq _02233672
+ b _02233776
+_02233672:
+ add r0, r4, #0
+ add r0, #0x60
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _02233684
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0x60
+ strb r1, [r0]
+_02233684:
+ ldrh r0, [r5, #8]
+ cmp r0, #7
+ bgt _0223369C
+ bge _022336BE
+ cmp r0, #2
+ bgt _02233776
+ cmp r0, #0
+ blt _02233776
+ beq _022336A4
+ add sp, #0xc
+ cmp r0, #2
+ pop {r4, r5, pc}
+_0223369C:
+ cmp r0, #9
+ beq _02233764
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022336A4:
+ bl MOD83_02234B80
+ cmp r0, #0
+ bne _022336B4
+ bl MOD83_0223335C
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022336B4:
+ mov r0, #0
+ bl MOD83_0223461C
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022336BE:
+ bl MOD83_0223466C
+ bl MOD83_02234968
+ add r4, #0x60
+ ldrb r0, [r4]
+ cmp r0, #2
+ bne _02233776
+ add r4, r5, #0
+ add r4, #0x14
+ bl MOD83_022346BC
+ ldr r1, [r5, #0x14]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233776
+ bl MOD83_022346CC
+ ldr r1, [r4]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233776
+ bl MOD83_022346DC
+ ldr r1, [r4, #4]
+ lsr r1, r1, #0x10
+ cmp r1, r0
+ bne _02233776
+ bl MOD83_0223466C
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xa
+ bl MOD83_0223336C
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xa
+ bl MOD83_02233378
+ add r1, sp, #0
+ strh r0, [r1]
+ ldrh r0, [r1]
+ ldr r2, [sp, #8]
+ add r3, r4, #0
+ strh r0, [r1, #2]
+ mov r0, #0
+_02233722:
+ ldr r1, [r3]
+ cmp r1, r2
+ bne _0223373A
+ mov r1, #0xc
+ mul r1, r0
+ ldrh r0, [r5, #0x10]
+ add r1, r4, r1
+ add sp, #0xc
+ strh r0, [r1, #6]
+ mov r0, #1
+ strb r0, [r1, #0xa]
+ pop {r4, r5, pc}
+_0223373A:
+ cmp r1, #0
+ bne _02233758
+ mov r1, #0xc
+ mul r1, r0
+ str r2, [r4, r1]
+ add r0, sp, #0
+ ldrh r0, [r0, #2]
+ add r1, r4, r1
+ add sp, #0xc
+ strh r0, [r1, #4]
+ ldrh r0, [r5, #0x10]
+ strh r0, [r1, #6]
+ mov r0, #1
+ strb r0, [r1, #0xa]
+ pop {r4, r5, pc}
+_02233758:
+ add r0, r0, #1
+ add r3, #0xc
+ cmp r0, #8
+ blt _02233722
+ add sp, #0xc
+ pop {r4, r5, pc}
+_02233764:
+ ldrh r0, [r5, #0x10]
+ bl MOD83_022333B0
+ add sp, #0xc
+ pop {r4, r5, pc}
+_0223376E:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233776:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233648
+
+ thumb_func_start MOD83_0223377C
+MOD83_0223377C: ; 0x0223377C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ str r0, [sp]
+ bl MOD83_02234664
+ add r7, r0, #0
+ add r0, r4, #4
+ bl MOD83_0223336C
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #4
+ bl MOD83_02233378
+ add r2, sp, #4
+ strh r0, [r2]
+ ldrh r0, [r2]
+ ldr r6, [sp, #0xc]
+ add r1, r7, #0
+ strh r0, [r2, #2]
+ ldrh r3, [r2, #2]
+ mov r0, #0
+_022337AA:
+ ldr r2, [r1]
+ add r5, r1, #0
+ add r5, #0x34
+ cmp r2, r6
+ bne _022337C0
+ ldrh r5, [r5]
+ cmp r5, r3
+ bne _022337C0
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022337C0:
+ cmp r2, #0
+ bne _0223380C
+ mov r1, #0x38
+ mul r1, r0
+ ldr r0, [sp, #0xc]
+ add r5, r4, #0
+ str r0, [r7, r1]
+ add r0, r7, r1
+ add r5, #0x58
+ add r3, r0, #4
+ mov r2, #0xc
+_022337D6:
+ ldrh r0, [r5]
+ add r5, r5, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ sub r2, r2, #1
+ bne _022337D6
+ add r3, r7, r1
+ add r4, #0x70
+ add r3, #0x1c
+ mov r2, #0xc
+_022337EA:
+ ldrh r0, [r4]
+ add r4, r4, #2
+ strh r0, [r3]
+ add r3, r3, #2
+ sub r2, r2, #1
+ bne _022337EA
+ add r0, sp, #4
+ ldrh r0, [r0, #2]
+ add r1, r7, r1
+ strh r0, [r1, #0x34]
+ ldr r0, [sp]
+ add r1, #0x36
+ ldrh r0, [r0, #0x12]
+ add sp, #0x10
+ strb r0, [r1]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223380C:
+ add r0, r0, #1
+ add r1, #0x38
+ cmp r0, #8
+ blt _022337AA
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223377C
+
+ thumb_func_start MOD83_0223381C
+MOD83_0223381C: ; 0x0223381C
+ push {r3, lr}
+ bl MOD83_022334BC
+ bl MOD83_02234A70
+ cmp r0, #0
+ bne _0223382E
+ bl MOD83_0223335C
+_0223382E:
+ pop {r3, pc}
+ thumb_func_end MOD83_0223381C
+
+ thumb_func_start MOD83_02233830
+MOD83_02233830: ; 0x02233830
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD83_02234610
+ add r4, r0, #0
+ bl MOD83_02234664
+ add r5, r0, #0
+ bl MOD83_02233388
+ cmp r0, #0
+ beq _0223384C
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0223384C:
+ mov r1, #0
+ add r2, r1, #0
+ add r3, r5, #0
+_02233852:
+ ldr r0, [r3]
+ cmp r0, #0
+ beq _0223385C
+ mov r1, #1
+ b _02233864
+_0223385C:
+ add r2, r2, #1
+ add r3, #0x38
+ cmp r2, #8
+ blt _02233852
+_02233864:
+ cmp r1, #0
+ beq _02233882
+ mov r0, #7
+ lsl r0, r0, #6
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ bne _02233882
+ bl MOD83_02234B2C
+ cmp r0, #0
+ bne _0223387E
+ bl MOD83_0223335C
+_0223387E:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02233882:
+ add r0, r4, #0
+ mov r1, #0xc0
+ bl DC_InvalidateRange
+ bl MOD83_02234664
+ bl MOD83_02234964
+ ldrh r0, [r6, #0x36]
+ cmp r0, #8
+ blo _0223390C
+ bl MOD83_022346B0
+ ldr r1, [r4, #0x44]
+ cmp r1, r0
+ bne _0223390C
+ add r5, r4, #0
+ add r5, #0x50
+ bl MOD83_022346BC
+ ldr r1, [r4, #0x50]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _0223390C
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _0223390C
+ bl MOD83_022346DC
+ ldr r1, [r5, #4]
+ lsr r1, r1, #0x10
+ cmp r1, r0
+ bne _0223390C
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD83_0223377C
+ cmp r0, #0
+ beq _022338FC
+ bl MOD83_02234664
+ ldr r1, _02233910 ; =0x000001C2
+ ldrb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0, r1]
+ ldrb r0, [r0, r1]
+ cmp r0, #0x1c
+ bls _0223390C
+ bl MOD83_02234B2C
+ cmp r0, #0
+ bne _0223390C
+ bl MOD83_0223335C
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022338FC:
+ bl MOD83_02234B2C
+ cmp r0, #0
+ bne _02233908
+ bl MOD83_0223335C
+_02233908:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0223390C:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02233910: .word 0x000001C2
+ thumb_func_end MOD83_02233830
+
+ thumb_func_start MOD83_02233914
+MOD83_02233914: ; 0x02233914
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _0223397A
+ bl MOD83_02234610
+ bl MOD83_02234960
+ mov r0, #6
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233982
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _02233954
+ bl MOD83_02234664
+ ldr r2, _02233984 ; =0x000001C3
+ mov r1, #0xf0
+ ldrb r3, [r0, r2]
+ bic r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strb r1, [r0, r2]
+_02233954:
+ ldrh r0, [r4, #8]
+ cmp r0, #4
+ beq _02233968
+ cmp r0, #5
+ bne _0223396E
+ add r0, r4, #0
+ bl MOD83_02233830
+ cmp r0, #0
+ bne _02233982
+_02233968:
+ bl MOD83_0223381C
+ pop {r4, pc}
+_0223396E:
+ ldrh r0, [r4, #2]
+ bl MOD83_02234958
+ bl MOD83_0223335C
+ pop {r4, pc}
+_0223397A:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233982:
+ pop {r4, pc}
+ .align 2, 0
+_02233984: .word 0x000001C3
+ thumb_func_end MOD83_02233914
+
+ thumb_func_start MOD83_02233988
+MOD83_02233988: ; 0x02233988
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ bl MOD83_02234610
+ add r4, r0, #0
+ bl MOD83_02234664
+ add r6, r0, #0
+ bl MOD83_02234564
+ bl MOD83_02233388
+ cmp r0, #0
+ beq _022339AA
+ add sp, #8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022339AA:
+ add r0, r4, #0
+ mov r1, #0xc0
+ bl DC_InvalidateRange
+ bl MOD83_02234664
+ bl MOD83_02234964
+ ldrh r0, [r4, #0x3c]
+ cmp r0, #8
+ blo _02233A24
+ bl MOD83_022346B0
+ ldr r1, [r4, #0x44]
+ cmp r1, r0
+ bne _02233A24
+ add r5, r4, #0
+ add r5, #0x50
+ bl MOD83_022346BC
+ ldr r1, [r4, #0x50]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233A24
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233A24
+ bl MOD83_022346DC
+ ldr r1, [r5, #4]
+ lsr r1, r1, #0x10
+ cmp r1, r0
+ bne _02233A24
+ add r0, r4, #4
+ bl MOD83_0223336C
+ ldr r1, _02233A2C ; =0x000001C3
+ str r0, [sp]
+ ldrb r1, [r6, r1]
+ str r0, [sp, #4]
+ lsl r1, r1, #0x1c
+ lsr r2, r1, #0x1c
+ mov r1, #0x38
+ mul r1, r2
+ ldr r1, [r6, r1]
+ cmp r1, r0
+ bne _02233A24
+ bl MOD83_02234B2C
+ cmp r0, #0
+ bne _02233A1E
+ bl MOD83_0223335C
+_02233A1E:
+ add sp, #8
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02233A24:
+ mov r0, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_02233A2C: .word 0x000001C3
+ thumb_func_end MOD83_02233988
+
+ thumb_func_start MOD83_02233A30
+MOD83_02233A30: ; 0x02233A30
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _02233A90
+ bl MOD83_02234664
+ ldr r2, _02233A9C ; =0x000001C3
+ mov r1, #0xf0
+ ldrb r3, [r0, r2]
+ bic r3, r1
+ mov r1, #0x20
+ orr r1, r3
+ strb r1, [r0, r2]
+ mov r0, #6
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233A98
+ ldrh r0, [r4, #8]
+ cmp r0, #4
+ beq _02233A72
+ cmp r0, #5
+ bne _02233A84
+ bl MOD83_02233988
+ cmp r0, #0
+ bne _02233A98
+_02233A72:
+ bl MOD83_022334BC
+ bl MOD83_02234A94
+ cmp r0, #0
+ bne _02233A98
+ bl MOD83_0223335C
+ pop {r4, pc}
+_02233A84:
+ ldrh r0, [r4, #2]
+ bl MOD83_02234958
+ bl MOD83_0223335C
+ pop {r4, pc}
+_02233A90:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233A98:
+ pop {r4, pc}
+ nop
+_02233A9C: .word 0x000001C3
+ thumb_func_end MOD83_02233A30
+
+ thumb_func_start MOD83_02233AA0
+MOD83_02233AA0: ; 0x02233AA0
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233AE4
+ mov r0, #7
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233AEC
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _02233AEC
+ bl MOD83_02234664
+ ldr r1, _02233AF0 ; =0x000001C3
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ cmp r0, #2
+ bne _02233AEC
+ bl MOD83_02234B48
+ cmp r0, #0
+ bne _02233ADC
+ bl MOD83_0223335C
+ pop {r3, pc}
+_02233ADC:
+ mov r0, #3
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233AE4:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233AEC:
+ pop {r3, pc}
+ nop
+_02233AF0: .word 0x000001C3
+ thumb_func_end MOD83_02233AA0
+
+ thumb_func_start MOD83_02233AF4
+MOD83_02233AF4: ; 0x02233AF4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #8]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _02233B7A
+ mov r0, #9
+ bl MOD83_02234580
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233B82
+ ldrh r0, [r4, #8]
+ cmp r0, #9
+ bhi _02233B6E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02233B24: ; jump table
+ .short _02233B6E - _02233B24 - 2 ; case 0
+ .short _02233B6E - _02233B24 - 2 ; case 1
+ .short _02233B6E - _02233B24 - 2 ; case 2
+ .short _02233B6E - _02233B24 - 2 ; case 3
+ .short _02233B6E - _02233B24 - 2 ; case 4
+ .short _02233B6E - _02233B24 - 2 ; case 5
+ .short _02233B82 - _02233B24 - 2 ; case 6
+ .short _02233B38 - _02233B24 - 2 ; case 7
+ .short _02233B82 - _02233B24 - 2 ; case 8
+ .short _02233B58 - _02233B24 - 2 ; case 9
+_02233B38:
+ ldrh r0, [r4, #0xa]
+ bl MOD83_0223461C
+ mov r0, #1
+ bl MOD83_02234634
+ mov r0, #0
+ bl MOD83_02234640
+ bl MOD83_02234B80
+ cmp r0, #0
+ bne _02233B82
+ bl MOD83_0223335C
+ pop {r4, pc}
+_02233B58:
+ bl MOD83_02234628
+ cmp r0, #0
+ beq _02233B66
+ mov r0, #1
+ bl MOD83_02234640
+_02233B66:
+ mov r0, #0
+ bl MOD83_02234634
+ pop {r4, pc}
+_02233B6E:
+ ldrh r0, [r4, #2]
+ bl MOD83_02234958
+ bl MOD83_0223335C
+ pop {r4, pc}
+_02233B7A:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233B82:
+ pop {r4, pc}
+ thumb_func_end MOD83_02233AF4
+
+ thumb_func_start MOD83_02233B84
+MOD83_02233B84: ; 0x02233B84
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _02233BBE
+ cmp r0, #2
+ bne _02233BD6
+ bl MOD83_02233438
+ cmp r0, #0
+ beq _02233BB8
+ bl MOD83_022333D8
+ bl MOD83_022349EC
+ cmp r0, #0
+ beq _02233BB8
+ bl MOD83_0223466C
+ mov r1, #1
+ add r0, #0x60
+ strb r1, [r0]
+ mov r0, #3
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233BB8:
+ bl MOD83_0223335C
+ pop {r3, pc}
+_02233BBE:
+ bl MOD83_02233490
+ bl MOD83_02234A70
+ cmp r0, #0
+ bne _02233BD0
+ bl MOD83_0223335C
+ pop {r3, pc}
+_02233BD0:
+ mov r0, #3
+ bl MOD83_02234580
+_02233BD6:
+ pop {r3, pc}
+ thumb_func_end MOD83_02233B84
+
+ thumb_func_start MOD83_02233BD8
+MOD83_02233BD8: ; 0x02233BD8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #4]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _02233C12
+ ldrh r0, [r4]
+ cmp r0, #0xe
+ bne _02233BF6
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233C22
+_02233BF6:
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _02233C0A
+ cmp r0, #2
+ bne _02233C22
+ mov r0, #0xa
+ bl MOD83_02234580
+ pop {r4, pc}
+_02233C0A:
+ mov r0, #0xb
+ bl MOD83_02234580
+ pop {r4, pc}
+_02233C12:
+ cmp r0, #9
+ beq _02233C22
+ cmp r0, #0xd
+ beq _02233C22
+ cmp r0, #0xf
+ beq _02233C22
+ bl MOD83_0223335C
+_02233C22:
+ pop {r4, pc}
+ thumb_func_end MOD83_02233BD8
+
+ thumb_func_start MOD83_02233C24
+MOD83_02233C24: ; 0x02233C24
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD83_02234694
+ add r4, r0, #0
+ ldrb r0, [r4, #0x19]
+ cmp r0, #1
+ bne _02233C9A
+ ldrh r1, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r5, [r4, #0xc]
+ bl DC_FlushRange
+ ldrh r2, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r1, [r4, #0xc]
+ bl MI_CpuCopy8
+ bl MOD83_022346BC
+ ldr r1, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233C9A
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233C9A
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234900
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldrb r0, [r4, #0x1c]
+ cmp r1, r0
+ bne _02233C9A
+ ldr r0, [r4, #0xc]
+ bl MOD83_0223496C
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234934
+ cmp r0, #0
+ beq _02233C96
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ beq _02233C96
+ mov r0, #2
+ strb r0, [r4, #0x19]
+ pop {r4, r5, r6, pc}
+_02233C96:
+ mov r0, #0
+ strb r0, [r4, #0x19]
+_02233C9A:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD83_02233C24
+
+ thumb_func_start MOD83_02233C9C
+MOD83_02233C9C: ; 0x02233C9C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD83_02234694
+ add r4, r0, #0
+ bl MOD83_022345A4
+ cmp r0, #2
+ bne _02233D24
+ ldrb r0, [r4, #0x19]
+ cmp r0, #2
+ beq _02233D24
+ ldrh r1, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r5, [r4, #0xc]
+ bl DC_FlushRange
+ ldrh r2, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r1, [r4, #0xc]
+ bl MI_CpuCopy8
+ bl MOD83_022346BC
+ ldr r1, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233D24
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233D24
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234900
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xfd
+ bne _02233D24
+ bl MOD83_0223466C
+ ldrh r5, [r6, #0x12]
+ mov r2, #0
+ add r3, r0, #0
+_02233CFE:
+ ldrh r1, [r3, #6]
+ cmp r5, r1
+ bne _02233D1C
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r0, r1
+ mov r2, #1
+ strb r2, [r1, #8]
+ mov r0, #3
+ strb r0, [r1, #9]
+ mov r0, #0xb4
+ strb r0, [r4, #0x1a]
+ mov r0, #0
+ strb r0, [r4, #0x19]
+ pop {r4, r5, r6, pc}
+_02233D1C:
+ add r2, r2, #1
+ add r3, #0xc
+ cmp r2, #8
+ blt _02233CFE
+_02233D24:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233C9C
+
+ thumb_func_start MOD83_02233D28
+MOD83_02233D28: ; 0x02233D28
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD83_02234694
+ add r4, r0, #0
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0xfd
+ bne _02233D40
+ add r0, r6, #0
+ bl MOD83_02233C9C
+ pop {r4, r5, r6, pc}
+_02233D40:
+ ldrb r0, [r4, #0x19]
+ cmp r0, #1
+ beq _02233D4C
+ ldrb r0, [r4, #0x19]
+ cmp r0, #3
+ bne _02233DE8
+_02233D4C:
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #0
+ bne _02233DE8
+ ldrh r1, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r5, [r4, #0xc]
+ bl DC_FlushRange
+ ldrh r2, [r6, #0x10]
+ ldr r0, [r6, #0xc]
+ ldr r1, [r4, #0xc]
+ bl MI_CpuCopy8
+ bl MOD83_022346BC
+ ldr r1, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, r0
+ bne _02233DE8
+ bl MOD83_022346CC
+ ldr r1, [r5]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ cmp r1, r0
+ bhi _02233DE8
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234900
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldrb r0, [r4, #0x1c]
+ cmp r1, r0
+ bne _02233DE8
+ ldr r0, [r4, #0xc]
+ bl MOD83_0223496C
+ mov r0, #0
+ strb r0, [r4, #0x19]
+ ldr r0, [r4, #0xc]
+ bl MOD83_02234934
+ cmp r0, #0
+ beq _02233DDA
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #0xfd
+ bne _02233DBA
+ add r0, r6, #0
+ bl MOD83_02233C9C
+ b _02233DCC
+_02233DBA:
+ ldr r2, [r5, #0xc]
+ ldr r1, [r4, #0xc]
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ add r0, r1, r0
+ ldr r1, [r4, #4]
+ lsr r2, r2, #8
+ bl MI_CpuCopy8
+_02233DCC:
+ ldr r1, [r5, #8]
+ ldr r0, _02233DEC ; =0xFFFF00FF
+ and r0, r1
+ str r0, [r5, #8]
+ mov r0, #4
+ strb r0, [r4, #0x1b]
+ pop {r4, r5, r6, pc}
+_02233DDA:
+ ldr r1, [r5, #8]
+ ldr r0, _02233DEC ; =0xFFFF00FF
+ and r1, r0
+ mov r0, #1
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r5, #8]
+_02233DE8:
+ pop {r4, r5, r6, pc}
+ nop
+_02233DEC: .word 0xFFFF00FF
+ thumb_func_end MOD83_02233D28
+
+ thumb_func_start MOD83_02233DF0
+MOD83_02233DF0: ; 0x02233DF0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #4]
+ bl MOD83_0223495C
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ bne _02233E72
+ ldrh r0, [r4, #4]
+ cmp r0, #7
+ beq _02233E3A
+ cmp r0, #9
+ beq _02233E48
+ cmp r0, #0x15
+ bne _02233E72
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _02233E1A
+ cmp r0, #0xb
+ bne _02233E72
+_02233E1A:
+ bl MOD83_02234694
+ ldrb r0, [r0, #0x18]
+ cmp r0, #1
+ beq _02233E2A
+ cmp r0, #2
+ beq _02233E32
+ pop {r4, pc}
+_02233E2A:
+ add r0, r4, #0
+ bl MOD83_02233C24
+ pop {r4, pc}
+_02233E32:
+ add r0, r4, #0
+ bl MOD83_02233D28
+ pop {r4, pc}
+_02233E3A:
+ mov r0, #1
+ bl MOD83_02234634
+ mov r0, #0
+ bl MOD83_02234640
+ pop {r4, pc}
+_02233E48:
+ bl MOD83_02234628
+ cmp r0, #0
+ beq _02233E56
+ mov r0, #1
+ bl MOD83_02234640
+_02233E56:
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _02233E64
+ cmp r0, #0xb
+ beq _02233E6C
+ pop {r4, pc}
+_02233E64:
+ ldrh r0, [r4, #0x12]
+ bl MOD83_022333B0
+ pop {r4, pc}
+_02233E6C:
+ mov r0, #0
+ bl MOD83_02234634
+_02233E72:
+ pop {r4, pc}
+ thumb_func_end MOD83_02233DF0
+
+ thumb_func_start MOD83_02233E74
+MOD83_02233E74: ; 0x02233E74
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233E8A
+ bl MOD83_02233388
+ cmp r0, #0
+ bne _02233E94
+ bl MOD83_02233B84
+ pop {r3, pc}
+_02233E8A:
+ bl MOD83_02234958
+ mov r0, #4
+ bl MOD83_02234580
+_02233E94:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233E74
+
+ thumb_func_start MOD83_02233E98
+MOD83_02233E98: ; 0x02233E98
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233EB0
+ bl MOD83_022349CC
+ cmp r0, #0
+ beq _02233EB8
+ mov r0, #2
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233EB0:
+ bl MOD83_02234958
+ bl MOD83_0223335C
+_02233EB8:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233E98
+
+ thumb_func_start MOD83_02233EBC
+MOD83_02233EBC: ; 0x02233EBC
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233EF2
+ mov r0, #0
+ bl MOD83_0223461C
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _02233EE2
+ bl MOD83_02234C54
+ cmp r0, #0
+ beq _02233EFC
+ mov r0, #3
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233EE2:
+ bl MOD83_02234C14
+ cmp r0, #0
+ beq _02233EFC
+ mov r0, #3
+ bl MOD83_02234580
+ pop {r3, pc}
+_02233EF2:
+ bl MOD83_02234958
+ mov r0, #4
+ bl MOD83_02234580
+_02233EFC:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233EBC
+
+ thumb_func_start MOD83_02233F00
+MOD83_02233F00: ; 0x02233F00
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _02233F16
+ mov r0, #0xc
+ bl MOD83_02234580
+ mov r0, #1
+ bl MOD83_0223464C
+ pop {r3, pc}
+_02233F16:
+ bl MOD83_02234958
+ mov r0, #4
+ bl MOD83_02234580
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233F00
+
+ thumb_func_start MOD83_02233F24
+MOD83_02233F24: ; 0x02233F24
+ push {r3, lr}
+ ldr r0, _02233F40 ; =MOD83_0223350C
+ bl WM_SetIndCallback
+ cmp r0, #0
+ beq _02233F3A
+ mov r0, #4
+ bl MOD83_02234580
+ mov r0, #0
+ pop {r3, pc}
+_02233F3A:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02233F40: .word MOD83_0223350C
+ thumb_func_end MOD83_02233F24
+
+ thumb_func_start MOD83_02233F44
+MOD83_02233F44: ; 0x02233F44
+ push {r3, lr}
+ bl MOD83_02234574
+ cmp r0, #0
+ beq _02233F56
+ cmp r0, #1
+ beq _02233F56
+ cmp r0, #2
+ bne _02233F5A
+_02233F56:
+ bl MOD83_022349B0
+_02233F5A:
+ pop {r3, pc}
+ thumb_func_end MOD83_02233F44
+
+ thumb_func_start MOD83_02233F5C
+MOD83_02233F5C: ; 0x02233F5C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD83_02234564
+ ldrh r0, [r0, #0x34]
+ cmp r4, r0
+ bhi _02233F80
+ add r0, r5, #0
+ add r1, r4, #0
+ bl DC_FlushRange
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD83_02234970
+_02233F80:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02233F5C
+
+ thumb_func_start MOD83_02233F84
+MOD83_02233F84: ; 0x02233F84
+ mov r0, #0x17
+ lsl r0, r0, #6
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02233F84
+
+ thumb_func_start MOD83_02233F8C
+MOD83_02233F8C: ; 0x02233F8C
+ mov r0, #0x17
+ lsl r0, r0, #6
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02233F8C
+
+ thumb_func_start MOD83_02233F94
+MOD83_02233F94: ; 0x02233F94
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r5, r0, #0
+ bl MOD83_02234564
+ bl MOD83_0223456C
+ add r4, r0, #0
+ mov r0, #0x1f
+ add r1, r7, #0
+ and r1, r0
+ beq _02233FB2
+ mov r0, #0x20
+ sub r0, r0, r1
+ add r7, r7, r0
+_02233FB2:
+ mov r1, #0
+ strb r1, [r4]
+ strb r1, [r4, #1]
+ strb r1, [r4, #2]
+ mov r0, #4
+ strb r0, [r4, #3]
+ ldr r0, _022340B8 ; =0x00400131
+ str r0, [r4, #4]
+ mov r0, #0xf
+ strh r1, [r4, #0xc]
+ lsl r0, r0, #8
+ str r7, [r4, #0x34]
+ add r7, r7, r0
+ str r7, [r4, #0x38]
+ bl MOD83_02233F84
+ str r0, [r4, #0x2c]
+ add r7, r7, r0
+ str r7, [r4, #0x3c]
+ bl MOD83_02233F8C
+ add r7, r7, r0
+ str r0, [r4, #0x30]
+ add r0, r7, #0
+ str r7, [r4, #0x28]
+ add r0, #0xc0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x34]
+ mov r1, #2
+ add r7, #0xe0
+ bl WM_Init
+ bl MOD83_02233F24
+ str r0, [r4, #0x10]
+ mov r2, #0
+ str r2, [r4, #0x14]
+ str r2, [r4, #0x18]
+ str r2, [r4, #0x1c]
+ str r2, [r4, #0x20]
+ ldr r0, [r4, #0x40]
+ mov r6, #0xff
+ bic r0, r6
+ add r3, r0, #0
+ mov r1, #0xf
+ orr r3, r1
+ ldr r0, _022340BC ; =0xFFFFF0FF
+ add r1, #0xf1
+ and r0, r3
+ orr r1, r0
+ ldr r0, _022340C0 ; =0xFFFF0FFF
+ and r1, r0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ orr r0, r1
+ str r0, [r4, #0x40]
+ ldr r3, [r5]
+ ldr r1, [r4, #0x44]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ lsl r3, r3, #0x18
+ add r0, r4, #0
+ bic r1, r6
+ lsr r3, r3, #0x18
+ orr r3, r1
+ ldr r1, _022340BC ; =0xFFFFF0FF
+ str r3, [r4, #0x44]
+ and r1, r3
+ ldr r3, [r5]
+ add r0, #0x44
+ lsl r3, r3, #0x14
+ lsr r3, r3, #0x1c
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x14
+ orr r3, r1
+ ldr r1, _022340C0 ; =0xFFFF0FFF
+ str r3, [r4, #0x44]
+ and r1, r3
+ ldr r3, [r5]
+ lsl r3, r3, #0x10
+ lsr r3, r3, #0x1c
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x10
+ orr r1, r3
+ str r1, [r4, #0x44]
+ ldr r1, [r0]
+ ldr r3, [r5]
+ lsl r1, r1, #0x10
+ lsr r3, r3, #0x10
+ lsr r1, r1, #0x10
+ lsl r3, r3, #0x10
+ orr r1, r3
+ str r1, [r0]
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #4]
+ add r3, r4, #0
+ b _0223408C
+_02234074:
+ ldrh r6, [r0]
+ add r5, r3, #0
+ add r5, #0x48
+ strh r6, [r5]
+ add r5, r3, #0
+ ldrh r6, [r1]
+ add r5, #0x60
+ add r3, r3, #2
+ strh r6, [r5]
+ add r2, r2, #1
+ add r0, r0, #2
+ add r1, r1, #2
+_0223408C:
+ cmp r0, #0
+ beq _02234094
+ cmp r2, #0xc
+ blo _02234074
+_02234094:
+ ldr r1, [r4, #0x40]
+ ldr r0, [r4, #0x44]
+ str r1, [r4, #0x78]
+ str r0, [r4, #0x7c]
+ bl MOD83_022346A4
+ bl MOD83_02234694
+ str r7, [r0, #8]
+ ldr r0, [r4, #0x2c]
+ add r7, r7, r0
+ bl MOD83_02234694
+ str r7, [r0, #0xc]
+ bl WM_GetNextTgid
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022340B8: .word 0x00400131
+_022340BC: .word 0xFFFFF0FF
+_022340C0: .word 0xFFFF0FFF
+ thumb_func_end MOD83_02233F94
+
+ thumb_func_start MOD83_022340C4
+MOD83_022340C4: ; 0x022340C4
+ push {r3, r4, r5, lr}
+ bl MOD83_02234694
+ add r4, r0, #0
+ ldrb r0, [r4, #0x19]
+ cmp r0, #1
+ bne _022340E2
+ ldrb r0, [r4, #0x1a]
+ sub r0, r0, #1
+ strb r0, [r4, #0x1a]
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ bne _02234118
+ mov r0, #0
+ strb r0, [r4, #0x19]
+_022340E2:
+ ldrb r0, [r4, #0x19]
+ cmp r0, #0
+ bne _02234118
+ bl MOD83_02234770
+ mov r1, #0x40
+ sub r5, r1, r0
+ ldrb r0, [r4, #0x1c]
+ add r2, r5, #0
+ mov r3, #3
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ bl MOD83_022347D0
+ bl MOD83_02234770
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ ldr r2, _0223411C ; =0x0000FFFF
+ add r1, r5, r1
+ bl MOD83_02233F5C
+ mov r0, #1
+ strb r0, [r4, #0x19]
+ mov r0, #0x3c
+ strb r0, [r4, #0x1a]
+_02234118:
+ pop {r3, r4, r5, pc}
+ nop
+_0223411C: .word 0x0000FFFF
+ thumb_func_end MOD83_022340C4
+
+ thumb_func_start MOD83_02234120
+MOD83_02234120: ; 0x02234120
+ push {r3, r4, r5, r6, r7, lr}
+ bl MOD83_02234694
+ add r4, r0, #0
+ ldrb r0, [r4, #0x19]
+ cmp r0, #0
+ bne _022341D6
+ ldrb r0, [r4, #0x1c]
+ cmp r0, #0xfd
+ bne _02234198
+ bl MOD83_0223466C
+ add r5, r0, #0
+ mov r1, #0
+ add r2, r5, #0
+_0223413E:
+ ldrb r0, [r2, #9]
+ cmp r0, #0
+ beq _0223417E
+ add r6, r1, #0
+ mov r0, #0xc
+ mul r6, r0
+ add r0, r5, r6
+ ldrh r0, [r0, #6]
+ mov r1, #1
+ mov r2, #0
+ lsl r1, r0
+ lsl r0, r1, #0x10
+ lsr r7, r0, #0x10
+ mov r0, #0xfd
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ add r3, r2, #0
+ bl MOD83_022347D0
+ bl MOD83_02234770
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ add r2, r7, #0
+ bl MOD83_02233F5C
+ add r5, #9
+ ldrb r0, [r5, r6]
+ sub r0, r0, #1
+ strb r0, [r5, r6]
+ pop {r3, r4, r5, r6, r7, pc}
+_0223417E:
+ add r1, r1, #1
+ add r2, #0xc
+ cmp r1, #8
+ blt _0223413E
+ ldrb r0, [r4, #0x1a]
+ sub r0, r0, #1
+ strb r0, [r4, #0x1a]
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ bne _022341D6
+ mov r0, #2
+ strb r0, [r4, #0x19]
+ pop {r3, r4, r5, r6, r7, pc}
+_02234198:
+ bl MOD83_02234770
+ bl MOD83_02233F84
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #8]
+ lsl r0, r0, #0x10
+ lsr r3, r0, #0x18
+ bne _022341BA
+ ldrb r0, [r4, #0x1b]
+ cmp r0, #0
+ bne _022341B6
+ mov r0, #2
+ strb r0, [r4, #0x19]
+ pop {r3, r4, r5, r6, r7, pc}
+_022341B6:
+ sub r0, r0, #1
+ strb r0, [r4, #0x1b]
+_022341BA:
+ ldrb r0, [r4, #0x1c]
+ mov r2, #0
+ str r0, [sp]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ bl MOD83_022347D0
+ bl MOD83_02234770
+ add r1, r0, #0
+ ldr r0, [r4, #8]
+ ldr r2, _022341D8 ; =0x0000FFFF
+ bl MOD83_02233F5C
+_022341D6:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022341D8: .word 0x0000FFFF
+ thumb_func_end MOD83_02234120
+
+ thumb_func_start MOD83_022341DC
+MOD83_022341DC: ; 0x022341DC
+ push {r3, lr}
+ bl MOD83_02234694
+ ldrb r0, [r0, #0x18]
+ cmp r0, #1
+ beq _022341EE
+ cmp r0, #2
+ beq _022341F4
+ pop {r3, pc}
+_022341EE:
+ bl MOD83_022340C4
+ pop {r3, pc}
+_022341F4:
+ bl MOD83_02234120
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022341DC
+
+ thumb_func_start MOD83_022341FC
+MOD83_022341FC: ; 0x022341FC
+ push {r4, lr}
+ bl MOD83_02234664
+ add r4, r0, #0
+ bl MOD83_02234574
+ cmp r0, #6
+ beq _02234212
+ cmp r0, #0xb
+ beq _02234222
+ pop {r4, pc}
+_02234212:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldrh r1, [r4, r0]
+ cmp r1, #0
+ beq _02234226
+ sub r1, r1, #1
+ strh r1, [r4, r0]
+ pop {r4, pc}
+_02234222:
+ bl MOD83_022341DC
+_02234226:
+ pop {r4, pc}
+ thumb_func_end MOD83_022341FC
+
+ thumb_func_start MOD83_02234228
+MOD83_02234228: ; 0x02234228
+ push {r3, lr}
+ bl MOD83_02234574
+ cmp r0, #0xa
+ bne _02234236
+ bl MOD83_022341DC
+_02234236:
+ pop {r3, pc}
+ thumb_func_end MOD83_02234228
+
+ thumb_func_start MOD83_02234238
+MOD83_02234238: ; 0x02234238
+ push {r3, lr}
+ bl MOD83_02234574
+ cmp r0, #0xc
+ beq _0223427A
+ bl MOD83_0223458C
+ cmp r0, #0xc
+ bne _02234258
+ bl MOD83_02234574
+ cmp r0, #7
+ bne _0223427A
+ bl MOD83_02234C34
+ pop {r3, pc}
+_02234258:
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _02234266
+ cmp r0, #2
+ beq _0223426C
+ b _02234272
+_02234266:
+ bl MOD83_022341FC
+ pop {r3, pc}
+_0223426C:
+ bl MOD83_02234228
+ pop {r3, pc}
+_02234272:
+ bl MOD83_0223456C
+ bl MOD83_02234574
+_0223427A:
+ pop {r3, pc}
+ thumb_func_end MOD83_02234238
+
+ thumb_func_start MOD83_0223427C
+MOD83_0223427C: ; 0x0223427C
+ push {r3, lr}
+ bl MOD83_02234674
+ mov r0, #1
+ bl MOD83_022345B0
+ bl MOD83_02233F44
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223427C
+
+ thumb_func_start MOD83_02234290
+MOD83_02234290: ; 0x02234290
+ push {r4, lr}
+ bl MOD83_022345A4
+ mov r4, #0
+ cmp r0, #1
+ bne _022342BE
+ bl MOD83_02234664
+ ldr r1, _022342C4 ; =0x000001C3
+ ldrb r1, [r0, r1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ cmp r1, #1
+ bne _022342BE
+ add r2, r4, #0
+_022342AE:
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _022342B6
+ add r4, r4, #1
+_022342B6:
+ add r2, r2, #1
+ add r0, #0x38
+ cmp r2, #8
+ blo _022342AE
+_022342BE:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_022342C4: .word 0x000001C3
+ thumb_func_end MOD83_02234290
+
+ thumb_func_start MOD83_022342C8
+MOD83_022342C8: ; 0x022342C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _022342FA
+ bl MOD83_02234574
+ cmp r0, #7
+ bne _022342FA
+ bl MOD83_02234664
+ ldr r1, _02234300 ; =0x000001C3
+ ldrb r1, [r0, r1]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ cmp r1, #1
+ bne _022342FA
+ mov r1, #0x38
+ mul r1, r4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _022342FA
+ mov r0, #1
+ pop {r4, pc}
+_022342FA:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02234300: .word 0x000001C3
+ thumb_func_end MOD83_022342C8
+
+ thumb_func_start MOD83_02234304
+MOD83_02234304: ; 0x02234304
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _0223434E
+ bl MOD83_02234574
+ cmp r0, #7
+ bne _0223434E
+ bl MOD83_02234664
+ ldr r2, _02234350 ; =0x000001C3
+ ldrb r3, [r0, r2]
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x1c
+ cmp r1, #1
+ bne _0223434E
+ mov r1, #0x38
+ add r5, r4, #0
+ mul r5, r1
+ ldr r5, [r0, r5]
+ cmp r5, #0
+ beq _0223434E
+ mov r5, #0xf
+ lsl r4, r4, #0x18
+ bic r3, r5
+ lsr r5, r4, #0x18
+ mov r4, #0xf
+ and r4, r5
+ orr r3, r4
+ strb r3, [r0, r2]
+ mov r2, #0x78
+ lsl r1, r1, #3
+ strh r2, [r0, r1]
+ bl MOD83_02234A94
+_0223434E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02234350: .word 0x000001C3
+ thumb_func_end MOD83_02234304
+
+ thumb_func_start MOD83_02234354
+MOD83_02234354: ; 0x02234354
+ push {r4, lr}
+ bl MOD83_022345A4
+ mov r4, #0
+ cmp r0, #2
+ bne _02234386
+ bl MOD83_0223466C
+ add r1, r0, #0
+ add r1, #0x60
+ ldrb r1, [r1]
+ cmp r1, #2
+ bne _02234386
+ add r2, r4, #0
+_02234370:
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _0223437E
+ ldrb r1, [r0, #0xa]
+ cmp r1, #0
+ beq _0223437E
+ add r4, r4, #1
+_0223437E:
+ add r2, r2, #1
+ add r0, #0xc
+ cmp r2, #8
+ blo _02234370
+_02234386:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234354
+
+ thumb_func_start MOD83_0223438C
+MOD83_0223438C: ; 0x0223438C
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x20]
+ cmp r0, #0
+ beq _0223439C
+ mov r0, #0
+ pop {r3, pc}
+_0223439C:
+ bl WM_GetLinkLevel
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223438C
+
+ thumb_func_start MOD83_022343A4
+MOD83_022343A4: ; 0x022343A4
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _022343B4
+ cmp r0, #2
+ beq _022343BA
+ b _022343C0
+_022343B4:
+ bl MOD83_02234290
+ pop {r3, pc}
+_022343BA:
+ bl MOD83_02234354
+ pop {r3, pc}
+_022343C0:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_022343A4
+
+ thumb_func_start MOD83_022343C4
+MOD83_022343C4: ; 0x022343C4
+ push {r3, r4, r5, lr}
+ bl MOD83_02234694
+ add r5, r0, #0
+ bl MOD83_022346EC
+ add r4, r0, #0
+ bl MOD83_022345A4
+ cmp r0, #1
+ bne _022343F6
+ mov r0, #1
+ strb r0, [r5, #0x18]
+ mov r1, #0
+ strb r1, [r5, #0x19]
+ add r4, #8
+ str r4, [r5]
+ str r4, [r5, #4]
+ str r1, [r5, #0x10]
+ str r1, [r5, #0x14]
+ mov r0, #0x78
+ strb r0, [r5, #0x1a]
+ strb r1, [r5, #0x1b]
+ mov r0, #0xfd
+ strb r0, [r5, #0x1c]
+_022343F6:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_022343C4
+
+ thumb_func_start MOD83_022343F8
+MOD83_022343F8: ; 0x022343F8
+ push {r4, lr}
+ bl MOD83_02234694
+ add r4, r0, #0
+ bl MOD83_022346EC
+ mov r1, #1
+ strb r1, [r4, #0x18]
+ mov r1, #0
+ strb r1, [r4, #0x19]
+ add r0, #8
+ str r0, [r4]
+ str r0, [r4, #4]
+ mov r0, #0x30
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ mov r0, #0x78
+ strb r0, [r4, #0x1a]
+ strb r1, [r4, #0x1b]
+ mov r0, #0xfe
+ strb r0, [r4, #0x1c]
+ pop {r4, pc}
+ thumb_func_end MOD83_022343F8
+
+ thumb_func_start MOD83_02234424
+MOD83_02234424: ; 0x02234424
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD83_02234694
+ cmp r4, #0xf0
+ bgt _0223444E
+ mov r1, #2
+ strb r1, [r0, #0x18]
+ mov r1, #3
+ strb r1, [r0, #0x19]
+ str r5, [r0]
+ str r5, [r0, #4]
+ str r6, [r0, #0x10]
+ mov r2, #0
+ str r2, [r0, #0x14]
+ mov r1, #0x78
+ strb r1, [r0, #0x1a]
+ strb r2, [r0, #0x1b]
+ strb r4, [r0, #0x1c]
+_0223444E:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD83_02234424
+
+ thumb_func_start MOD83_02234450
+MOD83_02234450: ; 0x02234450
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _0223445E
+ cmp r0, #2
+ bne _02234478
+_0223445E:
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _0223446A
+ cmp r0, #0xb
+ bne _02234478
+_0223446A:
+ bl MOD83_02234694
+ ldrb r0, [r0, #0x19]
+ cmp r0, #2
+ bne _02234478
+ mov r0, #1
+ pop {r3, pc}
+_02234478:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_02234450
+
+ thumb_func_start MOD83_0223447C
+MOD83_0223447C: ; 0x0223447C
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _0223448A
+ cmp r0, #2
+ bne _022344A4
+_0223448A:
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _02234496
+ cmp r0, #0xb
+ bne _022344A4
+_02234496:
+ bl MOD83_02234694
+ ldrb r0, [r0, #0x19]
+ cmp r0, #2
+ bne _022344A4
+ mov r0, #1
+ pop {r3, pc}
+_022344A4:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_0223447C
+
+ thumb_func_start MOD83_022344A8
+MOD83_022344A8: ; 0x022344A8
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #1
+ beq _022344B6
+ cmp r0, #2
+ bne _022344E0
+_022344B6:
+ bl MOD83_02234574
+ cmp r0, #0xa
+ beq _022344C2
+ cmp r0, #0xb
+ bne _022344E0
+_022344C2:
+ bl MOD83_02234694
+ ldrb r1, [r0, #0x19]
+ cmp r1, #0
+ bne _022344E0
+ ldr r1, [r0, #0xc]
+ ldr r1, [r1, #8]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x18
+ bne _022344E0
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #4
+ bhs _022344E0
+ mov r0, #1
+ pop {r3, pc}
+_022344E0:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_022344A8
+
+ thumb_func_start MOD83_022344E4
+MOD83_022344E4: ; 0x022344E4
+ push {r3, lr}
+ bl MOD83_022345A4
+ cmp r0, #2
+ bne _02234510
+ bl MOD83_0223466C
+ mov r2, #0
+_022344F4:
+ ldr r1, [r0]
+ cmp r1, #0
+ beq _02234504
+ ldrb r1, [r0, #0xa]
+ cmp r1, #0
+ beq _02234504
+ mov r0, #1
+ pop {r3, pc}
+_02234504:
+ add r2, r2, #1
+ add r0, #0xc
+ cmp r2, #8
+ blt _022344F4
+ mov r0, #0
+ pop {r3, pc}
+_02234510:
+ bl MOD83_02234628
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022344E4
+
+ thumb_func_start MOD83_02234518
+MOD83_02234518: ; 0x02234518
+ push {r4, lr}
+ mov r0, #0xc
+ bl MOD83_02234598
+ bl MOD83_02234574
+ cmp r0, #0
+ beq _02234532
+ cmp r0, #1
+ beq _02234532
+ cmp r0, #9
+ beq _0223453E
+ pop {r4, pc}
+_02234532:
+ bl WM_Finish
+ mov r0, #1
+ bl MOD83_0223464C
+ pop {r4, pc}
+_0223453E:
+ bl MOD83_02234628
+ cmp r0, #0
+ bne _02234554
+ bl MOD83_0223456C
+ add r4, r0, #0
+ bl MOD83_02234C34
+ mov r0, #1
+ str r0, [r4, #0x1c]
+_02234554:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234518
+
+ thumb_func_start MOD83_02234558
+MOD83_02234558: ; 0x02234558
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x20]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234558
+
+ thumb_func_start MOD83_02234564
+MOD83_02234564: ; 0x02234564
+ ldr r0, _02234568 ; =0x0223B240
+ bx lr
+ .align 2, 0
+_02234568: .word 0x0223B240
+ thumb_func_end MOD83_02234564
+
+ thumb_func_start MOD83_0223456C
+MOD83_0223456C: ; 0x0223456C
+ ldr r0, _02234570 ; =0x0223B8A0
+ bx lr
+ .align 2, 0
+_02234570: .word 0x0223B8A0
+ thumb_func_end MOD83_0223456C
+
+ thumb_func_start MOD83_02234574
+MOD83_02234574: ; 0x02234574
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldrb r0, [r0]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234574
+
+ thumb_func_start MOD83_02234580
+MOD83_02234580: ; 0x02234580
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ strb r4, [r0]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234580
+
+ thumb_func_start MOD83_0223458C
+MOD83_0223458C: ; 0x0223458C
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldrb r0, [r0, #1]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223458C
+
+ thumb_func_start MOD83_02234598
+MOD83_02234598: ; 0x02234598
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ strb r4, [r0, #1]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234598
+
+ thumb_func_start MOD83_022345A4
+MOD83_022345A4: ; 0x022345A4
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldrb r0, [r0, #2]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345A4
+
+ thumb_func_start MOD83_022345B0
+MOD83_022345B0: ; 0x022345B0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ strb r4, [r0, #2]
+ pop {r4, pc}
+ thumb_func_end MOD83_022345B0
+
+ thumb_func_start MOD83_022345BC
+MOD83_022345BC: ; 0x022345BC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldrb r0, [r0, #3]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345BC
+
+ thumb_func_start MOD83_022345C8
+MOD83_022345C8: ; 0x022345C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_02234564
+ strh r4, [r0, #0x32]
+ pop {r4, pc}
+ thumb_func_end MOD83_022345C8
+
+ thumb_func_start MOD83_022345D4
+MOD83_022345D4: ; 0x022345D4
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x24]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345D4
+
+ thumb_func_start MOD83_022345E0
+MOD83_022345E0: ; 0x022345E0
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x2c]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345E0
+
+ thumb_func_start MOD83_022345EC
+MOD83_022345EC: ; 0x022345EC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x30]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345EC
+
+ thumb_func_start MOD83_022345F8
+MOD83_022345F8: ; 0x022345F8
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x38]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022345F8
+
+ thumb_func_start MOD83_02234604
+MOD83_02234604: ; 0x02234604
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x3c]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234604
+
+ thumb_func_start MOD83_02234610
+MOD83_02234610: ; 0x02234610
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x28]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234610
+
+ thumb_func_start MOD83_0223461C
+MOD83_0223461C: ; 0x0223461C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ strh r4, [r0, #0xc]
+ pop {r4, pc}
+ thumb_func_end MOD83_0223461C
+
+ thumb_func_start MOD83_02234628
+MOD83_02234628: ; 0x02234628
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x14]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234628
+
+ thumb_func_start MOD83_02234634
+MOD83_02234634: ; 0x02234634
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ str r4, [r0, #0x14]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234634
+
+ thumb_func_start MOD83_02234640
+MOD83_02234640: ; 0x02234640
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ str r4, [r0, #0x18]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234640
+
+ thumb_func_start MOD83_0223464C
+MOD83_0223464C: ; 0x0223464C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_0223456C
+ str r4, [r0, #0x20]
+ pop {r4, pc}
+ thumb_func_end MOD83_0223464C
+
+ thumb_func_start MOD83_02234658
+MOD83_02234658: ; 0x02234658
+ push {r3, lr}
+ bl MOD83_0223456C
+ add r0, #0x90
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234658
+
+ thumb_func_start MOD83_02234664
+MOD83_02234664: ; 0x02234664
+ ldr r3, _02234668 ; =MOD83_02234658
+ bx r3
+ .align 2, 0
+_02234668: .word MOD83_02234658
+ thumb_func_end MOD83_02234664
+
+ thumb_func_start MOD83_0223466C
+MOD83_0223466C: ; 0x0223466C
+ ldr r3, _02234670 ; =MOD83_02234658
+ bx r3
+ .align 2, 0
+_02234670: .word MOD83_02234658
+ thumb_func_end MOD83_0223466C
+
+ thumb_func_start MOD83_02234674
+MOD83_02234674: ; 0x02234674
+ push {r4, lr}
+ bl MOD83_02234664
+ mov r2, #0x71
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r1, #0x46
+ lsl r1, r1, #2
+ add r0, r1, #0
+ add r0, #0xa8
+ strh r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234674
+
+ thumb_func_start MOD83_02234694
+MOD83_02234694: ; 0x02234694
+ push {r3, lr}
+ bl MOD83_0223456C
+ mov r1, #0x95
+ lsl r1, r1, #2
+ add r0, r0, r1
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234694
+
+ thumb_func_start MOD83_022346A4
+MOD83_022346A4: ; 0x022346A4
+ push {r3, lr}
+ bl MOD83_02234694
+ mov r1, #0
+ strb r1, [r0, #0x18]
+ pop {r3, pc}
+ thumb_func_end MOD83_022346A4
+
+ thumb_func_start MOD83_022346B0
+MOD83_022346B0: ; 0x022346B0
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #4]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346B0
+
+ thumb_func_start MOD83_022346BC
+MOD83_022346BC: ; 0x022346BC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x40]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346BC
+
+ thumb_func_start MOD83_022346CC
+MOD83_022346CC: ; 0x022346CC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x40]
+ lsl r0, r0, #0x14
+ lsr r0, r0, #0x1c
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346CC
+
+ thumb_func_start MOD83_022346DC
+MOD83_022346DC: ; 0x022346DC
+ push {r3, lr}
+ bl MOD83_0223456C
+ ldr r0, [r0, #0x44]
+ lsr r0, r0, #0x10
+ pop {r3, pc}
+ thumb_func_end MOD83_022346DC
+
+ thumb_func_start MOD83_022346E8
+MOD83_022346E8: ; 0x022346E8
+ mov r0, #0x38
+ bx lr
+ thumb_func_end MOD83_022346E8
+
+ thumb_func_start MOD83_022346EC
+MOD83_022346EC: ; 0x022346EC
+ push {r3, lr}
+ bl MOD83_0223456C
+ add r0, #0x40
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346EC
+
+ thumb_func_start MOD83_022346F8
+MOD83_022346F8: ; 0x022346F8
+ push {r3, lr}
+ bl MOD83_0223456C
+ add r0, #0x78
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022346F8
+
+ thumb_func_start MOD83_02234704
+MOD83_02234704: ; 0x02234704
+ push {r3}
+ sub sp, #4
+ mov r2, #0
+ str r2, [sp]
+ add r3, sp, #0
+_0223470E:
+ add r1, r0, r2
+ ldrb r1, [r1, #2]
+ add r2, r2, #1
+ strb r1, [r3]
+ add r3, r3, #1
+ cmp r2, #4
+ blo _0223470E
+ ldr r0, [sp]
+ add sp, #4
+ pop {r3}
+ bx lr
+ thumb_func_end MOD83_02234704
+
+ thumb_func_start MOD83_02234724
+MOD83_02234724: ; 0x02234724
+ push {r3}
+ sub sp, #4
+ mov r2, #0
+ add r1, sp, #0
+ strh r2, [r1]
+ add r3, sp, #0
+_02234730:
+ ldrb r1, [r0, r2]
+ add r2, r2, #1
+ strb r1, [r3]
+ add r3, r3, #1
+ cmp r2, #2
+ blo _02234730
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r0, [r1, r0]
+ add sp, #4
+ pop {r3}
+ bx lr
+ thumb_func_end MOD83_02234724
+
+ thumb_func_start MOD83_02234748
+MOD83_02234748: ; 0x02234748
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r1, _0223476C ; =0x00002710
+ add r6, r0, #0
+ add r4, r2, #0
+ bl _u32_div_f
+ str r1, [r5]
+ ldr r1, _0223476C ; =0x00002710
+ add r0, r6, #0
+ bl _u32_div_f
+ ldr r1, _0223476C ; =0x00002710
+ bl _u32_div_f
+ str r1, [r4]
+ pop {r4, r5, r6, pc}
+ nop
+_0223476C: .word 0x00002710
+ thumb_func_end MOD83_02234748
+
+ thumb_func_start MOD83_02234770
+MOD83_02234770: ; 0x02234770
+ mov r0, #0x10
+ bx lr
+ thumb_func_end MOD83_02234770
+
+ thumb_func_start MOD83_02234774
+MOD83_02234774: ; 0x02234774
+ push {r4, lr}
+ ldr r0, _02234788 ; =0x04000006
+ ldrh r4, [r0]
+ bl OS_GetTick
+ add r1, r0, r4
+ mov r0, #1
+ bic r1, r0
+ add r0, r1, #1
+ pop {r4, pc}
+ .align 2, 0
+_02234788: .word 0x04000006
+ thumb_func_end MOD83_02234774
+
+ thumb_func_start MOD83_0223478C
+MOD83_0223478C: ; 0x0223478C
+ push {r4, r5, r6, r7}
+ add r3, r0, #0
+ mov r0, #0
+ lsr r1, r1, #2
+ beq _022347C2
+ ldr r4, _022347C8 ; =0x00269EC3
+_02234798:
+ ldr r5, _022347CC ; =0x5D588B65
+ ldr r6, _022347CC ; =0x5D588B65
+ mul r5, r3
+ ldr r3, _022347C8 ; =0x00269EC3
+ add r0, r0, #1
+ add r3, r5, r3
+ lsr r5, r3, #0x10
+ mul r6, r3
+ add r3, r6, r4
+ lsl r5, r5, #0x10
+ lsr r7, r3, #0x10
+ lsr r5, r5, #0x10
+ lsl r7, r7, #0x10
+ ldr r6, [r2]
+ lsl r5, r5, #0x10
+ lsr r7, r7, #0x10
+ orr r5, r7
+ eor r5, r6
+ stmia r2!, {r5}
+ cmp r0, r1
+ blo _02234798
+_022347C2:
+ add r0, r3, #0
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_022347C8: .word 0x00269EC3
+_022347CC: .word 0x5D588B65
+ thumb_func_end MOD83_0223478C
+
+ thumb_func_start MOD83_022347D0
+MOD83_022347D0: ; 0x022347D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r6, r2, #0
+ str r3, [sp]
+ bl MOD83_022346EC
+ add r4, r0, #0
+ ldr r0, [r5]
+ mov r1, #0xff
+ bic r0, r1
+ ldr r1, [r4]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ orr r1, r0
+ ldr r0, _022348F4 ; =0xFFFFF0FF
+ str r1, [r5]
+ and r0, r1
+ ldr r1, [r4]
+ lsl r1, r1, #0x14
+ lsr r1, r1, #0x1c
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x14
+ orr r1, r0
+ ldr r0, _022348F8 ; =0xFFFF0FFF
+ str r1, [r5]
+ and r0, r1
+ ldr r1, [r4]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x1c
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x10
+ orr r0, r1
+ str r0, [r5]
+ bl MOD83_02234774
+ ldr r1, [r5]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r0, r0, #0x10
+ lsr r1, r1, #0x10
+ lsl r0, r0, #0x10
+ orr r0, r1
+ str r0, [r5]
+ ldr r2, [r4, #4]
+ ldr r1, [r5, #4]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ mov r0, #0xff
+ lsl r2, r2, #0x18
+ bic r1, r0
+ lsr r2, r2, #0x18
+ orr r2, r1
+ ldr r1, _022348F4 ; =0xFFFFF0FF
+ str r2, [r5, #4]
+ and r1, r2
+ ldr r2, [r4, #4]
+ lsl r2, r2, #0x14
+ lsr r2, r2, #0x1c
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x14
+ orr r2, r1
+ ldr r1, _022348F8 ; =0xFFFF0FFF
+ str r2, [r5, #4]
+ and r1, r2
+ ldr r2, [r4, #4]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1c
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x10
+ orr r1, r2
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ str r1, [r5, #4]
+ ldr r1, [r5, #8]
+ bic r1, r0
+ ldr r0, [sp, #0x18]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ orr r1, r0
+ ldr r0, _022348FC ; =0xFFFF00FF
+ and r0, r1
+ ldr r1, [sp]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x10
+ orr r0, r1
+ str r0, [r5, #8]
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ bl SVC_GetCRC16
+ ldr r1, [r5, #8]
+ lsl r0, r0, #0x10
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ orr r0, r1
+ str r0, [r5, #8]
+ bl MOD83_02234770
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r0, r0, #0x18
+ ldr r1, [r5, #0xc]
+ mov r2, #0xff
+ bic r1, r2
+ lsr r0, r0, #0x18
+ orr r0, r1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ lsl r0, r6, #8
+ orr r0, r1
+ str r0, [r5, #0xc]
+ cmp r6, #0
+ beq _022348CE
+ ldr r1, [r5, #0xc]
+ add r0, r7, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r1, r5, r1
+ add r2, r6, #0
+ bl MI_CpuCopy8
+_022348CE:
+ add r0, r5, #0
+ bl MOD83_0223496C
+ ldr r0, [r4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1c
+ cmp r0, #1
+ bne _022348F2
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r1, r6, r1
+ lsr r0, r0, #0x10
+ sub r1, r1, #4
+ add r2, r5, #4
+ bl MOD83_0223478C
+_022348F2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022348F4: .word 0xFFFFF0FF
+_022348F8: .word 0xFFFF0FFF
+_022348FC: .word 0xFFFF00FF
+ thumb_func_end MOD83_022347D0
+
+ thumb_func_start MOD83_02234900
+MOD83_02234900: ; 0x02234900
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_022346EC
+ ldr r0, [r4]
+ lsl r1, r0, #0x10
+ lsr r1, r1, #0x1c
+ cmp r1, #1
+ bne _02234930
+ lsr r0, r0, #0x10
+ mov r1, #0xc
+ add r2, r4, #4
+ bl MOD83_0223478C
+ ldr r1, [r4, #0xc]
+ add r4, #0x10
+ lsl r2, r1, #0x18
+ lsr r2, r2, #0x18
+ lsr r1, r1, #8
+ add r1, r2, r1
+ sub r1, #0x10
+ add r2, r4, #0
+ bl MOD83_0223478C
+_02234930:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234900
+
+ thumb_func_start MOD83_02234934
+MOD83_02234934: ; 0x02234934
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4, #0xc]
+ mov r0, #0
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ add r1, r4, r1
+ lsr r2, r2, #8
+ bl SVC_GetCRC16
+ ldr r1, [r4, #8]
+ lsr r1, r1, #0x10
+ cmp r1, r0
+ bne _02234954
+ mov r0, #1
+ pop {r4, pc}
+_02234954:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD83_02234934
+
+ thumb_func_start MOD83_02234958
+MOD83_02234958: ; 0x02234958
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02234958
+
+ thumb_func_start MOD83_0223495C
+MOD83_0223495C: ; 0x0223495C
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0223495C
+
+ thumb_func_start MOD83_02234960
+MOD83_02234960: ; 0x02234960
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02234960
+
+ thumb_func_start MOD83_02234964
+MOD83_02234964: ; 0x02234964
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02234964
+
+ thumb_func_start MOD83_02234968
+MOD83_02234968: ; 0x02234968
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02234968
+
+ thumb_func_start MOD83_0223496C
+MOD83_0223496C: ; 0x0223496C
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0223496C
+
+ thumb_func_start MOD83_02234970
+MOD83_02234970: ; 0x02234970
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD83_022345BC
+ lsl r0, r0, #0x10
+ lsl r3, r5, #0x10
+ lsr r0, r0, #0x10
+ str r4, [sp]
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ ldr r0, _022349AC ; =MOD83_02233528
+ mov r1, #0
+ add r2, r6, #0
+ lsr r3, r3, #0x10
+ bl WM_SetMPDataToPortEx
+ cmp r0, #2
+ beq _022349A6
+ bl MOD83_02234958
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_022349A6:
+ mov r0, #1
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022349AC: .word MOD83_02233528
+ thumb_func_end MOD83_02234970
+
+ thumb_func_start MOD83_022349B0
+MOD83_022349B0: ; 0x022349B0
+ push {r3, lr}
+ ldr r0, _022349C8 ; =MOD83_02233540
+ bl WM_Enable
+ cmp r0, #2
+ beq _022349C4
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_022349C4:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_022349C8: .word MOD83_02233540
+ thumb_func_end MOD83_022349B0
+
+ thumb_func_start MOD83_022349CC
+MOD83_022349CC: ; 0x022349CC
+ push {r3, lr}
+ ldr r0, _022349E8 ; =MOD83_02233580
+ bl WM_Disable
+ cmp r0, #2
+ beq _022349E4
+ bl MOD83_02234958
+ bl OS_Terminate
+ mov r0, #0
+ pop {r3, pc}
+_022349E4:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_022349E8: .word MOD83_02233580
+ thumb_func_end MOD83_022349CC
+
+ thumb_func_start MOD83_022349EC
+MOD83_022349EC: ; 0x022349EC
+ push {r3, lr}
+ add r3, r0, #0
+ mov r0, #0x1e
+ str r0, [sp]
+ lsl r3, r3, #0x10
+ ldr r0, _02234A14 ; =MOD83_022335B8
+ mov r1, #3
+ mov r2, #0x11
+ lsr r3, r3, #0x10
+ bl WM_MeasureChannel
+ cmp r0, #2
+ beq _02234A0E
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234A0E:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02234A14: .word MOD83_022335B8
+ thumb_func_end MOD83_022349EC
+
+ thumb_func_start MOD83_02234A18
+MOD83_02234A18: ; 0x02234A18
+ push {r3, r4, r5, lr}
+ bl MOD83_02234564
+ add r5, r0, #0
+ bl MOD83_022346EC
+ add r4, r0, #0
+ bl MOD83_0223466C
+ add r0, #0x64
+ ldrb r0, [r0]
+ strh r0, [r5, #0x32]
+ str r4, [r5]
+ bl MOD83_022346E8
+ strh r0, [r5, #4]
+ ldr r0, _02234A50 ; =MOD83_02233620
+ add r1, r5, #0
+ bl WM_SetParentParameter
+ cmp r0, #2
+ beq _02234A4C
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02234A4C:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02234A50: .word MOD83_02233620
+ thumb_func_end MOD83_02234A18
+
+ thumb_func_start MOD83_02234A54
+MOD83_02234A54: ; 0x02234A54
+ push {r3, lr}
+ ldr r0, _02234A6C ; =MOD83_02233648
+ bl WM_StartParent
+ cmp r0, #2
+ beq _02234A68
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234A68:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234A6C: .word MOD83_02233648
+ thumb_func_end MOD83_02234A54
+
+ thumb_func_start MOD83_02234A70
+MOD83_02234A70: ; 0x02234A70
+ push {r3, lr}
+ bl MOD83_022345D4
+ add r1, r0, #0
+ ldr r0, _02234A90 ; =MOD83_02233914
+ bl WM_StartScan
+ cmp r0, #2
+ beq _02234A8A
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234A8A:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02234A90: .word MOD83_02233914
+ thumb_func_end MOD83_02234A70
+
+ thumb_func_start MOD83_02234A94
+MOD83_02234A94: ; 0x02234A94
+ push {r3, r4, r5, lr}
+ bl MOD83_022345D4
+ add r4, r0, #0
+ bl MOD83_02234664
+ ldr r2, _02234B24 ; =0x000001C3
+ mov r3, #0x38
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ add r1, r0, r5
+ add r1, #0x34
+ ldrb r1, [r1]
+ strb r1, [r4, #8]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ add r1, r0, r5
+ add r1, #0x35
+ ldrb r1, [r1]
+ strb r1, [r4, #9]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ ldrb r1, [r0, r5]
+ strb r1, [r4, #0xa]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #1]
+ strb r1, [r4, #0xb]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r5, r1, #0
+ mul r5, r3
+ add r1, r0, r5
+ ldrb r1, [r1, #2]
+ strb r1, [r4, #0xc]
+ ldrb r1, [r0, r2]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ add r2, r1, #0
+ mul r2, r3
+ add r0, r0, r2
+ ldrb r0, [r0, #3]
+ strb r0, [r4, #0xd]
+ bl MOD83_022345D4
+ add r1, r0, #0
+ ldr r0, _02234B28 ; =MOD83_02233A30
+ bl WM_StartScan
+ cmp r0, #2
+ beq _02234B1E
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02234B1E:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_02234B24: .word 0x000001C3
+_02234B28: .word MOD83_02233A30
+ thumb_func_end MOD83_02234A94
+
+ thumb_func_start MOD83_02234B2C
+MOD83_02234B2C: ; 0x02234B2C
+ push {r3, lr}
+ ldr r0, _02234B44 ; =MOD83_02233AA0
+ bl WM_EndScan
+ cmp r0, #2
+ beq _02234B40
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234B40:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234B44: .word MOD83_02233AA0
+ thumb_func_end MOD83_02234B2C
+
+ thumb_func_start MOD83_02234B48
+MOD83_02234B48: ; 0x02234B48
+ push {r3, r4, lr}
+ sub sp, #4
+ bl MOD83_022346F8
+ add r4, r0, #0
+ bl MOD83_02234610
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _02234B7C ; =MOD83_02233AF4
+ add r2, r4, #0
+ mov r3, #1
+ bl WM_StartConnectEx
+ cmp r0, #2
+ beq _02234B74
+ bl MOD83_02234958
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, pc}
+_02234B74:
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02234B7C: .word MOD83_02233AF4
+ thumb_func_end MOD83_02234B48
+
+ thumb_func_start MOD83_02234B80
+MOD83_02234B80: ; 0x02234B80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r1, _02234BF0 ; =MOD83_02233DF0
+ mov r0, #4
+ mov r2, #0
+ bl WM_SetPortCallback
+ cmp r0, #0
+ beq _02234B9C
+ bl MOD83_02234958
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234B9C:
+ bl MOD83_02234564
+ ldrh r0, [r0, #0x16]
+ cmp r0, #0
+ bne _02234BAA
+ mov r5, #1
+ b _02234BAC
+_02234BAA:
+ mov r5, #0
+_02234BAC:
+ bl MOD83_02234604
+ add r6, r0, #0
+ bl MOD83_022345EC
+ add r4, r0, #0
+ bl MOD83_022345F8
+ add r7, r0, #0
+ bl MOD83_022345E0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ lsl r0, r5, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ lsl r2, r4, #0x10
+ ldr r0, _02234BF4 ; =MOD83_02233BD8
+ add r1, r6, #0
+ lsr r2, r2, #0x10
+ add r3, r7, #0
+ bl WM_StartMP
+ cmp r0, #2
+ beq _02234BEA
+ bl MOD83_02234958
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02234BEA:
+ mov r0, #1
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02234BF0: .word MOD83_02233DF0
+_02234BF4: .word MOD83_02233BD8
+ thumb_func_end MOD83_02234B80
+
+ thumb_func_start MOD83_02234BF8
+MOD83_02234BF8: ; 0x02234BF8
+ push {r3, lr}
+ ldr r0, _02234C10 ; =MOD83_02233E74
+ bl WM_PowerOn
+ cmp r0, #2
+ beq _02234C0C
+ bl MOD83_02234958
+ mov r0, #0
+ pop {r3, pc}
+_02234C0C:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234C10: .word MOD83_02233E74
+ thumb_func_end MOD83_02234BF8
+
+ thumb_func_start MOD83_02234C14
+MOD83_02234C14: ; 0x02234C14
+ push {r3, lr}
+ ldr r0, _02234C30 ; =MOD83_02233E98
+ bl WM_PowerOff
+ cmp r0, #2
+ beq _02234C2C
+ bl MOD83_02234958
+ bl OS_Terminate
+ mov r0, #0
+ pop {r3, pc}
+_02234C2C:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234C30: .word MOD83_02233E98
+ thumb_func_end MOD83_02234C14
+
+ thumb_func_start MOD83_02234C34
+MOD83_02234C34: ; 0x02234C34
+ push {r3, lr}
+ ldr r0, _02234C50 ; =MOD83_02233EBC
+ bl WM_Reset
+ cmp r0, #2
+ beq _02234C4C
+ bl MOD83_02234958
+ bl OS_Terminate
+ mov r0, #0
+ pop {r3, pc}
+_02234C4C:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234C50: .word MOD83_02233EBC
+ thumb_func_end MOD83_02234C34
+
+ thumb_func_start MOD83_02234C54
+MOD83_02234C54: ; 0x02234C54
+ push {r3, lr}
+ ldr r0, _02234C70 ; =MOD83_02233F00
+ bl WM_End
+ cmp r0, #2
+ beq _02234C6C
+ bl MOD83_02234958
+ bl OS_Terminate
+ mov r0, #0
+ pop {r3, pc}
+_02234C6C:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02234C70: .word MOD83_02233F00
+ thumb_func_end MOD83_02234C54
+
+ thumb_func_start MOD83_02234C74
+MOD83_02234C74: ; 0x02234C74
+ cmp r0, #0
+ bgt _02234C7C
+ mov r0, #1
+ bx lr
+_02234C7C:
+ cmp r0, #0xfb
+ bgt _02234C84
+ mov r0, #0
+ bx lr
+_02234C84:
+ ldr r1, _02234C9C ; =0x00000115
+ cmp r0, r1
+ bge _02234C8E
+ mov r0, #1
+ bx lr
+_02234C8E:
+ add r1, #0x86
+ cmp r0, r1
+ ble _02234C98
+ mov r0, #1
+ bx lr
+_02234C98:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02234C9C: .word 0x00000115
+ thumb_func_end MOD83_02234C74
+
+ thumb_func_start MOD83_02234CA0
+MOD83_02234CA0: ; 0x02234CA0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD83_02236E9C
+ cmp r0, #4
+ bhi _02234CE0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02234CB8: ; jump table
+ .short _02234CC2 - _02234CB8 - 2 ; case 0
+ .short _02234CC8 - _02234CB8 - 2 ; case 1
+ .short _02234CCE - _02234CB8 - 2 ; case 2
+ .short _02234CD4 - _02234CB8 - 2 ; case 3
+ .short _02234CDA - _02234CB8 - 2 ; case 4
+_02234CC2:
+ mov r0, #2
+ str r0, [r4]
+ pop {r4, pc}
+_02234CC8:
+ mov r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_02234CCE:
+ mov r0, #5
+ str r0, [r4]
+ pop {r4, pc}
+_02234CD4:
+ mov r0, #4
+ str r0, [r4]
+ pop {r4, pc}
+_02234CDA:
+ mov r0, #3
+ str r0, [r4]
+ pop {r4, pc}
+_02234CE0:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD83_02234CA0
+
+ thumb_func_start MOD83_02234CE8
+MOD83_02234CE8: ; 0x02234CE8
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ ldr r1, _02234E3C ; =0x0000E890
+ add r5, r0, #0
+ add r4, r5, r1
+ ldr r1, [r4]
+ cmp r1, #9
+ bls _02234CFA
+ b _02234E34
+_02234CFA:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02234D06: ; jump table
+ .short _02234D1A - _02234D06 - 2 ; case 0
+ .short _02234D3A - _02234D06 - 2 ; case 1
+ .short _02234D52 - _02234D06 - 2 ; case 2
+ .short _02234D62 - _02234D06 - 2 ; case 3
+ .short _02234D72 - _02234D06 - 2 ; case 4
+ .short _02234D8E - _02234D06 - 2 ; case 5
+ .short _02234DA2 - _02234D06 - 2 ; case 6
+ .short _02234DBE - _02234D06 - 2 ; case 7
+ .short _02234DEA - _02234D06 - 2 ; case 8
+ .short _02234E10 - _02234D06 - 2 ; case 9
+_02234D1A:
+ bl MOD83_02234E6C
+ ldr r0, [r5, #0x10]
+ bl FUN_02022528
+ add r5, r0, #0
+ bl MOD83_02237448
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_0202BF90
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D3A:
+ bl OS_GetTick
+ mov r2, #0x78
+ mov r3, #0
+ bl _ull_mod
+ add r0, r0, #1
+ str r0, [r4, #4]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D52:
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bne _02234E34
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D62:
+ ldr r0, [r5, #0x10]
+ mov r1, #2
+ bl FUN_02022840
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D72:
+ ldr r0, [r5, #0x10]
+ bl FUN_02022854
+ cmp r0, #3
+ bne _02234D82
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234D82:
+ cmp r0, #1
+ bne _02234E34
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234D8E:
+ mov r0, #0
+ add r1, r0, #0
+ add r2, sp, #0
+ mov r3, #0x10
+ bl CTRDG_ReadAgbFlash
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234DA2:
+ bl MOD83_0223736C
+ cmp r0, #0
+ bne _02234DB6
+ mov r0, #1
+ bl FUN_02016454
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234DB6:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234DBE:
+ bl MOD83_022373F4
+ cmp r0, #9
+ beq _02234E34
+ bl MOD83_022373F4
+ cmp r0, #0xb
+ bne _02234DD6
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234DD6:
+ bl MOD83_022373B4
+ cmp r0, #8
+ bne _02234E34
+ mov r0, #1
+ bl FUN_02016454
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234DEA:
+ ldr r0, [r5, #0x10]
+ bl FUN_02022854
+ cmp r0, #3
+ bne _02234DFA
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234DFA:
+ cmp r0, #2
+ bne _02234DEA
+ bl MOD83_022373B4
+ mov r0, #1
+ bl FUN_02016444
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02234E34
+_02234E10:
+ bl MOD83_022373B4
+ cmp r0, #8
+ bne _02234E24
+ mov r0, #1
+ bl FUN_02016454
+ add sp, #0x10
+ mov r0, #0xc
+ pop {r3, r4, r5, pc}
+_02234E24:
+ cmp r0, #0
+ bne _02234E34
+ mov r0, #1
+ bl FUN_02016454
+ add sp, #0x10
+ mov r0, #0xb
+ pop {r3, r4, r5, pc}
+_02234E34:
+ mov r0, #0xa
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02234E3C: .word 0x0000E890
+ thumb_func_end MOD83_02234CE8
+
+ thumb_func_start MOD83_02234E40
+MOD83_02234E40: ; 0x02234E40
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ bl FUN_02022528
+ add r4, r0, #0
+ bl MOD83_02237448
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202BF90
+ mov r0, #4
+ bl FUN_020166A8
+ ldr r0, [r5, #0x10]
+ bl FUN_02022720
+ mov r0, #4
+ bl FUN_020166B8
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_02234E40
+
+ thumb_func_start MOD83_02234E6C
+MOD83_02234E6C: ; 0x02234E6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xf4
+ add r7, r0, #0
+ ldr r0, [r7, #0x10]
+ bl FUN_02022528
+ str r0, [sp]
+ add r0, sp, #8
+ bl FUN_020690E4
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r7, #0
+_02234E86:
+ ldr r0, _02234F04 ; =0x0000E880
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ ldr r0, [r7, r0]
+ ldr r2, [r5, r1]
+ mov r1, #0x96
+ lsl r1, r1, #4
+ add r0, r0, #4
+ mul r1, r2
+ add r0, r0, r1
+ mov r1, #0xf3
+ lsl r1, r1, #2
+ ldr r2, [r5, r1]
+ mov r1, #0x50
+ mul r1, r2
+ add r0, r0, r1
+ add r1, r6, #0
+ bl MOD83_02237F6C
+ ldr r0, [sp]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl FUN_0202BF7C
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #6
+ blt _02234E86
+ mov r5, #0
+ add r0, sp, #4
+ strh r5, [r0]
+ add r4, r7, #0
+ sub r6, r5, #1
+_02234EC8:
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ ldr r2, [r4, r0]
+ add r0, r0, #4
+ ldr r1, [r4, r0]
+ cmp r2, r6
+ beq _02234EF6
+ cmp r1, #0xe
+ beq _02234EF6
+ ldr r0, _02234F04 ; =0x0000E880
+ mov r3, #0x96
+ ldr r0, [r7, r0]
+ lsl r3, r3, #4
+ mul r3, r1
+ add r0, r0, #4
+ mov r1, #0x50
+ mul r1, r2
+ add r0, r0, r3
+ add r0, r0, r1
+ mov r1, #0xb
+ add r2, sp, #4
+ bl MOD83_02237D90
+_02234EF6:
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #6
+ blt _02234EC8
+ add sp, #0xf4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02234F04: .word 0x0000E880
+ thumb_func_end MOD83_02234E6C
+
+ thumb_func_start MOD83_02234F08
+MOD83_02234F08: ; 0x02234F08
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ tst r2, r0
+ beq _02234F26
+ mov r2, #0
+ bl FUN_02002E14
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #3
+ sub r1, r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ pop {r4, pc}
+_02234F26:
+ ldr r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02234F08
+
+ thumb_func_start MOD83_02234F2C
+MOD83_02234F2C: ; 0x02234F2C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r1, #0
+ ldr r6, [r5, #0x44]
+ add r4, r2, #0
+ cmp r6, #0
+ bne _02234F3C
+ mov r6, #0xff
+_02234F3C:
+ ldr r1, [r5]
+ ldr r2, [r1]
+ cmp r2, #0
+ bne _02234F7A
+ ldr r2, [r5, #0xc]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp]
+ ldr r2, [r5, #0x10]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #4]
+ ldr r2, [r5, #0x14]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #8]
+ mov r2, #0xf
+ str r2, [sp, #0xc]
+ ldr r2, [r5, #0x20]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ str r2, [sp, #0x10]
+ ldr r2, [r5, #0x24]
+ ldr r3, [r5, #8]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r0, #0x20]
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+_02234F7A:
+ mov r0, #2
+ tst r0, r4
+ bne _02234F8C
+ ldr r1, [r5, #0x30]
+ ldr r0, [r5]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02019620
+_02234F8C:
+ mov r0, #0
+ ldr r1, [r5, #0x34]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02235004
+ ldr r2, _022350B4 ; =0x00000193
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x4e
+ bl FUN_0200A86C
+ ldr r7, [r5, #0x40]
+ str r0, [sp, #0x14]
+ cmp r7, #0
+ bne _02234FB2
+ mov r0, #0x4e
+ bl FUN_0200AA80
+ add r7, r0, #0
+_02234FB2:
+ ldr r1, [sp, #0x14]
+ ldr r2, [r5, #0x34]
+ add r0, r7, #0
+ mov r3, #0x4e
+ bl FUN_0200A9C4
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD83_02234F08
+ add r3, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r2, [sp, #0x18]
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ ldr r1, [r5, #0x28]
+ bl FUN_0201BDE0
+ str r0, [r5, #0x48]
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x40]
+ cmp r0, #0
+ bne _02234FF8
+ add r0, r7, #0
+ bl FUN_0200AB18
+_02234FF8:
+ ldr r0, [sp, #0x14]
+ bl FUN_0200A8B8
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r5, #0x34]
+_02235004:
+ ldr r0, [r5, #0x38]
+ cmp r0, #0
+ beq _0223504C
+ mov r0, #0x40
+ mov r1, #0x4e
+ bl FUN_020219F4
+ ldr r1, [r5, #0x38]
+ add r7, r0, #0
+ mov r2, #0x40
+ bl FUN_02021E8C
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD83_02234F08
+ add r3, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r2, r7, #0
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ ldr r1, [r5, #0x28]
+ bl FUN_0201BDE0
+ str r0, [r5, #0x48]
+ add r0, r7, #0
+ bl FUN_02021A20
+ mov r0, #0
+ str r0, [r5, #0x38]
+_0223504C:
+ ldr r1, [r5, #0x3c]
+ cmp r1, #0
+ beq _0223507A
+ add r0, r5, #0
+ add r2, r4, #0
+ bl MOD83_02234F08
+ add r3, r0, #0
+ ldr r0, [r5, #0x1c]
+ str r0, [sp]
+ str r6, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ ldr r1, [r5, #0x28]
+ ldr r2, [r5, #0x3c]
+ bl FUN_0201BDE0
+ str r0, [r5, #0x48]
+ mov r0, #0
+ str r0, [r5, #0x3c]
+_0223507A:
+ mov r0, #4
+ tst r0, r4
+ bne _02235086
+ ldr r0, [r5]
+ bl FUN_020191D0
+_02235086:
+ mov r0, #8
+ tst r0, r4
+ beq _022350AE
+ mov r0, #0x10
+ tst r0, r4
+ ldr r0, [r5]
+ beq _022350A2
+ ldr r2, _022350B8 ; =0x000003D2
+ mov r1, #0
+ mov r3, #0xd
+ bl FUN_0200D0BC
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_022350A2:
+ mov r2, #0x3f
+ mov r1, #0
+ lsl r2, r2, #4
+ mov r3, #0xe
+ bl FUN_0200CCA4
+_022350AE:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_022350B4: .word 0x00000193
+_022350B8: .word 0x000003D2
+ thumb_func_end MOD83_02234F2C
+
+ thumb_func_start MOD83_022350BC
+MOD83_022350BC: ; 0x022350BC
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _022350E8 ; =0x0223A50C
+ 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, #0x4e
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_022350E8: .word 0x0223A50C
+ thumb_func_end MOD83_022350BC
+
+ thumb_func_start MOD83_022350EC
+MOD83_022350EC: ; 0x022350EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7e
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x4e
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r6, #0
+ mov r0, #0x50
+ add r1, #0x2c
+ mov r2, #0x4e
+ bl FUN_02008C9C
+ str r0, [r6, #0x28]
+ add r0, r6, #0
+ mov r2, #1
+ add r0, #0x2c
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0x55
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02235132:
+ mov r0, #3
+ add r1, r4, #0
+ mov r2, #0x4e
+ bl FUN_02008DEC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02235132
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x4e
+ str r0, [sp, #8]
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0x74
+ mov r2, #0x1a
+ bl FUN_02008F34
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0x4e
+ sub r1, #0x14
+ str r0, [sp, #0xc]
+ ldr r0, [r6, r1]
+ mov r1, #0x74
+ mov r2, #0x17
+ bl FUN_02008FEC
+ mov r1, #0x17
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ sub r1, #0x14
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x74
+ mov r2, #0x19
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ sub r1, #0x14
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x74
+ mov r2, #0x18
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ sub r1, #0xc
+ ldr r0, [r6, r1]
+ bl FUN_02009A50
+ mov r0, #0x17
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009CF0
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0
+ mov r2, #1
+ str r0, [sp]
+ mov r0, #0x4e
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x13
+ add r3, #0xff
+ bl FUN_02006930
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022350EC
+
+ thumb_func_start MOD83_022351F8
+MOD83_022351F8: ; 0x022351F8
+ push {lr}
+ sub sp, #0x2c
+ mov r1, #0
+ str r1, [sp]
+ sub r2, r1, #1
+ str r2, [sp, #4]
+ str r2, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r3, #0x55
+ str r1, [sp, #0x10]
+ lsl r3, r3, #2
+ ldr r2, [r0, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r0, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r0, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r0, r2]
+ add r3, #0x30
+ str r2, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r0, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x2c
+ pop {pc}
+ thumb_func_end MOD83_022351F8
+
+ thumb_func_start MOD83_02235244
+MOD83_02235244: ; 0x02235244
+ ldr r2, [r1, #0x28]
+ str r2, [r0]
+ mov r2, #0x61
+ lsl r2, r2, #2
+ add r1, r1, r2
+ str r1, [r0, #4]
+ mov r2, #0
+ mov r1, #1
+ str r2, [r0, #0x10]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ strh r2, [r0, #0x20]
+ mov r1, #0x14
+ str r1, [r0, #0x24]
+ str r3, [r0, #0x28]
+ mov r1, #0x4e
+ str r1, [r0, #0x2c]
+ bx lr
+ thumb_func_end MOD83_02235244
+
+ thumb_func_start MOD83_0223526C
+MOD83_0223526C: ; 0x0223526C
+ ldr r3, _02235288 ; =0x0000E880
+ ldr r0, [r0, r3]
+ add r3, r0, #4
+ mov r0, #0x96
+ lsl r0, r0, #4
+ mul r0, r1
+ add r1, r3, r0
+ mov r0, #0x50
+ mul r0, r2
+ add r0, r1, r0
+ ldr r3, _0223528C ; =MOD83_02237A10
+ mov r1, #0xb
+ mov r2, #0
+ bx r3
+ .align 2, 0
+_02235288: .word 0x0000E880
+_0223528C: .word MOD83_02237A10
+ thumb_func_end MOD83_0223526C
+
+ thumb_func_start MOD83_02235290
+MOD83_02235290: ; 0x02235290
+ ldr r3, _022352AC ; =0x0000E880
+ ldr r0, [r0, r3]
+ add r3, r0, #4
+ mov r0, #0x96
+ lsl r0, r0, #4
+ mul r0, r1
+ add r1, r3, r0
+ mov r0, #0x50
+ mul r0, r2
+ add r0, r1, r0
+ ldr r3, _022352B0 ; =MOD83_02237A10
+ mov r1, #0x2d
+ mov r2, #0
+ bx r3
+ .align 2, 0
+_022352AC: .word 0x0000E880
+_022352B0: .word MOD83_02237A10
+ thumb_func_end MOD83_02235290
+
+ thumb_func_start MOD83_022352B4
+MOD83_022352B4: ; 0x022352B4
+ ldr r3, _022352D0 ; =0x0000E880
+ ldr r0, [r0, r3]
+ add r3, r0, #4
+ mov r0, #0x96
+ lsl r0, r0, #4
+ mul r0, r1
+ add r1, r3, r0
+ mov r0, #0x50
+ mul r0, r2
+ add r0, r1, r0
+ mov r1, #0
+ ldr r3, _022352D4 ; =MOD83_02237A10
+ add r2, r1, #0
+ bx r3
+ .align 2, 0
+_022352D0: .word 0x0000E880
+_022352D4: .word MOD83_02237A10
+ thumb_func_end MOD83_022352B4
+
+ thumb_func_start MOD83_022352D8
+MOD83_022352D8: ; 0x022352D8
+ push {r4, r5}
+ ldr r5, [sp, #8]
+ lsr r4, r5, #0x1f
+ add r4, r5, r4
+ asr r4, r4, #1
+ sub r5, r2, r4
+ strb r5, [r0]
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ asr r5, r5, #1
+ sub r3, r1, r5
+ strb r3, [r0, #2]
+ add r2, r2, r4
+ strb r2, [r0, #1]
+ add r1, r1, r5
+ strb r1, [r0, #3]
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD83_022352D8
+
+ thumb_func_start MOD83_022352FC
+MOD83_022352FC: ; 0x022352FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r1, #1
+ add r5, r0, #0
+ add r0, r3, #0
+ lsl r1, r1, #0xc
+ add r7, r2, #0
+ bl FUN_020169D8
+ add r4, r0, #0
+ beq _02235330
+ add r1, r5, #0
+ add r2, r6, #0
+ bl LoadFromNARC
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_020B0030
+ cmp r0, #0
+ bne _02235330
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02235330:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022352FC
+
+ thumb_func_start MOD83_02235334
+MOD83_02235334: ; 0x02235334
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ add r0, r3, #0
+ add r1, r6, #0
+ bl FUN_02006774
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_020B0030
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02235334
+
+ thumb_func_start MOD83_02235350
+MOD83_02235350: ; 0x02235350
+ push {r4, lr}
+ add r3, r1, #0
+ mov r4, #0
+ cmp r0, #0xc9
+ beq _02235362
+ ldr r1, _022353BC ; =0x00000182
+ cmp r0, r1
+ beq _0223538C
+ b _022353B6
+_02235362:
+ mov r4, #3
+ lsl r0, r4, #8
+ add r2, r3, #0
+ and r0, r3
+ lsr r1, r0, #6
+ lsl r0, r4, #0x18
+ and r2, r4
+ and r0, r3
+ lsl r4, r4, #0x10
+ and r3, r4
+ lsr r0, r0, #0x12
+ lsr r3, r3, #0xc
+ orr r0, r3
+ orr r0, r1
+ orr r0, r2
+ mov r1, #0x1c
+ bl _u32_div_f
+ lsl r0, r1, #0x18
+ lsr r4, r0, #0x18
+ b _022353B6
+_0223538C:
+ cmp r2, #5
+ bhi _022353A8
+ add r0, r2, r2
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223539C: ; jump table
+ .short _022353A8 - _0223539C - 2 ; case 0
+ .short _022353A8 - _0223539C - 2 ; case 1
+ .short _022353A8 - _0223539C - 2 ; case 2
+ .short _022353B4 - _0223539C - 2 ; case 3
+ .short _022353AC - _0223539C - 2 ; case 4
+ .short _022353B0 - _0223539C - 2 ; case 5
+_022353A8:
+ mov r4, #0
+ b _022353B6
+_022353AC:
+ mov r4, #1
+ b _022353B6
+_022353B0:
+ mov r4, #2
+ b _022353B6
+_022353B4:
+ mov r4, #3
+_022353B6:
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_022353BC: .word 0x00000182
+ thumb_func_end MOD83_02235350
+
+ thumb_func_start MOD83_022353C0
+MOD83_022353C0: ; 0x022353C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r2, #0
+ add r7, r3, #0
+ add r5, r1, #0
+ bl MOD83_02237EBC
+ add r1, r6, #0
+ add r2, r7, #0
+ add r4, r0, #0
+ bl MOD83_02235350
+ add r7, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r7, #0
+ bl FUN_0206B6D4
+ add r1, r0, #0
+ mov r0, #0x13
+ add r2, sp, #0
+ mov r3, #0x4e
+ bl MOD83_022352FC
+ add r6, r0, #0
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r1, [sp, #0x18]
+ ldr r0, [sp]
+ lsl r1, r1, #4
+ add r1, #0x64
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #5
+ lsl r2, r2, #8
+ bl GX_LoadOBJ
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [sp, #0x1c]
+ add r1, #8
+ bl FUN_02020248
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022353C0
+
+ thumb_func_start MOD83_0223542C
+MOD83_0223542C: ; 0x0223542C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r1, #0
+ ldr r1, _022354A8 ; =0x0223BB14
+ str r2, [sp]
+ ldr r2, [r1]
+ mov r1, #0x83
+ add r5, r3, #0
+ lsl r1, r1, #2
+ mul r1, r5
+ add r4, r2, r1
+ ldr r1, [sp, #0x20]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _022354A0
+ bl MOD83_02234C74
+ cmp r0, #0
+ bne _0223545C
+ add r0, r6, #0
+ bl MOD83_02237EBC
+ add r6, r0, #0
+ b _0223545E
+_0223545C:
+ mov r6, #0
+_0223545E:
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0206B6D4
+ ldr r2, [sp, #0x24]
+ ldr r3, [sp, #0x28]
+ add r1, sp, #4
+ bl MOD83_02235334
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ add r1, #0xc
+ lsl r2, r2, #8
+ bl MIi_CpuCopyFast
+ lsl r0, r5, #4
+ add r0, #0x64
+ lsl r0, r0, #5
+ str r0, [r4]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp]
+ str r0, [r4, #8]
+ add r0, r6, #0
+ add r2, r7, #0
+ bl FUN_0206B7BC
+ add r0, #8
+ add sp, #8
+ str r0, [r4, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_022354A0:
+ mov r0, #0
+ str r0, [r4, #8]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022354A8: .word 0x0223BB14
+ thumb_func_end MOD83_0223542C
+
+ thumb_func_start MOD83_022354AC
+MOD83_022354AC: ; 0x022354AC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _022354EC ; =0x0223BB14
+ mov r6, #2
+ lsl r6, r6, #8
+ add r7, r6, #0
+ ldr r5, [r0]
+ mov r4, #0
+ add r7, #0xc
+_022354BC:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _022354E0
+ add r0, r5, #0
+ add r0, #0xc
+ add r1, r6, #0
+ bl DC_FlushRange
+ add r0, r5, #0
+ ldr r1, [r5]
+ add r0, #0xc
+ add r2, r6, #0
+ bl GX_LoadOBJ
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #4]
+ bl FUN_02020248
+_022354E0:
+ add r4, r4, #1
+ add r5, r5, r7
+ cmp r4, #0x1e
+ blt _022354BC
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022354EC: .word 0x0223BB14
+ thumb_func_end MOD83_022354AC
+
+ thumb_func_start MOD83_022354F0
+MOD83_022354F0: ; 0x022354F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ mov r0, #0x13
+ mov r1, #0x4e
+ bl FUN_02006670
+ mov r1, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x4e
+ lsl r1, r1, #0xc
+ bl FUN_020169D8
+ mov r6, #0
+ str r0, [sp, #0x10]
+ add r7, r6, #0
+ add r4, r5, #0
+_02235512:
+ ldr r0, _02235634 ; =0x0000E880
+ ldr r1, _02235638 ; =0x0000E884
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r1]
+ mov r1, #0x96
+ lsl r1, r1, #4
+ mul r1, r2
+ add r0, r0, #4
+ add r0, r0, r1
+ add r0, r0, r7
+ mov r1, #5
+ mov r2, #0
+ bl MOD83_02237A10
+ cmp r0, #0
+ beq _022355D2
+ ldr r1, _02235638 ; =0x0000E884
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl MOD83_0223526C
+ ldr r1, _02235638 ; =0x0000E884
+ str r0, [sp, #0x1c]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD83_02235290
+ ldr r1, _02235638 ; =0x0000E884
+ str r0, [sp, #0x18]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ add r2, r6, #0
+ bl MOD83_022352B4
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ bl MOD83_02237EBC
+ ldr r2, _0223563C ; =0x021C4918
+ ldr r1, [sp, #0x20]
+ ldrb r2, [r2, #6]
+ bl MOD83_02235350
+ str r0, [sp, #0x14]
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x18]
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ add r3, r6, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ bl MOD83_0223542C
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _02235634 ; =0x0000E880
+ ldr r1, _02235638 ; =0x0000E884
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r1]
+ mov r1, #0x96
+ lsl r1, r1, #4
+ mul r1, r2
+ add r0, r0, #4
+ add r0, r0, r1
+ add r0, r0, r7
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD83_02237A10
+ cmp r0, #0
+ beq _022355C4
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _02235602
+_022355C4:
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _02235602
+_022355D2:
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0x14]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x1c]
+ add r3, r6, #0
+ bl MOD83_0223542C
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02235602:
+ add r6, r6, #1
+ add r7, #0x50
+ add r4, #0xc
+ cmp r6, #0x1e
+ blt _02235512
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ ldr r0, [sp, #0xc]
+ bl FUN_020066F4
+ ldr r1, _02235640 ; =MOD83_022354AC
+ ldr r0, _02235644 ; =0x00012604
+ str r1, [r5, r0]
+ ldr r1, _02235638 ; =0x0000E884
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ bl MOD83_02235B6C
+ add r0, r5, #0
+ bl MOD83_02235B20
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02235634: .word 0x0000E880
+_02235638: .word 0x0000E884
+_0223563C: .word 0x021C4918
+_02235640: .word MOD83_022354AC
+_02235644: .word 0x00012604
+ thumb_func_end MOD83_022354F0
+
+ thumb_func_start MOD83_02235648
+MOD83_02235648: ; 0x02235648
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ mov r2, #0x61
+ add r5, r0, #0
+ lsl r2, r2, #2
+ add r0, sp, #0x14
+ add r1, r5, #0
+ add r2, r5, r2
+ mov r3, #1
+ bl MOD83_02235244
+ mov r0, #0x28
+ str r0, [sp, #8]
+ mov r0, #0x31
+ mov r4, #0
+ lsl r0, r0, #4
+ str r4, [sp, #0xc]
+ add r7, r5, r0
+_0223566C:
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ mov r6, #0x1c
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+_02235678:
+ mov r0, #0x1c
+ str r0, [sp]
+ ldr r2, [sp, #8]
+ add r0, r7, #0
+ add r1, r6, #0
+ mov r3, #0x1c
+ bl MOD83_022352D8
+ lsl r0, r6, #0xc
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #4]
+ str r0, [sp, #0x20]
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _022356A6
+ add r0, sp, #0x14
+ bl FUN_0201FE94
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+_022356A6:
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ add r1, #0xa
+ bl FUN_02020130
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020238
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ add r1, #0x64
+ bl FUN_02020310
+ mov r0, #6
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ mov r0, #3
+ ldr r1, [sp, #0x20]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x20]
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _02235710
+ add r0, sp, #0x14
+ bl FUN_0201FE94
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+_02235710:
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x28
+ bl FUN_02020130
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020238
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02020310
+ add r4, r4, #1
+ add r7, r7, #4
+ add r5, #0xc
+ cmp r4, #0x1e
+ beq _02235774
+ ldr r0, [sp, #0x10]
+ add r6, #0x28
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #6
+ blt _02235678
+ ldr r0, [sp, #8]
+ add r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #5
+ bge _02235774
+ b _0223566C
+_02235774:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_02235648
+
+ thumb_func_start MOD83_02235778
+MOD83_02235778: ; 0x02235778
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r4, r2, #0
+ mov r2, #0x61
+ add r6, r0, #0
+ lsl r2, r2, #2
+ add r5, r1, #0
+ add r7, r3, #0
+ add r0, sp, #0
+ add r1, r6, #0
+ add r2, r6, r2
+ mov r3, #1
+ bl MOD83_02235244
+ lsl r0, r5, #0xc
+ str r0, [sp, #8]
+ lsl r0, r4, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x24]
+ add r0, sp, #0
+ bl FUN_0201FE94
+ add r4, r0, #0
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_02020130
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02020238
+ ldr r1, [sp, #0x48]
+ add r0, r4, #0
+ bl FUN_020200A0
+ add r0, r4, #0
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_02235778
+
+ thumb_func_start MOD83_022357CC
+MOD83_022357CC: ; 0x022357CC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r6, r0
+ mov r1, #0xe4
+ mov r2, #0xb0
+ mov r3, #0x32
+ bl MOD83_022352D8
+ mov r0, #1
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #0xe4
+ mov r2, #0xb0
+ mov r3, #6
+ bl MOD83_02235778
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ sub r1, #8
+ add r0, r6, r1
+ mov r1, #0xb0
+ mov r3, #0x20
+ add r2, r1, #0
+ str r3, [sp]
+ bl MOD83_022352D8
+ mov r0, #1
+ mov r1, #0xb0
+ str r0, [sp]
+ add r0, r6, #0
+ add r2, r1, #0
+ mov r3, #3
+ bl MOD83_02235778
+ mov r1, #0xea
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ sub r1, #0x1c
+ mov r3, #0x20
+ add r0, r6, r1
+ mov r1, #0x18
+ mov r2, #0xb0
+ str r3, [sp]
+ bl MOD83_022352D8
+ mov r0, #1
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #0x18
+ mov r2, #0xb0
+ mov r3, #0
+ bl MOD83_02235778
+ mov r1, #0xee
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r7, #0
+ mov r0, #0xff
+ sub r1, #0x24
+ strb r0, [r6, r1]
+ add r4, r7, #0
+ add r5, r6, #0
+_02235852:
+ mov r0, #0
+ str r0, [sp]
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #0x40
+ mov r3, #9
+ bl MOD83_02235778
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r1, #0
+ mov r0, #0xf3
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0xe
+ add r0, r0, #4
+ str r1, [r5, r0]
+ add r7, r7, #1
+ add r4, #0x24
+ add r5, #0xc
+ cmp r7, #6
+ blt _02235852
+ mov r0, #0x41
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022357CC
+
+ thumb_func_start MOD83_0223588C
+MOD83_0223588C: ; 0x0223588C
+ push {r3, lr}
+ ldr r3, _022358C0 ; =0x0000E880
+ ldr r2, [r0, r3]
+ add r3, r3, #4
+ ldr r3, [r0, r3]
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r2, r2, #4
+ mul r0, r3
+ add r2, r2, r0
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r2, r0
+ mov r1, #0x41
+ mov r2, #0
+ bl MOD83_02237A10
+ mov r1, #0x67
+ lsl r1, r1, #2
+ cmp r0, r1
+ bne _022358BA
+ mov r0, #1
+ pop {r3, pc}
+_022358BA:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_022358C0: .word 0x0000E880
+ thumb_func_end MOD83_0223588C
+
+ thumb_func_start MOD83_022358C4
+MOD83_022358C4: ; 0x022358C4
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r3, _02235910 ; =0x0000E880
+ mov r5, #0
+ ldr r2, [r0, r3]
+ add r3, r3, #4
+ ldr r3, [r0, r3]
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r2, r2, #4
+ mul r0, r3
+ add r4, r2, r0
+ mov r0, #0x50
+ add r6, r1, #0
+ mul r6, r0
+ add r7, r5, #0
+_022358E2:
+ add r1, r5, #0
+ add r0, r4, r6
+ add r1, #0xd
+ add r2, r7, #0
+ bl MOD83_02237A10
+ ldr r3, _02235914 ; =0x0223B2B8
+ add r2, r0, #0
+ mov r1, #0
+_022358F4:
+ ldr r0, [r3]
+ cmp r2, r0
+ bne _022358FE
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022358FE:
+ add r1, r1, #1
+ add r3, r3, #4
+ cmp r1, #8
+ blo _022358F4
+ add r5, r5, #1
+ cmp r5, #4
+ blt _022358E2
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235910: .word 0x0000E880
+_02235914: .word 0x0223B2B8
+ thumb_func_end MOD83_022358C4
+
+ thumb_func_start MOD83_02235918
+MOD83_02235918: ; 0x02235918
+ push {r3, lr}
+ ldr r3, _0223595C ; =0x0000E880
+ ldr r2, [r0, r3]
+ add r3, r3, #4
+ ldr r3, [r0, r3]
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r2, r2, #4
+ mul r0, r3
+ add r2, r2, r0
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r2, r0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD83_02237A10
+ ldr r1, _02235960 ; =0x0223B2C8
+ ldrh r1, [r1, #0x30]
+ cmp r1, #0
+ beq _02235956
+ ldr r2, _02235964 ; =0x0223B2F8
+_02235944:
+ ldrh r1, [r2]
+ cmp r0, r1
+ bne _0223594E
+ mov r0, #1
+ pop {r3, pc}
+_0223594E:
+ add r2, r2, #2
+ ldrh r1, [r2]
+ cmp r1, #0
+ bne _02235944
+_02235956:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_0223595C: .word 0x0000E880
+_02235960: .word 0x0223B2C8
+_02235964: .word 0x0223B2F8
+ thumb_func_end MOD83_02235918
+
+ thumb_func_start MOD83_02235968
+MOD83_02235968: ; 0x02235968
+ push {r3, lr}
+ ldr r3, _02235990 ; =0x0000E880
+ ldr r2, [r0, r3]
+ add r3, r3, #4
+ ldr r3, [r0, r3]
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r2, r2, #4
+ mul r0, r3
+ add r2, r2, r0
+ mov r0, #0x50
+ mul r0, r1
+ add r0, r2, r0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD83_02237A10
+ bl MOD83_02234C74
+ pop {r3, pc}
+ .align 2, 0
+_02235990: .word 0x0000E880
+ thumb_func_end MOD83_02235968
+
+ thumb_func_start MOD83_02235994
+MOD83_02235994: ; 0x02235994
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r0, [sp]
+ add r6, r1, #0
+ mov r0, #0xc
+ mul r0, r6
+ ldr r1, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _022359C0
+ bl FUN_02020128
+ cmp r0, #0
+ bne _022359C0
+ add sp, #0x14
+ mov r0, #3
+ pop {r4, r5, r6, r7, pc}
+_022359C0:
+ mov r5, #0
+ mov r7, #0x3d
+ mvn r5, r5
+ mov r2, #0
+ add r3, r4, #0
+ lsl r7, r7, #4
+ b _022359E8
+_022359CE:
+ ldr r0, _02235B1C ; =0x0000E884
+ ldr r1, [r4, r0]
+ ldr r0, [r3, r7]
+ cmp r1, r0
+ bne _022359E4
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ ldr r0, [r3, r0]
+ cmp r6, r0
+ bne _022359E4
+ add r5, r2, #0
+_022359E4:
+ add r3, #0xc
+ add r2, r2, #1
+_022359E8:
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _022359F4
+ cmp r2, #6
+ blt _022359CE
+_022359F4:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_0223588C
+ cmp r0, #1
+ bne _02235A06
+ add sp, #0x14
+ mov r0, #4
+ pop {r4, r5, r6, r7, pc}
+_02235A06:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_022358C4
+ cmp r0, #1
+ bne _02235A18
+ add sp, #0x14
+ mov r0, #5
+ pop {r4, r5, r6, r7, pc}
+_02235A18:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_02235918
+ cmp r0, #1
+ bne _02235A2A
+ add sp, #0x14
+ mov r0, #6
+ pop {r4, r5, r6, r7, pc}
+_02235A2A:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_02235968
+ cmp r0, #1
+ bne _02235A3C
+ add sp, #0x14
+ mov r0, #7
+ pop {r4, r5, r6, r7, pc}
+_02235A3C:
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ bne _02235AE4
+ mov r0, #0x41
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #6
+ bne _02235A54
+ add sp, #0x14
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02235A54:
+ mov r5, #0
+ mov r0, #0xf3
+ add r3, r4, #0
+ lsl r0, r0, #2
+ sub r1, r5, #1
+_02235A5E:
+ ldr r2, [r3, r0]
+ cmp r2, r1
+ bne _02235ADA
+ ldr r1, [sp]
+ ldr r0, [sp, #4]
+ ldr r0, [r1, r0]
+ bl FUN_0202011C
+ add r1, r0, #0
+ mov r0, #0xc
+ add r7, r5, #0
+ mul r7, r0
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ add r5, r4, r0
+ ldr r0, [r5, r7]
+ bl FUN_02020044
+ ldr r0, [r5, r7]
+ bl FUN_0202011C
+ add r3, r0, #0
+ add r2, sp, #8
+ ldmia r3!, {r0, r1}
+ mov ip, r2
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #2
+ str r0, [r2]
+ ldr r0, [sp, #8]
+ lsl r1, r1, #0xe
+ sub r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ lsr r1, r1, #1
+ sub r0, r0, r1
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r7]
+ mov r1, ip
+ bl FUN_02020044
+ ldr r0, [r5, r7]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r1, #0xf3
+ add r3, r4, r7
+ lsl r1, r1, #2
+ ldr r0, _02235B1C ; =0x0000E884
+ str r6, [r3, r1]
+ ldr r2, [r4, r0]
+ add r0, r1, #4
+ str r2, [r3, r0]
+ add r0, r1, #0
+ add r0, #0x44
+ ldr r0, [r4, r0]
+ add r1, #0x44
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02235ADA:
+ add r5, r5, #1
+ add r3, #0xc
+ cmp r5, #6
+ blt _02235A5E
+ b _02235B16
+_02235AE4:
+ mov r0, #0xc
+ add r6, r5, #0
+ mul r6, r0
+ mov r0, #0xf2
+ add r1, r4, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r2, #0
+ mov r1, #0xf3
+ mvn r2, r2
+ add r0, r4, r6
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ add r0, r1, #0
+ add r0, #0x44
+ ldr r0, [r4, r0]
+ add r1, #0x44
+ sub r0, r0, #1
+ str r0, [r4, r1]
+ add sp, #0x14
+ mov r0, #2
+ pop {r4, r5, r6, r7, pc}
+_02235B16:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235B1C: .word 0x0000E884
+ thumb_func_end MOD83_02235994
+
+ thumb_func_start MOD83_02235B20
+MOD83_02235B20: ; 0x02235B20
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+ sub r7, r4, #1
+_02235B2A:
+ mov r0, #0xf3
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, r7
+ beq _02235B50
+ ldr r0, _02235B68 ; =0x0000E884
+ ldr r1, [r6, r0]
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r1, r0
+ bne _02235B50
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _02235B5C
+_02235B50:
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02235B5C:
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #6
+ blt _02235B2A
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02235B68: .word 0x0000E884
+ thumb_func_end MOD83_02235B20
+
+ thumb_func_start MOD83_02235B6C
+MOD83_02235B6C: ; 0x02235B6C
+ push {r3, r4, r5, lr}
+ sub sp, #0x60
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ add r3, sp, #0x14
+ add r1, r0, #0
+ mov r2, #4
+_02235B7C:
+ stmia r3!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02235B7C
+ stmia r3!, {r0, r1}
+ str r0, [r3]
+ ldr r0, _02235BE4 ; =0x00000478
+ add r0, r5, r0
+ str r0, [sp, #0x14]
+ mov r0, #6
+ str r0, [sp, #0x1c]
+ mov r0, #0x15
+ str r0, [sp, #0x20]
+ mov r0, #0xd
+ str r0, [sp, #0x24]
+ mov r0, #2
+ str r0, [sp, #0x28]
+ sub r0, r0, #3
+ str r0, [sp, #0x48]
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ mov r0, #1
+ str r0, [sp, #0x38]
+ str r0, [sp, #0x3c]
+ ldr r0, _02235BE8 ; =0x00010200
+ str r0, [sp, #0x40]
+ mov r0, #0xa0
+ str r0, [sp, #0x34]
+ bl MOD83_02236EA8
+ add r3, r0, #0
+ ldr r0, _02235BEC ; =0x0000E880
+ mov r2, #9
+ ldr r1, [r5, r0]
+ ldr r0, _02235BF0 ; =0x00008344
+ add r1, r1, r0
+ lsl r0, r4, #3
+ add r0, r4, r0
+ add r0, r1, r0
+ add r1, sp, #0
+ bl FUN_02015D88
+ add r0, sp, #0
+ str r0, [sp, #0x4c]
+ add r0, r5, #0
+ add r1, sp, #0x14
+ mov r2, #1
+ bl MOD83_02234F2C
+ add sp, #0x60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02235BE4: .word 0x00000478
+_02235BE8: .word 0x00010200
+_02235BEC: .word 0x0000E880
+_02235BF0: .word 0x00008344
+ thumb_func_end MOD83_02235B6C
+
+ thumb_func_start MOD83_02235BF4
+MOD83_02235BF4: ; 0x02235BF4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x20]
+ add r6, r1, #0
+ mov r1, #2
+ bl FUN_0201886C
+ add r4, r0, #0
+ cmp r6, #0
+ beq _02235C18
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl MOD83_02237A10
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ b _02235C1A
+_02235C18:
+ mov r1, #0
+_02235C1A:
+ mov r2, #0
+ mov r0, #1
+_02235C1E:
+ add r3, r1, #0
+ tst r3, r0
+ beq _02235C2A
+ add r6, r2, #0
+ add r6, #0x80
+ b _02235C2E
+_02235C2A:
+ add r6, r2, #0
+ add r6, #0x60
+_02235C2E:
+ add r3, r4, #0
+ add r3, #0xd6
+ lsl r1, r1, #0x17
+ add r2, r2, #1
+ strh r6, [r3]
+ lsr r1, r1, #0x18
+ add r4, r4, #2
+ cmp r2, #4
+ blt _02235C1E
+ ldr r0, [r5, #0x20]
+ mov r1, #2
+ bl FUN_02017CD0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02235BF4
+
+ thumb_func_start MOD83_02235C4C
+MOD83_02235C4C: ; 0x02235C4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x78
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ add r3, sp, #0x2c
+ add r1, r0, #0
+ mov r2, #4
+_02235C5C:
+ stmia r3!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02235C5C
+ stmia r3!, {r0, r1}
+ str r0, [r3]
+ mov r1, #0x20
+ str r1, [sp, #0x3c]
+ mov r1, #1
+ ldr r0, _02235DF8 ; =0x00000488
+ str r1, [sp, #0x50]
+ str r1, [sp, #0x54]
+ mov r1, #0xbc
+ str r1, [sp, #0x4c]
+ ldr r1, _02235DFC ; =0x000F0200
+ add r0, r5, r0
+ str r1, [sp, #0x58]
+ mov r1, #0x2c
+ str r0, [sp, #0x2c]
+ mov r0, #0
+ str r1, [sp, #0x60]
+ mov r1, #0x90
+ mov r2, #4
+ str r1, [sp, #0x44]
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x38]
+ str r0, [sp, #0x64]
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ str r2, [sp, #0x40]
+ bl MOD83_02234F2C
+ mov r0, #0x2b
+ str r0, [sp, #0x60]
+ mov r0, #0x50
+ str r0, [sp, #0x44]
+ mov r0, #8
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #6
+ bl MOD83_02234F2C
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD83_02235BF4
+ cmp r4, #0
+ bne _02235CCA
+ ldr r0, [sp, #0x2c]
+ bl FUN_020191D0
+ add sp, #0x78
+ pop {r3, r4, r5, r6, r7, pc}
+_02235CCA:
+ add r2, sp, #0x1c
+ add r0, r4, #0
+ mov r1, #2
+ add r2, #2
+ bl MOD83_02237A10
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD83_02237A10
+ add r3, r0, #0
+ add r0, sp, #0x1c
+ add r0, #2
+ add r1, sp, #8
+ mov r2, #0xb
+ bl FUN_02015D88
+ add r0, sp, #8
+ str r0, [sp, #0x64]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x60]
+ mov r0, #8
+ str r0, [sp, #0x44]
+ mov r0, #0
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #6
+ bl MOD83_02234F2C
+ mov r0, #0x40
+ mov r1, #0x4e
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r2, _02235E00 ; =0x0000016A
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #0x4e
+ bl FUN_0200A86C
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD83_02237A10
+ bl MOD83_02237EBC
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x60]
+ mov r0, #0x10
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #6
+ str r6, [sp, #0x68]
+ bl MOD83_02234F2C
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD83_02237A10
+ cmp r0, #0
+ beq _02235DAC
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206E6D8
+ add r7, r0, #0
+ mov r0, #0x40
+ mov r1, #0x4e
+ bl FUN_020219F4
+ lsl r1, r7, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0x4e
+ add r6, r0, #0
+ bl FUN_0206E768
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x60]
+ mov r0, #0x98
+ str r0, [sp, #0x44]
+ mov r0, #0x10
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #6
+ str r6, [sp, #0x68]
+ bl MOD83_02234F2C
+ add r0, r6, #0
+ bl FUN_02021A20
+_02235DAC:
+ add r0, r4, #0
+ bl MOD83_02237EDC
+ add r6, r0, #0
+ mov r0, #0xa
+ mov r1, #0x4e
+ bl FUN_020219F4
+ mov r3, #1
+ add r1, r6, #0
+ mov r2, #3
+ add r4, r0, #0
+ str r3, [sp]
+ bl FUN_02021B04
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x60]
+ mov r0, #0x64
+ str r0, [sp, #0x44]
+ mov r0, #8
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r1, sp, #0x2c
+ mov r2, #2
+ str r4, [sp, #0x68]
+ bl MOD83_02234F2C
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #4]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02005578
+ add sp, #0x78
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02235DF8: .word 0x00000488
+_02235DFC: .word 0x000F0200
+_02235E00: .word 0x0000016A
+ thumb_func_end MOD83_02235C4C
+
+ thumb_func_start MOD83_02235E04
+MOD83_02235E04: ; 0x02235E04
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ str r0, [sp, #8]
+ add r6, r2, #0
+ mov r0, #0
+ add r4, r3, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ cmp r4, #0
+ beq _02235E2C
+ mov r0, #0x17
+ str r0, [r4]
+_02235E2C:
+ str r6, [r5, #0x24]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02235E04
+
+ thumb_func_start MOD83_02235E34
+MOD83_02235E34: ; 0x02235E34
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ add r4, r3, #0
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ add r6, r2, #0
+ str r0, [sp, #8]
+ ldr r3, _02235E64 ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ cmp r4, #0
+ beq _02235E5C
+ mov r0, #0x17
+ str r0, [r4]
+_02235E5C:
+ str r6, [r5, #0x24]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02235E64: .word 0x00007FFF
+ thumb_func_end MOD83_02235E34
+
+ thumb_func_start MOD83_02235E68
+MOD83_02235E68: ; 0x02235E68
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ ldr r5, _02235F28 ; =0x0223A51C
+ add r3, sp, #0x70
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _02235F2C ; =0x0223A52C
+ 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, #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, _02235F30 ; =0x0223A548
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _02235F34 ; =0x0223A564
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _02235F38 ; =0x0223A580
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ nop
+_02235F28: .word 0x0223A51C
+_02235F2C: .word 0x0223A52C
+_02235F30: .word 0x0223A548
+_02235F34: .word 0x0223A564
+_02235F38: .word 0x0223A580
+ thumb_func_end MOD83_02235E68
+
+ thumb_func_start MOD83_02235F3C
+MOD83_02235F3C: ; 0x02235F3C
+ push {r3, r4, r5, lr}
+ sub sp, #0x38
+ ldr r5, _02235FB4 ; =0x0223A59C
+ add r4, r0, #0
+ add r3, sp, #0x10
+ mov r2, #5
+_02235F48:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02235F48
+ add r0, sp, #0x10
+ bl FUN_0201E66C
+ ldr r0, [r4, #0x20]
+ bl MOD83_02235E68
+ ldr r0, _02235FB8 ; =0x021C4918
+ mov r1, #1
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ bl FUN_0201BD5C
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x4e
+ bl FUN_02002ED0
+ mov r0, #0xc0
+ str r0, [sp]
+ mov r0, #0x4e
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x13
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x4e
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x20]
+ mov r0, #0x74
+ mov r1, #0x16
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #2
+ mov r1, #0x4e
+ bl FUN_02002C50
+ add sp, #0x38
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02235FB4: .word 0x0223A59C
+_02235FB8: .word 0x021C4918
+ thumb_func_end MOD83_02235F3C
+
+ thumb_func_start MOD83_02235FBC
+MOD83_02235FBC: ; 0x02235FBC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ 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, #0x4e
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x20]
+ mov r0, #0x74
+ mov r1, #0x14
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r1, [r4]
+ ldr r0, _02236008 ; =0x0223B280
+ add r3, r2, #0
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ str r0, [sp, #8]
+ ldr r0, [r4, #0x20]
+ bl FUN_020186B4
+ ldr r0, [r4, #0x20]
+ mov r1, #2
+ bl FUN_02017CD0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02236008: .word 0x0223B280
+ thumb_func_end MOD83_02235FBC
+
+ thumb_func_start MOD83_0223600C
+MOD83_0223600C: ; 0x0223600C
+ push {r4, lr}
+ sub sp, #8
+ mov r1, #7
+ add r4, r0, #0
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x4e
+ bl FUN_02002ED0
+ mov r1, #0
+ mov r2, #0x3f
+ str r1, [sp]
+ mov r0, #0x4e
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x20]
+ lsl r2, r2, #4
+ mov r3, #0xe
+ bl FUN_0200CB00
+ ldr r0, [r4, #0x1c]
+ ldr r2, _022360B4 ; =0x000003D2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x4e
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ mov r3, #0xd
+ bl FUN_0200CD68
+ ldr r0, _022360B8 ; =0x0000042C
+ mov r1, #0
+ add r0, r4, r0
+ mov r2, #0x4c
+ bl Call_FillMemWithValue
+ ldr r0, _022360BC ; =0x00000498
+ mov r3, #0x1b
+ add r1, r0, #0
+ add r2, r4, r0
+ sub r1, #0x6c
+ str r2, [r4, r1]
+ add r1, r0, #0
+ mov r2, #2
+ sub r1, #0x64
+ str r2, [r4, r1]
+ add r1, r0, #0
+ mov r2, #1
+ sub r1, #0x60
+ str r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0x5c
+ str r3, [r4, r1]
+ add r1, r0, #0
+ mov r3, #4
+ sub r1, #0x58
+ str r3, [r4, r1]
+ add r3, r0, #0
+ mov r1, #0
+ sub r3, #0x48
+ str r1, [r4, r3]
+ add r3, r0, #0
+ sub r3, #0x44
+ str r2, [r4, r3]
+ add r3, r0, #0
+ sub r3, #0x4c
+ str r2, [r4, r3]
+ add r2, r0, #0
+ ldr r3, _022360C0 ; =0x0001020F
+ sub r2, #0x40
+ str r3, [r4, r2]
+ add r2, r0, #0
+ ldr r3, _022360C4 ; =0x000F020F
+ sub r2, #0x3c
+ str r3, [r4, r2]
+ add r2, r0, #0
+ sub r2, #0x34
+ str r1, [r4, r2]
+ sub r0, #0x30
+ str r1, [r4, r0]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_022360B4: .word 0x000003D2
+_022360B8: .word 0x0000042C
+_022360BC: .word 0x00000498
+_022360C0: .word 0x0001020F
+_022360C4: .word 0x000F020F
+ thumb_func_end MOD83_0223600C
+
+ thumb_func_start MOD83_022360C8
+MOD83_022360C8: ; 0x022360C8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r6, r0, #0
+ mov r7, #0x6b
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_022360D6:
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #0x1e
+ blt _022360D6
+ mov r7, #0xf2
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_022360FA:
+ ldr r0, [r4, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #6
+ blt _022360FA
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xee
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r2, #0x61
+ lsl r2, r2, #2
+ add r0, sp, #0x1c
+ add r1, r6, #0
+ add r2, r6, r2
+ mov r3, #1
+ bl MOD83_02235244
+ mov r0, #0x1c
+ mov r7, #0
+ str r0, [sp, #0x10]
+ add r4, r6, #0
+ add r5, r6, #0
+_02236148:
+ ldr r0, [sp, #0x10]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x24]
+ mov r0, #0x8e
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x28]
+ add r0, sp, #0x1c
+ bl FUN_0201FE94
+ ldr r1, _02236288 ; =0x00000414
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _02236288 ; =0x00000414
+ add r1, r7, #0
+ ldr r0, [r4, r0]
+ add r1, #0xa
+ bl FUN_02020130
+ ldr r0, _02236288 ; =0x00000414
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_02020238
+ ldr r0, _02236288 ; =0x00000414
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+ mov r1, #0x3d
+ mov r2, #0xf3
+ lsl r1, r1, #4
+ lsl r2, r2, #2
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r0, r6, #0
+ bl MOD83_0223526C
+ mov r1, #0x3d
+ mov r2, #0xf3
+ lsl r1, r1, #4
+ lsl r2, r2, #2
+ str r0, [sp, #0x14]
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r0, r6, #0
+ bl MOD83_02235290
+ mov r1, #0x3d
+ mov r2, #0xf3
+ lsl r1, r1, #4
+ lsl r2, r2, #2
+ str r0, [sp, #0x18]
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r0, r6, #0
+ bl MOD83_022352B4
+ add r2, r0, #0
+ ldr r0, _02236288 ; =0x00000414
+ str r7, [sp]
+ ldr r0, [r4, r0]
+ ldr r3, _0223628C ; =0x021C4918
+ str r0, [sp, #4]
+ ldrb r3, [r3, #6]
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ bl MOD83_022353C0
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ add r0, #0x28
+ str r0, [sp, #0x10]
+ add r4, r4, #4
+ add r5, #0xc
+ cmp r7, #6
+ blt _02236148
+ 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, #0x4e
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #0x20]
+ mov r0, #0x74
+ mov r1, #0x15
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r1, [r6]
+ ldr r0, _02236290 ; =0x0223B280
+ add r3, r2, #0
+ ldrb r0, [r0, r1]
+ mov r1, #2
+ str r0, [sp, #8]
+ ldr r0, [r6, #0x20]
+ bl FUN_020186B4
+ ldr r0, [r6, #0x20]
+ mov r1, #2
+ bl FUN_02017CD0
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r1, #7
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x4e
+ bl FUN_02002ED0
+ mov r1, #0
+ mov r2, #0x3f
+ str r1, [sp]
+ mov r0, #0x4e
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x20]
+ lsl r2, r2, #4
+ mov r3, #0xe
+ bl FUN_0200CB00
+ ldr r0, [r6, #0x1c]
+ ldr r2, _02236294 ; =0x000003D2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x4e
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x20]
+ mov r1, #0
+ mov r3, #0xd
+ bl FUN_0200CD68
+ add r0, r6, #0
+ bl MOD83_0223600C
+ mov r1, #0x46
+ mov r0, #0xa
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ sub r1, #0x34
+ add r0, r6, #0
+ add r1, r6, r1
+ mov r2, #0x18
+ bl MOD83_02234F2C
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236288: .word 0x00000414
+_0223628C: .word 0x021C4918
+_02236290: .word 0x0223B280
+_02236294: .word 0x000003D2
+ thumb_func_end MOD83_022360C8
+
+ thumb_func_start MOD83_02236298
+MOD83_02236298: ; 0x02236298
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _022362B4
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ bl FUN_02019570
+ add r0, r4, #0
+ bl FUN_02019178
+_022362B4:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02236298
+
+ thumb_func_start MOD83_022362B8
+MOD83_022362B8: ; 0x022362B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r7, _02236328 ; =0x00000414
+ mov r4, #0
+ add r5, r6, #0
+_022362C2:
+ ldr r0, [r5, r7]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _022362C2
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, _0223632C ; =0x00000498
+ add r0, r6, r0
+ bl MOD83_02236298
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xee
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xf3
+ mov r5, #0
+ lsl r0, r0, #2
+ add r4, r6, #0
+ sub r3, r5, #1
+ mov r2, #0xe
+ add r1, r0, #4
+_02236312:
+ str r3, [r4, r0]
+ str r2, [r4, r1]
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #6
+ blt _02236312
+ mov r0, #0x41
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02236328: .word 0x00000414
+_0223632C: .word 0x00000498
+ thumb_func_end MOD83_022362B8
+
+ thumb_func_start MOD83_02236330
+MOD83_02236330: ; 0x02236330
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r7, #0x6a
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02236344:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _0223634E
+ bl FUN_0201FFC8
+_0223634E:
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0223635C
+ bl FUN_0201FFC8
+_0223635C:
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #0x1e
+ blt _02236344
+ mov r7, #0xf2
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_0223636C:
+ ldr r0, [r4, r7]
+ cmp r0, #0
+ beq _02236376
+ bl FUN_0201FFC8
+_02236376:
+ add r5, r5, #1
+ add r4, #0xc
+ cmp r5, #6
+ blt _0223636C
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223638C
+ bl FUN_0201FFC8
+_0223638C:
+ mov r0, #0xee
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223639A
+ bl FUN_0201FFC8
+_0223639A:
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _022363A8
+ bl FUN_0201FFC8
+_022363A8:
+ ldr r0, _0223643C ; =0x00000478
+ add r0, r6, r0
+ bl MOD83_02236298
+ ldr r0, _02236440 ; =0x00000488
+ add r0, r6, r0
+ bl MOD83_02236298
+ ldr r0, _02236444 ; =0x00000498
+ add r0, r6, r0
+ bl MOD83_02236298
+ mov r0, #2
+ bl FUN_02002CF8
+ mov r0, #0x5b
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x17
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x55
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_022363E2:
+ ldr r0, [r4, r7]
+ bl FUN_02008E2C
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #6
+ blt _022363E2
+ ldr r0, [r6, #0x28]
+ bl FUN_0201FD58
+ mov r0, #0
+ str r0, [r6, #0x28]
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ ldr r0, _02236448 ; =0x0000E88C
+ ldr r0, [r6, r0]
+ bl FUN_020145A8
+ ldr r0, _0223644C ; =0x021C4918
+ mov r1, #0
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ ldr r0, [r6, #0x20]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r6, #0x20]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r6, #0x20]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r6, #0x20]
+ mov r1, #3
+ bl FUN_020178A0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223643C: .word 0x00000478
+_02236440: .word 0x00000488
+_02236444: .word 0x00000498
+_02236448: .word 0x0000E88C
+_0223644C: .word 0x021C4918
+ thumb_func_end MOD83_02236330
+
+ thumb_func_start MOD83_02236450
+MOD83_02236450: ; 0x02236450
+ push {lr}
+ sub sp, #0x14
+ ldr r1, [r0, #0x20]
+ mov r2, #0x19
+ str r1, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ mov r1, #2
+ lsl r1, r1, #8
+ str r1, [sp, #8]
+ mov r1, #8
+ str r1, [sp, #0xc]
+ add r1, sp, #0
+ strb r2, [r1, #0x10]
+ mov r2, #7
+ strb r2, [r1, #0x11]
+ ldr r1, _02236480 ; =0x0000E88C
+ ldr r0, [r0, r1]
+ add r1, sp, #0
+ bl FUN_020145C8
+ add sp, #0x14
+ pop {pc}
+ nop
+_02236480: .word 0x0000E88C
+ thumb_func_end MOD83_02236450
+
+ thumb_func_start MOD83_02236484
+MOD83_02236484: ; 0x02236484
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ bl MOD83_02237464
+ add r4, r0, #0
+ bl MOD83_02236EA8
+ add r3, r0, #0
+ add r0, r4, #0
+ add r1, sp, #8
+ mov r2, #8
+ bl FUN_02015D88
+ mov r0, #0x4e
+ bl FUN_0200AA80
+ add r4, r0, #0
+ mov r0, #8
+ mov r1, #0x4e
+ bl FUN_020219F4
+ add r1, sp, #8
+ add r6, r0, #0
+ bl FUN_02021E28
+ mov r1, #1
+ str r1, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r6, #0
+ mov r3, #0
+ bl FUN_0200ABB4
+ add r0, r5, #0
+ bl MOD83_0223600C
+ ldr r0, [r5]
+ mov r2, #0x18
+ lsl r1, r0, #2
+ ldr r0, _02236508 ; =0x0223B2A0
+ ldr r0, [r0, r1]
+ mov r1, #0x46
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0xc
+ sub r1, #0x34
+ str r4, [r5, r0]
+ add r0, r5, #0
+ add r1, r5, r1
+ bl MOD83_02234F2C
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200AB18
+ add r0, r5, #0
+ bl MOD83_02236450
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ nop
+_02236508: .word 0x0223B2A0
+ thumb_func_end MOD83_02236484
+
+ thumb_func_start MOD83_0223650C
+MOD83_0223650C: ; 0x0223650C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0223653C ; =0x00012604
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02236520
+ blx r0
+ ldr r0, _0223653C ; =0x00012604
+ mov r1, #0
+ str r1, [r4, r0]
+_02236520:
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r0, [r4, #0x20]
+ bl FUN_0201AB60
+ ldr r3, _02236540 ; =0x027E0000
+ ldr r1, _02236544 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_0223653C: .word 0x00012604
+_02236540: .word 0x027E0000
+_02236544: .word 0x00003FF8
+ thumb_func_end MOD83_0223650C
+
+ thumb_func_start MOD83_02236548
+MOD83_02236548: ; 0x02236548
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ ldr r0, [r0, #0x10]
+ bl FUN_02022528
+ str r0, [sp, #8]
+ bl FUN_0202C0B8
+ cmp r0, #0
+ bne _0223659C
+ ldr r0, [sp, #8]
+ bl FUN_0202C060
+ cmp r0, #0
+ bne _0223656E
+ add sp, #0xc
+ mov r0, #3
+ pop {r4, r5, r6, r7, pc}
+_0223656E:
+ ldr r0, [sp, #8]
+ bl FUN_0202C094
+ cmp r0, #0
+ bne _0223657E
+ add sp, #0xc
+ mov r0, #4
+ pop {r4, r5, r6, r7, pc}
+_0223657E:
+ bl MOD83_02237448
+ add r1, r0, #0
+ ldr r0, [sp, #8]
+ bl FUN_0202C028
+ cmp r0, #0
+ bne _02236590
+ ldr r0, _022365F8 ; =0x0002A300
+_02236590:
+ ldr r1, _022365FC ; =0x00015180
+ cmp r0, r1
+ bge _0223659C
+ add sp, #0xc
+ mov r0, #2
+ pop {r4, r5, r6, r7, pc}
+_0223659C:
+ mov r6, #0
+ str r6, [sp, #4]
+ add r7, r6, #0
+_022365A2:
+ mov r4, #0
+ add r5, r4, #0
+_022365A6:
+ ldr r1, [sp]
+ ldr r0, _02236600 ; =0x0000E880
+ mov r2, #0
+ ldr r0, [r1, r0]
+ mov r1, #5
+ add r0, r0, #4
+ add r0, r0, r7
+ add r0, r0, r5
+ bl MOD83_02237A10
+ cmp r0, #0
+ beq _022365C0
+ add r6, r6, #1
+_022365C0:
+ add r4, r4, #1
+ add r5, #0x50
+ cmp r4, #0x1e
+ blt _022365A6
+ mov r0, #0x96
+ lsl r0, r0, #4
+ add r7, r7, r0
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #0xe
+ blt _022365A2
+ cmp r6, #6
+ bge _022365E2
+ add sp, #0xc
+ mov r0, #5
+ pop {r4, r5, r6, r7, pc}
+_022365E2:
+ ldr r0, [sp, #8]
+ bl FUN_0202C000
+ cmp r0, #0
+ beq _022365F2
+ add sp, #0xc
+ mov r0, #6
+ pop {r4, r5, r6, r7, pc}
+_022365F2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022365F8: .word 0x0002A300
+_022365FC: .word 0x00015180
+_02236600: .word 0x0000E880
+ thumb_func_end MOD83_02236548
+
+ thumb_func_start MOD83_02236604
+MOD83_02236604: ; 0x02236604
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ cmp r1, #0
+ beq _02236640
+ bl MOD83_0223600C
+ mov r0, #1
+ bl FUN_02002BB8
+ ldr r0, _02236660 ; =0x0223B2D8
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ mov r1, #0x46
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ sub r1, #0x34
+ mov r2, #1
+ add r0, #0x10
+ str r2, [r5, r0]
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x18
+ bl MOD83_02234F2C
+ mov r0, #0
+ str r0, [r5, #4]
+ b _0223665A
+_02236640:
+ ldr r0, _02236664 ; =0x00000474
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0223665A
+ mov r0, #0
+ bl FUN_02002BB8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_0223665A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02236660: .word 0x0223B2D8
+_02236664: .word 0x00000474
+ thumb_func_end MOD83_02236604
+
+ thumb_func_start MOD83_02236668
+MOD83_02236668: ; 0x02236668
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ cmp r1, #0
+ beq _022366A4
+ bl MOD83_0223600C
+ mov r0, #1
+ bl FUN_02002BB8
+ ldr r0, _022366C8 ; =0x0223B2D8
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ mov r1, #0x46
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ sub r1, #0x34
+ mov r2, #1
+ add r0, #0x10
+ str r2, [r5, r0]
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x18
+ bl MOD83_02234F2C
+ mov r0, #0
+ str r0, [r5, #4]
+ b _022366C4
+_022366A4:
+ ldr r0, _022366CC ; =0x00000474
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _022366C4
+ add r0, r5, #0
+ bl MOD83_02236450
+ mov r0, #0
+ bl FUN_02002BB8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022366C4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022366C8: .word 0x0223B2D8
+_022366CC: .word 0x00000474
+ thumb_func_end MOD83_02236668
+
+ thumb_func_start MOD83_022366D0
+MOD83_022366D0: ; 0x022366D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r1, #0
+ ldr r2, [r5, #8]
+ mvn r1, r1
+ cmp r2, r1
+ beq _02236712
+ bl MOD83_0223600C
+ mov r0, #1
+ bl FUN_02002BB8
+ mov r1, #0x46
+ ldr r0, [r5, #8]
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0x10
+ sub r1, #0x34
+ str r4, [r5, r0]
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x18
+ bl MOD83_02234F2C
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r5, #8]
+ ldr r0, _02236754 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236750
+_02236712:
+ cmp r4, #0
+ beq _02236730
+ ldr r0, _02236758 ; =0x00000474
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02236750
+ mov r0, #0
+ bl FUN_02002BB8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02236730:
+ ldr r0, _0223675C ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _02236740
+ ldr r0, _02236760 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02236750
+_02236740:
+ mov r0, #0
+ bl FUN_02002BB8
+ ldr r0, _02236754 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02236750:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02236754: .word 0x000005DC
+_02236758: .word 0x00000474
+_0223675C: .word 0x021C48F8
+_02236760: .word 0x021C48B8
+ thumb_func_end MOD83_022366D0
+
+ thumb_func_start MOD83_02236764
+MOD83_02236764: ; 0x02236764
+ push {r3, r4, r5, lr}
+ mov r2, #0xa
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x4e
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ ldr r1, _022367F0 ; =0x00012608
+ add r0, r5, #0
+ mov r2, #0x4e
+ bl FUN_02006268
+ ldr r2, _022367F0 ; =0x00012608
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x4e
+ bl FUN_02016B94
+ str r0, [r4, #0x20]
+ mov r0, #0x4e
+ bl FUN_02014590
+ ldr r1, _022367F4 ; =0x0000E88C
+ str r0, [r4, r1]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [r4, #0x10]
+ bl FUN_020238F4
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x10]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x18]
+ bl FUN_02025084
+ str r0, [r4, #0x1c]
+ ldr r1, _022367F8 ; =0x00000496
+ mov r0, #9
+ mov r2, #1
+ bl FUN_0200433C
+ bl OS_IsTickAvailable
+ cmp r0, #0
+ bne _022367DE
+ bl OS_InitTick
+_022367DE:
+ bl MOD83_02239490
+ ldr r0, _022367FC ; =0x0000E89C
+ add r1, r4, r0
+ ldr r0, _02236800 ; =0x0223BB14
+ str r1, [r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_022367F0: .word 0x00012608
+_022367F4: .word 0x0000E88C
+_022367F8: .word 0x00000496
+_022367FC: .word 0x0000E89C
+_02236800: .word 0x0223BB14
+ thumb_func_end MOD83_02236764
+
+ thumb_func_start MOD83_02236804
+MOD83_02236804: ; 0x02236804
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl CTRDG_IsExisting
+ bl CTRDG_IsPulledOut
+ cmp r0, #1
+ beq _02236822
+ ldr r0, _02236B3C ; =0x02106FA4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02236828
+_02236822:
+ mov r0, #0x4e
+ bl FUN_02089F24
+_02236828:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r5]
+ cmp r0, #0x18
+ bhi _02236924
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02236840: ; jump table
+ .short _02236872 - _02236840 - 2 ; case 0
+ .short _022368BA - _02236840 - 2 ; case 1
+ .short _02236900 - _02236840 - 2 ; case 2
+ .short _02236914 - _02236840 - 2 ; case 3
+ .short _0223694E - _02236840 - 2 ; case 4
+ .short _02236966 - _02236840 - 2 ; case 5
+ .short _022369BC - _02236840 - 2 ; case 6
+ .short _022369CE - _02236840 - 2 ; case 7
+ .short _022369EC - _02236840 - 2 ; case 8
+ .short _022369FE - _02236840 - 2 ; case 9
+ .short _02236A5C - _02236840 - 2 ; case 10
+ .short _02236A74 - _02236840 - 2 ; case 11
+ .short _02236A88 - _02236840 - 2 ; case 12
+ .short _02236AC8 - _02236840 - 2 ; case 13
+ .short _02236BF0 - _02236840 - 2 ; case 14
+ .short _02236C0A - _02236840 - 2 ; case 15
+ .short _02236C26 - _02236840 - 2 ; case 16
+ .short _02236C40 - _02236840 - 2 ; case 17
+ .short _02236C76 - _02236840 - 2 ; case 18
+ .short _02236C9C - _02236840 - 2 ; case 19
+ .short _02236D06 - _02236840 - 2 ; case 20
+ .short _02236D12 - _02236840 - 2 ; case 21
+ .short _02236D54 - _02236840 - 2 ; case 22
+ .short _02236D78 - _02236840 - 2 ; case 23
+ .short _02236D86 - _02236840 - 2 ; case 24
+_02236872:
+ bl MOD83_02236E90
+ mov r0, #0x4b
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD83_02236E18
+ ldr r1, _02236B40 ; =0x000004A8
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _022368AE
+ bl MOD83_022371C4
+ ldr r1, _02236B44 ; =0x000004AC
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _022368AA
+ bl MOD83_0223742C
+ ldr r1, _02236B48 ; =0x0000E880
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ ldrb r2, [r0]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ b _022368AE
+_022368AA:
+ mov r0, #1
+ str r0, [r4, #4]
+_022368AE:
+ add r0, r4, #0
+ bl MOD83_02234CA0
+ mov r0, #1
+ str r0, [r5]
+ b _02236D90
+_022368BA:
+ add r0, r4, #0
+ bl MOD83_02235F3C
+ bl MOD83_022350BC
+ add r0, r4, #0
+ bl MOD83_022350EC
+ add r0, r4, #0
+ bl MOD83_022351F8
+ add r0, r4, #0
+ bl MOD83_022357CC
+ ldr r0, _02236B4C ; =MOD83_0223650C
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _022368FA
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xb
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_022368FA:
+ mov r0, #2
+ str r0, [r5]
+ b _02236D90
+_02236900:
+ add r0, r4, #0
+ bl MOD83_02236484
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #3
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236914:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236926
+ cmp r0, #2
+ beq _02236938
+_02236924:
+ b _02236D90
+_02236926:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ mov r0, #0x22
+ str r0, [r4, #8]
+ mov r0, #4
+ str r0, [r5]
+ b _02236D90
+_02236938:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ b _02236D90
+_0223694E:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_022366D0
+ cmp r0, #0
+ beq _02236976
+ add r0, r4, #0
+ bl MOD83_02236450
+ mov r0, #5
+ str r0, [r5]
+ b _02236D90
+_02236966:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236978
+ cmp r0, #2
+ beq _022369A6
+_02236976:
+ b _02236D90
+_02236978:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ bl MOD83_02236548
+ str r0, [r4, #4]
+ cmp r0, #0
+ beq _0223699E
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _02236998
+ mov r0, #8
+ str r0, [r5]
+ b _02236D90
+_02236998:
+ mov r0, #0xb
+ str r0, [r5]
+ b _02236D90
+_0223699E:
+ mov r0, #6
+ str r0, [r4, #8]
+ str r0, [r5]
+ b _02236D90
+_022369A6:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ b _02236D90
+_022369BC:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD83_022366D0
+ cmp r0, #0
+ beq _02236A0E
+ mov r0, #7
+ str r0, [r5]
+ b _02236D90
+_022369CE:
+ ldr r0, _02236B54 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _022369DE
+ ldr r0, _02236B58 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02236A0E
+_022369DE:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0xc
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_022369EC:
+ ldr r1, [r4, #4]
+ add r0, r4, #0
+ bl MOD83_02236668
+ cmp r0, #0
+ beq _02236A0E
+ mov r0, #9
+ str r0, [r5]
+ b _02236D90
+_022369FE:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236A10
+ cmp r0, #2
+ beq _02236A46
+_02236A0E:
+ b _02236D90
+_02236A10:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ mov r1, #0x47
+ lsl r1, r1, #4
+ mov r2, #0
+ add r0, r1, #0
+ str r2, [r4, r1]
+ sub r1, #0x44
+ mov r3, #0x28
+ sub r0, #0x10
+ str r3, [r4, r0]
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD83_02234F2C
+ ldr r1, _02236B5C ; =0x00000498
+ add r0, r4, r1
+ sub r1, #0xc6
+ bl FUN_0200D858
+ ldr r1, _02236B60 ; =0x0000E898
+ str r0, [r4, r1]
+ mov r0, #0xa
+ str r0, [r5]
+ b _02236D90
+_02236A46:
+ ldr r0, _02236B50 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ b _02236D90
+_02236A5C:
+ add r0, r4, #0
+ bl MOD83_02234E40
+ ldr r0, _02236B60 ; =0x0000E898
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ mov r0, #7
+ str r0, [r4, #4]
+ mov r0, #0xb
+ str r0, [r5]
+ b _02236D90
+_02236A74:
+ ldr r1, [r4, #4]
+ add r0, r4, #0
+ bl MOD83_02236604
+ cmp r0, #0
+ bne _02236A82
+ b _02236D90
+_02236A82:
+ mov r0, #0x16
+ str r0, [r5]
+ b _02236D90
+_02236A88:
+ ldr r0, _02236B5C ; =0x00000498
+ add r0, r4, r0
+ bl MOD83_02236298
+ add r0, r4, #0
+ bl MOD83_02235FBC
+ add r0, r4, #0
+ bl MOD83_02235648
+ add r0, r4, #0
+ bl MOD83_022354F0
+ ldr r0, _02236B4C ; =MOD83_0223650C
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_02235C4C
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xd
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236AC8:
+ mov r0, #0x31
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02020988
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _02236B9C
+ cmp r6, #0x1e
+ bge _02236B92
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD83_02235994
+ cmp r0, #1
+ bne _02236B20
+ ldr r2, _02236B48 ; =0x0000E880
+ add r0, r4, #0
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ ldr r3, [r4, r2]
+ mov r2, #0x96
+ lsl r2, r2, #4
+ add r1, r1, #4
+ mul r2, r3
+ add r2, r1, r2
+ mov r1, #0x50
+ mul r1, r6
+ add r1, r2, r1
+ bl MOD83_02235C4C
+ mov r0, #0x41
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #6
+ bne _02236B9C
+ ldr r0, _02236B64 ; =0x0000E888
+ mov r1, #0x2d
+ str r1, [r4, r0]
+ mov r0, #0xf
+ str r0, [r5]
+ b _02236D90
+_02236B20:
+ cmp r0, #2
+ bne _02236B2E
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_02235C4C
+ b _02236D90
+_02236B2E:
+ cmp r0, #4
+ bne _02236B68
+ mov r0, #8
+ str r0, [r4, #8]
+ mov r0, #0xe
+ str r0, [r5]
+ b _02236D90
+ .align 2, 0
+_02236B3C: .word 0x02106FA4
+_02236B40: .word 0x000004A8
+_02236B44: .word 0x000004AC
+_02236B48: .word 0x0000E880
+_02236B4C: .word MOD83_0223650C
+_02236B50: .word 0x0000E88C
+_02236B54: .word 0x021C48F8
+_02236B58: .word 0x021C48B8
+_02236B5C: .word 0x00000498
+_02236B60: .word 0x0000E898
+_02236B64: .word 0x0000E888
+_02236B68:
+ cmp r0, #5
+ bne _02236B76
+ mov r0, #9
+ str r0, [r4, #8]
+ mov r0, #0xe
+ str r0, [r5]
+ b _02236D90
+_02236B76:
+ cmp r0, #6
+ bne _02236B84
+ mov r0, #0x26
+ str r0, [r4, #8]
+ mov r0, #0xe
+ str r0, [r5]
+ b _02236D90
+_02236B84:
+ cmp r0, #7
+ bne _02236B9C
+ mov r0, #0x26
+ str r0, [r4, #8]
+ mov r0, #0xe
+ str r0, [r5]
+ b _02236D90
+_02236B92:
+ beq _02236BDC
+ cmp r6, #0x1f
+ beq _02236B9E
+ cmp r6, #0x20
+ beq _02236BBC
+_02236B9C:
+ b _02236D90
+_02236B9E:
+ ldr r0, _02236DA0 ; =0x0000E884
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _02236BAA
+ mov r1, #0xd
+ b _02236BAC
+_02236BAA:
+ sub r1, r1, #1
+_02236BAC:
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD83_022354F0
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236D90
+_02236BBC:
+ ldr r0, _02236DA0 ; =0x0000E884
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #0xe
+ bne _02236BCE
+ mov r1, #0
+ str r1, [r4, r0]
+_02236BCE:
+ add r0, r4, #0
+ bl MOD83_022354F0
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236D90
+_02236BDC:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236D90
+_02236BF0:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD83_022366D0
+ cmp r0, #0
+ beq _02236C50
+ ldr r0, _02236DA8 ; =0x00000498
+ add r0, r4, r0
+ bl MOD83_02236298
+ mov r0, #0xd
+ str r0, [r5]
+ b _02236D90
+_02236C0A:
+ ldr r0, _02236DAC ; =0x0000E888
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02236C50
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x10
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236C26:
+ add r0, r4, #0
+ bl MOD83_022360C8
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0x11
+ add r3, r5, #0
+ bl MOD83_02235E04
+ add r0, r4, #0
+ bl MOD83_02236450
+ b _02236D90
+_02236C40:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236C52
+ cmp r0, #2
+ beq _02236C60
+_02236C50:
+ b _02236D90
+_02236C52:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ mov r0, #0x12
+ str r0, [r5]
+ b _02236D90
+_02236C60:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x14
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236C76:
+ mov r1, #0x46
+ mov r0, #0xb
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x34
+ add r0, r4, #0
+ add r1, r4, r1
+ mov r2, #0
+ bl MOD83_02234F2C
+ add r0, r4, #0
+ bl MOD83_02236450
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x13
+ str r0, [r5]
+ b _02236D90
+_02236C9C:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _02236CAE
+ cmp r0, #2
+ beq _02236CF0
+ b _02236D90
+_02236CAE:
+ ldr r0, [r4]
+ mov r2, #0
+ lsl r1, r0, #2
+ ldr r0, _02236DB4 ; =0x0223B288
+ ldr r0, [r0, r1]
+ mov r1, #0x46
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x34
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD83_02234F2C
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ ldr r0, _02236DB8 ; =0x0000E890
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r1, _02236DA8 ; =0x00000498
+ add r0, r4, r1
+ sub r1, #0xc6
+ bl FUN_0200D858
+ ldr r1, _02236DBC ; =0x0000E898
+ str r0, [r4, r1]
+ mov r0, #0x15
+ str r0, [r5]
+ mov r0, #4
+ bl FUN_020166A8
+ b _02236D90
+_02236CF0:
+ ldr r0, _02236DB0 ; =0x0000E88C
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x14
+ add r3, r5, #0
+ bl MOD83_02235E04
+ b _02236D90
+_02236D06:
+ add r0, r4, #0
+ bl MOD83_022362B8
+ mov r0, #0xc
+ str r0, [r5]
+ b _02236D90
+_02236D12:
+ add r0, r4, #0
+ bl MOD83_02234CE8
+ add r6, r0, #0
+ cmp r6, #0xa
+ beq _02236D90
+ ldr r0, _02236DBC ; =0x0000E898
+ ldr r0, [r4, r0]
+ bl FUN_0200DBFC
+ ldr r0, _02236DC0 ; =0x0000061B
+ bl FUN_020054C8
+ cmp r6, #0xb
+ bne _02236D34
+ mov r1, #0x1d
+ b _02236D36
+_02236D34:
+ mov r1, #0x24
+_02236D36:
+ mov r0, #0x46
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ ldr r1, _02236DC4 ; =0x0000042C
+ add r0, r4, #0
+ add r1, r4, r1
+ mov r2, #0
+ bl MOD83_02234F2C
+ mov r0, #0x16
+ str r0, [r5]
+ mov r0, #4
+ bl FUN_020166B8
+ b _02236D90
+_02236D54:
+ ldr r0, _02236DC8 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _02236D64
+ ldr r0, _02236DCC ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _02236D90
+_02236D64:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x18
+ add r3, r5, #0
+ bl MOD83_02235E34
+ ldr r0, _02236DA4 ; =0x000005DC
+ bl FUN_020054C8
+ b _02236D90
+_02236D78:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _02236D90
+ ldr r0, [r4, #0x24]
+ str r0, [r5]
+ b _02236D90
+_02236D86:
+ add r0, r4, #0
+ bl MOD83_02236330
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02236D90:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _02236D9A
+ bl FUN_0201FDEC
+_02236D9A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02236DA0: .word 0x0000E884
+_02236DA4: .word 0x000005DC
+_02236DA8: .word 0x00000498
+_02236DAC: .word 0x0000E888
+_02236DB0: .word 0x0000E88C
+_02236DB4: .word 0x0223B288
+_02236DB8: .word 0x0000E890
+_02236DBC: .word 0x0000E898
+_02236DC0: .word 0x0000061B
+_02236DC4: .word 0x0000042C
+_02236DC8: .word 0x021C48F8
+_02236DCC: .word 0x021C48B8
+ thumb_func_end MOD83_02236804
+
+ thumb_func_start MOD83_02236DD0
+MOD83_02236DD0: ; 0x02236DD0
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02006278
+ ldr r0, [r0, #0x20]
+ bl FUN_02016A18
+ ldr r0, _02236DFC ; =0x0000003F
+ ldr r1, _02236E00 ; =0x021DBAB8
+ bl FUN_02000E7C
+ add r0, r4, #0
+ bl FUN_0200627C
+ mov r0, #0x4e
+ bl FUN_020168D0
+ mov r0, #0
+ bl MOD83_02239450
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_02236DFC: .word 0x0000003F
+_02236E00: .word 0x021DBAB8
+ thumb_func_end MOD83_02236DD0
+
+ thumb_func_start MOD83_02236E04
+MOD83_02236E04: ; 0x02236E04
+ push {r3, lr}
+ mov r0, #1
+ bl CTRDG_IdentifyAgbBackup
+ cmp r0, #0
+ bne _02236E14
+ mov r0, #1
+ pop {r3, pc}
+_02236E14:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_02236E04
+
+ thumb_func_start MOD83_02236E18
+MOD83_02236E18: ; 0x02236E18
+ push {r3, lr}
+ ldr r1, _02236E74 ; =0x0223BB18
+ str r0, [r1, #8]
+ ldr r0, _02236E78 ; =0x0223B41C
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02236E2A
+ mov r0, #0xc
+ pop {r3, pc}
+_02236E2A:
+ ldr r0, _02236E7C ; =0x0223A5C4
+ mov r1, #0x1e
+ bl MOD83_02236EB4
+ cmp r0, #0
+ bne _02236E72
+ ldr r0, _02236E78 ; =0x0223B41C
+ ldr r0, [r0]
+ ldrb r0, [r0, #4]
+ cmp r0, #0
+ bne _02236E5A
+ mov r0, #0x89
+ ldr r1, _02236E80 ; =0x0223BB98
+ lsl r0, r0, #4
+ str r0, [r1, #0x20]
+ mov r0, #0xeb
+ lsl r0, r0, #6
+ str r0, [r1, #0x24]
+ ldr r2, _02236E84 ; =0x00001220
+ ldr r0, _02236E74 ; =0x0223BB18
+ str r2, [r0, #0x68]
+ mov r0, #9
+ str r0, [r1, #0x30]
+ b _02236E64
+_02236E5A:
+ ldr r0, _02236E88 ; =0x08000100
+ ldr r1, _02236E8C ; =0x0223BB30
+ mov r2, #0xfc
+ bl CTRDG_CpuCopy32
+_02236E64:
+ bl MOD83_02236E04
+ cmp r0, #0
+ bne _02236E70
+ mov r0, #3
+ pop {r3, pc}
+_02236E70:
+ mov r0, #0
+_02236E72:
+ pop {r3, pc}
+ .align 2, 0
+_02236E74: .word 0x0223BB18
+_02236E78: .word 0x0223B41C
+_02236E7C: .word 0x0223A5C4
+_02236E80: .word 0x0223BB98
+_02236E84: .word 0x00001220
+_02236E88: .word 0x08000100
+_02236E8C: .word 0x0223BB30
+ thumb_func_end MOD83_02236E18
+
+ thumb_func_start MOD83_02236E90
+MOD83_02236E90: ; 0x02236E90
+ ldr r0, _02236E98 ; =0x0223B41C
+ mov r1, #0
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_02236E98: .word 0x0223B41C
+ thumb_func_end MOD83_02236E90
+
+ thumb_func_start MOD83_02236E9C
+MOD83_02236E9C: ; 0x02236E9C
+ ldr r0, _02236EA4 ; =0x0223B41C
+ ldr r0, [r0]
+ ldrb r0, [r0, #5]
+ bx lr
+ .align 2, 0
+_02236EA4: .word 0x0223B41C
+ thumb_func_end MOD83_02236E9C
+
+ thumb_func_start MOD83_02236EA8
+MOD83_02236EA8: ; 0x02236EA8
+ ldr r0, _02236EB0 ; =0x0223B41C
+ ldr r0, [r0]
+ ldrh r0, [r0, #6]
+ bx lr
+ .align 2, 0
+_02236EB0: .word 0x0223B41C
+ thumb_func_end MOD83_02236EA8
+
+ thumb_func_start MOD83_02236EB4
+MOD83_02236EB4: ; 0x02236EB4
+ push {r3, r4, r5, lr}
+ sub sp, #0xc0
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r0, _02236F60 ; =0x0223B41C
+ mov r1, #0
+ str r1, [r0]
+ bl CTRDG_IsAgbCartridge
+ cmp r0, #0
+ bne _02236ED0
+ add sp, #0xc0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02236ED0:
+ bl CTRDG_GetAgbGameCode
+ mov r2, #0
+ cmp r4, #0
+ ble _02236EF4
+ add r3, r5, #0
+_02236EDC:
+ ldr r1, [r3]
+ cmp r0, r1
+ bne _02236EEC
+ lsl r0, r2, #3
+ add r1, r5, r0
+ ldr r0, _02236F60 ; =0x0223B41C
+ str r1, [r0]
+ b _02236EF4
+_02236EEC:
+ add r2, r2, #1
+ add r3, #8
+ cmp r2, r4
+ blt _02236EDC
+_02236EF4:
+ ldr r0, _02236F60 ; =0x0223B41C
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02236F02
+ add sp, #0xc0
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_02236F02:
+ mov r0, #1
+ bl CTRDG_Enable
+ add r4, sp, #0
+ mov r0, #2
+ lsl r0, r0, #0x1a
+ add r1, r4, #0
+ mov r2, #0xc0
+ bl CTRDG_CpuCopy32
+ ldr r3, _02236F64 ; =0x0223B424
+ mov r2, #0
+_02236F1A:
+ add r0, r4, r2
+ ldrb r1, [r3]
+ ldrb r0, [r0, #4]
+ cmp r1, r0
+ beq _02236F2A
+ add sp, #0xc0
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_02236F2A:
+ add r2, r2, #1
+ add r3, r3, #1
+ cmp r2, #0x9c
+ blo _02236F1A
+ mov r2, #0
+ mov r1, #0xa0
+_02236F36:
+ ldrb r0, [r4, r1]
+ add r1, r1, #1
+ add r0, r2, r0
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r1, #0xbc
+ ble _02236F36
+ add r2, #0x19
+ neg r0, r2
+ lsl r0, r0, #0x18
+ add r4, #0xbd
+ lsr r1, r0, #0x18
+ ldrb r0, [r4]
+ cmp r0, r1
+ beq _02236F5A
+ add sp, #0xc0
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_02236F5A:
+ mov r0, #0
+ add sp, #0xc0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02236F60: .word 0x0223B41C
+_02236F64: .word 0x0223B424
+ thumb_func_end MOD83_02236EB4
+
+ thumb_func_start MOD83_02236F68
+MOD83_02236F68: ; 0x02236F68
+ push {r3, r4}
+ mov r2, #0
+ lsr r4, r1, #2
+ add r3, r2, #0
+ cmp r4, #0
+ ble _02236F84
+_02236F74:
+ ldr r1, [r0]
+ add r0, r0, #4
+ add r2, r2, r1
+ add r1, r3, #1
+ lsl r1, r1, #0x10
+ lsr r3, r1, #0x10
+ cmp r3, r4
+ blt _02236F74
+_02236F84:
+ lsr r0, r2, #0x10
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD83_02236F68
+
+ thumb_func_start MOD83_02236F98
+MOD83_02236F98: ; 0x02236F98
+ push {r3, lr}
+ lsl r0, r0, #0x10
+ mov r3, #1
+ add r2, r1, #0
+ lsr r0, r0, #0x10
+ mov r1, #0
+ lsl r3, r3, #0xc
+ bl CTRDG_ReadAgbFlash
+ pop {r3, pc}
+ thumb_func_end MOD83_02236F98
+
+ thumb_func_start MOD83_02236FAC
+MOD83_02236FAC: ; 0x02236FAC
+ cmp r0, #0
+ bne _02236FBA
+ ldr r0, _02236FE0 ; =0x0223BB98
+ ldr r0, [r0, #0x20]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02236FBA:
+ cmp r0, #4
+ bne _02236FCE
+ ldr r0, _02236FE0 ; =0x0223BB98
+ ldr r1, [r0, #0x24]
+ mov r0, #0xba
+ lsl r0, r0, #6
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+_02236FCE:
+ cmp r0, #0xd
+ bne _02236FD8
+ mov r0, #0x7d
+ lsl r0, r0, #4
+ bx lr
+_02236FD8:
+ mov r0, #0x3e
+ lsl r0, r0, #6
+ bx lr
+ nop
+_02236FE0: .word 0x0223BB98
+ thumb_func_end MOD83_02236FAC
+
+ thumb_func_start MOD83_02236FE4
+MOD83_02236FE4: ; 0x02236FE4
+ cmp r0, #0
+ bne _02236FF4
+ ldr r0, _02237034 ; =0x0223BB18
+ ldr r1, [r0, #8]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ bx lr
+_02236FF4:
+ cmp r0, #1
+ blt _02237012
+ cmp r0, #4
+ bgt _02237012
+ ldr r1, _02237034 ; =0x0223BB18
+ ldr r2, [r1, #8]
+ mov r1, #2
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ sub r1, r0, #1
+ mov r0, #0x3e
+ lsl r0, r0, #6
+ mul r0, r1
+ add r0, r2, r0
+ bx lr
+_02237012:
+ cmp r0, #5
+ blt _02237030
+ cmp r0, #0xe
+ bge _02237030
+ ldr r1, _02237034 ; =0x0223BB18
+ ldr r2, [r1, #8]
+ mov r1, #6
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ sub r1, r0, #5
+ mov r0, #0x3e
+ lsl r0, r0, #6
+ mul r0, r1
+ add r0, r2, r0
+ bx lr
+_02237030:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02237034: .word 0x0223BB18
+ thumb_func_end MOD83_02236FE4
+
+ thumb_func_start MOD83_02237038
+MOD83_02237038: ; 0x02237038
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ add r5, r1, #0
+ str r6, [sp, #4]
+ add r1, r2, #0
+ str r6, [r1]
+ ldr r1, _022370CC ; =0x0223BB18
+ add r7, r0, #0
+ str r6, [r1, #4]
+ mov r1, #0xe
+ str r2, [sp]
+ add r4, r6, #0
+ mul r7, r1
+_02237054:
+ add r0, r4, #0
+ mov r1, #0xe
+ bl _s32_div_f
+ add r0, r1, r7
+ add r1, r5, #0
+ bl MOD83_02236F98
+ mov r1, #1
+ add r0, r5, #0
+ lsl r1, r1, #0xc
+ bl DC_FlushRange
+ ldr r0, _022370D0 ; =0x00000FF8
+ ldr r1, [r5, r0]
+ ldr r0, _022370D4 ; =0x08012025
+ cmp r1, r0
+ bne _022370A6
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _022370D8 ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ bl MOD83_02236FAC
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD83_02236F68
+ ldr r1, _022370DC ; =0x00000FF6
+ ldrh r1, [r5, r1]
+ cmp r1, r0
+ bne _022370A6
+ ldr r0, _022370E0 ; =0x00000FFC
+ ldr r1, [r5, r0]
+ ldr r0, [sp]
+ str r1, [r0]
+ ldr r0, _022370D8 ; =0x00000FF4
+ ldrh r1, [r5, r0]
+ mov r0, #1
+ lsl r0, r1
+ orr r6, r0
+_022370A6:
+ add r4, r4, #1
+ cmp r4, #0xe
+ blt _02237054
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ beq _022370C4
+ ldr r0, _022370E4 ; =0x00003FFF
+ cmp r6, r0
+ bne _022370BE
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022370BE:
+ add sp, #8
+ mov r0, #0xff
+ pop {r3, r4, r5, r6, r7, pc}
+_022370C4:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022370CC: .word 0x0223BB18
+_022370D0: .word 0x00000FF8
+_022370D4: .word 0x08012025
+_022370D8: .word 0x00000FF4
+_022370DC: .word 0x00000FF6
+_022370E0: .word 0x00000FFC
+_022370E4: .word 0x00003FFF
+ thumb_func_end MOD83_02237038
+
+ thumb_func_start MOD83_022370E8
+MOD83_022370E8: ; 0x022370E8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r0, #0
+ add r1, r7, #0
+ add r2, sp, #4
+ bl MOD83_02237038
+ add r6, r0, #0
+ mov r0, #1
+ add r1, r7, #0
+ add r2, sp, #0
+ bl MOD83_02237038
+ cmp r6, #1
+ bne _02237160
+ cmp r0, #1
+ bne _02237160
+ mov r1, #0
+ ldr r0, [sp, #4]
+ mvn r1, r1
+ cmp r0, r1
+ bne _02237120
+ ldr r3, [sp]
+ cmp r3, #0
+ beq _0223712E
+_02237120:
+ cmp r0, #0
+ bne _02237146
+ mov r1, #0
+ ldr r3, [sp]
+ mvn r1, r1
+ cmp r3, r1
+ bne _02237146
+_0223712E:
+ add r2, r0, #1
+ add r1, r3, #1
+ cmp r2, r1
+ bhs _0223713E
+ str r3, [r4]
+ mov r0, #1
+ str r0, [r5]
+ b _0223715A
+_0223713E:
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5]
+ b _0223715A
+_02237146:
+ ldr r1, [sp]
+ cmp r0, r1
+ bhs _02237154
+ str r1, [r4]
+ mov r0, #1
+ str r0, [r5]
+ b _0223715A
+_02237154:
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r5]
+_0223715A:
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02237160:
+ cmp r6, #1
+ bne _02237184
+ cmp r0, #1
+ beq _02237184
+ ldr r1, [sp, #4]
+ cmp r0, #0xff
+ str r1, [r4]
+ bne _0223717A
+ mov r0, #0
+ str r0, [r5]
+ add sp, #8
+ mov r0, #0xff
+ pop {r3, r4, r5, r6, r7, pc}
+_0223717A:
+ mov r0, #0
+ str r0, [r5]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02237184:
+ cmp r0, #1
+ bne _022371A6
+ cmp r6, #1
+ beq _022371A6
+ ldr r0, [sp]
+ cmp r6, #0xff
+ str r0, [r4]
+ bne _0223719E
+ mov r0, #1
+ str r0, [r5]
+ add sp, #8
+ mov r0, #0xff
+ pop {r3, r4, r5, r6, r7, pc}
+_0223719E:
+ mov r0, #1
+ add sp, #8
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_022371A6:
+ cmp r6, #0
+ bne _022371B8
+ cmp r0, #0
+ bne _022371B8
+ mov r0, #0
+ str r0, [r4]
+ add sp, #8
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_022371B8:
+ mov r0, #0
+ str r0, [r4]
+ str r0, [r5]
+ mov r0, #2
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_022370E8
+
+ thumb_func_start MOD83_022371C4
+MOD83_022371C4: ; 0x022371C4
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02237278 ; =0x0223BB18
+ ldr r1, _0223727C ; =0x0223BB18
+ ldr r0, [r0, #8]
+ ldr r2, _02237280 ; =0x0223BB28
+ bl MOD83_022370E8
+ cmp r0, #1
+ beq _022371EE
+ cmp r0, #0
+ beq _022371E6
+ cmp r0, #2
+ beq _022371EA
+ cmp r0, #0xff
+ bne _022371EE
+ mov r0, #5
+ pop {r3, r4, r5, r6, r7, pc}
+_022371E6:
+ mov r0, #7
+ pop {r3, r4, r5, r6, r7, pc}
+_022371EA:
+ mov r0, #6
+ pop {r3, r4, r5, r6, r7, pc}
+_022371EE:
+ ldr r7, _02237278 ; =0x0223BB18
+ ldr r0, [r7]
+ cmp r0, #1
+ bhi _02237272
+ mov r6, #0
+ ldr r5, [r7, #8]
+ add r4, r6, #0
+_022371FC:
+ ldr r1, [r7]
+ mov r0, #0xe
+ mul r0, r1
+ add r0, r4, r0
+ add r1, r5, #0
+ bl MOD83_02236F98
+ ldr r0, _02237284 ; =0x00000FF8
+ ldr r1, [r5, r0]
+ ldr r0, _02237288 ; =0x08012025
+ cmp r1, r0
+ bne _0223725E
+ ldr r0, _0223728C ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ bl MOD83_02236FAC
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD83_02236F68
+ ldr r1, _02237290 ; =0x00000FF6
+ ldrh r1, [r5, r1]
+ cmp r1, r0
+ bne _0223725E
+ ldr r0, _02237294 ; =0x00000FFC
+ mov r1, #1
+ ldr r0, [r5, r0]
+ str r0, [r7, #0x10]
+ ldr r0, _0223728C ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ lsl r1, r0
+ orr r6, r1
+ bl MOD83_02236FAC
+ str r0, [sp]
+ ldr r0, _0223728C ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ bl MOD83_02236FE4
+ add r1, r0, #0
+ ldr r2, [sp]
+ add r0, r5, #0
+ bl MIi_CpuCopy32
+ ldr r0, _0223728C ; =0x00000FF4
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ bne _0223725E
+ str r4, [r7, #0xc]
+_0223725E:
+ add r4, r4, #1
+ cmp r4, #0xe
+ blt _022371FC
+ ldr r0, _02237298 ; =0x00003FFF
+ cmp r6, r0
+ bne _0223726E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223726E:
+ mov r0, #4
+ pop {r3, r4, r5, r6, r7, pc}
+_02237272:
+ mov r0, #6
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02237278: .word 0x0223BB18
+_0223727C: .word 0x0223BB18
+_02237280: .word 0x0223BB28
+_02237284: .word 0x00000FF8
+_02237288: .word 0x08012025
+_0223728C: .word 0x00000FF4
+_02237290: .word 0x00000FF6
+_02237294: .word 0x00000FFC
+_02237298: .word 0x00003FFF
+ thumb_func_end MOD83_022371C4
+
+ thumb_func_start MOD83_0223729C
+MOD83_0223729C: ; 0x0223729C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _02237318 ; =0x0223BB18
+ mov r2, #1
+ ldr r4, [r0, #8]
+ str r2, [r0, #0x14]
+ mov r0, #0
+ add r1, r4, #0
+ lsl r2, r2, #0xc
+ bl MIi_CpuClear32
+ add r0, r5, #0
+ bl MOD83_02236FAC
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD83_02236FE4
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MIi_CpuCopy32
+ ldr r0, _02237318 ; =0x0223BB18
+ ldr r1, [r0, #0x10]
+ ldr r0, _0223731C ; =0x00000FFC
+ str r1, [r4, r0]
+ add r1, r0, #0
+ sub r1, #8
+ strh r5, [r4, r1]
+ ldr r1, _02237320 ; =0x08012025
+ sub r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl MOD83_02236FAC
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD83_02236F68
+ ldr r1, _02237324 ; =0x00000FF6
+ strh r0, [r4, r1]
+ ldr r0, _02237318 ; =0x0223BB18
+ mov r1, #0xe
+ ldr r0, [r0, #0xc]
+ add r0, r5, r0
+ add r0, r0, #1
+ bl _s32_div_f
+ ldr r0, _02237328 ; =0x0223B41C
+ ldr r3, _0223732C ; =MOD83_02237330
+ ldr r2, [r0, #4]
+ mov r0, #0xe
+ mul r0, r2
+ add r0, r1, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ add r1, r4, #0
+ mov r2, #4
+ bl CTRDG_WriteAndVerifyAgbFlashAsync
+ pop {r4, r5, r6, pc}
+ nop
+_02237318: .word 0x0223BB18
+_0223731C: .word 0x00000FFC
+_02237320: .word 0x08012025
+_02237324: .word 0x00000FF6
+_02237328: .word 0x0223B41C
+_0223732C: .word MOD83_02237330
+ thumb_func_end MOD83_0223729C
+
+ thumb_func_start MOD83_02237330
+MOD83_02237330: ; 0x02237330
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ bne _0223735C
+ ldr r1, _02237368 ; =0x0223BB18
+ ldr r0, [r1, #4]
+ add r0, r0, #1
+ str r0, [r1, #4]
+ cmp r0, #0xe
+ blt _0223734A
+ mov r0, #0
+ str r0, [r1, #4]
+ str r0, [r1, #0x14]
+ bx lr
+_0223734A:
+ cmp r0, #0xd
+ bne _02237356
+ mov r0, #2
+ str r0, [r1, #0x14]
+ mov r0, #0
+ bx lr
+_02237356:
+ mov r0, #3
+ str r0, [r1, #0x14]
+ b _02237362
+_0223735C:
+ ldr r0, _02237368 ; =0x0223BB18
+ mov r1, #4
+ str r1, [r0, #0x14]
+_02237362:
+ mov r0, #0
+ bx lr
+ nop
+_02237368: .word 0x0223BB18
+ thumb_func_end MOD83_02237330
+
+ thumb_func_start MOD83_0223736C
+MOD83_0223736C: ; 0x0223736C
+ push {r3, lr}
+ ldr r1, _022373AC ; =0x0223BB18
+ ldr r0, [r1, #4]
+ cmp r0, #0
+ bne _02237392
+ ldr r1, [r1]
+ cmp r1, #1
+ bne _02237382
+ mov r2, #0
+ ldr r1, _022373B0 ; =0x0223B41C
+ b _02237386
+_02237382:
+ ldr r1, _022373B0 ; =0x0223B41C
+ mov r2, #1
+_02237386:
+ str r2, [r1, #4]
+ ldr r1, _022373AC ; =0x0223BB18
+ ldr r2, [r1, #0x10]
+ add r2, r2, #1
+ str r2, [r1, #0x10]
+ b _02237396
+_02237392:
+ mov r0, #0
+ pop {r3, pc}
+_02237396:
+ ldr r1, _022373B0 ; =0x0223B41C
+ ldr r1, [r1, #4]
+ cmp r1, #0
+ bge _022373A2
+ mov r0, #0
+ pop {r3, pc}
+_022373A2:
+ bl MOD83_0223729C
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_022373AC: .word 0x0223BB18
+_022373B0: .word 0x0223B41C
+ thumb_func_end MOD83_0223736C
+
+ thumb_func_start MOD83_022373B4
+MOD83_022373B4: ; 0x022373B4
+ push {r3, lr}
+ ldr r1, _022373F0 ; =0x0223BB18
+ ldr r0, [r1, #0x14]
+ cmp r0, #4
+ bhi _022373EC
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022373CA: ; jump table
+ .short _022373EC - _022373CA - 2 ; case 0
+ .short _022373E4 - _022373CA - 2 ; case 1
+ .short _022373D4 - _022373CA - 2 ; case 2
+ .short _022373DE - _022373CA - 2 ; case 3
+ .short _022373E8 - _022373CA - 2 ; case 4
+_022373D4:
+ ldr r0, [r1, #4]
+ bl MOD83_0223729C
+ mov r0, #0
+ pop {r3, pc}
+_022373DE:
+ ldr r0, [r1, #4]
+ bl MOD83_0223729C
+_022373E4:
+ mov r0, #0xa
+ pop {r3, pc}
+_022373E8:
+ mov r0, #8
+ pop {r3, pc}
+_022373EC:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_022373F0: .word 0x0223BB18
+ thumb_func_end MOD83_022373B4
+
+ thumb_func_start MOD83_022373F4
+MOD83_022373F4: ; 0x022373F4
+ ldr r0, _02237428 ; =0x0223BB18
+ ldr r0, [r0, #0x14]
+ cmp r0, #4
+ bhi _02237422
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237408: ; jump table
+ .short _02237422 - _02237408 - 2 ; case 0
+ .short _0223741A - _02237408 - 2 ; case 1
+ .short _02237412 - _02237408 - 2 ; case 2
+ .short _02237416 - _02237408 - 2 ; case 3
+ .short _0223741E - _02237408 - 2 ; case 4
+_02237412:
+ mov r0, #0xb
+ bx lr
+_02237416:
+ mov r0, #0xa
+ bx lr
+_0223741A:
+ mov r0, #9
+ bx lr
+_0223741E:
+ mov r0, #8
+ bx lr
+_02237422:
+ mov r0, #0
+ bx lr
+ nop
+_02237428: .word 0x0223BB18
+ thumb_func_end MOD83_022373F4
+
+ thumb_func_start MOD83_0223742C
+MOD83_0223742C: ; 0x0223742C
+ ldr r0, _02237438 ; =0x0223BB18
+ ldr r1, [r0, #8]
+ mov r0, #6
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ bx lr
+ .align 2, 0
+_02237438: .word 0x0223BB18
+ thumb_func_end MOD83_0223742C
+
+ thumb_func_start MOD83_0223743C
+MOD83_0223743C: ; 0x0223743C
+ ldr r3, _02237444 ; =MOD83_02236FE4
+ mov r0, #0
+ bx r3
+ nop
+_02237444: .word MOD83_02236FE4
+ thumb_func_end MOD83_0223743C
+
+ thumb_func_start MOD83_02237448
+MOD83_02237448: ; 0x02237448
+ push {r3, lr}
+ bl MOD83_0223743C
+ ldrb r2, [r0, #0xb]
+ ldrb r1, [r0, #0xa]
+ lsl r3, r2, #8
+ ldrb r2, [r0, #0xd]
+ ldrb r0, [r0, #0xc]
+ lsl r2, r2, #0x18
+ lsl r0, r0, #0x10
+ orr r0, r2
+ orr r0, r3
+ orr r0, r1
+ pop {r3, pc}
+ thumb_func_end MOD83_02237448
+
+ thumb_func_start MOD83_02237464
+MOD83_02237464: ; 0x02237464
+ ldr r3, _02237468 ; =MOD83_0223743C
+ bx r3
+ .align 2, 0
+_02237468: .word MOD83_0223743C
+ thumb_func_end MOD83_02237464
+
+ thumb_func_start MOD83_0223746C
+MOD83_0223746C: ; 0x0223746C
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #0x18
+ add r5, r2, #0
+ mov r6, #0
+ bl _u32_div_f
+ cmp r1, #0x17
+ bhi _022374C2
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223748C: ; jump table
+ .short _022374BC - _0223748C - 2 ; case 0
+ .short _022374EE - _0223748C - 2 ; case 1
+ .short _0223751E - _0223748C - 2 ; case 2
+ .short _0223754E - _0223748C - 2 ; case 3
+ .short _0223757E - _0223748C - 2 ; case 4
+ .short _022375AE - _0223748C - 2 ; case 5
+ .short _022375DE - _0223748C - 2 ; case 6
+ .short _02237610 - _0223748C - 2 ; case 7
+ .short _02237640 - _0223748C - 2 ; case 8
+ .short _02237670 - _0223748C - 2 ; case 9
+ .short _022376A0 - _0223748C - 2 ; case 10
+ .short _022376D0 - _0223748C - 2 ; case 11
+ .short _02237700 - _0223748C - 2 ; case 12
+ .short _02237732 - _0223748C - 2 ; case 13
+ .short _02237762 - _0223748C - 2 ; case 14
+ .short _02237792 - _0223748C - 2 ; case 15
+ .short _022377C2 - _0223748C - 2 ; case 16
+ .short _022377F2 - _0223748C - 2 ; case 17
+ .short _02237822 - _0223748C - 2 ; case 18
+ .short _02237854 - _0223748C - 2 ; case 19
+ .short _02237884 - _0223748C - 2 ; case 20
+ .short _022378B4 - _0223748C - 2 ; case 21
+ .short _022378E4 - _0223748C - 2 ; case 22
+ .short _02237914 - _0223748C - 2 ; case 23
+_022374BC:
+ add r4, #0x20
+ cmp r5, #3
+ bls _022374C4
+_022374C2:
+ b _02237942
+_022374C4:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022374D0: ; jump table
+ .short _022374D8 - _022374D0 - 2 ; case 0
+ .short _022374DC - _022374D0 - 2 ; case 1
+ .short _022374E2 - _022374D0 - 2 ; case 2
+ .short _022374E8 - _022374D0 - 2 ; case 3
+_022374D8:
+ add r6, r4, #0
+ b _02237942
+_022374DC:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022374E2:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022374E8:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022374EE:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237500: ; jump table
+ .short _02237508 - _02237500 - 2 ; case 0
+ .short _0223750C - _02237500 - 2 ; case 1
+ .short _02237512 - _02237500 - 2 ; case 2
+ .short _02237518 - _02237500 - 2 ; case 3
+_02237508:
+ add r6, r4, #0
+ b _02237942
+_0223750C:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237512:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237518:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223751E:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237530: ; jump table
+ .short _02237538 - _02237530 - 2 ; case 0
+ .short _0223753C - _02237530 - 2 ; case 1
+ .short _02237542 - _02237530 - 2 ; case 2
+ .short _02237548 - _02237530 - 2 ; case 3
+_02237538:
+ add r6, r4, #0
+ b _02237942
+_0223753C:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237542:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237548:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_0223754E:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237560: ; jump table
+ .short _02237568 - _02237560 - 2 ; case 0
+ .short _0223756C - _02237560 - 2 ; case 1
+ .short _02237572 - _02237560 - 2 ; case 2
+ .short _02237578 - _02237560 - 2 ; case 3
+_02237568:
+ add r6, r4, #0
+ b _02237942
+_0223756C:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237572:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237578:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223757E:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237590: ; jump table
+ .short _02237598 - _02237590 - 2 ; case 0
+ .short _0223759C - _02237590 - 2 ; case 1
+ .short _022375A2 - _02237590 - 2 ; case 2
+ .short _022375A8 - _02237590 - 2 ; case 3
+_02237598:
+ add r6, r4, #0
+ b _02237942
+_0223759C:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022375A2:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022375A8:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022375AE:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _022375E4
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022375C0: ; jump table
+ .short _022375C8 - _022375C0 - 2 ; case 0
+ .short _022375CC - _022375C0 - 2 ; case 1
+ .short _022375D2 - _022375C0 - 2 ; case 2
+ .short _022375D8 - _022375C0 - 2 ; case 3
+_022375C8:
+ add r6, r4, #0
+ b _02237942
+_022375CC:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022375D2:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022375D8:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022375DE:
+ add r4, #0x20
+ cmp r5, #3
+ bls _022375E6
+_022375E4:
+ b _02237942
+_022375E6:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022375F2: ; jump table
+ .short _022375FA - _022375F2 - 2 ; case 0
+ .short _02237600 - _022375F2 - 2 ; case 1
+ .short _02237604 - _022375F2 - 2 ; case 2
+ .short _0223760A - _022375F2 - 2 ; case 3
+_022375FA:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237600:
+ add r6, r4, #0
+ b _02237942
+_02237604:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223760A:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237610:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237622: ; jump table
+ .short _0223762A - _02237622 - 2 ; case 0
+ .short _02237630 - _02237622 - 2 ; case 1
+ .short _02237634 - _02237622 - 2 ; case 2
+ .short _0223763A - _02237622 - 2 ; case 3
+_0223762A:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237630:
+ add r6, r4, #0
+ b _02237942
+_02237634:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_0223763A:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237640:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237652: ; jump table
+ .short _0223765A - _02237652 - 2 ; case 0
+ .short _02237660 - _02237652 - 2 ; case 1
+ .short _02237664 - _02237652 - 2 ; case 2
+ .short _0223766A - _02237652 - 2 ; case 3
+_0223765A:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237660:
+ add r6, r4, #0
+ b _02237942
+_02237664:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_0223766A:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237670:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237682: ; jump table
+ .short _0223768A - _02237682 - 2 ; case 0
+ .short _02237690 - _02237682 - 2 ; case 1
+ .short _02237694 - _02237682 - 2 ; case 2
+ .short _0223769A - _02237682 - 2 ; case 3
+_0223768A:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237690:
+ add r6, r4, #0
+ b _02237942
+_02237694:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_0223769A:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022376A0:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022376B2: ; jump table
+ .short _022376BA - _022376B2 - 2 ; case 0
+ .short _022376C0 - _022376B2 - 2 ; case 1
+ .short _022376C4 - _022376B2 - 2 ; case 2
+ .short _022376CA - _022376B2 - 2 ; case 3
+_022376BA:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022376C0:
+ add r6, r4, #0
+ b _02237942
+_022376C4:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022376CA:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022376D0:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237706
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022376E2: ; jump table
+ .short _022376EA - _022376E2 - 2 ; case 0
+ .short _022376F0 - _022376E2 - 2 ; case 1
+ .short _022376F4 - _022376E2 - 2 ; case 2
+ .short _022376FA - _022376E2 - 2 ; case 3
+_022376EA:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022376F0:
+ add r6, r4, #0
+ b _02237942
+_022376F4:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022376FA:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237700:
+ add r4, #0x20
+ cmp r5, #3
+ bls _02237708
+_02237706:
+ b _02237942
+_02237708:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237714: ; jump table
+ .short _0223771C - _02237714 - 2 ; case 0
+ .short _02237722 - _02237714 - 2 ; case 1
+ .short _02237728 - _02237714 - 2 ; case 2
+ .short _0223772C - _02237714 - 2 ; case 3
+_0223771C:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237722:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237728:
+ add r6, r4, #0
+ b _02237942
+_0223772C:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237732:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237744: ; jump table
+ .short _0223774C - _02237744 - 2 ; case 0
+ .short _02237752 - _02237744 - 2 ; case 1
+ .short _02237758 - _02237744 - 2 ; case 2
+ .short _0223775C - _02237744 - 2 ; case 3
+_0223774C:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237752:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237758:
+ add r6, r4, #0
+ b _02237942
+_0223775C:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237762:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237774: ; jump table
+ .short _0223777C - _02237774 - 2 ; case 0
+ .short _02237782 - _02237774 - 2 ; case 1
+ .short _02237788 - _02237774 - 2 ; case 2
+ .short _0223778C - _02237774 - 2 ; case 3
+_0223777C:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237782:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237788:
+ add r6, r4, #0
+ b _02237942
+_0223778C:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237792:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022377A4: ; jump table
+ .short _022377AC - _022377A4 - 2 ; case 0
+ .short _022377B2 - _022377A4 - 2 ; case 1
+ .short _022377B8 - _022377A4 - 2 ; case 2
+ .short _022377BC - _022377A4 - 2 ; case 3
+_022377AC:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022377B2:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022377B8:
+ add r6, r4, #0
+ b _02237942
+_022377BC:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022377C2:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022377D4: ; jump table
+ .short _022377DC - _022377D4 - 2 ; case 0
+ .short _022377E2 - _022377D4 - 2 ; case 1
+ .short _022377E8 - _022377D4 - 2 ; case 2
+ .short _022377EC - _022377D4 - 2 ; case 3
+_022377DC:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022377E2:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022377E8:
+ add r6, r4, #0
+ b _02237942
+_022377EC:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022377F2:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237828
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237804: ; jump table
+ .short _0223780C - _02237804 - 2 ; case 0
+ .short _02237812 - _02237804 - 2 ; case 1
+ .short _02237818 - _02237804 - 2 ; case 2
+ .short _0223781C - _02237804 - 2 ; case 3
+_0223780C:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237812:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237818:
+ add r6, r4, #0
+ b _02237942
+_0223781C:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237822:
+ add r4, #0x20
+ cmp r5, #3
+ bls _0223782A
+_02237828:
+ b _02237942
+_0223782A:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237836: ; jump table
+ .short _0223783E - _02237836 - 2 ; case 0
+ .short _02237844 - _02237836 - 2 ; case 1
+ .short _0223784A - _02237836 - 2 ; case 2
+ .short _02237850 - _02237836 - 2 ; case 3
+_0223783E:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237844:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223784A:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237850:
+ add r6, r4, #0
+ b _02237942
+_02237854:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237866: ; jump table
+ .short _0223786E - _02237866 - 2 ; case 0
+ .short _02237874 - _02237866 - 2 ; case 1
+ .short _0223787A - _02237866 - 2 ; case 2
+ .short _02237880 - _02237866 - 2 ; case 3
+_0223786E:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237874:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_0223787A:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237880:
+ add r6, r4, #0
+ b _02237942
+_02237884:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237896: ; jump table
+ .short _0223789E - _02237896 - 2 ; case 0
+ .short _022378A4 - _02237896 - 2 ; case 1
+ .short _022378AA - _02237896 - 2 ; case 2
+ .short _022378B0 - _02237896 - 2 ; case 3
+_0223789E:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022378A4:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022378AA:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022378B0:
+ add r6, r4, #0
+ b _02237942
+_022378B4:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022378C6: ; jump table
+ .short _022378CE - _022378C6 - 2 ; case 0
+ .short _022378D4 - _022378C6 - 2 ; case 1
+ .short _022378DA - _022378C6 - 2 ; case 2
+ .short _022378E0 - _022378C6 - 2 ; case 3
+_022378CE:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_022378D4:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_022378DA:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_022378E0:
+ add r6, r4, #0
+ b _02237942
+_022378E4:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022378F6: ; jump table
+ .short _022378FE - _022378F6 - 2 ; case 0
+ .short _02237904 - _022378F6 - 2 ; case 1
+ .short _0223790A - _022378F6 - 2 ; case 2
+ .short _02237910 - _022378F6 - 2 ; case 3
+_022378FE:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_02237904:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_0223790A:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237910:
+ add r6, r4, #0
+ b _02237942
+_02237914:
+ add r4, #0x20
+ cmp r5, #3
+ bhi _02237942
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237926: ; jump table
+ .short _0223792E - _02237926 - 2 ; case 0
+ .short _02237934 - _02237926 - 2 ; case 1
+ .short _0223793A - _02237926 - 2 ; case 2
+ .short _02237940 - _02237926 - 2 ; case 3
+_0223792E:
+ add r6, r4, #0
+ add r6, #0x24
+ b _02237942
+_02237934:
+ add r6, r4, #0
+ add r6, #0x18
+ b _02237942
+_0223793A:
+ add r6, r4, #0
+ add r6, #0xc
+ b _02237942
+_02237940:
+ add r6, r4, #0
+_02237942:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_0223746C
+
+ thumb_func_start MOD83_02237948
+MOD83_02237948: ; 0x02237948
+ push {r3, r4}
+ add r4, r0, #0
+ mov r3, #0
+ add r4, #0x20
+_02237950:
+ ldr r2, [r4]
+ ldr r1, [r0, #4]
+ add r3, r3, #1
+ eor r2, r1
+ str r2, [r4]
+ ldr r1, [r0]
+ eor r1, r2
+ stmia r4!, {r1}
+ cmp r3, #0xc
+ blo _02237950
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD83_02237948
+
+ thumb_func_start MOD83_02237968
+MOD83_02237968: ; 0x02237968
+ push {r3, r4}
+ add r4, r0, #0
+ mov r3, #0
+ add r4, #0x20
+_02237970:
+ ldr r2, [r4]
+ ldr r1, [r0]
+ add r3, r3, #1
+ eor r2, r1
+ str r2, [r4]
+ ldr r1, [r0, #4]
+ eor r1, r2
+ stmia r4!, {r1}
+ cmp r3, #0xc
+ blo _02237970
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD83_02237968
+
+ thumb_func_start MOD83_02237988
+MOD83_02237988: ; 0x02237988
+ push {r3, r4, r5, r6, r7, lr}
+ add r1, r0, #0
+ mov r4, #0
+ ldr r1, [r1]
+ str r0, [sp]
+ add r2, r4, #0
+ bl MOD83_0223746C
+ add r5, r0, #0
+ ldr r0, [sp]
+ mov r2, #1
+ add r1, r0, #0
+ ldr r1, [r1]
+ bl MOD83_0223746C
+ add r6, r0, #0
+ ldr r0, [sp]
+ mov r2, #2
+ add r1, r0, #0
+ ldr r1, [r1]
+ bl MOD83_0223746C
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r2, #3
+ add r1, r0, #0
+ ldr r1, [r1]
+ bl MOD83_0223746C
+ add r1, r4, #0
+_022379C4:
+ ldrh r2, [r5]
+ add r1, r1, #1
+ add r5, r5, #2
+ add r2, r4, r2
+ lsl r2, r2, #0x10
+ lsr r4, r2, #0x10
+ cmp r1, #6
+ blt _022379C4
+ mov r2, #0
+_022379D6:
+ ldrh r1, [r6]
+ add r2, r2, #1
+ add r6, r6, #2
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r2, #6
+ blt _022379D6
+ mov r2, #0
+_022379E8:
+ ldrh r1, [r7]
+ add r2, r2, #1
+ add r7, r7, #2
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r2, #6
+ blt _022379E8
+ mov r2, #0
+_022379FA:
+ ldrh r1, [r0]
+ add r2, r2, #1
+ add r0, r0, #2
+ add r1, r4, r1
+ lsl r1, r1, #0x10
+ lsr r4, r1, #0x10
+ cmp r2, #6
+ blt _022379FA
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02237988
+
+ thumb_func_start MOD83_02237A10
+MOD83_02237A10: ; 0x02237A10
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r4, #0
+ add r5, r0, #0
+ str r1, [sp]
+ add r7, r2, #0
+ add r6, r4, #0
+ str r4, [sp, #0xc]
+ str r4, [sp, #8]
+ str r4, [sp, #4]
+ cmp r1, #0xa
+ ble _02237A86
+ ldr r1, [r5]
+ add r2, r4, #0
+ bl MOD83_0223746C
+ str r0, [sp, #0xc]
+ ldr r1, [r5]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD83_0223746C
+ str r0, [sp, #8]
+ ldr r1, [r5]
+ add r0, r5, #0
+ mov r2, #2
+ bl MOD83_0223746C
+ str r0, [sp, #4]
+ ldr r1, [r5]
+ add r0, r5, #0
+ mov r2, #3
+ bl MOD83_0223746C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD83_02237948
+ add r0, r5, #0
+ bl MOD83_02237988
+ ldrh r1, [r5, #0x1c]
+ cmp r0, r1
+ beq _02237A86
+ ldrb r0, [r5, #0x13]
+ mov r1, #1
+ bic r0, r1
+ mov r1, #1
+ orr r0, r1
+ strb r0, [r5, #0x13]
+ ldrb r1, [r5, #0x13]
+ mov r0, #4
+ orr r0, r1
+ strb r0, [r5, #0x13]
+ mov r0, #1
+ ldr r1, [r6, #4]
+ lsl r0, r0, #0x1e
+ orr r0, r1
+ str r0, [r6, #4]
+_02237A86:
+ ldr r0, [sp]
+ cmp r0, #0x50
+ bls _02237A8E
+ b _02237D7C
+_02237A8E:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237A9A: ; jump table
+ .short _02237B3C - _02237A9A - 2 ; case 0
+ .short _02237B40 - _02237A9A - 2 ; case 1
+ .short _02237B44 - _02237A9A - 2 ; case 2
+ .short _02237B64 - _02237A9A - 2 ; case 3
+ .short _02237B68 - _02237A9A - 2 ; case 4
+ .short _02237B70 - _02237A9A - 2 ; case 5
+ .short _02237B78 - _02237A9A - 2 ; case 6
+ .short _02237B80 - _02237A9A - 2 ; case 7
+ .short _02237B94 - _02237A9A - 2 ; case 8
+ .short _02237B98 - _02237A9A - 2 ; case 9
+ .short _02237B9C - _02237A9A - 2 ; case 10
+ .short _02237BA0 - _02237A9A - 2 ; case 11
+ .short _02237BB4 - _02237A9A - 2 ; case 12
+ .short _02237BCC - _02237A9A - 2 ; case 13
+ .short _02237BCC - _02237A9A - 2 ; case 14
+ .short _02237BCC - _02237A9A - 2 ; case 15
+ .short _02237BCC - _02237A9A - 2 ; case 16
+ .short _02237BD8 - _02237A9A - 2 ; case 17
+ .short _02237BD8 - _02237A9A - 2 ; case 18
+ .short _02237BD8 - _02237A9A - 2 ; case 19
+ .short _02237BD8 - _02237A9A - 2 ; case 20
+ .short _02237BC0 - _02237A9A - 2 ; case 21
+ .short _02237C08 - _02237A9A - 2 ; case 22
+ .short _02237C0E - _02237A9A - 2 ; case 23
+ .short _02237C14 - _02237A9A - 2 ; case 24
+ .short _02237BBA - _02237A9A - 2 ; case 25
+ .short _02237BE4 - _02237A9A - 2 ; case 26
+ .short _02237BEA - _02237A9A - 2 ; case 27
+ .short _02237BF0 - _02237A9A - 2 ; case 28
+ .short _02237BF6 - _02237A9A - 2 ; case 29
+ .short _02237BFC - _02237A9A - 2 ; case 30
+ .short _02237C02 - _02237A9A - 2 ; case 31
+ .short _02237BC6 - _02237A9A - 2 ; case 32
+ .short _02237C1A - _02237A9A - 2 ; case 33
+ .short _02237C2C - _02237A9A - 2 ; case 34
+ .short _02237C34 - _02237A9A - 2 ; case 35
+ .short _02237C3C - _02237A9A - 2 ; case 36
+ .short _02237C44 - _02237A9A - 2 ; case 37
+ .short _02237C4C - _02237A9A - 2 ; case 38
+ .short _02237C5A - _02237A9A - 2 ; case 39
+ .short _02237C62 - _02237A9A - 2 ; case 40
+ .short _02237C6A - _02237A9A - 2 ; case 41
+ .short _02237C72 - _02237A9A - 2 ; case 42
+ .short _02237C7A - _02237A9A - 2 ; case 43
+ .short _02237C82 - _02237A9A - 2 ; case 44
+ .short _02237C8A - _02237A9A - 2 ; case 45
+ .short _02237C92 - _02237A9A - 2 ; case 46
+ .short _02237C20 - _02237A9A - 2 ; case 47
+ .short _02237C26 - _02237A9A - 2 ; case 48
+ .short _02237C54 - _02237A9A - 2 ; case 49
+ .short _02237C98 - _02237A9A - 2 ; case 50
+ .short _02237CA0 - _02237A9A - 2 ; case 51
+ .short _02237CA8 - _02237A9A - 2 ; case 52
+ .short _02237CB0 - _02237A9A - 2 ; case 53
+ .short _02237CB8 - _02237A9A - 2 ; case 54
+ .short _02237D7C - _02237A9A - 2 ; case 55
+ .short _02237D7C - _02237A9A - 2 ; case 56
+ .short _02237D7C - _02237A9A - 2 ; case 57
+ .short _02237D7C - _02237A9A - 2 ; case 58
+ .short _02237D7C - _02237A9A - 2 ; case 59
+ .short _02237D7C - _02237A9A - 2 ; case 60
+ .short _02237D7C - _02237A9A - 2 ; case 61
+ .short _02237D7C - _02237A9A - 2 ; case 62
+ .short _02237D7C - _02237A9A - 2 ; case 63
+ .short _02237D7C - _02237A9A - 2 ; case 64
+ .short _02237D2E - _02237A9A - 2 ; case 65
+ .short _02237D4C - _02237A9A - 2 ; case 66
+ .short _02237CC0 - _02237A9A - 2 ; case 67
+ .short _02237CC8 - _02237A9A - 2 ; case 68
+ .short _02237CD0 - _02237A9A - 2 ; case 69
+ .short _02237CD8 - _02237A9A - 2 ; case 70
+ .short _02237CE0 - _02237A9A - 2 ; case 71
+ .short _02237CE8 - _02237A9A - 2 ; case 72
+ .short _02237CF0 - _02237A9A - 2 ; case 73
+ .short _02237CF8 - _02237A9A - 2 ; case 74
+ .short _02237D00 - _02237A9A - 2 ; case 75
+ .short _02237D08 - _02237A9A - 2 ; case 76
+ .short _02237D10 - _02237A9A - 2 ; case 77
+ .short _02237D18 - _02237A9A - 2 ; case 78
+ .short _02237D20 - _02237A9A - 2 ; case 79
+ .short _02237D28 - _02237A9A - 2 ; case 80
+_02237B3C:
+ ldr r4, [r5]
+ b _02237D7C
+_02237B40:
+ ldr r4, [r5, #4]
+ b _02237D7C
+_02237B44:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _02237B50
+ mov r4, #0
+ b _02237B5E
+_02237B50:
+ mov r4, #0
+_02237B52:
+ add r0, r5, r4
+ ldrb r0, [r0, #8]
+ strb r0, [r7, r4]
+ add r4, r4, #1
+ cmp r4, #0xa
+ blo _02237B52
+_02237B5E:
+ mov r0, #0xff
+ strb r0, [r7, r4]
+ b _02237D7C
+_02237B64:
+ ldrb r4, [r5, #0x12]
+ b _02237D7C
+_02237B68:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1f
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237B70:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1e
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237B78:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1d
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237B80:
+ mov r4, #0
+_02237B82:
+ add r0, r5, r4
+ ldrb r0, [r0, #0x14]
+ strb r0, [r7, r4]
+ add r4, r4, #1
+ cmp r4, #7
+ blo _02237B82
+ mov r0, #0xff
+ strb r0, [r7, r4]
+ b _02237D7C
+_02237B94:
+ ldrb r4, [r5, #0x1b]
+ b _02237D7C
+_02237B98:
+ ldrh r4, [r5, #0x1c]
+ b _02237D7C
+_02237B9C:
+ ldrh r4, [r5, #0x1e]
+ b _02237D7C
+_02237BA0:
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _02237BAE
+ mov r4, #0x67
+ lsl r4, r4, #2
+ b _02237D7C
+_02237BAE:
+ ldr r0, [sp, #0xc]
+ ldrh r4, [r0]
+ b _02237D7C
+_02237BB4:
+ ldr r0, [sp, #0xc]
+ ldrh r4, [r0, #2]
+ b _02237D7C
+_02237BBA:
+ ldr r0, [sp, #0xc]
+ ldr r4, [r0, #4]
+ b _02237D7C
+_02237BC0:
+ ldr r0, [sp, #0xc]
+ ldrb r4, [r0, #8]
+ b _02237D7C
+_02237BC6:
+ ldr r0, [sp, #0xc]
+ ldrb r4, [r0, #9]
+ b _02237D7C
+_02237BCC:
+ ldr r0, [sp]
+ sub r0, #0xd
+ lsl r1, r0, #1
+ ldr r0, [sp, #8]
+ ldrh r4, [r0, r1]
+ b _02237D7C
+_02237BD8:
+ ldr r1, [sp]
+ ldr r0, [sp, #8]
+ sub r1, #0x11
+ add r0, r0, r1
+ ldrb r4, [r0, #8]
+ b _02237D7C
+_02237BE4:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0]
+ b _02237D7C
+_02237BEA:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #1]
+ b _02237D7C
+_02237BF0:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #2]
+ b _02237D7C
+_02237BF6:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #3]
+ b _02237D7C
+_02237BFC:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #4]
+ b _02237D7C
+_02237C02:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #5]
+ b _02237D7C
+_02237C08:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #6]
+ b _02237D7C
+_02237C0E:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #7]
+ b _02237D7C
+_02237C14:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #8]
+ b _02237D7C
+_02237C1A:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #9]
+ b _02237D7C
+_02237C20:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #0xa]
+ b _02237D7C
+_02237C26:
+ ldr r0, [sp, #4]
+ ldrb r4, [r0, #0xb]
+ b _02237D7C
+_02237C2C:
+ ldr r0, [r6]
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ b _02237D7C
+_02237C34:
+ ldr r0, [r6]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x18
+ b _02237D7C
+_02237C3C:
+ ldr r0, [r6]
+ lsl r0, r0, #9
+ lsr r4, r0, #0x19
+ b _02237D7C
+_02237C44:
+ ldr r0, [r6]
+ lsl r0, r0, #5
+ lsr r4, r0, #0x1c
+ b _02237D7C
+_02237C4C:
+ ldr r0, [r6]
+ lsl r0, r0, #1
+ lsr r4, r0, #0x1c
+ b _02237D7C
+_02237C54:
+ ldr r0, [r6]
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237C5A:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0x1b
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C62:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0x16
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C6A:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0x11
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C72:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0xc
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C7A:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #7
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C82:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #2
+ lsr r4, r0, #0x1b
+ b _02237D7C
+_02237C8A:
+ ldr r0, [r6, #4]
+ lsl r0, r0, #1
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237C92:
+ ldr r0, [r6, #4]
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237C98:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x1d
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CA0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x1a
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CA8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x17
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CB0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x14
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CB8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x11
+ lsr r4, r0, #0x1d
+ b _02237D7C
+_02237CC0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CC8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xf
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CD0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xe
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CD8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xd
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CE0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xc
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CE8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xb
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CF0:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #0xa
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237CF8:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #9
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D00:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #8
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D08:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #7
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D10:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #6
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D18:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #5
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D20:
+ ldr r0, [r6, #8]
+ lsl r0, r0, #1
+ lsr r4, r0, #0x1c
+ b _02237D7C
+_02237D28:
+ ldr r0, [r6, #8]
+ lsr r4, r0, #0x1f
+ b _02237D7C
+_02237D2E:
+ ldr r0, [sp, #0xc]
+ ldrh r4, [r0]
+ cmp r4, #0
+ beq _02237D7C
+ ldr r0, [r6, #4]
+ lsl r0, r0, #1
+ lsr r0, r0, #0x1f
+ bne _02237D46
+ ldrb r0, [r5, #0x13]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _02237D7C
+_02237D46:
+ mov r4, #0x67
+ lsl r4, r4, #2
+ b _02237D7C
+_02237D4C:
+ ldr r4, [r6, #4]
+ lsl r0, r4, #2
+ lsr r0, r0, #0x1b
+ lsl r6, r0, #0x19
+ lsl r0, r4, #7
+ lsr r0, r0, #0x1b
+ lsl r3, r0, #0x14
+ lsl r0, r4, #0xc
+ lsr r0, r0, #0x1b
+ lsl r2, r0, #0xf
+ lsl r0, r4, #0x11
+ lsr r0, r0, #0x1b
+ lsl r1, r0, #0xa
+ lsl r0, r4, #0x1b
+ lsl r4, r4, #0x16
+ lsr r4, r4, #0x1b
+ lsr r0, r0, #0x1b
+ lsl r4, r4, #5
+ orr r0, r4
+ orr r0, r1
+ orr r0, r2
+ orr r0, r3
+ add r4, r6, #0
+ orr r4, r0
+_02237D7C:
+ ldr r0, [sp]
+ cmp r0, #0xa
+ ble _02237D88
+ add r0, r5, #0
+ bl MOD83_02237968
+_02237D88:
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02237A10
+
+ thumb_func_start MOD83_02237D90
+MOD83_02237D90: ; 0x02237D90
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ add r5, r2, #0
+ mov r7, #0
+ cmp r6, #0xa
+ ble _02237E04
+ ldr r1, [r4]
+ add r2, r7, #0
+ bl MOD83_0223746C
+ add r7, r0, #0
+ ldr r1, [r4]
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD83_0223746C
+ ldr r1, [r4]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD83_0223746C
+ ldr r1, [r4]
+ add r0, r4, #0
+ mov r2, #3
+ bl MOD83_0223746C
+ str r0, [sp]
+ add r0, r4, #0
+ bl MOD83_02237948
+ add r0, r4, #0
+ bl MOD83_02237988
+ ldrh r1, [r4, #0x1c]
+ cmp r0, r1
+ beq _02237E04
+ ldrb r1, [r4, #0x13]
+ mov r0, #1
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ ldrb r1, [r4, #0x13]
+ mov r0, #4
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ ldr r0, [sp]
+ ldr r1, [r0, #4]
+ mov r0, #1
+ lsl r0, r0, #0x1e
+ orr r1, r0
+ ldr r0, [sp]
+ str r1, [r0, #4]
+ add r0, r4, #0
+ bl MOD83_02237968
+ pop {r3, r4, r5, r6, r7, pc}
+_02237E04:
+ cmp r6, #0xb
+ bhi _02237EA8
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02237E14: ; jump table
+ .short _02237EA8 - _02237E14 - 2 ; case 0
+ .short _02237EA8 - _02237E14 - 2 ; case 1
+ .short _02237E2C - _02237E14 - 2 ; case 2
+ .short _02237E3C - _02237E14 - 2 ; case 3
+ .short _02237E42 - _02237E14 - 2 ; case 4
+ .short _02237E54 - _02237E14 - 2 ; case 5
+ .short _02237E66 - _02237E14 - 2 ; case 6
+ .short _02237E78 - _02237E14 - 2 ; case 7
+ .short _02237EA8 - _02237E14 - 2 ; case 8
+ .short _02237EA8 - _02237E14 - 2 ; case 9
+ .short _02237EA8 - _02237E14 - 2 ; case 10
+ .short _02237E88 - _02237E14 - 2 ; case 11
+_02237E2C:
+ mov r2, #0
+_02237E2E:
+ ldrb r1, [r5, r2]
+ add r0, r4, r2
+ add r2, r2, #1
+ strb r1, [r0, #8]
+ cmp r2, #0xa
+ blt _02237E2E
+ b _02237EA8
+_02237E3C:
+ ldrb r0, [r5]
+ strb r0, [r4, #0x12]
+ b _02237EA8
+_02237E42:
+ ldrb r0, [r4, #0x13]
+ ldrb r2, [r5]
+ mov r1, #1
+ bic r0, r1
+ mov r1, #1
+ and r1, r2
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ b _02237EA8
+_02237E54:
+ ldrb r0, [r4, #0x13]
+ mov r1, #2
+ bic r0, r1
+ ldrb r1, [r5]
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1e
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ b _02237EA8
+_02237E66:
+ ldrb r0, [r4, #0x13]
+ mov r1, #4
+ bic r0, r1
+ ldrb r1, [r5]
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1d
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ b _02237EA8
+_02237E78:
+ mov r2, #0
+_02237E7A:
+ ldrb r1, [r5, r2]
+ add r0, r4, r2
+ add r2, r2, #1
+ strb r1, [r0, #0x14]
+ cmp r2, #7
+ blt _02237E7A
+ b _02237EA8
+_02237E88:
+ ldrb r0, [r5, #1]
+ ldrb r1, [r5]
+ lsl r0, r0, #8
+ add r0, r1, r0
+ strh r0, [r7]
+ ldrh r0, [r7]
+ ldrb r1, [r4, #0x13]
+ cmp r0, #0
+ beq _02237EA2
+ mov r0, #2
+ orr r0, r1
+ strb r0, [r4, #0x13]
+ b _02237EA8
+_02237EA2:
+ mov r0, #2
+ bic r1, r0
+ strb r1, [r4, #0x13]
+_02237EA8:
+ cmp r6, #0xa
+ ble _02237EBA
+ add r0, r4, #0
+ bl MOD83_02237988
+ strh r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD83_02237968
+_02237EBA:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD83_02237D90
+
+ thumb_func_start MOD83_02237EBC
+MOD83_02237EBC: ; 0x02237EBC
+ ldr r2, _02237ED4 ; =0x00000115
+ cmp r0, r2
+ blt _02237ED2
+ add r1, r2, #0
+ add r1, #0x86
+ cmp r0, r1
+ bgt _02237ED2
+ sub r0, r0, r2
+ lsl r1, r0, #1
+ ldr r0, _02237ED8 ; =0x0223B57C
+ ldrh r0, [r0, r1]
+_02237ED2:
+ bx lr
+ .align 2, 0
+_02237ED4: .word 0x00000115
+_02237ED8: .word 0x0223B57C
+ thumb_func_end MOD83_02237EBC
+
+ thumb_func_start MOD83_02237EDC
+MOD83_02237EDC: ; 0x02237EDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD83_02237A10
+ bl MOD83_02237EBC
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #0x19
+ mov r2, #0
+ bl MOD83_02237A10
+ add r1, r0, #0
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02068800
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD83_02237EDC
+
+ thumb_func_start MOD83_02237F04
+MOD83_02237F04: ; 0x02237F04
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r0, r4, #0
+ mov r1, #0x2e
+ mov r2, #0
+ bl MOD83_02237A10
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0x19
+ bl FUN_02068678
+ cmp r0, #0
+ beq _02237F5E
+ ldr r2, _02237F68 ; =0x0223B4C0
+ mov r4, #0
+_02237F32:
+ ldrh r1, [r2]
+ cmp r5, r1
+ bne _02237F42
+ add r0, r5, #0
+ mov r1, #0x18
+ bl FUN_02068678
+ b _02237F4A
+_02237F42:
+ add r4, r4, #1
+ add r2, r2, #2
+ cmp r4, #0x5e
+ blo _02237F32
+_02237F4A:
+ cmp r4, #0x5e
+ bne _02237F66
+ mov r1, #1
+ tst r1, r6
+ bne _02237F66
+ add r0, r5, #0
+ mov r1, #0x18
+ bl FUN_02068678
+ pop {r4, r5, r6, pc}
+_02237F5E:
+ add r0, r5, #0
+ mov r1, #0x18
+ bl FUN_02068678
+_02237F66:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02237F68: .word 0x0223B4C0
+ thumb_func_end MOD83_02237F04
+
+ thumb_func_start MOD83_02237F6C
+MOD83_02237F6C: ; 0x02237F6C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r4, r1, #0
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_020669A0
+ add r0, r4, #0
+ bl FUN_02066A6C
+ mov r1, #0
+ str r0, [sp]
+ add r0, r6, #0
+ add r2, r1, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ bl MOD83_02237EBC
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #5
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ cmp r0, #0
+ beq _02237FCE
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206E6D8
+ str r0, [sp, #8]
+_02237FCE:
+ add r0, r4, #0
+ mov r1, #6
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #7
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x19
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #8
+ add r2, sp, #8
+ bl FUN_02067960
+ mov r0, #0x46
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #9
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD83_02237F04
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #8
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xb
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0xc
+ add r2, sp, #4
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1a
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xd
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1b
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xe
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1c
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xf
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1d
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x10
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1e
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x11
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x1f
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x12
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x16
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x13
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x17
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x14
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x18
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x15
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x21
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x16
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2f
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x17
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x30
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x18
+ add r2, sp, #8
+ bl FUN_02067960
+ mov r5, #0
+ add r7, r5, #0
+_0223815E:
+ add r1, r5, #0
+ add r0, r6, #0
+ add r1, #0xd
+ mov r2, #0
+ bl MOD83_02237A10
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x36
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x15
+ mov r2, #0
+ bl MOD83_02237A10
+ mov r1, #3
+ lsl r1, r7
+ str r0, [sp, #8]
+ and r0, r1
+ lsr r0, r7
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x3e
+ add r2, sp, #8
+ bl FUN_02067960
+ add r1, r5, #0
+ add r0, r4, #0
+ add r1, #0x42
+ mov r2, #0
+ bl FUN_020672BC
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x3a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ add r7, r7, #2
+ cmp r5, #4
+ blt _0223815E
+ add r0, r6, #0
+ mov r1, #0x27
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x46
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x28
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x47
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x29
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x48
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2a
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x49
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2b
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x4a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2c
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x4b
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x2d
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x4c
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x32
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _02238282
+ mov r5, #0
+ cmp r7, #0
+ ble _02238282
+_0223826C:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x4e
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223826C
+_02238282:
+ add r0, r6, #0
+ mov r1, #0x33
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _022382AE
+ mov r5, #0
+ cmp r7, #0
+ ble _022382AE
+_02238298:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x52
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _02238298
+_022382AE:
+ add r0, r6, #0
+ mov r1, #0x34
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _022382DA
+ mov r5, #0
+ cmp r7, #0
+ ble _022382DA
+_022382C4:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x56
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _022382C4
+_022382DA:
+ add r0, r6, #0
+ mov r1, #0x35
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _02238306
+ mov r5, #0
+ cmp r7, #0
+ ble _02238306
+_022382F0:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x5a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _022382F0
+_02238306:
+ add r0, r6, #0
+ mov r1, #0x36
+ mov r2, #0
+ bl MOD83_02237A10
+ add r7, r0, #0
+ cmp r7, #4
+ bgt _02238332
+ mov r5, #0
+ cmp r7, #0
+ ble _02238332
+_0223831C:
+ mov r0, #1
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, #0x5e
+ add r2, sp, #8
+ bl FUN_02067960
+ add r5, r5, #1
+ cmp r5, r7
+ blt _0223831C
+_02238332:
+ add r0, r6, #0
+ mov r1, #0x43
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x62
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x44
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x63
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x45
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x64
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x46
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x65
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x47
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x66
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x48
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x67
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x49
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x68
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4a
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x69
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4b
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6b
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4d
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6c
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x4e
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6d
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x50
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6e
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r4, #0
+ bl FUN_020689E8
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x6f
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ cmp r0, #0xc9
+ bne _022384AE
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ bl MOD83_02237A10
+ add r3, r0, #0
+ mov r7, #3
+ lsl r0, r7, #8
+ and r0, r3
+ lsr r1, r0, #6
+ lsl r0, r7, #0x18
+ and r0, r3
+ lsr r5, r0, #0x12
+ lsl r0, r7, #0x10
+ and r0, r3
+ lsr r0, r0, #0xc
+ add r2, r3, #0
+ orr r0, r5
+ orr r0, r1
+ and r2, r7
+ str r3, [sp, #8]
+ orr r0, r2
+ mov r1, #0x1c
+ bl _u32_div_f
+ str r1, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x70
+ add r2, sp, #8
+ bl FUN_02067960
+_022384AE:
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ ldr r1, _022385F0 ; =0x00000182
+ cmp r0, r1
+ bne _022384FE
+ ldr r0, _022385F4 ; =0x021C4918
+ ldrb r0, [r0, #6]
+ cmp r0, #5
+ bhi _022384DE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022384D2: ; jump table
+ .short _022384DE - _022384D2 - 2 ; case 0
+ .short _022384DE - _022384D2 - 2 ; case 1
+ .short _022384DE - _022384D2 - 2 ; case 2
+ .short _022384F0 - _022384D2 - 2 ; case 3
+ .short _022384E4 - _022384D2 - 2 ; case 4
+ .short _022384EA - _022384D2 - 2 ; case 5
+_022384DE:
+ mov r0, #0
+ str r0, [sp, #8]
+ b _022384F4
+_022384E4:
+ mov r0, #1
+ str r0, [sp, #8]
+ b _022384F4
+_022384EA:
+ mov r0, #2
+ str r0, [sp, #8]
+ b _022384F4
+_022384F0:
+ mov r0, #3
+ str r0, [sp, #8]
+_022384F4:
+ add r0, r4, #0
+ mov r1, #0x70
+ add r2, sp, #8
+ bl FUN_02067960
+_022384FE:
+ add r0, r6, #0
+ mov r1, #2
+ add r2, sp, #0x24
+ bl MOD83_02237A10
+ ldr r3, [sp, #4]
+ add r0, sp, #0x24
+ add r1, sp, #0xc
+ mov r2, #0xc
+ bl FUN_02015D88
+ add r0, r4, #0
+ mov r1, #0x75
+ add r2, sp, #0xc
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD83_02237A10
+ ldr r1, _022385F8 ; =0x020ECAC4
+ ldrb r1, [r1]
+ cmp r1, r0
+ beq _0223853E
+ mov r0, #1
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x4d
+ add r2, sp, #8
+ bl FUN_02067960
+_0223853E:
+ add r0, r6, #0
+ mov r1, #0x25
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x79
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #7
+ add r2, sp, #0x24
+ bl MOD83_02237A10
+ ldr r3, [sp, #4]
+ add r0, sp, #0x24
+ add r1, sp, #0xc
+ mov r2, #8
+ bl FUN_02015D88
+ add r0, r4, #0
+ mov r1, #0x8f
+ add r2, sp, #0xc
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x23
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x98
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x22
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x99
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x26
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x9a
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x24
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x9b
+ add r2, sp, #8
+ bl FUN_02067960
+ add r0, r6, #0
+ mov r1, #0x31
+ mov r2, #0
+ bl MOD83_02237A10
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x9c
+ add r2, sp, #8
+ bl FUN_02067960
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl FUN_02066A94
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022385F0: .word 0x00000182
+_022385F4: .word 0x021C4918
+_022385F8: .word 0x020ECAC4
+ thumb_func_end MOD83_02237F6C
+
+ thumb_func_start MOD83_022385FC
+MOD83_022385FC: ; 0x022385FC
+ ldr r1, _02238604 ; =0x0223BC2C
+ str r0, [r1]
+ bx lr
+ nop
+_02238604: .word 0x0223BC2C
+ thumb_func_end MOD83_022385FC
+
+ thumb_func_start MOD83_02238608
+MOD83_02238608: ; 0x02238608
+ add r1, r0, #0
+ ldr r0, _02238614 ; =0x0223BC2C
+ ldr r3, _02238618 ; =FUN_02016998
+ ldr r0, [r0]
+ bx r3
+ nop
+_02238614: .word 0x0223BC2C
+_02238618: .word FUN_02016998
+ thumb_func_end MOD83_02238608
+
+ thumb_func_start MOD83_0223861C
+MOD83_0223861C: ; 0x0223861C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x1fc
+ sub sp, #0x1fc
+ sub sp, #0x130
+ bl CTRDG_GetAgbGameCode
+ lsr r1, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ lsr r1, r0, #0x10
+ lsl r3, r0, #0x18
+ lsr r0, r0, #8
+ lsl r0, r0, #0x18
+ lsl r1, r1, #0x18
+ lsr r0, r0, #8
+ lsr r1, r1, #0x10
+ orr r0, r3
+ orr r0, r1
+ add r6, r2, #0
+ orr r6, r0
+ ldr r0, _022386B0 ; =0x0223B69C
+ mov r4, #0
+ ldr r0, [r0]
+ cmp r0, #0
+ bls _022386A6
+ ldr r5, _022386B4 ; =0x0223B69C
+ add r7, sp, #0x80
+_02238652:
+ ldr r0, [r5]
+ cmp r6, r0
+ bne _0223869C
+ mov r0, #1
+ bl CTRDG_Enable
+ mov r0, #0x81
+ ldr r2, _022386B8 ; =0x000004A8
+ lsl r0, r0, #0x14
+ add r1, r7, #0
+ bl CTRDG_CpuCopy8
+ ldr r0, _022386BC ; =0x08020000
+ add r1, sp, #0
+ mov r2, #0x80
+ bl CTRDG_CpuCopy8
+ mov r0, #0
+ bl CTRDG_Enable
+ ldr r0, _022386C0 ; =MOD83_02238608
+ ldr r1, _022386C4 ; =FUN_02016A18
+ bl SetCustomAllocator
+ ldr r1, _022386B8 ; =0x000004A8
+ ldr r3, _022386C8 ; =0x0223A6B4
+ add r0, r7, #0
+ add r2, sp, #0
+ bl FUN_020910EC
+ cmp r0, #0
+ beq _0223869C
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x130
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0223869C:
+ add r5, r5, #4
+ ldr r0, [r5]
+ add r4, r4, #1
+ cmp r4, r0
+ blo _02238652
+_022386A6:
+ mov r0, #0
+ add sp, #0x1fc
+ add sp, #0x1fc
+ add sp, #0x130
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022386B0: .word 0x0223B69C
+_022386B4: .word 0x0223B69C
+_022386B8: .word 0x000004A8
+_022386BC: .word 0x08020000
+_022386C0: .word MOD83_02238608
+_022386C4: .word FUN_02016A18
+_022386C8: .word 0x0223A6B4
+ thumb_func_end MOD83_0223861C
+
+ thumb_func_start MOD83_022386CC
+MOD83_022386CC: ; 0x022386CC
+ push {r3, lr}
+ bl CTRDG_Init
+ bl CTRDG_IsAgbCartridge
+ cmp r0, #0
+ bne _022386DE
+ mov r0, #0
+ pop {r3, pc}
+_022386DE:
+ bl CTRDG_GetAgbMakerCode
+ ldr r1, _022386FC ; =0x00003130
+ cmp r0, r1
+ beq _022386EC
+ mov r0, #0
+ pop {r3, pc}
+_022386EC:
+ bl MOD83_0223861C
+ cmp r0, #0
+ beq _022386F8
+ mov r0, #1
+ pop {r3, pc}
+_022386F8:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_022386FC: .word 0x00003130
+ thumb_func_end MOD83_022386CC
+
+ thumb_func_start MOD83_02238700
+MOD83_02238700: ; 0x02238700
+ push {r3, lr}
+ bl MOD83_022386CC
+ cmp r0, #0
+ bne _0223870E
+ mov r0, #0
+ pop {r3, pc}
+_0223870E:
+ mov r0, #1
+ bl CTRDG_Enable
+ mov r0, #0x81
+ lsl r0, r0, #0x14
+ add r1, sp, #0
+ bl CTRDG_Read32
+ mov r0, #0
+ bl CTRDG_Enable
+ ldr r0, [sp]
+ pop {r3, pc}
+ thumb_func_end MOD83_02238700
+
+ thumb_func_start MOD83_02238728
+MOD83_02238728: ; 0x02238728
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD83_022386CC
+ cmp r0, #0
+ bne _0223873A
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0223873A:
+ cmp r4, #0
+ bne _02238744
+ bl MOD83_02238700
+ add r4, r0, #0
+_02238744:
+ mov r0, #1
+ bl CTRDG_Enable
+ ldr r0, _0223876C ; =0x08100100
+ add r1, r5, #0
+ add r2, r4, #0
+ bl CTRDG_CpuCopy16
+ add r4, r0, #0
+ mov r0, #0
+ bl CTRDG_Enable
+ bl CTRDG_IsExisting
+ cmp r0, #0
+ bne _02238768
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02238768:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223876C: .word 0x08100100
+ thumb_func_end MOD83_02238728
+
+ thumb_func_start MOD83_02238770
+MOD83_02238770: ; 0x02238770
+ push {r3, r4, r5, r6}
+ add r4, r0, #0
+ mov r0, #0
+ ldr r6, _02238798 ; =0x0223BC30
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ mov r5, #0x75
+_02238780:
+ stmia r6!, {r0, r1, r2, r3}
+ stmia r6!, {r0, r1, r2, r3}
+ sub r5, r5, #1
+ bne _02238780
+ str r0, [r6]
+ ldr r0, _0223879C ; =0x0223BC30
+ mov r1, #1
+ str r1, [r0]
+ str r4, [r0, #4]
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_02238798: .word 0x0223BC30
+_0223879C: .word 0x0223BC30
+ thumb_func_end MOD83_02238770
+
+ thumb_func_start MOD83_022387A0
+MOD83_022387A0: ; 0x022387A0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ add r6, r1, #0
+ mov r0, #3
+ add r2, r3, #0
+ bl FUN_0201681C
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_02006268
+ mov r1, #0
+ add r2, r4, #0
+ add r5, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD83_022387A0
+
+ thumb_func_start MOD83_022387D8
+MOD83_022387D8: ; 0x022387D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ ldr r5, _0223885C ; =0x0223A760
+ add r6, r3, #0
+ add r7, r0, #0
+ add r4, r1, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ cmp r2, #4
+ str r0, [r3]
+ add r0, sp, #0
+ strb r2, [r0, #0x10]
+ bhi _02238832
+ add r0, r2, r2
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0223880A: ; jump table
+ .short _02238832 - _0223880A - 2 ; case 0
+ .short _02238814 - _0223880A - 2 ; case 1
+ .short _0223881C - _0223880A - 2 ; case 2
+ .short _02238824 - _0223880A - 2 ; case 3
+ .short _0223882C - _0223880A - 2 ; case 4
+_02238814:
+ mov r0, #2
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ b _02238832
+_0223881C:
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ b _02238832
+_02238824:
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ b _02238832
+_0223882C:
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+_02238832:
+ lsr r1, r6, #0xb
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ ldr r1, [sp, #0x30]
+ add r2, sp, #0
+ lsr r1, r1, #0xe
+ strb r1, [r0, #0x13]
+ lsl r1, r4, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ mov r3, #0
+ bl FUN_02016C18
+ lsl r1, r4, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0223885C: .word 0x0223A760
+ thumb_func_end MOD83_022387D8
+
+ thumb_func_start MOD83_02238860
+MOD83_02238860: ; 0x02238860
+ ldr r1, _02238868 ; =0x0223BC30
+ str r0, [r1, #0xc]
+ bx lr
+ nop
+_02238868: .word 0x0223BC30
+ thumb_func_end MOD83_02238860
+
+ thumb_func_start MOD83_0223886C
+MOD83_0223886C: ; 0x0223886C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, _022388C0 ; =0x0223BC30
+ add r5, r1, #0
+ ldr r0, [r0, #0xc]
+ add r4, r2, #0
+ add r6, r3, #0
+ ldr r7, _022388C4 ; =0x0223BC30
+ cmp r0, #0
+ bne _0223889C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r7, #4]
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ b _022388B4
+_0223889C:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r7, #4]
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #8]
+ ldr r3, _022388C8 ; =0x00007FFF
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+_022388B4:
+ cmp r4, #0
+ beq _022388BA
+ str r6, [r4]
+_022388BA:
+ str r5, [r7, #8]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022388C0: .word 0x0223BC30
+_022388C4: .word 0x0223BC30
+_022388C8: .word 0x00007FFF
+ thumb_func_end MOD83_0223886C
+
+ thumb_func_start MOD83_022388CC
+MOD83_022388CC: ; 0x022388CC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r5, _022388E0 ; =0x0223BC30
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _022388DE
+ ldr r0, [r5, #8]
+ str r0, [r4]
+_022388DE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022388E0: .word 0x0223BC30
+ thumb_func_end MOD83_022388CC
+
+ thumb_func_start MOD83_022388E4
+MOD83_022388E4: ; 0x022388E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r1, #0
+ mov r2, #0x54
+ add r5, r0, #0
+ add r7, r3, #0
+ bl Call_FillMemWithValue
+ mov r0, #1
+ str r0, [r5, #4]
+ str r0, [r5, #8]
+ sub r0, r0, #2
+ str r0, [r5, #0x4c]
+ str r4, [r5, #0x10]
+ str r6, [r5, #0x30]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #0x34]
+ str r0, [r5, #0x38]
+ ldr r0, [sp, #0x1c]
+ mov r2, #0
+ str r0, [r5, #0x3c]
+ str r2, [r5, #0x2c]
+ ldr r0, _02238930 ; =0x0001020F
+ str r2, [r5, #0x40]
+ str r0, [r5, #0x44]
+ add r0, r5, #0
+ mov r1, #0xf
+ add r0, #0x48
+ strb r1, [r0]
+ str r2, [r5]
+ str r2, [r5, #0x24]
+ str r2, [r5, #0x20]
+ str r2, [r5, #0x14]
+ mov r0, #0xff
+ str r0, [r5, #0x50]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02238930: .word 0x0001020F
+ thumb_func_end MOD83_022388E4
+
+ thumb_func_start MOD83_02238934
+MOD83_02238934: ; 0x02238934
+ str r1, [r0, #0x18]
+ str r2, [r0, #0x1c]
+ str r3, [r0, #0x28]
+ bx lr
+ thumb_func_end MOD83_02238934
+
+ thumb_func_start MOD83_0223893C
+MOD83_0223893C: ; 0x0223893C
+ str r1, [r0]
+ str r2, [r0, #0x40]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0223893C
+
+ thumb_func_start MOD83_02238944
+MOD83_02238944: ; 0x02238944
+ str r1, [r0, #0x20]
+ str r2, [r0, #0x24]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02238944
+
+ thumb_func_start MOD83_0223894C
+MOD83_0223894C: ; 0x0223894C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ ldr r4, _02238A34 ; =0x0223BC30
+ cmp r1, r0
+ beq _02238A2A
+ ldr r0, [r5, #0x4c]
+ cmp r0, r1
+ beq _02238A2A
+ str r1, [r5, #0x4c]
+ ldr r0, [r5, #8]
+ cmp r0, #1
+ bne _02238976
+ add r1, r5, #0
+ add r1, #0x48
+ ldrb r1, [r1]
+ ldr r0, [r5, #0x10]
+ bl FUN_02019620
+_02238976:
+ mov r0, #0
+ ldr r1, [r5, #0x4c]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02238A2A
+ ldr r2, [r5, #0x34]
+ ldr r3, [r4, #4]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ ldr r6, [r5, #0x14]
+ str r0, [sp, #0x10]
+ cmp r6, #0
+ bne _0223899C
+ ldr r0, [r4, #4]
+ bl FUN_0200AA80
+ add r6, r0, #0
+_0223899C:
+ ldr r1, [sp, #0x10]
+ ldr r2, [r5, #0x4c]
+ ldr r3, [r4, #4]
+ add r0, r6, #0
+ bl FUN_0200A9C4
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bne _022389D0
+ ldr r0, [r5, #0x24]
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r0, [r5, #0x50]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x44]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x40]
+ ldr r3, [r5, #0x20]
+ bl FUN_0201BDE0
+ add r7, r0, #0
+ b _02238A12
+_022389D0:
+ ldr r0, [r5, #0x40]
+ mov r1, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02002E4C
+ add r2, r0, #0
+ ldr r0, [r5, #0x40]
+ add r1, r4, #0
+ bl FUN_02002E14
+ add r7, r0, #0
+ ldr r0, [r5, #0x10]
+ bl FUN_0201AB0C
+ lsl r0, r0, #3
+ sub r3, r0, r7
+ ldr r0, [r5, #0x24]
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r0, [r5, #0x50]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x44]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x40]
+ bl FUN_0201BDE0
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [r5, #0xc]
+_02238A12:
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ bne _02238A24
+ add r0, r6, #0
+ bl FUN_0200AB18
+_02238A24:
+ ldr r0, [sp, #0x10]
+ bl FUN_0200A8B8
+_02238A2A:
+ mov r0, #0xff
+ str r0, [r5, #0x50]
+ add r0, r7, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238A34: .word 0x0223BC30
+ thumb_func_end MOD83_0223894C
+
+ thumb_func_start MOD83_02238A38
+MOD83_02238A38: ; 0x02238A38
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ ldr r1, [r4, #0x10]
+ add r6, r2, #0
+ ldr r2, [r1]
+ add r5, r3, #0
+ cmp r2, #0
+ bne _02238A8A
+ lsl r2, r5, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp]
+ ldr r2, [r4, #0x18]
+ lsl r3, r6, #0x18
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #4]
+ ldr r2, [r4, #0x1c]
+ lsr r3, r3, #0x18
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #8]
+ ldr r2, [r4, #0x30]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ str r2, [sp, #0xc]
+ ldr r2, [r4, #0x28]
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ str r2, [sp, #0x10]
+ ldr r2, [r4, #0x2c]
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl FUN_02019064
+ ldr r1, [sp, #0x28]
+ add r0, r4, #0
+ bl MOD83_0223894C
+ add r5, r0, #0
+ b _02238AB8
+_02238A8A:
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _02238A9C
+ add r0, r1, #0
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0201AB1C
+_02238A9C:
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ beq _02238AAE
+ lsl r1, r5, #0x18
+ ldr r0, [r4, #0x10]
+ lsr r1, r1, #0x18
+ bl FUN_0201AB20
+_02238AAE:
+ ldr r1, [sp, #0x28]
+ add r0, r4, #0
+ bl MOD83_0223894C
+ add r5, r0, #0
+_02238AB8:
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _02238AEC
+ ldr r0, [r4]
+ cmp r0, #0
+ ldr r0, [r4, #0x10]
+ bne _02238ADA
+ ldr r2, [r4, #0x38]
+ ldr r3, [r4, #0x3c]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ mov r1, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_0200CCA4
+ b _02238AEC
+_02238ADA:
+ ldr r2, [r4, #0x38]
+ ldr r3, [r4, #0x3c]
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ mov r1, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_0200D0BC
+_02238AEC:
+ add r0, r5, #0
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD83_02238A38
+
+ thumb_func_start MOD83_02238AF4
+MOD83_02238AF4: ; 0x02238AF4
+ ldr r1, [r0, #0x18]
+ ldr r0, [r0, #0x1c]
+ mul r0, r1
+ bx lr
+ thumb_func_end MOD83_02238AF4
+
+ thumb_func_start MOD83_02238AFC
+MOD83_02238AFC: ; 0x02238AFC
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _02238B30 ; =0x0223A734
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, _02238B34 ; =0x0223BC30
+ ldr r0, [r0, #4]
+ str r0, [sp, #0xc]
+ add r0, r2, #0
+ bl FUN_0201D040
+ ldr r1, _02238B34 ; =0x0223BC30
+ mov r0, #0x14
+ ldr r1, [r1, #4]
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02238B30: .word 0x0223A734
+_02238B34: .word 0x0223BC30
+ thumb_func_end MOD83_02238AFC
+
+ thumb_func_start MOD83_02238B38
+MOD83_02238B38: ; 0x02238B38
+ ldr r0, _02238B48 ; =0x0223BC30
+ ldr r0, [r0, #0x30]
+ cmp r0, #0
+ beq _02238B44
+ mov r0, #1
+ bx lr
+_02238B44:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_02238B48: .word 0x0223BC30
+ thumb_func_end MOD83_02238B38
+
+ thumb_func_start MOD83_02238B4C
+MOD83_02238B4C: ; 0x02238B4C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r6, _02238BB4 ; =0x0223BC30
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7e
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ ldr r2, _02238BB8 ; =0x0223BC30
+ str r3, [sp, #0xc]
+ ldr r2, [r2, #4]
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ ldr r2, _02238BB8 ; =0x0223BC30
+ ldr r1, _02238BBC ; =0x0223BC64
+ ldr r2, [r2, #4]
+ mov r0, #0x46
+ bl FUN_02008C9C
+ ldr r1, _02238BB8 ; =0x0223BC30
+ mov r2, #1
+ str r0, [r1, #0x30]
+ ldr r0, _02238BBC ; =0x0223BC64
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r1, #3
+ mov r7, #0x57
+ ldr r0, _02238BC0 ; =0x0223BE30
+ lsl r1, r1, #0x12
+ str r1, [r0, #0xc]
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02238B9C:
+ ldr r2, [r6, #4]
+ mov r0, #3
+ add r1, r4, #0
+ bl FUN_02008DEC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02238B9C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238BB4: .word 0x0223BC30
+_02238BB8: .word 0x0223BC30
+_02238BBC: .word 0x0223BC64
+_02238BC0: .word 0x0223BE30
+ thumb_func_end MOD83_02238B4C
+
+ thumb_func_start MOD83_02238BC4
+MOD83_02238BC4: ; 0x02238BC4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ ldr r4, [sp, #0x54]
+ add r6, r0, #0
+ mov ip, r1
+ str r2, [sp, #0x2c]
+ str r3, [sp, #0x30]
+ ldr r5, _02238D30 ; =0x0223BC30
+ cmp r4, #0
+ bne _02238BDC
+ mov r7, #1
+ b _02238BDE
+_02238BDC:
+ mov r7, #2
+_02238BDE:
+ mov r0, #1
+ str r0, [sp, #0x34]
+ cmp r6, #0x10
+ bne _02238BEA
+ mov r0, #0
+ str r0, [sp, #0x34]
+_02238BEA:
+ mov r1, #0
+ mvn r1, r1
+ mov r0, ip
+ cmp r0, r1
+ beq _02238C18
+ str r4, [sp]
+ str r7, [sp, #4]
+ ldr r0, [r5, #4]
+ ldr r3, [sp, #0x34]
+ str r0, [sp, #8]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ mov r2, ip
+ bl FUN_02008F34
+ mov r1, #0x18
+ mul r1, r4
+ add r2, r5, r1
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+_02238C18:
+ mov r1, #0
+ ldr r0, [sp, #0x2c]
+ mvn r1, r1
+ cmp r0, r1
+ beq _02238C4A
+ str r4, [sp]
+ str r7, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ ldr r0, [r5, #4]
+ ldr r2, [sp, #0x2c]
+ str r0, [sp, #0xc]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x18
+ mul r1, r4
+ add r2, r5, r1
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+_02238C4A:
+ mov r1, #0
+ ldr r0, [sp, #0x30]
+ mvn r1, r1
+ cmp r0, r1
+ beq _02238C7A
+ str r4, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ ldr r2, [sp, #0x30]
+ str r0, [sp, #8]
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r3, [sp, #0x34]
+ add r1, r6, #0
+ bl FUN_020090AC
+ mov r1, #0x18
+ mul r1, r4
+ add r2, r5, r1
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+_02238C7A:
+ mov r0, #0
+ ldr r2, [sp, #0x50]
+ mvn r0, r0
+ cmp r2, r0
+ beq _02238CA8
+ str r4, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ ldr r3, [sp, #0x34]
+ str r0, [sp, #8]
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_020090AC
+ mov r1, #0x18
+ add r2, r4, #0
+ mul r2, r1
+ add r2, r5, r2
+ lsl r1, r1, #4
+ str r0, [r2, r1]
+_02238CA8:
+ mov r0, #0x18
+ add r6, r4, #0
+ mul r6, r0
+ mov r0, #0x5d
+ add r1, r5, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_02009A50
+ mov r0, #0x5e
+ add r1, r5, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_02009CF0
+ mov r0, #0
+ mov r2, #0x57
+ str r4, [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 r3, r4, #0
+ str r1, [sp, #0x14]
+ add r1, r2, #4
+ ldr r1, [r5, r1]
+ str r1, [sp, #0x18]
+ add r1, r2, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ str r1, [sp, #0x1c]
+ add r1, r2, #0
+ add r1, #0xc
+ ldr r1, [r5, r1]
+ add r2, #0x48
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ mov r0, #0x24
+ add r1, r5, r2
+ mul r0, r4
+ add r0, r1, r0
+ add r1, r4, #0
+ add r2, r4, #0
+ bl FUN_02008AA4
+ cmp r4, #0
+ bne _02238D1A
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ b _02238D22
+_02238D1A:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+_02238D22:
+ ldr r0, _02238D34 ; =MOD83_02238F00
+ mov r1, #0
+ bl FUN_02015F10
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02238D30: .word 0x0223BC30
+_02238D34: .word MOD83_02238F00
+ thumb_func_end MOD83_02238BC4
+
+ thumb_func_start MOD83_02238D38
+MOD83_02238D38: ; 0x02238D38
+ push {r4, lr}
+ add r2, r0, #0
+ add r4, r1, #0
+ add r1, r2, #0
+ ldr r0, _02238D50 ; =0x0223BC64
+ add r2, r4, #0
+ bl FUN_02008D24
+ ldr r0, _02238D54 ; =0x0223BE30
+ str r4, [r0, #0xc]
+ pop {r4, pc}
+ nop
+_02238D50: .word 0x0223BC64
+_02238D54: .word 0x0223BE30
+ thumb_func_end MOD83_02238D38
+
+ thumb_func_start MOD83_02238D58
+MOD83_02238D58: ; 0x02238D58
+ push {r4, lr}
+ ldr r0, _02238DB4 ; =0x0223BE30
+ ldr r4, _02238DB8 ; =0x0223BC30
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _02238DA6
+ mov r0, #0x82
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _02238DA2
+ sub r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02020128
+ cmp r0, #0
+ bne _02238D86
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_02238D86:
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202011C
+ mov r1, #6
+ ldr r2, [r0, #4]
+ lsl r1, r1, #0x12
+ cmp r2, r1
+ bge _02238DA6
+ lsr r1, r1, #7
+ add r1, r2, r1
+ str r1, [r0, #4]
+ b _02238DA6
+_02238DA2:
+ sub r1, r1, #1
+ str r1, [r4, r0]
+_02238DA6:
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _02238DB0
+ bl FUN_0201FDEC
+_02238DB0:
+ pop {r4, pc}
+ nop
+_02238DB4: .word 0x0223BE30
+_02238DB8: .word 0x0223BC30
+ thumb_func_end MOD83_02238D58
+
+ thumb_func_start MOD83_02238DBC
+MOD83_02238DBC: ; 0x02238DBC
+ push {r3, r4, r5, lr}
+ sub sp, #0x30
+ add r4, r1, #0
+ ldr r1, _02238E44 ; =0x0223BC30
+ bne _02238E1E
+ ldr r4, [r1, #0x30]
+ lsl r2, r2, #0xc
+ str r4, [sp]
+ mov r4, #0x69
+ lsl r4, r4, #2
+ add r5, r1, r4
+ mov r4, #0x24
+ mul r4, r0
+ add r4, r5, r4
+ str r4, [sp, #4]
+ mov r4, #1
+ lsl r4, r4, #0xc
+ mov r5, #0
+ str r5, [sp, #0x10]
+ str r4, [sp, #0x14]
+ str r4, [sp, #0x18]
+ str r4, [sp, #0x1c]
+ add r4, sp, #0
+ strh r5, [r4, #0x20]
+ str r2, [sp, #8]
+ lsl r2, r3, #0xc
+ str r2, [sp, #0xc]
+ mov r2, #0xa
+ str r2, [sp, #0x24]
+ cmp r0, #0
+ bne _02238DFE
+ mov r2, #1
+ b _02238E00
+_02238DFE:
+ mov r2, #2
+_02238E00:
+ ldr r0, [r1, #4]
+ str r2, [sp, #0x28]
+ str r0, [sp, #0x2c]
+ cmp r2, #2
+ bne _02238E16
+ mov r0, #0x83
+ lsl r0, r0, #2
+ ldr r2, [sp, #0xc]
+ ldr r0, [r1, r0]
+ add r0, r2, r0
+ str r0, [sp, #0xc]
+_02238E16:
+ add r0, sp, #0
+ bl FUN_0201FE94
+ add r4, r0, #0
+_02238E1E:
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02020238
+ ldr r1, [sp, #0x40]
+ add r0, r4, #0
+ bl FUN_02020130
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020200A0
+ add r0, r4, #0
+ add sp, #0x30
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02238E44: .word 0x0223BC30
+ thumb_func_end MOD83_02238DBC
+
+ thumb_func_start MOD83_02238E48
+MOD83_02238E48: ; 0x02238E48
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02238EE8 ; =0x0223BE30
+ ldr r4, _02238EEC ; =0x0223BC30
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _02238E66
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201FFC8
+ mov r0, #0x81
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_02238E66:
+ mov r1, #0x51
+ ldr r0, _02238EF0 ; =0x0223BC60
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02238E76
+ bl FUN_02009C0C
+_02238E76:
+ mov r1, #0x57
+ ldr r0, _02238EF0 ; =0x0223BC60
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02238E86
+ bl FUN_02009C0C
+_02238E86:
+ mov r1, #0x52
+ ldr r0, _02238EF0 ; =0x0223BC60
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02238E96
+ bl FUN_02009E04
+_02238E96:
+ mov r1, #0x16
+ ldr r0, _02238EF0 ; =0x0223BC60
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _02238EA6
+ bl FUN_02009E04
+_02238EA6:
+ mov r4, #0
+ mov r7, #0x4b
+ ldr r5, _02238EF0 ; =0x0223BC60
+ add r6, r4, #0
+ lsl r7, r7, #2
+_02238EB0:
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ str r6, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02238EB0
+ ldr r0, _02238EF0 ; =0x0223BC60
+ ldr r0, [r0]
+ bl FUN_0201FD58
+ ldr r0, _02238EF0 ; =0x0223BC60
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02238EE8: .word 0x0223BE30
+_02238EEC: .word 0x0223BC30
+_02238EF0: .word 0x0223BC60
+ thumb_func_end MOD83_02238E48
+
+ thumb_func_start MOD83_02238EF4
+MOD83_02238EF4: ; 0x02238EF4
+ mov r1, #1
+ sub r0, #0xa
+ lsl r1, r0
+ add r0, r1, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02238EF4
+
+ thumb_func_start MOD83_02238F00
+MOD83_02238F00: ; 0x02238F00
+ push {r4, lr}
+ ldr r0, _02238F34 ; =0x0223CAB0
+ ldr r4, _02238F38 ; =0x0223BC30
+ ldr r0, [r0, #0x20]
+ cmp r0, #0
+ beq _02238F1E
+ mov r1, #0xea
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ blx r1
+ mov r0, #0xea
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_02238F1E:
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _02238F3C ; =0x027E0000
+ ldr r1, _02238F40 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_02238F34: .word 0x0223CAB0
+_02238F38: .word 0x0223BC30
+_02238F3C: .word 0x027E0000
+_02238F40: .word 0x00003FF8
+ thumb_func_end MOD83_02238F00
+
+ thumb_func_start MOD83_02238F44
+MOD83_02238F44: ; 0x02238F44
+ push {r4}
+ sub sp, #0x1c
+ ldr r4, _02238F90 ; =0x0223A744
+ add r3, sp, #0
+ mov r2, #0x1a
+_02238F4E:
+ ldrb r1, [r4]
+ add r4, r4, #1
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _02238F4E
+ add r1, sp, #0
+ ldrb r2, [r1]
+ mov r3, #0
+ sub r1, r3, #1
+ cmp r2, r1
+ beq _02238F88
+ add r4, sp, #0
+ sub r1, r3, #1
+_02238F6A:
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _02238F7E
+ add r0, sp, #0
+ lsl r1, r3, #1
+ add r0, #1
+ add sp, #0x1c
+ ldrb r0, [r0, r1]
+ pop {r4}
+ bx lr
+_02238F7E:
+ add r4, r4, #2
+ ldrb r2, [r4]
+ add r3, r3, #1
+ cmp r2, r1
+ bne _02238F6A
+_02238F88:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4}
+ bx lr
+ .align 2, 0
+_02238F90: .word 0x0223A744
+ thumb_func_end MOD83_02238F44
+
+ thumb_func_start MOD83_02238F94
+MOD83_02238F94: ; 0x02238F94
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #0x20]
+ add r5, r1, #0
+ add r7, r2, #0
+ add r6, r3, #0
+ ldr r4, [sp, #0x40]
+ bl FUN_020689E0
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x20]
+ bl FUN_02068A80
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ lsl r0, r7, #0x18
+ ldr r2, [sp, #0x24]
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #0
+ lsl r1, r5, #0x10
+ lsl r2, r2, #0x18
+ str r0, [sp, #8]
+ add r0, r4, #0
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_02068C00
+ mov r1, #0
+ ldr r0, [sp, #0x20]
+ add r2, r1, #0
+ bl FUN_020671BC
+ mov r3, #0
+ str r3, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ str r6, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r3, [sp, #0x14]
+ mov r0, #2
+ str r0, [sp, #0x18]
+ str r5, [sp, #0x1c]
+ ldr r2, _0223902C ; =0x0223BC30
+ ldrh r0, [r4]
+ ldrh r1, [r4, #2]
+ ldr r2, [r2, #4]
+ bl FUN_020124B4
+ mov r1, #0x32
+ add r0, r6, #0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r1, #0x32
+ lsl r1, r1, #6
+ add r0, r6, #0
+ add r2, r1, #0
+ bl GXS_LoadOBJ
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, _0223902C ; =0x0223BC30
+ mov r2, #5
+ ldr r0, [r0, #4]
+ mov r3, #0x60
+ str r0, [sp, #4]
+ ldrh r0, [r4]
+ ldrh r1, [r4, #4]
+ bl FUN_02006930
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223902C: .word 0x0223BC30
+ thumb_func_end MOD83_02238F94
+
+ thumb_func_start MOD83_02239030
+MOD83_02239030: ; 0x02239030
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #0x21
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x23
+ mov r2, #0x20
+ mov r3, #0x22
+ bl MOD83_02238BC4
+ mov r1, #1
+ mov r0, #0
+ lsl r1, r1, #0x14
+ bl MOD83_02238D38
+ mov r3, #0
+ mov r1, #0x81
+ str r3, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #1
+ mov r2, #0x80
+ bl MOD83_02238DBC
+ mov r1, #0x81
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #8
+ pop {r4, pc}
+ thumb_func_end MOD83_02239030
+
+ thumb_func_start MOD83_02239070
+MOD83_02239070: ; 0x02239070
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0xc
+ str r0, [sp]
+ mov r0, #1
+ add r6, r1, #0
+ add r4, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x36
+ mov r1, #0xa
+ mov r2, #0
+ mov r3, #0xb
+ bl MOD83_02238BC4
+ mov r1, #1
+ mov r0, #0
+ lsl r1, r1, #0x14
+ bl MOD83_02238D38
+ mov r0, #1
+ mov r1, #0x81
+ str r0, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ mov r2, #0x80
+ mov r3, #0
+ bl MOD83_02238DBC
+ mov r3, #0x81
+ lsl r3, r3, #2
+ add r4, #8
+ str r0, [r5, r3]
+ cmp r6, #1
+ beq _022390C2
+ cmp r6, #2
+ beq _022390F4
+ cmp r6, #7
+ beq _02239110
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_022390C2:
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ add r2, r0, #0
+ mov r0, #0xe9
+ lsl r0, r0, #4
+ mov r3, #0x21
+ add r0, r5, r0
+ lsl r3, r3, #4
+ str r0, [sp]
+ add r0, r4, #0
+ add r1, r6, #0
+ add r3, r5, r3
+ bl MOD83_02238F94
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_022390F4:
+ mov r0, #0xe9
+ lsl r0, r0, #4
+ add r1, r3, #0
+ add r0, r5, r0
+ add r3, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ sub r1, #0x16
+ mov r2, #0
+ add r3, r5, r3
+ bl MOD83_02238F94
+ add sp, #8
+ pop {r4, r5, r6, pc}
+_02239110:
+ mov r0, #0xe9
+ lsl r0, r0, #4
+ add r1, r3, #0
+ add r0, r5, r0
+ add r3, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ sub r1, #0x16
+ mov r2, #1
+ add r3, r5, r3
+ bl MOD83_02238F94
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD83_02239070
+
+ thumb_func_start MOD83_0223912C
+MOD83_0223912C: ; 0x0223912C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ cmp r1, #0xa
+ bhi _02239168
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02239142: ; jump table
+ .short _02239168 - _02239142 - 2 ; case 0
+ .short _02239168 - _02239142 - 2 ; case 1
+ .short _02239168 - _02239142 - 2 ; case 2
+ .short _02239158 - _02239142 - 2 ; case 3
+ .short _02239168 - _02239142 - 2 ; case 4
+ .short _02239168 - _02239142 - 2 ; case 5
+ .short _02239168 - _02239142 - 2 ; case 6
+ .short _02239168 - _02239142 - 2 ; case 7
+ .short _0223915C - _02239142 - 2 ; case 8
+ .short _02239160 - _02239142 - 2 ; case 9
+ .short _02239166 - _02239142 - 2 ; case 10
+_02239158:
+ ldr r4, [r2, #4]
+ b _02239168
+_0223915C:
+ ldr r4, _022391C4 ; =0x000001C6
+ b _02239168
+_02239160:
+ mov r4, #0x71
+ lsl r4, r4, #2
+ b _02239168
+_02239166:
+ ldr r4, _022391C8 ; =0x000001C7
+_02239168:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #1
+ bl FUN_0206E640
+ add r7, r0, #0
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #2
+ bl FUN_0206E640
+ add r4, r0, #0
+ bl FUN_0206E708
+ add r6, r0, #0
+ bl FUN_0206E70C
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x10
+ add r1, r7, #0
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD83_02238BC4
+ mov r1, #1
+ mov r0, #0
+ lsl r1, r1, #0x14
+ bl MOD83_02238D38
+ mov r3, #0
+ mov r1, #0x81
+ str r3, [sp]
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ mov r0, #1
+ mov r2, #0x80
+ bl MOD83_02238DBC
+ mov r1, #0x81
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022391C4: .word 0x000001C6
+_022391C8: .word 0x000001C7
+ thumb_func_end MOD83_0223912C
+
+ thumb_func_start MOD83_022391CC
+MOD83_022391CC: ; 0x022391CC
+ push {r3, lr}
+ sub sp, #8
+ mov r1, #0xc0
+ str r1, [sp]
+ ldr r0, [r0, #4]
+ mov r2, #4
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x74
+ mov r1, #0x1d
+ add r3, #0xfc
+ bl FUN_02006930
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022391CC
+
+ thumb_func_start MOD83_022391EC
+MOD83_022391EC: ; 0x022391EC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r1, #0
+ ldrh r4, [r6]
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD83_02238F44
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _022392DC ; =0x0223BC30
+ mov r1, #0x1e
+ ldr r0, [r0, #4]
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x74
+ mov r3, #5
+ bl FUN_0200687C
+ mov r2, #1
+ ldr r3, _022392DC ; =0x0223BC30
+ str r2, [sp]
+ ldr r3, [r3, #4]
+ mov r0, #0x74
+ mov r1, #0x1f
+ bl FUN_02006C98
+ add r1, sp, #0x14
+ str r0, [sp, #0x10]
+ bl FUN_020B0180
+ ldr r2, [sp, #0x14]
+ mov r3, #6
+ add r0, r5, #0
+ mov r1, #5
+ add r2, #0xc
+ lsl r3, r3, #8
+ bl FUN_02017DFC
+ ldr r0, [sp, #0x10]
+ bl FUN_02016A18
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ mov r2, #0
+ add r7, #8
+ str r0, [sp, #4]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020186B4
+ add r0, r5, #0
+ mov r1, #5
+ bl FUN_02017CD0
+ ldr r1, _022392E0 ; =MOD83_022391CC
+ ldr r0, _022392E4 ; =0x0223CAB0
+ cmp r4, #0xb
+ str r1, [r0, #0x20]
+ bhi _022392CA
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02239286: ; jump table
+ .short _022392CA - _02239286 - 2 ; case 0
+ .short _022392B4 - _02239286 - 2 ; case 1
+ .short _022392B4 - _02239286 - 2 ; case 2
+ .short _022392C0 - _02239286 - 2 ; case 3
+ .short _0223929E - _02239286 - 2 ; case 4
+ .short _0223929E - _02239286 - 2 ; case 5
+ .short _0223929E - _02239286 - 2 ; case 6
+ .short _022392AA - _02239286 - 2 ; case 7
+ .short _022392C0 - _02239286 - 2 ; case 8
+ .short _022392C0 - _02239286 - 2 ; case 9
+ .short _022392C0 - _02239286 - 2 ; case 10
+ .short _0223929E - _02239286 - 2 ; case 11
+_0223929E:
+ ldr r0, _022392E8 ; =0x0223BC30
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD83_02239030
+ b _022392CA
+_022392AA:
+ mov r1, #0x82
+ ldr r0, _022392E8 ; =0x0223BC30
+ mov r2, #0x78
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+_022392B4:
+ ldr r0, _022392E8 ; =0x0223BC30
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD83_02239070
+ b _022392CA
+_022392C0:
+ ldr r0, _022392E8 ; =0x0223BC30
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD83_0223912C
+_022392CA:
+ mov r1, #0x81
+ ldr r0, _022392E8 ; =0x0223BC30
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022392DC: .word 0x0223BC30
+_022392E0: .word MOD83_022391CC
+_022392E4: .word 0x0223CAB0
+_022392E8: .word 0x0223BC30
+ thumb_func_end MOD83_022391EC
+
+ thumb_func_start MOD83_022392EC
+MOD83_022392EC: ; 0x022392EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ mov r1, #2
+ add r5, r0, #0
+ add r0, r2, #0
+ lsl r1, r1, #8
+ str r2, [sp]
+ bl FUN_02016998
+ ldr r1, _0223936C ; =0x0000A001
+ add r4, r0, #0
+ bl MATHi_CRC16InitTableRev
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x50
+ bl MATH_CalcCRC16
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, sp, #4
+ bl OS_GetMacAddress
+ add r0, sp, #4
+ ldrh r1, [r0, #2]
+ mov r2, #0
+ add r3, sp, #4
+ strh r1, [r0, #6]
+ ldr r1, _02239370 ; =0x0000D679
+ strh r6, [r0, #2]
+_0223932E:
+ ldrh r0, [r3]
+ add r2, r2, #1
+ eor r0, r1
+ strh r0, [r3]
+ ldrh r1, [r3]
+ add r3, r3, #2
+ cmp r2, #4
+ blt _0223932E
+ mov r1, #0x41
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ bl FUN_02016998
+ add r1, sp, #4
+ mov r2, #8
+ add r4, r0, #0
+ bl FUN_0209521C
+ add r5, #0x50
+ mov r2, #0xd6
+ add r0, r4, #0
+ add r1, r5, #0
+ lsl r2, r2, #2
+ add r3, r7, #0
+ bl FUN_020952AC
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223936C: .word 0x0000A001
+_02239370: .word 0x0000D679
+ thumb_func_end MOD83_022392EC
+
+ thumb_func_start MOD83_02239374
+MOD83_02239374: ; 0x02239374
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r1, #0
+ mov r1, #2
+ add r5, r0, #0
+ add r0, r2, #0
+ lsl r1, r1, #8
+ str r2, [sp]
+ bl FUN_02016998
+ ldr r1, _0223940C ; =0x0000A001
+ add r4, r0, #0
+ bl MATHi_CRC16InitTableRev
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x50
+ bl MATH_CalcCRC16
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0
+ bl FUN_0202EF18
+ ldrb r2, [r0, #4]
+ add r1, sp, #4
+ mov r3, #0
+ strb r2, [r1]
+ ldrb r2, [r0, #5]
+ strb r2, [r1, #1]
+ ldrb r2, [r0, #6]
+ strb r2, [r1, #2]
+ ldrb r2, [r0, #7]
+ strb r2, [r1, #3]
+ ldrb r2, [r0, #8]
+ strb r2, [r1, #4]
+ ldrb r0, [r0, #9]
+ strb r0, [r1, #5]
+ add r0, sp, #4
+ ldrh r2, [r0, #2]
+ strh r2, [r0, #6]
+ ldr r2, _02239410 ; =0x0000D679
+ strh r6, [r0, #2]
+_022393CE:
+ ldrh r0, [r1]
+ add r3, r3, #1
+ eor r0, r2
+ strh r0, [r1]
+ ldrh r2, [r1]
+ add r1, r1, #2
+ cmp r3, #4
+ blt _022393CE
+ mov r1, #0x41
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ bl FUN_02016998
+ add r1, sp, #4
+ mov r2, #8
+ add r4, r0, #0
+ bl FUN_0209521C
+ add r5, #0x50
+ mov r2, #0xd6
+ add r0, r4, #0
+ add r1, r5, #0
+ lsl r2, r2, #2
+ add r3, r7, #0
+ bl FUN_020952AC
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0223940C: .word 0x0000A001
+_02239410: .word 0x0000D679
+ thumb_func_end MOD83_02239374
+
+ thumb_func_start MOD83_02239414
+MOD83_02239414: ; 0x02239414
+ push {r3, lr}
+ cmp r2, #0
+ beq _0223941E
+ cmp r2, #1
+ pop {r3, pc}
+_0223941E:
+ ldr r0, _02239428 ; =0x000005DC
+ bl FUN_020054C8
+ pop {r3, pc}
+ nop
+_02239428: .word 0x000005DC
+ thumb_func_end MOD83_02239414
+
+ thumb_func_start MOD83_0223942C
+MOD83_0223942C: ; 0x0223942C
+ push {r3, lr}
+ ldr r0, _0223944C ; =0x027FFFA8
+ ldrh r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ and r0, r1
+ asr r0, r0, #0xf
+ bne _02239448
+ bl CTRDG_IsAgbCartridge
+ cmp r0, #0
+ bne _02239448
+ bl CTRDG_TerminateForPulledOut
+_02239448:
+ pop {r3, pc}
+ nop
+_0223944C: .word 0x027FFFA8
+ thumb_func_end MOD83_0223942C
+
+ thumb_func_start MOD83_02239450
+MOD83_02239450: ; 0x02239450
+ push {r3, lr}
+ cmp r0, #1
+ bne _02239478
+ ldr r1, _02239484 ; =0x04000208
+ ldrh r0, [r1]
+ mov r0, #0
+ strh r0, [r1]
+ lsr r0, r1, #0xd
+ ldr r1, _02239488 ; =MOD83_0223942C
+ bl OS_SetIrqFunction
+ mov r0, #2
+ lsl r0, r0, #0xc
+ bl OS_EnableIrqMask
+ ldr r1, _02239484 ; =0x04000208
+ ldrh r0, [r1]
+ mov r0, #1
+ strh r0, [r1]
+ pop {r3, pc}
+_02239478:
+ mov r0, #2
+ lsl r0, r0, #0xc
+ bl OS_DisableIrqMask
+ pop {r3, pc}
+ nop
+_02239484: .word 0x04000208
+_02239488: .word MOD83_0223942C
+ thumb_func_end MOD83_02239450
+
+ thumb_func_start MOD83_0223948C
+MOD83_0223948C: ; 0x0223948C
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_0223948C
+
+ thumb_func_start MOD83_02239490
+MOD83_02239490: ; 0x02239490
+ push {r3, lr}
+ ldr r1, _022394B4 ; =0x04000208
+ ldrh r0, [r1]
+ mov r0, #0
+ strh r0, [r1]
+ lsr r0, r1, #0xd
+ ldr r1, _022394B8 ; =MOD83_0223948C
+ bl OS_SetIrqFunction
+ mov r0, #2
+ lsl r0, r0, #0xc
+ bl OS_EnableIrqMask
+ ldr r1, _022394B4 ; =0x04000208
+ ldrh r0, [r1]
+ mov r0, #1
+ strh r0, [r1]
+ pop {r3, pc}
+ .align 2, 0
+_022394B4: .word 0x04000208
+_022394B8: .word MOD83_0223948C
+ thumb_func_end MOD83_02239490
+
+ thumb_func_start MOD83_022394BC
+MOD83_022394BC: ; 0x022394BC
+ ldr r1, _022394C8 ; =0x0223BC30
+ str r0, [r1, #0x14]
+ mov r0, #0
+ str r0, [r1, #0x10]
+ bx lr
+ nop
+_022394C8: .word 0x0223BC30
+ thumb_func_end MOD83_022394BC
+
+ thumb_func_start MOD83_022394CC
+MOD83_022394CC: ; 0x022394CC
+ push {r3, r4, r5, lr}
+ ldr r0, _0223953C ; =0x0223BC30
+ ldr r4, _02239540 ; =0x0223BC30
+ ldr r0, [r0, #0x10]
+ cmp r0, #4
+ bhi _02239538
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022394E4: ; jump table
+ .short _022394EE - _022394E4 - 2 ; case 0
+ .short _02239504 - _022394E4 - 2 ; case 1
+ .short _02239538 - _022394E4 - 2 ; case 2
+ .short _02239538 - _022394E4 - 2 ; case 3
+ .short _02239538 - _022394E4 - 2 ; case 4
+_022394EE:
+ mov r0, #4
+ bl FUN_020166A8
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_02022840
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ b _02239538
+_02239504:
+ ldr r0, [r4, #0x14]
+ bl FUN_02022854
+ add r5, r0, #0
+ cmp r5, #3
+ bne _02239516
+ mov r0, #3
+ str r0, [r4, #0x10]
+ b _02239528
+_02239516:
+ cmp r5, #2
+ bne _02239520
+ mov r0, #2
+ str r0, [r4, #0x10]
+ b _02239528
+_02239520:
+ cmp r5, #1
+ bne _02239528
+ mov r0, #4
+ str r0, [r4, #0x10]
+_02239528:
+ sub r0, r5, #2
+ cmp r0, #1
+ bhi _02239534
+ mov r0, #4
+ bl FUN_020166B8
+_02239534:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+_02239538:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0223953C: .word 0x0223BC30
+_02239540: .word 0x0223BC30
+ thumb_func_end MOD83_022394CC
+
+ thumb_func_start MOD83_02239544
+MOD83_02239544: ; 0x02239544
+ ldr r0, _02239554 ; =0x0223BC30
+ ldr r1, _02239558 ; =0x0223BC30
+ ldr r0, [r0, #0x10]
+ cmp r0, #4
+ bne _02239552
+ mov r0, #1
+ str r0, [r1, #0x10]
+_02239552:
+ bx lr
+ .align 2, 0
+_02239554: .word 0x0223BC30
+_02239558: .word 0x0223BC30
+ thumb_func_end MOD83_02239544
+
+ thumb_func_start MOD83_0223955C
+MOD83_0223955C: ; 0x0223955C
+ push {r3, lr}
+ ldr r0, _02239570 ; =0x0223BC30
+ ldr r0, [r0, #0x14]
+ bl FUN_0202287C
+ mov r0, #4
+ bl FUN_020166B8
+ pop {r3, pc}
+ nop
+_02239570: .word 0x0223BC30
+ thumb_func_end MOD83_0223955C
+
+ thumb_func_start MOD83_02239574
+MOD83_02239574: ; 0x02239574
+ ldr r0, _0223957C ; =0x0223BC30
+ ldr r0, [r0, #0x10]
+ bx lr
+ nop
+_0223957C: .word 0x0223BC30
+ thumb_func_end MOD83_02239574
+
+ thumb_func_start MOD83_02239580
+MOD83_02239580: ; 0x02239580
+ push {r4, lr}
+ ldr r1, _022395BC ; =0x0223CAD4
+ add r4, r0, #0
+ ldr r2, [r1, #4]
+ cmp r2, #0
+ beq _0223959C
+ ldr r3, [r1]
+ ldr r1, _022395C0 ; =0x00001150
+ ldr r0, _022395C4 ; =0x0223B80C
+ ldr r1, [r3, r1]
+ lsl r3, r1, #2
+ ldr r1, _022395C8 ; =0x0223B7E4
+ ldr r1, [r1, r3]
+ blx r2
+_0223959C:
+ ldr r3, _022395BC ; =0x0223CAD4
+ ldr r1, _022395C0 ; =0x00001150
+ ldr r0, [r3]
+ str r4, [r0, r1]
+ ldr r2, [r3, #4]
+ cmp r2, #0
+ beq _022395B8
+ ldr r3, [r3]
+ ldr r0, _022395CC ; =0x0223B814
+ ldr r1, [r3, r1]
+ lsl r3, r1, #2
+ ldr r1, _022395C8 ; =0x0223B7E4
+ ldr r1, [r1, r3]
+ blx r2
+_022395B8:
+ pop {r4, pc}
+ nop
+_022395BC: .word 0x0223CAD4
+_022395C0: .word 0x00001150
+_022395C4: .word 0x0223B80C
+_022395C8: .word 0x0223B7E4
+_022395CC: .word 0x0223B814
+ thumb_func_end MOD83_02239580
+
+ thumb_func_start MOD83_022395D0
+MOD83_022395D0: ; 0x022395D0
+ ldr r1, _022395E4 ; =0x0223CAD4
+ ldr r3, [r1]
+ ldr r1, _022395E8 ; =0x00001150
+ ldr r2, [r3, r1]
+ sub r2, #9
+ cmp r2, #1
+ bls _022395E2
+ add r1, r1, #4
+ str r0, [r3, r1]
+_022395E2:
+ bx lr
+ .align 2, 0
+_022395E4: .word 0x0223CAD4
+_022395E8: .word 0x00001150
+ thumb_func_end MOD83_022395D0
+
+ thumb_func_start MOD83_022395EC
+MOD83_022395EC: ; 0x022395EC
+ push {r4, lr}
+ ldr r0, _02239658 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _0223965C ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #4
+ bne _022395FE
+ bl OS_Terminate
+_022395FE:
+ mov r0, #2
+ bl MOD83_02239580
+ ldr r3, _02239658 ; =0x0223CAD4
+ ldr r0, _02239660 ; =0x0000FFFF
+ ldr r2, [r3]
+ ldr r1, _02239664 ; =0x00000FCC
+ strh r0, [r2, r1]
+ sub r2, r1, #2
+ ldr r4, [r3]
+ sub r1, r1, #4
+ strh r0, [r4, r2]
+ ldr r2, [r3]
+ strh r0, [r2, r1]
+ bl MOD83_02239670
+ cmp r0, #0
+ bne _0223963C
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239658 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239668 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239638
+ mov r0, #4
+ blx r1
+_02239638:
+ mov r0, #0
+ pop {r4, pc}
+_0223963C:
+ ldr r1, _02239658 ; =0x0223CAD4
+ ldr r0, _0223966C ; =0x00001158
+ ldr r2, [r1]
+ mov r3, #2
+ strh r3, [r2, r0]
+ ldr r1, [r1]
+ add r0, #0x24
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239654
+ mov r0, #0
+ blx r1
+_02239654:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_02239658: .word 0x0223CAD4
+_0223965C: .word 0x00001150
+_02239660: .word 0x0000FFFF
+_02239664: .word 0x00000FCC
+_02239668: .word 0x0000117C
+_0223966C: .word 0x00001158
+ thumb_func_end MOD83_022395EC
+
+ thumb_func_start MOD83_02239670
+MOD83_02239670: ; 0x02239670
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r0, _02239748 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _0223974C ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #2
+ beq _02239684
+ bl OS_Terminate
+ mov r0, #0
+_02239684:
+ bl WM_GetAllowedChannel
+ add r4, r0, #0
+ mov r0, #2
+ lsl r0, r0, #0xe
+ cmp r4, r0
+ bne _0223969C
+ mov r0, #3
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0223969C:
+ cmp r4, #0
+ bne _022396AA
+ mov r0, #0x16
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022396AA:
+ ldr r0, _02239748 ; =0x0223CAD4
+ ldr r2, [r0]
+ ldr r0, _02239750 ; =0x00001176
+ ldrh r1, [r2, r0]
+ cmp r1, #0x10
+ blo _022396EC
+ sub r1, #0x10
+ mov r5, #0
+ mov r7, #0xd
+ mov r6, #1
+ b _022396D2
+_022396C0:
+ add r0, r1, #1
+ add r1, r7, #0
+ bl _s32_div_f
+ add r0, r6, #0
+ lsl r0, r1
+ tst r0, r4
+ bne _022396D6
+ add r5, r5, #1
+_022396D2:
+ cmp r5, #0xd
+ blt _022396C0
+_022396D6:
+ ldr r2, _02239748 ; =0x0223CAD4
+ add r4, r1, #0
+ ldr r3, [r2]
+ ldr r0, _02239750 ; =0x00001176
+ add r4, #0x10
+ strh r4, [r3, r0]
+ add r3, r1, #1
+ ldr r1, [r2]
+ ldr r0, _02239754 ; =0x00000FC4
+ strh r3, [r1, r0]
+ b _022396F0
+_022396EC:
+ ldr r0, _02239754 ; =0x00000FC4
+ strh r1, [r2, r0]
+_022396F0:
+ ldr r2, _02239748 ; =0x0223CAD4
+ ldr r0, _02239758 ; =0x00000FC6
+ ldr r1, [r2]
+ mov r3, #0xdc
+ strh r3, [r1, r0]
+ add r1, r0, #0
+ ldr r3, [r2]
+ sub r1, #0xc6
+ add r1, r3, r1
+ sub r0, r0, #6
+ str r1, [r3, r0]
+ ldr r1, [r2]
+ ldr r0, _0223975C ; =0x00001158
+ ldrh r0, [r1, r0]
+ cmp r0, #3
+ bne _02239726
+ mov r5, #0
+ ldr r0, _02239760 ; =0x00001170
+ ldr r1, _02239764 ; =0x00000FC8
+ b _02239722
+_02239718:
+ ldr r3, [r2]
+ add r4, r3, r5
+ ldrb r3, [r4, r0]
+ add r5, r5, #1
+ strb r3, [r4, r1]
+_02239722:
+ cmp r5, #6
+ blt _02239718
+_02239726:
+ ldr r1, _02239748 ; =0x0223CAD4
+ ldr r0, _02239768 ; =MOD83_0223976C
+ ldr r2, [r1]
+ mov r1, #0x3f
+ lsl r1, r1, #6
+ add r1, r2, r1
+ bl WM_StartScan
+ cmp r0, #2
+ beq _02239742
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02239742:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02239748: .word 0x0223CAD4
+_0223974C: .word 0x00001150
+_02239750: .word 0x00001176
+_02239754: .word 0x00000FC4
+_02239758: .word 0x00000FC6
+_0223975C: .word 0x00001158
+_02239760: .word 0x00001170
+_02239764: .word 0x00000FC8
+_02239768: .word MOD83_0223976C
+ thumb_func_end MOD83_02239670
+
+ thumb_func_start MOD83_0223976C
+MOD83_0223976C: ; 0x0223976C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _02239792
+ bl MOD83_022395D0
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239884 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _0223987E
+ mov r0, #4
+ blx r1
+ pop {r3, r4, r5, pc}
+_02239792:
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239888 ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #2
+ beq _022397BE
+ bl MOD83_022398A4
+ cmp r0, #0
+ bne _0223987E
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239884 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _0223987E
+ mov r0, #4
+ blx r1
+ pop {r3, r4, r5, pc}
+_022397BE:
+ ldrh r0, [r4, #8]
+ cmp r0, #3
+ beq _0223987E
+ cmp r0, #4
+ beq _02239860
+ cmp r0, #5
+ bne _02239860
+ mov r0, #0xf
+ lsl r0, r0, #8
+ add r0, r1, r0
+ mov r1, #0xc0
+ bl DC_InvalidateRange
+ ldrh r0, [r4, #0x36]
+ cmp r0, #8
+ blo _022397E6
+ ldr r1, [r4, #0x3c]
+ ldr r0, _0223988C ; =0x00400318
+ cmp r1, r0
+ beq _022397F8
+_022397E6:
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r3, [r0, #4]
+ cmp r3, #0
+ beq _02239860
+ ldr r0, _02239890 ; =0x0223B818
+ ldr r1, [r4, #0x3c]
+ ldr r2, _0223988C ; =0x00400318
+ blx r3
+ b _02239860
+_022397F8:
+ ldr r1, _02239880 ; =0x0223CAD4
+ ldrh r3, [r4, #0x12]
+ ldr r2, [r1]
+ ldr r0, _02239894 ; =0x0000116C
+ str r3, [r2, r0]
+ ldr r1, [r1]
+ sub r0, #0x14
+ ldrh r0, [r1, r0]
+ cmp r0, #2
+ bne _02239844
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD83_02239B00
+ ldr r2, _02239880 ; =0x0223CAD4
+ ldr r1, _02239898 ; =0x00001170
+ mov r0, #0
+_0223981A:
+ add r3, r4, r0
+ ldrb r5, [r3, #0xa]
+ ldr r3, [r2]
+ add r3, r3, r0
+ add r0, r0, #1
+ strb r5, [r3, r1]
+ cmp r0, #6
+ blt _0223981A
+ ldr r1, _02239880 ; =0x0223CAD4
+ ldr r0, _0223989C ; =0x00001176
+ ldr r3, [r1]
+ ldrh r2, [r3, r0]
+ sub r2, #0xf
+ strh r2, [r3, r0]
+ ldr r1, [r1]
+ add r0, r0, #6
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239844
+ mov r0, #1
+ blx r1
+_02239844:
+ add r4, #0x48
+ add r0, r4, #0
+ bl MOD83_02239B80
+ cmp r0, #0
+ beq _02239860
+ ldr r0, _02239880 ; =0x0223CAD4
+ mov r2, #4
+ ldr r1, [r0]
+ ldr r0, _022398A0 ; =0x00001158
+ strh r2, [r1, r0]
+ bl MOD83_02239A14
+ pop {r3, r4, r5, pc}
+_02239860:
+ bl MOD83_02239670
+ cmp r0, #0
+ bne _0223987E
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239880 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239884 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _0223987E
+ mov r0, #4
+ blx r1
+_0223987E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02239880: .word 0x0223CAD4
+_02239884: .word 0x0000117C
+_02239888: .word 0x00001150
+_0223988C: .word 0x00400318
+_02239890: .word 0x0223B818
+_02239894: .word 0x0000116C
+_02239898: .word 0x00001170
+_0223989C: .word 0x00001176
+_022398A0: .word 0x00001158
+ thumb_func_end MOD83_0223976C
+
+ thumb_func_start MOD83_022398A4
+MOD83_022398A4: ; 0x022398A4
+ push {r3, lr}
+ ldr r0, _022398BC ; =MOD83_022398C0
+ bl WM_EndScan
+ cmp r0, #2
+ beq _022398B8
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, pc}
+_022398B8:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_022398BC: .word MOD83_022398C0
+ thumb_func_end MOD83_022398A4
+
+ thumb_func_start MOD83_022398C0
+MOD83_022398C0: ; 0x022398C0
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _022398CE
+ bl MOD83_022395D0
+ pop {r3, pc}
+_022398CE:
+ mov r0, #1
+ bl MOD83_02239580
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD83_022398C0
+
+ thumb_func_start MOD83_022398D8
+MOD83_022398D8: ; 0x022398D8
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _022398E8
+ mov r0, #0xa
+ bl MOD83_02239580
+ pop {r3, pc}
+_022398E8:
+ mov r0, #0
+ bl MOD83_02239580
+ ldr r0, _02239900 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239904 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _022398FE
+ mov r0, #3
+ blx r1
+_022398FE:
+ pop {r3, pc}
+ .align 2, 0
+_02239900: .word 0x0223CAD4
+_02239904: .word 0x0000117C
+ thumb_func_end MOD83_022398D8
+
+ thumb_func_start MOD83_02239908
+MOD83_02239908: ; 0x02239908
+ push {r3, lr}
+ ldr r0, _02239924 ; =0x0223CAD4
+ mov r2, #0
+ ldr r1, [r0]
+ ldr r0, _02239928 ; =0x00001154
+ str r2, [r1, r0]
+ bl MOD83_02239954
+ cmp r0, #0
+ beq _02239920
+ mov r0, #1
+ pop {r3, pc}
+_02239920:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_02239924: .word 0x0223CAD4
+_02239928: .word 0x00001154
+ thumb_func_end MOD83_02239908
+
+ thumb_func_start MOD83_0223992C
+MOD83_0223992C: ; 0x0223992C
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #8
+ bne _0223994A
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _0223994C ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239950 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _0223994A
+ mov r0, #4
+ blx r1
+_0223994A:
+ pop {r3, pc}
+ .align 2, 0
+_0223994C: .word 0x0223CAD4
+_02239950: .word 0x0000117C
+ thumb_func_end MOD83_0223992C
+
+ thumb_func_start MOD83_02239954
+MOD83_02239954: ; 0x02239954
+ push {r3, lr}
+ mov r0, #3
+ bl MOD83_02239580
+ ldr r0, _02239980 ; =0x0223CAD4
+ ldr r1, _02239984 ; =MOD83_02239988
+ ldr r0, [r0]
+ mov r2, #2
+ bl WM_Initialize
+ cmp r0, #2
+ beq _0223997A
+ bl MOD83_022395D0
+ mov r0, #0xa
+ bl MOD83_02239580
+ mov r0, #0
+ pop {r3, pc}
+_0223997A:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02239980: .word 0x0223CAD4
+_02239984: .word MOD83_02239988
+ thumb_func_end MOD83_02239954
+
+ thumb_func_start MOD83_02239988
+MOD83_02239988: ; 0x02239988
+ push {r3, lr}
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _0223999C
+ bl MOD83_022395D0
+ mov r0, #0xa
+ bl MOD83_02239580
+ pop {r3, pc}
+_0223999C:
+ ldr r0, _022399C0 ; =MOD83_0223992C
+ bl WM_SetIndCallback
+ cmp r0, #0
+ beq _022399B2
+ bl MOD83_022395D0
+ mov r0, #0xa
+ bl MOD83_02239580
+ pop {r3, pc}
+_022399B2:
+ mov r0, #1
+ bl MOD83_02239580
+ bl MOD83_022395EC
+ pop {r3, pc}
+ nop
+_022399C0: .word MOD83_0223992C
+ thumb_func_end MOD83_02239988
+
+ thumb_func_start MOD83_022399C4
+MOD83_022399C4: ; 0x022399C4
+ push {r3, lr}
+ ldr r0, _02239A04 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239A08 ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #1
+ beq _022399D6
+ bl OS_Terminate
+_022399D6:
+ mov r0, #3
+ bl MOD83_02239580
+ ldr r0, _02239A0C ; =MOD83_022398D8
+ bl WM_End
+ cmp r0, #2
+ beq _02239A00
+ mov r0, #9
+ bl MOD83_02239580
+ ldr r0, _02239A04 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239A10 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _022399FC
+ mov r0, #4
+ blx r1
+_022399FC:
+ mov r0, #0
+ pop {r3, pc}
+_02239A00:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_02239A04: .word 0x0223CAD4
+_02239A08: .word 0x00001150
+_02239A0C: .word MOD83_022398D8
+_02239A10: .word 0x0000117C
+ thumb_func_end MOD83_022399C4
+
+ thumb_func_start MOD83_02239A14
+MOD83_02239A14: ; 0x02239A14
+ push {r3, lr}
+ ldr r0, _02239A30 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239A34 ; =0x00001150
+ ldr r0, [r1, r0]
+ cmp r0, #1
+ bne _02239A28
+ bl MOD83_022399C4
+ pop {r3, pc}
+_02239A28:
+ bl MOD83_02239A38
+ pop {r3, pc}
+ nop
+_02239A30: .word 0x0223CAD4
+_02239A34: .word 0x00001150
+ thumb_func_end MOD83_02239A14
+
+ thumb_func_start MOD83_02239A38
+MOD83_02239A38: ; 0x02239A38
+ push {r3, lr}
+ mov r0, #3
+ bl MOD83_02239580
+ ldr r0, _02239A58 ; =MOD83_02239A5C
+ bl WM_Reset
+ cmp r0, #2
+ beq _02239A52
+ bl MOD83_022395D0
+ mov r0, #0
+ pop {r3, pc}
+_02239A52:
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_02239A58: .word MOD83_02239A5C
+ thumb_func_end MOD83_02239A38
+
+ thumb_func_start MOD83_02239A5C
+MOD83_02239A5C: ; 0x02239A5C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #2]
+ cmp r0, #0
+ beq _02239A84
+ mov r0, #9
+ bl MOD83_02239580
+ ldrh r0, [r4, #2]
+ bl MOD83_022395D0
+ ldr r0, _02239A90 ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239A94 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239A8E
+ mov r0, #4
+ blx r1
+ pop {r4, pc}
+_02239A84:
+ mov r0, #1
+ bl MOD83_02239580
+ bl MOD83_022399C4
+_02239A8E:
+ pop {r4, pc}
+ .align 2, 0
+_02239A90: .word 0x0223CAD4
+_02239A94: .word 0x0000117C
+ thumb_func_end MOD83_02239A5C
+
+ thumb_func_start MOD83_02239A98
+MOD83_02239A98: ; 0x02239A98
+ push {r3, r4, r5, r6, r7, lr}
+ add r3, r0, #0
+ add r2, #0x1f
+ mov r0, #0x1f
+ bic r2, r0
+ ldr r5, _02239AF4 ; =0x0223CAD4
+ ldr r4, _02239AF8 ; =0x00001150
+ str r2, [r5]
+ mov r0, #0
+ str r0, [r2, r4]
+ add r2, r4, #0
+ ldr r6, [r5]
+ mov r7, #1
+ add r2, #8
+ strh r7, [r6, r2]
+ add r2, r4, #0
+ ldr r6, [r5]
+ add r2, #0x28
+ str r3, [r6, r2]
+ add r2, r4, #0
+ ldr r3, [r5]
+ add r2, #0xc
+ strh r0, [r3, r2]
+ add r2, r4, #0
+ ldr r3, [r5]
+ add r2, #0xe
+ strh r0, [r3, r2]
+ add r2, r4, #0
+ ldr r3, [r5]
+ add r2, #0x2c
+ str r1, [r3, r2]
+ add r2, r4, #0
+ ldr r3, [r5]
+ mov r1, #0x10
+ add r2, #0x26
+ strh r1, [r3, r2]
+ ldr r3, [r5]
+ ldr r2, _02239AFC ; =0x00001048
+ sub r1, #0x11
+ str r0, [r3, r2]
+ ldr r0, [r5]
+ add r4, #0x1c
+ str r1, [r0, r4]
+ bl MOD83_02239908
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02239AF4: .word 0x0223CAD4
+_02239AF8: .word 0x00001150
+_02239AFC: .word 0x00001048
+ thumb_func_end MOD83_02239A98
+
+ thumb_func_start MOD83_02239B00
+MOD83_02239B00: ; 0x02239B00
+ push {r4, r5, r6, lr}
+ ldr r3, _02239B70 ; =0x0223CAD4
+ ldr r1, _02239B74 ; =0x00001048
+ ldr r2, [r3]
+ mov r4, #0
+ str r4, [r2, r1]
+ ldr r1, [r3]
+ ldr r2, _02239B78 ; =0x00001158
+ mov r4, #3
+ strh r4, [r1, r2]
+ ldrh r5, [r0]
+ ldr r4, [r3]
+ add r1, r2, #2
+ strh r5, [r4, r1]
+ ldr r4, [r0, #4]
+ add r0, r2, #0
+ ldr r1, [r3]
+ add r0, #8
+ str r4, [r1, r0]
+ ldr r4, [r3]
+ add r2, #8
+ ldr r0, [r4, r2]
+ mov r1, #0x68
+ sub r0, r0, #1
+ bl _u32_div_f
+ ldr r2, _02239B7C ; =0x0000115C
+ add r0, r0, #1
+ strh r0, [r4, r2]
+ ldr r4, _02239B70 ; =0x0223CAD4
+ mov r0, #0
+ ldr r3, [r4]
+ add r1, r2, #2
+ strh r0, [r3, r1]
+ add r1, r2, #0
+ ldr r3, [r4]
+ add r1, #8
+ str r0, [r3, r1]
+ ldr r1, [r4]
+ ldrh r2, [r1, r2]
+ cmp r2, #0
+ ble _02239B6C
+ mov r2, #0x46
+ lsl r2, r2, #6
+ add r3, r2, #0
+ add r6, r0, #0
+ sub r3, #0x24
+_02239B5E:
+ add r1, r1, r0
+ strb r6, [r1, r2]
+ ldr r1, [r4]
+ add r0, r0, #1
+ ldrh r5, [r1, r3]
+ cmp r0, r5
+ blt _02239B5E
+_02239B6C:
+ pop {r4, r5, r6, pc}
+ nop
+_02239B70: .word 0x0223CAD4
+_02239B74: .word 0x00001048
+_02239B78: .word 0x00001158
+_02239B7C: .word 0x0000115C
+ thumb_func_end MOD83_02239B00
+
+ thumb_func_start MOD83_02239B80
+MOD83_02239B80: ; 0x02239B80
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, _02239C9C ; =0x0223CAD4
+ ldrh r1, [r4]
+ ldr r3, [r0]
+ ldr r0, _02239CA0 ; =0x0000115A
+ ldrh r2, [r3, r0]
+ cmp r2, r1
+ bne _02239B9C
+ add r0, r0, #6
+ ldr r1, [r3, r0]
+ ldr r0, [r4, #4]
+ cmp r1, r0
+ beq _02239BC8
+_02239B9C:
+ ldr r0, _02239C9C ; =0x0223CAD4
+ ldr r3, [r0]
+ ldr r0, _02239CA4 ; =0x00001164
+ ldr r2, [r3, r0]
+ add r1, r2, #1
+ str r1, [r3, r0]
+ cmp r2, #0x10
+ blo _02239BC4
+ add r0, r4, #0
+ bl MOD83_02239B00
+ ldr r0, _02239C9C ; =0x0223CAD4
+ ldr r1, [r0]
+ ldr r0, _02239CA8 ; =0x0000117C
+ ldr r1, [r1, r0]
+ cmp r1, #0
+ beq _02239BC8
+ mov r0, #5
+ blx r1
+ b _02239BC8
+_02239BC4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02239BC8:
+ ldrh r3, [r4, #2]
+ ldr r0, _02239CAC ; =0x0000FFFF
+ cmp r3, r0
+ bne _02239BF0
+ ldr r1, _02239C9C ; =0x0223CAD4
+ add r4, #8
+ ldr r2, [r1]
+ mov r1, #0xfe
+ lsl r1, r1, #4
+ add r1, r2, r1
+ add r0, r4, #0
+ mov r2, #0x68
+ bl MIi_CpuCopy32
+ ldr r0, _02239C9C ; =0x0223CAD4
+ mov r2, #1
+ ldr r1, [r0]
+ ldr r0, _02239CB0 ; =0x00001048
+ str r2, [r1, r0]
+ b _02239C98
+_02239BF0:
+ ldr r1, _02239C9C ; =0x0223CAD4
+ ldr r0, _02239CB4 ; =0x00001168
+ ldr r2, [r1]
+ str r3, [r2, r0]
+ ldr r3, [r1]
+ add r1, r0, #0
+ sub r1, #0xc
+ ldrh r2, [r4, #2]
+ ldrh r1, [r3, r1]
+ cmp r2, r1
+ blo _02239C18
+ add r0, #0x14
+ ldr r1, [r3, r0]
+ cmp r1, #0
+ beq _02239C12
+ mov r0, #4
+ blx r1
+_02239C12:
+ mov r0, #9
+ bl MOD83_02239580
+_02239C18:
+ ldr r0, _02239C9C ; =0x0223CAD4
+ mov r2, #0x46
+ ldr r1, [r0]
+ lsl r2, r2, #6
+ ldrh r3, [r4, #2]
+ add r5, r1, r2
+ ldrb r1, [r5, r3]
+ cmp r1, #0
+ bne _02239C98
+ mov r1, #1
+ strb r1, [r5, r3]
+ ldr r5, [r0]
+ add r0, r2, #0
+ sub r0, #0x24
+ ldrh r0, [r5, r0]
+ ldrh r1, [r4, #2]
+ sub r0, r0, #1
+ cmp r1, r0
+ bne _02239C5C
+ add r3, r1, #0
+ add r1, r2, #0
+ sub r1, #8
+ sub r2, #0x20
+ mov r0, #0x68
+ ldr r1, [r5, r1]
+ mul r3, r0
+ ldr r2, [r5, r2]
+ add r4, #8
+ add r0, r4, #0
+ add r1, r1, r3
+ sub r2, r2, r3
+ bl MIi_CpuCopy32
+ b _02239C70
+_02239C5C:
+ add r4, #8
+ sub r2, #8
+ add r0, r4, #0
+ ldr r4, [r5, r2]
+ mov r2, #0x68
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r4, r3
+ bl MIi_CpuCopy32
+_02239C70:
+ ldr r1, _02239C9C ; =0x0223CAD4
+ ldr r0, _02239CB8 ; =0x0000115E
+ ldr r3, [r1]
+ ldrh r2, [r3, r0]
+ add r2, r2, #1
+ strh r2, [r3, r0]
+ ldr r3, [r1]
+ sub r1, r0, #2
+ ldrh r2, [r3, r0]
+ ldrh r1, [r3, r1]
+ cmp r2, r1
+ bne _02239C98
+ add r0, #0x1e
+ ldr r1, [r3, r0]
+ cmp r1, #0
+ beq _02239C94
+ mov r0, #2
+ blx r1
+_02239C94:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02239C98:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02239C9C: .word 0x0223CAD4
+_02239CA0: .word 0x0000115A
+_02239CA4: .word 0x00001164
+_02239CA8: .word 0x0000117C
+_02239CAC: .word 0x0000FFFF
+_02239CB0: .word 0x00001048
+_02239CB4: .word 0x00001168
+_02239CB8: .word 0x0000115E
+ thumb_func_end MOD83_02239B80
+
+ thumb_func_start MOD83_02239CBC
+MOD83_02239CBC: ; 0x02239CBC
+ push {r3, r4}
+ mov r2, #0
+ add r3, r2, #0
+ lsr r1, r1, #1
+ beq _02239CE4
+_02239CC6:
+ lsl r4, r3, #1
+ ldrh r4, [r0, r4]
+ add r3, r3, #1
+ lsl r3, r3, #0x10
+ add r2, r2, r4
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ lsl r4, r2, #1
+ asr r2, r2, #0xf
+ orr r2, r4
+ lsl r2, r2, #0x10
+ lsr r3, r3, #0x10
+ lsr r2, r2, #0x10
+ cmp r3, r1
+ blo _02239CC6
+_02239CE4:
+ add r0, r2, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD83_02239CBC
+
+ thumb_func_start MOD83_02239CEC
+MOD83_02239CEC: ; 0x02239CEC
+ push {r4, lr}
+ sub sp, #8
+ ldr r0, _02239D80 ; =0x0223CAD4
+ add r1, sp, #0
+ ldr r4, [r0]
+ ldr r0, _02239D84 ; =0x00001170
+ add r3, r4, r0
+ ldrh r2, [r3]
+ sub r0, #0x16
+ strh r2, [r1]
+ ldrh r2, [r3, #2]
+ strh r2, [r1, #6]
+ ldrh r2, [r3, #4]
+ add r3, sp, #0
+ strh r2, [r1, #4]
+ ldrh r0, [r4, r0]
+ ldr r2, _02239D88 ; =0x00003FA2
+ strh r0, [r1, #2]
+ mov r1, #0
+_02239D12:
+ ldrh r0, [r3]
+ add r1, r1, #1
+ eor r0, r2
+ strh r0, [r3]
+ ldrh r2, [r3]
+ add r3, r3, #2
+ cmp r1, #4
+ blt _02239D12
+ ldr r0, _02239D80 ; =0x0223CAD4
+ mov r2, #8
+ ldr r1, [r0]
+ ldr r0, _02239D8C ; =0x0000104C
+ add r0, r1, r0
+ add r1, sp, #0
+ bl FUN_0209521C
+ ldr r0, _02239D80 ; =0x0223CAD4
+ ldr r2, _02239D90 ; =0x00001178
+ ldr r3, [r0]
+ ldr r0, _02239D8C ; =0x0000104C
+ ldr r1, [r3, r2]
+ sub r2, #0x18
+ ldr r2, [r3, r2]
+ add r0, r3, r0
+ add r3, r1, #0
+ bl FUN_020952AC
+ ldr r1, _02239D80 ; =0x0223CAD4
+ ldr r2, _02239D8C ; =0x0000104C
+ ldr r1, [r1]
+ mov r0, #0
+ add r1, r1, r2
+ lsr r2, r2, #4
+ bl MIi_CpuClear32
+ ldr r0, _02239D80 ; =0x0223CAD4
+ ldr r1, _02239D90 ; =0x00001178
+ ldr r2, [r0]
+ ldr r0, [r2, r1]
+ sub r1, #0x18
+ ldr r1, [r2, r1]
+ bl MOD83_02239CBC
+ ldr r1, _02239D80 ; =0x0223CAD4
+ ldr r2, [r1]
+ ldr r1, _02239D94 ; =0x0000115A
+ ldrh r1, [r2, r1]
+ cmp r1, r0
+ bne _02239D7A
+ add sp, #8
+ mov r0, #1
+ pop {r4, pc}
+_02239D7A:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_02239D80: .word 0x0223CAD4
+_02239D84: .word 0x00001170
+_02239D88: .word 0x00003FA2
+_02239D8C: .word 0x0000104C
+_02239D90: .word 0x00001178
+_02239D94: .word 0x0000115A
+ thumb_func_end MOD83_02239CEC
+
+ thumb_func_start MOD83_02239D98
+MOD83_02239D98: ; 0x02239D98
+ ldr r0, _02239D9C ; =0x000016A0
+ bx lr
+ .align 2, 0
+_02239D9C: .word 0x000016A0
+ thumb_func_end MOD83_02239D98
+
+ thumb_func_start MOD83_02239DA0
+MOD83_02239DA0: ; 0x02239DA0
+ ldr r0, _02239DB8 ; =0x0223CAD4
+ ldr r2, [r0]
+ ldr r0, _02239DBC ; =0x00001048
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ beq _02239DB2
+ sub r0, #0x68
+ add r0, r2, r0
+ bx lr
+_02239DB2:
+ mov r0, #0
+ bx lr
+ nop
+_02239DB8: .word 0x0223CAD4
+_02239DBC: .word 0x00001048
+ thumb_func_end MOD83_02239DA0
+
+ thumb_func_start MOD83_02239DC0
+MOD83_02239DC0: ; 0x02239DC0
+ push {r3, lr}
+ add r1, #0x24
+ mov r0, #0x1f
+ bic r1, r0
+ add r1, #0x20
+ mov r0, #0x56
+ bl FUN_02016998
+ add r2, r0, #0
+ add r2, #0x20
+ mov r1, #0x1f
+ bic r2, r1
+ sub r1, r2, #4
+ str r0, [r1]
+ add r0, r2, #0
+ pop {r3, pc}
+ thumb_func_end MOD83_02239DC0
+
+ thumb_func_start MOD83_02239DE0
+MOD83_02239DE0: ; 0x02239DE0
+ push {r3, lr}
+ cmp r1, #0
+ beq _02239DEE
+ sub r0, r1, #4
+ ldr r0, [r0]
+ bl FUN_02016A18
+_02239DEE:
+ pop {r3, pc}
+ thumb_func_end MOD83_02239DE0
+
+ thumb_func_start MOD83_02239DF0
+MOD83_02239DF0: ; 0x02239DF0
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r0, sp, #0
+ add r1, sp, #4
+ bl MOD04_021DD718
+ ldr r0, [sp]
+ neg r0, r0
+ bl MOD04_021D80E0
+ ldr r1, _02239E34 ; =0x00002610
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ neg r2, r0
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r0, r1, #0
+ ldr r2, [sp, #4]
+ add r0, #8
+ str r2, [r4, r0]
+ sub r0, r1, #4
+ mov r2, #1
+ str r2, [r4, r0]
+ ldr r0, _02239E38 ; =0x0223CADC
+ mov r1, #0
+ str r1, [r0, #0xc]
+ add r0, r4, #0
+ bl MOD83_0222FA44
+ ldr r0, _02239E3C ; =0x0000100E
+ add sp, #8
+ pop {r4, pc}
+ nop
+_02239E34: .word 0x00002610
+_02239E38: .word 0x0223CADC
+_02239E3C: .word 0x0000100E
+ thumb_func_end MOD83_02239DF0
+
+ thumb_func_start MOD83_02239E40
+MOD83_02239E40: ; 0x02239E40
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02239E70 ; =0x00002618
+ ldr r0, [r4, r0]
+ cmp r0, #5
+ beq _02239E50
+ cmp r0, #6
+ bne _02239E5C
+_02239E50:
+ bl MOD04_021DDC1C
+ ldr r0, _02239E74 ; =0x0223CADC
+ mov r1, #1
+ str r1, [r0, #0xc]
+ b _02239E62
+_02239E5C:
+ ldr r0, _02239E74 ; =0x0223CADC
+ mov r1, #1
+ str r1, [r0, #0xc]
+_02239E62:
+ bl FUN_02033ED0
+ ldr r0, _02239E78 ; =0x0000260C
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, _02239E7C ; =0x0000100F
+ pop {r4, pc}
+ .align 2, 0
+_02239E70: .word 0x00002618
+_02239E74: .word 0x0223CADC
+_02239E78: .word 0x0000260C
+_02239E7C: .word 0x0000100F
+ thumb_func_end MOD83_02239E40
+
+ thumb_func_start MOD83_02239E80
+MOD83_02239E80: ; 0x02239E80
+ push {lr}
+ sub sp, #0x3c
+ bl MOD04_021DDC1C
+ cmp r0, #4
+ beq _02239E94
+ cmp r0, #7
+ beq _02239EA0
+ cmp r0, #8
+ b _02239EA0
+_02239E94:
+ add r0, sp, #0
+ bl MOD04_021DD9DC
+ add sp, #0x3c
+ mov r0, #1
+ pop {pc}
+_02239EA0:
+ mov r0, #0
+ add sp, #0x3c
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD83_02239E80
+
+ thumb_func_start MOD83_02239EA8
+MOD83_02239EA8: ; 0x02239EA8
+ push {r3, r4}
+ ldr r3, _02239EBC ; =0x0223CADC
+ mov r4, #0
+ str r4, [r3]
+ ldr r3, _02239EC0 ; =0x000015F4
+ str r2, [r0, r3]
+ ldr r0, _02239EC4 ; =0x00001011
+ str r0, [r1]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_02239EBC: .word 0x0223CADC
+_02239EC0: .word 0x000015F4
+_02239EC4: .word 0x00001011
+ thumb_func_end MOD83_02239EA8
+
+ thumb_func_start MOD83_02239EC8
+MOD83_02239EC8: ; 0x02239EC8
+ push {r3, r4, r5, lr}
+ ldr r4, _02239EE4 ; =0x0223CADC
+ mov r5, #0
+ str r5, [r4, #8]
+ str r1, [r4, #4]
+ ldr r1, _02239EE8 ; =0x000015F4
+ str r3, [r0, r1]
+ ldr r0, _02239EEC ; =0x00001012
+ str r0, [r2]
+ ldr r0, _02239EF0 ; =MOD83_02239F28
+ bl MOD04_021DE404
+ pop {r3, r4, r5, pc}
+ nop
+_02239EE4: .word 0x0223CADC
+_02239EE8: .word 0x000015F4
+_02239EEC: .word 0x00001012
+_02239EF0: .word MOD83_02239F28
+ thumb_func_end MOD83_02239EC8
+
+ thumb_func_start MOD83_02239EF4
+MOD83_02239EF4: ; 0x02239EF4
+ push {r3, lr}
+ cmp r1, #6
+ bhi _02239F1C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02239F06: ; jump table
+ .short _02239F1C - _02239F06 - 2 ; case 0
+ .short _02239F1C - _02239F06 - 2 ; case 1
+ .short _02239F1C - _02239F06 - 2 ; case 2
+ .short _02239F14 - _02239F06 - 2 ; case 3
+ .short _02239F1C - _02239F06 - 2 ; case 4
+ .short _02239F1C - _02239F06 - 2 ; case 5
+ .short _02239F1C - _02239F06 - 2 ; case 6
+_02239F14:
+ cmp r0, #1
+ bne _02239F1C
+ bl OS_Terminate
+_02239F1C:
+ ldr r0, _02239F24 ; =0x0223CADC
+ mov r1, #1
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_02239F24: .word 0x0223CADC
+ thumb_func_end MOD83_02239EF4
+
+ thumb_func_start MOD83_02239F28
+MOD83_02239F28: ; 0x02239F28
+ ldr r0, _02239F30 ; =0x0223CADC
+ mov r1, #1
+ str r1, [r0, #8]
+ bx lr
+ .align 2, 0
+_02239F30: .word 0x0223CADC
+ thumb_func_end MOD83_02239F28
+
+ thumb_func_start MOD83_02239F34
+MOD83_02239F34: ; 0x02239F34
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, _0223A24C ; =0x0000260C
+ add r4, r0, #0
+ ldr r1, [r4, r1]
+ cmp r1, #1
+ bne _02239F4C
+ bl MOD83_02239E40
+ str r0, [r5]
+_02239F4C:
+ ldr r0, _0223A250 ; =0x00002620
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02239F62
+ blx r0
+ cmp r0, #1
+ bne _02239F62
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+_02239F62:
+ mov r3, #1
+ ldr r0, [r5]
+ lsl r3, r3, #0xc
+ sub r0, r0, r3
+ cmp r0, #0x12
+ bls _02239F70
+ b _0223A342
+_02239F70:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02239F7C: ; jump table
+ .short _02239FA2 - _02239F7C - 2 ; case 0
+ .short _02239FB0 - _02239F7C - 2 ; case 1
+ .short _02239FCC - _02239F7C - 2 ; case 2
+ .short _02239FF4 - _02239F7C - 2 ; case 3
+ .short _0223A046 - _02239F7C - 2 ; case 4
+ .short _0223A05E - _02239F7C - 2 ; case 5
+ .short _0223A09A - _02239F7C - 2 ; case 6
+ .short _0223A0BE - _02239F7C - 2 ; case 7
+ .short _0223A0F2 - _02239F7C - 2 ; case 8
+ .short _0223A114 - _02239F7C - 2 ; case 9
+ .short _0223A14E - _02239F7C - 2 ; case 10
+ .short _0223A174 - _02239F7C - 2 ; case 11
+ .short _0223A1E8 - _02239F7C - 2 ; case 12
+ .short _0223A212 - _02239F7C - 2 ; case 13
+ .short _0223A342 - _02239F7C - 2 ; case 14
+ .short _0223A238 - _02239F7C - 2 ; case 15
+ .short _0223A2D4 - _02239F7C - 2 ; case 16
+ .short _0223A2F8 - _02239F7C - 2 ; case 17
+ .short _0223A31E - _02239F7C - 2 ; case 18
+_02239FA2:
+ bl FUN_0202E49C
+ bl FUN_02088858
+ ldr r0, _0223A254 ; =0x00001001
+ str r0, [r5]
+ b _0223A342
+_02239FB0:
+ bl FUN_0202E4C8
+ cmp r0, #0
+ beq _0223A092
+ ldr r0, _0223A258 ; =MOD83_02239DC0
+ ldr r1, _0223A25C ; =MOD83_02239DE0
+ bl MOD04_021DD968
+ ldr r0, [r4, #4]
+ bl FUN_02033310
+ ldr r0, _0223A260 ; =0x00001002
+ str r0, [r5]
+ b _0223A342
+_02239FCC:
+ ldr r0, _0223A264 ; =0x000015E4
+ mov r1, #2
+ add r0, r4, r0
+ mov r2, #1
+ mov r3, #0x14
+ bl MOD04_021DDEE0
+ mov r0, #2
+ bl MOD04_021DDE7C
+ bl MOD04_021DDDCC
+ bl FUN_02033E74
+ ldr r0, _0223A268 ; =0x00001003
+ mov r1, #0
+ str r0, [r5]
+ ldr r0, _0223A26C ; =0x0000261C
+ str r1, [r4, r0]
+ b _0223A342
+_02239FF4:
+ bl MOD04_021DDD7C
+ cmp r0, #0
+ bne _0223A002
+ bl MOD04_021DDCE8
+ b _0223A034
+_0223A002:
+ add r0, r4, #0
+ bl MOD83_02239E80
+ cmp r0, #1
+ bne _0223A02C
+ ldr r0, _0223A26C ; =0x0000261C
+ ldr r1, [r4, r0]
+ cmp r1, #1
+ bne _0223A020
+ ldr r0, _0223A270 ; =0x0223CADC
+ mov r1, #3
+ str r1, [r0, #4]
+ ldr r0, _0223A274 ; =0x0000100D
+ str r0, [r5]
+ b _0223A034
+_0223A020:
+ ldr r1, _0223A278 ; =0x021DD984
+ add r0, r0, #4
+ str r1, [r4, r0]
+ ldr r0, _0223A27C ; =0x00001004
+ str r0, [r5]
+ b _0223A034
+_0223A02C:
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+_0223A034:
+ ldr r0, _0223A280 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _0223A092
+ ldr r0, _0223A26C ; =0x0000261C
+ mov r1, #1
+ str r1, [r4, r0]
+ b _0223A342
+_0223A046:
+ bl MOD04_021DE05C
+ cmp r0, #0
+ bne _0223A058
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A058:
+ ldr r0, _0223A284 ; =0x00001005
+ str r0, [r5]
+ b _0223A342
+_0223A05E:
+ bl MOD04_021DDF4C
+ cmp r0, #3
+ bne _0223A06C
+ ldr r0, _0223A288 ; =0x00001006
+ str r0, [r5]
+ b _0223A088
+_0223A06C:
+ cmp r0, #4
+ bne _0223A07A
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A088
+_0223A07A:
+ cmp r0, #5
+ bne _0223A088
+ ldr r0, _0223A270 ; =0x0223CADC
+ mov r1, #3
+ str r1, [r0, #4]
+ ldr r0, _0223A274 ; =0x0000100D
+ str r0, [r5]
+_0223A088:
+ ldr r0, _0223A280 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ bne _0223A094
+_0223A092:
+ b _0223A342
+_0223A094:
+ bl MOD04_021DDF40
+ b _0223A342
+_0223A09A:
+ ldr r0, _0223A28C ; =MOD83_02239EF4
+ ldr r1, _0223A290 ; =0x0223B838
+ ldr r2, _0223A294 ; =0x0223B840
+ bl MOD04_021DE45C
+ cmp r0, #0
+ bne _0223A0B2
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A0B2:
+ ldr r2, _0223A298 ; =0x00001007
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD83_02239EA8
+ b _0223A342
+_0223A0BE:
+ ldr r0, _0223A26C ; =0x0000261C
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _0223A0D4
+ add r0, r4, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, #0xc
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A0D4:
+ ldr r0, _0223A29C ; =0x0223B854
+ add r1, r0, #0
+ add r2, r0, #0
+ bl MOD04_021DE3D0
+ cmp r0, #0
+ bne _0223A0EC
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A0EC:
+ ldr r0, _0223A2A0 ; =0x00001008
+ str r0, [r5]
+ b _0223A342
+_0223A0F2:
+ ldr r0, _0223A2A4 ; =0x000015F8
+ add r0, r4, r0
+ bl MOD04_021DE3AC
+ cmp r0, #0
+ bne _0223A108
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A108:
+ ldr r2, _0223A2A8 ; =0x00001009
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD83_02239EA8
+ b _0223A342
+_0223A114:
+ ldr r0, _0223A2A4 ; =0x000015F8
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ beq _0223A12A
+ add r0, r4, #0
+ mov r1, #2
+ add r2, r5, #0
+ add r3, #0xd
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A12A:
+ ldr r0, _0223A2AC ; =0x0223CAEC
+ mov r1, #0
+ mov r2, #0xa
+ bl MOD04_021DE364
+ cmp r0, #0
+ bne _0223A142
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A142:
+ ldr r2, _0223A2B0 ; =0x0000100A
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD83_02239EA8
+ b _0223A342
+_0223A14E:
+ ldr r1, _0223A2B4 ; =0x000015FC
+ ldr r0, _0223A2AC ; =0x0223CAEC
+ add r1, r4, r1
+ add r2, r3, #0
+ bl MOD04_021DE330
+ cmp r0, #0
+ bne _0223A168
+ add r0, r4, #0
+ bl MOD83_02239DF0
+ str r0, [r5]
+ b _0223A342
+_0223A168:
+ ldr r0, _0223A2B8 ; =0x0000100B
+ mov r1, #0
+ str r0, [r5]
+ ldr r0, _0223A2BC ; =0x00002608
+ str r1, [r4, r0]
+ b _0223A342
+_0223A174:
+ ldr r0, _0223A270 ; =0x0223CADC
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0223A1C4
+ ldr r0, _0223A280 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _0223A194
+ add r0, r4, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, #0xc
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A194:
+ mov r1, #0x26
+ lsl r1, r1, #8
+ add r0, r4, r1
+ add r1, r1, #4
+ add r1, r4, r1
+ bl MOD04_021DE2D0
+ cmp r0, #1
+ bne _0223A21A
+ mov r1, #0x26
+ lsl r1, r1, #8
+ ldr r2, [r4, r1]
+ add r1, r1, #4
+ mov r0, #0x64
+ ldr r1, [r4, r1]
+ mul r0, r2
+ bl _u32_div_f
+ ldr r1, _0223A2BC ; =0x00002608
+ ldr r2, [r4, r1]
+ cmp r2, r0
+ beq _0223A21A
+ str r0, [r4, r1]
+ b _0223A342
+_0223A1C4:
+ ldr r0, _0223A26C ; =0x0000261C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0223A1DA
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r5, #0
+ add r3, #0xd
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A1DA:
+ add r0, r4, #0
+ mov r1, #3
+ add r2, r5, #0
+ add r3, #0xd
+ bl MOD83_02239EC8
+ b _0223A342
+_0223A1E8:
+ bl MOD04_021DE308
+ cmp r0, #0
+ bne _0223A1F6
+ ldr r0, _0223A274 ; =0x0000100D
+ str r0, [r5]
+ b _0223A342
+_0223A1F6:
+ ldr r0, _0223A250 ; =0x00002620
+ mov r1, #0
+ str r1, [r4, r0]
+ bl FUN_02033ED0
+ bl FUN_02033364
+ bl FUN_02088868
+ bl FUN_0202E4F0
+ ldr r0, _0223A270 ; =0x0223CADC
+ ldr r0, [r0, #4]
+ pop {r3, r4, r5, pc}
+_0223A212:
+ bl MOD04_021DDB40
+ cmp r0, #1
+ beq _0223A21C
+_0223A21A:
+ b _0223A342
+_0223A21C:
+ ldr r0, _0223A250 ; =0x00002620
+ mov r1, #0
+ str r1, [r4, r0]
+ bl FUN_02033ED0
+ bl FUN_020332DC
+ bl FUN_02088868
+ bl FUN_0202E4F0
+ ldr r0, _0223A270 ; =0x0223CADC
+ ldr r0, [r0, #4]
+ pop {r3, r4, r5, pc}
+_0223A238:
+ ldr r0, _0223A270 ; =0x0223CADC
+ ldr r0, [r0, #0xc]
+ cmp r0, #1
+ beq _0223A242
+ b _0223A342
+_0223A242:
+ add r0, r4, #0
+ bl MOD83_022307B4
+ ldr r0, _0223A2C0 ; =0x00002618
+ b _0223A2C4
+ .align 2, 0
+_0223A24C: .word 0x0000260C
+_0223A250: .word 0x00002620
+_0223A254: .word 0x00001001
+_0223A258: .word MOD83_02239DC0
+_0223A25C: .word MOD83_02239DE0
+_0223A260: .word 0x00001002
+_0223A264: .word 0x000015E4
+_0223A268: .word 0x00001003
+_0223A26C: .word 0x0000261C
+_0223A270: .word 0x0223CADC
+_0223A274: .word 0x0000100D
+_0223A278: .word 0x021DD984
+_0223A27C: .word 0x00001004
+_0223A280: .word 0x021C48B8
+_0223A284: .word 0x00001005
+_0223A288: .word 0x00001006
+_0223A28C: .word MOD83_02239EF4
+_0223A290: .word 0x0223B838
+_0223A294: .word 0x0223B840
+_0223A298: .word 0x00001007
+_0223A29C: .word 0x0223B854
+_0223A2A0: .word 0x00001008
+_0223A2A4: .word 0x000015F8
+_0223A2A8: .word 0x00001009
+_0223A2AC: .word 0x0223CAEC
+_0223A2B0: .word 0x0000100A
+_0223A2B4: .word 0x000015FC
+_0223A2B8: .word 0x0000100B
+_0223A2BC: .word 0x00002608
+_0223A2C0: .word 0x00002618
+_0223A2C4:
+ ldr r0, [r4, r0]
+ cmp r0, #6
+ bne _0223A2CE
+ bl MOD04_021DDBBC
+_0223A2CE:
+ ldr r0, _0223A348 ; =0x00001010
+ str r0, [r5]
+ b _0223A342
+_0223A2D4:
+ ldr r0, _0223A34C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0223A342
+ ldr r0, _0223A350 ; =0x00002620
+ mov r1, #0
+ str r1, [r4, r0]
+ bl MOD04_021DD6F0
+ bl FUN_020332DC
+ bl FUN_02088868
+ bl FUN_0202E4F0
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_0223A2F8:
+ ldr r0, _0223A354 ; =0x0223CADC
+ ldr r1, [r0]
+ cmp r1, #1
+ bne _0223A30C
+ mov r1, #0
+ str r1, [r0]
+ ldr r0, _0223A358 ; =0x000015F4
+ ldr r0, [r4, r0]
+ str r0, [r5]
+ b _0223A342
+_0223A30C:
+ ldr r0, _0223A34C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _0223A342
+ ldr r0, _0223A35C ; =0x0000261C
+ mov r1, #1
+ str r1, [r4, r0]
+ b _0223A342
+_0223A31E:
+ ldr r0, _0223A354 ; =0x0223CADC
+ ldr r1, [r0, #8]
+ cmp r1, #1
+ bne _0223A332
+ mov r1, #0
+ str r1, [r0, #8]
+ ldr r0, _0223A358 ; =0x000015F4
+ ldr r0, [r4, r0]
+ str r0, [r5]
+ b _0223A342
+_0223A332:
+ ldr r0, _0223A34C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _0223A342
+ ldr r0, _0223A35C ; =0x0000261C
+ mov r1, #1
+ str r1, [r4, r0]
+_0223A342:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0223A348: .word 0x00001010
+_0223A34C: .word 0x021C48B8
+_0223A350: .word 0x00002620
+_0223A354: .word 0x0223CADC
+_0223A358: .word 0x000015F4
+_0223A35C: .word 0x0000261C
+ thumb_func_end MOD83_02239F34
+
+ .section .rodata
+ ; 0x0223A360
+ .incbin "baserom.nds", 0x2FE3A0, 0x41C
+
+ .section .data
+ ; 0x0223A780
+ .incbin "baserom.nds", 0x2FE7C0, 0x10E0
+
+ .section .bss
+ ; 0x0223B860
+ .space 0x1980
diff --git a/arm9/modules/84/asm/module_84.s b/arm9/modules/84/asm/module_84.s
new file mode 100644
index 00000000..47a474a3
--- /dev/null
+++ b/arm9/modules/84/asm/module_84.s
@@ -0,0 +1,6231 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD84_021D74E0
+MOD84_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D74FC
+ cmp r1, #1
+ bne _021D74F4
+ b _021D7620
+_021D74F4:
+ cmp r1, #2
+ bne _021D74FA
+ b _021D765A
+_021D74FA:
+ b _021D7668
+_021D74FC:
+ mov r0, #3
+ mov r1, #0x4b
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r1, _021D7670 ; =0x00001244
+ add r0, r6, #0
+ mov r2, #0x4b
+ bl FUN_02006268
+ add r4, r0, #0
+ bne _021D7516
+ b _021D7618
+_021D7516:
+ 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, _021D7674 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7678 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ add r0, r6, #0
+ bl FUN_0200628C
+ str r0, [r4, #0x18]
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ 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, #0x4b
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r4, #0
+ mov r0, #0x80
+ add r1, #0xe0
+ mov r2, #0x4b
+ bl FUN_02008C9C
+ add r1, r4, #0
+ add r1, #0xdc
+ str r0, [r1]
+ add r0, r4, #0
+ mov r2, #0xd
+ add r0, #0xe0
+ mov r1, #0
+ lsl r2, r2, #0x10
+ bl FUN_02008D04
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xe0
+ add r2, r1, #0
+ bl FUN_02008D24
+ add r0, r4, #0
+ str r6, [r4]
+ bl MOD84_021D7968
+ add r0, r4, #0
+ bl MOD84_021D7AA0
+ add r0, r4, #0
+ bl MOD84_021D7F94
+ add r0, r4, #0
+ bl MOD84_021D82B8
+ ldr r2, _021D767C ; =0x000001ED
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x4b
+ bl FUN_0200A86C
+ str r0, [r4, #0x14]
+ str r0, [sp]
+ mov r1, #0xef
+ ldr r0, [r4, #4]
+ mvn r1, r1
+ mov r2, #1
+ mov r3, #0
+ bl MOD84_021D84F8
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x14]
+ ldr r1, _021D7680 ; =0xFFFFFE40
+ str r0, [sp]
+ ldr r0, [r4, #4]
+ mov r2, #5
+ mov r3, #0
+ bl MOD84_021D84F8
+ str r0, [r4, #0xc]
+ mov r1, #0
+ ldr r2, _021D7684 ; =0x021DA6C8
+ ldr r0, _021D7688 ; =0x00001224
+ str r1, [r4, #0x10]
+ str r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ ldr r1, [r4, #4]
+ ldr r2, [r2, #0x2c]
+ add r0, r4, #0
+ blx r2
+ ldr r1, _021D768C ; =0x0000122C
+ mov r2, #1
+ str r0, [r4, r1]
+ ldr r1, _021D7690 ; =0x000004A2
+ mov r0, #0xe
+ bl FUN_0200433C
+ ldr r0, _021D7694 ; =MOD84_021D7958
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA60
+ ldr r1, _021D7698 ; =0x00001230
+ str r0, [r4, r1]
+ ldr r0, _021D769C ; =MOD84_021D7950
+ add r1, r4, #0
+ bl FUN_02015F10
+_021D7618:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7668
+_021D7620:
+ bl FUN_02006278
+ ldr r2, _021D7684 ; =0x021DA6C8
+ ldr r1, _021D768C ; =0x0000122C
+ add r4, r0, #0
+ ldr r0, [r4, r1]
+ sub r1, r1, #4
+ ldr r2, [r2, #0x30]
+ add r1, r4, r1
+ blx r2
+ cmp r0, #0
+ beq _021D7668
+ ldr r1, _021D76A0 ; =0x00001228
+ mov r0, #0
+ str r0, [r4, r1]
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r2, #0x4b
+ str r2, [sp, #8]
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7668
+_021D765A:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7668
+ add sp, #0x14
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7668:
+ mov r0, #0
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7670: .word 0x00001244
+_021D7674: .word 0xFFFFE0FF
+_021D7678: .word 0x04001000
+_021D767C: .word 0x000001ED
+_021D7680: .word 0xFFFFFE40
+_021D7684: .word 0x021DA6C8
+_021D7688: .word 0x00001224
+_021D768C: .word 0x0000122C
+_021D7690: .word 0x000004A2
+_021D7694: .word MOD84_021D7958
+_021D7698: .word 0x00001230
+_021D769C: .word MOD84_021D7950
+_021D76A0: .word 0x00001228
+ thumb_func_end MOD84_021D74E0
+
+ thumb_func_start MOD84_021D76A4
+MOD84_021D76A4: ; 0x021D76A4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ bl FUN_02006278
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #3
+ bhi _021D773E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D76C2: ; jump table
+ .short _021D76CA - _021D76C2 - 2 ; case 0
+ .short _021D76EE - _021D76C2 - 2 ; case 1
+ .short _021D771A - _021D76C2 - 2 ; case 2
+ .short _021D772E - _021D76C2 - 2 ; case 3
+_021D76CA:
+ bl OS_DisableInterrupts
+ add r6, r0, #0
+ ldr r0, _021D7744 ; =0x00001230
+ ldr r0, [r5, r0]
+ bl FUN_0200CAB4
+ add r0, r6, #0
+ bl OS_RestoreInterrupts
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D773E
+_021D76EE:
+ ldr r0, [r5, #0xc]
+ bl MOD84_021D85B8
+ ldr r0, [r5, #8]
+ bl MOD84_021D85B8
+ ldr r0, [r5, #0x14]
+ bl FUN_0200A8B8
+ add r0, r5, #0
+ bl MOD84_021D8000
+ add r0, r5, #0
+ bl MOD84_021D7AB8
+ add r0, r5, #0
+ bl MOD84_021D7A84
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D773E
+_021D771A:
+ add r5, #0xdc
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D773E
+_021D772E:
+ add r0, r6, #0
+ bl FUN_0200627C
+ mov r0, #0x4b
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_021D773E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_021D7744: .word 0x00001230
+ thumb_func_end MOD84_021D76A4
+
+ thumb_func_start MOD84_021D7748
+MOD84_021D7748: ; 0x021D7748
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD84_021D85EC
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD84_021D85EC
+ str r0, [r4, #0x10]
+ ldr r0, [r5]
+ cmp r0, #0xa
+ bhi _021D7804
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7778: ; jump table
+ .short _021D778E - _021D7778 - 2 ; case 0
+ .short _021D77EC - _021D7778 - 2 ; case 1
+ .short _021D7826 - _021D7778 - 2 ; case 2
+ .short _021D7846 - _021D7778 - 2 ; case 3
+ .short _021D7868 - _021D7778 - 2 ; case 4
+ .short _021D7874 - _021D7778 - 2 ; case 5
+ .short _021D789C - _021D7778 - 2 ; case 6
+ .short _021D78AA - _021D7778 - 2 ; case 7
+ .short _021D78BE - _021D7778 - 2 ; case 8
+ .short _021D7920 - _021D7778 - 2 ; case 9
+ .short _021D7914 - _021D7778 - 2 ; case 10
+_021D778E:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ bne _021D77C8
+ ldr r0, _021D7928 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #8
+ tst r0, r1
+ beq _021D77C8
+ ldr r0, [r4, #0x18]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _021D77C8
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4b
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ str r0, [r4, #0x1c]
+ mov r0, #7
+ str r0, [r5]
+ b _021D7920
+_021D77C8:
+ ldr r2, _021D792C ; =0x0000122C
+ sub r1, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #8
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ lsl r3, r2, #4
+ ldr r2, _021D7930 ; =0x021DA6FC
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _021D7804
+ ldr r0, _021D7934 ; =0x00001228
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r5]
+ b _021D7920
+_021D77EC:
+ ldr r2, _021D792C ; =0x0000122C
+ sub r1, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #8
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ lsl r3, r2, #4
+ ldr r2, _021D7938 ; =0x021DA700
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ bne _021D7806
+_021D7804:
+ b _021D7920
+_021D7806:
+ ldr r0, _021D793C ; =0x00001224
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #7
+ bhs _021D7820
+ mov r1, #0
+ add r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #2
+ str r0, [r5]
+ b _021D7920
+_021D7820:
+ mov r0, #4
+ str r0, [r5]
+ b _021D7920
+_021D7826:
+ ldr r2, _021D793C ; =0x00001224
+ ldr r1, [r4, #4]
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ lsl r3, r2, #4
+ ldr r2, _021D7940 ; =0x021DA6F4
+ ldr r2, [r2, r3]
+ blx r2
+ ldr r1, _021D792C ; =0x0000122C
+ mov r2, #0
+ str r0, [r4, r1]
+ sub r0, r1, #4
+ str r2, [r4, r0]
+ mov r0, #3
+ str r0, [r5]
+ b _021D7920
+_021D7846:
+ ldr r2, _021D792C ; =0x0000122C
+ sub r1, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #8
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ lsl r3, r2, #4
+ ldr r2, _021D7944 ; =0x021DA6F8
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _021D7920
+ ldr r0, _021D7934 ; =0x00001228
+ mov r1, #0
+ str r1, [r4, r0]
+ str r1, [r5]
+ b _021D7920
+_021D7868:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _021D7920
+ mov r0, #5
+ str r0, [r5]
+ b _021D7920
+_021D7874:
+ ldr r0, _021D7928 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #9
+ tst r0, r1
+ beq _021D7920
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4b
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #6
+ str r0, [r5]
+ b _021D7920
+_021D789C:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7920
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D78AA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7920
+ ldr r0, _021D7934 ; =0x00001228
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #8
+ str r0, [r5]
+ b _021D7920
+_021D78BE:
+ ldr r2, _021D792C ; =0x0000122C
+ sub r1, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #8
+ ldr r2, [r4, r2]
+ add r1, r4, r1
+ lsl r3, r2, #4
+ ldr r2, _021D7938 ; =0x021DA700
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _021D7920
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD84_021D87B0
+ ldr r0, [r4, #8]
+ bl MOD84_021D881C
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D7948 ; =0xFFFF1FFF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D794C ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #0x20
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4b
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0xa
+ str r0, [r5]
+ b _021D7920
+_021D7914:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7920
+ mov r0, #5
+ str r0, [r5]
+_021D7920:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D7928: .word 0x021C48B8
+_021D792C: .word 0x0000122C
+_021D7930: .word 0x021DA6FC
+_021D7934: .word 0x00001228
+_021D7938: .word 0x021DA700
+_021D793C: .word 0x00001224
+_021D7940: .word 0x021DA6F4
+_021D7944: .word 0x021DA6F8
+_021D7948: .word 0xFFFF1FFF
+_021D794C: .word 0x04001000
+ thumb_func_end MOD84_021D7748
+
+ thumb_func_start MOD84_021D7950
+MOD84_021D7950: ; 0x021D7950
+ ldr r3, _021D7954 ; =MOD84_021D7CFC
+ bx r3
+ .align 2, 0
+_021D7954: .word MOD84_021D7CFC
+ thumb_func_end MOD84_021D7950
+
+ thumb_func_start MOD84_021D7958
+MOD84_021D7958: ; 0x021D7958
+ push {r3, lr}
+ add r1, #0xdc
+ ldr r0, [r1]
+ bl FUN_0201FDEC
+ bl FUN_02009F80
+ pop {r3, pc}
+ thumb_func_end MOD84_021D7958
+
+ thumb_func_start MOD84_021D7968
+MOD84_021D7968: ; 0x021D7968
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0x4b
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ ldr r0, _021D7A60 ; =0x021DA68C
+ bl FUN_0201E66C
+ ldr r2, _021D7A64 ; =0x04000304
+ ldr r0, _021D7A68 ; =0xFFFF7FFF
+ ldrh r1, [r2]
+ and r0, r1
+ strh r0, [r2]
+ mov r0, #1
+ mov r1, #0
+ add r2, r0, #0
+ bl GX_SetGraphicsMode
+ ldr r0, _021D7A6C ; =0x021DA650
+ bl FUN_02016BBC
+ ldr r0, [r4, #4]
+ ldr r2, _021D7A70 ; =0x021DA670
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ ldr r2, _021D7A70 ; =0x021DA670
+ mov r1, #5
+ mov r3, #0
+ bl FUN_02016C18
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x4b
+ str r0, [sp, #8]
+ mov r0, #0x7f
+ mov r1, #0x42
+ add r3, r2, #0
+ bl FUN_02006948
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x4b
+ str r0, [sp, #8]
+ mov r0, #0x7f
+ mov r1, #0x42
+ mov r2, #4
+ bl FUN_02006948
+ ldr r2, _021D7A74 ; =0x04000050
+ mov r0, #0
+ add r3, r2, #0
+ add r7, r2, #0
+ ldr r1, _021D7A78 ; =0x04001050
+ strh r0, [r2]
+ strh r0, [r1]
+ mov r0, #0xff
+ sub r3, #0x10
+ strh r0, [r3]
+ add r3, r2, #0
+ ldr r4, _021D7A7C ; =0x00005EC0
+ sub r3, #0xc
+ strh r4, [r3]
+ sub r7, #8
+ ldrh r4, [r7]
+ mov r5, #0x3f
+ mov r3, #0x1d
+ bic r4, r5
+ add r6, r4, #0
+ orr r6, r3
+ mov r4, #0x20
+ orr r6, r4
+ strh r6, [r7]
+ sub r7, r2, #6
+ ldrh r6, [r7]
+ mov r2, #0x1f
+ bic r6, r5
+ orr r6, r2
+ orr r6, r4
+ strh r6, [r7]
+ add r6, r1, #0
+ sub r6, #0x10
+ strh r0, [r6]
+ add r0, r1, #0
+ mov r6, #0x18
+ sub r0, #0xc
+ strh r6, [r0]
+ add r6, r1, #0
+ sub r6, #8
+ ldrh r0, [r6]
+ bic r0, r5
+ orr r0, r3
+ orr r0, r4
+ sub r3, r1, #6
+ strh r0, [r6]
+ ldrh r0, [r3]
+ sub r1, #0x50
+ bic r0, r5
+ orr r0, r2
+ orr r0, r4
+ strh r0, [r3]
+ lsl r3, r4, #0x15
+ ldr r0, [r3]
+ ldr r2, _021D7A80 ; =0xFFFF1FFF
+ add r5, r0, #0
+ and r5, r2
+ lsl r0, r4, #8
+ orr r0, r5
+ str r0, [r3]
+ ldr r0, [r1]
+ and r2, r0
+ lsl r0, r4, #8
+ orr r0, r2
+ str r0, [r1]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7A60: .word 0x021DA68C
+_021D7A64: .word 0x04000304
+_021D7A68: .word 0xFFFF7FFF
+_021D7A6C: .word 0x021DA650
+_021D7A70: .word 0x021DA670
+_021D7A74: .word 0x04000050
+_021D7A78: .word 0x04001050
+_021D7A7C: .word 0x00005EC0
+_021D7A80: .word 0xFFFF1FFF
+ thumb_func_end MOD84_021D7968
+
+ thumb_func_start MOD84_021D7A84
+MOD84_021D7A84: ; 0x021D7A84
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD84_021D7A84
+
+ thumb_func_start MOD84_021D7AA0
+MOD84_021D7AA0: ; 0x021D7AA0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021D7AC8
+ add r0, r4, #0
+ bl MOD84_021D7B54
+ add r0, r4, #0
+ bl MOD84_021D7BC8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D7AA0
+
+ thumb_func_start MOD84_021D7AB8
+MOD84_021D7AB8: ; 0x021D7AB8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021D7CD4
+ add r0, r4, #0
+ bl MOD84_021D7BBC
+ pop {r4, pc}
+ thumb_func_end MOD84_021D7AB8
+
+ thumb_func_start MOD84_021D7AC8
+MOD84_021D7AC8: ; 0x021D7AC8
+ push {r3, lr}
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _021D7B3C ; =0x04000060
+ ldr r2, _021D7B40 ; =0xFFFFCFFD
+ ldrh r1, [r0]
+ and r1, r2
+ strh r1, [r0]
+ add r1, r2, #2
+ ldrh r3, [r0]
+ lsr r2, r2, #0x11
+ and r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r3, [r0]
+ ldr r1, _021D7B44 ; =0x0000CFFB
+ and r3, r1
+ strh r3, [r0]
+ ldrh r3, [r0]
+ sub r1, r1, #4
+ and r1, r3
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021D7B48 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _021D7B4C ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020AEB70
+ mov r0, #1
+ lsl r0, r0, #0xe
+ mov r1, #1
+ bl FUN_020AEDF4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r1, _021D7B50 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strh r0, [r1]
+ pop {r3, pc}
+ nop
+_021D7B3C: .word 0x04000060
+_021D7B40: .word 0xFFFFCFFD
+_021D7B44: .word 0x0000CFFB
+_021D7B48: .word 0x04000540
+_021D7B4C: .word 0xBFFF0000
+_021D7B50: .word 0x04000008
+ thumb_func_end MOD84_021D7AC8
+
+ thumb_func_start MOD84_021D7B54
+MOD84_021D7B54: ; 0x021D7B54
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x4b
+ bl FUN_0201EB64
+ str r0, [r4, #0x20]
+ mov r0, #0
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ strh r0, [r4, #0x30]
+ strh r0, [r4, #0x32]
+ strh r0, [r4, #0x34]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x20]
+ mov r1, #0x4b
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r4, #0
+ ldr r3, _021D7BB8 ; =0x00000FA4
+ add r0, #0x24
+ lsl r1, r1, #0xe
+ add r2, #0x30
+ bl FUN_0201ECA8
+ mov r1, #0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x10]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x14]
+ ldr r1, [r4, #0x20]
+ add r0, sp, #0xc
+ bl FUN_0201EC58
+ ldr r0, [r4, #0x20]
+ bl FUN_0201EB8C
+ mov r1, #0xfa
+ ldr r2, [r4, #0x20]
+ mov r0, #0
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_021D7BB8: .word 0x00000FA4
+ thumb_func_end MOD84_021D7B54
+
+ thumb_func_start MOD84_021D7BBC
+MOD84_021D7BBC: ; 0x021D7BBC
+ ldr r3, _021D7BC4 ; =FUN_0201EB70
+ ldr r0, [r0, #0x20]
+ bx r3
+ nop
+_021D7BC4: .word FUN_0201EB70
+ thumb_func_end MOD84_021D7BBC
+
+ thumb_func_start MOD84_021D7BC8
+MOD84_021D7BC8: ; 0x021D7BC8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r2, #0
+ add r5, r0, #0
+ add r4, r5, #0
+ str r2, [sp]
+ add r0, sp, #8
+ str r0, [sp, #4]
+ mov r0, #0x7f
+ mov r1, #1
+ mov r3, #0x4b
+ add r4, #0x38
+ bl FUN_02006D18
+ str r0, [r5, #0x38]
+ ldr r1, [sp, #8]
+ bl DC_FlushRange
+ ldr r0, [r5, #0x38]
+ cmp r0, #0
+ beq _021D7CCC
+ mov r1, #1
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x8c
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ str r1, [r0]
+ mov r2, #0
+ add r0, r4, #0
+ ldr r1, _021D7CD0 ; =0xFFF8E000
+ str r2, [r4, #0x7c]
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ str r2, [r0]
+ add r0, r4, #0
+ add r0, #0x94
+ strh r2, [r0]
+ mov r1, #0xa5
+ add r0, r4, #0
+ lsl r1, r1, #4
+ add r0, #0x96
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x50
+ add r0, #0x98
+ strh r1, [r0]
+ ldr r0, [r4]
+ bl FUN_020BC13C
+ str r0, [r4, #0x5c]
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x60]
+ ldr r0, [r4]
+ bl FUN_020BC0FC
+ str r0, [r4, #0x64]
+ bl FUN_0201B3C4
+ ldr r0, [r4]
+ ldr r1, [r4, #0x64]
+ bl FUN_0201B3A8
+ add r0, r4, #0
+ ldr r1, [r4, #0x60]
+ add r0, #8
+ bl FUN_020B80B4
+ mov r2, #0
+ str r2, [sp]
+ add r0, sp, #8
+ str r0, [sp, #4]
+ mov r0, #0x7f
+ mov r1, #3
+ mov r3, #0x4b
+ bl FUN_02006D18
+ str r0, [r4, #4]
+ cmp r0, #0
+ beq _021D7CCC
+ ldr r1, [sp, #8]
+ bl DC_FlushRange
+ add r0, r4, #0
+ add r0, #0x6c
+ mov r1, #0x4b
+ mov r2, #0x20
+ bl FUN_02016B20
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020BC4C8
+ add r5, r0, #0
+ add r0, r4, #0
+ ldr r2, [r4, #0x60]
+ add r0, #0x6c
+ add r1, r5, #0
+ bl FUN_020BB8D0
+ str r0, [r4, #0x68]
+ ldr r2, [r4, #0x60]
+ ldr r3, [r4, #0x64]
+ add r1, r5, #0
+ bl FUN_020B8110
+ add r0, r4, #0
+ ldr r1, [r4, #0x68]
+ add r0, #8
+ bl FUN_020B7EFC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x9c
+ str r1, [r0]
+ ldr r0, [r4, #0x68]
+ add r4, #0xa0
+ ldr r0, [r0, #8]
+ ldrh r0, [r0, #4]
+ lsl r0, r0, #0xc
+ str r0, [r4]
+_021D7CCC:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D7CD0: .word 0xFFF8E000
+ thumb_func_end MOD84_021D7BC8
+
+ thumb_func_start MOD84_021D7CD4
+MOD84_021D7CD4: ; 0x021D7CD4
+ push {r4, lr}
+ add r4, r0, #0
+ add r4, #0x38
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021D7CF0
+ add r0, r4, #0
+ ldr r1, [r4, #0x68]
+ add r0, #0x6c
+ bl thunk_FUN_020ae84c
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+_021D7CF0:
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D7CFA
+ bl FUN_02016A18
+_021D7CFA:
+ pop {r4, pc}
+ thumb_func_end MOD84_021D7CD4
+
+ thumb_func_start MOD84_021D7CFC
+MOD84_021D7CFC: ; 0x021D7CFC
+ push {r3, r4, lr}
+ sub sp, #0x4c
+ add r4, r0, #0
+ bl G3X_ResetMtxStack
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ bl FUN_0201EBA4
+ add r4, #0x38
+ add r0, sp, #0x28
+ bl MTX_Identity33_
+ add r0, r4, #0
+ add r0, #0x94
+ ldrh r0, [r0]
+ ldr r3, _021D7DF0 ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #4
+ bl MTX_RotX33_
+ add r1, sp, #0x28
+ add r0, sp, #4
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r0, r4, #0
+ add r0, #0x96
+ ldrh r0, [r0]
+ ldr r3, _021D7DF0 ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #4
+ bl MTX_RotY33_
+ add r1, sp, #0x28
+ add r0, sp, #4
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r0, r4, #0
+ add r0, #0x98
+ ldrh r0, [r0]
+ ldr r3, _021D7DF0 ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r2, r0, #1
+ lsl r1, r2, #1
+ add r2, r2, #1
+ lsl r2, r2, #1
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, sp, #4
+ bl MTX_RotZ33_
+ add r1, sp, #0x28
+ add r0, sp, #4
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r1, r4, #0
+ add r1, #0x9c
+ ldr r2, [r1]
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r2, r2, r1
+ add r1, r4, #0
+ add r1, #0x9c
+ str r2, [r1]
+ add r1, r4, #0
+ add r1, #0xa0
+ ldr r2, [r1]
+ add r1, r4, #0
+ add r1, #0x9c
+ add r0, r4, #0
+ ldr r1, [r1]
+ add r0, #0x9c
+ cmp r1, r2
+ blt _021D7DBA
+ ldr r1, [r0]
+ sub r1, r1, r2
+ str r1, [r0]
+_021D7DBA:
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r1, [r0]
+ ldr r0, [r4, #0x68]
+ add r2, sp, #0x28
+ str r1, [r0]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r4, #0x88
+ add r0, #8
+ add r1, #0x7c
+ add r3, r4, #0
+ bl FUN_0201B26C
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #0
+ str r2, [sp]
+ bl FUN_020BB1C0
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020222B4
+ add sp, #0x4c
+ pop {r3, r4, pc}
+ nop
+_021D7DF0: .word 0x020FFA38
+ thumb_func_end MOD84_021D7CFC
+
+ thumb_func_start MOD84_021D7DF4
+MOD84_021D7DF4: ; 0x021D7DF4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r0, #0x38]
+ add r5, r1, #0
+ add r4, #0x38
+ cmp r0, #0
+ beq _021D7E08
+ bl FUN_02016A18
+_021D7E08:
+ ldr r1, _021D7ED4 ; =0x021DA648
+ lsl r3, r5, #1
+ mov r2, #0
+ ldrh r1, [r1, r3]
+ str r2, [sp]
+ add r0, sp, #8
+ str r0, [sp, #4]
+ mov r0, #0x7f
+ mov r3, #0x4b
+ bl FUN_02006D18
+ str r0, [r4]
+ cmp r0, #0
+ beq _021D7E9A
+ ldr r1, [sp, #8]
+ bl DC_FlushRange
+ mov r1, #1
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x8c
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x90
+ str r1, [r0]
+ mov r2, #0
+ add r0, r4, #0
+ ldr r1, _021D7ED8 ; =0xFFF8E000
+ str r2, [r4, #0x7c]
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ str r2, [r0]
+ add r0, r4, #0
+ add r0, #0x94
+ strh r2, [r0]
+ mov r1, #0xa5
+ add r0, r4, #0
+ lsl r1, r1, #4
+ add r0, #0x96
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #0x50
+ add r0, #0x98
+ strh r1, [r0]
+ ldr r0, [r4]
+ bl FUN_020BC13C
+ str r0, [r4, #0x5c]
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x60]
+ ldr r0, [r4]
+ bl FUN_020BC0FC
+ str r0, [r4, #0x64]
+ bl FUN_0201B3C4
+ ldr r0, [r4]
+ ldr r1, [r4, #0x64]
+ bl FUN_0201B3A8
+ add r0, r4, #0
+ ldr r1, [r4, #0x60]
+ add r0, #8
+ bl FUN_020B80B4
+_021D7E9A:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021D7ED0
+ mov r1, #0
+ bl FUN_020BC4C8
+ add r1, r0, #0
+ ldr r0, [r4, #0x68]
+ ldr r2, [r4, #0x60]
+ ldr r3, [r4, #0x64]
+ bl FUN_020B8110
+ add r0, r4, #0
+ ldr r1, [r4, #0x68]
+ add r0, #8
+ bl FUN_020B7EFC
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x9c
+ str r1, [r0]
+ ldr r0, [r4, #0x68]
+ add r4, #0xa0
+ ldr r0, [r0, #8]
+ ldrh r0, [r0, #4]
+ lsl r0, r0, #0xc
+ str r0, [r4]
+_021D7ED0:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D7ED4: .word 0x021DA648
+_021D7ED8: .word 0xFFF8E000
+ thumb_func_end MOD84_021D7DF4
+
+ thumb_func_start MOD84_021D7EDC
+MOD84_021D7EDC: ; 0x021D7EDC
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0x82
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_020B1A24
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_020B1A24
+ mov r0, #0x25
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_020B1A24
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_020B19DC
+ mov r0, #0xa2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_020B19DC
+ mov r0, #0xa7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_020B19DC
+ ldr r0, [r5, #0x18]
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D7F2A
+ mov r0, #1
+ b _021D7F2C
+_021D7F2A:
+ mov r0, #0
+_021D7F2C:
+ mov r2, #0
+ lsl r4, r0, #3
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ lsl r0, r0, #0xf
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ ldr r1, _021D7F84 ; =0x021DA660
+ str r0, [sp, #0xc]
+ mov r0, #0x82
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x10]
+ ldrh r1, [r1, r4]
+ mov r0, #0x7f
+ add r3, r2, #0
+ bl FUN_02006AE4
+ mov r0, #0x4b
+ ldr r1, _021D7F88 ; =0x021DA662
+ str r0, [sp]
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #4]
+ ldrh r1, [r1, r4]
+ mov r0, #0x7f
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006A8C
+ ldr r1, _021D7F8C ; =0x021DA664
+ ldr r2, _021D7F90 ; =0x021DA666
+ ldrh r1, [r1, r4]
+ ldrh r2, [r2, r4]
+ mov r0, #0x7f
+ bl MOD84_021D81DC
+ mov r1, #0xad
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D7F84: .word 0x021DA660
+_021D7F88: .word 0x021DA662
+_021D7F8C: .word 0x021DA664
+_021D7F90: .word 0x021DA666
+ thumb_func_end MOD84_021D7EDC
+
+ thumb_func_start MOD84_021D7F94
+MOD84_021D7F94: ; 0x021D7F94
+ push {r4, lr}
+ sub sp, #0x30
+ add r4, r0, #0
+ bl MOD84_021D7EDC
+ mov r3, #0xad
+ mov r0, #1
+ lsl r3, r3, #2
+ str r0, [sp]
+ add r2, r3, #0
+ ldr r1, [r4, r3]
+ sub r2, #0xac
+ sub r3, #0x40
+ add r0, sp, #0xc
+ add r2, r4, r2
+ add r3, r4, r3
+ bl MOD84_021D8240
+ mov r1, #0
+ mov r2, #0xc8
+ add r3, r2, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ add r0, r4, #0
+ add r1, sp, #0xc
+ add r3, #0x98
+ bl MOD84_021D8260
+ mov r1, #0x2b
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ mov r1, #1
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x30
+ pop {r4, pc}
+ thumb_func_end MOD84_021D7F94
+
+ thumb_func_start MOD84_021D8000
+MOD84_021D8000: ; 0x021D8000
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0201FFC8
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD84_021D821C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D8000
+
+ thumb_func_start MOD84_021D801C
+MOD84_021D801C: ; 0x021D801C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #0x4b
+ mov r1, #0x30
+ str r2, [sp]
+ add r6, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D8090
+ ldr r0, [sp]
+ ldr r2, _021D8094 ; =0x021DA6B4
+ lsl r1, r0, #4
+ lsl r0, r5, #5
+ add r2, r2, r0
+ str r7, [r4]
+ ldr r2, [r1, r2]
+ str r6, [r4, #0x24]
+ str r2, [r4, #0x14]
+ ldr r2, _021D8098 ; =0x021DA6B8
+ add r2, r2, r0
+ ldr r2, [r1, r2]
+ str r2, [r4, #0x18]
+ ldr r2, _021D809C ; =0x021DA6BC
+ add r2, r2, r0
+ ldr r2, [r1, r2]
+ str r2, [r4, #0x1c]
+ ldr r2, _021D80A0 ; =0x021DA6C0
+ add r0, r2, r0
+ ldr r0, [r1, r0]
+ cmp r5, #0
+ str r0, [r4, #0x20]
+ bne _021D8068
+ ldr r0, _021D80A4 ; =0x021D80B8
+ str r0, [r4, #8]
+ ldr r0, _021D80A8 ; =0x021D80F0
+ b _021D806E
+_021D8068:
+ ldr r0, _021D80AC ; =0x021D8104
+ str r0, [r4, #8]
+ ldr r0, _021D80B0 ; =0x021D813C
+_021D806E:
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ mov r0, #1
+ lsl r0, r0, #0x10
+ add r1, r6, #0
+ bl _s32_div_f
+ str r0, [r4, #0x2c]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, _021D80B4 ; =0x021D8151
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA98
+ str r0, [r4, #4]
+_021D8090:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8094: .word 0x021DA6B4
+_021D8098: .word 0x021DA6B8
+_021D809C: .word 0x021DA6BC
+_021D80A0: .word 0x021DA6C0
+_021D80A4: .word 0x021D80B8
+_021D80A8: .word 0x021D80F0
+_021D80AC: .word 0x021D8104
+_021D80B0: .word 0x021D813C
+_021D80B4: .word 0x021D8151
+ thumb_func_end MOD84_021D801C
+
+ thumb_func_start MOD84_021D80B8
+MOD84_021D80B8: ; 0x021D80B8
+ and r0, r3
+ thumb_func_end MOD84_021D80B8
+
+ non_word_aligned_thumb_func_start MOD84_021D80BA
+MOD84_021D80BA: ; 0x021D80BA
+ thumb_func_end MOD84_021D80BA
+_021D80BA:
+ .byte 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2
+ .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5
+ .byte 0x14, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1
+ .byte 0xFD, 0xBC, 0xFB, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x50, 0x00, 0x00, 0x04
+ .byte 0x08, 0x20, 0x9F, 0xE5, 0x01, 0x04, 0x80, 0xE1, 0xB0, 0x00, 0xC2, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1
+ .byte 0x52, 0x00, 0x00, 0x04, 0x18, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1
+ .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x14, 0x00, 0x9F, 0xE5
+ .byte 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0xEA, 0xBC, 0xFB, 0xEB
+ .byte 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x50, 0x10, 0x00, 0x04, 0x08, 0x20, 0x9F, 0xE5
+ .byte 0x01, 0x04, 0x80, 0xE1, 0xB0, 0x00, 0xC2, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x52, 0x10, 0x00, 0x04
+ .byte 0x70, 0xB5, 0x0D, 0x1C, 0x06, 0x1C, 0x28, 0x69, 0x00, 0x28, 0x04, 0xD0, 0x01, 0x28, 0x0C, 0xD0
+ .byte 0x02, 0x28, 0x1A, 0xD0, 0x70, 0xBD, 0x28, 0x6A, 0xE9, 0x69, 0xAC, 0x68, 0x00, 0x22, 0x10, 0x23
+ .byte 0xA0, 0x47, 0x28, 0x69, 0x40, 0x1C, 0x28, 0x61, 0x70, 0xBD, 0xA8, 0x69, 0x02, 0x21, 0x00, 0x06
+ .byte 0x00, 0x0E, 0x3F, 0xF6, 0x9B, 0xFB, 0x68, 0x69, 0x03, 0x21, 0x00, 0x06, 0x00, 0x0E, 0x3F, 0xF6
+ .byte 0x95, 0xFB, 0x28, 0x69, 0x40, 0x1C, 0x28, 0x61, 0x70, 0xBD, 0xA9, 0x6A, 0xE8, 0x6A, 0x08, 0x18
+ .byte 0x04, 0x13, 0xA8, 0x62, 0x10, 0x2C, 0x00, 0xDB, 0x10, 0x24, 0x10, 0x21, 0xEA, 0x68, 0x20, 0x1C
+ .byte 0x09, 0x1B, 0x90, 0x47, 0x10, 0x2C, 0x04, 0xDB, 0x00, 0x20, 0x68, 0x60, 0x30, 0x1C, 0x34, 0xF6
+ .byte 0x79, 0xFC, 0x70, 0xBD
+
+ thumb_func_start MOD84_021D81C4
+MOD84_021D81C4: ; 0x021D81C4
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ bne _021D81CE
+ mov r0, #1
+ bx lr
+_021D81CE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD84_021D81C4
+
+ thumb_func_start MOD84_021D81D4
+MOD84_021D81D4: ; 0x021D81D4
+ ldr r3, _021D81D8 ; =FUN_02016A18
+ bx r3
+ .align 2, 0
+_021D81D8: .word FUN_02016A18
+ thumb_func_end MOD84_021D81D4
+
+ thumb_func_start MOD84_021D81DC
+MOD84_021D81DC: ; 0x021D81DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x4b
+ mov r1, #0x10
+ add r7, r2, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D8218
+ mov r0, #0x4b
+ add r3, r4, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #0
+ add r3, #8
+ bl FUN_02006C30
+ str r0, [r4]
+ mov r0, #0x4b
+ add r3, r4, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r1, r7, #0
+ mov r2, #0
+ add r3, #0xc
+ bl FUN_02006C5C
+ str r0, [r4, #4]
+_021D8218:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD84_021D81DC
+
+ thumb_func_start MOD84_021D821C
+MOD84_021D821C: ; 0x021D821C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021D823C
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D822C
+ bl FUN_02016A18
+_021D822C:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021D8236
+ bl FUN_02016A18
+_021D8236:
+ add r0, r4, #0
+ bl FUN_02016A18
+_021D823C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D821C
+
+ thumb_func_start MOD84_021D8240
+MOD84_021D8240: ; 0x021D8240
+ str r2, [r0]
+ str r3, [r0, #8]
+ ldr r2, [r1, #8]
+ str r2, [r0, #0xc]
+ ldr r1, [r1, #0xc]
+ ldr r2, [sp]
+ str r1, [r0, #0x10]
+ add r1, r0, #0
+ add r1, #0x20
+ strb r2, [r1]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ bx lr
+ thumb_func_end MOD84_021D8240
+
+ thumb_func_start MOD84_021D8260
+MOD84_021D8260: ; 0x021D8260
+ push {r4, lr}
+ sub sp, #0x20
+ add r0, #0xdc
+ ldr r0, [r0]
+ str r0, [sp]
+ lsl r0, r2, #0xc
+ str r0, [sp, #8]
+ lsl r0, r3, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x18]
+ mov r0, #0x4b
+ str r0, [sp, #0x1c]
+ add r0, sp, #0
+ bl FUN_0201FF84
+ add r4, r0, #0
+ beq _021D82A6
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ ldr r1, [sp, #0x30]
+ add r0, r4, #0
+ bl FUN_020200A0
+_021D82A6:
+ add r0, r4, #0
+ add sp, #0x20
+ pop {r4, pc}
+ thumb_func_end MOD84_021D8260
+
+ thumb_func_start MOD84_021D82AC
+MOD84_021D82AC: ; 0x021D82AC
+ mov r1, #0x2b
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ bx lr
+ thumb_func_end MOD84_021D82AC
+
+ thumb_func_start MOD84_021D82B4
+MOD84_021D82B4: ; 0x021D82B4
+ ldr r0, [r0, #0x10]
+ bx lr
+ thumb_func_end MOD84_021D82B4
+
+ thumb_func_start MOD84_021D82B8
+MOD84_021D82B8: ; 0x021D82B8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, _021D8428 ; =0x00001220
+ mov r1, #3
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x18]
+ ldr r7, _021D8428 ; =0x00001220
+ ldr r6, [r0, #8]
+ mov r5, #1
+_021D82CC:
+ ldr r0, _021D842C ; =0x00000186
+ cmp r5, r0
+ beq _021D8340
+ add r0, r0, #3
+ cmp r5, r0
+ beq _021D8340
+ ldr r0, _021D8430 ; =0x00000183
+ cmp r5, r0
+ beq _021D8340
+ lsl r1, r5, #0x10
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ bl FUN_02024594
+ cmp r0, #0
+ beq _021D8340
+ lsl r0, r5, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, _021D8428 ; =0x00001220
+ ldr r0, [r4, r0]
+ lsl r0, r0, #3
+ add r2, r4, r0
+ mov r0, #0xae
+ lsl r0, r0, #2
+ strh r1, [r2, r0]
+ add r0, r6, #0
+ mov r2, #0
+ bl FUN_02024674
+ ldr r1, _021D8428 ; =0x00001220
+ ldr r1, [r4, r1]
+ lsl r1, r1, #3
+ add r2, r4, r1
+ ldr r1, _021D8434 ; =0x000002BA
+ strb r0, [r2, r1]
+ bl FUN_0201B9EC
+ ldr r1, _021D8428 ; =0x00001220
+ ldr r1, [r4, r1]
+ lsl r1, r1, #3
+ add r2, r4, r1
+ mov r1, #0xaf
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ add r0, r6, #0
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_02024DAC
+ ldr r1, _021D8428 ; =0x00001220
+ ldr r1, [r4, r1]
+ lsl r1, r1, #3
+ add r2, r4, r1
+ ldr r1, _021D8438 ; =0x000002BB
+ strb r0, [r2, r1]
+ ldr r0, [r4, r7]
+ add r0, r0, #1
+ str r0, [r4, r7]
+_021D8340:
+ ldr r0, _021D843C ; =0x000001ED
+ add r5, r5, #1
+ cmp r5, r0
+ blt _021D82CC
+ ldr r0, _021D8428 ; =0x00001220
+ mov r7, #3
+ ldr r0, [r4, r0]
+ sub r0, r0, #1
+ cmp r0, #3
+ ble _021D83B0
+ add r5, r4, #0
+ add r5, #0x18
+_021D8358:
+ bl FUN_0201B9EC
+ ldr r1, _021D8428 ; =0x00001220
+ ldr r1, [r4, r1]
+ sub r1, r1, r7
+ bl _s32_div_f
+ add r0, r1, #3
+ mov r2, #0xaf
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ lsl r0, r0, #3
+ mov r1, #0xae
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ str r2, [sp]
+ str r2, [sp, #8]
+ mov r2, #0xae
+ add r0, r4, r0
+ lsl r2, r2, #2
+ ldr r3, [r0, r2]
+ add r2, r2, #4
+ ldr r2, [r0, r2]
+ str r1, [sp, #4]
+ mov ip, r2
+ mov r2, #0xae
+ lsl r2, r2, #2
+ str r3, [r5, r2]
+ mov r3, ip
+ add r2, r2, #4
+ str r3, [r5, r2]
+ mov r2, #0xae
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ ldr r1, [sp]
+ add r2, r2, #4
+ str r1, [r0, r2]
+ ldr r0, _021D8428 ; =0x00001220
+ add r7, r7, #1
+ ldr r0, [r4, r0]
+ add r5, #8
+ sub r0, r0, #1
+ cmp r7, r0
+ blt _021D8358
+_021D83B0:
+ bl FUN_0201B9EC
+ mov r1, #3
+ bl _s32_div_f
+ add r5, r1, #0
+ mov r7, #0
+_021D83BE:
+ cmp r5, #0
+ beq _021D83CC
+ cmp r5, #1
+ beq _021D83D6
+ cmp r5, #2
+ beq _021D83E0
+ b _021D83E8
+_021D83CC:
+ mov r0, #0xae
+ ldr r1, _021D842C ; =0x00000186
+ lsl r0, r0, #2
+ strh r1, [r4, r0]
+ b _021D83E8
+_021D83D6:
+ mov r0, #0xae
+ ldr r1, _021D8440 ; =0x00000189
+ lsl r0, r0, #2
+ strh r1, [r4, r0]
+ b _021D83E8
+_021D83E0:
+ mov r0, #0xae
+ ldr r1, _021D8430 ; =0x00000183
+ lsl r0, r0, #2
+ strh r1, [r4, r0]
+_021D83E8:
+ mov r1, #0xae
+ lsl r1, r1, #2
+ ldrh r1, [r4, r1]
+ add r0, r6, #0
+ mov r2, #0
+ bl FUN_02024674
+ ldr r1, _021D8434 ; =0x000002BA
+ strb r0, [r4, r1]
+ bl FUN_0201B9EC
+ mov r1, #0xaf
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, r1, #4
+ ldrh r1, [r4, r1]
+ add r0, r6, #0
+ mov r2, #0
+ bl FUN_02024DAC
+ ldr r1, _021D8438 ; =0x000002BB
+ add r5, r5, #1
+ strb r0, [r4, r1]
+ cmp r5, #3
+ blt _021D841C
+ mov r5, #0
+_021D841C:
+ add r7, r7, #1
+ add r4, #8
+ cmp r7, #3
+ blt _021D83BE
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8428: .word 0x00001220
+_021D842C: .word 0x00000186
+_021D8430: .word 0x00000183
+_021D8434: .word 0x000002BA
+_021D8438: .word 0x000002BB
+_021D843C: .word 0x000001ED
+_021D8440: .word 0x00000189
+ thumb_func_end MOD84_021D82B8
+
+ thumb_func_start MOD84_021D8444
+MOD84_021D8444: ; 0x021D8444
+ ldr r1, _021D844C ; =0x00001220
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_021D844C: .word 0x00001220
+ thumb_func_end MOD84_021D8444
+
+ thumb_func_start MOD84_021D8450
+MOD84_021D8450: ; 0x021D8450
+ mov r1, #0xae
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bx lr
+ thumb_func_end MOD84_021D8450
+
+ thumb_func_start MOD84_021D8458
+MOD84_021D8458: ; 0x021D8458
+ add r1, r0, #0
+ ldr r0, _021D8464 ; =0x00001234
+ ldr r3, _021D8468 ; =MOD84_021D847C
+ add r0, r1, r0
+ bx r3
+ nop
+_021D8464: .word 0x00001234
+_021D8468: .word MOD84_021D847C
+ thumb_func_end MOD84_021D8458
+
+ thumb_func_start MOD84_021D846C
+MOD84_021D846C: ; 0x021D846C
+ ldr r1, _021D8474 ; =0x00001234
+ ldr r3, _021D8478 ; =MOD84_021D84A0
+ add r0, r0, r1
+ bx r3
+ .align 2, 0
+_021D8474: .word 0x00001234
+_021D8478: .word MOD84_021D84A0
+ thumb_func_end MOD84_021D846C
+
+ thumb_func_start MOD84_021D847C
+MOD84_021D847C: ; 0x021D847C
+ push {r3, lr}
+ mov r3, #0
+ str r3, [r0, #4]
+ str r1, [r0]
+ mov r1, #1
+ str r3, [r0, #8]
+ lsl r1, r1, #0xa
+ str r1, [r0, #0xc]
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021D849C ; =0x04001050
+ mov r1, #2
+ mov r2, #0x3f
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ .align 2, 0
+_021D849C: .word 0x04001050
+ thumb_func_end MOD84_021D847C
+
+ thumb_func_start MOD84_021D84A0
+MOD84_021D84A0: ; 0x021D84A0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r1, [r4]
+ cmp r0, #0
+ beq _021D84B2
+ cmp r0, #1
+ beq _021D84C2
+ b _021D84EC
+_021D84B2:
+ ldr r0, [r1, #0xc]
+ mov r1, #0
+ bl MOD84_021D87B0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _021D84F0
+_021D84C2:
+ ldr r1, [r4, #8]
+ ldr r0, [r4, #0xc]
+ add r0, r1, r0
+ asr r2, r0, #0xc
+ str r0, [r4, #8]
+ cmp r2, #0x10
+ blt _021D84D2
+ mov r2, #0x10
+_021D84D2:
+ mov r0, #0x10
+ sub r0, r0, r2
+ lsl r0, r0, #8
+ add r1, r2, #0
+ orr r1, r0
+ ldr r0, _021D84F4 ; =0x04001052
+ cmp r2, #0x10
+ strh r1, [r0]
+ bne _021D84F0
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _021D84F0
+_021D84EC:
+ mov r0, #1
+ pop {r4, pc}
+_021D84F0:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D84F4: .word 0x04001052
+ thumb_func_end MOD84_021D84A0
+
+ thumb_func_start MOD84_021D84F8
+MOD84_021D84F8: ; 0x021D84F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ str r1, [sp, #0x14]
+ mov r0, #0x4b
+ mov r1, #0x38
+ add r5, r2, #0
+ add r7, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D85AC
+ ldr r0, [sp, #0x14]
+ str r6, [r4, #0x20]
+ str r0, [r4]
+ add r0, #0xc0
+ str r0, [r4, #4]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x30]
+ str r5, [r4, #8]
+ str r0, [r4, #0x2c]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x10]
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #0x4b
+ bl FUN_020219F4
+ str r0, [r4, #0x30]
+ mov r0, #0x4b
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r4, #0x24]
+ mov r3, #0
+ lsl r2, r5, #0x18
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r1, [r4, #0x24]
+ add r0, r6, #0
+ lsr r2, r2, #0x18
+ bl FUN_02019064
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r4, #0x24]
+ bl FUN_02019270
+ ldr r0, [r4, #0x24]
+ bl FUN_020191D0
+ mov r0, #0x4b
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r4, #0x28]
+ mov r3, #0
+ lsl r2, r5, #0x18
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r1, [r4, #0x28]
+ add r0, r6, #0
+ lsr r2, r2, #0x18
+ bl FUN_02019064
+ ldr r0, _021D85B4 ; =MOD84_021D8784
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA98
+ str r0, [r4, #0x34]
+_021D85AC:
+ add r0, r4, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D85B4: .word MOD84_021D8784
+ thumb_func_end MOD84_021D84F8
+
+ thumb_func_start MOD84_021D85B8
+MOD84_021D85B8: ; 0x021D85B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ beq _021D85C6
+ bl FUN_0200CAB4
+_021D85C6:
+ ldr r0, [r4, #0x30]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x24]
+ bl FUN_02019178
+ ldr r0, [r4, #0x28]
+ bl FUN_02019178
+ ldr r0, [r4, #0x24]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x28]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD84_021D85B8
+
+ thumb_func_start MOD84_021D85EC
+MOD84_021D85EC: ; 0x021D85EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r2, [r5, #0x1c]
+ str r1, [sp, #0x18]
+ cmp r2, #2
+ bne _021D8600
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D8600:
+ ldr r1, [r5, #4]
+ ldr r0, [sp, #0x18]
+ add r6, r1, r0
+ cmp r2, #0
+ bne _021D86E0
+ ldr r2, [r5, #0xc]
+ mov r0, #6
+ add r1, r2, #0
+ mul r1, r0
+ ldr r0, _021D8774 ; =0x021DA766
+ ldrh r0, [r0, r1]
+ cmp r6, r0
+ blt _021D86E0
+ ldr r2, _021D8778 ; =0x021DA764
+ ldr r0, [r5, #0x2c]
+ ldrh r1, [r2, r1]
+ ldr r2, [r5, #0x30]
+ bl FUN_0200A8E0
+ ldr r1, [r5, #0xc]
+ mov r0, #6
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021D877C ; =0x021DA768
+ ldrh r0, [r0, r2]
+ cmp r0, #0
+ beq _021D864A
+ mov r0, #0
+ ldr r1, [r5, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #1
+ lsl r1, r1, #8
+ sub r0, r1, r0
+ lsr r7, r0, #1
+ b _021D864C
+_021D864A:
+ mov r7, #0x20
+_021D864C:
+ ldr r1, [r5, #0xc]
+ mov r0, #6
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021D8774 ; =0x021DA766
+ mov r1, #0
+ ldrh r0, [r0, r2]
+ add r3, r7, #0
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8780 ; =0x00010200
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #0x24]
+ ldr r2, [r5, #0x30]
+ bl FUN_0201BDE0
+ cmp r4, #0xf0
+ ble _021D86D0
+ ldr r0, [r5, #0x28]
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8780 ; =0x00010200
+ add r3, r7, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [r5, #0x28]
+ ldr r2, [r5, #0x30]
+ bl FUN_0201BDE0
+ ldr r1, [r5, #0x28]
+ sub r4, #0xf0
+ ldrb r2, [r1, #7]
+ mov r0, #0x10
+ sub r3, r0, r4
+ add r4, r0, #0
+ sub r0, r0, r3
+ lsl r2, r2, #0x13
+ lsr r2, r2, #0x10
+ str r2, [sp]
+ ldrb r2, [r1, #8]
+ lsl r0, r0, #0x10
+ lsl r3, r3, #0x10
+ lsl r2, r2, #0x13
+ lsr r2, r2, #0x10
+ str r2, [sp, #4]
+ mov r2, #0
+ str r2, [sp, #8]
+ str r2, [sp, #0xc]
+ add r4, #0xf0
+ str r4, [sp, #0x10]
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #0x24]
+ ldr r1, [r1, #0xc]
+ lsr r3, r3, #0x10
+ bl FUN_02019658
+_021D86D0:
+ mov r1, #1
+ str r1, [r5, #0x18]
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0xd6
+ blo _021D86E0
+ str r1, [r5, #0x1c]
+_021D86E0:
+ str r6, [r5, #4]
+ ldr r0, [r5, #0x10]
+ mov r1, #6
+ add r2, r0, #0
+ ldr r0, _021D8774 ; =0x021DA766
+ mul r2, r1
+ ldrh r3, [r0, r2]
+ ldr r2, [r5]
+ add r0, r3, #0
+ add r0, #0x10
+ cmp r2, r0
+ ble _021D8766
+ lsl r0, r3, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #0xf0
+ bgt _021D8718
+ add r1, #0xfa
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r1, #0
+ lsl r3, r3, #0x10
+ ldr r0, [r5, #0x24]
+ add r2, r1, #0
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ b _021D8754
+_021D8718:
+ add r1, r3, #0
+ sub r1, #0xf0
+ mov r0, #0x10
+ sub r4, r0, r1
+ add r0, #0xf0
+ str r0, [sp]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ mov r1, #0
+ lsl r3, r3, #0x10
+ ldr r0, [r5, #0x24]
+ add r2, r1, #0
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x10
+ sub r0, r0, r4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x24]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+_021D8754:
+ mov r0, #1
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x10]
+ add r0, r0, #1
+ str r0, [r5, #0x10]
+ cmp r0, #0xd7
+ blo _021D8766
+ mov r0, #2
+ str r0, [r5, #0x1c]
+_021D8766:
+ ldr r1, [r5]
+ ldr r0, [sp, #0x18]
+ add r0, r1, r0
+ str r0, [r5]
+ mov r0, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8774: .word 0x021DA766
+_021D8778: .word 0x021DA764
+_021D877C: .word 0x021DA768
+_021D8780: .word 0x00010200
+ thumb_func_end MOD84_021D85EC
+
+ thumb_func_start MOD84_021D8784
+MOD84_021D8784: ; 0x021D8784
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021D8798
+ ldr r0, [r4, #0x24]
+ bl FUN_02019548
+ mov r0, #0
+ str r0, [r4, #0x18]
+_021D8798:
+ ldr r1, [r4, #8]
+ ldr r3, [r4]
+ lsl r1, r1, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r4, #0x20]
+ lsr r1, r1, #0x18
+ mov r2, #3
+ lsr r3, r3, #0x18
+ bl FUN_020179E0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D8784
+
+ thumb_func_start MOD84_021D87B0
+MOD84_021D87B0: ; 0x021D87B0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #2
+ str r0, [r5, #0x1c]
+ mov r0, #0
+ str r0, [r5, #0x18]
+ cmp r1, #0
+ beq _021D87CE
+ ldr r0, [r5, #0x24]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r4, _021D8814 ; =0x0001020F
+ b _021D87D0
+_021D87CE:
+ ldr r4, _021D8818 ; =0x00010200
+_021D87D0:
+ ldr r0, [r5, #0x2c]
+ ldr r2, [r5, #0x30]
+ mov r1, #0xd7
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r5, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #1
+ lsl r1, r1, #8
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ str r1, [r5]
+ mov r0, #0x50
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ ldr r0, [r5, #0x24]
+ ldr r2, [r5, #0x30]
+ bl FUN_0201BE3C
+ ldr r0, [r5, #0x24]
+ bl FUN_02019548
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8814: .word 0x0001020F
+_021D8818: .word 0x00010200
+ thumb_func_end MOD84_021D87B0
+
+ thumb_func_start MOD84_021D881C
+MOD84_021D881C: ; 0x021D881C
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #2
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4]
+ str r0, [r4, #0x18]
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x20]
+ ldr r3, [r4, #8]
+ mov r0, #0x7f
+ mov r1, #0x2a
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x20]
+ ldr r3, [r4, #8]
+ mov r0, #0x7f
+ mov r1, #0x2b
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x4b
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x7f
+ mov r1, #0x2c
+ add r3, r2, #0
+ bl FUN_02006930
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D881C
+
+ thumb_func_start MOD84_021D8874
+MOD84_021D8874: ; 0x021D8874
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x4b
+ mov r1, #0x1c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D88A0
+ str r5, [r4]
+ str r6, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ add r0, r5, #0
+ bl MOD84_021D82AC
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ sub r0, #0x36
+ str r0, [r4, #0x10]
+_021D88A0:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD84_021D8874
+
+ thumb_func_start MOD84_021D88A4
+MOD84_021D88A4: ; 0x021D88A4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021D8958
+ cmp r0, #0
+ beq _021D88C4
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #1
+ pop {r4, pc}
+_021D88C4:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD84_021D88A4
+
+ thumb_func_start MOD84_021D88C8
+MOD84_021D88C8: ; 0x021D88C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021D8A74
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D88C8
+
+ thumb_func_start MOD84_021D88DC
+MOD84_021D88DC: ; 0x021D88DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #0xc]
+ ldr r0, [r5, #0x10]
+ mov r7, #1
+ add r0, r1, r0
+ str r0, [r5, #0xc]
+ asr r6, r0, #0xc
+ lsl r7, r7, #8
+ ldr r0, [r5, #4]
+ mov r1, #2
+ mov r2, #0
+ add r3, r6, r7
+ bl FUN_020179E0
+ ldr r0, [r5, #4]
+ mov r1, #6
+ mov r2, #0
+ add r3, r6, r7
+ bl FUN_020179E0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D8914
+ cmp r0, #1
+ beq _021D893A
+ b _021D8950
+_021D8914:
+ ldr r0, [r5, #0x14]
+ add r1, r0, #1
+ ldr r0, _021D8954 ; =0x00000708
+ str r1, [r5, #0x14]
+ cmp r1, r0
+ blt _021D8950
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x20
+ add r1, r0, #0
+ sub r1, #0x30
+ mov r2, #0
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8950
+_021D893A:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D8950
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D8950:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8954: .word 0x00000708
+ thumb_func_end MOD84_021D88DC
+
+ thumb_func_start MOD84_021D8958
+MOD84_021D8958: ; 0x021D8958
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #4
+ bhi _021D8A50
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8972: ; jump table
+ .short _021D897C - _021D8972 - 2 ; case 0
+ .short _021D899C - _021D8972 - 2 ; case 1
+ .short _021D89D8 - _021D8972 - 2 ; case 2
+ .short _021D8A10 - _021D8972 - 2 ; case 3
+ .short _021D8A30 - _021D8972 - 2 ; case 4
+_021D897C:
+ ldr r0, [r5, #4]
+ ldr r2, _021D8A6C ; =0x021DAC70
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ ldr r2, _021D8A6C ; =0x021DAC70
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8A64
+_021D899C:
+ mov r0, #0x80
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #6
+ str r0, [sp, #4]
+ mov r0, #0x4b
+ mov r2, #0
+ str r0, [sp, #8]
+ mov r0, #0x7f
+ mov r1, #0x41
+ add r3, r2, #0
+ bl FUN_02006948
+ mov r0, #0x80
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #6
+ str r0, [sp, #4]
+ mov r0, #0x4b
+ str r0, [sp, #8]
+ mov r0, #0x7f
+ mov r1, #0x41
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006948
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8A64
+_021D89D8:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #4
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ mov r1, #6
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ add r3, r1, #0
+ bl FUN_020068C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8A64
+_021D8A10:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #5
+ mov r3, #2
+ bl FUN_0200687C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8A64
+_021D8A30:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #7
+ mov r3, #6
+ bl FUN_0200687C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8A64
+_021D8A50:
+ ldr r0, _021D8A70 ; =0x04000050
+ mov r1, #0
+ mov r2, #0xc
+ mov r3, #0x10
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D8A64:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D8A6C: .word 0x021DAC70
+_021D8A70: .word 0x04000050
+ thumb_func_end MOD84_021D8958
+
+ thumb_func_start MOD84_021D8A74
+MOD84_021D8A74: ; 0x021D8A74
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D8A74
+
+ thumb_func_start MOD84_021D8A8C
+MOD84_021D8A8C: ; 0x021D8A8C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0x4b
+ mov r1, #0x10
+ bl FUN_02016998
+ cmp r0, #0
+ beq _021D8AA8
+ str r5, [r0]
+ str r4, [r0, #4]
+ mov r1, #0
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+_021D8AA8:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D8A8C
+
+ thumb_func_start MOD84_021D8AAC
+MOD84_021D8AAC: ; 0x021D8AAC
+ push {r3, lr}
+ bl MOD84_021D8B70
+ cmp r0, #0
+ beq _021D8ABA
+ mov r0, #1
+ pop {r3, pc}
+_021D8ABA:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D8AAC
+
+ thumb_func_start MOD84_021D8AC0
+MOD84_021D8AC0: ; 0x021D8AC0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021D8C3C
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D8AC0
+
+ thumb_func_start MOD84_021D8AD4
+MOD84_021D8AD4: ; 0x021D8AD4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _021D8B66
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8AEC: ; jump table
+ .short _021D8AF4 - _021D8AEC - 2 ; case 0
+ .short _021D8B16 - _021D8AEC - 2 ; case 1
+ .short _021D8B28 - _021D8AEC - 2 ; case 2
+ .short _021D8B4E - _021D8AEC - 2 ; case 3
+_021D8AF4:
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r1, #0
+ mov r0, #3
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #0x20
+ sub r2, #0x10
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8B66
+_021D8B16:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D8B66
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8B66
+_021D8B28:
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ ldr r0, _021D8B6C ; =0x000002DF
+ cmp r1, r0
+ blt _021D8B66
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x20
+ add r1, r0, #0
+ sub r1, #0x30
+ mov r2, #0
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8B66
+_021D8B4E:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D8B66
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, pc}
+_021D8B66:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D8B6C: .word 0x000002DF
+ thumb_func_end MOD84_021D8AD4
+
+ thumb_func_start MOD84_021D8B70
+MOD84_021D8B70: ; 0x021D8B70
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #3
+ bhi _021D8C2A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8B8A: ; jump table
+ .short _021D8B92 - _021D8B8A - 2 ; case 0
+ .short _021D8BB2 - _021D8B8A - 2 ; case 1
+ .short _021D8BEA - _021D8B8A - 2 ; case 2
+ .short _021D8C0A - _021D8B8A - 2 ; case 3
+_021D8B92:
+ ldr r0, [r5, #4]
+ ldr r2, _021D8C38 ; =0x021DAC8C
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ ldr r2, _021D8C38 ; =0x021DAC8C
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8C30
+_021D8BB2:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x24
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x22
+ mov r3, #6
+ bl FUN_020068C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8C30
+_021D8BEA:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x25
+ mov r3, #2
+ bl FUN_0200687C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8C30
+_021D8C0A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x23
+ mov r3, #6
+ bl FUN_0200687C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8C30
+_021D8C2A:
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D8C30:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D8C38: .word 0x021DAC8C
+ thumb_func_end MOD84_021D8B70
+
+ thumb_func_start MOD84_021D8C3C
+MOD84_021D8C3C: ; 0x021D8C3C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D8C3C
+
+ thumb_func_start MOD84_021D8C54
+MOD84_021D8C54: ; 0x021D8C54
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #0xe
+ add r5, r0, #0
+ mov r0, #0x4b
+ lsl r1, r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D8CC6
+ str r5, [r4]
+ ldr r1, _021D8CCC ; =0x00000DF4
+ str r6, [r4, #4]
+ mov r2, #0
+ str r2, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ add r1, #0xa
+ strh r2, [r4, r1]
+ bl FUN_0201B9EC
+ ldr r1, _021D8CD0 ; =0x00000DFC
+ strh r0, [r4, r1]
+ add r0, r5, #0
+ bl MOD84_021D8444
+ mov r1, #0x17
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r5, #0
+ bl MOD84_021D8450
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, _021D8CD4 ; =MOD84_021D9278
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r2, #0
+ str r2, [r4, #0xc]
+ mov r0, #0x15
+ str r2, [r4, #8]
+ add r3, r4, #0
+ add r1, r2, #0
+ lsl r0, r0, #4
+_021D8CB8:
+ str r1, [r3, #0x60]
+ str r1, [r3, #0x48]
+ str r1, [r3, r0]
+ add r2, r2, #1
+ add r3, r3, #4
+ cmp r2, #6
+ blt _021D8CB8
+_021D8CC6:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_021D8CCC: .word 0x00000DF4
+_021D8CD0: .word 0x00000DFC
+_021D8CD4: .word MOD84_021D9278
+ thumb_func_end MOD84_021D8C54
+
+ thumb_func_start MOD84_021D8CD8
+MOD84_021D8CD8: ; 0x021D8CD8
+ push {r3, lr}
+ bl MOD84_021D8DF8
+ cmp r0, #0
+ beq _021D8CE6
+ mov r0, #1
+ pop {r3, pc}
+_021D8CE6:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D8CD8
+
+ thumb_func_start MOD84_021D8CEC
+MOD84_021D8CEC: ; 0x021D8CEC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D8D08 ; =0x00000DFC
+ ldrh r0, [r4, r0]
+ bl FUN_0201B9E0
+ add r0, r4, #0
+ bl MOD84_021D9044
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D8D08: .word 0x00000DFC
+ thumb_func_end MOD84_021D8CEC
+
+ thumb_func_start MOD84_021D8D0C
+MOD84_021D8D0C: ; 0x021D8D0C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #3
+ bhi _021D8DC8
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8D24: ; jump table
+ .short _021D8D2C - _021D8D24 - 2 ; case 0
+ .short _021D8D56 - _021D8D24 - 2 ; case 1
+ .short _021D8D6E - _021D8D24 - 2 ; case 2
+ .short _021D8D9E - _021D8D24 - 2 ; case 3
+_021D8D2C:
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r1, #0
+ mov r0, #3
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #0x20
+ sub r2, #0x10
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8DE6
+_021D8D56:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D8DE6
+ ldr r0, _021D8DEC ; =0x00000DF4
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8DE6
+_021D8D6E:
+ ldr r1, _021D8DEC ; =0x00000DF4
+ ldr r2, [r4, r1]
+ cmp r2, #0
+ bne _021D8D98
+ mov r2, #0x64
+ str r2, [r4, r1]
+ add r1, #0xa
+ ldrh r1, [r4, r1]
+ bl MOD84_021D90C4
+ ldr r0, _021D8DF0 ; =0x00000DFE
+ ldrh r1, [r4, r0]
+ add r1, r1, #1
+ strh r1, [r4, r0]
+ ldrh r0, [r4, r0]
+ cmp r0, #6
+ blo _021D8DE6
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8DE6
+_021D8D98:
+ sub r0, r2, #1
+ str r0, [r4, r1]
+ b _021D8DE6
+_021D8D9E:
+ ldr r0, _021D8DEC ; =0x00000DF4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ ldr r0, _021D8DF4 ; =0x000002FD
+ cmp r1, r0
+ blt _021D8DE6
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x20
+ add r1, r0, #0
+ sub r1, #0x30
+ mov r2, #0
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8DE6
+_021D8DC8:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D8DE6
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D8DE6:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8DEC: .word 0x00000DF4
+_021D8DF0: .word 0x00000DFE
+_021D8DF4: .word 0x000002FD
+ thumb_func_end MOD84_021D8D0C
+
+ thumb_func_start MOD84_021D8DF8
+MOD84_021D8DF8: ; 0x021D8DF8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x6c
+ add r4, r0, #0
+ ldr r0, [r1]
+ str r1, [sp, #0x14]
+ cmp r0, #8
+ bls _021D8E08
+ b _021D9028
+_021D8E08:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8E14: ; jump table
+ .short _021D8E26 - _021D8E14 - 2 ; case 0
+ .short _021D8E4A - _021D8E14 - 2 ; case 1
+ .short _021D8E86 - _021D8E14 - 2 ; case 2
+ .short _021D8EAA - _021D8E14 - 2 ; case 3
+ .short _021D8ECE - _021D8E14 - 2 ; case 4
+ .short _021D8EF2 - _021D8E14 - 2 ; case 5
+ .short _021D8F40 - _021D8E14 - 2 ; case 6
+ .short _021D8F86 - _021D8E14 - 2 ; case 7
+ .short _021D8FD4 - _021D8E14 - 2 ; case 8
+_021D8E26:
+ ldr r0, [r4, #4]
+ ldr r2, _021D903C ; =0x021DACB8
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ ldr r2, _021D903C ; =0x021DACB8
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ b _021D9034
+_021D8E4A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x22
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x22
+ mov r3, #6
+ bl FUN_020068C8
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ b _021D9034
+_021D8E86:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x23
+ mov r3, #2
+ bl FUN_0200687C
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ b _021D9034
+_021D8EAA:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x23
+ mov r3, #6
+ bl FUN_0200687C
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ b _021D9034
+_021D8ECE:
+ mov r0, #0x7f
+ mov r1, #0x35
+ mov r2, #0x36
+ bl MOD84_021D81DC
+ str r0, [r4, #8]
+ mov r0, #0x1b
+ mov r1, #0x29
+ mov r2, #0x2a
+ bl MOD84_021D81DC
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ b _021D9034
+_021D8EF2:
+ add r0, r4, #0
+ add r0, #0x10
+ bl FUN_020B1A24
+ add r0, r4, #0
+ add r0, #0x34
+ bl FUN_020B19DC
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x10
+ str r0, [sp, #0x10]
+ mov r0, #0x7f
+ mov r1, #0x37
+ add r3, r2, #0
+ bl FUN_02006AE4
+ mov r0, #0x4b
+ str r0, [sp]
+ add r4, #0x34
+ mov r0, #0x7f
+ mov r1, #0x38
+ mov r2, #1
+ mov r3, #0
+ str r4, [sp, #4]
+ bl FUN_02006A8C
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ b _021D9034
+_021D8F40:
+ mov r0, #1
+ str r0, [sp]
+ add r2, r4, #0
+ add r3, r4, #0
+ ldr r1, [r4, #8]
+ add r0, sp, #0x48
+ add r2, #0x10
+ add r3, #0x34
+ bl MOD84_021D8240
+ mov r6, #0
+ add r5, r4, #0
+ add r7, r6, #0
+_021D8F5A:
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r7, [sp, #8]
+ ldr r0, [r4]
+ add r1, sp, #0x48
+ add r2, r7, #0
+ add r3, r7, #0
+ bl MOD84_021D8260
+ str r0, [r5, #0x48]
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, #6
+ blt _021D8F5A
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ b _021D9034
+_021D8F86:
+ mov r0, #0x4b
+ str r0, [sp]
+ mov r0, #0x1b
+ mov r1, #0x28
+ mov r2, #0
+ add r3, sp, #0x20
+ bl FUN_02006BB0
+ str r0, [sp, #0x18]
+ cmp r0, #0
+ beq _021D8FC8
+ mov r5, #0x19
+ lsl r5, r5, #8
+ mov r6, #0
+ add r4, #0x78
+ lsr r7, r5, #1
+_021D8FA6:
+ add r0, r4, #0
+ bl FUN_020B1A24
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0
+ mov r2, #1
+ add r3, r4, #0
+ bl FUN_020B1768
+ add r6, r6, #1
+ add r4, #0x24
+ add r5, r5, r7
+ cmp r6, #6
+ blt _021D8FA6
+ ldr r0, [sp, #0x18]
+ bl FUN_02016A18
+_021D8FC8:
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ b _021D9034
+_021D8FD4:
+ add r0, r4, #0
+ add r6, r4, #0
+ str r0, [sp, #0x1c]
+ add r0, #0x34
+ mov r7, #0
+ add r6, #0x78
+ add r5, r4, #0
+ str r0, [sp, #0x1c]
+_021D8FE4:
+ mov r0, #1
+ str r0, [sp]
+ ldr r1, [r4, #0xc]
+ ldr r3, [sp, #0x1c]
+ add r0, sp, #0x24
+ add r2, r6, #0
+ bl MOD84_021D8240
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r2, #0
+ ldr r0, [r4]
+ add r1, sp, #0x24
+ add r3, r2, #0
+ bl MOD84_021D8260
+ mov r1, #0xe
+ str r0, [r5, #0x60]
+ bl FUN_020202A8
+ add r7, r7, #1
+ add r6, #0x24
+ add r5, r5, #4
+ cmp r7, #6
+ blt _021D8FE4
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp, #0x14]
+ str r1, [r0]
+ b _021D9034
+_021D9028:
+ ldr r0, _021D9040 ; =0x00003485
+ bl FUN_0201B9E0
+ add sp, #0x6c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D9034:
+ mov r0, #0
+ add sp, #0x6c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D903C: .word 0x021DACB8
+_021D9040: .word 0x00003485
+ thumb_func_end MOD84_021D8DF8
+
+ thumb_func_start MOD84_021D9044
+MOD84_021D9044: ; 0x021D9044
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ bl OS_DisableInterrupts
+ mov r7, #0x15
+ str r0, [sp]
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_021D9056:
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ beq _021D9060
+ bl FUN_0201FFC8
+_021D9060:
+ ldr r0, [r5, #0x60]
+ cmp r0, #0
+ beq _021D906A
+ bl FUN_0201FFC8
+_021D906A:
+ ldr r0, [r5, r7]
+ cmp r0, #0
+ beq _021D9082
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_0200CAB4
+_021D9082:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D9056
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _021D9098
+ bl FUN_0200CAB4
+_021D9098:
+ ldr r0, [r6, #8]
+ cmp r0, #0
+ beq _021D90A2
+ bl MOD84_021D821C
+_021D90A2:
+ ldr r0, [r6, #0xc]
+ cmp r0, #0
+ beq _021D90AC
+ bl MOD84_021D821C
+_021D90AC:
+ ldr r0, [r6, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r6, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [sp]
+ bl OS_RestoreInterrupts
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD84_021D9044
+
+ thumb_func_start MOD84_021D90C4
+MOD84_021D90C4: ; 0x021D90C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x4b
+ mov r1, #0x38
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _021D90DA
+ b _021D91F6
+_021D90DA:
+ mov r0, #1
+ str r0, [r4]
+ str r5, [r4, #4]
+ mov r0, #0x17
+ str r6, [r4, #8]
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ cmp r6, r1
+ blt _021D90F4
+ add r0, r6, #0
+ bl _s32_div_f
+ b _021D90F6
+_021D90F4:
+ add r1, r6, #0
+_021D90F6:
+ lsl r6, r6, #2
+ str r1, [r4, #0xc]
+ add r1, r5, r6
+ ldr r0, [r1, #0x48]
+ str r0, [r4, #0x14]
+ ldr r0, [r1, #0x60]
+ str r0, [r4, #0x10]
+ mov r0, #0x5b
+ lsl r0, r0, #2
+ ldr r3, [r5, r0]
+ ldr r0, [r4, #0xc]
+ ldr r7, [r4, #8]
+ lsl r1, r0, #3
+ mov r0, #0
+ add r2, r3, r1
+ str r0, [sp]
+ ldrb r0, [r2, #3]
+ str r0, [sp, #4]
+ ldr r0, [r2, #4]
+ str r0, [sp, #8]
+ ldrh r1, [r3, r1]
+ ldrb r2, [r2, #2]
+ add r0, sp, #0xc
+ mov r3, #2
+ bl FUN_02068C00
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp]
+ add r1, sp, #0xc
+ ldrh r0, [r1]
+ ldrh r1, [r1, #2]
+ ldr r3, _021D91FC ; =0x021DACA8
+ mov r2, #0x4b
+ bl FUN_02012400
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ mov r1, #0x32
+ add r0, r5, r0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r2, #0x32
+ mov r0, #0x5d
+ lsl r2, r2, #6
+ add r1, r7, #0
+ lsl r0, r0, #2
+ mul r1, r2
+ lsl r3, r2, #1
+ add r0, r5, r0
+ add r1, r1, r3
+ bl GX_LoadOBJ
+ mov r0, #0x4e
+ lsl r0, r0, #0xe
+ str r0, [r4, #0x18]
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x19
+ sub r1, r1, r2
+ mov r0, #0x19
+ ror r1, r0
+ add r0, r2, r1
+ add r0, #0xf0
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x20]
+ bl FUN_0201B9EC
+ ldr r1, _021D9200 ; =0x00000667
+ bl _s32_div_f
+ ldr r0, _021D9204 ; =0x00000666
+ add r0, r1, r0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ str r0, [r4, #0x30]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ add r0, r0, #2
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x2c]
+ bl FUN_0201B9EC
+ mov r1, #0xc
+ bl _s32_div_f
+ add r0, r1, #4
+ str r0, [r4, #0x34]
+ add r1, r4, #0
+ ldr r0, [r4, #0x14]
+ add r1, #0x18
+ bl FUN_02020044
+ add r1, r4, #0
+ ldr r0, [r4, #0x10]
+ add r1, #0x18
+ bl FUN_02020044
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _021D9208 ; =MOD84_021D920C
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA60
+ mov r1, #0x15
+ add r2, r5, r6
+ lsl r1, r1, #4
+ str r0, [r2, r1]
+_021D91F6:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D91FC: .word 0x021DACA8
+_021D9200: .word 0x00000667
+_021D9204: .word 0x00000666
+_021D9208: .word MOD84_021D920C
+ thumb_func_end MOD84_021D90C4
+
+ thumb_func_start MOD84_021D920C
+MOD84_021D920C: ; 0x021D920C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ bne _021D9270
+ ldr r2, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ add r0, r4, #0
+ add r2, r2, r1
+ mov r1, #0x5a
+ lsl r1, r1, #0xe
+ add r0, #0x28
+ str r2, [r4, #0x28]
+ cmp r2, r1
+ blt _021D9230
+ ldr r2, [r0]
+ sub r1, r2, r1
+ str r1, [r0]
+_021D9230:
+ ldr r2, [r4, #0x28]
+ ldr r0, [r4, #0x34]
+ asr r2, r2, #0xc
+ lsl r3, r2, #2
+ ldr r2, _021D9274 ; =0x020EDF50
+ ldr r1, [r4, #0x30]
+ ldr r2, [r2, r3]
+ mul r2, r0
+ add r0, r1, r2
+ str r0, [r4, #0x1c]
+ ldr r2, [r4, #0x18]
+ ldr r0, [r4, #0x24]
+ add r1, r4, #0
+ sub r0, r2, r0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ add r1, #0x18
+ bl FUN_02020044
+ add r1, r4, #0
+ ldr r0, [r4, #0x10]
+ add r1, #0x18
+ bl FUN_02020044
+ ldr r0, [r4, #0x18]
+ asr r1, r0, #0xc
+ mov r0, #0x37
+ mvn r0, r0
+ cmp r1, r0
+ bge _021D9270
+ mov r0, #0
+ str r0, [r4]
+_021D9270:
+ pop {r4, pc}
+ nop
+_021D9274: .word 0x020EDF50
+ thumb_func_end MOD84_021D920C
+
+ thumb_func_start MOD84_021D9278
+MOD84_021D9278: ; 0x021D9278
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r1, [sp, #0xc]
+ mov r7, #0
+ add r6, r1, #0
+_021D9282:
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _021D937A
+ bl FUN_0201B6C8
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _021D937A
+ mov r1, #0x17
+ ldr r0, [r4, #0xc]
+ ldr r2, [sp, #0xc]
+ lsl r1, r1, #4
+ ldr r1, [r2, r1]
+ add r0, r0, #6
+ cmp r0, r1
+ blt _021D92AE
+ bl _s32_div_f
+ add r0, r1, #0
+_021D92AE:
+ str r0, [r4, #0xc]
+ ldr r1, [r4, #8]
+ ldr r5, [r4, #4]
+ str r1, [sp, #0x10]
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ ldr r3, [r5, r1]
+ lsl r1, r0, #3
+ mov r0, #0
+ add r2, r3, r1
+ str r0, [sp]
+ ldrb r0, [r2, #3]
+ str r0, [sp, #4]
+ ldr r0, [r2, #4]
+ str r0, [sp, #8]
+ ldrh r1, [r3, r1]
+ ldrb r2, [r2, #2]
+ add r0, sp, #0x14
+ mov r3, #2
+ bl FUN_02068C00
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp]
+ add r0, sp, #0x14
+ add r1, sp, #0x14
+ ldrh r0, [r0]
+ ldrh r1, [r1, #2]
+ ldr r3, _021D9388 ; =0x021DACA8
+ mov r2, #0x4b
+ bl FUN_02012400
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ mov r1, #0x32
+ add r0, r5, r0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ ldr r2, [sp, #0x10]
+ mov r1, #0x32
+ mov r0, #0x5d
+ add r3, r2, #0
+ lsl r1, r1, #6
+ lsl r0, r0, #2
+ mul r3, r1
+ lsl r1, r1, #1
+ mov r2, #0x32
+ add r0, r5, r0
+ add r1, r3, r1
+ lsl r2, r2, #6
+ bl GX_LoadOBJ
+ mov r0, #0x4e
+ lsl r0, r0, #0xe
+ str r0, [r4, #0x18]
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x19
+ sub r1, r1, r2
+ mov r0, #0x19
+ ror r1, r0
+ add r0, r2, r1
+ add r0, #0xf0
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x1c]
+ mov r0, #0
+ str r0, [r4, #0x20]
+ bl FUN_0201B9EC
+ ldr r1, _021D938C ; =0x00000667
+ bl _s32_div_f
+ ldr r0, _021D9390 ; =0x00000666
+ add r0, r1, r0
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ str r0, [r4, #0x30]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ add r0, r0, #2
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x2c]
+ bl FUN_0201B9EC
+ mov r1, #0xc
+ bl _s32_div_f
+ add r0, r1, #4
+ str r0, [r4, #0x34]
+ mov r0, #1
+ str r0, [r4]
+_021D937A:
+ add r7, r7, #1
+ add r6, r6, #4
+ cmp r7, #6
+ bge _021D9384
+ b _021D9282
+_021D9384:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9388: .word 0x021DACA8
+_021D938C: .word 0x00000667
+_021D9390: .word 0x00000666
+ thumb_func_end MOD84_021D9278
+
+ thumb_func_start MOD84_021D9394
+MOD84_021D9394: ; 0x021D9394
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0x4b
+ mov r1, #0x10
+ bl FUN_02016998
+ cmp r0, #0
+ beq _021D93B0
+ str r5, [r0]
+ str r4, [r0, #4]
+ mov r1, #0
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+_021D93B0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D9394
+
+ thumb_func_start MOD84_021D93B4
+MOD84_021D93B4: ; 0x021D93B4
+ push {r3, lr}
+ bl MOD84_021D9478
+ cmp r0, #0
+ beq _021D93C2
+ mov r0, #1
+ pop {r3, pc}
+_021D93C2:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D93B4
+
+ thumb_func_start MOD84_021D93C8
+MOD84_021D93C8: ; 0x021D93C8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021D9544
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D93C8
+
+ thumb_func_start MOD84_021D93DC
+MOD84_021D93DC: ; 0x021D93DC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _021D946E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D93F4: ; jump table
+ .short _021D93FC - _021D93F4 - 2 ; case 0
+ .short _021D941E - _021D93F4 - 2 ; case 1
+ .short _021D9430 - _021D93F4 - 2 ; case 2
+ .short _021D9456 - _021D93F4 - 2 ; case 3
+_021D93FC:
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r1, #0
+ mov r0, #3
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #0x20
+ sub r2, #0x10
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D946E
+_021D941E:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D946E
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D946E
+_021D9430:
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ ldr r0, _021D9474 ; =0x0000032F
+ cmp r1, r0
+ blt _021D946E
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x20
+ add r1, r0, #0
+ sub r1, #0x30
+ mov r2, #0
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D946E
+_021D9456:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D946E
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, pc}
+_021D946E:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D9474: .word 0x0000032F
+ thumb_func_end MOD84_021D93DC
+
+ thumb_func_start MOD84_021D9478
+MOD84_021D9478: ; 0x021D9478
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #3
+ bhi _021D9532
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9492: ; jump table
+ .short _021D949A - _021D9492 - 2 ; case 0
+ .short _021D94BA - _021D9492 - 2 ; case 1
+ .short _021D94F2 - _021D9492 - 2 ; case 2
+ .short _021D9512 - _021D9492 - 2 ; case 3
+_021D949A:
+ ldr r0, [r5, #4]
+ ldr r2, _021D9540 ; =0x021DACD4
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ ldr r2, _021D9540 ; =0x021DACD4
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9538
+_021D94BA:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x26
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x22
+ mov r3, #6
+ bl FUN_020068C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9538
+_021D94F2:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x27
+ mov r3, #2
+ bl FUN_0200687C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9538
+_021D9512:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x23
+ mov r3, #6
+ bl FUN_0200687C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9538
+_021D9532:
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D9538:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D9540: .word 0x021DACD4
+ thumb_func_end MOD84_021D9478
+
+ thumb_func_start MOD84_021D9544
+MOD84_021D9544: ; 0x021D9544
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D9544
+
+ thumb_func_start MOD84_021D955C
+MOD84_021D955C: ; 0x021D955C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x4b
+ mov r1, #0x6c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D958E
+ str r5, [r4]
+ str r6, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x68]
+ add r0, r5, #0
+ bl MOD84_021D82AC
+ str r0, [r4, #0x4c]
+ mov r0, #0
+ str r0, [r4, #0x50]
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x48]
+ str r0, [r4, #0x54]
+ str r0, [r4, #0x5c]
+_021D958E:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D955C
+
+ thumb_func_start MOD84_021D9594
+MOD84_021D9594: ; 0x021D9594
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021D9804
+ cmp r0, #0
+ beq _021D95B4
+ ldr r0, [r4, #0x4c]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r4, #0x4c]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #1
+ pop {r4, pc}
+_021D95B4:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD84_021D9594
+
+ thumb_func_start MOD84_021D95B8
+MOD84_021D95B8: ; 0x021D95B8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021D9A04
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D95B8
+
+ thumb_func_start MOD84_021D95CC
+MOD84_021D95CC: ; 0x021D95CC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ ldr r0, [r4, #0x54]
+ add r5, r1, #0
+ add r0, #0x80
+ asr r6, r0, #0xc
+ str r0, [r4, #0x54]
+ ldr r0, [r4, #4]
+ mov r1, #2
+ mov r2, #0
+ add r3, r6, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ mov r2, #0
+ add r3, r6, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ mov r1, #3
+ mov r2, #0
+ add r3, r6, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #4]
+ mov r1, #7
+ mov r2, #0
+ add r3, r6, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _021D9632
+ bl FUN_0202011C
+ add r3, r0, #0
+ add r2, sp, #0x10
+ ldmia r3!, {r0, r1}
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, r6, #0
+ str r0, [r2]
+ ldr r0, [sp, #0x14]
+ sub r0, #0x40
+ str r0, [sp, #0x14]
+ ldr r0, [r4, #0x50]
+ bl FUN_02020044
+_021D9632:
+ ldr r0, [r5]
+ cmp r0, #7
+ bhi _021D96D2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9644: ; jump table
+ .short _021D9654 - _021D9644 - 2 ; case 0
+ .short _021D966E - _021D9644 - 2 ; case 1
+ .short _021D968E - _021D9644 - 2 ; case 2
+ .short _021D96BE - _021D9644 - 2 ; case 3
+ .short _021D9750 - _021D9644 - 2 ; case 4
+ .short _021D9780 - _021D9644 - 2 ; case 5
+ .short _021D97B0 - _021D9644 - 2 ; case 6
+ .short _021D97D8 - _021D9644 - 2 ; case 7
+_021D9654:
+ mov r1, #0
+ mov r0, #3
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #0x10
+ sub r2, #0x10
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D97F0
+_021D966E:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D96D2
+ mov r1, #0
+ ldr r0, _021D97F8 ; =0x04000050
+ str r1, [sp]
+ mov r2, #0xc
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D97F0
+_021D968E:
+ ldr r0, [r4, #0x64]
+ add r1, r0, #1
+ ldr r0, _021D97FC ; =0x00000172
+ str r1, [r4, #0x64]
+ cmp r1, r0
+ blt _021D96D2
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #0x5a
+ bl MOD84_021D801C
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ mov r1, #1
+ mov r2, #0
+ mov r3, #0x5a
+ bl MOD84_021D801C
+ str r0, [r4, #0xc]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D97F0
+_021D96BE:
+ ldr r0, [r4, #8]
+ bl MOD84_021D81C4
+ cmp r0, #0
+ beq _021D96D2
+ ldr r0, [r4, #0xc]
+ bl MOD84_021D81C4
+ cmp r0, #0
+ bne _021D96D4
+_021D96D2:
+ b _021D97F0
+_021D96D4:
+ ldr r0, [r4, #8]
+ bl MOD84_021D81D4
+ ldr r0, [r4, #0xc]
+ bl MOD84_021D81D4
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x10
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x12
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x11
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x13
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [r4, #0x64]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D97F0
+_021D9750:
+ ldr r0, [r4, #0x64]
+ add r1, r0, #1
+ ldr r0, _021D9800 ; =0x0000010E
+ str r1, [r4, #0x64]
+ cmp r1, r0
+ blt _021D97F0
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0x5a
+ bl MOD84_021D801C
+ str r0, [r4, #8]
+ mov r1, #1
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #0x5a
+ bl MOD84_021D801C
+ str r0, [r4, #0xc]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D97F0
+_021D9780:
+ ldr r0, [r4, #8]
+ bl MOD84_021D81C4
+ cmp r0, #0
+ beq _021D97F0
+ ldr r0, [r4, #0xc]
+ bl MOD84_021D81C4
+ cmp r0, #0
+ beq _021D97F0
+ ldr r0, [r4, #8]
+ bl MOD84_021D81D4
+ ldr r0, [r4, #0xc]
+ bl MOD84_021D81D4
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x64]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D97F0
+_021D97B0:
+ ldr r0, [r4, #0x64]
+ add r1, r0, #1
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ str r1, [r4, #0x64]
+ cmp r1, r0
+ blt _021D97F0
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x20
+ add r1, r0, #0
+ sub r1, #0x30
+ mov r2, #0
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D97F0
+_021D97D8:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D97F0
+ ldr r0, [r4, #0x4c]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x1c
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D97F0:
+ mov r0, #0
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D97F8: .word 0x04000050
+_021D97FC: .word 0x00000172
+_021D9800: .word 0x0000010E
+ thumb_func_end MOD84_021D95CC
+
+ thumb_func_start MOD84_021D9804
+MOD84_021D9804: ; 0x021D9804
+ push {r3, r4, r5, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #8
+ bls _021D9814
+ b _021D99F0
+_021D9814:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9820: ; jump table
+ .short _021D9832 - _021D9820 - 2 ; case 0
+ .short _021D986A - _021D9820 - 2 ; case 1
+ .short _021D98A2 - _021D9820 - 2 ; case 2
+ .short _021D98C2 - _021D9820 - 2 ; case 3
+ .short _021D98E2 - _021D9820 - 2 ; case 4
+ .short _021D991A - _021D9820 - 2 ; case 5
+ .short _021D993A - _021D9820 - 2 ; case 6
+ .short _021D995A - _021D9820 - 2 ; case 7
+ .short _021D99E0 - _021D9820 - 2 ; case 8
+_021D9832:
+ ldr r0, [r4, #4]
+ ldr r2, _021D99FC ; =0x021DACF0
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ ldr r2, _021D9A00 ; =0x021DAD0C
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ ldr r2, _021D99FC ; =0x021DACF0
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ ldr r2, _021D9A00 ; =0x021DAD0C
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D99F6
+_021D986A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #8
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0xa
+ mov r3, #6
+ bl FUN_020068C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D99F6
+_021D98A2:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #9
+ mov r3, #2
+ bl FUN_0200687C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D99F6
+_021D98C2:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0xb
+ mov r3, #6
+ bl FUN_0200687C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D99F6
+_021D98E2:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0xc
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0xe
+ mov r3, #7
+ bl FUN_020068C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D99F6
+_021D991A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0xd
+ mov r3, #3
+ bl FUN_0200687C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D99F6
+_021D993A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0xf
+ mov r3, #7
+ bl FUN_0200687C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D99F6
+_021D995A:
+ mov r0, #0x7f
+ mov r1, #0x39
+ mov r2, #0x3a
+ bl MOD84_021D81DC
+ str r0, [r4, #0x48]
+ add r0, r4, #0
+ add r0, #0x10
+ bl FUN_020B1A24
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x10
+ str r0, [sp, #0x10]
+ mov r0, #0x7f
+ mov r1, #0x3b
+ add r3, r2, #0
+ bl FUN_02006AE4
+ add r0, r4, #0
+ add r0, #0x34
+ bl FUN_020B19DC
+ mov r0, #0x4b
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x34
+ str r0, [sp, #4]
+ mov r0, #0x7f
+ mov r1, #0x3c
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #2
+ str r0, [sp]
+ add r2, r4, #0
+ add r3, r4, #0
+ ldr r1, [r4, #0x48]
+ add r0, sp, #0x14
+ add r2, #0x10
+ add r3, #0x34
+ bl MOD84_021D8240
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x19
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ mov r2, #0
+ lsl r3, r3, #4
+ bl MOD84_021D8260
+ str r0, [r4, #0x50]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D99F6
+_021D99E0:
+ ldr r0, [r4]
+ mov r1, #0
+ bl MOD84_021D7DF4
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D99F6
+_021D99F0:
+ add sp, #0x38
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D99F6:
+ mov r0, #0
+ add sp, #0x38
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D99FC: .word 0x021DACF0
+_021D9A00: .word 0x021DAD0C
+ thumb_func_end MOD84_021D9804
+
+ thumb_func_start MOD84_021D9A04
+MOD84_021D9A04: ; 0x021D9A04
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _021D9A12
+ bl FUN_0201FFC8
+_021D9A12:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021D9A1C
+ bl MOD84_021D81D4
+_021D9A1C:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021D9A26
+ bl MOD84_021D81D4
+_021D9A26:
+ ldr r0, [r4, #0x48]
+ cmp r0, #0
+ beq _021D9A30
+ bl MOD84_021D821C
+_021D9A30:
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #7
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D9A04
+
+ thumb_func_start MOD84_021D9A54
+MOD84_021D9A54: ; 0x021D9A54
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0x4b
+ mov r1, #0x10
+ bl FUN_02016998
+ cmp r0, #0
+ beq _021D9A70
+ str r5, [r0]
+ str r4, [r0, #4]
+ mov r1, #0
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+_021D9A70:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D9A54
+
+ thumb_func_start MOD84_021D9A74
+MOD84_021D9A74: ; 0x021D9A74
+ push {r3, lr}
+ bl MOD84_021D9B38
+ cmp r0, #0
+ beq _021D9A82
+ mov r0, #1
+ pop {r3, pc}
+_021D9A82:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D9A74
+
+ thumb_func_start MOD84_021D9A88
+MOD84_021D9A88: ; 0x021D9A88
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021D9C04
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D9A88
+
+ thumb_func_start MOD84_021D9A9C
+MOD84_021D9A9C: ; 0x021D9A9C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _021D9B2E
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D9AB4: ; jump table
+ .short _021D9ABC - _021D9AB4 - 2 ; case 0
+ .short _021D9ADE - _021D9AB4 - 2 ; case 1
+ .short _021D9AF0 - _021D9AB4 - 2 ; case 2
+ .short _021D9B16 - _021D9AB4 - 2 ; case 3
+_021D9ABC:
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r1, #0
+ mov r0, #3
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #0x20
+ sub r2, #0x10
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9B2E
+_021D9ADE:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D9B2E
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9B2E
+_021D9AF0:
+ ldr r1, [r0, #8]
+ add r1, r1, #1
+ str r1, [r0, #8]
+ ldr r0, _021D9B34 ; =0x00000352
+ cmp r1, r0
+ blt _021D9B2E
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x20
+ add r1, r0, #0
+ sub r1, #0x30
+ mov r2, #0
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9B2E
+_021D9B16:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D9B2E
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, pc}
+_021D9B2E:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D9B34: .word 0x00000352
+ thumb_func_end MOD84_021D9A9C
+
+ thumb_func_start MOD84_021D9B38
+MOD84_021D9B38: ; 0x021D9B38
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #3
+ bhi _021D9BF2
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9B52: ; jump table
+ .short _021D9B5A - _021D9B52 - 2 ; case 0
+ .short _021D9B7A - _021D9B52 - 2 ; case 1
+ .short _021D9BB2 - _021D9B52 - 2 ; case 2
+ .short _021D9BD2 - _021D9B52 - 2 ; case 3
+_021D9B5A:
+ ldr r0, [r5, #4]
+ ldr r2, _021D9C00 ; =0x021DAD28
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ ldr r2, _021D9C00 ; =0x021DAD28
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9BF8
+_021D9B7A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x28
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x22
+ mov r3, #6
+ bl FUN_020068C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9BF8
+_021D9BB2:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x29
+ mov r3, #2
+ bl FUN_0200687C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9BF8
+_021D9BD2:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7f
+ mov r1, #0x23
+ mov r3, #6
+ bl FUN_0200687C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D9BF8
+_021D9BF2:
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D9BF8:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D9C00: .word 0x021DAD28
+ thumb_func_end MOD84_021D9B38
+
+ thumb_func_start MOD84_021D9C04
+MOD84_021D9C04: ; 0x021D9C04
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021D9C04
+
+ thumb_func_start MOD84_021D9C1C
+MOD84_021D9C1C: ; 0x021D9C1C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x4b
+ mov r1, #0xf4
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D9C7C
+ str r5, [r4]
+ str r6, [r4, #4]
+ mov r1, #0
+ add r0, #0xec
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xf0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD84_021D82AC
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x54]
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ str r0, [r4, #0x60]
+ add r2, r4, #0
+ str r0, [r4, #0x64]
+ mov r0, #0x7f
+ mov r1, #0x41
+ add r2, #0x5c
+ mov r3, #0x4b
+ bl FUN_02006C08
+ str r0, [r4, #0x58]
+ cmp r0, #0
+ beq _021D9C76
+ ldr r0, [r4, #0x5c]
+ mov r1, #6
+ ldr r0, [r0, #0xc]
+ lsl r1, r1, #6
+ bl DC_FlushRange
+_021D9C76:
+ add r0, r4, #0
+ bl MOD84_021DA388
+_021D9C7C:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD84_021D9C1C
+
+ thumb_func_start MOD84_021D9C80
+MOD84_021D9C80: ; 0x021D9C80
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD84_021DA078
+ cmp r0, #0
+ beq _021D9CA0
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #1
+ pop {r4, pc}
+_021D9CA0:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD84_021D9C80
+
+ thumb_func_start MOD84_021D9CA4
+MOD84_021D9CA4: ; 0x021D9CA4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl OS_DisableInterrupts
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD84_021DA390
+ add r0, r5, #0
+ bl MOD84_021DA31C
+ ldr r0, [r5, #0x58]
+ cmp r0, #0
+ beq _021D9CC4
+ bl FUN_02016A18
+_021D9CC4:
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl OS_RestoreInterrupts
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD84_021D9CA4
+
+ thumb_func_start MOD84_021D9CD4
+MOD84_021D9CD4: ; 0x021D9CD4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0xe
+ bls _021D9CE4
+ b _021DA068
+_021D9CE4:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D9CF0: ; jump table
+ .short _021D9D0E - _021D9CF0 - 2 ; case 0
+ .short _021D9D28 - _021D9CF0 - 2 ; case 1
+ .short _021D9D48 - _021D9CF0 - 2 ; case 2
+ .short _021D9D6A - _021D9CF0 - 2 ; case 3
+ .short _021D9E00 - _021D9CF0 - 2 ; case 4
+ .short _021D9E3C - _021D9CF0 - 2 ; case 5
+ .short _021D9ECE - _021D9CF0 - 2 ; case 6
+ .short _021D9F08 - _021D9CF0 - 2 ; case 7
+ .short _021D9F3A - _021D9CF0 - 2 ; case 8
+ .short _021D9F54 - _021D9CF0 - 2 ; case 9
+ .short _021D9F78 - _021D9CF0 - 2 ; case 10
+ .short _021D9F90 - _021D9CF0 - 2 ; case 11
+ .short _021D9FBE - _021D9CF0 - 2 ; case 12
+ .short _021DA02A - _021D9CF0 - 2 ; case 13
+ .short _021DA058 - _021D9CF0 - 2 ; case 14
+_021D9D0E:
+ mov r1, #0
+ mov r0, #3
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #0x20
+ sub r2, #0x10
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9D28:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021D9E16
+ mov r1, #0
+ ldr r0, _021DA070 ; =0x04000050
+ str r1, [sp]
+ mov r2, #0xc
+ mov r3, #0xa
+ bl G2x_SetBlendAlpha_
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9D48:
+ add r1, r4, #0
+ add r1, #0xec
+ ldr r1, [r1]
+ add r2, r1, #1
+ add r1, r4, #0
+ add r1, #0xec
+ add r4, #0xec
+ str r2, [r1]
+ ldr r1, [r4]
+ cmp r1, #0xf0
+ blt _021D9E16
+ bl MOD84_021DA3A0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9D6A:
+ bl MOD84_021DA3C8
+ cmp r0, #0
+ beq _021D9E16
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021DA070 ; =0x04000050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021DA074 ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x1c
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x18
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x1d
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x19
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ add r4, #0xec
+ str r0, [r4]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9E00:
+ add r0, #0xec
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xec
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0x96
+ bgt _021D9E18
+_021D9E16:
+ b _021DA068
+_021D9E18:
+ ldr r0, [r4]
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0x5a
+ bl MOD84_021D801C
+ str r0, [r4, #8]
+ mov r1, #1
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #0x5a
+ bl MOD84_021D801C
+ str r0, [r4, #0xc]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9E3C:
+ ldr r0, [r4, #8]
+ bl MOD84_021D81C4
+ cmp r0, #0
+ beq _021D9F44
+ ldr r0, [r4, #0xc]
+ bl MOD84_021D81C4
+ cmp r0, #0
+ beq _021D9F44
+ ldr r0, [r4, #8]
+ bl MOD84_021D81D4
+ ldr r0, [r4, #0xc]
+ bl MOD84_021D81D4
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x20
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x1e
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x21
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x1f
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ add r4, #0xec
+ str r0, [r4]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9ECE:
+ add r0, #0xec
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xec
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0xc8
+ blt _021D9F44
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #0x5a
+ bl MOD84_021D801C
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ mov r1, #1
+ mov r2, #0
+ mov r3, #0x5a
+ bl MOD84_021D801C
+ str r0, [r4, #0xc]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9F08:
+ ldr r0, [r4, #8]
+ bl MOD84_021D81C4
+ cmp r0, #0
+ beq _021D9F44
+ ldr r0, [r4, #0xc]
+ bl MOD84_021D81C4
+ cmp r0, #0
+ beq _021D9F44
+ ldr r0, [r4, #8]
+ bl MOD84_021D81D4
+ ldr r0, [r4, #0xc]
+ bl MOD84_021D81D4
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #0xc]
+ add r4, #0xec
+ str r0, [r4]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9F3A:
+ ldr r0, [r4]
+ bl MOD84_021D82B4
+ cmp r0, #0
+ bne _021D9F46
+_021D9F44:
+ b _021DA068
+_021D9F46:
+ mov r0, #0
+ add r4, #0xec
+ str r0, [r4]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9F54:
+ add r0, #0xec
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xec
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ cmp r0, #0x5a
+ blt _021DA068
+ ldr r0, [r4]
+ bl MOD84_021D8458
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9F78:
+ ldr r0, [r4]
+ bl MOD84_021D846C
+ cmp r0, #0
+ beq _021DA068
+ mov r0, #0
+ add r4, #0xec
+ str r0, [r4]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9F90:
+ add r0, #0xec
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xec
+ add r4, #0xec
+ str r1, [r0]
+ ldr r0, [r4]
+ cmp r0, #0x96
+ blt _021DA068
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x20
+ add r1, r0, #0
+ sub r1, #0x30
+ mov r2, #0
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021D9FBE:
+ mov r0, #3
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021DA068
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x2a
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x2b
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x4b
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x7f
+ mov r1, #0x2c
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ add r4, #0xec
+ str r0, [r4]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021DA02A:
+ add r0, #0xec
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xec
+ add r4, #0xec
+ str r1, [r0]
+ ldr r0, [r4]
+ cmp r0, #0x2d
+ blt _021DA068
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #0x10
+ sub r2, #0x10
+ mov r3, #0x1d
+ bl FUN_0200A208
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA068
+_021DA058:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _021DA068
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA068:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021DA070: .word 0x04000050
+_021DA074: .word 0x04001050
+ thumb_func_end MOD84_021D9CD4
+
+ thumb_func_start MOD84_021DA078
+MOD84_021DA078: ; 0x021DA078
+ push {r3, r4, r5, lr}
+ sub sp, #0x38
+ add r5, r1, #0
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #0xa
+ bls _021DA088
+ b _021DA2FE
+_021DA088:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DA094: ; jump table
+ .short _021DA0AA - _021DA094 - 2 ; case 0
+ .short _021DA0E2 - _021DA094 - 2 ; case 1
+ .short _021DA11A - _021DA094 - 2 ; case 2
+ .short _021DA13A - _021DA094 - 2 ; case 3
+ .short _021DA15A - _021DA094 - 2 ; case 4
+ .short _021DA192 - _021DA094 - 2 ; case 5
+ .short _021DA1B2 - _021DA094 - 2 ; case 6
+ .short _021DA1D2 - _021DA094 - 2 ; case 7
+ .short _021DA1E2 - _021DA094 - 2 ; case 8
+ .short _021DA238 - _021DA094 - 2 ; case 9
+ .short _021DA2CE - _021DA094 - 2 ; case 10
+_021DA0AA:
+ ldr r0, [r4, #4]
+ ldr r2, _021DA30C ; =0x021DAD68
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ ldr r2, _021DA310 ; =0x021DAD4C
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ ldr r2, _021DA30C ; =0x021DAD68
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ ldr r2, _021DA310 ; =0x021DAD4C
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA0E2:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x16
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x1a
+ mov r3, #6
+ bl FUN_020068C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA11A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x17
+ mov r3, #2
+ bl FUN_0200687C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA13A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x1b
+ mov r3, #6
+ bl FUN_0200687C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA15A:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x14
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x18
+ mov r3, #7
+ bl FUN_020068C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA192:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x15
+ mov r3, #3
+ bl FUN_0200687C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA1B2:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7f
+ mov r1, #0x19
+ mov r3, #7
+ bl FUN_0200687C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA1D2:
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD84_021D7DF4
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA1E2:
+ mov r0, #0x7f
+ mov r1, #0x3d
+ mov r2, #0x3e
+ bl MOD84_021D81DC
+ str r0, [r4, #0x54]
+ add r0, r4, #0
+ add r0, #0x1c
+ bl FUN_020B1A24
+ add r0, r4, #0
+ add r0, #0x40
+ bl FUN_020B19DC
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x1c
+ str r0, [sp, #0x10]
+ mov r0, #0x7f
+ mov r1, #0x3f
+ add r3, r2, #0
+ bl FUN_02006AE4
+ mov r0, #0x4b
+ str r0, [sp]
+ add r4, #0x40
+ str r4, [sp, #4]
+ mov r0, #0x7f
+ mov r1, #0x40
+ mov r2, #1
+ mov r3, #0
+ bl FUN_02006A8C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA238:
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ mov r0, #0x4b
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x1c
+ str r0, [sp, #0x10]
+ mov r0, #0x7f
+ mov r1, #0x3f
+ add r3, r2, #0
+ bl FUN_02006AE4
+ mov r0, #0x4b
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0x7f
+ mov r1, #0x40
+ mov r2, #2
+ mov r3, #0
+ bl FUN_02006A8C
+ mov r0, #2
+ str r0, [sp]
+ add r2, r4, #0
+ add r3, r4, #0
+ ldr r1, [r4, #0x54]
+ add r0, sp, #0x14
+ add r2, #0x1c
+ add r3, #0x40
+ bl MOD84_021D8240
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #1
+ mov r2, #0
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ add r3, r2, #0
+ bl MOD84_021D8260
+ str r0, [r4, #0x14]
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #1
+ mov r2, #0
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ ldr r0, [r4]
+ add r1, sp, #0x14
+ add r3, r2, #0
+ bl MOD84_021D8260
+ str r0, [r4, #0x18]
+ mov r1, #3
+ bl FUN_02020238
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_02020398
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA2CE:
+ ldr r0, [r4, #0x5c]
+ mov r1, #4
+ ldr r0, [r0, #0xc]
+ mov r2, #3
+ str r0, [sp]
+ ldr r0, _021DA314 ; =0x021DAD48
+ mov r3, #0
+ bl MOD84_021DA58C
+ str r0, [r4, #0x60]
+ ldr r0, [r4, #0x5c]
+ mov r1, #4
+ ldr r0, [r0, #0xc]
+ mov r2, #5
+ str r0, [sp]
+ ldr r0, _021DA318 ; =0x021DAD44
+ mov r3, #1
+ bl MOD84_021DA58C
+ str r0, [r4, #0x64]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021DA304
+_021DA2FE:
+ add sp, #0x38
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA304:
+ mov r0, #0
+ add sp, #0x38
+ pop {r3, r4, r5, pc}
+ nop
+_021DA30C: .word 0x021DAD68
+_021DA310: .word 0x021DAD4C
+_021DA314: .word 0x021DAD48
+_021DA318: .word 0x021DAD44
+ thumb_func_end MOD84_021DA078
+
+ thumb_func_start MOD84_021DA31C
+MOD84_021DA31C: ; 0x021DA31C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x60]
+ cmp r0, #0
+ beq _021DA32A
+ bl MOD84_021DA5D8
+_021DA32A:
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ beq _021DA334
+ bl MOD84_021DA5D8
+_021DA334:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021DA33E
+ bl FUN_0201FFC8
+_021DA33E:
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021DA348
+ bl FUN_0201FFC8
+_021DA348:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ beq _021DA352
+ bl MOD84_021D821C
+_021DA352:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _021DA35C
+ bl MOD84_021D81D4
+_021DA35C:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021DA366
+ bl MOD84_021D81D4
+_021DA366:
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #7
+ bl FUN_020178A0
+ pop {r4, pc}
+ thumb_func_end MOD84_021DA31C
+
+ thumb_func_start MOD84_021DA388
+MOD84_021DA388: ; 0x021DA388
+ mov r1, #0
+ add r0, #0xe4
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD84_021DA388
+
+ thumb_func_start MOD84_021DA390
+MOD84_021DA390: ; 0x021DA390
+ push {r3, lr}
+ add r0, #0xe4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DA39E
+ bl FUN_0200CAB4
+_021DA39E:
+ pop {r3, pc}
+ thumb_func_end MOD84_021DA390
+
+ thumb_func_start MOD84_021DA3A0
+MOD84_021DA3A0: ; 0x021DA3A0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r2, #0
+ add r4, #0x68
+ str r2, [r0, #0x68]
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ add r1, r4, #0
+ str r2, [r4, #0x74]
+ add r1, #0x80
+ str r0, [r1]
+ ldr r0, _021DA3C4 ; =MOD84_021DA3D8
+ add r1, r4, #0
+ bl FUN_0200CA60
+ str r0, [r4, #0x7c]
+ pop {r4, pc}
+ nop
+_021DA3C4: .word MOD84_021DA3D8
+ thumb_func_end MOD84_021DA3A0
+
+ thumb_func_start MOD84_021DA3C8
+MOD84_021DA3C8: ; 0x021DA3C8
+ add r0, #0xe4
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021DA3D4
+ mov r0, #1
+ bx lr
+_021DA3D4:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD84_021DA3C8
+
+ thumb_func_start MOD84_021DA3D8
+MOD84_021DA3D8: ; 0x021DA3D8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r1, #0x80
+ ldr r5, [r1]
+ ldr r1, [r4]
+ cmp r1, #3
+ bls _021DA3EA
+ b _021DA56C
+_021DA3EA:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DA3F6: ; jump table
+ .short _021DA3FE - _021DA3F6 - 2 ; case 0
+ .short _021DA4B8 - _021DA3F6 - 2 ; case 1
+ .short _021DA50A - _021DA3F6 - 2 ; case 2
+ .short _021DA544 - _021DA3F6 - 2 ; case 3
+_021DA3FE:
+ ldr r2, [r4, #4]
+ mov r0, #0x18
+ add r1, r2, #0
+ ldr r2, _021DA570 ; =0x021DAD84
+ mul r1, r0
+ ldr r2, [r2, r1]
+ ldr r3, _021DA574 ; =0x021DAD88
+ lsl r2, r2, #0xc
+ ldr r1, [r3, r1]
+ str r2, [r4, #0x14]
+ lsl r6, r1, #0xc
+ str r6, [r4, #0x18]
+ mov r1, #0
+ str r1, [r4, #0x1c]
+ ldr r3, [r4, #4]
+ add r1, r3, #0
+ ldr r3, _021DA578 ; =0x021DAD94
+ mul r1, r0
+ ldr r1, [r3, r1]
+ str r1, [r4, #0xc]
+ ldr r3, [r4, #4]
+ add r1, r3, #0
+ ldr r3, _021DA57C ; =0x021DAD98
+ mul r1, r0
+ ldr r1, [r3, r1]
+ str r1, [r4, #0x10]
+ ldr r1, [r4, #4]
+ add r3, r1, #0
+ mul r3, r0
+ ldr r0, _021DA580 ; =0x021DAD8C
+ ldr r1, [r4, #0xc]
+ ldr r0, [r0, r3]
+ lsl r0, r0, #0xc
+ sub r0, r0, r2
+ bl _s32_div_f
+ str r0, [r4, #0x20]
+ ldr r1, [r4, #4]
+ mov r0, #0x18
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021DA584 ; =0x021DAD90
+ ldr r1, [r4, #0xc]
+ ldr r0, [r0, r2]
+ lsl r0, r0, #0xc
+ sub r0, r0, r6
+ bl _s32_div_f
+ str r0, [r4, #0x24]
+ mov r0, #0
+ str r0, [r4, #0x28]
+ add r1, r4, #0
+ ldr r0, [r5, #0x14]
+ add r1, #0x14
+ bl FUN_02020044
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ bl FUN_02020130
+ add r0, r4, #0
+ add r0, #0x20
+ add r1, sp, #0
+ bl VEC_Normalize
+ add r2, r4, #0
+ add r3, r4, #0
+ ldr r0, _021DA588 ; =0xFFFD8000
+ add r1, sp, #0
+ add r2, #0x14
+ add r3, #0x2c
+ bl VEC_MultAdd
+ add r1, r4, #0
+ ldr r0, [r5, #0x18]
+ add r1, #0x2c
+ bl FUN_02020044
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0
+ str r0, [r4, #0x74]
+ ldr r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_021DA4B8:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021DA4F8
+ add r0, r4, #0
+ add r0, #0x14
+ add r1, r4, #0
+ add r1, #0x20
+ add r2, r0, #0
+ bl VEC_Add
+ add r0, r4, #0
+ add r0, #0x2c
+ add r1, r4, #0
+ add r1, #0x20
+ add r2, r0, #0
+ bl VEC_Add
+ add r1, r4, #0
+ ldr r0, [r5, #0x14]
+ add r1, #0x14
+ bl FUN_02020044
+ add r1, r4, #0
+ ldr r0, [r5, #0x18]
+ add r1, #0x2c
+ bl FUN_02020044
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, pc}
+_021DA4F8:
+ mov r0, #0x14
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DA50A:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021DA532
+ add r0, r4, #0
+ add r0, #0x2c
+ add r1, r4, #0
+ add r1, #0x20
+ add r2, r0, #0
+ bl VEC_Add
+ add r1, r4, #0
+ ldr r0, [r5, #0x18]
+ add r1, #0x2c
+ bl FUN_02020044
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, pc}
+_021DA532:
+ ldr r0, [r5, #0x18]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_021DA544:
+ ldr r1, [r4, #0x10]
+ cmp r1, #0
+ beq _021DA552
+ sub r0, r1, #1
+ add sp, #0xc
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, r6, pc}
+_021DA552:
+ ldr r1, [r4, #4]
+ add r1, r1, #1
+ str r1, [r4, #4]
+ cmp r1, #4
+ bhs _021DA564
+ mov r0, #0
+ add sp, #0xc
+ str r0, [r4]
+ pop {r3, r4, r5, r6, pc}
+_021DA564:
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x7c]
+_021DA56C:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DA570: .word 0x021DAD84
+_021DA574: .word 0x021DAD88
+_021DA578: .word 0x021DAD94
+_021DA57C: .word 0x021DAD98
+_021DA580: .word 0x021DAD8C
+_021DA584: .word 0x021DAD90
+_021DA588: .word 0xFFFD8000
+ thumb_func_end MOD84_021DA3D8
+
+ thumb_func_start MOD84_021DA58C
+MOD84_021DA58C: ; 0x021DA58C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x4b
+ mov r1, #0x1c
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021DA5CE
+ mov r0, #0
+ str r0, [r4]
+ str r0, [r4, #8]
+ ldr r0, [sp, #0x18]
+ add r1, r4, #0
+ str r0, [r4, #0x18]
+ str r5, [r4, #0x14]
+ str r6, [r4, #0xc]
+ ldr r0, [sp]
+ str r7, [r4, #4]
+ str r0, [r4, #0x10]
+ ldr r0, _021DA5D4 ; =MOD84_021DA5F0
+ mov r2, #2
+ bl FUN_0200CA98
+ add r5, r0, #0
+ bne _021DA5CA
+ add r0, r4, #0
+ bl FUN_02016A18
+_021DA5CA:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA5CE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DA5D4: .word MOD84_021DA5F0
+ thumb_func_end MOD84_021DA58C
+
+ thumb_func_start MOD84_021DA5D8
+MOD84_021DA5D8: ; 0x021DA5D8
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021DA5EC
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_021DA5EC:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021DA5D8
+
+ thumb_func_start MOD84_021DA5F0
+MOD84_021DA5F0: ; 0x021DA5F0
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4]
+ add r1, r0, #1
+ str r1, [r4]
+ ldr r0, [r4, #4]
+ cmp r1, r0
+ ble _021DA644
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #8]
+ ldrb r0, [r1, r0]
+ ldr r1, [r4, #0x18]
+ sub r0, r0, #4
+ lsl r2, r0, #4
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ bne _021DA622
+ lsl r0, r2, #1
+ add r0, r1, r0
+ mov r1, #5
+ lsl r1, r1, #6
+ mov r2, #0x20
+ bl GX_LoadBGPltt
+ b _021DA630
+_021DA622:
+ lsl r0, r2, #1
+ add r0, r1, r0
+ mov r1, #6
+ lsl r1, r1, #6
+ mov r2, #0x20
+ bl GXS_LoadBGPltt
+_021DA630:
+ ldr r0, [r4, #8]
+ add r1, r0, #1
+ str r1, [r4, #8]
+ ldr r0, [r4, #0xc]
+ cmp r1, r0
+ blt _021DA640
+ mov r0, #0
+ str r0, [r4, #8]
+_021DA640:
+ mov r0, #0
+ str r0, [r4]
+_021DA644:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD84_021DA5F0
+
+ .section .rodata
+ ; 0x021DA648
+ .incbin "baserom.nds", 0x302B68, 0x79C
diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s
new file mode 100644
index 00000000..f158e85d
--- /dev/null
+++ b/arm9/modules/85/asm/module_85.s
@@ -0,0 +1,16171 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD85_021D74E0
+MOD85_021D74E0: ; 0x021D74E0
+ 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, #2
+ mov r0, #3
+ mov r1, #0x4f
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #8
+ mov r2, #0x4f
+ bl FUN_02006268
+ add r4, r0, #0
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ strb r0, [r4, #2]
+ strb r0, [r4, #3]
+ strb r0, [r4, #4]
+ strb r0, [r4, #5]
+ strb r0, [r4, #6]
+ strb r0, [r4, #7]
+ add r0, r5, #0
+ bl FUN_0200628C
+ str r0, [r4]
+ bl MOD85_021D76CC
+ add r5, r0, #0
+ str r5, [r4, #4]
+ bl MOD85_021D811C
+ add r0, r5, #0
+ bl MOD85_021D7FCC
+ add r0, r5, #0
+ bl MOD85_021D76FC
+ add r0, r5, #0
+ bl MOD85_021D797C
+ add r0, r5, #0
+ bl MOD85_021D7B28
+ bl MOD85_021D7C6C
+ add r0, r5, #0
+ bl MOD85_021D7CB0
+ add r0, r5, #0
+ bl MOD85_021D8188
+ add r0, r5, #0
+ bl MOD85_021DC108
+ add r0, r5, #0
+ bl MOD85_021DC24C
+ add r0, r5, #0
+ bl MOD85_021DC384
+ mov r1, #0
+ mov r0, #0x42
+ add r2, r1, #0
+ bl FUN_0200433C
+ add r0, r5, #0
+ bl MOD85_021D8020
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4f
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D74E0
+
+ thumb_func_start MOD85_021D75A0
+MOD85_021D75A0: ; 0x021D75A0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r5, [r0, #4]
+ ldr r0, [r4]
+ cmp r0, #3
+ bhi _021D7626
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D75BE: ; jump table
+ .short _021D75C6 - _021D75BE - 2 ; case 0
+ .short _021D75D6 - _021D75BE - 2 ; case 1
+ .short _021D7608 - _021D75BE - 2 ; case 2
+ .short _021D7616 - _021D75BE - 2 ; case 3
+_021D75C6:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7626
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7626
+_021D75D6:
+ add r0, r5, #0
+ bl MOD85_021D820C
+ cmp r0, #1
+ bne _021D7626
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4f
+ str r0, [sp, #8]
+ mov r0, #2
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021D7FF4
+ b _021D7626
+_021D7608:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7626
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021D7616:
+ add r0, r5, #0
+ bl MOD85_021D8014
+ cmp r0, #0
+ bne _021D7626
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D7626:
+ ldr r0, _021D7640 ; =0x0000044C
+ ldr r0, [r5, r0]
+ bl FUN_02064584
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD85_021DE830
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D7640: .word 0x0000044C
+ thumb_func_end MOD85_021D75A0
+
+ thumb_func_start MOD85_021D7644
+MOD85_021D7644: ; 0x021D7644
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #0
+ ldr r4, [r6, #4]
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD85_021D769C
+ add r0, r4, #0
+ bl MOD85_021D7FE4
+ add r0, r4, #0
+ bl MOD85_021D77DC
+ add r0, r4, #0
+ bl MOD85_021D7BB8
+ add r0, r4, #0
+ bl MOD85_021D81AC
+ add r0, r4, #0
+ bl MOD85_021D8044
+ add r0, r4, #0
+ bl MOD85_021D8134
+ add r0, r4, #0
+ bl MOD85_021D76F4
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x4f
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D7644
+
+ thumb_func_start MOD85_021D769C
+MOD85_021D769C: ; 0x021D769C
+ push {r3, lr}
+ add r2, r1, #0
+ ldr r3, [r2, #0x60]
+ ldr r1, _021D76C8 ; =0x0000C350
+ cmp r3, r1
+ bls _021D76AA
+ add r3, r1, #0
+_021D76AA:
+ ldr r1, [r0]
+ ldr r1, [r1]
+ str r3, [r1]
+ ldr r3, [r2, #0x20]
+ ldr r1, [r0]
+ str r3, [r1, #0xc]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _021D76C6
+ ldr r2, [r2, #0xc]
+ mov r1, #0xe
+ bl FUN_0202A11C
+_021D76C6:
+ pop {r3, pc}
+ .align 2, 0
+_021D76C8: .word 0x0000C350
+ thumb_func_end MOD85_021D769C
+
+ thumb_func_start MOD85_021D76CC
+MOD85_021D76CC: ; 0x021D76CC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D76EC ; =0x000004C8
+ bl MOD85_021D80F8
+ ldr r1, [r4]
+ ldr r1, [r1]
+ str r1, [r0, #0x60]
+ add r1, r0, #0
+ ldr r2, [r4, #4]
+ add r1, #0x88
+ str r2, [r1]
+ ldr r2, [r4, #0x10]
+ ldr r1, _021D76F0 ; =0x000004C4
+ str r2, [r0, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D76EC: .word 0x000004C8
+_021D76F0: .word 0x000004C4
+ thumb_func_end MOD85_021D76CC
+
+ thumb_func_start MOD85_021D76F4
+MOD85_021D76F4: ; 0x021D76F4
+ ldr r3, _021D76F8 ; =FUN_02016A18
+ bx r3
+ .align 2, 0
+_021D76F8: .word FUN_02016A18
+ thumb_func_end MOD85_021D76F4
+
+ thumb_func_start MOD85_021D76FC
+MOD85_021D76FC: ; 0x021D76FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ mov r0, #0x4f
+ bl FUN_02016B94
+ ldr r1, _021D77CC ; =0x0000043C
+ str r0, [r4, r1]
+ bl MOD85_021D77F8
+ ldr r0, _021D77CC ; =0x0000043C
+ ldr r0, [r4, r0]
+ bl MOD85_021D7818
+ bl MOD85_021D7930
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, _021D77D0 ; =0x04000008
+ mov r2, #3
+ ldrh r1, [r0]
+ mov r3, #1
+ mov r7, #2
+ bic r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, #2]
+ ldr r6, _021D77D4 ; =0x04001008
+ bic r1, r2
+ orr r1, r3
+ strh r1, [r0, #2]
+ ldrh r1, [r0, #4]
+ bic r1, r2
+ orr r1, r7
+ strh r1, [r0, #4]
+ ldrh r5, [r0, #6]
+ mov r1, #3
+ bic r5, r2
+ orr r5, r1
+ strh r5, [r0, #6]
+ ldrh r5, [r6]
+ bic r5, r2
+ strh r5, [r6]
+ ldrh r5, [r6, #2]
+ bic r5, r2
+ orr r3, r5
+ strh r3, [r6, #2]
+ ldrh r3, [r6, #4]
+ add r0, #0x48
+ bic r3, r2
+ orr r3, r7
+ strh r3, [r6, #4]
+ ldrh r3, [r6, #6]
+ bic r3, r2
+ orr r1, r3
+ strh r1, [r6, #6]
+ mov r1, #9
+ str r1, [sp]
+ mov r1, #4
+ mov r2, #0x10
+ mov r3, #8
+ bl G2x_SetBlendAlpha_
+ ldr r0, _021D77D8 ; =MOD85_021D80DC
+ add r1, r4, #0
+ bl FUN_02015F10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D77CC: .word 0x0000043C
+_021D77D0: .word 0x04000008
+_021D77D4: .word 0x04001008
+_021D77D8: .word MOD85_021D80DC
+ thumb_func_end MOD85_021D76FC
+
+ thumb_func_start MOD85_021D77DC
+MOD85_021D77DC: ; 0x021D77DC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D77F4 ; =0x0000043C
+ ldr r0, [r4, r0]
+ bl MOD85_021D7904
+ add r0, r4, #0
+ bl MOD85_021D7D04
+ bl MOD85_021D7CA4
+ pop {r4, pc}
+ .align 2, 0
+_021D77F4: .word 0x0000043C
+ thumb_func_end MOD85_021D77DC
+
+ thumb_func_start MOD85_021D77F8
+MOD85_021D77F8: ; 0x021D77F8
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7814 ; =0x021DED7C
+ add r3, sp, #0
+ mov r2, #5
+_021D7802:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7802
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7814: .word 0x021DED7C
+ thumb_func_end MOD85_021D77F8
+
+ thumb_func_start MOD85_021D7818
+MOD85_021D7818: ; 0x021D7818
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ ldr r2, _021D78EC ; =0x04000304
+ add r4, r0, #0
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ ldr r5, _021D78F0 ; =0x021DECEC
+ orr r0, r1
+ strh r0, [r2]
+ add r3, sp, #0x70
+ 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, _021D78F4 ; =0x021DED28
+ 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, #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
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x4f
+ bl FUN_02017F18
+ ldr r5, _021D78F8 ; =0x021DED44
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D78FC ; =0x021DED60
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021D7900 ; =0x021DED0C
+ 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, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_02018744
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D78EC: .word 0x04000304
+_021D78F0: .word 0x021DECEC
+_021D78F4: .word 0x021DED28
+_021D78F8: .word 0x021DED44
+_021D78FC: .word 0x021DED60
+_021D7900: .word 0x021DED0C
+ thumb_func_end MOD85_021D7818
+
+ thumb_func_start MOD85_021D7904
+MOD85_021D7904: ; 0x021D7904
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D7904
+
+ thumb_func_start MOD85_021D7930
+MOD85_021D7930: ; 0x021D7930
+ push {r4, r5}
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _021D7978 ; =0xFFFF1FFF
+ add r5, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r5, #0x48
+ ldrh r3, [r5]
+ mov r1, #0x3f
+ mov r2, #0x1f
+ bic r3, r1
+ add r4, r3, #0
+ orr r4, r2
+ mov r3, #0x20
+ orr r4, r3
+ strh r4, [r5]
+ add r4, r0, #0
+ add r4, #0x4a
+ ldrh r5, [r4]
+ bic r5, r1
+ add r1, r5, #0
+ orr r1, r2
+ orr r1, r3
+ strh r1, [r4]
+ add r1, r0, #0
+ mov r2, #0xff
+ add r1, #0x40
+ strh r2, [r1]
+ add r0, #0x44
+ strh r2, [r0]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_021D7978: .word 0xFFFF1FFF
+ thumb_func_end MOD85_021D7930
+
+ thumb_func_start MOD85_021D797C
+MOD85_021D797C: ; 0x021D797C
+ push {r3, r4, r5, lr}
+ mov r1, #3
+ mov r2, #0
+ add r4, r0, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B1C ; =0x00000448
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0138
+ ldr r1, _021D7B1C ; =0x00000448
+ mov r2, #0x1a
+ ldr r1, [r4, r1]
+ mov r0, #1
+ ldr r1, [r1, #0xc]
+ lsl r2, r2, #4
+ mov r3, #0
+ bl FUN_02017FB4
+ add r0, r5, #0
+ bl FUN_02016A18
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B20 ; =0x00000444
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0088
+ ldr r0, _021D7B20 ; =0x00000444
+ mov r1, #0
+ ldr r3, [r4, r0]
+ sub r0, #8
+ str r1, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #0x10]
+ mov r1, #1
+ bl FUN_02017E14
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD85_021D8144
+ mov r1, #0x11
+ lsl r1, r1, #6
+ add r1, r4, r1
+ add r5, r0, #0
+ bl FUN_020B0180
+ mov r0, #0x11
+ lsl r0, r0, #6
+ ldr r3, [r4, r0]
+ sub r0, r0, #4
+ add r2, r3, #0
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #8]
+ mov r1, #1
+ add r2, #0xc
+ bl FUN_02017DFC
+ ldr r0, _021D7B24 ; =0x0000043C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #8
+ mov r2, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B20 ; =0x00000444
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0088
+ ldr r0, _021D7B20 ; =0x00000444
+ mov r1, #0
+ ldr r3, [r4, r0]
+ sub r0, #8
+ str r1, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #0x10]
+ mov r1, #2
+ bl FUN_02017E14
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #9
+ mov r2, #0
+ bl MOD85_021D8144
+ mov r1, #0x11
+ lsl r1, r1, #6
+ add r1, r4, r1
+ add r5, r0, #0
+ bl FUN_020B0180
+ mov r0, #0x11
+ lsl r0, r0, #6
+ ldr r3, [r4, r0]
+ sub r0, r0, #4
+ add r2, r3, #0
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #8]
+ mov r1, #2
+ add r2, #0xc
+ bl FUN_02017DFC
+ ldr r0, _021D7B24 ; =0x0000043C
+ mov r1, #2
+ ldr r0, [r4, r0]
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B1C ; =0x00000448
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0138
+ ldr r1, _021D7B1C ; =0x00000448
+ mov r2, #0x1a
+ ldr r1, [r4, r1]
+ mov r0, #7
+ ldr r1, [r1, #0xc]
+ lsl r2, r2, #4
+ mov r3, #0
+ bl FUN_02017FB4
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #0
+ bl MOD85_021D8144
+ ldr r1, _021D7B20 ; =0x00000444
+ add r5, r0, #0
+ add r1, r4, r1
+ bl FUN_020B0088
+ ldr r0, _021D7B20 ; =0x00000444
+ mov r1, #0
+ ldr r3, [r4, r0]
+ sub r0, #8
+ str r1, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #0x10]
+ mov r1, #7
+ bl FUN_02017E14
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #0
+ bl MOD85_021D8144
+ mov r1, #0x11
+ lsl r1, r1, #6
+ add r1, r4, r1
+ add r5, r0, #0
+ bl FUN_020B0180
+ mov r0, #0x11
+ lsl r0, r0, #6
+ ldr r3, [r4, r0]
+ sub r0, r0, #4
+ add r2, r3, #0
+ ldr r0, [r4, r0]
+ ldr r3, [r3, #8]
+ mov r1, #7
+ add r2, #0xc
+ bl FUN_02017DFC
+ ldr r0, _021D7B24 ; =0x0000043C
+ mov r1, #7
+ ldr r0, [r4, r0]
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7B1C: .word 0x00000448
+_021D7B20: .word 0x00000444
+_021D7B24: .word 0x0000043C
+ thumb_func_end MOD85_021D797C
+
+ thumb_func_start MOD85_021D7B28
+MOD85_021D7B28: ; 0x021D7B28
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _021D7BA4 ; =0x00000408
+ mov r1, #0
+ add r4, r5, r0
+ str r1, [sp]
+ mov r2, #0x4f
+ str r2, [sp, #4]
+ add r0, #0x34
+ ldr r0, [r5, r0]
+ mov r2, #1
+ mov r3, #0xf
+ bl FUN_0200CB00
+ ldr r1, _021D7BA8 ; =0x000004C4
+ mov r2, #0x1f
+ ldr r0, [r5, r1]
+ sub r1, #0x88
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x4f
+ str r0, [sp, #4]
+ ldr r0, [r5, r1]
+ mov r1, #0
+ mov r3, #0xe
+ bl FUN_0200CD68
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x4f
+ bl FUN_02002EEC
+ ldr r2, _021D7BAC ; =0x000001E9
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x4f
+ bl FUN_0200A86C
+ ldr r1, _021D7BA4 ; =0x00000408
+ str r0, [r5, r1]
+ mov r0, #0x4f
+ bl FUN_0200AA80
+ str r0, [r4, #4]
+ ldr r0, _021D7BB0 ; =0x0000043C
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ ldr r2, _021D7BB4 ; =0x021DECE4
+ add r1, #8
+ bl FUN_02019150
+ mov r0, #1
+ lsl r0, r0, #8
+ mov r1, #0x4f
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7BA4: .word 0x00000408
+_021D7BA8: .word 0x000004C4
+_021D7BAC: .word 0x000001E9
+_021D7BB0: .word 0x0000043C
+_021D7BB4: .word 0x021DECE4
+ thumb_func_end MOD85_021D7B28
+
+ thumb_func_start MOD85_021D7BB8
+MOD85_021D7BB8: ; 0x021D7BB8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021D7BE8 ; =0x00000408
+ add r4, r5, r0
+ add r6, r4, #0
+ add r6, #8
+ add r0, r6, #0
+ bl FUN_02019570
+ add r0, r6, #0
+ bl FUN_02019178
+ ldr r0, _021D7BE8 ; =0x00000408
+ ldr r0, [r5, r0]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #4]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x18]
+ bl FUN_02021A20
+ pop {r4, r5, r6, pc}
+ nop
+_021D7BE8: .word 0x00000408
+ thumb_func_end MOD85_021D7BB8
+
+ thumb_func_start MOD85_021D7BEC
+MOD85_021D7BEC: ; 0x021D7BEC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _021D7C40 ; =0x00000408
+ add r6, r1, #0
+ add r4, r5, r0
+ add r0, r4, #0
+ add r0, #8
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ add r0, #8
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, _021D7C40 ; =0x00000408
+ ldr r2, [r4, #0x18]
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r4, #0
+ ldr r2, [r4, #0x18]
+ add r0, #8
+ mov r1, #1
+ bl FUN_0201BD84
+ add r4, #8
+ add r0, r4, #0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7C40: .word 0x00000408
+ thumb_func_end MOD85_021D7BEC
+
+ thumb_func_start MOD85_021D7C44
+MOD85_021D7C44: ; 0x021D7C44
+ push {r3, r4, r5, lr}
+ ldr r4, _021D7C68 ; =0x00000408
+ add r5, r0, #0
+ add r0, r5, r4
+ add r0, #8
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r5, r4
+ add r0, #8
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, r4
+ add r0, #8
+ bl FUN_02019220
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7C68: .word 0x00000408
+ thumb_func_end MOD85_021D7C44
+
+ thumb_func_start MOD85_021D7C6C
+MOD85_021D7C6C: ; 0x021D7C6C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021D7C9C ; =0x021DECFC
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r1, _021D7CA0 ; =0x00200010
+ add r0, r2, #0
+ add r2, r1, #0
+ bl FUN_0201D060
+ mov r0, #0x10
+ mov r1, #0x4f
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7C9C: .word 0x021DECFC
+_021D7CA0: .word 0x00200010
+ thumb_func_end MOD85_021D7C6C
+
+ thumb_func_start MOD85_021D7CA4
+MOD85_021D7CA4: ; 0x021D7CA4
+ push {r3, lr}
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, pc}
+ thumb_func_end MOD85_021D7CA4
+
+ thumb_func_start MOD85_021D7CB0
+MOD85_021D7CB0: ; 0x021D7CB0
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ 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]
+ mov r2, #0x4f
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #0x40
+ str r1, [sp, #4]
+ mov r2, #0x20
+ str r2, [sp, #8]
+ mov r3, #0xb
+ str r3, [sp, #0xc]
+ mov r0, #8
+ str r0, [sp, #0x10]
+ str r3, [sp, #0x14]
+ str r3, [sp, #0x18]
+ mov r0, #0x4f
+ add r3, r1, #0
+ bl MOD85_021DE5A4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD85_021D7D1C
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D7CB0
+
+ thumb_func_start MOD85_021D7D04
+MOD85_021D7D04: ; 0x021D7D04
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021D7FC8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl MOD85_021DE710
+ bl FUN_02009FA0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D7D04
+
+ thumb_func_start MOD85_021D7D1C
+MOD85_021D7D1C: ; 0x021D7D1C
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r2, #0x45
+ add r4, r0, #0
+ mov r0, #0
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #1
+ mov r3, #0xb
+ bl MOD85_021DE840
+ mov r1, #1
+ mov r2, #0x45
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r3, #0x15
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #6
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x44
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #7
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x47
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #8
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x40
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #9
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x3c
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #0
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #3
+ mov r3, #0xa
+ bl MOD85_021DE910
+ mov r1, #1
+ mov r2, #0x45
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r3, #0x14
+ bl MOD85_021DE910
+ mov r2, #0x45
+ mov r0, #6
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x43
+ bl MOD85_021DE910
+ mov r2, #0x45
+ mov r0, #7
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x3f
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0xc
+ mov r3, #0
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x16
+ mov r3, #1
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x45
+ mov r3, #6
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x48
+ mov r3, #7
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x41
+ mov r3, #8
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x3d
+ mov r3, #9
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0xd
+ mov r3, #0
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x17
+ mov r3, #1
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x46
+ mov r3, #6
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x49
+ mov r3, #7
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x42
+ mov r3, #8
+ bl MOD85_021DEA4C
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x3e
+ mov r3, #9
+ bl MOD85_021DEA4C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #8
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #8
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl MOD85_021DE8DC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD85_021DE97C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD85_021DE97C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD85_021DE97C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD85_021DE97C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl MOD85_021DE9B0
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD85_021DE9B0
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl MOD85_021DE9B0
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD85_021DE9B0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D7D1C
+
+ thumb_func_start MOD85_021D7FC8
+MOD85_021D7FC8: ; 0x021D7FC8
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021D7FC8
+
+ thumb_func_start MOD85_021D7FCC
+MOD85_021D7FCC: ; 0x021D7FCC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4f
+ mov r1, #0x80
+ bl FUN_020643C0
+ ldr r1, _021D7FE0 ; =0x0000044C
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_021D7FE0: .word 0x0000044C
+ thumb_func_end MOD85_021D7FCC
+
+ thumb_func_start MOD85_021D7FE4
+MOD85_021D7FE4: ; 0x021D7FE4
+ ldr r1, _021D7FEC ; =0x0000044C
+ ldr r3, _021D7FF0 ; =FUN_020643F0
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_021D7FEC: .word 0x0000044C
+_021D7FF0: .word FUN_020643F0
+ thumb_func_end MOD85_021D7FE4
+
+ thumb_func_start MOD85_021D7FF4
+MOD85_021D7FF4: ; 0x021D7FF4
+ ldr r2, _021D8010 ; =0x00000424
+ add r2, r0, r2
+ ldr r0, [r2, #8]
+ cmp r0, r1
+ beq _021D800C
+ ldr r0, [r2, #0xc]
+ cmp r0, r1
+ beq _021D800C
+ str r1, [r2, #0xc]
+ mov r0, #1
+ str r0, [r2]
+ str r0, [r2, #4]
+_021D800C:
+ bx lr
+ nop
+_021D8010: .word 0x00000424
+ thumb_func_end MOD85_021D7FF4
+
+ thumb_func_start MOD85_021D8014
+MOD85_021D8014: ; 0x021D8014
+ ldr r1, _021D801C ; =0x00000428
+ ldr r0, [r0, r1]
+ bx lr
+ nop
+_021D801C: .word 0x00000428
+ thumb_func_end MOD85_021D8014
+
+ thumb_func_start MOD85_021D8020
+MOD85_021D8020: ; 0x021D8020
+ push {r4, lr}
+ add r1, r0, #0
+ ldr r0, _021D803C ; =0x00000424
+ mov r2, #0x90
+ add r4, r1, r0
+ mov r0, #0
+ str r0, [r4, #8]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ ldr r0, _021D8040 ; =MOD85_021D8054
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ .align 2, 0
+_021D803C: .word 0x00000424
+_021D8040: .word MOD85_021D8054
+ thumb_func_end MOD85_021D8020
+
+ thumb_func_start MOD85_021D8044
+MOD85_021D8044: ; 0x021D8044
+ ldr r1, _021D804C ; =0x00000434
+ ldr r3, _021D8050 ; =FUN_0200CAB4
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_021D804C: .word 0x00000434
+_021D8050: .word FUN_0200CAB4
+ thumb_func_end MOD85_021D8044
+
+ thumb_func_start MOD85_021D8054
+MOD85_021D8054: ; 0x021D8054
+ push {r4, lr}
+ ldr r0, _021D80D8 ; =0x00000424
+ add r4, r1, r0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021D80D4
+ cmp r1, #1
+ beq _021D806A
+ cmp r1, #2
+ beq _021D809E
+ pop {r4, pc}
+_021D806A:
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _021D807A
+ cmp r1, #1
+ beq _021D8084
+ cmp r1, #2
+ beq _021D808E
+ b _021D8096
+_021D807A:
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020047C8
+ b _021D8096
+_021D8084:
+ add r0, #0x7c
+ mov r1, #0
+ bl FUN_02005350
+ b _021D8096
+_021D808E:
+ add r0, #0x7d
+ mov r1, #0
+ bl FUN_02005350
+_021D8096:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_021D809E:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0
+ beq _021D80AE
+ cmp r1, #1
+ beq _021D80B8
+ cmp r1, #2
+ beq _021D80C0
+ b _021D80C6
+_021D80AE:
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020047C8
+ b _021D80C6
+_021D80B8:
+ add r0, #0x7c
+ bl FUN_020051F4
+ b _021D80C6
+_021D80C0:
+ add r0, #0x7d
+ bl FUN_020051F4
+_021D80C6:
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #8]
+ mov r0, #3
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #4]
+ str r0, [r4]
+_021D80D4:
+ pop {r4, pc}
+ nop
+_021D80D8: .word 0x00000424
+ thumb_func_end MOD85_021D8054
+
+ thumb_func_start MOD85_021D80DC
+MOD85_021D80DC: ; 0x021D80DC
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r0, _021D80F4 ; =0x0000043C
+ ldr r0, [r4, r0]
+ bl FUN_0201AB60
+ pop {r4, pc}
+ nop
+_021D80F4: .word 0x0000043C
+ thumb_func_end MOD85_021D80DC
+
+ thumb_func_start MOD85_021D80F8
+MOD85_021D80F8: ; 0x021D80F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x4f
+ add r1, r5, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _021D810C
+ bl ErrorHandling
+_021D810C:
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D80F8
+
+ thumb_func_start MOD85_021D811C
+MOD85_021D811C: ; 0x021D811C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x85
+ mov r1, #0x4f
+ bl FUN_02006670
+ ldr r1, _021D8130 ; =0x00000438
+ str r0, [r4, r1]
+ pop {r4, pc}
+ nop
+_021D8130: .word 0x00000438
+ thumb_func_end MOD85_021D811C
+
+ thumb_func_start MOD85_021D8134
+MOD85_021D8134: ; 0x021D8134
+ ldr r1, _021D813C ; =0x00000438
+ ldr r3, _021D8140 ; =FUN_020066F4
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_021D813C: .word 0x00000438
+_021D8140: .word FUN_020066F4
+ thumb_func_end MOD85_021D8134
+
+ thumb_func_start MOD85_021D8144
+MOD85_021D8144: ; 0x021D8144
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ ldr r0, _021D8184 ; =0x00000438
+ add r6, r1, #0
+ ldr r0, [r4, r0]
+ add r5, r2, #0
+ bl FUN_020067D0
+ add r1, r0, #0
+ cmp r5, #1
+ bne _021D8162
+ mov r0, #0x4f
+ bl FUN_02016998
+ b _021D8168
+_021D8162:
+ mov r0, #0x4f
+ bl FUN_020169D8
+_021D8168:
+ add r5, r0, #0
+ cmp r5, #0
+ bne _021D8172
+ bl ErrorHandling
+_021D8172:
+ ldr r0, _021D8184 ; =0x00000438
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ add r2, r5, #0
+ bl FUN_02006774
+ add r0, r5, #0
+ pop {r4, r5, r6, pc}
+ nop
+_021D8184: .word 0x00000438
+ thumb_func_end MOD85_021D8144
+
+ thumb_func_start MOD85_021D8188
+MOD85_021D8188: ; 0x021D8188
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021D81C8
+ add r0, r4, #0
+ bl MOD85_021D92E8
+ add r0, r4, #0
+ bl MOD85_021DAD20
+ add r0, r4, #0
+ bl MOD85_021DAEC0
+ add r0, r4, #0
+ bl MOD85_021DB494
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8188
+
+ thumb_func_start MOD85_021D81AC
+MOD85_021D81AC: ; 0x021D81AC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021D931C
+ add r0, r4, #0
+ bl MOD85_021DAD44
+ add r0, r4, #0
+ bl MOD85_021DAEE4
+ add r0, r4, #0
+ bl MOD85_021DB600
+ pop {r4, pc}
+ thumb_func_end MOD85_021D81AC
+
+ thumb_func_start MOD85_021D81C8
+MOD85_021D81C8: ; 0x021D81C8
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0x15
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r7, #0x11
+_021D81D2:
+ bl FUN_0201B9EC
+ add r1, r7, #0
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0xa8
+ str r1, [r0]
+ lsl r0, r1, #0x11
+ sub r1, r6, r0
+ add r0, r5, #0
+ add r0, #0x90
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x90
+ mov r1, #0x2a
+ ldr r0, [r0]
+ lsl r1, r1, #0x10
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0x90
+ add r4, r4, #1
+ add r5, r5, #4
+ str r1, [r0]
+ cmp r4, #3
+ blt _021D81D2
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D81C8
+
+ thumb_func_start MOD85_021D820C
+MOD85_021D820C: ; 0x021D820C
+ push {r3, r4, r5, lr}
+ ldr r4, _021D822C ; =0x021DEF94
+ add r5, r0, #0
+_021D8212:
+ ldr r1, [r5]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ blx r1
+ cmp r0, #1
+ beq _021D8212
+ cmp r0, #2
+ bne _021D8228
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D8228:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D822C: .word 0x021DEF94
+ thumb_func_end MOD85_021D820C
+
+ thumb_func_start MOD85_021D8230
+MOD85_021D8230: ; 0x021D8230
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x64]
+ mov r3, #1
+ add r2, r4, #0
+ str r1, [r4, #0x68]
+ lsl r3, r3, #0x10
+ add r2, #0x8c
+ str r3, [r2]
+ str r1, [r4, #0x74]
+ str r1, [r4, #8]
+ mov r2, #1
+ str r2, [r4]
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ bl MOD85_021DB95C
+ ldr r1, [r4, #0x60]
+ cmp r1, #0
+ bne _021D827C
+ mov r0, #0x3c
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D8298
+_021D827C:
+ cmp r1, #3
+ bge _021D828A
+ mov r0, #0x3b
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D8298
+_021D828A:
+ ldr r0, _021D829C ; =0x0000C350
+ cmp r1, r0
+ blt _021D8298
+ mov r0, #0x3d
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #4]
+_021D8298:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D829C: .word 0x0000C350
+ thumb_func_end MOD85_021D8230
+
+ thumb_func_start MOD85_021D82A0
+MOD85_021D82A0: ; 0x021D82A0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D82BC
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D82BC:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D82F0
+ ldr r0, [r4, #0x60]
+ sub r0, r0, #3
+ str r0, [r4, #0x60]
+ ldr r0, _021D82F4 ; =0x0000045C
+ ldr r1, [r4, r0]
+ add r1, r1, #3
+ str r1, [r4, r0]
+ mov r0, #2
+ str r0, [r4]
+ ldr r0, _021D82F8 ; =0x000005ED
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ add r0, r4, #0
+ bl MOD85_021DB76C
+ mov r0, #0
+ pop {r4, pc}
+_021D82F0:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D82F4: .word 0x0000045C
+_021D82F8: .word 0x000005ED
+ thumb_func_end MOD85_021D82A0
+
+ thumb_func_start MOD85_021D82FC
+MOD85_021D82FC: ; 0x021D82FC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8318
+ ldr r0, [r4, #0x60]
+ add r0, r0, #3
+ str r0, [r4, #0x60]
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D8318:
+ mov r0, #0x12
+ lsl r0, r0, #6
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D832C
+ mov r0, #3
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D832C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D82FC
+
+ thumb_func_start MOD85_021D8330
+MOD85_021D8330: ; 0x021D8330
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA804
+ mov r0, #0x46
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ add r1, r0, #4
+ ldr r1, [r4, r1]
+ add r0, r0, #4
+ add r1, r1, #1
+ str r1, [r4, r0]
+ mov r0, #0
+ str r0, [r4, #0x70]
+ ldr r1, [r4, #0x74]
+ mov r0, #0x33
+ tst r0, r1
+ beq _021D835C
+ mov r0, #1
+ str r0, [r4, #0x70]
+_021D835C:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x74]
+ cmp r0, #0
+ beq _021D8398
+ add r0, r4, #0
+ bl MOD85_021DA948
+ cmp r0, #0
+ bne _021D8378
+ mov r0, #0x55
+ mov r1, #4
+ lsl r0, r0, #2
+ b _021D838C
+_021D8378:
+ ldr r0, [r4, #0x74]
+ bl MOD85_021DBF70
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x49
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+_021D838C:
+ str r1, [r4, r0]
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [r4, #0x30]
+ bl MOD85_021DAEF4
+_021D8398:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB76C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9338
+ add r0, r4, #0
+ bl MOD85_021DBFA4
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [r4, #0x7c]
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #4
+ str r0, [r4]
+ ldr r0, _021D83F8 ; =0x000005EE
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_021D83F8: .word 0x000005EE
+ thumb_func_end MOD85_021D8330
+
+ thumb_func_start MOD85_021D83FC
+MOD85_021D83FC: ; 0x021D83FC
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D8418
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ mov r1, #5
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+_021D8418:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021D83FC
+
+ thumb_func_start MOD85_021D841C
+MOD85_021D841C: ; 0x021D841C
+ push {r4, lr}
+ ldr r1, _021D850C ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ ldr r1, [r4, #0x7c]
+ cmp r1, #1
+ bne _021D8462
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r3, r2, #0
+ tst r3, r1
+ beq _021D8462
+ mov r2, #2
+ str r2, [r4, #0x7c]
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D844A
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D844A:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9350
+ ldr r0, _021D8510 ; =0x00000626
+ bl FUN_020054C8
+ b _021D84EA
+_021D8462:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D84A6
+ mov r1, #2
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D84A6
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D848E
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D848E:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9350
+ ldr r0, _021D8510 ; =0x00000626
+ bl FUN_020054C8
+ b _021D84EA
+_021D84A6:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D84EA
+ mov r1, #1
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D84EA
+ add r0, r4, #0
+ mov r2, #2
+ add r0, #0x84
+ str r2, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D84D4
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D84D4:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9350
+ ldr r0, _021D8510 ; =0x00000626
+ bl FUN_020054C8
+_021D84EA:
+ ldr r0, [r4, #0x7c]
+ cmp r0, #2
+ bne _021D8508
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D8508
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D8508
+ mov r0, #6
+ str r0, [r4]
+_021D8508:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D850C: .word 0x021C48B8
+_021D8510: .word 0x00000626
+ thumb_func_end MOD85_021D841C
+
+ thumb_func_start MOD85_021D8514
+MOD85_021D8514: ; 0x021D8514
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D853A
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D853A
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9360
+ cmp r0, #1
+ bne _021D853E
+_021D853A:
+ mov r0, #0
+ pop {r4, pc}
+_021D853E:
+ add r0, r4, #0
+ bl MOD85_021DB754
+ mov r0, #7
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8514
+
+ thumb_func_start MOD85_021D854C
+MOD85_021D854C: ; 0x021D854C
+ push {r4, lr}
+ add r4, r0, #0
+ add r2, r4, #0
+ ldr r1, [r4, #0x74]
+ add r2, #0x48
+ bl MOD85_021DBED4
+ str r0, [r4, #0x44]
+ cmp r0, #6
+ bne _021D8584
+ ldr r1, [r4, #0x74]
+ mov r0, #0xaa
+ tst r0, r1
+ beq _021D8570
+ mov r0, #0x10
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8570:
+ cmp r1, #0
+ beq _021D857C
+ mov r0, #0xa
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D857C:
+ mov r0, #8
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8584:
+ ldr r2, [r4, #0x74]
+ mov r1, #0xaa
+ tst r1, r2
+ beq _021D859E
+ mov r0, #2
+ tst r0, r2
+ beq _021D8596
+ mov r0, #0x15
+ b _021D8598
+_021D8596:
+ mov r0, #0x13
+_021D8598:
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D859E:
+ cmp r0, #2
+ bne _021D85AA
+ mov r0, #0xe
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D85AA:
+ mov r0, #0xc
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D854C
+
+ thumb_func_start MOD85_021D85B4
+MOD85_021D85B4: ; 0x021D85B4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #9
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D85B4
+
+ thumb_func_start MOD85_021D85C8
+MOD85_021D85C8: ; 0x021D85C8
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D85DE
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ str r1, [r0]
+_021D85DE:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021D85C8
+
+ thumb_func_start MOD85_021D85E4
+MOD85_021D85E4: ; 0x021D85E4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DAEF4
+ mov r0, #0xb
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D85E4
+
+ thumb_func_start MOD85_021D85FC
+MOD85_021D85FC: ; 0x021D85FC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D8618
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8618:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D85FC
+
+ thumb_func_start MOD85_021D861C
+MOD85_021D861C: ; 0x021D861C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DC0D8
+ ldr r1, _021D8648 ; =0x00000458
+ str r0, [r4, #0x64]
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0xd
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8648: .word 0x00000458
+ thumb_func_end MOD85_021D861C
+
+ thumb_func_start MOD85_021D864C
+MOD85_021D864C: ; 0x021D864C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ mov r1, #0x1e
+ lsl r1, r1, #0xc
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ bne _021D866A
+ mov r1, #2
+ bl MOD85_021DAEF4
+ b _021D8690
+_021D866A:
+ ble _021D8690
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8690
+ add r0, r4, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D8690
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8690:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D864C
+
+ thumb_func_start MOD85_021D8694
+MOD85_021D8694: ; 0x021D8694
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x64]
+ str r1, [r4, #0x6c]
+ mov r1, #0xf
+ str r1, [r4]
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8694
+
+ thumb_func_start MOD85_021D86B4
+MOD85_021D86B4: ; 0x021D86B4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ mov r1, #0xf
+ lsl r1, r1, #0xc
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ bne _021D86D2
+ mov r1, #2
+ bl MOD85_021DAEF4
+ b _021D86FA
+_021D86D2:
+ ble _021D86FA
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D86FA
+ add r0, r4, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D86FA
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #3
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D86FA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D86B4
+
+ thumb_func_start MOD85_021D8700
+MOD85_021D8700: ; 0x021D8700
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ bl MOD85_021DA96C
+ add r0, r4, #0
+ bl MOD85_021DAA2C
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r1, #0x11
+ str r1, [r4]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8700
+
+ thumb_func_start MOD85_021D8728
+MOD85_021D8728: ; 0x021D8728
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ blt _021D874E
+ mov r1, #3
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D7FF4
+ mov r0, #0x12
+ str r0, [r4]
+_021D874E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8728
+
+ thumb_func_start MOD85_021D8754
+MOD85_021D8754: ; 0x021D8754
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D8768
+ mov r0, #0x17
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8768:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8754
+
+ thumb_func_start MOD85_021D876C
+MOD85_021D876C: ; 0x021D876C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DC0D8
+ str r0, [r4, #0x64]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x14
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ bl MOD85_021DA96C
+ add r0, r4, #0
+ bl MOD85_021DAA2C
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D876C
+
+ thumb_func_start MOD85_021D879C
+MOD85_021D879C: ; 0x021D879C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ mov r1, #0x1e
+ lsl r1, r1, #0xc
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ bne _021D87C2
+ mov r1, #1
+ bl MOD85_021D7FF4
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD85_021DAEF4
+ b _021D87E2
+_021D87C2:
+ blt _021D87E2
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D87E2
+ add r0, r4, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D87E2
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x17
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D87E2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D879C
+
+ thumb_func_start MOD85_021D87E8
+MOD85_021D87E8: ; 0x021D87E8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x6c]
+ mov r1, #0x16
+ str r1, [r4]
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xb
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ bl MOD85_021DA96C
+ add r0, r4, #0
+ bl MOD85_021DAA2C
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D87E8
+
+ thumb_func_start MOD85_021D8810
+MOD85_021D8810: ; 0x021D8810
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r3, r2, r1
+ lsl r2, r1, #3
+ str r3, [r4, #0x6c]
+ cmp r3, r2
+ bne _021D8834
+ mov r1, #3
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D7FF4
+ b _021D8858
+_021D8834:
+ lsl r1, r1, #3
+ cmp r3, r1
+ blt _021D8858
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8858
+ add r0, r4, #0
+ bl MOD85_021DAF08
+ cmp r0, #1
+ bne _021D8858
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x18
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8858:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8810
+
+ thumb_func_start MOD85_021D885C
+MOD85_021D885C: ; 0x021D885C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #6
+ blt _021D886A
+ bl ErrorHandling
+_021D886A:
+ mov r0, #0x19
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D885C
+
+ thumb_func_start MOD85_021D8874
+MOD85_021D8874: ; 0x021D8874
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #6
+ blt _021D8882
+ bl ErrorHandling
+_021D8882:
+ mov r0, #0x1c
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8874
+
+ thumb_func_start MOD85_021D888C
+MOD85_021D888C: ; 0x021D888C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x64]
+ str r1, [r4, #0x68]
+ mov r2, #0x1a
+ str r2, [r4]
+ str r1, [r4, #0x74]
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ bl MOD85_021DB95C
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ ldr r1, [r4, #0x60]
+ cmp r1, #0
+ bne _021D88D4
+ mov r0, #0x3c
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D88F0
+_021D88D4:
+ cmp r1, #3
+ bge _021D88E2
+ mov r0, #0x3b
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D88F0
+_021D88E2:
+ ldr r0, _021D88F4 ; =0x0000C350
+ cmp r1, r0
+ blt _021D88F0
+ mov r0, #0x3d
+ str r0, [r4]
+ mov r0, #0x1a
+ str r0, [r4, #4]
+_021D88F0:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D88F4: .word 0x0000C350
+ thumb_func_end MOD85_021D888C
+
+ thumb_func_start MOD85_021D88F8
+MOD85_021D88F8: ; 0x021D88F8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8914
+ mov r0, #0x3f
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ mov r0, #0
+ pop {r4, pc}
+_021D8914:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8948
+ ldr r0, [r4, #0x60]
+ sub r0, r0, #3
+ str r0, [r4, #0x60]
+ ldr r0, _021D894C ; =0x0000045C
+ ldr r1, [r4, r0]
+ add r1, r1, #3
+ str r1, [r4, r0]
+ mov r0, #0x1b
+ str r0, [r4]
+ ldr r0, _021D8950 ; =0x000005ED
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ add r0, r4, #0
+ bl MOD85_021DB76C
+ mov r0, #0
+ pop {r4, pc}
+_021D8948:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D894C: .word 0x0000045C
+_021D8950: .word 0x000005ED
+ thumb_func_end MOD85_021D88F8
+
+ thumb_func_start MOD85_021D8954
+MOD85_021D8954: ; 0x021D8954
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8970
+ ldr r0, [r4, #0x60]
+ add r0, r0, #3
+ str r0, [r4, #0x60]
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D8970:
+ mov r0, #0x12
+ lsl r0, r0, #6
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8984
+ mov r0, #0x1c
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8984:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8954
+
+ thumb_func_start MOD85_021D8988
+MOD85_021D8988: ; 0x021D8988
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAAF0
+ mov r1, #0x46
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r4, r0]
+ add r1, #8
+ add r0, r0, #1
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x70]
+ ldr r1, [r4, #0x74]
+ mov r0, #0x33
+ tst r0, r1
+ beq _021D89B6
+ mov r0, #1
+ str r0, [r4, #0x70]
+_021D89B6:
+ mov r0, #0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x74]
+ cmp r0, #0
+ beq _021D89C4
+ mov r0, #1
+ str r0, [r4, #0x30]
+_021D89C4:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB76C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9338
+ add r0, r4, #0
+ bl MOD85_021DBFA4
+ add r0, r4, #0
+ mov r1, #9
+ bl MOD85_021DAEF4
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [r4, #0x7c]
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x1d
+ str r0, [r4]
+ ldr r0, _021D8A2C ; =0x000005EE
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_021D8A2C: .word 0x000005EE
+ thumb_func_end MOD85_021D8988
+
+ thumb_func_start MOD85_021D8A30
+MOD85_021D8A30: ; 0x021D8A30
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D8A4C
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ mov r1, #0x1e
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+_021D8A4C:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021D8A30
+
+ thumb_func_start MOD85_021D8A50
+MOD85_021D8A50: ; 0x021D8A50
+ push {r4, lr}
+ ldr r1, _021D8B40 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ ldr r1, [r4, #0x7c]
+ cmp r1, #1
+ bne _021D8A96
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r3, r2, #0
+ tst r3, r1
+ beq _021D8A96
+ mov r2, #2
+ str r2, [r4, #0x7c]
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D8A7E
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D8A7E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9350
+ ldr r0, _021D8B44 ; =0x00000626
+ bl FUN_020054C8
+ b _021D8B1E
+_021D8A96:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D8ADA
+ mov r1, #2
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D8ADA
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D8AC2
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D8AC2:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9350
+ ldr r0, _021D8B44 ; =0x00000626
+ bl FUN_020054C8
+ b _021D8B1E
+_021D8ADA:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D8B1E
+ mov r1, #1
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D8B1E
+ add r0, r4, #0
+ mov r2, #2
+ add r0, #0x84
+ str r2, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DBFDC
+ cmp r0, #0
+ bne _021D8B08
+ mov r0, #0
+ str r0, [r4, #0x70]
+_021D8B08:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9350
+ ldr r0, _021D8B44 ; =0x00000626
+ bl FUN_020054C8
+_021D8B1E:
+ ldr r0, [r4, #0x7c]
+ cmp r0, #2
+ bne _021D8B3C
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D8B3C
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D8B3C
+ mov r0, #0x1f
+ str r0, [r4]
+_021D8B3C:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8B40: .word 0x021C48B8
+_021D8B44: .word 0x00000626
+ thumb_func_end MOD85_021D8A50
+
+ thumb_func_start MOD85_021D8B48
+MOD85_021D8B48: ; 0x021D8B48
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D8B6E
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D8B6E
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9360
+ cmp r0, #1
+ bne _021D8B72
+_021D8B6E:
+ mov r0, #0
+ pop {r4, pc}
+_021D8B72:
+ add r0, r4, #0
+ bl MOD85_021DB754
+ mov r0, #0x20
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8B48
+
+ thumb_func_start MOD85_021D8B80
+MOD85_021D8B80: ; 0x021D8B80
+ push {r4, lr}
+ add r4, r0, #0
+ add r2, r4, #0
+ ldr r1, [r4, #0x74]
+ add r2, #0x48
+ bl MOD85_021DBED4
+ str r0, [r4, #0x44]
+ cmp r0, #6
+ bne _021D8B9C
+ mov r0, #0x21
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8B9C:
+ mov r1, #3
+ ldr r2, [r4, #0x74]
+ lsl r1, r1, #8
+ tst r1, r2
+ beq _021D8BAE
+ mov r0, #0x27
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8BAE:
+ cmp r0, #2
+ bne _021D8BBA
+ mov r0, #0x25
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8BBA:
+ mov r0, #0x23
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8B80
+
+ thumb_func_start MOD85_021D8BC4
+MOD85_021D8BC4: ; 0x021D8BC4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x22
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8BC4
+
+ thumb_func_start MOD85_021D8BE0
+MOD85_021D8BE0: ; 0x021D8BE0
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D8BFC
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ mov r1, #0x19
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+_021D8BFC:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021D8BE0
+
+ thumb_func_start MOD85_021D8C00
+MOD85_021D8C00: ; 0x021D8C00
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DC0D8
+ ldr r1, _021D8C2C ; =0x00000458
+ str r0, [r4, #0x64]
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x24
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8C2C: .word 0x00000458
+ thumb_func_end MOD85_021D8C00
+
+ thumb_func_start MOD85_021D8C30
+MOD85_021D8C30: ; 0x021D8C30
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8C4C
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ mov r0, #0x19
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8C4C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8C30
+
+ thumb_func_start MOD85_021D8C50
+MOD85_021D8C50: ; 0x021D8C50
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ str r1, [r4, #0x64]
+ str r1, [r4, #0x6c]
+ mov r1, #0x26
+ str r1, [r4]
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD85_021DAEF4
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D8C50
+
+ thumb_func_start MOD85_021D8C70
+MOD85_021D8C70: ; 0x021D8C70
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r2, [r4, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ mov r1, #0xf
+ lsl r1, r1, #0xc
+ str r2, [r4, #0x6c]
+ cmp r2, r1
+ ble _021D8CA8
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8CA8
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ bl MOD85_021DB754
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x1c
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8CA8:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8C70
+
+ thumb_func_start MOD85_021D8CAC
+MOD85_021D8CAC: ; 0x021D8CAC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DC0D8
+ ldr r1, _021D8CF0 ; =0x00000458
+ str r0, [r4, #0x64]
+ ldr r2, [r4, r1]
+ add r0, r2, r0
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x28
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD85_021DAEF4
+ add r0, r4, #0
+ bl MOD85_021DBB0C
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D7FF4
+ add r0, r4, #0
+ bl MOD85_021DE264
+ ldr r1, _021D8CF4 ; =0x00000454
+ str r0, [r4, r1]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8CF0: .word 0x00000458
+_021D8CF4: .word 0x00000454
+ thumb_func_end MOD85_021D8CAC
+
+ thumb_func_start MOD85_021D8CF8
+MOD85_021D8CF8: ; 0x021D8CF8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAD68
+ cmp r0, #1
+ bne _021D8D1C
+ ldr r0, _021D8D20 ; =0x00000454
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ mov r0, #0x29
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8D1C:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8D20: .word 0x00000454
+ thumb_func_end MOD85_021D8CF8
+
+ thumb_func_start MOD85_021D8D24
+MOD85_021D8D24: ; 0x021D8D24
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF10
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x14]
+ mov r0, #1
+ str r0, [r4, #8]
+ mov r1, #0x2a
+ str r1, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8D24
+
+ thumb_func_start MOD85_021D8D3C
+MOD85_021D8D3C: ; 0x021D8D3C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x1c]
+ add r1, r0, #1
+ ldr r0, _021D8D84 ; =0x000003E7
+ str r1, [r4, #0x1c]
+ cmp r1, r0
+ bls _021D8D54
+ str r0, [r4, #0x1c]
+_021D8D54:
+ ldr r1, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD85_021DE118
+ mov r0, #0x10
+ str r0, [r4, #0x10]
+ mov r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ bl MOD85_021DAC44
+ cmp r0, #0
+ bne _021D8D7A
+ mov r0, #1
+ str r0, [r4, #0x2c]
+_021D8D7A:
+ mov r0, #0x2b
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_021D8D84: .word 0x000003E7
+ thumb_func_end MOD85_021D8D3C
+
+ thumb_func_start MOD85_021D8D88
+MOD85_021D8D88: ; 0x021D8D88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #1
+ bge _021D8D9A
+ bl ErrorHandling
+_021D8D9A:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ bl MOD85_021DB95C
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ mov r2, #0x2c
+ str r2, [r4]
+ ldr r1, [r4, #0x60]
+ cmp r1, #0
+ bne _021D8DDA
+ mov r0, #0x3c
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D8DF4
+_021D8DDA:
+ cmp r1, #1
+ bge _021D8DE8
+ mov r0, #0x3c
+ str r0, [r4]
+ mov r0, #0x3f
+ str r0, [r4, #4]
+ b _021D8DF4
+_021D8DE8:
+ ldr r0, _021D8DF8 ; =0x0000C350
+ cmp r1, r0
+ blt _021D8DF4
+ mov r0, #0x3d
+ str r0, [r4]
+ str r2, [r4, #4]
+_021D8DF4:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D8DF8: .word 0x0000C350
+ thumb_func_end MOD85_021D8D88
+
+ thumb_func_start MOD85_021D8DFC
+MOD85_021D8DFC: ; 0x021D8DFC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8E12
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D8E12:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8E58
+ ldr r0, [r4, #0x60]
+ sub r0, r0, #1
+ str r0, [r4, #0x60]
+ ldr r0, [r4, #0x14]
+ sub r0, r0, #1
+ str r0, [r4, #0x14]
+ ldr r0, _021D8E5C ; =0x0000045C
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bge _021D8E3C
+ mov r0, #0
+ str r0, [r4, #0x14]
+_021D8E3C:
+ mov r0, #0x2d
+ str r0, [r4]
+ ldr r0, _021D8E60 ; =0x000005ED
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD85_021DB9A0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DB714
+ mov r0, #0
+ pop {r4, pc}
+_021D8E58:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8E5C: .word 0x0000045C
+_021D8E60: .word 0x000005ED
+ thumb_func_end MOD85_021D8DFC
+
+ thumb_func_start MOD85_021D8E64
+MOD85_021D8E64: ; 0x021D8E64
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #8
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8E80
+ ldr r0, [r4, #0x60]
+ add r0, r0, #1
+ str r0, [r4, #0x60]
+ mov r0, #0x3f
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D8E80:
+ mov r0, #0x12
+ lsl r0, r0, #6
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D8E94
+ mov r0, #0x2e
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8E94:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D8E64
+
+ thumb_func_start MOD85_021D8E98
+MOD85_021D8E98: ; 0x021D8E98
+ push {r4, lr}
+ mov r2, #0x46
+ add r4, r0, #0
+ lsl r2, r2, #4
+ ldr r1, [r4, r2]
+ add r1, r1, #1
+ str r1, [r4, r2]
+ add r1, r2, #0
+ add r1, #0xc
+ ldr r1, [r4, r1]
+ add r2, #0xc
+ add r1, r1, #1
+ str r1, [r4, r2]
+ mov r1, #1
+ str r1, [r4, #0x74]
+ str r1, [r4, #0x30]
+ str r1, [r4, #0x70]
+ mov r1, #0
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC094
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DB714
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9338
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9338
+ add r0, r4, #0
+ bl MOD85_021DBFA4
+ add r0, r4, #0
+ bl MOD85_021DAD0C
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [r4, #0x7c]
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r0, #0x2f
+ str r0, [r4]
+ ldr r0, _021D8F80 ; =0x000005EE
+ bl FUN_020054C8
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _021D8F4C
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ bne _021D8F4C
+ add r0, r4, #0
+ bl MOD85_021DAC20
+ cmp r0, #1
+ bne _021D8F3E
+ mov r0, #1
+ str r0, [r4, #0x28]
+ mov r0, #0x13
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_021D8F3E:
+ ldr r0, [r4, #0x28]
+ cmp r0, #1
+ bne _021D8F4C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DBB54
+_021D8F4C:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _021D8F7C
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ bne _021D8F7C
+ add r0, r4, #0
+ bl MOD85_021DABFC
+ cmp r0, #1
+ bne _021D8F6E
+ mov r0, #1
+ str r0, [r4, #0x24]
+ ldr r0, _021D8F84 ; =0x000004BC
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_021D8F6E:
+ ldr r0, [r4, #0x24]
+ cmp r0, #1
+ bne _021D8F7C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBB54
+_021D8F7C:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D8F80: .word 0x000005EE
+_021D8F84: .word 0x000004BC
+ thumb_func_end MOD85_021D8E98
+
+ thumb_func_start MOD85_021D8F88
+MOD85_021D8F88: ; 0x021D8F88
+ push {r3, lr}
+ mov r1, #1
+ ldr r2, [r0, #0x6c]
+ lsl r1, r1, #0xc
+ add r2, r2, r1
+ lsl r1, r1, #3
+ str r2, [r0, #0x6c]
+ cmp r2, r1
+ blt _021D8FAC
+ mov r1, #0
+ str r1, [r0, #0x6c]
+ mov r1, #0x30
+ str r1, [r0]
+ mov r1, #6
+ bl MOD85_021DAEF4
+ mov r0, #1
+ pop {r3, pc}
+_021D8FAC:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD85_021D8F88
+
+ thumb_func_start MOD85_021D8FB0
+MOD85_021D8FB0: ; 0x021D8FB0
+ push {r4, lr}
+ ldr r1, _021D90A8 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ ldr r1, [r4, #0x7c]
+ cmp r1, #1
+ bne _021D8FF8
+ mov r1, #2
+ lsl r1, r1, #0xa
+ add r3, r2, #0
+ tst r3, r1
+ beq _021D8FF8
+ mov r2, #2
+ str r2, [r4, #0x7c]
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DC01C
+ cmp r0, #0
+ bne _021D8FE0
+ mov r0, #0
+ str r0, [r4, #0x70]
+ str r0, [r4, #0x30]
+_021D8FE0:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D9350
+ ldr r0, _021D90AC ; =0x000005F5
+ bl FUN_020054C8
+ b _021D9084
+_021D8FF8:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D903E
+ mov r1, #2
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D903E
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DC01C
+ cmp r0, #0
+ bne _021D9026
+ mov r0, #0
+ str r0, [r4, #0x70]
+ str r0, [r4, #0x30]
+_021D9026:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9350
+ ldr r0, _021D90AC ; =0x000005F5
+ bl FUN_020054C8
+ b _021D9084
+_021D903E:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D9084
+ mov r1, #1
+ add r0, r2, #0
+ tst r0, r1
+ beq _021D9084
+ add r0, r4, #0
+ mov r2, #2
+ add r0, #0x84
+ str r2, [r0]
+ add r0, r4, #0
+ bl MOD85_021DBFB4
+ add r0, r4, #0
+ bl MOD85_021DC01C
+ cmp r0, #0
+ bne _021D906E
+ mov r0, #0
+ str r0, [r4, #0x70]
+ str r0, [r4, #0x30]
+_021D906E:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DC050
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9350
+ ldr r0, _021D90AC ; =0x000005F5
+ bl FUN_020054C8
+_021D9084:
+ ldr r0, [r4, #0x7c]
+ cmp r0, #2
+ bne _021D90A2
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D90A2
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _021D90A2
+ mov r0, #0x31
+ str r0, [r4]
+_021D90A2:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021D90A8: .word 0x021C48B8
+_021D90AC: .word 0x000005F5
+ thumb_func_end MOD85_021D8FB0
+
+ thumb_func_start MOD85_021D90B0
+MOD85_021D90B0: ; 0x021D90B0
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D90D6
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021D9360
+ cmp r0, #1
+ beq _021D90D6
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021D9360
+ cmp r0, #1
+ bne _021D90DA
+_021D90D6:
+ mov r0, #0
+ pop {r4, pc}
+_021D90DA:
+ add r0, r4, #0
+ bl MOD85_021DB754
+ mov r0, #0x32
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D90B0
+
+ thumb_func_start MOD85_021D90E8
+MOD85_021D90E8: ; 0x021D90E8
+ push {r4, lr}
+ add r4, r0, #0
+ add r2, r4, #0
+ ldr r1, [r4, #0x74]
+ add r2, #0x48
+ bl MOD85_021DBF48
+ str r0, [r4, #0x44]
+ cmp r0, #6
+ ldr r0, [r4, #0x28]
+ bne _021D910E
+ cmp r0, #1
+ bne _021D9106
+ mov r0, #3
+ str r0, [r4, #0x28]
+_021D9106:
+ mov r0, #0x33
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+_021D910E:
+ cmp r0, #1
+ bne _021D9116
+ mov r0, #2
+ str r0, [r4, #0x28]
+_021D9116:
+ mov r0, #0x34
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D90E8
+
+ thumb_func_start MOD85_021D9120
+MOD85_021D9120: ; 0x021D9120
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DB754
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bgt _021D913A
+ mov r0, #0x36
+ b _021D913C
+_021D913A:
+ mov r0, #0x2b
+_021D913C:
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9120
+
+ thumb_func_start MOD85_021D9144
+MOD85_021D9144: ; 0x021D9144
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x44]
+ lsl r2, r1, #2
+ ldr r1, _021D9170 ; =0x021DFC4C
+ ldr r3, [r1, r2]
+ ldr r1, _021D9174 ; =0x00000458
+ str r3, [r4, #0x64]
+ ldr r2, [r4, r1]
+ add r2, r2, r3
+ str r2, [r4, r1]
+ bl MOD85_021DAD54
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD85_021DAEF4
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ mov r1, #0x35
+ str r1, [r4]
+ pop {r4, pc}
+ .align 2, 0
+_021D9170: .word 0x021DFC4C
+_021D9174: .word 0x00000458
+ thumb_func_end MOD85_021D9144
+
+ thumb_func_start MOD85_021D9178
+MOD85_021D9178: ; 0x021D9178
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAD68
+ cmp r0, #0
+ bne _021D9188
+ mov r0, #0
+ pop {r4, pc}
+_021D9188:
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD85_021DAEF4
+ ldr r0, [r4, #0x10]
+ cmp r0, #1
+ bgt _021D919A
+ mov r0, #0x36
+ b _021D919C
+_021D919A:
+ mov r0, #0x2b
+_021D919C:
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9178
+
+ thumb_func_start MOD85_021D91A4
+MOD85_021D91A4: ; 0x021D91A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ beq _021D91B4
+ bl ErrorHandling
+_021D91B4:
+ ldr r0, [r4, #0x2c]
+ cmp r0, #1
+ bne _021D91D0
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ bne _021D91D0
+ add r0, r4, #0
+ mov r1, #8
+ bl MOD85_021DAEF4
+ mov r0, #0x3a
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D91D0:
+ mov r0, #0x37
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D91A4
+
+ thumb_func_start MOD85_021D91D8
+MOD85_021D91D8: ; 0x021D91D8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAC58
+ add r0, r4, #0
+ bl MOD85_021DACAC
+ ldr r1, [r4, #0x24]
+ cmp r1, #1
+ bne _021D91EE
+ mov r0, #2
+_021D91EE:
+ cmp r0, #2
+ bne _021D9202
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD85_021DAEF4
+ mov r0, #0x38
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D9202:
+ cmp r0, #1
+ bne _021D9216
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD85_021DAEF4
+ mov r0, #0x39
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+_021D9216:
+ mov r0, #0x23
+ bl FUN_02005578
+ mov r0, #0x2a
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D91D8
+
+ thumb_func_start MOD85_021D9224
+MOD85_021D9224: ; 0x021D9224
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #0
+ bne _021D9234
+ mov r0, #0
+ pop {r4, pc}
+_021D9234:
+ mov r0, #0x2a
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D9224
+
+ thumb_func_start MOD85_021D923C
+MOD85_021D923C: ; 0x021D923C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #0
+ bne _021D924C
+ mov r0, #0
+ pop {r4, pc}
+_021D924C:
+ mov r0, #0x2a
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D923C
+
+ thumb_func_start MOD85_021D9254
+MOD85_021D9254: ; 0x021D9254
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DAF08
+ cmp r0, #0
+ bne _021D9264
+ mov r0, #0
+ pop {r4, pc}
+_021D9264:
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r4, #0x20]
+ cmp r1, r0
+ bls _021D926E
+ str r1, [r4, #0x20]
+_021D926E:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021D7FF4
+ add r0, r4, #0
+ bl MOD85_021DBB30
+ mov r0, #0
+ str r0, [r4]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021D9254
+
+ thumb_func_start MOD85_021D9284
+MOD85_021D9284: ; 0x021D9284
+ push {r4, lr}
+ mov r1, #0
+ add r4, r0, #0
+ bl MOD85_021D7BEC
+ mov r0, #0x3e
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9284
+
+ thumb_func_start MOD85_021D9298
+MOD85_021D9298: ; 0x021D9298
+ push {r4, lr}
+ mov r1, #2
+ add r4, r0, #0
+ bl MOD85_021D7BEC
+ mov r0, #0x3e
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9298
+
+ thumb_func_start MOD85_021D92AC
+MOD85_021D92AC: ; 0x021D92AC
+ push {r4, lr}
+ mov r1, #1
+ add r4, r0, #0
+ bl MOD85_021D7BEC
+ mov r0, #0x3e
+ str r0, [r4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D92AC
+
+ thumb_func_start MOD85_021D92C0
+MOD85_021D92C0: ; 0x021D92C0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #3
+ bl MOD85_021DBD54
+ cmp r0, #0
+ beq _021D92D8
+ add r0, r4, #0
+ bl MOD85_021D7C44
+ ldr r0, [r4, #4]
+ str r0, [r4]
+_021D92D8:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021D92C0
+
+ thumb_func_start MOD85_021D92DC
+MOD85_021D92DC: ; 0x021D92DC
+ push {r3, lr}
+ bl MOD85_021DB9A0
+ mov r0, #2
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D92DC
+
+ thumb_func_start MOD85_021D92E8
+MOD85_021D92E8: ; 0x021D92E8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ add r5, #0xb4
+ mov r4, #0
+ add r6, r5, #0
+_021D92F4:
+ mov r0, #0
+ str r0, [r5]
+ add r2, r4, #0
+ str r4, [r5, #0x10]
+ ldr r0, _021D9318 ; =MOD85_021D936C
+ add r1, r6, #0
+ add r2, #0x81
+ str r7, [r5, #0x20]
+ bl FUN_0200CA44
+ str r0, [r5, #0x1c]
+ add r4, r4, #1
+ add r5, #0x24
+ add r6, #0x24
+ cmp r4, #3
+ blo _021D92F4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9318: .word MOD85_021D936C
+ thumb_func_end MOD85_021D92E8
+
+ thumb_func_start MOD85_021D931C
+MOD85_021D931C: ; 0x021D931C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D9322:
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_0200CAB4
+ add r4, r4, #1
+ add r5, #0x24
+ cmp r4, #3
+ blo _021D9322
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D931C
+
+ thumb_func_start MOD85_021D9338
+MOD85_021D9338: ; 0x021D9338
+ mov r2, #0x24
+ add r3, r1, #0
+ mul r3, r2
+ add r1, r0, r3
+ add r0, r0, r3
+ mov r2, #1
+ add r1, #0xb4
+ str r2, [r1]
+ add r0, #0xb8
+ str r2, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021D9338
+
+ thumb_func_start MOD85_021D9350
+MOD85_021D9350: ; 0x021D9350
+ mov r2, #0x24
+ mul r2, r1
+ add r0, r0, r2
+ mov r3, #2
+ add r0, #0xb4
+ str r3, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021D9350
+
+ thumb_func_start MOD85_021D9360
+MOD85_021D9360: ; 0x021D9360
+ mov r2, #0x24
+ mul r2, r1
+ add r0, r0, r2
+ add r0, #0xb8
+ ldr r0, [r0]
+ bx lr
+ thumb_func_end MOD85_021D9360
+
+ thumb_func_start MOD85_021D936C
+MOD85_021D936C: ; 0x021D936C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r4, [r5, #0x20]
+ ldr r6, _021D9388 ; =0x021DEE20
+_021D9374:
+ ldr r2, [r5]
+ add r0, r5, #0
+ lsl r2, r2, #2
+ ldr r2, [r6, r2]
+ add r1, r4, #0
+ blx r2
+ cmp r0, #1
+ beq _021D9374
+ pop {r4, r5, r6, pc}
+ nop
+_021D9388: .word 0x021DEE20
+ thumb_func_end MOD85_021D936C
+
+ thumb_func_start MOD85_021D938C
+MOD85_021D938C: ; 0x021D938C
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021D938C
+
+ thumb_func_start MOD85_021D9390
+MOD85_021D9390: ; 0x021D9390
+ push {r3, lr}
+ add r2, r0, #0
+ add r0, r1, #0
+ ldr r1, [r2, #0x10]
+ add r2, r0, #0
+ add r2, #0x8c
+ ldr r2, [r2]
+ bl MOD85_021DA744
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9390
+
+ thumb_func_start MOD85_021D93A8
+MOD85_021D93A8: ; 0x021D93A8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r2, [r5]
+ add r4, r1, #0
+ add r2, r2, #1
+ str r2, [r5]
+ mov r2, #0
+ str r2, [r5, #0x14]
+ str r2, [r5, #0x18]
+ ldr r2, [r4, #0x30]
+ cmp r2, #1
+ ldr r2, [r4, #8]
+ bne _021D93F2
+ cmp r2, #0
+ bne _021D93DC
+ bl MOD85_021D94E4
+ cmp r0, #0
+ bne _021D9400
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021D9EDC
+ mov r0, #0
+ str r0, [r4, #0x30]
+ b _021D9400
+_021D93DC:
+ bl MOD85_021D951C
+ cmp r0, #0
+ bne _021D9400
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021D9F8C
+ mov r0, #0
+ str r0, [r4, #0x30]
+ b _021D9400
+_021D93F2:
+ cmp r2, #0
+ bne _021D93FC
+ bl MOD85_021D9EDC
+ b _021D9400
+_021D93FC:
+ bl MOD85_021D9F8C
+_021D9400:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021D93A8
+
+ thumb_func_start MOD85_021D9404
+MOD85_021D9404: ; 0x021D9404
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r3, r1, #0
+ ldr r1, [r5, #0x10]
+ add r7, r3, #0
+ lsl r0, r1, #2
+ add r7, #0x90
+ str r0, [sp]
+ ldr r0, [r7, r0]
+ mov r4, #0
+ lsr r6, r0, #0x1f
+ lsl r2, r0, #0xf
+ sub r2, r2, r6
+ mov r0, #0xf
+ ror r2, r0
+ add r0, r6, r2
+ beq _021D943E
+ add r2, r3, #0
+ add r2, #0x8c
+ ldr r2, [r2]
+ mov r4, #1
+ cmp r0, r2
+ bge _021D9436
+ add r2, r0, #0
+_021D9436:
+ add r0, r3, #0
+ bl MOD85_021DA780
+ b _021D9464
+_021D943E:
+ ldr r2, [r5, #0x18]
+ cmp r2, #0
+ beq _021D9464
+ sub r0, r2, #1
+ str r0, [r5, #0x18]
+ add r0, r3, #0
+ add r3, #0x8c
+ ldr r2, [r3]
+ mov r4, #1
+ bl MOD85_021DA744
+ ldr r0, [sp]
+ ldr r0, [r7, r0]
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0xf
+ sub r1, r1, r2
+ mov r0, #0xf
+ ror r1, r0
+ add r0, r2, r1
+_021D9464:
+ cmp r0, #0
+ bne _021D94A0
+ ldr r6, [r5, #0x18]
+ cmp r6, #0
+ bne _021D94A0
+ ldr r3, _021D94A8 ; =0x021DEE34
+ add r2, sp, #4
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ cmp r6, #4
+ str r0, [r2]
+ ble _021D9484
+ mov r6, #4
+_021D9484:
+ lsl r1, r6, #2
+ add r0, sp, #4
+ ldr r0, [r0, r1]
+ str r0, [r5, #8]
+ mov r0, #0
+ str r0, [r5, #0xc]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ cmp r4, #0
+ bne _021D94A0
+ add sp, #0x18
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D94A0:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D94A8: .word 0x021DEE34
+ thumb_func_end MOD85_021D9404
+
+ thumb_func_start MOD85_021D94AC
+MOD85_021D94AC: ; 0x021D94AC
+ push {r3, r4}
+ ldr r2, [r0, #0x10]
+ ldr r3, [r0, #8]
+ add r1, #0x9c
+ lsl r2, r2, #2
+ str r3, [r1, r2]
+ ldr r3, [r0, #8]
+ neg r3, r3
+ str r3, [r0, #8]
+ ldr r3, [r0, #0xc]
+ add r4, r3, #1
+ mov r3, #1
+ str r4, [r0, #0xc]
+ tst r3, r4
+ bne _021D94D0
+ ldr r3, [r0, #8]
+ asr r3, r3, #2
+ str r3, [r0, #8]
+_021D94D0:
+ ldr r3, [r0, #8]
+ cmp r3, #0
+ bne _021D94DE
+ mov r3, #0
+ str r3, [r0]
+ str r3, [r0, #4]
+ str r3, [r1, r2]
+_021D94DE:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD85_021D94AC
+
+ thumb_func_start MOD85_021D94E4
+MOD85_021D94E4: ; 0x021D94E4
+ push {r3, lr}
+ ldr r2, [r1, #0x74]
+ cmp r2, #0
+ bne _021D94F0
+ mov r0, #0
+ pop {r3, pc}
+_021D94F0:
+ ldr r2, [r0, #0x10]
+ cmp r2, #0
+ beq _021D9500
+ cmp r2, #1
+ beq _021D9506
+ cmp r2, #2
+ beq _021D950C
+ b _021D9512
+_021D9500:
+ bl MOD85_021D953C
+ pop {r3, pc}
+_021D9506:
+ bl MOD85_021D9578
+ pop {r3, pc}
+_021D950C:
+ bl MOD85_021D95B4
+ pop {r3, pc}
+_021D9512:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D94E4
+
+ thumb_func_start MOD85_021D951C
+MOD85_021D951C: ; 0x021D951C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x74]
+ cmp r0, #0
+ bne _021D952C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D952C:
+ bl MOD85_021DBD74
+ add r2, r0, #0
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021D9E94
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021D951C
+
+ thumb_func_start MOD85_021D953C
+MOD85_021D953C: ; 0x021D953C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x74]
+ bl MOD85_021DBD74
+ add r6, r0, #0
+ cmp r6, #6
+ bne _021D9552
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021D9552:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DA058
+ cmp r0, #1
+ bne _021D956A
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D95F0
+ pop {r4, r5, r6, pc}
+_021D956A:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9708
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D953C
+
+ thumb_func_start MOD85_021D9578
+MOD85_021D9578: ; 0x021D9578
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x74]
+ bl MOD85_021DBD74
+ add r6, r0, #0
+ cmp r6, #6
+ bne _021D958E
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021D958E:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DA058
+ cmp r0, #1
+ bne _021D95A6
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9A48
+ pop {r4, r5, r6, pc}
+_021D95A6:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9AF0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9578
+
+ thumb_func_start MOD85_021D95B4
+MOD85_021D95B4: ; 0x021D95B4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x74]
+ bl MOD85_021DBD74
+ add r6, r0, #0
+ cmp r6, #6
+ bne _021D95CA
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021D95CA:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DA058
+ cmp r0, #1
+ bne _021D95E2
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9A48
+ pop {r4, r5, r6, pc}
+_021D95E2:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD85_021D9AF0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D95B4
+
+ thumb_func_start MOD85_021D95F0
+MOD85_021D95F0: ; 0x021D95F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp]
+ ldr r0, [r0, #0x10]
+ add r4, r1, #0
+ add r6, r2, #0
+ str r0, [sp, #8]
+ mov r7, #1
+_021D9600:
+ ldr r1, [sp, #8]
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ cmp r6, r0
+ bne _021D9638
+ mov r5, #0
+ cmp r7, #3
+ bgt _021D9638
+_021D9614:
+ add r0, r4, #0
+ add r1, r5, #0
+ add r2, r6, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9630
+ ldr r0, [sp]
+ add r1, r7, r5
+ str r1, [r0, #0x14]
+ str r5, [r0, #0x18]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D9630:
+ add r5, r5, #1
+ add r0, r7, r5
+ cmp r0, #3
+ ble _021D9614
+_021D9638:
+ add r7, r7, #1
+ cmp r7, #3
+ ble _021D9600
+ mov r0, #4
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x70]
+ cmp r0, #1
+ bne _021D964C
+ mov r0, #0x15
+ str r0, [sp, #0x10]
+_021D964C:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ mov r7, #1
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ cmp r0, #1
+ blt _021D9700
+_021D965C:
+ mov r2, #1
+ ldr r1, [sp, #8]
+ add r0, r4, #0
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ cmp r6, r0
+ bne _021D96F8
+ mov r5, #0
+_021D966E:
+ add r0, r7, r5
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r4, #0
+ add r2, r6, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D96F2
+ cmp r5, #0
+ bne _021D96B4
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0xc]
+ lsr r0, r0, #0x1f
+ lsl r2, r1, #0x1e
+ sub r2, r2, r0
+ mov r1, #0x1e
+ ror r2, r1
+ add r0, r0, r2
+ bne _021D96E2
+ add r0, r4, #0
+ add r1, r7, #2
+ add r2, r6, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D96E2
+ ldr r0, [sp]
+ mov r1, #3
+ str r1, [r0, #0x14]
+ add r1, r7, #2
+ str r1, [r0, #0x18]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D96B4:
+ cmp r5, #1
+ bne _021D96E2
+ ldr r0, [sp, #0xc]
+ mov r1, #6
+ bl _s32_div_f
+ cmp r1, #2
+ bge _021D96E2
+ add r0, r4, #0
+ add r1, r7, #2
+ add r2, r6, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D96E2
+ ldr r0, [sp]
+ mov r1, #3
+ str r1, [r0, #0x14]
+ add r1, r7, #2
+ str r1, [r0, #0x18]
+ add sp, #0x14
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D96E2:
+ ldr r0, [sp]
+ add r1, r5, #1
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #4]
+ add sp, #0x14
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D96F2:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _021D966E
+_021D96F8:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ cmp r7, r0
+ ble _021D965C
+_021D9700:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D95F0
+
+ thumb_func_start MOD85_021D9708
+MOD85_021D9708: ; 0x021D9708
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r2, #0
+ add r2, r0, #0
+ ldr r7, [r2, #0x10]
+ add r2, sp, #0xc
+ str r2, [sp]
+ add r2, sp, #0x14
+ add r3, sp, #0x10
+ str r0, [sp, #4]
+ add r5, r1, #0
+ bl MOD85_021DA0A8
+ cmp r0, #0
+ bne _021D972C
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D972C:
+ add r0, r5, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D979C
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9758
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9758:
+ ldr r2, [sp, #0x10]
+ cmp r2, #0
+ beq _021D977A
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D977A
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D977A:
+ ldr r2, [sp, #0xc]
+ cmp r2, #0
+ beq _021D979C
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D979C
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D979C:
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x70]
+ cmp r0, #1
+ bne _021D97AA
+ mov r0, #0x15
+ str r0, [sp, #8]
+_021D97AA:
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _021D97F2
+ ldr r0, [sp, #8]
+ mov r6, #1
+ cmp r0, #1
+ blt _021D97EC
+_021D97B8:
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D97E4
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D97E4
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D97E4:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ ble _021D97B8
+_021D97EC:
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D97F2:
+ ldr r0, [sp, #0xc]
+ cmp r0, #0
+ bne _021D98C4
+ ldr r0, [sp, #8]
+ mov r6, #1
+ cmp r0, #1
+ blt _021D98BE
+_021D9800:
+ mov r0, #1
+ tst r0, r6
+ beq _021D985E
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9832
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9832
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9832:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D98B6
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D98B6
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D985E:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D988A
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D988A
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D988A:
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D98B6
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D98B6
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D98B6:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ ble _021D9800
+_021D98BE:
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D98C4:
+ ldr r0, [sp, #8]
+ mov r6, #1
+ cmp r0, #1
+ bge _021D98CE
+ b _021D9A42
+_021D98CE:
+ mov r0, #3
+ and r0, r6
+ bne _021D9958
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9900
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9900
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9900:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D992C
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D992C
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D992C:
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9A38
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9A38
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9958:
+ cmp r0, #1
+ bne _021D99B4
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9988
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9988
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9988:
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9A38
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9A38
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D99B4:
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D99E0
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D99E0
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D99E0:
+ ldr r2, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9A0C
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9A0C
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9A0C:
+ ldr r2, [sp, #0x10]
+ add r0, r5, #0
+ add r1, r7, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ cmp r4, r0
+ bne _021D9A38
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD85_021DA290
+ cmp r0, #1
+ bne _021D9A38
+ ldr r1, [sp, #0x10]
+ ldr r0, [sp, #4]
+ add sp, #0x18
+ str r1, [r0, #0x14]
+ str r6, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9A38:
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ cmp r6, r0
+ bgt _021D9A42
+ b _021D98CE
+_021D9A42:
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021D9708
+
+ thumb_func_start MOD85_021D9A48
+MOD85_021D9A48: ; 0x021D9A48
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r7, [r0, #0x10]
+ str r0, [sp]
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r5, #1
+_021D9A56:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD85_021DBD30
+ cmp r6, r0
+ bne _021D9A72
+ ldr r0, [sp]
+ mov r1, #0
+ str r5, [r0, #0x14]
+ str r1, [r0, #0x18]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9A72:
+ add r5, r5, #1
+ cmp r5, #3
+ ble _021D9A56
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x70]
+ cmp r0, #1
+ bne _021D9A86
+ mov r0, #0x15
+ str r0, [sp, #4]
+_021D9A86:
+ ldr r0, [sp, #4]
+ mov r5, #1
+ cmp r0, #1
+ blt _021D9AE8
+_021D9A8E:
+ mov r2, #1
+ add r0, r4, #0
+ add r1, r7, #0
+ sub r2, r2, r5
+ bl MOD85_021DBD30
+ cmp r6, r0
+ bne _021D9AE0
+ lsr r2, r5, #0x1f
+ lsl r1, r5, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ cmp r0, #1
+ bne _021D9ABE
+ ldr r0, [sp]
+ mov r1, #3
+ str r1, [r0, #0x14]
+ add r1, r5, #2
+ str r1, [r0, #0x18]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9ABE:
+ sub r0, r0, #2
+ cmp r0, #1
+ bhi _021D9AD4
+ ldr r0, [sp]
+ mov r1, #2
+ str r1, [r0, #0x14]
+ add r1, r5, #1
+ str r1, [r0, #0x18]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9AD4:
+ ldr r1, [sp]
+ mov r0, #1
+ str r0, [r1, #0x14]
+ add sp, #8
+ str r5, [r1, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9AE0:
+ ldr r0, [sp, #4]
+ add r5, r5, #1
+ cmp r5, r0
+ ble _021D9A8E
+_021D9AE8:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9A48
+
+ thumb_func_start MOD85_021D9AF0
+MOD85_021D9AF0: ; 0x021D9AF0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x48
+ add r5, r2, #0
+ add r2, r0, #0
+ ldr r7, [r2, #0x10]
+ add r2, sp, #0x3c
+ str r2, [sp]
+ add r2, sp, #0x44
+ add r3, sp, #0x40
+ str r0, [sp, #4]
+ add r6, r1, #0
+ bl MOD85_021DA0A8
+ cmp r0, #0
+ bne _021D9B14
+ add sp, #0x48
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9B14:
+ ldr r2, [sp, #0x44]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9B32
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ add sp, #0x48
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9B32:
+ ldr r2, [sp, #0x40]
+ cmp r2, #0
+ beq _021D9B54
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9B54
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ add sp, #0x48
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9B54:
+ ldr r2, [sp, #0x3c]
+ cmp r2, #0
+ beq _021D9B76
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9B76
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #4]
+ add sp, #0x48
+ str r1, [r0, #0x14]
+ mov r1, #0
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9B76:
+ ldr r0, [r6, #0x70]
+ mov r4, #4
+ cmp r0, #1
+ bne _021D9B80
+ mov r4, #0x15
+_021D9B80:
+ ldr r0, [sp, #0x40]
+ cmp r0, #0
+ bne _021D9BC0
+ mov r0, #1
+ str r0, [sp, #0x38]
+ cmp r4, #1
+ blt _021D9BBA
+_021D9B8E:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x38]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9BB0
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x38]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9BB0:
+ ldr r0, [sp, #0x38]
+ add r0, r0, #1
+ str r0, [sp, #0x38]
+ cmp r0, r4
+ ble _021D9B8E
+_021D9BBA:
+ add sp, #0x48
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9BC0:
+ lsl r0, r7, #2
+ add r0, r6, r0
+ add r0, #0xa8
+ ldr r1, [sp, #0x3c]
+ ldr r0, [r0]
+ cmp r1, #0
+ bne _021D9CA6
+ mov r1, #1
+ str r1, [sp, #8]
+ tst r0, r1
+ beq _021D9C3C
+ cmp r4, #1
+ blt _021D9C06
+_021D9BDA:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9BFC
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #8]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9BFC:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, r4
+ ble _021D9BDA
+_021D9C06:
+ mov r0, #1
+ str r0, [sp, #0xc]
+ cmp r4, #1
+ blt _021D9CA0
+_021D9C0E:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #0xc]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9C30
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0xc]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C30:
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, r4
+ ble _021D9C0E
+ b _021D9CA0
+_021D9C3C:
+ cmp r4, #1
+ blt _021D9C6C
+_021D9C40:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #8]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9C62
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #8]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C62:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, r4
+ ble _021D9C40
+_021D9C6C:
+ mov r0, #1
+ str r0, [sp, #0x10]
+ cmp r4, #1
+ blt _021D9CA0
+_021D9C74:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x10]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9C96
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x10]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9C96:
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, r4
+ ble _021D9C74
+_021D9CA0:
+ add sp, #0x48
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9CA6:
+ mov r1, #3
+ bl _s32_div_f
+ cmp r1, #0
+ bne _021D9D4E
+ mov r0, #1
+ str r0, [sp, #0x14]
+ cmp r4, #1
+ blt _021D9CE4
+_021D9CB8:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9CDA
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x14]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9CDA:
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ cmp r0, r4
+ ble _021D9CB8
+_021D9CE4:
+ mov r0, #1
+ str r0, [sp, #0x18]
+ cmp r4, #1
+ blt _021D9D18
+_021D9CEC:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9D0E
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x18]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9D0E:
+ ldr r0, [sp, #0x18]
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, r4
+ ble _021D9CEC
+_021D9D18:
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ cmp r4, #1
+ blt _021D9D4C
+_021D9D20:
+ ldr r3, [sp, #0x3c]
+ ldr r2, [sp, #0x1c]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9D42
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x1c]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9D42:
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, r4
+ ble _021D9D20
+_021D9D4C:
+ b _021D9E8C
+_021D9D4E:
+ cmp r1, #1
+ bne _021D9DF0
+ mov r0, #1
+ str r0, [sp, #0x20]
+ cmp r4, #1
+ blt _021D9D86
+_021D9D5A:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #0x20]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9D7C
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x20]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9D7C:
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ cmp r0, r4
+ ble _021D9D5A
+_021D9D86:
+ mov r0, #1
+ str r0, [sp, #0x24]
+ cmp r4, #1
+ blt _021D9DBA
+_021D9D8E:
+ ldr r3, [sp, #0x3c]
+ ldr r2, [sp, #0x24]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9DB0
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x24]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9DB0:
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, r4
+ ble _021D9D8E
+_021D9DBA:
+ mov r0, #1
+ str r0, [sp, #0x28]
+ cmp r4, #1
+ blt _021D9E8C
+_021D9DC2:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x28]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9DE4
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x28]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9DE4:
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, r4
+ ble _021D9DC2
+ b _021D9E8C
+_021D9DF0:
+ mov r0, #1
+ str r0, [sp, #0x2c]
+ cmp r4, #1
+ blt _021D9E24
+_021D9DF8:
+ ldr r3, [sp, #0x3c]
+ ldr r2, [sp, #0x2c]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9E1A
+ ldr r1, [sp, #0x3c]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x2c]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9E1A:
+ ldr r0, [sp, #0x2c]
+ add r0, r0, #1
+ str r0, [sp, #0x2c]
+ cmp r0, r4
+ ble _021D9DF8
+_021D9E24:
+ mov r0, #1
+ str r0, [sp, #0x30]
+ cmp r4, #1
+ blt _021D9E58
+_021D9E2C:
+ ldr r3, [sp, #0x44]
+ ldr r2, [sp, #0x30]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9E4E
+ ldr r1, [sp, #0x44]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x30]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9E4E:
+ ldr r0, [sp, #0x30]
+ add r0, r0, #1
+ str r0, [sp, #0x30]
+ cmp r0, r4
+ ble _021D9E2C
+_021D9E58:
+ mov r0, #1
+ str r0, [sp, #0x34]
+ cmp r4, #1
+ blt _021D9E8C
+_021D9E60:
+ ldr r3, [sp, #0x40]
+ ldr r2, [sp, #0x34]
+ add r0, r6, #0
+ add r1, r7, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ cmp r5, r0
+ bne _021D9E82
+ ldr r1, [sp, #0x40]
+ ldr r0, [sp, #4]
+ str r1, [r0, #0x14]
+ ldr r1, [sp, #0x34]
+ add sp, #0x48
+ str r1, [r0, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9E82:
+ ldr r0, [sp, #0x34]
+ add r0, r0, #1
+ str r0, [sp, #0x34]
+ cmp r0, r4
+ ble _021D9E60
+_021D9E8C:
+ mov r0, #0
+ add sp, #0x48
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9AF0
+
+ thumb_func_start MOD85_021D9E94
+MOD85_021D9E94: ; 0x021D9E94
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ ldr r0, [r0, #0x10]
+ add r6, r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x70]
+ add r7, r2, #0
+ mov r5, #4
+ cmp r0, #1
+ bne _021D9EAC
+ mov r5, #0x15
+_021D9EAC:
+ mov r4, #0
+ cmp r5, #0
+ blt _021D9ED6
+_021D9EB2:
+ mov r2, #2
+ ldr r1, [sp, #4]
+ add r0, r6, #0
+ sub r2, r2, r4
+ bl MOD85_021DBD30
+ cmp r7, r0
+ bne _021D9ED0
+ ldr r0, [sp]
+ mov r1, #2
+ str r1, [r0, #0x14]
+ str r4, [r0, #0x18]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9ED0:
+ add r4, r4, #1
+ cmp r4, r5
+ ble _021D9EB2
+_021D9ED6:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021D9E94
+
+ thumb_func_start MOD85_021D9EDC
+MOD85_021D9EDC: ; 0x021D9EDC
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD85_021DA040
+ ldr r1, [r6, #0x10]
+ cmp r1, #0
+ beq _021D9EF2
+ cmp r0, #2
+ blt _021D9F88
+_021D9EF2:
+ cmp r1, #0
+ bne _021D9F18
+ cmp r0, #2
+ bge _021D9F18
+ mov r5, #0
+_021D9EFC:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD85_021DA24C
+ cmp r0, #0
+ bne _021D9F0C
+ str r5, [r6, #0x18]
+ pop {r4, r5, r6, pc}
+_021D9F0C:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9EFC
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+_021D9F18:
+ cmp r1, #0
+ beq _021D9F26
+ cmp r1, #1
+ beq _021D9F46
+ cmp r1, #2
+ beq _021D9F66
+ b _021D9F84
+_021D9F26:
+ mov r5, #1
+_021D9F28:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA2AC
+ cmp r0, #0
+ bne _021D9F3A
+ str r5, [r6, #0x18]
+ pop {r4, r5, r6, pc}
+_021D9F3A:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9F28
+ bl ErrorHandling
+ pop {r4, r5, r6, pc}
+_021D9F46:
+ mov r5, #1
+_021D9F48:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA3F8
+ cmp r0, #0
+ bne _021D9F5A
+ str r5, [r6, #0x18]
+ pop {r4, r5, r6, pc}
+_021D9F5A:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9F48
+ bl ErrorHandling
+ b _021D9F84
+_021D9F66:
+ mov r5, #1
+_021D9F68:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA530
+ cmp r0, #0
+ bne _021D9F7A
+ str r5, [r6, #0x18]
+ pop {r4, r5, r6, pc}
+_021D9F7A:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9F68
+ bl ErrorHandling
+_021D9F84:
+ bl ErrorHandling
+_021D9F88:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9EDC
+
+ thumb_func_start MOD85_021D9F8C
+MOD85_021D9F8C: ; 0x021D9F8C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r0, #0
+ add r0, r4, #0
+ bl MOD85_021DA040
+ ldr r1, [r6, #0x10]
+ cmp r1, #0
+ beq _021D9FA2
+ cmp r0, #2
+ blt _021DA03C
+_021D9FA2:
+ cmp r1, #0
+ bne _021D9FCA
+ cmp r0, #2
+ bge _021D9FCA
+ mov r5, #0
+ mov r7, #2
+_021D9FAE:
+ add r0, r4, #0
+ mov r1, #0
+ sub r2, r7, r5
+ bl MOD85_021DBD30
+ cmp r0, #3
+ beq _021D9FC0
+ str r5, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9FC0:
+ add r5, r5, #1
+ cmp r5, #0x15
+ blt _021D9FAE
+ bl ErrorHandling
+_021D9FCA:
+ ldr r0, [r6, #0x10]
+ cmp r0, #0
+ beq _021D9FDA
+ cmp r0, #1
+ beq _021D9FFA
+ cmp r0, #2
+ beq _021DA01A
+ b _021DA038
+_021D9FDA:
+ mov r5, #0
+_021D9FDC:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA668
+ cmp r0, #0
+ bne _021D9FEE
+ str r5, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9FEE:
+ add r5, r5, #1
+ cmp r5, #0x15
+ blt _021D9FDC
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9FFA:
+ mov r5, #0
+_021D9FFC:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA6B4
+ cmp r0, #0
+ bne _021DA00E
+ str r5, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA00E:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021D9FFC
+ bl ErrorHandling
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA01A:
+ mov r5, #0
+_021DA01C:
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD85_021DA6FC
+ cmp r0, #0
+ bne _021DA02E
+ str r5, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA02E:
+ add r5, r5, #1
+ cmp r5, #0x15
+ ble _021DA01C
+ bl ErrorHandling
+_021DA038:
+ bl ErrorHandling
+_021DA03C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021D9F8C
+
+ thumb_func_start MOD85_021DA040
+MOD85_021DA040: ; 0x021DA040
+ mov r2, #0
+ add r3, r2, #0
+_021DA044:
+ ldr r1, [r0, #0x7c]
+ cmp r1, #1
+ beq _021DA04C
+ add r3, r3, #1
+_021DA04C:
+ add r2, r2, #1
+ add r0, r0, #4
+ cmp r2, #3
+ blt _021DA044
+ add r0, r3, #0
+ bx lr
+ thumb_func_end MOD85_021DA040
+
+ thumb_func_start MOD85_021DA058
+MOD85_021DA058: ; 0x021DA058
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ beq _021DA068
+ cmp r0, #1
+ beq _021DA07E
+ cmp r0, #2
+ beq _021DA090
+ b _021DA0A2
+_021DA068:
+ add r0, r1, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021DA07A
+ add r1, #0x84
+ ldr r0, [r1]
+ cmp r0, #1
+ beq _021DA0A2
+_021DA07A:
+ mov r0, #0
+ bx lr
+_021DA07E:
+ ldr r0, [r1, #0x7c]
+ cmp r0, #1
+ bne _021DA08C
+ add r1, #0x84
+ ldr r0, [r1]
+ cmp r0, #1
+ beq _021DA0A2
+_021DA08C:
+ mov r0, #0
+ bx lr
+_021DA090:
+ ldr r0, [r1, #0x7c]
+ cmp r0, #1
+ bne _021DA09E
+ add r1, #0x80
+ ldr r0, [r1]
+ cmp r0, #1
+ beq _021DA0A2
+_021DA09E:
+ mov r0, #0
+ bx lr
+_021DA0A2:
+ mov r0, #1
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DA058
+
+ thumb_func_start MOD85_021DA0A8
+MOD85_021DA0A8: ; 0x021DA0A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ add r5, r1, #0
+ ldr r0, [sp, #0x20]
+ add r1, r3, #0
+ str r0, [sp, #0x20]
+ add r0, r5, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ ldr r7, [r5, #0x7c]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ mov r3, #0
+ mov ip, r0
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r4, [r0]
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r6, [r0]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r5, [r5, r0]
+ ldr r0, [sp, #0x20]
+ str r3, [r2]
+ str r3, [r1]
+ str r3, [r0]
+ ldr r0, [sp]
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ beq _021DA0F6
+ cmp r0, #1
+ beq _021DA160
+ cmp r0, #2
+ beq _021DA1DC
+ b _021DA240
+_021DA0F6:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ beq _021DA124
+ mov r0, ip
+ cmp r0, #1
+ beq _021DA124
+ cmp r6, r5
+ bne _021DA10E
+ add sp, #8
+ str r6, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA10E:
+ cmp r5, #1
+ bne _021DA11C
+ mov r0, #3
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA11C:
+ mov r0, #1
+ str r0, [r2]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA124:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ beq _021DA148
+ cmp r6, #2
+ bne _021DA140
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #2
+ str r2, [r1]
+ ldr r1, [sp, #0x20]
+ mov r2, #3
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA140:
+ add sp, #8
+ str r6, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA148:
+ cmp r5, #2
+ bne _021DA154
+ add sp, #8
+ str r5, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA154:
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #3
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA160:
+ cmp r7, #1
+ beq _021DA180
+ mov r0, ip
+ cmp r0, #1
+ beq _021DA180
+ cmp r4, r5
+ bne _021DA176
+ add sp, #8
+ str r4, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA176:
+ mov r0, #2
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA180:
+ cmp r7, #1
+ beq _021DA1B0
+ cmp r4, #2
+ bne _021DA192
+ mov r0, #2
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA192:
+ cmp r4, #1
+ bne _021DA1A2
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #2
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1A2:
+ mov r0, #2
+ str r0, [r2]
+ mov r0, #3
+ str r0, [r1]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1B0:
+ cmp r5, #2
+ bne _021DA1BE
+ mov r0, #2
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1BE:
+ cmp r5, #1
+ bne _021DA1CE
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #2
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1CE:
+ mov r0, #2
+ str r0, [r2]
+ mov r0, #3
+ str r0, [r1]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1DC:
+ cmp r7, #1
+ beq _021DA204
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ beq _021DA204
+ cmp r4, r6
+ bne _021DA1F2
+ add sp, #8
+ str r4, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA1F2:
+ cmp r4, #1
+ bne _021DA1FA
+ mov r0, #3
+ b _021DA1FC
+_021DA1FA:
+ mov r0, #1
+_021DA1FC:
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA204:
+ cmp r7, #1
+ beq _021DA222
+ cmp r4, #2
+ bne _021DA216
+ mov r0, #2
+ str r0, [r2]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA216:
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #3
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA222:
+ cmp r6, #2
+ bne _021DA238
+ mov r0, #1
+ str r0, [r2]
+ mov r2, #2
+ str r2, [r1]
+ ldr r1, [sp, #0x20]
+ mov r2, #3
+ str r2, [r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA238:
+ add sp, #8
+ str r6, [r2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA240:
+ bl ErrorHandling
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA0A8
+
+ thumb_func_start MOD85_021DA24C
+MOD85_021DA24C: ; 0x021DA24C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r2, #1
+ mov r1, #0
+ sub r2, r2, r4
+ add r5, r0, #0
+ bl MOD85_021DBD30
+ cmp r0, #3
+ bne _021DA264
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA264:
+ mov r2, #2
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r4
+ bl MOD85_021DBD30
+ cmp r0, #3
+ bne _021DA278
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA278:
+ mov r2, #3
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r4
+ bl MOD85_021DBD30
+ cmp r0, #3
+ bne _021DA28C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA28C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021DA24C
+
+ thumb_func_start MOD85_021DA290
+MOD85_021DA290: ; 0x021DA290
+ push {r3, lr}
+ cmp r2, #3
+ bne _021DA29A
+ mov r0, #1
+ pop {r3, pc}
+_021DA29A:
+ bl MOD85_021DA24C
+ cmp r0, #0
+ bne _021DA2A6
+ mov r0, #1
+ pop {r3, pc}
+_021DA2A6:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA290
+
+ thumb_func_start MOD85_021DA2AC
+MOD85_021DA2AC: ; 0x021DA2AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r4, r1, #0
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r7, [r0]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r6, [r4, r0]
+ mov r1, #1
+ add r0, r2, #0
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ str r2, [sp]
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r1, #1
+ add r5, r0, #0
+ add r0, r4, #0
+ sub r2, r1, r7
+ bl MOD85_021DBD30
+ str r0, [sp, #0x14]
+ mov r0, #1
+ sub r0, r0, r6
+ str r0, [sp, #4]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA2FE
+ ldr r1, [sp, #0x14]
+ cmp r5, r1
+ bne _021DA304
+ cmp r5, r0
+ bne _021DA304
+_021DA2FE:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA304:
+ ldr r2, [sp]
+ mov r3, #2
+ add r0, r4, #0
+ mov r1, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ add r5, r0, #0
+ mov r0, #2
+ sub r0, r0, r7
+ str r0, [sp, #0xc]
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ mov r1, #2
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ sub r2, r1, r6
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA33E
+ ldr r1, [sp, #0x18]
+ cmp r5, r1
+ bne _021DA344
+ cmp r5, r0
+ bne _021DA344
+_021DA33E:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA344:
+ ldr r0, [sp]
+ mov r1, #3
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r2, #3
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ add r7, r0, #0
+ mov r0, #3
+ sub r0, r0, r6
+ str r0, [sp, #0x1c]
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA382
+ cmp r5, r7
+ bne _021DA388
+ cmp r5, r0
+ bne _021DA388
+_021DA382:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA388:
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r5, r0, #0
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ ldr r2, [sp, #0x1c]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA3B6
+ cmp r5, r6
+ bne _021DA3BC
+ cmp r5, r0
+ bne _021DA3BC
+_021DA3B6:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA3BC:
+ ldr r2, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r5, r0, #0
+ ldr r2, [sp, #0xc]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r5, #3
+ beq _021DA3EA
+ cmp r5, r6
+ bne _021DA3F0
+ cmp r5, r0
+ bne _021DA3F0
+_021DA3EA:
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA3F0:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA2AC
+
+ thumb_func_start MOD85_021DA3F8
+MOD85_021DA3F8: ; 0x021DA3F8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r1, #0
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r6, [r0]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r4, [r5, r0]
+ mov r0, #1
+ sub r0, r0, r6
+ str r0, [sp, #0xc]
+ add r7, r2, #0
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r1, #1
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ sub r2, r1, r7
+ bl MOD85_021DBD30
+ str r0, [sp, #0x14]
+ mov r0, #1
+ sub r0, r0, r4
+ str r0, [sp]
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ cmp r2, r1
+ bne _021DA44E
+ add r1, r2, #0
+ cmp r1, r0
+ bne _021DA44E
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA44E:
+ mov r2, #2
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ str r0, [sp, #0x18]
+ mov r0, #2
+ sub r0, r0, r7
+ str r0, [sp, #8]
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ mov r1, #2
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ sub r2, r1, r4
+ bl MOD85_021DBD30
+ ldr r2, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ cmp r2, r1
+ bne _021DA48C
+ add r1, r2, #0
+ cmp r1, r0
+ bne _021DA48C
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA48C:
+ mov r0, #3
+ sub r0, r0, r6
+ str r0, [sp, #4]
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r2, #3
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ str r0, [sp, #0x20]
+ mov r0, #3
+ sub r7, r0, r4
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ ldr r1, [sp, #0x20]
+ cmp r6, r1
+ bne _021DA4CA
+ cmp r6, r0
+ bne _021DA4CA
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA4CA:
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA4FA
+ cmp r4, r0
+ bne _021DA4FA
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA4FA:
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA52A
+ cmp r4, r0
+ bne _021DA52A
+ add sp, #0x24
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DA52A:
+ mov r0, #0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DA3F8
+
+ thumb_func_start MOD85_021DA530
+MOD85_021DA530: ; 0x021DA530
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r1, #0
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r6, [r0]
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r4, [r0]
+ mov r0, #1
+ sub r0, r0, r6
+ str r0, [sp, #0xc]
+ add r7, r2, #0
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r1, #1
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ sub r2, r1, r4
+ bl MOD85_021DBD30
+ str r0, [sp, #0x14]
+ mov r0, #1
+ sub r0, r0, r7
+ str r0, [sp]
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ ldr r2, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ cmp r2, r1
+ bne _021DA586
+ add r1, r2, #0
+ cmp r1, r0
+ bne _021DA586
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA586:
+ mov r2, #2
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ str r0, [sp, #0x18]
+ mov r0, #2
+ sub r0, r0, r4
+ str r0, [sp, #8]
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ mov r1, #2
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ sub r2, r1, r7
+ bl MOD85_021DBD30
+ ldr r2, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ cmp r2, r1
+ bne _021DA5C4
+ add r1, r2, #0
+ cmp r1, r0
+ bne _021DA5C4
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA5C4:
+ mov r0, #3
+ sub r0, r0, r6
+ str r0, [sp, #4]
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ mov r2, #3
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r4
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ mov r0, #3
+ sub r7, r0, r7
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ cmp r6, r4
+ bne _021DA600
+ cmp r6, r0
+ bne _021DA600
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA600:
+ ldr r2, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ add r2, r7, #0
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA630
+ cmp r4, r0
+ bne _021DA630
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA630:
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ ldr r2, [sp, #8]
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA660
+ cmp r4, r0
+ bne _021DA660
+ add sp, #0x20
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA660:
+ mov r0, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA530
+
+ thumb_func_start MOD85_021DA668
+MOD85_021DA668: ; 0x021DA668
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r7, [r0]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ mov r3, #2
+ ldr r6, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r3, r2
+ bl MOD85_021DBD30
+ mov r2, #2
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ mov r1, #2
+ add r7, r0, #0
+ add r0, r5, #0
+ sub r2, r1, r6
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DA6AA
+ cmp r4, r7
+ bne _021DA6AE
+ cmp r4, r0
+ bne _021DA6AE
+_021DA6AA:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA6AE:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA668
+
+ thumb_func_start MOD85_021DA6B4
+MOD85_021DA6B4: ; 0x021DA6B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r2, #0
+ add r2, r5, #0
+ add r2, #0xcc
+ mov r0, #0x45
+ ldr r3, [r2]
+ lsl r0, r0, #2
+ mov r2, #2
+ ldr r6, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r3
+ bl MOD85_021DBD30
+ mov r2, #2
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r7
+ bl MOD85_021DBD30
+ mov r1, #2
+ add r7, r0, #0
+ add r0, r5, #0
+ sub r2, r1, r6
+ bl MOD85_021DBD30
+ cmp r4, r7
+ bne _021DA6F8
+ cmp r4, r0
+ bne _021DA6F8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA6F8:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DA6B4
+
+ thumb_func_start MOD85_021DA6FC
+MOD85_021DA6FC: ; 0x021DA6FC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r2, #0
+ add r2, r5, #0
+ add r2, #0xcc
+ add r0, r5, #0
+ ldr r3, [r2]
+ add r0, #0xf0
+ mov r2, #2
+ ldr r6, [r0]
+ add r0, r5, #0
+ mov r1, #0
+ sub r2, r2, r3
+ bl MOD85_021DBD30
+ mov r2, #2
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ sub r2, r2, r6
+ bl MOD85_021DBD30
+ mov r1, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ sub r2, r1, r7
+ bl MOD85_021DBD30
+ cmp r4, r6
+ bne _021DA740
+ cmp r4, r0
+ bne _021DA740
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA740:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DA6FC
+
+ thumb_func_start MOD85_021DA744
+MOD85_021DA744: ; 0x021DA744
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r4, r6, #0
+ lsl r5, r1, #2
+ add r4, #0x90
+ ldr r0, [r4, r5]
+ mov r1, #0x2a
+ add r0, r0, r2
+ str r0, [r4, r5]
+ ldr r0, [r4, r5]
+ lsl r1, r1, #0x10
+ bl _s32_div_f
+ str r1, [r4, r5]
+ ldr r1, [r4, r5]
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r1, r0, #0xc
+ asr r0, r1, #4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r1, r0, #5
+ mov r0, #0x15
+ sub r1, r0, r1
+ add r0, r6, r5
+ add r0, #0xa8
+ str r1, [r0]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA744
+
+ thumb_func_start MOD85_021DA780
+MOD85_021DA780: ; 0x021DA780
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ add r5, #0x90
+ lsl r4, r1, #2
+ ldr r0, [r5, r4]
+ lsr r6, r0, #0x1f
+ lsl r3, r0, #0xf
+ sub r3, r3, r6
+ mov r0, #0xf
+ ror r3, r0
+ add r0, r6, r3
+ beq _021DA7B4
+ cmp r0, r2
+ bge _021DA7A0
+ add r2, r0, #0
+_021DA7A0:
+ add r0, r7, #0
+ bl MOD85_021DA744
+ ldr r0, [r5, r4]
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0xf
+ sub r1, r1, r2
+ mov r0, #0xf
+ ror r1, r0
+ add r0, r2, r1
+_021DA7B4:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DA780
+
+ thumb_func_start MOD85_021DA7B8
+MOD85_021DA7B8: ; 0x021DA7B8
+ push {r3, lr}
+ bl FUN_0201B9EC
+ mov r1, #0x64
+ bl _u32_div_f
+ add r0, r1, #0
+ pop {r3, pc}
+ thumb_func_end MOD85_021DA7B8
+
+ thumb_func_start MOD85_021DA7C8
+MOD85_021DA7C8: ; 0x021DA7C8
+ ldr r3, [r1]
+ sub r2, r3, r0
+ str r2, [r1]
+ bpl _021DA7D4
+ mov r2, #0
+ str r2, [r1]
+_021DA7D4:
+ cmp r3, r0
+ bhs _021DA7DC
+ mov r0, #1
+ bx lr
+_021DA7DC:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DA7C8
+
+ thumb_func_start MOD85_021DA7E0
+MOD85_021DA7E0: ; 0x021DA7E0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA7B8
+ add r4, #0x88
+ ldr r1, [r4]
+ lsl r2, r1, #2
+ ldr r1, _021DA800 ; =0x021DFC7C
+ ldr r1, [r1, r2]
+ cmp r1, r0
+ bls _021DA7FA
+ mov r0, #1
+ pop {r4, pc}
+_021DA7FA:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DA800: .word 0x021DFC7C
+ thumb_func_end MOD85_021DA7E0
+
+ thumb_func_start MOD85_021DA804
+MOD85_021DA804: ; 0x021DA804
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r1, #0
+ str r1, [r5, #0x74]
+ bl MOD85_021DA7E0
+ cmp r0, #1
+ beq _021DA816
+ b _021DA928
+_021DA816:
+ add r0, r5, #0
+ bl MOD85_021DA7B8
+ add r1, r5, #0
+ str r0, [sp]
+ add r1, #0x88
+ ldr r1, [r1]
+ ldr r0, _021DA92C ; =0x021DFD24
+ lsl r3, r1, #4
+ mov r1, #0x47
+ lsl r1, r1, #4
+ ldr r2, [r5, r1]
+ add r4, r0, r3
+ add r2, r2, #1
+ str r2, [r5, r1]
+ ldrh r0, [r0, r3]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA856
+ ldr r1, [r5, #0x74]
+ mov r0, #8
+ orr r0, r1
+ str r0, [r5, #0x74]
+ mov r0, #0x4a
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA856:
+ ldrh r0, [r4, #2]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA876
+ ldr r1, [r5, #0x74]
+ mov r0, #4
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA930 ; =0x0000049C
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA876:
+ ldrh r0, [r4, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA898
+ ldr r1, [r5, #0x74]
+ mov r0, #0x80
+ orr r0, r1
+ str r0, [r5, #0x74]
+ mov r0, #0x4b
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA898:
+ ldrh r0, [r4, #6]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA8B8
+ ldr r1, [r5, #0x74]
+ mov r0, #0x40
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA934 ; =0x000004AC
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA8B8:
+ ldrh r0, [r4, #8]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA8D8
+ ldr r1, [r5, #0x74]
+ mov r0, #0x20
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA938 ; =0x000004A8
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA8D8:
+ ldrh r0, [r4, #0xa]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ beq _021DA8F8
+ ldr r1, [r5, #0x74]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA93C ; =0x000004A4
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA8F8:
+ ldrh r0, [r4, #0xc]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #0
+ ldr r1, [r5, #0x74]
+ beq _021DA918
+ mov r0, #2
+ orr r0, r1
+ str r0, [r5, #0x74]
+ ldr r0, _021DA940 ; =0x00000498
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA918:
+ mov r0, #1
+ orr r1, r0
+ str r1, [r5, #0x74]
+ ldr r1, _021DA944 ; =0x00000494
+ ldr r2, [r5, r1]
+ add r2, r2, #1
+ str r2, [r5, r1]
+ pop {r3, r4, r5, pc}
+_021DA928:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA92C: .word 0x021DFD24
+_021DA930: .word 0x0000049C
+_021DA934: .word 0x000004AC
+_021DA938: .word 0x000004A8
+_021DA93C: .word 0x000004A4
+_021DA940: .word 0x00000498
+_021DA944: .word 0x00000494
+ thumb_func_end MOD85_021DA804
+
+ thumb_func_start MOD85_021DA948
+MOD85_021DA948: ; 0x021DA948
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA7B8
+ add r4, #0x88
+ ldr r1, [r4]
+ lsl r2, r1, #2
+ ldr r1, _021DA968 ; =0x021DFC34
+ ldr r1, [r1, r2]
+ cmp r0, r1
+ bhs _021DA962
+ mov r0, #1
+ pop {r4, pc}
+_021DA962:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DA968: .word 0x021DFC34
+ thumb_func_end MOD85_021DA948
+
+ thumb_func_start MOD85_021DA96C
+MOD85_021DA96C: ; 0x021DA96C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD85_021DA7B8
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0x48
+ ldr r2, _021DAA1C ; =0x021E0090
+ mul r0, r1
+ add r0, r2, r0
+ str r0, [sp]
+ mov r6, #0
+ add r4, r0, #0
+ add r7, sp, #4
+_021DA98E:
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DA9EE
+ mov r0, #0xc
+ add r1, r6, #0
+ mul r1, r0
+ ldr r0, [sp]
+ add r1, r0, r1
+ ldr r0, [r1, #4]
+ str r0, [r5, #0x50]
+ ldr r0, [r1, #8]
+ str r0, [r5, #0x4c]
+ ldr r0, [r5, #0x50]
+ lsl r1, r0, #2
+ ldr r0, _021DAA20 ; =0x021DFCC4
+ ldr r0, [r0, r1]
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0
+ beq _021DA9C8
+ cmp r0, #1
+ beq _021DA9D4
+ cmp r0, #2
+ beq _021DA9E0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA9C8:
+ ldr r0, _021DAA24 ; =0x00000478
+ add sp, #8
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA9D4:
+ ldr r0, _021DAA28 ; =0x0000047C
+ add sp, #8
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA9E0:
+ mov r0, #0x12
+ lsl r0, r0, #6
+ ldr r1, [r5, r0]
+ add sp, #8
+ add r1, r1, #1
+ str r1, [r5, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA9EE:
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #6
+ blt _021DA98E
+ sub r1, r6, #1
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, [sp]
+ add r1, r0, r2
+ ldr r0, [r1, #4]
+ str r0, [r5, #0x50]
+ ldr r0, [r1, #8]
+ str r0, [r5, #0x4c]
+ ldr r0, [r5, #0x50]
+ lsl r1, r0, #2
+ ldr r0, _021DAA20 ; =0x021DFCC4
+ ldr r0, [r0, r1]
+ str r0, [r5, #0x18]
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DAA1C: .word 0x021E0090
+_021DAA20: .word 0x021DFCC4
+_021DAA24: .word 0x00000478
+_021DAA28: .word 0x0000047C
+ thumb_func_end MOD85_021DA96C
+
+ thumb_func_start MOD85_021DAA2C
+MOD85_021DAA2C: ; 0x021DAA2C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r4, #0
+ bl MOD85_021DA7B8
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ mov r0, #0x48
+ mul r0, r1
+ ldr r2, _021DAABC ; =0x021DFEE0
+ ldr r1, [r6, #0x4c]
+ add r2, r2, r0
+ mov r0, #0x18
+ mul r0, r1
+ add r5, r2, r0
+ str r5, [sp]
+ add r7, sp, #4
+_021DAA54:
+ ldr r0, [r5]
+ add r1, r7, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DAAA4
+ ldr r0, [sp]
+ lsl r1, r4, #3
+ add r0, r0, r1
+ ldr r1, [r0, #4]
+ mov r0, #0x56
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _021DAA80
+ cmp r0, #1
+ beq _021DAA8C
+ cmp r0, #2
+ beq _021DAA98
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAA80:
+ ldr r0, _021DAAC0 ; =0x00000488
+ add sp, #8
+ ldr r1, [r6, r0]
+ add r1, r1, #1
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAA8C:
+ ldr r0, _021DAAC4 ; =0x00000484
+ add sp, #8
+ ldr r1, [r6, r0]
+ add r1, r1, #1
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAA98:
+ ldr r0, _021DAAC8 ; =0x0000048C
+ add sp, #8
+ ldr r1, [r6, r0]
+ add r1, r1, #1
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAAA4:
+ add r4, r4, #1
+ add r5, #8
+ cmp r4, #3
+ blo _021DAA54
+ mov r0, #0x56
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r6, r0]
+ bl ErrorHandling
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DAABC: .word 0x021DFEE0
+_021DAAC0: .word 0x00000488
+_021DAAC4: .word 0x00000484
+_021DAAC8: .word 0x0000048C
+ thumb_func_end MOD85_021DAA2C
+
+ thumb_func_start MOD85_021DAACC
+MOD85_021DAACC: ; 0x021DAACC
+ push {r4, lr}
+ add r1, r0, #0
+ add r1, #0x88
+ ldr r1, [r1]
+ lsl r2, r1, #2
+ ldr r1, _021DAAEC ; =0x021DFC94
+ ldr r4, [r1, r2]
+ bl MOD85_021DA7B8
+ cmp r0, r4
+ bhs _021DAAE6
+ mov r0, #1
+ pop {r4, pc}
+_021DAAE6:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DAAEC: .word 0x021DFC94
+ thumb_func_end MOD85_021DAACC
+
+ thumb_func_start MOD85_021DAAF0
+MOD85_021DAAF0: ; 0x021DAAF0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0x88
+ ldr r1, [r1]
+ ldr r2, _021DABE4 ; =0x021DFD84
+ lsl r1, r1, #4
+ add r5, r2, r1
+ bl MOD85_021DA7B8
+ str r0, [sp]
+ mov r0, #0
+ str r0, [r4, #0x74]
+ add r0, r4, #0
+ bl MOD85_021DAACC
+ cmp r0, #0
+ bne _021DAB7A
+ ldr r0, _021DABE8 ; =0x00000474
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, #0x50]
+ cmp r1, #5
+ bhi _021DAB6A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DAB2E: ; jump table
+ .short _021DAB3A - _021DAB2E - 2 ; case 0
+ .short _021DAB3A - _021DAB2E - 2 ; case 1
+ .short _021DAB3A - _021DAB2E - 2 ; case 2
+ .short _021DAB52 - _021DAB2E - 2 ; case 3
+ .short _021DAB52 - _021DAB2E - 2 ; case 4
+ .short _021DAB52 - _021DAB2E - 2 ; case 5
+_021DAB3A:
+ mov r1, #2
+ ldr r2, [r4, #0x74]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r4, #0x74]
+ add r1, r0, #0
+ add r1, #0x44
+ ldr r1, [r4, r1]
+ add r0, #0x44
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DAB52:
+ mov r1, #1
+ ldr r2, [r4, #0x74]
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r4, #0x74]
+ add r1, r0, #0
+ add r1, #0x40
+ ldr r1, [r4, r1]
+ add r0, #0x40
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DAB6A:
+ bl ErrorHandling
+ mov r0, #2
+ ldr r1, [r4, #0x74]
+ lsl r0, r0, #8
+ orr r0, r1
+ str r0, [r4, #0x74]
+ pop {r3, r4, r5, pc}
+_021DAB7A:
+ ldr r0, [r5]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DAB98
+ ldr r1, [r4, #0x74]
+ mov r0, #4
+ orr r0, r1
+ str r0, [r4, #0x74]
+ ldr r0, _021DABEC ; =0x0000049C
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DAB98:
+ ldr r0, [r5, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DABB6
+ ldr r1, [r4, #0x74]
+ mov r0, #0x40
+ orr r0, r1
+ str r0, [r4, #0x74]
+ ldr r0, _021DABF0 ; =0x000004AC
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DABB6:
+ ldr r0, [r5, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DABD4
+ ldr r1, [r4, #0x74]
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r4, #0x74]
+ ldr r0, _021DABF4 ; =0x000004A4
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+_021DABD4:
+ mov r0, #1
+ str r0, [r4, #0x74]
+ ldr r0, _021DABF8 ; =0x00000494
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_021DABE4: .word 0x021DFD84
+_021DABE8: .word 0x00000474
+_021DABEC: .word 0x0000049C
+_021DABF0: .word 0x000004AC
+_021DABF4: .word 0x000004A4
+_021DABF8: .word 0x00000494
+ thumb_func_end MOD85_021DAAF0
+
+ thumb_func_start MOD85_021DABFC
+MOD85_021DABFC: ; 0x021DABFC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA7B8
+ add r4, #0x88
+ ldr r1, [r4]
+ lsl r2, r1, #2
+ ldr r1, _021DAC1C ; =0x021DFCDC
+ ldr r1, [r1, r2]
+ cmp r0, r1
+ bhs _021DAC16
+ mov r0, #1
+ pop {r4, pc}
+_021DAC16:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DAC1C: .word 0x021DFCDC
+ thumb_func_end MOD85_021DABFC
+
+ thumb_func_start MOD85_021DAC20
+MOD85_021DAC20: ; 0x021DAC20
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD85_021DA7B8
+ add r4, #0x88
+ ldr r1, [r4]
+ lsl r2, r1, #2
+ ldr r1, _021DAC40 ; =0x021DFC64
+ ldr r1, [r1, r2]
+ cmp r0, r1
+ bhs _021DAC3A
+ mov r0, #1
+ pop {r4, pc}
+_021DAC3A:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021DAC40: .word 0x021DFC64
+ thumb_func_end MOD85_021DAC20
+
+ thumb_func_start MOD85_021DAC44
+MOD85_021DAC44: ; 0x021DAC44
+ push {r4, lr}
+ ldr r4, [r0, #0x18]
+ bl MOD85_021DA7B8
+ cmp r0, r4
+ bhs _021DAC54
+ mov r0, #1
+ pop {r4, pc}
+_021DAC54:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAC44
+
+ thumb_func_start MOD85_021DAC58
+MOD85_021DAC58: ; 0x021DAC58
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldr r4, [r5, #0x18]
+ bl MOD85_021DA7B8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ ldr r1, _021DACA8 ; =0x021DFCF4
+ lsl r0, r0, #3
+ add r6, r1, r0
+ ldr r0, [r5, #0x28]
+ cmp r0, #2
+ bne _021DAC7C
+ sub r4, #0xa
+ b _021DAC9A
+_021DAC7C:
+ ldr r0, [r6]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DAC8C
+ sub r4, #0xa
+ b _021DAC9A
+_021DAC8C:
+ ldr r0, [r6, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DAC9A
+ sub r4, r4, #5
+_021DAC9A:
+ cmp r4, #0
+ bge _021DACA0
+ mov r4, #0
+_021DACA0:
+ str r4, [r5, #0x18]
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DACA8: .word 0x021DFCF4
+ thumb_func_end MOD85_021DAC58
+
+ thumb_func_start MOD85_021DACAC
+MOD85_021DACAC: ; 0x021DACAC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x18]
+ bl MOD85_021DA7B8
+ str r0, [sp]
+ add r5, #0x88
+ ldr r1, [r5]
+ mov r0, #0x90
+ mul r0, r1
+ ldr r2, _021DAD08 ; =0x021E0240
+ mov r1, #0
+ add r5, r2, r0
+ add r2, r5, #0
+_021DACC8:
+ ldr r0, [r2]
+ cmp r4, r0
+ blo _021DACF8
+ lsl r4, r1, #4
+ add r0, r5, r4
+ ldr r0, [r0, #4]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DACE2
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DACE2:
+ add r0, r5, r4
+ ldr r0, [r0, #8]
+ add r1, sp, #0
+ bl MOD85_021DA7C8
+ cmp r0, #1
+ bne _021DACF4
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021DACF4:
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021DACF8:
+ add r1, r1, #1
+ add r2, #0x10
+ cmp r1, #9
+ blt _021DACC8
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DAD08: .word 0x021E0240
+ thumb_func_end MOD85_021DACAC
+
+ thumb_func_start MOD85_021DAD0C
+MOD85_021DAD0C: ; 0x021DAD0C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201B9EC
+ mov r1, #6
+ bl _s32_div_f
+ str r1, [r4, #0x34]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DAD0C
+
+ thumb_func_start MOD85_021DAD20
+MOD85_021DAD20: ; 0x021DAD20
+ push {r4, lr}
+ mov r1, #0x12
+ lsl r1, r1, #4
+ add r4, r0, r1
+ mov r1, #0
+ str r1, [r4]
+ str r1, [r4, #4]
+ str r0, [r4, #0xc]
+ ldr r0, _021DAD40 ; =MOD85_021DAD70
+ add r1, r4, #0
+ mov r2, #0x8a
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+ nop
+_021DAD40: .word MOD85_021DAD70
+ thumb_func_end MOD85_021DAD20
+
+ thumb_func_start MOD85_021DAD44
+MOD85_021DAD44: ; 0x021DAD44
+ mov r1, #0x13
+ lsl r1, r1, #4
+ ldr r3, _021DAD50 ; =FUN_0200CAB4
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_021DAD50: .word FUN_0200CAB4
+ thumb_func_end MOD85_021DAD44
+
+ thumb_func_start MOD85_021DAD54
+MOD85_021DAD54: ; 0x021DAD54
+ mov r1, #0x49
+ lsl r1, r1, #2
+ mov r3, #0
+ str r3, [r0, r1]
+ add r2, r1, #4
+ str r3, [r0, r2]
+ mov r2, #1
+ sub r1, r1, #4
+ str r2, [r0, r1]
+ bx lr
+ thumb_func_end MOD85_021DAD54
+
+ thumb_func_start MOD85_021DAD68
+MOD85_021DAD68: ; 0x021DAD68
+ mov r1, #0x49
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ thumb_func_end MOD85_021DAD68
+
+ thumb_func_start MOD85_021DAD70
+MOD85_021DAD70: ; 0x021DAD70
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r0, [r5]
+ ldr r4, [r5, #0xc]
+ cmp r0, #3
+ bhi _021DAE5E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DAD88: ; jump table
+ .short _021DAE5E - _021DAD88 - 2 ; case 0
+ .short _021DAD90 - _021DAD88 - 2 ; case 1
+ .short _021DAD9E - _021DAD88 - 2 ; case 2
+ .short _021DADC0 - _021DAD88 - 2 ; case 3
+_021DAD90:
+ add r0, r5, #0
+ bl MOD85_021DAE70
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DAD9E:
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021DADAC
+ bl MOD85_021DB7B8
+ cmp r0, #1
+ bne _021DAE5E
+_021DADAC:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _021DADBA
+ bl MOD85_021DB7B8
+ cmp r0, #1
+ bne _021DAE5E
+_021DADBA:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+_021DADC0:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ bl MOD85_021DBD54
+ cmp r0, #0
+ bne _021DADD2
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ bne _021DAE20
+_021DADD2:
+ ldr r0, _021DAE60 ; =0x0000062D
+ bl FUN_020054C8
+ ldr r1, [r4, #0x60]
+ ldr r0, [r4, #0x64]
+ add r1, r1, r0
+ ldr r0, _021DAE64 ; =0x0000C350
+ str r1, [r4, #0x60]
+ cmp r1, r0
+ blt _021DADE8
+ str r0, [r4, #0x60]
+_021DADE8:
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _021DADF6
+ ldr r1, [r4, #0x14]
+ ldr r0, [r4, #0x64]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+_021DADF6:
+ mov r0, #0
+ str r0, [r4, #0x64]
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ beq _021DAE08
+ bl FUN_02064520
+ mov r0, #0
+ str r0, [r5, #0x14]
+_021DAE08:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _021DAE16
+ bl FUN_02064520
+ mov r0, #0
+ str r0, [r5, #0x18]
+_021DAE16:
+ mov r0, #1
+ str r0, [r5, #4]
+ mov r0, #0
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+_021DAE20:
+ ldr r1, _021DAE68 ; =0x021C48B8
+ mov r0, #3
+ ldr r2, [r1, #0x44]
+ ldr r1, _021DAE6C ; =0x00000C03
+ tst r1, r2
+ beq _021DAE2E
+ mov r0, #1
+_021DAE2E:
+ ldr r1, [r5, #8]
+ add r1, r1, #1
+ str r1, [r5, #8]
+ tst r0, r1
+ bne _021DAE5E
+ ldr r0, [r4, #0x64]
+ sub r0, r0, #1
+ str r0, [r4, #0x64]
+ ldr r0, [r4, #0x60]
+ add r1, r0, #1
+ ldr r0, _021DAE64 ; =0x0000C350
+ str r1, [r4, #0x60]
+ cmp r1, r0
+ blt _021DAE4C
+ str r0, [r4, #0x60]
+_021DAE4C:
+ ldr r0, _021DAE60 ; =0x0000062D
+ bl FUN_020054C8
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _021DAE5E
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+_021DAE5E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DAE60: .word 0x0000062D
+_021DAE64: .word 0x0000C350
+_021DAE68: .word 0x021C48B8
+_021DAE6C: .word 0x00000C03
+ thumb_func_end MOD85_021DAD70
+
+ thumb_func_start MOD85_021DAE70
+MOD85_021DAE70: ; 0x021DAE70
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r7, [r5, #0xc]
+ ldr r6, [r7, #0x48]
+ cmp r6, #0
+ bne _021DAE80
+ bl ErrorHandling
+_021DAE80:
+ mov r4, #0
+_021DAE82:
+ mov r0, #1
+ tst r0, r6
+ beq _021DAEB4
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ bne _021DAE9C
+ ldr r2, [r7, #0x64]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD85_021DB784
+ str r0, [r5, #0x14]
+ b _021DAEB4
+_021DAE9C:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ bne _021DAEB0
+ ldr r2, [r7, #0x64]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD85_021DB784
+ str r0, [r5, #0x18]
+ b _021DAEB4
+_021DAEB0:
+ bl ErrorHandling
+_021DAEB4:
+ add r4, r4, #1
+ lsr r6, r6, #1
+ cmp r4, #5
+ blt _021DAE82
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DAE70
+
+ thumb_func_start MOD85_021DAEC0
+MOD85_021DAEC0: ; 0x021DAEC0
+ push {r4, lr}
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ add r4, r0, r1
+ mov r1, #0
+ str r1, [r4]
+ str r1, [r4, #4]
+ str r0, [r4, #0x20]
+ ldr r0, _021DAEE0 ; =MOD85_021DAF80
+ add r1, r4, #0
+ mov r2, #0x84
+ bl FUN_0200CA44
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+ nop
+_021DAEE0: .word MOD85_021DAF80
+ thumb_func_end MOD85_021DAEC0
+
+ thumb_func_start MOD85_021DAEE4
+MOD85_021DAEE4: ; 0x021DAEE4
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r3, _021DAEF0 ; =FUN_0200CAB4
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_021DAEF0: .word FUN_0200CAB4
+ thumb_func_end MOD85_021DAEE4
+
+ thumb_func_start MOD85_021DAEF4
+MOD85_021DAEF4: ; 0x021DAEF4
+ mov r2, #0x4f
+ lsl r2, r2, #2
+ add r2, r0, r2
+ str r1, [r2]
+ mov r0, #0
+ str r0, [r2, #4]
+ str r0, [r2, #8]
+ str r0, [r2, #0x10]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DAEF4
+
+ thumb_func_start MOD85_021DAF08
+MOD85_021DAF08: ; 0x021DAF08
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ thumb_func_end MOD85_021DAF08
+
+ thumb_func_start MOD85_021DAF10
+MOD85_021DAF10: ; 0x021DAF10
+ push {r4, lr}
+ mov r1, #0x52
+ add r4, r0, #0
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r4, r1]
+ bl MOD85_021DD984
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD85_021DDB10
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD85_021DDCAC
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD85_021DDE10
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAF10
+
+ thumb_func_start MOD85_021DAF4C
+MOD85_021DAF4C: ; 0x021DAF4C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x52
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, #0x2c
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_02064520
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAF4C
+
+ thumb_func_start MOD85_021DAF80
+MOD85_021DAF80: ; 0x021DAF80
+ push {r3, r4, r5, lr}
+ ldr r4, _021DAF9C ; =0x021DEED0
+ add r5, r1, #0
+_021DAF86:
+ ldr r1, [r5]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ ldr r1, [r5, #4]
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ blx r1
+ cmp r0, #1
+ beq _021DAF86
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DAF9C: .word 0x021DEED0
+ thumb_func_end MOD85_021DAF80
+
+ thumb_func_start MOD85_021DAFA0
+MOD85_021DAFA0: ; 0x021DAFA0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x18]
+ bl MOD85_021DC4B4
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAFA0
+
+ thumb_func_start MOD85_021DAFB8
+MOD85_021DAFB8: ; 0x021DAFB8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #0
+ bne _021DAFCA
+ mov r0, #0
+ pop {r4, pc}
+_021DAFCA:
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAFB8
+
+ thumb_func_start MOD85_021DAFDC
+MOD85_021DAFDC: ; 0x021DAFDC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #0
+ bne _021DAFEE
+ mov r0, #0
+ pop {r4, pc}
+_021DAFEE:
+ ldr r0, [r4, #0x28]
+ mov r1, #5
+ bl MOD85_021DC4EC
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DAFDC
+
+ thumb_func_start MOD85_021DB004
+MOD85_021DB004: ; 0x021DB004
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DB004
+
+ thumb_func_start MOD85_021DB008
+MOD85_021DB008: ; 0x021DB008
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB008
+
+ thumb_func_start MOD85_021DB020
+MOD85_021DB020: ; 0x021DB020
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB03E
+ ldr r0, [r4, #0x28]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB03E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB020
+
+ thumb_func_start MOD85_021DB044
+MOD85_021DB044: ; 0x021DB044
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB044
+
+ thumb_func_start MOD85_021DB05C
+MOD85_021DB05C: ; 0x021DB05C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB082
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x1c]
+ bl MOD85_021DCEC0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB082:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB05C
+
+ thumb_func_start MOD85_021DB088
+MOD85_021DB088: ; 0x021DB088
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB0AC
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl MOD85_021DC500
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB0AC:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB088
+
+ thumb_func_start MOD85_021DB0B0
+MOD85_021DB0B0: ; 0x021DB0B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB0CE
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB0CE:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB0B0
+
+ thumb_func_start MOD85_021DB0D4
+MOD85_021DB0D4: ; 0x021DB0D4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB0D4
+
+ thumb_func_start MOD85_021DB0F4
+MOD85_021DB0F4: ; 0x021DB0F4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB124
+ ldr r0, [r4, #0x30]
+ bl FUN_02064520
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD85_021DC500
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB124:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB0F4
+
+ thumb_func_start MOD85_021DB128
+MOD85_021DB128: ; 0x021DB128
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB144
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB144:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB128
+
+ thumb_func_start MOD85_021DB148
+MOD85_021DB148: ; 0x021DB148
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB166
+ ldr r0, [r4, #0x28]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB166:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB148
+
+ thumb_func_start MOD85_021DB16C
+MOD85_021DB16C: ; 0x021DB16C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ mov r1, #3
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DD54C
+ str r0, [r4, #0x34]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r1, [r4, #4]
+ add r1, r1, #1
+ str r1, [r4, #4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB16C
+
+ thumb_func_start MOD85_021DB18C
+MOD85_021DB18C: ; 0x021DB18C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #0x30
+ blt _021DB1B2
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0x23
+ bl FUN_02005578
+ ldr r0, [r4, #0x30]
+ mov r1, #4
+ bl MOD85_021DCEF8
+_021DB1B2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB18C
+
+ thumb_func_start MOD85_021DB1B8
+MOD85_021DB1B8: ; 0x021DB1B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ bl MOD85_021DD578
+ cmp r0, #1
+ bne _021DB1E2
+ ldr r0, [r4, #0x30]
+ mov r1, #3
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #0x34]
+ bl FUN_02064520
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #1
+ str r0, [r4, #8]
+_021DB1E2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB1B8
+
+ thumb_func_start MOD85_021DB1E8
+MOD85_021DB1E8: ; 0x021DB1E8
+ push {r3, lr}
+ ldr r1, [r0, #0x20]
+ ldr r3, _021DB210 ; =0x021DEF04
+ ldr r2, [r1, #0x34]
+ mov r1, #0x18
+ mul r1, r2
+ add r2, r3, r1
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+ mov r1, #0
+ str r1, [r0, #0x14]
+ lsl r1, r1, #2
+ add r1, r2, r1
+ ldr r0, [r0, #0x30]
+ ldr r1, [r1, #0xc]
+ bl MOD85_021DCEF8
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021DB210: .word 0x021DEF04
+ thumb_func_end MOD85_021DB1E8
+
+ thumb_func_start MOD85_021DB214
+MOD85_021DB214: ; 0x021DB214
+ push {r3, r4, r5, lr}
+ ldr r2, [r0, #0x20]
+ mov r1, #0
+ add r4, r1, #0
+ add r5, r2, #0
+_021DB21E:
+ ldr r3, [r5, #0x7c]
+ cmp r3, #1
+ beq _021DB226
+ add r1, r1, #1
+_021DB226:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021DB21E
+ ldr r3, [r0, #0x14]
+ cmp r3, #2
+ bge _021DB250
+ cmp r3, r1
+ beq _021DB250
+ ldr r3, [r2, #0x34]
+ mov r2, #0x18
+ ldr r4, _021DB254 ; =0x021DEF04
+ str r1, [r0, #0x14]
+ mul r2, r3
+ add r2, r4, r2
+ lsl r1, r1, #2
+ add r1, r2, r1
+ ldr r0, [r0, #0x30]
+ ldr r1, [r1, #0xc]
+ bl MOD85_021DCEF8
+_021DB250:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DB254: .word 0x021DEF04
+ thumb_func_end MOD85_021DB214
+
+ thumb_func_start MOD85_021DB258
+MOD85_021DB258: ; 0x021DB258
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ mov r1, #3
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB258
+
+ thumb_func_start MOD85_021DB270
+MOD85_021DB270: ; 0x021DB270
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DAF4C
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB270
+
+ thumb_func_start MOD85_021DB294
+MOD85_021DB294: ; 0x021DB294
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB2C4
+ ldr r0, [r4, #0x30]
+ bl FUN_02064520
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD85_021DC500
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB2C4:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB294
+
+ thumb_func_start MOD85_021DB2C8
+MOD85_021DB2C8: ; 0x021DB2C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB2F8
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DDA30
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DDBBC
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl MOD85_021DDF40
+ ldr r0, [r4, #0x20]
+ mov r1, #1
+ bl MOD85_021DDF40
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB2F8:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB2C8
+
+ thumb_func_start MOD85_021DB2FC
+MOD85_021DB2FC: ; 0x021DB2FC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ add r0, r0, #1
+ str r0, [r4, #0x10]
+ cmp r0, #0x2d
+ blt _021DB31C
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB31C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB2FC
+
+ thumb_func_start MOD85_021DB320
+MOD85_021DB320: ; 0x021DB320
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB33E
+ ldr r0, [r4, #0x28]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB33E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB320
+
+ thumb_func_start MOD85_021DB344
+MOD85_021DB344: ; 0x021DB344
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ mov r1, #4
+ bl MOD85_021DCEF8
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB344
+
+ thumb_func_start MOD85_021DB360
+MOD85_021DB360: ; 0x021DB360
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ mov r1, #8
+ bl MOD85_021DCEF8
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB360
+
+ thumb_func_start MOD85_021DB37C
+MOD85_021DB37C: ; 0x021DB37C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ mov r1, #6
+ bl MOD85_021DC4EC
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB37C
+
+ thumb_func_start MOD85_021DB398
+MOD85_021DB398: ; 0x021DB398
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl MOD85_021DCEF8
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB398
+
+ thumb_func_start MOD85_021DB3BC
+MOD85_021DB3BC: ; 0x021DB3BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB3F0
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ ldr r0, [r4, #0x30]
+ bl FUN_02064520
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD85_021DC500
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl MOD85_021DC4EC
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB3F0:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB3BC
+
+ thumb_func_start MOD85_021DB3F4
+MOD85_021DB3F4: ; 0x021DB3F4
+ push {r3, lr}
+ ldr r1, [r0, #0x10]
+ add r1, r1, #1
+ str r1, [r0, #0x10]
+ cmp r1, #0x1e
+ blt _021DB412
+ mov r1, #0
+ str r1, [r0, #0x10]
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+ ldr r0, [r0, #0x28]
+ mov r1, #2
+ bl MOD85_021DC4EC
+_021DB412:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB3F4
+
+ thumb_func_start MOD85_021DB418
+MOD85_021DB418: ; 0x021DB418
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD85_021DC520
+ cmp r0, #1
+ bne _021DB442
+ ldr r0, [r4, #0x20]
+ bl MOD85_021DCBE0
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x1c]
+ bl MOD85_021DCEC0
+ str r0, [r4, #0x30]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB442:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB418
+
+ thumb_func_start MOD85_021DB448
+MOD85_021DB448: ; 0x021DB448
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB46C
+ ldr r0, [r4, #0x30]
+ mov r1, #1
+ bl MOD85_021DCEF8
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl MOD85_021DC500
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB46C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DB448
+
+ thumb_func_start MOD85_021DB470
+MOD85_021DB470: ; 0x021DB470
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ bl MOD85_021DCF0C
+ cmp r0, #1
+ bne _021DB48E
+ ldr r0, [r4, #0x2c]
+ bl FUN_02064520
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DB48E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB470
+
+ thumb_func_start MOD85_021DB494
+MOD85_021DB494: ; 0x021DB494
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ mov r1, #0x61
+ add r5, r0, #0
+ lsl r1, r1, #2
+ add r4, r5, r1
+ mov r1, #3
+ mov r2, #0
+ str r5, [r4]
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ ldr r0, [sp]
+ mov r1, #1
+ add r2, r4, #4
+ bl MOD85_021DB604
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #2
+ add r2, #0xa4
+ bl MOD85_021DB604
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #3
+ add r2, #0xc4
+ bl MOD85_021DB604
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #3
+ add r2, #0xe4
+ bl MOD85_021DB604
+ mov r2, #0x41
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #4
+ add r2, r4, r2
+ bl MOD85_021DB604
+ mov r2, #0x49
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #4
+ add r2, r4, r2
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, #0x24
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #6
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, #0x44
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #7
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ add r2, r4, #0
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, #0x64
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x4a
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ mov r2, #0x51
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x4b
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r6, r0, #0
+ bl FUN_020B0138
+ mov r2, #0x59
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ mov r2, #0x61
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl MOD85_021D8144
+ add r1, sp, #0
+ add r5, r0, #0
+ bl FUN_020B0138
+ mov r2, #0x69
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ mov r2, #0x71
+ lsl r2, r2, #2
+ ldr r0, [sp]
+ mov r1, #0
+ add r2, r4, r2
+ bl MOD85_021DB604
+ add r0, r5, #0
+ bl FUN_02016A18
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD85_021DB494
+
+ thumb_func_start MOD85_021DB600
+MOD85_021DB600: ; 0x021DB600
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DB600
+
+ thumb_func_start MOD85_021DB604
+MOD85_021DB604: ; 0x021DB604
+ ldr r3, [r0, #0xc]
+ lsl r0, r1, #5
+ add r3, r3, r0
+ mov r1, #0
+_021DB60C:
+ ldrh r0, [r3]
+ add r1, r1, #1
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ cmp r1, #0x10
+ blt _021DB60C
+ bx lr
+ thumb_func_end MOD85_021DB604
+
+ thumb_func_start MOD85_021DB61C
+MOD85_021DB61C: ; 0x021DB61C
+ push {r0, r1, r2, r3}
+ push {r3, r4, r5, r6}
+ add r1, r2, #0
+ add r0, r3, #0
+ add r2, sp, #0x10
+ add r3, sp, #0x14
+ cmp r1, #0x10
+ bls _021DB62E
+ mov r1, #0x10
+_021DB62E:
+ ldrh r4, [r2]
+ ldrh r3, [r3]
+ lsl r2, r4, #0x16
+ lsr r6, r2, #0x1b
+ lsl r2, r4, #0x1b
+ lsr r5, r2, #0x1b
+ lsl r2, r4, #0x11
+ lsl r4, r3, #0x11
+ lsr r2, r2, #0x1b
+ lsr r4, r4, #0x1b
+ sub r4, r4, r2
+ mul r4, r1
+ asr r4, r4, #4
+ add r2, r2, r4
+ lsl r4, r2, #0xa
+ lsl r2, r3, #0x1b
+ lsl r3, r3, #0x16
+ lsr r3, r3, #0x1b
+ lsr r2, r2, #0x1b
+ sub r3, r3, r6
+ sub r2, r2, r5
+ mul r2, r1
+ mul r3, r1
+ asr r1, r3, #4
+ asr r2, r2, #4
+ add r1, r6, r1
+ add r2, r5, r2
+ lsl r1, r1, #5
+ orr r1, r2
+ orr r1, r4
+ strh r1, [r0]
+ pop {r3, r4, r5, r6}
+ add sp, #0x10
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DB61C
+
+ thumb_func_start MOD85_021DB674
+MOD85_021DB674: ; 0x021DB674
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ str r2, [sp]
+ add r6, r3, #0
+ mov r7, #0
+_021DB680:
+ ldrh r0, [r5]
+ ldrh r1, [r4]
+ ldr r2, [sp]
+ add r3, r6, #0
+ bl MOD85_021DB61C
+ add r7, r7, #1
+ add r6, r6, #2
+ add r4, r4, #2
+ add r5, r5, #2
+ cmp r7, #0x10
+ blt _021DB680
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB674
+
+ thumb_func_start MOD85_021DB69C
+MOD85_021DB69C: ; 0x021DB69C
+ push {r4, lr}
+ add r4, r2, #0
+ lsl r0, r1, #0x18
+ add r1, r3, #0
+ lsl r3, r4, #0x15
+ lsr r0, r0, #0x18
+ mov r2, #0x20
+ lsr r3, r3, #0x10
+ bl FUN_02017FB4
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB69C
+
+ thumb_func_start MOD85_021DB6B4
+MOD85_021DB6B4: ; 0x021DB6B4
+ push {r4, lr}
+ add r3, r1, #0
+ lsl r4, r3, #2
+ ldr r2, _021DB6D0 ; =0x021E05C0
+ lsl r3, r3, #5
+ ldr r2, [r2, r4]
+ mov r4, #0x8a
+ lsl r4, r4, #2
+ add r4, r0, r4
+ mov r1, #1
+ add r3, r4, r3
+ bl MOD85_021DB69C
+ pop {r4, pc}
+ .align 2, 0
+_021DB6D0: .word 0x021E05C0
+ thumb_func_end MOD85_021DB6B4
+
+ thumb_func_start MOD85_021DB6D4
+MOD85_021DB6D4: ; 0x021DB6D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r2, #0x61
+ lsl r2, r2, #2
+ ldr r0, _021DB710 ; =0x021E05C0
+ lsl r4, r1, #2
+ ldr r6, [r0, r4]
+ add r0, r2, #0
+ add r3, r7, r2
+ add r0, #0x60
+ add r4, r3, r0
+ add r0, r3, #0
+ sub r2, #0x40
+ lsl r5, r1, #5
+ add r1, r3, r2
+ add r0, #0xa4
+ add r0, r0, r5
+ add r1, r1, r5
+ mov r2, #0xa
+ add r3, r4, r5
+ bl MOD85_021DB674
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r6, #0
+ add r3, r4, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB710: .word 0x021E05C0
+ thumb_func_end MOD85_021DB6D4
+
+ thumb_func_start MOD85_021DB714
+MOD85_021DB714: ; 0x021DB714
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r2, #0x61
+ lsl r2, r2, #2
+ ldr r0, _021DB750 ; =0x021E05C0
+ lsl r4, r1, #2
+ ldr r6, [r0, r4]
+ add r0, r2, #0
+ add r3, r7, r2
+ add r0, #0x60
+ add r4, r3, r0
+ add r0, r3, #0
+ sub r2, #0x40
+ lsl r5, r1, #5
+ add r1, r3, r2
+ add r0, #0xa4
+ add r0, r0, r5
+ add r1, r1, r5
+ mov r2, #0xc
+ add r3, r4, r5
+ bl MOD85_021DB674
+ add r0, r7, #0
+ mov r1, #1
+ add r2, r6, #0
+ add r3, r4, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB750: .word 0x021E05C0
+ thumb_func_end MOD85_021DB714
+
+ thumb_func_start MOD85_021DB754
+MOD85_021DB754: ; 0x021DB754
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021DB75A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DB6B4
+ add r4, r4, #1
+ cmp r4, #5
+ blt _021DB75A
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB754
+
+ thumb_func_start MOD85_021DB76C
+MOD85_021DB76C: ; 0x021DB76C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021DB772:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD85_021DB6D4
+ add r4, r4, #1
+ cmp r4, #5
+ blt _021DB772
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB76C
+
+ thumb_func_start MOD85_021DB784
+MOD85_021DB784: ; 0x021DB784
+ push {r4, lr}
+ sub sp, #0x20
+ add r4, sp, #0x14
+ mov r3, #0
+ str r3, [r4]
+ str r3, [r4, #4]
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r3, [r4, #8]
+ str r0, [sp, #0x10]
+ add r1, sp, #8
+ str r1, [sp]
+ mov r1, #0x8f
+ str r1, [sp, #4]
+ ldr r1, _021DB7B0 ; =0x0000044C
+ add r2, r4, #0
+ ldr r0, [r0, r1]
+ ldr r1, _021DB7B4 ; =0x021DEE0C
+ bl FUN_020644E4
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+_021DB7B0: .word 0x0000044C
+_021DB7B4: .word 0x021DEE0C
+ thumb_func_end MOD85_021DB784
+
+ thumb_func_start MOD85_021DB7B8
+MOD85_021DB7B8: ; 0x021DB7B8
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #0xc]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB7B8
+
+ thumb_func_start MOD85_021DB7C4
+MOD85_021DB7C4: ; 0x021DB7C4
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ ldr r1, [r0, #8]
+ str r1, [r4, #0x1c]
+ ldr r1, [r0]
+ str r1, [r4, #0x10]
+ ldr r0, [r0, #4]
+ str r0, [r4, #0x14]
+ mov r0, #0x61
+ ldr r1, [r4, #0x1c]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0x20]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB7C4
+
+ thumb_func_start MOD85_021DB7E8
+MOD85_021DB7E8: ; 0x021DB7E8
+ ldr r3, _021DB7F0 ; =MOD85_021DB6B4
+ ldr r0, [r1, #0x1c]
+ ldr r1, [r1, #0x10]
+ bx r3
+ .align 2, 0
+_021DB7F0: .word MOD85_021DB6B4
+ thumb_func_end MOD85_021DB7E8
+
+ thumb_func_start MOD85_021DB7F4
+MOD85_021DB7F4: ; 0x021DB7F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ ldr r2, [r4, #0x10]
+ ldr r0, _021DB958 ; =0x021E05C0
+ lsl r1, r2, #2
+ ldr r0, [r0, r1]
+ lsl r5, r2, #5
+ mov r1, #0x79
+ ldr r2, [r4, #0x20]
+ lsl r1, r1, #2
+ add r6, r2, r1
+ sub r1, #0xa0
+ str r0, [sp]
+ add r0, r2, #0
+ add r1, r2, r1
+ ldr r2, [r4]
+ add r0, #0xa4
+ cmp r2, #4
+ bls _021DB81C
+ b _021DB956
+_021DB81C:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021DB828: ; jump table
+ .short _021DB832 - _021DB828 - 2 ; case 0
+ .short _021DB874 - _021DB828 - 2 ; case 1
+ .short _021DB8D8 - _021DB828 - 2 ; case 2
+ .short _021DB91A - _021DB828 - 2 ; case 3
+ .short _021DB956 - _021DB828 - 2 ; case 4
+_021DB832:
+ mov r7, #1
+ ldr r2, [r4, #0x18]
+ lsl r7, r7, #0xe
+ add r3, r2, r7
+ lsl r2, r7, #2
+ str r3, [r4, #0x18]
+ cmp r3, r2
+ ble _021DB844
+ str r2, [r4, #0x18]
+_021DB844:
+ ldr r2, [r4, #0x18]
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ asr r2, r3, #0xc
+ cmp r2, #0x10
+ bne _021DB858
+ ldr r3, [r4]
+ add r3, r3, #1
+ str r3, [r4]
+_021DB858:
+ lsl r2, r2, #0x10
+ add r0, r0, r5
+ add r1, r1, r5
+ lsr r2, r2, #0x10
+ add r3, r6, r5
+ bl MOD85_021DB674
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp]
+ mov r1, #1
+ add r3, r6, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB874:
+ mov r2, #1
+ ldr r3, [r4, #0x18]
+ lsl r2, r2, #0xe
+ sub r2, r3, r2
+ str r2, [r4, #0x18]
+ bpl _021DB884
+ mov r2, #0
+ str r2, [r4, #0x18]
+_021DB884:
+ ldr r2, [r4, #0x18]
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ asr r2, r3, #0xc
+ bne _021DB8BC
+ ldr r3, [r4, #4]
+ add r3, r3, #1
+ str r3, [r4, #4]
+ cmp r3, #4
+ blt _021DB8B6
+ ldr r3, [r4, #0x14]
+ cmp r3, #0
+ beq _021DB8AC
+ ldr r3, [r4]
+ add r3, r3, #1
+ str r3, [r4]
+ mov r3, #1
+ str r3, [r4, #0xc]
+ b _021DB8BC
+_021DB8AC:
+ mov r3, #4
+ str r3, [r4]
+ mov r3, #1
+ str r3, [r4, #0xc]
+ b _021DB8BC
+_021DB8B6:
+ ldr r3, [r4]
+ sub r3, r3, #1
+ str r3, [r4]
+_021DB8BC:
+ lsl r2, r2, #0x10
+ add r0, r0, r5
+ add r1, r1, r5
+ lsr r2, r2, #0x10
+ add r3, r6, r5
+ bl MOD85_021DB674
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp]
+ mov r1, #1
+ add r3, r6, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB8D8:
+ mov r7, #2
+ ldr r2, [r4, #0x18]
+ lsl r7, r7, #0xe
+ add r3, r2, r7
+ lsl r2, r7, #1
+ str r3, [r4, #0x18]
+ cmp r3, r2
+ ble _021DB8EA
+ str r2, [r4, #0x18]
+_021DB8EA:
+ ldr r2, [r4, #0x18]
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ asr r2, r3, #0xc
+ cmp r2, #0x10
+ bne _021DB8FE
+ ldr r3, [r4]
+ add r3, r3, #1
+ str r3, [r4]
+_021DB8FE:
+ lsl r2, r2, #0x10
+ add r0, r0, r5
+ add r1, r1, r5
+ lsr r2, r2, #0x10
+ add r3, r6, r5
+ bl MOD85_021DB674
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp]
+ mov r1, #1
+ add r3, r6, r5
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB91A:
+ mov r2, #2
+ ldr r3, [r4, #0x18]
+ lsl r2, r2, #0xe
+ sub r2, r3, r2
+ str r2, [r4, #0x18]
+ bpl _021DB92A
+ mov r2, #0
+ str r2, [r4, #0x18]
+_021DB92A:
+ ldr r2, [r4, #0x18]
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ asr r2, r3, #0xc
+ bne _021DB93C
+ ldr r3, [r4]
+ sub r3, r3, #1
+ str r3, [r4]
+_021DB93C:
+ lsl r2, r2, #0x10
+ add r0, r0, r5
+ add r1, r1, r5
+ lsr r2, r2, #0x10
+ add r3, r6, r5
+ bl MOD85_021DB674
+ ldr r0, [r4, #0x1c]
+ ldr r2, [sp]
+ mov r1, #1
+ add r3, r6, r5
+ bl MOD85_021DB69C
+_021DB956:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DB958: .word 0x021E05C0
+ thumb_func_end MOD85_021DB7F4
+
+ thumb_func_start MOD85_021DB95C
+MOD85_021DB95C: ; 0x021DB95C
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ add r1, sp, #8
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021DB97A
+ bl ErrorHandling
+_021DB97A:
+ str r4, [sp]
+ mov r0, #0x8f
+ str r0, [sp, #4]
+ ldr r0, _021DB998 ; =0x0000044C
+ ldr r1, _021DB99C ; =0x021DEE5C
+ ldr r0, [r4, r0]
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_020644E4
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+_021DB998: .word 0x0000044C
+_021DB99C: .word 0x021DEE5C
+ thumb_func_end MOD85_021DB95C
+
+ thumb_func_start MOD85_021DB9A0
+MOD85_021DB9A0: ; 0x021DB9A0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021DB9BA
+ bl FUN_02064520
+ mov r0, #0x4d
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_021DB9BA:
+ add r0, r4, #0
+ bl MOD85_021DB754
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DB9A0
+
+ thumb_func_start MOD85_021DB9C4
+MOD85_021DB9C4: ; 0x021DB9C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ ldr r1, _021DBADC ; =0x021DF094
+ lsl r0, r0, #4
+ add r4, r1, r0
+ mov r0, #1
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021DBAE0 ; =0x021E05C0
+ add r5, r6, #0
+ str r0, [sp]
+ mov r7, #0
+_021DB9E0:
+ ldr r1, [r4]
+ ldr r0, [sp, #0xc]
+ tst r0, r1
+ beq _021DBA6C
+ ldr r0, [r6, #8]
+ cmp r0, #0
+ bne _021DB9F8
+ ldr r0, [r4, #4]
+ str r0, [r5, #0x14]
+ mov r0, #0
+ str r0, [sp, #8]
+ b _021DBA2C
+_021DB9F8:
+ ldr r1, [r4, #4]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ ldr r1, [r5, #0x14]
+ bge _021DBA18
+ ldr r0, [r4, #0xc]
+ add r1, r1, r0
+ str r1, [r5, #0x14]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ blt _021DBA12
+ str r0, [r5, #0x14]
+ b _021DBA2C
+_021DBA12:
+ mov r0, #0
+ str r0, [sp, #8]
+ b _021DBA2C
+_021DBA18:
+ ldr r0, [r4, #0xc]
+ sub r1, r1, r0
+ str r1, [r5, #0x14]
+ ldr r0, [r4, #8]
+ cmp r1, r0
+ bgt _021DBA28
+ str r0, [r5, #0x14]
+ b _021DBA2C
+_021DBA28:
+ mov r0, #0
+ str r0, [sp, #8]
+_021DBA2C:
+ ldr r0, [sp]
+ mov r2, #0x51
+ ldr r0, [r0]
+ ldr r1, [r6, #0x2c]
+ str r0, [sp, #4]
+ mov r0, #0x79
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ add r0, r1, #0
+ lsl r2, r2, #2
+ add r1, r1, r2
+ ldr r3, [r5, #0x14]
+ add r0, #0xa4
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ ldr r3, [sp, #0x10]
+ lsl r2, r2, #4
+ add r0, r0, r7
+ add r1, r1, r7
+ lsr r2, r2, #0x10
+ add r3, r3, r7
+ bl MOD85_021DB674
+ ldr r3, [sp, #0x10]
+ ldr r0, [r6, #0x28]
+ ldr r2, [sp, #4]
+ mov r1, #1
+ add r3, r3, r7
+ bl MOD85_021DB69C
+_021DBA6C:
+ ldr r0, [sp]
+ add r5, r5, #4
+ add r0, r0, #4
+ str r0, [sp]
+ ldr r0, [sp, #0xc]
+ add r7, #0x20
+ lsl r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #0x10
+ bls _021DB9E0
+ cmp r0, #0x20
+ bhi _021DBAB6
+ add r5, r6, #0
+ mov r7, #1
+ add r5, #0xc
+ mov r1, #0
+ lsl r7, r7, #0xc
+ mov r0, #0x20
+_021DBA90:
+ ldr r2, [r4]
+ tst r2, r0
+ beq _021DBAAC
+ ldr r2, [r5]
+ add r2, r2, r7
+ str r2, [r5]
+ ldr r3, [r6, #0xc]
+ ldr r2, [r4, #4]
+ cmp r3, r2
+ blt _021DBAA8
+ str r1, [r6, #0xc]
+ b _021DBAAC
+_021DBAA8:
+ mov r2, #0
+ str r2, [sp, #8]
+_021DBAAC:
+ ldr r2, [sp, #0xc]
+ lsl r2, r2, #1
+ str r2, [sp, #0xc]
+ cmp r2, #0x20
+ bls _021DBA90
+_021DBAB6:
+ mov r0, #1
+ str r0, [r6, #8]
+ ldr r0, [sp, #8]
+ cmp r0, #1
+ bne _021DBAD6
+ mov r3, #0
+ str r3, [r6, #8]
+ ldr r0, [r6, #4]
+ ldr r1, _021DBADC ; =0x021DF094
+ add r0, r0, #1
+ str r0, [r6, #4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r0, #0x40
+ bne _021DBAD6
+ str r3, [r6, #4]
+_021DBAD6:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DBADC: .word 0x021DF094
+_021DBAE0: .word 0x021E05C0
+ thumb_func_end MOD85_021DB9C4
+
+ thumb_func_start MOD85_021DBAE4
+MOD85_021DBAE4: ; 0x021DBAE4
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r4, #0x28]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DBAE4
+
+ thumb_func_start MOD85_021DBAFC
+MOD85_021DBAFC: ; 0x021DBAFC
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DBAFC
+
+ thumb_func_start MOD85_021DBB00
+MOD85_021DBB00: ; 0x021DBB00
+ ldr r3, _021DBB08 ; =MOD85_021DB9C4
+ add r0, r1, #0
+ bx r3
+ nop
+_021DBB08: .word MOD85_021DB9C4
+ thumb_func_end MOD85_021DBB00
+
+ thumb_func_start MOD85_021DBB0C
+MOD85_021DBB0C: ; 0x021DBB0C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4f
+ mov r1, #0x10
+ bl FUN_020169D8
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r0, _021DBB2C ; =MOD85_021DBB88
+ mov r2, #0x8f
+ str r4, [r1, #0xc]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ .align 2, 0
+_021DBB2C: .word MOD85_021DBB88
+ thumb_func_end MOD85_021DBB0C
+
+ thumb_func_start MOD85_021DBB30
+MOD85_021DBB30: ; 0x021DBB30
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x4f
+ mov r1, #0x10
+ bl FUN_020169D8
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r0, _021DBB50 ; =MOD85_021DBBE8
+ mov r2, #0x8f
+ str r4, [r1, #0xc]
+ bl FUN_0200CA44
+ pop {r4, pc}
+ .align 2, 0
+_021DBB50: .word MOD85_021DBBE8
+ thumb_func_end MOD85_021DBB30
+
+ thumb_func_start MOD85_021DBB54
+MOD85_021DBB54: ; 0x021DBB54
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0x4f
+ mov r1, #0x10
+ bl FUN_020169D8
+ add r1, r0, #0
+ mov r0, #0
+ str r0, [r1]
+ mov r0, #2
+ str r4, [r1, #8]
+ lsl r0, r0, #0xe
+ str r0, [r1, #4]
+ ldr r0, _021DBB84 ; =MOD85_021DBC48
+ mov r2, #0x8f
+ str r5, [r1, #0xc]
+ bl FUN_0200CA44
+ mov r0, #0x5f
+ lsl r0, r0, #4
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DBB84: .word MOD85_021DBC48
+ thumb_func_end MOD85_021DBB54
+
+ thumb_func_start MOD85_021DBB88
+MOD85_021DBB88: ; 0x021DBB88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ mov r0, #0x61
+ ldr r1, [r5, #0xc]
+ lsl r0, r0, #2
+ add r2, r1, r0
+ mov r0, #2
+ ldr r3, [r5, #4]
+ lsl r0, r0, #0xa
+ add r0, r3, r0
+ asr r3, r0, #0xb
+ lsr r3, r3, #0x14
+ add r1, r2, #0
+ add r6, r2, #0
+ add r3, r0, r3
+ str r0, [r5, #4]
+ lsl r0, r3, #4
+ lsr r4, r0, #0x10
+ add r1, #0x24
+ add r6, #0x84
+ cmp r4, #0x10
+ bls _021DBBB8
+ mov r4, #0x10
+_021DBBB8:
+ add r0, r2, #4
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD85_021DB674
+ ldr r0, [r5, #0xc]
+ mov r1, #7
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD85_021DB69C
+ cmp r4, #0x10
+ beq _021DBBDA
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0]
+ cmp r0, #0x3f
+ bne _021DBBE6
+_021DBBDA:
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_021DBBE6:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DBB88
+
+ thumb_func_start MOD85_021DBBE8
+MOD85_021DBBE8: ; 0x021DBBE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ mov r0, #0x61
+ ldr r1, [r5, #0xc]
+ lsl r0, r0, #2
+ add r2, r1, r0
+ mov r1, #2
+ ldr r3, [r5, #4]
+ lsl r1, r1, #0xa
+ add r1, r3, r1
+ asr r3, r1, #0xb
+ lsr r3, r3, #0x14
+ add r0, r2, #0
+ add r6, r2, #0
+ add r3, r1, r3
+ str r1, [r5, #4]
+ lsl r1, r3, #4
+ lsr r4, r1, #0x10
+ add r0, #0x24
+ add r6, #0x84
+ cmp r4, #0x10
+ bls _021DBC18
+ mov r4, #0x10
+_021DBC18:
+ add r1, r2, #4
+ add r2, r4, #0
+ add r3, r6, #0
+ bl MOD85_021DB674
+ ldr r0, [r5, #0xc]
+ mov r1, #7
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD85_021DB69C
+ cmp r4, #0x10
+ beq _021DBC3A
+ ldr r0, [r5, #0xc]
+ ldr r0, [r0]
+ cmp r0, #0x3f
+ bne _021DBC46
+_021DBC3A:
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_021DBC46:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DBBE8
+
+ thumb_func_start MOD85_021DBC48
+MOD85_021DBC48: ; 0x021DBC48
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0xc]
+ mov r2, #0x61
+ lsl r2, r2, #2
+ add r7, r0, #0
+ add r0, r1, r2
+ add r6, r1, r2
+ ldr r3, [r1]
+ add r0, #0x24
+ add r6, #0x84
+ cmp r3, #0x3f
+ bne _021DBC70
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, r6, r7, pc}
+_021DBC70:
+ ldr r3, [r5, #8]
+ cmp r3, #0
+ bne _021DBC7C
+ add r1, r1, r2
+ add r1, #0x44
+ b _021DBC80
+_021DBC7C:
+ add r1, r1, r2
+ add r1, #0x64
+_021DBC80:
+ ldr r2, [r5]
+ cmp r2, #0
+ beq _021DBC8C
+ cmp r2, #1
+ beq _021DBCC2
+ pop {r3, r4, r5, r6, r7, pc}
+_021DBC8C:
+ mov r2, #1
+ ldr r3, [r5, #4]
+ lsl r2, r2, #0xc
+ add r3, r3, r2
+ asr r2, r3, #0xb
+ lsr r2, r2, #0x14
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ str r3, [r5, #4]
+ cmp r2, #0x10
+ ble _021DBCAA
+ ldr r3, [r5]
+ mov r2, #0x10
+ add r3, r3, #1
+ str r3, [r5]
+_021DBCAA:
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ add r3, r6, #0
+ bl MOD85_021DB674
+ ldr r0, [r5, #0xc]
+ mov r1, #7
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD85_021DB69C
+ pop {r3, r4, r5, r6, r7, pc}
+_021DBCC2:
+ mov r2, #1
+ ldr r3, [r5, #4]
+ lsl r2, r2, #0xa
+ sub r2, r3, r2
+ asr r3, r2, #0xb
+ lsr r3, r3, #0x14
+ add r3, r2, r3
+ str r2, [r5, #4]
+ asr r4, r3, #0xc
+ bpl _021DBCD8
+ mov r4, #0
+_021DBCD8:
+ lsl r2, r4, #0x10
+ lsr r2, r2, #0x10
+ add r3, r6, #0
+ bl MOD85_021DB674
+ ldr r0, [r5, #0xc]
+ mov r1, #7
+ mov r2, #1
+ add r3, r6, #0
+ bl MOD85_021DB69C
+ cmp r4, #0
+ bne _021DBCFE
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_0200CAB4
+_021DBCFE:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DBC48
+
+ thumb_func_start MOD85_021DBD00
+MOD85_021DBD00: ; 0x021DBD00
+ push {r4, lr}
+ add r4, r1, #0
+ lsl r1, r4, #2
+ add r0, r0, r1
+ add r0, #0xa8
+ ldr r0, [r0]
+ mov r1, #0x15
+ add r0, r2, r0
+ bl _s32_div_f
+ cmp r1, #0
+ bge _021DBD1A
+ add r1, #0x15
+_021DBD1A:
+ mov r0, #0x54
+ add r2, r4, #0
+ mul r2, r0
+ ldr r0, _021DBD2C ; =0x021DFDE4
+ lsl r1, r1, #2
+ add r0, r0, r2
+ ldr r0, [r1, r0]
+ pop {r4, pc}
+ nop
+_021DBD2C: .word 0x021DFDE4
+ thumb_func_end MOD85_021DBD00
+
+ thumb_func_start MOD85_021DBD30
+MOD85_021DBD30: ; 0x021DBD30
+ push {r4, r5, r6, lr}
+ lsl r4, r1, #2
+ add r4, r0, r4
+ add r4, #0x90
+ ldr r4, [r4]
+ mov r3, #0
+ lsr r6, r4, #0x1f
+ lsl r5, r4, #0xf
+ sub r5, r5, r6
+ mov r4, #0xf
+ ror r5, r4
+ add r4, r6, r5
+ beq _021DBD4C
+ sub r3, r3, #1
+_021DBD4C:
+ add r2, r2, r3
+ bl MOD85_021DBD00
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBD30
+
+ thumb_func_start MOD85_021DBD54
+MOD85_021DBD54: ; 0x021DBD54
+ ldr r1, _021DBD70 ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ and r1, r0
+ cmp r1, r0
+ bne _021DBD62
+ mov r0, #2
+ bx lr
+_021DBD62:
+ tst r0, r1
+ beq _021DBD6A
+ mov r0, #1
+ bx lr
+_021DBD6A:
+ mov r0, #0
+ bx lr
+ nop
+_021DBD70: .word 0x021C48B8
+ thumb_func_end MOD85_021DBD54
+
+ thumb_func_start MOD85_021DBD74
+MOD85_021DBD74: ; 0x021DBD74
+ mov r2, #3
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DBD80
+ mov r0, #2
+ bx lr
+_021DBD80:
+ mov r1, #0xc
+ tst r1, r0
+ beq _021DBD8A
+ add r0, r2, #0
+ bx lr
+_021DBD8A:
+ mov r1, #0x30
+ tst r1, r0
+ beq _021DBD94
+ mov r0, #4
+ bx lr
+_021DBD94:
+ mov r1, #0xc0
+ add r2, r0, #0
+ tst r2, r1
+ beq _021DBDA0
+ mov r0, #5
+ bx lr
+_021DBDA0:
+ add r1, #0x40
+ tst r1, r0
+ beq _021DBDAA
+ mov r0, #1
+ bx lr
+_021DBDAA:
+ mov r1, #2
+ lsl r1, r1, #8
+ tst r0, r1
+ beq _021DBDB6
+ mov r0, #0
+ bx lr
+_021DBDB6:
+ mov r0, #6
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DBD74
+
+ thumb_func_start MOD85_021DBDBC
+MOD85_021DBDBC: ; 0x021DBDBC
+ push {r4, r5, r6, lr}
+ mov r1, #0
+ mov r2, #1
+ add r5, r0, #0
+ bl MOD85_021DBD30
+ mov r1, #1
+ add r4, r0, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #1
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBDEC
+ cmp r4, r6
+ bne _021DBDF0
+ cmp r4, r0
+ bne _021DBDF0
+_021DBDEC:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBDF0:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBDBC
+
+ thumb_func_start MOD85_021DBDF4
+MOD85_021DBDF4: ; 0x021DBDF4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #2
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD85_021DBD30
+ mov r1, #2
+ add r6, r0, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBE24
+ cmp r4, r6
+ bne _021DBE28
+ cmp r4, r0
+ bne _021DBE28
+_021DBE24:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBE28:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBDF4
+
+ thumb_func_start MOD85_021DBE2C
+MOD85_021DBE2C: ; 0x021DBE2C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #3
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #3
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBE5C
+ cmp r4, r6
+ bne _021DBE60
+ cmp r4, r0
+ bne _021DBE60
+_021DBE5C:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBE60:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBE2C
+
+ thumb_func_start MOD85_021DBE64
+MOD85_021DBE64: ; 0x021DBE64
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #3
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBE94
+ cmp r4, r6
+ bne _021DBE98
+ cmp r4, r0
+ bne _021DBE98
+_021DBE94:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBE98:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBE64
+
+ thumb_func_start MOD85_021DBE9C
+MOD85_021DBE9C: ; 0x021DBE9C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #3
+ bl MOD85_021DBD30
+ add r4, r0, #0
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #2
+ bl MOD85_021DBD30
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #1
+ bl MOD85_021DBD30
+ cmp r4, #3
+ beq _021DBECC
+ cmp r4, r6
+ bne _021DBED0
+ cmp r4, r0
+ bne _021DBED0
+_021DBECC:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021DBED0:
+ mov r0, #6
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBE9C
+
+ thumb_func_start MOD85_021DBED4
+MOD85_021DBED4: ; 0x021DBED4
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [r4]
+ mov r6, #6
+ bl MOD85_021DBDBC
+ cmp r0, #6
+ beq _021DBEF2
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #2
+ orr r0, r1
+ str r0, [r4]
+_021DBEF2:
+ add r0, r5, #0
+ bl MOD85_021DBDF4
+ cmp r0, #6
+ beq _021DBF06
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #1
+ orr r0, r1
+ str r0, [r4]
+_021DBF06:
+ add r0, r5, #0
+ bl MOD85_021DBE2C
+ cmp r0, #6
+ beq _021DBF1A
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #4
+ orr r0, r1
+ str r0, [r4]
+_021DBF1A:
+ add r0, r5, #0
+ bl MOD85_021DBE64
+ cmp r0, #6
+ beq _021DBF2E
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #8
+ orr r0, r1
+ str r0, [r4]
+_021DBF2E:
+ add r0, r5, #0
+ bl MOD85_021DBE9C
+ cmp r0, #6
+ beq _021DBF42
+ ldr r1, [r4]
+ add r6, r0, #0
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r4]
+_021DBF42:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DBED4
+
+ thumb_func_start MOD85_021DBF48
+MOD85_021DBF48: ; 0x021DBF48
+ push {r3, r4, r5, lr}
+ add r5, r2, #0
+ mov r1, #0
+ str r1, [r5]
+ bl MOD85_021DBDF4
+ add r4, r0, #0
+ cmp r4, #6
+ beq _021DBF6A
+ cmp r4, #2
+ beq _021DBF62
+ bl ErrorHandling
+_021DBF62:
+ ldr r1, [r5]
+ mov r0, #1
+ orr r0, r1
+ str r0, [r5]
+_021DBF6A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DBF48
+
+ thumb_func_start MOD85_021DBF70
+MOD85_021DBF70: ; 0x021DBF70
+ push {r3, lr}
+ mov r2, #3
+ add r1, r0, #0
+ tst r1, r2
+ beq _021DBF7E
+ mov r0, #1
+ pop {r3, pc}
+_021DBF7E:
+ mov r1, #0xc
+ tst r1, r0
+ beq _021DBF88
+ mov r0, #0
+ pop {r3, pc}
+_021DBF88:
+ mov r1, #0x30
+ tst r1, r0
+ beq _021DBF92
+ mov r0, #2
+ pop {r3, pc}
+_021DBF92:
+ mov r1, #0xc0
+ tst r0, r1
+ beq _021DBF9C
+ add r0, r2, #0
+ pop {r3, pc}
+_021DBF9C:
+ bl ErrorHandling
+ mov r0, #4
+ pop {r3, pc}
+ thumb_func_end MOD85_021DBF70
+
+ thumb_func_start MOD85_021DBFA4
+MOD85_021DBFA4: ; 0x021DBFA4
+ mov r2, #0
+ add r1, r2, #0
+_021DBFA8:
+ add r2, r2, #1
+ str r1, [r0, #0x54]
+ add r0, r0, #4
+ cmp r2, #3
+ blt _021DBFA8
+ bx lr
+ thumb_func_end MOD85_021DBFA4
+
+ thumb_func_start MOD85_021DBFB4
+MOD85_021DBFB4: ; 0x021DBFB4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ add r1, r5, #0
+_021DBFBE:
+ ldr r0, [r1, #0x54]
+ cmp r0, #0
+ beq _021DBFCC
+ add r4, r4, #1
+ add r1, r1, #4
+ cmp r4, #3
+ blt _021DBFBE
+_021DBFCC:
+ cmp r4, #3
+ blt _021DBFD4
+ bl ErrorHandling
+_021DBFD4:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ str r6, [r0, #0x54]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DBFB4
+
+ thumb_func_start MOD85_021DBFDC
+MOD85_021DBFDC: ; 0x021DBFDC
+ push {r4, r5, r6}
+ sub sp, #0xc
+ ldr r6, _021DC018 ; =0x021DEDC8
+ add r4, r0, #0
+ ldmia r6!, {r0, r1}
+ add r5, sp, #0
+ add r3, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ mov r2, #0
+ str r0, [r5]
+_021DBFF2:
+ ldr r1, [r4, #0x54]
+ cmp r1, #0
+ beq _021DC006
+ ldr r0, [r3]
+ cmp r1, r0
+ beq _021DC006
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6}
+ bx lr
+_021DC006:
+ add r2, r2, #1
+ add r4, r4, #4
+ add r3, r3, #4
+ cmp r2, #3
+ blt _021DBFF2
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, r6}
+ bx lr
+ .align 2, 0
+_021DC018: .word 0x021DEDC8
+ thumb_func_end MOD85_021DBFDC
+
+ thumb_func_start MOD85_021DC01C
+MOD85_021DC01C: ; 0x021DC01C
+ push {r3, r4}
+ ldr r2, [r0, #0x34]
+ mov r1, #0x18
+ ldr r3, _021DC04C ; =0x021DEF04
+ mul r1, r2
+ mov r4, #0
+ add r3, r3, r1
+_021DC02A:
+ ldr r2, [r0, #0x54]
+ cmp r2, #0
+ beq _021DC03C
+ ldr r1, [r3]
+ cmp r2, r1
+ beq _021DC03C
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+_021DC03C:
+ add r4, r4, #1
+ add r0, r0, #4
+ add r3, r3, #4
+ cmp r4, #3
+ blt _021DC02A
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_021DC04C: .word 0x021DEF04
+ thumb_func_end MOD85_021DC01C
+
+ thumb_func_start MOD85_021DC050
+MOD85_021DC050: ; 0x021DC050
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #2
+ lsl r2, r1, #3
+ ldr r3, _021DC08C ; =0x021DEE9C
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ add r5, r3, r2
+ ldr r2, [r3, r2]
+ ldr r0, _021DC090 ; =0x0000043C
+ ldr r3, [r5, #4]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r4, r0]
+ mov r1, #1
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020186B4
+ ldr r0, _021DC090 ; =0x0000043C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_0201AC68
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DC08C: .word 0x021DEE9C
+_021DC090: .word 0x0000043C
+ thumb_func_end MOD85_021DC050
+
+ thumb_func_start MOD85_021DC094
+MOD85_021DC094: ; 0x021DC094
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #2
+ lsl r2, r1, #3
+ ldr r3, _021DC0D0 ; =0x021DEE9C
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ add r5, r3, r2
+ ldr r2, [r3, r2]
+ ldr r0, _021DC0D4 ; =0x0000043C
+ ldr r3, [r5, #4]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r4, r0]
+ mov r1, #1
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020186B4
+ ldr r0, _021DC0D4 ; =0x0000043C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_0201AC68
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DC0D0: .word 0x021DEE9C
+_021DC0D4: .word 0x0000043C
+ thumb_func_end MOD85_021DC094
+
+ thumb_func_start MOD85_021DC0D8
+MOD85_021DC0D8: ; 0x021DC0D8
+ push {r3, r4, r5, lr}
+ ldr r4, [r0, #0x44]
+ ldr r5, [r0, #0x48]
+ cmp r4, #6
+ bne _021DC0E6
+ bl ErrorHandling
+_021DC0E6:
+ ldr r3, _021DC104 ; =0x021DFCAC
+ lsl r2, r4, #2
+ mov r1, #0
+ ldr r3, [r3, r2]
+ add r0, r1, #0
+ mov r2, #1
+_021DC0F2:
+ add r4, r5, #0
+ tst r4, r2
+ beq _021DC0FA
+ add r0, r0, r3
+_021DC0FA:
+ add r1, r1, #1
+ lsr r5, r5, #1
+ cmp r1, #5
+ blt _021DC0F2
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC104: .word 0x021DFCAC
+ thumb_func_end MOD85_021DC0D8
+
+ thumb_func_start MOD85_021DC108
+MOD85_021DC108: ; 0x021DC108
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r7, r0, #0
+ mov r4, #0
+ add r0, sp, #8
+ str r4, [r0]
+ str r4, [r0, #4]
+ mov r6, #0x11
+ lsl r6, r6, #0xe
+ str r4, [r0, #8]
+ str r7, [sp, #0x14]
+ cmp r4, #3
+ bge _021DC15A
+_021DC122:
+ mov r5, #0
+_021DC124:
+ str r6, [sp, #8]
+ str r4, [sp, #0x1c]
+ str r5, [sp, #0x18]
+ add r0, sp, #0x14
+ str r0, [sp]
+ mov r0, #0x8b
+ str r0, [sp, #4]
+ ldr r0, _021DC160 ; =0x0000044C
+ ldr r1, _021DC164 ; =0x021DF938
+ ldr r0, [r7, r0]
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_020644E4
+ mov r0, #2
+ lsl r0, r0, #0x10
+ add r5, r5, r0
+ mov r0, #0xa
+ lsl r0, r0, #0x10
+ cmp r5, r0
+ blt _021DC124
+ mov r0, #0xf
+ lsl r0, r0, #0xe
+ add r4, r4, #1
+ add r6, r6, r0
+ cmp r4, #3
+ blt _021DC122
+_021DC15A:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DC160: .word 0x0000044C
+_021DC164: .word 0x021DF938
+ thumb_func_end MOD85_021DC108
+
+ thumb_func_start MOD85_021DC168
+MOD85_021DC168: ; 0x021DC168
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, r4, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, sp, #0x1c
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #3
+ str r0, [sp, #0x14]
+ mov r0, #2
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0xc
+ add r2, sp, #0x1c
+ mov r3, #1
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC168
+
+ thumb_func_start MOD85_021DC1C0
+MOD85_021DC1C0: ; 0x021DC1C0
+ ldr r3, _021DC1C8 ; =MOD85_021DECA0
+ add r1, #0xc
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DC1C8: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DC1C0
+
+ thumb_func_start MOD85_021DC1CC
+MOD85_021DC1CC: ; 0x021DC1CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ ldr r7, [r5, #8]
+ str r0, [sp]
+ ldr r0, [r5]
+ lsl r6, r7, #2
+ add r0, r0, r6
+ add r0, #0x90
+ ldr r1, [r5, #4]
+ ldr r0, [r0]
+ add r0, r1, r0
+ mov r1, #0xa
+ lsl r1, r1, #0x10
+ bl _s32_div_f
+ add r4, r1, #0
+ ldr r0, [sp]
+ add r1, sp, #4
+ bl FUN_0206477C
+ ldr r1, [r5]
+ mov r0, #1
+ add r1, r1, r6
+ add r1, #0x9c
+ lsl r0, r0, #0x10
+ ldr r1, [r1]
+ add r0, r4, r0
+ add r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x10]
+ add r1, sp, #4
+ bl FUN_02020044
+ asr r2, r4, #0x10
+ lsr r2, r2, #0xf
+ add r2, r4, r2
+ ldr r0, [r5]
+ add r1, r7, #0
+ asr r2, r2, #0x11
+ bl MOD85_021DBD00
+ lsl r1, r0, #2
+ ldr r0, _021DC244 ; =0x021DF9D8
+ ldr r4, [r0, r1]
+ ldr r0, [r5, #0x10]
+ bl FUN_020201DC
+ cmp r4, r0
+ beq _021DC240
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_02020130
+ ldr r0, [r5, #0x10]
+ mov r1, #0
+ bl FUN_02020208
+_021DC240:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DC244: .word 0x021DF9D8
+ thumb_func_end MOD85_021DC1CC
+
+ thumb_func_start MOD85_021DC248
+MOD85_021DC248: ; 0x021DC248
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DC248
+
+ thumb_func_start MOD85_021DC24C
+MOD85_021DC24C: ; 0x021DC24C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r3, _021DC290 ; =0x021DF628
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #8
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r4, #1
+ str r0, [r2]
+ mov r7, #0x8d
+_021DC264:
+ str r5, [sp]
+ ldr r0, _021DC294 ; =0x0000044C
+ str r7, [sp, #4]
+ ldr r0, [r5, r0]
+ ldr r1, _021DC298 ; =0x021DF94C
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_020644E4
+ mov r0, #0xa
+ mul r4, r0
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, _021DC29C ; =0x000186A0
+ cmp r4, r0
+ blo _021DC264
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DC290: .word 0x021DF628
+_021DC294: .word 0x0000044C
+_021DC298: .word 0x021DF94C
+_021DC29C: .word 0x000186A0
+ thumb_func_end MOD85_021DC24C
+
+ thumb_func_start MOD85_021DC2A0
+MOD85_021DC2A0: ; 0x021DC2A0
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02064754
+ mov r1, #0xa
+ str r0, [r4, #4]
+ mul r1, r0
+ str r1, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0206475C
+ str r0, [r4]
+ add r0, r5, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ str r3, [sp, #0x14]
+ str r3, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0xc
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC2A0
+
+ thumb_func_start MOD85_021DC2F8
+MOD85_021DC2F8: ; 0x021DC2F8
+ ldr r3, _021DC300 ; =MOD85_021DECA0
+ add r1, #0xc
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DC300: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DC2F8
+
+ thumb_func_start MOD85_021DC304
+MOD85_021DC304: ; 0x021DC304
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ ldr r4, [r0, #0x60]
+ ldr r0, [r5, #4]
+ cmp r0, #1
+ bls _021DC326
+ cmp r4, r0
+ bhs _021DC326
+ ldr r0, [r5, #0x10]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DC326:
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ bl _u32_div_f
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ add r0, r4, #0
+ bl _u32_div_f
+ add r4, r0, #0
+ ldr r0, [r5, #0x10]
+ bl FUN_020201DC
+ cmp r4, r0
+ beq _021DC35A
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_02020130
+ ldr r0, [r5, #0x10]
+ bl FUN_02020198
+_021DC35A:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, _021DC37C ; =0x021DFAD8
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ ldr r2, [sp]
+ add r1, sp, #0
+ add r0, r2, r0
+ str r0, [sp]
+ ldr r0, [r5, #0x10]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DC37C: .word 0x021DFAD8
+ thumb_func_end MOD85_021DC304
+
+ thumb_func_start MOD85_021DC380
+MOD85_021DC380: ; 0x021DC380
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DC380
+
+ thumb_func_start MOD85_021DC384
+MOD85_021DC384: ; 0x021DC384
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r3, _021DC3C8 ; =0x021DF6F4
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #8
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r4, #1
+ str r0, [r2]
+ mov r7, #0x8d
+_021DC39C:
+ str r5, [sp]
+ ldr r0, _021DC3CC ; =0x0000044C
+ str r7, [sp, #4]
+ ldr r0, [r5, r0]
+ ldr r1, _021DC3D0 ; =0x021DF960
+ add r2, r6, #0
+ add r3, r4, #0
+ bl FUN_020644E4
+ mov r0, #0xa
+ mul r4, r0
+ mov r0, #2
+ ldr r1, [sp, #8]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #8]
+ ldr r0, _021DC3D4 ; =0x000186A0
+ cmp r4, r0
+ blo _021DC39C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DC3C8: .word 0x021DF6F4
+_021DC3CC: .word 0x0000044C
+_021DC3D0: .word 0x021DF960
+_021DC3D4: .word 0x000186A0
+ thumb_func_end MOD85_021DC384
+
+ thumb_func_start MOD85_021DC3D8
+MOD85_021DC3D8: ; 0x021DC3D8
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02064754
+ mov r1, #0xa
+ str r0, [r4, #4]
+ mul r1, r0
+ str r1, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0206475C
+ str r0, [r4]
+ add r0, r5, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ str r3, [sp, #0x14]
+ str r3, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0xc
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC3D8
+
+ thumb_func_start MOD85_021DC430
+MOD85_021DC430: ; 0x021DC430
+ ldr r3, _021DC438 ; =MOD85_021DECA0
+ add r1, #0xc
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DC438: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DC430
+
+ thumb_func_start MOD85_021DC43C
+MOD85_021DC43C: ; 0x021DC43C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ ldr r4, [r0, #0x64]
+ ldr r0, [r5, #4]
+ cmp r4, r0
+ ldr r0, [r5, #0x10]
+ bhs _021DC45A
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_021DC45A:
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [r5, #8]
+ add r0, r4, #0
+ bl _u32_div_f
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ add r0, r4, #0
+ bl _u32_div_f
+ add r4, r0, #0
+ ldr r0, [r5, #0x10]
+ bl FUN_020201DC
+ cmp r4, r0
+ beq _021DC48C
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_02020130
+ ldr r0, [r5, #0x10]
+ bl FUN_02020198
+_021DC48C:
+ add r0, r6, #0
+ add r1, sp, #0
+ bl FUN_0206477C
+ ldr r0, _021DC4AC ; =0x021DFAB0
+ lsl r1, r4, #2
+ ldr r0, [r0, r1]
+ ldr r2, [sp]
+ add r1, sp, #0
+ add r0, r2, r0
+ str r0, [sp]
+ ldr r0, [r5, #0x10]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DC4AC: .word 0x021DFAB0
+ thumb_func_end MOD85_021DC43C
+
+ thumb_func_start MOD85_021DC4B0
+MOD85_021DC4B0: ; 0x021DC4B0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DC4B0
+
+ thumb_func_start MOD85_021DC4B4
+MOD85_021DC4B4: ; 0x021DC4B4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ ldr r6, _021DC4E0 ; =0x021DF808
+ add r5, sp, #8
+ add r4, r0, #0
+ add r3, r1, #0
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DC4E4 ; =0x021DF974
+ str r0, [r5]
+ str r4, [sp]
+ mov r0, #0x86
+ str r0, [sp, #4]
+ ldr r0, _021DC4E8 ; =0x0000044C
+ ldr r0, [r4, r0]
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DC4E0: .word 0x021DF808
+_021DC4E4: .word 0x021DF974
+_021DC4E8: .word 0x0000044C
+ thumb_func_end MOD85_021DC4B4
+
+ thumb_func_start MOD85_021DC4EC
+MOD85_021DC4EC: ; 0x021DC4EC
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02064738
+ str r4, [r0]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ str r1, [r0, #0x30]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DC4EC
+
+ thumb_func_start MOD85_021DC500
+MOD85_021DC500: ; 0x021DC500
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02064738
+ cmp r4, #1
+ ldr r0, [r0, #0x40]
+ bne _021DC516
+ mov r1, #0
+ bl FUN_020200A0
+ pop {r4, pc}
+_021DC516:
+ mov r1, #1
+ bl FUN_020200A0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC500
+
+ thumb_func_start MOD85_021DC520
+MOD85_021DC520: ; 0x021DC520
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #8]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC520
+
+ thumb_func_start MOD85_021DC52C
+MOD85_021DC52C: ; 0x021DC52C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x38]
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4, #0x10]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021DC52C
+
+ thumb_func_start MOD85_021DC544
+MOD85_021DC544: ; 0x021DC544
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0x40]
+ cmp r0, #0
+ beq _021DC55C
+ ldr r0, [r4, #0x38]
+ bl MOD85_021DCB00
+ add r4, #0x3c
+ add r0, r4, #0
+ bl MOD85_021DECA0
+_021DC55C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DC544
+
+ thumb_func_start MOD85_021DC560
+MOD85_021DC560: ; 0x021DC560
+ push {r3, r4, r5, lr}
+ ldr r4, _021DC57C ; =0x021DF9F0
+ add r5, r1, #0
+_021DC566:
+ ldr r1, [r5]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ ldr r1, [r5, #4]
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ blx r1
+ cmp r0, #1
+ beq _021DC566
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC57C: .word 0x021DF9F0
+ thumb_func_end MOD85_021DC560
+
+ thumb_func_start MOD85_021DC580
+MOD85_021DC580: ; 0x021DC580
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DC580
+
+ thumb_func_start MOD85_021DC584
+MOD85_021DC584: ; 0x021DC584
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x10]
+ bl MOD85_021DCA68
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DC584
+
+ thumb_func_start MOD85_021DC598
+MOD85_021DC598: ; 0x021DC598
+ ldr r1, [r0, #0xc]
+ cmp r1, #2
+ bne _021DC5A4
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+_021DC5A4:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DC598
+
+ thumb_func_start MOD85_021DC5A8
+MOD85_021DC5A8: ; 0x021DC5A8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ ldr r5, _021DC5D8 ; =0x021DF820
+ add r4, r0, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x38]
+ add r1, #0x3c
+ bl MOD85_021DCB6C
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021DC5D8: .word 0x021DF820
+ thumb_func_end MOD85_021DC5A8
+
+ thumb_func_start MOD85_021DC5DC
+MOD85_021DC5DC: ; 0x021DC5DC
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DC5DC
+
+ thumb_func_start MOD85_021DC5E0
+MOD85_021DC5E0: ; 0x021DC5E0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DC63C ; =0x021DF7E4
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DC640 ; =0x021DF70C
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020208
+ ldr r0, _021DC644 ; =0x00000624
+ bl FUN_020054C8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DC63C: .word 0x021DF7E4
+_021DC640: .word 0x021DF70C
+_021DC644: .word 0x00000624
+ thumb_func_end MOD85_021DC5E0
+
+ thumb_func_start MOD85_021DC648
+MOD85_021DC648: ; 0x021DC648
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl MOD85_021DECBC
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0
+ bl MOD85_021DECD0
+ mov r0, #1
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0xe
+ sub r1, r1, r0
+ str r1, [sp, #0x10]
+ ldr r2, [sp]
+ ldr r1, _021DC6AC ; =0x000001C7
+ sub r2, r2, r1
+ str r2, [sp]
+ ldr r2, [sp, #4]
+ sub r1, r2, r1
+ str r1, [sp, #4]
+ ldr r1, [r4, #0x30]
+ add r1, r1, #1
+ str r1, [r4, #0x30]
+ cmp r1, #9
+ blo _021DC696
+ mov r1, #0x16
+ lsr r0, r0, #2
+ lsl r1, r1, #0x10
+ str r1, [sp, #0x10]
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DC696:
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0
+ bl FUN_02020064
+ mov r0, #0
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_021DC6AC: .word 0x000001C7
+ thumb_func_end MOD85_021DC648
+
+ thumb_func_start MOD85_021DC6B0
+MOD85_021DC6B0: ; 0x021DC6B0
+ ldr r1, [r0, #0x30]
+ add r1, r1, #1
+ str r1, [r0, #0x30]
+ cmp r1, #3
+ blo _021DC6C8
+ mov r1, #0
+ str r1, [r0, #0x30]
+ mov r1, #1
+ str r1, [r0, #8]
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+_021DC6C8:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DC6B0
+
+ thumb_func_start MOD85_021DC6CC
+MOD85_021DC6CC: ; 0x021DC6CC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x6d
+ lsl r0, r0, #4
+ bl FUN_020054C8
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DC6CC
+
+ thumb_func_start MOD85_021DC6F8
+MOD85_021DC6F8: ; 0x021DC6F8
+ ldr r1, [r0, #0x30]
+ add r1, r1, #1
+ str r1, [r0, #0x30]
+ cmp r1, #4
+ blo _021DC710
+ mov r1, #0
+ str r1, [r0, #0x30]
+ mov r1, #1
+ str r1, [r0, #8]
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+_021DC710:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DC6F8
+
+ thumb_func_start MOD85_021DC714
+MOD85_021DC714: ; 0x021DC714
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DC774 ; =0x021DF754
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DC778 ; =0x021DF670
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r5, r2, #0
+ str r0, [r3]
+ add r3, r4, #0
+ ldmia r5!, {r0, r1}
+ add r3, #0x14
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ mov r1, #3
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC774: .word 0x021DF754
+_021DC778: .word 0x021DF670
+ thumb_func_end MOD85_021DC714
+
+ thumb_func_start MOD85_021DC77C
+MOD85_021DC77C: ; 0x021DC77C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ ldr r5, _021DC7DC ; =0x021DFA0C
+ add r4, r0, #0
+ add r2, sp, #0
+ 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}
+ add r6, r4, #0
+ add r6, #0x14
+ stmia r2!, {r0, r1}
+ add r5, sp, #0x20
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r5]
+ ldr r1, [r4, #0x30]
+ ldr r0, [sp, #0x24]
+ lsr r1, r1, #1
+ lsl r1, r1, #2
+ ldr r1, [r3, r1]
+ add r0, r0, r1
+ str r0, [sp, #0x24]
+ ldr r0, [r4, #0x40]
+ add r1, r2, #0
+ bl FUN_02020044
+ ldr r0, [r4, #0x30]
+ add r0, r0, #1
+ str r0, [r4, #0x30]
+ cmp r0, #0x10
+ blo _021DC7D6
+ mov r0, #0
+ str r0, [r4, #0x30]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DC7D6:
+ mov r0, #0
+ add sp, #0x2c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DC7DC: .word 0x021DFA0C
+ thumb_func_end MOD85_021DC77C
+
+ thumb_func_start MOD85_021DC7E0
+MOD85_021DC7E0: ; 0x021DC7E0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DC840 ; =0x021DF640
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DC844 ; =0x021DF730
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r5, r2, #0
+ str r0, [r3]
+ add r3, r4, #0
+ ldmia r5!, {r0, r1}
+ add r3, #0x14
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ mov r1, #4
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DC840: .word 0x021DF640
+_021DC844: .word 0x021DF730
+ thumb_func_end MOD85_021DC7E0
+
+ thumb_func_start MOD85_021DC848
+MOD85_021DC848: ; 0x021DC848
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl MOD85_021DECBC
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0
+ bl MOD85_021DECD0
+ mov r0, #1
+ ldr r1, [sp, #0x10]
+ lsl r0, r0, #0xe
+ add r1, r1, r0
+ str r1, [sp, #0x10]
+ ldr r2, [sp]
+ ldr r1, _021DC8B0 ; =0x000001C7
+ add r2, r2, r1
+ str r2, [sp]
+ ldr r2, [sp, #4]
+ add r1, r2, r1
+ str r1, [sp, #4]
+ ldr r1, [r4, #0x30]
+ add r1, r1, #1
+ str r1, [r4, #0x30]
+ cmp r1, #0xa
+ blo _021DC89A
+ mov r1, #7
+ lsr r0, r0, #2
+ lsl r1, r1, #0x12
+ str r1, [sp, #0x10]
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [r4, #0x30]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DC89A:
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0
+ bl FUN_02020064
+ mov r0, #0
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_021DC8B0: .word 0x000001C7
+ thumb_func_end MOD85_021DC848
+
+ thumb_func_start MOD85_021DC8B4
+MOD85_021DC8B4: ; 0x021DC8B4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ ldr r3, _021DC934 ; =0x021DF6AC
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x18
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r3, _021DC938 ; =0x021DF61C
+ str r0, [r2]
+ add r2, sp, #0xc
+ ldmia r3!, {r0, r1}
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r5, sp, #0
+ mov r7, #0
+ str r7, [r5]
+ str r0, [r2]
+ add r3, r6, #0
+ str r7, [r5, #4]
+ add r2, r4, #0
+ ldmia r3!, {r0, r1}
+ str r7, [r5, #8]
+ add r2, #0x14
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r2, r4, #0
+ ldmia r5!, {r0, r1}
+ add r2, #0x20
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r6, #0
+ str r0, [r2]
+ str r7, [r4, #0x30]
+ str r7, [r4, #0x34]
+ str r7, [r4, #0x2c]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0x18
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ add r1, r7, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DC934: .word 0x021DF6AC
+_021DC938: .word 0x021DF61C
+ thumb_func_end MOD85_021DC8B4
+
+ thumb_func_start MOD85_021DC93C
+MOD85_021DC93C: ; 0x021DC93C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ ldr r3, _021DC9D8 ; =0x021DFA2C
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x40
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r3, _021DC9DC ; =0x021DFA4C
+ add r2, sp, #0x20
+ ldmia r3!, {r0, r1}
+ add r5, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r3, _021DC9E0 ; =0x021DFA6C
+ add r2, sp, #0
+ 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}
+ ldr r1, [r4, #0x34]
+ ldr r0, [r4, #0x2c]
+ lsl r1, r1, #2
+ ldr r1, [r6, r1]
+ add r0, r0, r1
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x34]
+ ldr r1, [r4, #0x14]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r0, r1, r0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x30]
+ add r2, r0, #1
+ str r2, [r4, #0x30]
+ ldr r1, [r4, #0x34]
+ lsl r0, r1, #2
+ ldr r0, [r7, r0]
+ cmp r2, r0
+ blo _021DC9BC
+ add r0, r1, #1
+ str r0, [r4, #0x34]
+ cmp r0, #8
+ blt _021DC9B8
+ mov r0, #0
+ str r0, [r4, #0x34]
+_021DC9B8:
+ mov r0, #0
+ str r0, [r4, #0x30]
+_021DC9BC:
+ add r1, r4, #0
+ ldr r0, [r4, #0x40]
+ add r1, #0x14
+ bl FUN_02020044
+ ldr r1, [r4, #0x2c]
+ ldr r0, [r4, #0x40]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02020088
+ mov r0, #0
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DC9D8: .word 0x021DFA2C
+_021DC9DC: .word 0x021DFA4C
+_021DC9E0: .word 0x021DFA6C
+ thumb_func_end MOD85_021DC93C
+
+ thumb_func_start MOD85_021DC9E4
+MOD85_021DC9E4: ; 0x021DC9E4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ ldr r3, _021DCA60 ; =0x021DF5F8
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x18
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DCA64 ; =0x021DF658
+ str r0, [r2]
+ add r2, sp, #0xc
+ add r3, r2, #0
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r5]
+ add r5, r4, #0
+ str r0, [r2]
+ add r2, sp, #0
+ mov r0, #0
+ str r0, [r2]
+ str r0, [r2, #4]
+ add r6, r3, #0
+ str r0, [r2, #8]
+ ldmia r6!, {r0, r1}
+ add r5, #0x14
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r5]
+ add r5, r4, #0
+ ldmia r2!, {r0, r1}
+ add r5, #0x20
+ stmia r5!, {r0, r1}
+ ldr r0, [r2]
+ add r1, r3, #0
+ str r0, [r5]
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x40]
+ bl FUN_02020044
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0x18
+ bl FUN_02020064
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl FUN_02020088
+ ldr r0, [r4, #0x40]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, [r4, #0x40]
+ bl FUN_02020198
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DCA60: .word 0x021DF5F8
+_021DCA64: .word 0x021DF658
+ thumb_func_end MOD85_021DC9E4
+
+ thumb_func_start MOD85_021DCA68
+MOD85_021DCA68: ; 0x021DCA68
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ ldr r4, [r6, #0x38]
+ cmp r5, #5
+ blt _021DCA78
+ bl ErrorHandling
+_021DCA78:
+ mov r1, #2
+ mov r2, #0x45
+ ldr r7, _021DCAF0 ; =0x021DFB30
+ lsl r3, r5, #4
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ add r5, r7, r3
+ ldr r2, [r4, r2]
+ ldr r3, [r7, r3]
+ bl MOD85_021DE840
+ mov r1, #2
+ mov r2, #0x45
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ ldr r3, [r5, #4]
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ ldr r2, [r5, #8]
+ mov r3, #2
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ ldr r2, [r5, #0xc]
+ mov r3, #2
+ bl MOD85_021DEA4C
+ ldr r0, _021DCAF4 ; =MOD85_021DCB18
+ ldr r2, _021DCAF8 ; =0x00000101
+ add r1, r6, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DCADC
+ bl ErrorHandling
+_021DCADC:
+ ldr r0, _021DCAFC ; =MOD85_021DCB44
+ ldr r2, _021DCAF8 ; =0x00000101
+ add r1, r6, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DCAEE
+ bl ErrorHandling
+_021DCAEE:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DCAF0: .word 0x021DFB30
+_021DCAF4: .word MOD85_021DCB18
+_021DCAF8: .word 0x00000101
+_021DCAFC: .word MOD85_021DCB44
+ thumb_func_end MOD85_021DCA68
+
+ thumb_func_start MOD85_021DCB00
+MOD85_021DCB00: ; 0x021DCB00
+ push {r3, lr}
+ mov r1, #2
+ mov r2, #0x45
+ str r1, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r0, r2]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCB00
+
+ thumb_func_start MOD85_021DCB18
+MOD85_021DCB18: ; 0x021DCB18
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ mov r0, #0x45
+ ldr r4, [r5, #0x38]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl MOD85_021DE97C
+ mov r0, #1
+ str r0, [r5, #0xc]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DCB18
+
+ thumb_func_start MOD85_021DCB44
+MOD85_021DCB44: ; 0x021DCB44
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x38]
+ cmp r0, #1
+ bne _021DCB68
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #2
+ bl MOD85_021DE9B0
+ mov r0, #2
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DCB68:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCB44
+
+ thumb_func_start MOD85_021DCB6C
+MOD85_021DCB6C: ; 0x021DCB6C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0x28
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r6, _021DCBDC ; =0x021DF85C
+ str r0, [r1, #8]
+ ldmia r6!, {r0, r1}
+ add r3, sp, #0x1c
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r4, #0
+ str r0, [r3]
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #2
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ str r3, [sp, #0xc]
+ str r3, [sp, #0x10]
+ str r3, [sp, #0x14]
+ mov r0, #7
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl MOD85_021DEC00
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #4]
+ add r1, sp, #0x28
+ bl FUN_02020054
+ ldr r0, [r4, #4]
+ add r1, sp, #0x1c
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_02020088
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200BC
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DCBDC: .word 0x021DF85C
+ thumb_func_end MOD85_021DCB6C
+
+ thumb_func_start MOD85_021DCBE0
+MOD85_021DCBE0: ; 0x021DCBE0
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DCC0C ; =0x021DF6E8
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DCC10 ; =0x021DF8AC
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x87
+ str r0, [sp, #4]
+ ldr r0, _021DCC14 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DCC0C: .word 0x021DF6E8
+_021DCC10: .word 0x021DF8AC
+_021DCC14: .word 0x0000044C
+ thumb_func_end MOD85_021DCBE0
+
+ thumb_func_start MOD85_021DCC18
+MOD85_021DCC18: ; 0x021DCC18
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ bl MOD85_021DCD50
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021DCC18
+
+ thumb_func_start MOD85_021DCC2C
+MOD85_021DCC2C: ; 0x021DCC2C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ beq _021DCC54
+ mov r1, #3
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ add r4, #0x14
+ add r0, r4, #0
+ bl MOD85_021DECA0
+_021DCC54:
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD85_021DCC2C
+
+ thumb_func_start MOD85_021DCC58
+MOD85_021DCC58: ; 0x021DCC58
+ push {r4, lr}
+ sub sp, #0x28
+ add r4, r1, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _021DCCF4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DCC70: ; jump table
+ .short _021DCC78 - _021DCC70 - 2 ; case 0
+ .short _021DCCBA - _021DCC70 - 2 ; case 1
+ .short _021DCCD2 - _021DCC70 - 2 ; case 2
+ .short _021DCCF4 - _021DCC70 - 2 ; case 3
+_021DCC78:
+ ldr r1, [r4, #0xc]
+ cmp r1, #2
+ bne _021DCCF4
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #5
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x14
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DCCBA:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0xf
+ blo _021DCCF4
+ ldr r0, [r4]
+ add sp, #0x28
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #4]
+ pop {r4, pc}
+_021DCCD2:
+ mov r1, #3
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD85_021DECA0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DCCF4:
+ add sp, #0x28
+ pop {r4, pc}
+ thumb_func_end MOD85_021DCC58
+
+ thumb_func_start MOD85_021DCCF8
+MOD85_021DCCF8: ; 0x021DCCF8
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DCCF8
+
+ thumb_func_start MOD85_021DCCFC
+MOD85_021DCCFC: ; 0x021DCCFC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ mov r0, #0x45
+ ldr r4, [r5, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl MOD85_021DE97C
+ mov r0, #1
+ str r0, [r5, #0xc]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DCCFC
+
+ thumb_func_start MOD85_021DCD28
+MOD85_021DCD28: ; 0x021DCD28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ cmp r0, #1
+ bne _021DCD4C
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #3
+ bl MOD85_021DE9B0
+ mov r0, #2
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DCD4C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCD28
+
+ thumb_func_start MOD85_021DCD50
+MOD85_021DCD50: ; 0x021DCD50
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r2, #0x45
+ ldr r4, [r5, #0x10]
+ mov r0, #3
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x2c
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #3
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x2f
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x2d
+ mov r3, #3
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x2e
+ mov r3, #3
+ bl MOD85_021DEA4C
+ ldr r0, _021DCDCC ; =MOD85_021DCCFC
+ ldr r2, _021DCDD0 ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DCDB8
+ bl ErrorHandling
+_021DCDB8:
+ ldr r0, _021DCDD4 ; =MOD85_021DCD28
+ ldr r2, _021DCDD0 ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DCDCA
+ bl ErrorHandling
+_021DCDCA:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DCDCC: .word MOD85_021DCCFC
+_021DCDD0: .word 0x00000101
+_021DCDD4: .word MOD85_021DCD28
+ thumb_func_end MOD85_021DCD50
+
+ thumb_func_start MOD85_021DCDD8
+MOD85_021DCDD8: ; 0x021DCDD8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ mov r0, #0x45
+ ldr r4, [r5, #0x20]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl MOD85_021DE97C
+ mov r0, #1
+ str r0, [r5, #0x10]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DCDD8
+
+ thumb_func_start MOD85_021DCE04
+MOD85_021DCE04: ; 0x021DCE04
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x20]
+ cmp r0, #1
+ bne _021DCE28
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #4
+ bl MOD85_021DE9B0
+ mov r0, #2
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DCE28:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCE04
+
+ thumb_func_start MOD85_021DCE2C
+MOD85_021DCE2C: ; 0x021DCE2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x18]
+ mov r2, #0x45
+ lsl r3, r0, #4
+ ldr r7, _021DCEB0 ; =0x021DFB00
+ ldr r4, [r6, #0x20]
+ mov r0, #4
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ add r5, r7, r3
+ ldr r2, [r4, r2]
+ ldr r3, [r7, r3]
+ mov r1, #2
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #4
+ str r0, [sp]
+ lsl r2, r2, #4
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ ldr r3, [r5, #4]
+ mov r1, #2
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ ldr r2, [r5, #8]
+ mov r3, #4
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ ldr r2, [r5, #0xc]
+ mov r3, #4
+ bl MOD85_021DEA4C
+ ldr r0, _021DCEB4 ; =MOD85_021DCDD8
+ ldr r2, _021DCEB8 ; =0x00000101
+ add r1, r6, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DCE9C
+ bl ErrorHandling
+_021DCE9C:
+ ldr r0, _021DCEBC ; =MOD85_021DCE04
+ ldr r2, _021DCEB8 ; =0x00000101
+ add r1, r6, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DCEAE
+ bl ErrorHandling
+_021DCEAE:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DCEB0: .word 0x021DFB00
+_021DCEB4: .word MOD85_021DCDD8
+_021DCEB8: .word 0x00000101
+_021DCEBC: .word MOD85_021DCE04
+ thumb_func_end MOD85_021DCE2C
+
+ thumb_func_start MOD85_021DCEC0
+MOD85_021DCEC0: ; 0x021DCEC0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ ldr r6, _021DCEEC ; =0x021DF838
+ add r5, sp, #8
+ add r4, r0, #0
+ add r3, r1, #0
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DCEF0 ; =0x021DF8C0
+ str r0, [r5]
+ str r4, [sp]
+ mov r0, #0x89
+ str r0, [sp, #4]
+ ldr r0, _021DCEF4 ; =0x0000044C
+ ldr r0, [r4, r0]
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DCEEC: .word 0x021DF838
+_021DCEF0: .word 0x021DF8C0
+_021DCEF4: .word 0x0000044C
+ thumb_func_end MOD85_021DCEC0
+
+ thumb_func_start MOD85_021DCEF8
+MOD85_021DCEF8: ; 0x021DCEF8
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02064738
+ str r4, [r0, #4]
+ mov r1, #0
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x14]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DCEF8
+
+ thumb_func_start MOD85_021DCF0C
+MOD85_021DCF0C: ; 0x021DCF0C
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #0xc]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCF0C
+
+ thumb_func_start MOD85_021DCF18
+MOD85_021DCF18: ; 0x021DCF18
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x20]
+ add r0, r5, #0
+ bl FUN_02064754
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD85_021DCE2C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DCF18
+
+ thumb_func_start MOD85_021DCF38
+MOD85_021DCF38: ; 0x021DCF38
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _021DCF60
+ mov r1, #4
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x20]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ add r4, #0x24
+ add r0, r4, #0
+ bl MOD85_021DECA0
+_021DCF60:
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD85_021DCF38
+
+ thumb_func_start MOD85_021DCF64
+MOD85_021DCF64: ; 0x021DCF64
+ push {r3, r4, r5, lr}
+ ldr r4, _021DCF80 ; =0x021DFA8C
+ add r5, r1, #0
+_021DCF6A:
+ ldr r1, [r5, #4]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ ldr r1, [r5, #8]
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ blx r1
+ cmp r0, #1
+ beq _021DCF6A
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DCF80: .word 0x021DFA8C
+ thumb_func_end MOD85_021DCF64
+
+ thumb_func_start MOD85_021DCF84
+MOD85_021DCF84: ; 0x021DCF84
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DCF84
+
+ thumb_func_start MOD85_021DCF88
+MOD85_021DCF88: ; 0x021DCF88
+ push {r4, r5, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ cmp r0, #2
+ bne _021DCFFA
+ ldr r5, _021DD000 ; =0x021DF6D0
+ add r3, sp, #0x28
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, sp, #0x1c
+ str r0, [r3]
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #6
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #0x20]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x24
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0x1c
+ bl FUN_02020054
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0x28]
+ bl FUN_02020088
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+_021DCFFA:
+ mov r0, #0
+ add sp, #0x34
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DD000: .word 0x021DF6D0
+ thumb_func_end MOD85_021DCF88
+
+ thumb_func_start MOD85_021DD004
+MOD85_021DD004: ; 0x021DD004
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD85_021DD004
+
+ thumb_func_start MOD85_021DD008
+MOD85_021DD008: ; 0x021DD008
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD05C ; =0x021DF7FC
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD060 ; =0x021DF7F0
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD05C: .word 0x021DF7FC
+_021DD060: .word 0x021DF7F0
+ thumb_func_end MOD85_021DD008
+
+ thumb_func_start MOD85_021DD064
+MOD85_021DD064: ; 0x021DD064
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl MOD85_021DECBC
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl MOD85_021DECD0
+ ldr r0, [sp]
+ add r0, #0xc0
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r0, #0xc0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #0x10
+ blt _021DD0AE
+ mov r0, #5
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0x23
+ bl FUN_02005578
+_021DD0AE:
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ mov r0, #0
+ add sp, #0x18
+ pop {r4, pc}
+ thumb_func_end MOD85_021DD064
+
+ thumb_func_start MOD85_021DD0C4
+MOD85_021DD0C4: ; 0x021DD0C4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #9
+ blt _021DD0EA
+ mov r0, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4, #0xc]
+_021DD0EA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD0C4
+
+ thumb_func_start MOD85_021DD0F0
+MOD85_021DD0F0: ; 0x021DD0F0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD14C ; =0x021DF7D8
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD150 ; =0x021DF7CC
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, _021DD154 ; =0x000006D1
+ bl FUN_020054C8
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DD14C: .word 0x021DF7D8
+_021DD150: .word 0x021DF7CC
+_021DD154: .word 0x000006D1
+ thumb_func_end MOD85_021DD0F0
+
+ thumb_func_start MOD85_021DD158
+MOD85_021DD158: ; 0x021DD158
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl MOD85_021DECBC
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl MOD85_021DECD0
+ mov r0, #6
+ ldr r1, [sp]
+ lsl r0, r0, #6
+ sub r1, r1, r0
+ str r1, [sp]
+ ldr r1, [sp, #4]
+ sub r0, r1, r0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #8
+ blt _021DD1A4
+ mov r0, #0x1d
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4, #0xc]
+_021DD1A4:
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ mov r0, #0
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD158
+
+ thumb_func_start MOD85_021DD1BC
+MOD85_021DD1BC: ; 0x021DD1BC
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD21C ; =0x021DF7B4
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD220 ; =0x021DF7A8
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DD21C: .word 0x021DF7B4
+_021DD220: .word 0x021DF7A8
+ thumb_func_end MOD85_021DD1BC
+
+ thumb_func_start MOD85_021DD224
+MOD85_021DD224: ; 0x021DD224
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD290 ; =0x021DF760
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD294 ; =0x021DF6DC
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #2
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xa
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_020201DC
+ cmp r0, #2
+ beq _021DD27E
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+_021DD27E:
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DD290: .word 0x021DF760
+_021DD294: .word 0x021DF6DC
+ thumb_func_end MOD85_021DD224
+
+ thumb_func_start MOD85_021DD298
+MOD85_021DD298: ; 0x021DD298
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD2F8 ; =0x021DF67C
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD2FC ; =0x021DF850
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #5
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD2F8: .word 0x021DF67C
+_021DD2FC: .word 0x021DF850
+ thumb_func_end MOD85_021DD298
+
+ thumb_func_start MOD85_021DD300
+MOD85_021DD300: ; 0x021DD300
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD360 ; =0x021DF688
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD364 ; =0x021DF73C
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD360: .word 0x021DF688
+_021DD364: .word 0x021DF73C
+ thumb_func_end MOD85_021DD300
+
+ thumb_func_start MOD85_021DD368
+MOD85_021DD368: ; 0x021DD368
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD3C8 ; =0x021DF718
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD3CC ; =0x021DF724
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD3C8: .word 0x021DF718
+_021DD3CC: .word 0x021DF724
+ thumb_func_end MOD85_021DD368
+
+ thumb_func_start MOD85_021DD3D0
+MOD85_021DD3D0: ; 0x021DD3D0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ ldr r3, _021DD434 ; =0x021DF778
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r5, _021DD438 ; =0x021DF604
+ str r0, [r2]
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020064
+ ldr r0, [r4, #0x28]
+ add r1, sp, #0xc
+ bl FUN_02020044
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ ldr r0, [r4, #0x28]
+ mov r1, #5
+ bl FUN_02020130
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+ mov r0, #0
+ str r0, [r4, #0x14]
+ mov r1, #1
+ str r1, [r4, #0xc]
+ ldr r1, [r4, #8]
+ add r1, r1, #1
+ str r1, [r4, #8]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021DD434: .word 0x021DF778
+_021DD438: .word 0x021DF604
+ thumb_func_end MOD85_021DD3D0
+
+ thumb_func_start MOD85_021DD43C
+MOD85_021DD43C: ; 0x021DD43C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ ldr r0, [r4, #0x28]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021DD468
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+ cmp r0, #8
+ blt _021DD468
+ mov r0, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x28]
+ bl FUN_02020198
+_021DD468:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DD43C
+
+ thumb_func_start MOD85_021DD46C
+MOD85_021DD46C: ; 0x021DD46C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ mov r0, #0x45
+ ldr r4, [r5, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD85_021DE8A8
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD85_021DE97C
+ mov r0, #1
+ str r0, [r5, #0x10]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD85_021DD46C
+
+ thumb_func_start MOD85_021DD498
+MOD85_021DD498: ; 0x021DD498
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0x2c]
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _021DD4C0
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #5
+ bl MOD85_021DE9B0
+ mov r0, #2
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DD4C0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD498
+
+ thumb_func_start MOD85_021DD4C4
+MOD85_021DD4C4: ; 0x021DD4C4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r2, #0x45
+ ldr r4, [r5, #0x2c]
+ mov r0, #5
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x38
+ bl MOD85_021DE840
+ mov r2, #0x45
+ mov r0, #5
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #2
+ mov r3, #0x3b
+ bl MOD85_021DE910
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x39
+ mov r3, #5
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x3a
+ mov r3, #5
+ bl MOD85_021DEA4C
+ ldr r0, _021DD540 ; =MOD85_021DD46C
+ ldr r2, _021DD544 ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DD52C
+ bl ErrorHandling
+_021DD52C:
+ ldr r0, _021DD548 ; =MOD85_021DD498
+ ldr r2, _021DD544 ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DD53E
+ bl ErrorHandling
+_021DD53E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DD540: .word MOD85_021DD46C
+_021DD544: .word 0x00000101
+_021DD548: .word MOD85_021DD498
+ thumb_func_end MOD85_021DD4C4
+
+ thumb_func_start MOD85_021DD54C
+MOD85_021DD54C: ; 0x021DD54C
+ push {lr}
+ sub sp, #0x14
+ add r2, sp, #8
+ mov r3, #0
+ str r3, [r2]
+ str r3, [r2, #4]
+ str r3, [r2, #8]
+ str r0, [sp]
+ mov r1, #0x88
+ str r1, [sp, #4]
+ ldr r1, _021DD570 ; =0x0000044C
+ ldr r0, [r0, r1]
+ ldr r1, _021DD574 ; =0x021DF8D4
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {pc}
+ nop
+_021DD570: .word 0x0000044C
+_021DD574: .word 0x021DF8D4
+ thumb_func_end MOD85_021DD54C
+
+ thumb_func_start MOD85_021DD578
+MOD85_021DD578: ; 0x021DD578
+ push {r3, lr}
+ bl FUN_02064738
+ ldr r0, [r0, #4]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD578
+
+ thumb_func_start MOD85_021DD584
+MOD85_021DD584: ; 0x021DD584
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ bl MOD85_021DD4C4
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021DD584
+
+ thumb_func_start MOD85_021DD598
+MOD85_021DD598: ; 0x021DD598
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldr r0, [r4, #0x34]
+ cmp r0, #0
+ beq _021DD5CE
+ mov r1, #5
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD85_021DECA0
+ ldr r0, [r4, #0x40]
+ cmp r0, #0
+ beq _021DD5CE
+ add r4, #0x3c
+ add r0, r4, #0
+ bl MOD85_021DECA0
+_021DD5CE:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD598
+
+ thumb_func_start MOD85_021DD5D4
+MOD85_021DD5D4: ; 0x021DD5D4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r1, sp, #0xc
+ add r7, r0, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0206477C
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ add r0, r0, r6
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x30]
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ add r1, sp, #0xc
+ bl FUN_0206476C
+ ldr r0, [sp, #0x38]
+ cmp r0, #0
+ bne _021DD60A
+ ldr r0, [sp, #0xc]
+ add r0, r5, r0
+ str r0, [sp]
+ b _021DD610
+_021DD60A:
+ ldr r0, [sp, #0xc]
+ sub r0, r5, r0
+ str r0, [sp]
+_021DD610:
+ ldr r0, [sp, #0x10]
+ add r1, sp, #0
+ sub r0, r4, r0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x34]
+ bl FUN_02020044
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD5D4
+
+ thumb_func_start MOD85_021DD624
+MOD85_021DD624: ; 0x021DD624
+ push {r4, r5, r6, lr}
+ sub sp, #0x40
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r6, r0, #0
+ cmp r1, #0xa
+ bls _021DD634
+ b _021DD96C
+_021DD634:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DD640: ; jump table
+ .short _021DD656 - _021DD640 - 2 ; case 0
+ .short _021DD6C8 - _021DD640 - 2 ; case 1
+ .short _021DD750 - _021DD640 - 2 ; case 2
+ .short _021DD764 - _021DD640 - 2 ; case 3
+ .short _021DD796 - _021DD640 - 2 ; case 4
+ .short _021DD7C8 - _021DD640 - 2 ; case 5
+ .short _021DD7FA - _021DD640 - 2 ; case 6
+ .short _021DD842 - _021DD640 - 2 ; case 7
+ .short _021DD858 - _021DD640 - 2 ; case 8
+ .short _021DD8A4 - _021DD640 - 2 ; case 9
+ .short _021DD904 - _021DD640 - 2 ; case 10
+_021DD656:
+ ldr r0, [r4, #0x10]
+ cmp r0, #2
+ beq _021DD65E
+ b _021DD96C
+_021DD65E:
+ ldr r5, _021DD970 ; =0x021DF82C
+ add r3, sp, #0x34
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #4
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x30
+ bl MOD85_021DEC00
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #4
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #0x3c
+ add r2, sp, #0x34
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl FUN_02020100
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DD6C8:
+ add r0, r6, #0
+ add r1, sp, #0x28
+ mov r5, #0
+ bl FUN_0206477C
+ mov r1, #2
+ ldr r2, [sp, #0x2c]
+ lsl r1, r1, #0xe
+ ldr r0, [sp, #0x28]
+ add r2, r2, r1
+ add r0, r0, r1
+ str r2, [sp, #0x2c]
+ lsl r2, r1, #3
+ str r0, [sp, #0x28]
+ cmp r0, r2
+ blt _021DD6EE
+ add r0, r2, #0
+ str r0, [sp, #0x28]
+ add r5, r5, #1
+_021DD6EE:
+ mov r0, #0xe
+ ldr r1, [sp, #0x2c]
+ lsl r0, r0, #0xe
+ cmp r1, r0
+ blt _021DD700
+ mov r0, #1
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x2c]
+ add r5, r5, #1
+_021DD700:
+ add r0, r6, #0
+ add r1, sp, #0x28
+ bl FUN_0206476C
+ mov r0, #2
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0x10
+ sub r0, r1, r0
+ str r0, [sp, #0x1c]
+ mov r0, #0x69
+ ldr r1, [sp, #0x2c]
+ lsl r0, r0, #0xe
+ sub r0, r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x34]
+ add r1, sp, #0x1c
+ bl FUN_02020044
+ mov r0, #0x12
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0x10
+ sub r0, r0, r1
+ str r0, [sp, #0x1c]
+ mov r0, #0x69
+ ldr r1, [sp, #0x2c]
+ lsl r0, r0, #0xe
+ sub r0, r0, r1
+ str r0, [sp, #0x20]
+ ldr r0, [r4, #0x40]
+ add r1, sp, #0x1c
+ bl FUN_02020044
+ cmp r5, #2
+ beq _021DD746
+ b _021DD96C
+_021DD746:
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD750:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #8
+ blo _021DD84C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DD764:
+ ldr r3, _021DD974 ; =0xFFFFC000
+ mov r2, #0x69
+ str r3, [sp]
+ ldr r0, [r4, #0x34]
+ lsl r1, r3, #3
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r2, r2, #0xe
+ asr r3, r3, #1
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD84C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD796:
+ mov r3, #1
+ lsl r3, r3, #0xe
+ str r3, [sp]
+ ldr r1, [r4, #0x34]
+ mov r2, #0x69
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r1, _021DD978 ; =0xFFFE0000
+ lsl r2, r2, #0xe
+ lsr r3, r3, #1
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD84C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD7C8:
+ ldr r3, _021DD974 ; =0xFFFFC000
+ mov r2, #0x69
+ str r3, [sp]
+ ldr r1, [r4, #0x40]
+ lsl r2, r2, #0xe
+ str r1, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r1, #0x12
+ lsl r1, r1, #0x10
+ asr r3, r3, #1
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD84C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD7FA:
+ mov r1, #1
+ lsl r1, r1, #0xe
+ str r1, [sp]
+ ldr r1, [r4, #0x40]
+ mov r2, #0x69
+ str r1, [sp, #4]
+ mov r3, #1
+ mov r1, #0x12
+ str r3, [sp, #8]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ lsl r3, r3, #0xd
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD84C
+ mov r1, #0
+ str r1, [r4, #8]
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #2
+ bhs _021DD836
+ mov r0, #3
+ add sp, #0x40
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD836:
+ str r1, [r4, #0xc]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD842:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #8
+ bhs _021DD84E
+_021DD84C:
+ b _021DD96C
+_021DD84E:
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+_021DD858:
+ ldr r3, _021DD974 ; =0xFFFFC000
+ mov r2, #0x69
+ str r3, [sp]
+ ldr r0, [r4, #0x34]
+ lsl r1, r3, #3
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r2, r2, #0xe
+ asr r3, r3, #1
+ bl MOD85_021DD5D4
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x40]
+ mov r1, #0x12
+ str r0, [sp, #4]
+ mov r0, #1
+ mov r2, #0x69
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD96C
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD8A4:
+ mov r3, #1
+ lsl r3, r3, #0xe
+ str r3, [sp]
+ ldr r1, [r4, #0x34]
+ mov r2, #0x69
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r1, _021DD978 ; =0xFFFE0000
+ lsl r2, r2, #0xe
+ lsr r3, r3, #1
+ bl MOD85_021DD5D4
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x40]
+ mov r1, #0x12
+ str r0, [sp, #4]
+ mov r0, #1
+ mov r2, #0x69
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD96C
+ mov r1, #0
+ str r1, [r4, #8]
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ cmp r0, #2
+ bhs _021DD8F8
+ mov r0, #8
+ add sp, #0x40
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD8F8:
+ str r1, [r4, #0xc]
+ ldr r0, [r4]
+ add sp, #0x40
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, r5, r6, pc}
+_021DD904:
+ ldr r3, _021DD97C ; =0xFFFF8000
+ mov r2, #0x69
+ str r3, [sp]
+ ldr r1, [r4, #0x34]
+ lsl r2, r2, #0xe
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ lsl r1, r3, #2
+ bl MOD85_021DD5D4
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x40]
+ mov r1, #0x12
+ str r0, [sp, #4]
+ mov r0, #1
+ mov r2, #0x69
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ bl MOD85_021DD5D4
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #4
+ blo _021DD962
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD85_021DECA0
+ add r0, r4, #0
+ add r0, #0x3c
+ bl MOD85_021DECA0
+ mov r1, #5
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r4, #0x2c]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+_021DD962:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #4]
+_021DD96C:
+ add sp, #0x40
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DD970: .word 0x021DF82C
+_021DD974: .word 0xFFFFC000
+_021DD978: .word 0xFFFE0000
+_021DD97C: .word 0xFFFF8000
+ thumb_func_end MOD85_021DD624
+
+ thumb_func_start MOD85_021DD980
+MOD85_021DD980: ; 0x021DD980
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD85_021DD980
+
+ thumb_func_start MOD85_021DD984
+MOD85_021DD984: ; 0x021DD984
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DD9B0 ; =0x021DF6B8
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DD9B4 ; =0x021DF8E8
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DD9B8 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DD9B0: .word 0x021DF6B8
+_021DD9B4: .word 0x021DF8E8
+_021DD9B8: .word 0x0000044C
+ thumb_func_end MOD85_021DD984
+
+ thumb_func_start MOD85_021DD9BC
+MOD85_021DD9BC: ; 0x021DD9BC
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4]
+ add r0, r5, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #4
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DD9BC
+
+ thumb_func_start MOD85_021DDA08
+MOD85_021DDA08: ; 0x021DDA08
+ ldr r3, _021DDA10 ; =MOD85_021DECA0
+ add r0, r1, #4
+ bx r3
+ nop
+_021DDA10: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DDA08
+
+ thumb_func_start MOD85_021DDA14
+MOD85_021DDA14: ; 0x021DDA14
+ mov r0, #0x52
+ ldr r2, [r1]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ mov r3, #1
+ cmp r0, #1
+ bne _021DDA24
+ mov r3, #0
+_021DDA24:
+ ldr r0, [r1, #8]
+ add r1, r3, #0
+ ldr r3, _021DDA2C ; =FUN_020200A0
+ bx r3
+ .align 2, 0
+_021DDA2C: .word FUN_020200A0
+ thumb_func_end MOD85_021DDA14
+
+ thumb_func_start MOD85_021DDA30
+MOD85_021DDA30: ; 0x021DDA30
+ push {lr}
+ sub sp, #0x14
+ mov r1, #0x15
+ lsl r1, r1, #0xe
+ str r1, [sp, #8]
+ mov r1, #0x13
+ lsl r1, r1, #0x10
+ str r1, [sp, #0xc]
+ str r0, [sp]
+ mov r1, #0x8e
+ str r1, [sp, #4]
+ ldr r1, _021DDA58 ; =0x0000044C
+ add r2, sp, #8
+ ldr r0, [r0, r1]
+ ldr r1, _021DDA5C ; =0x021DF924
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {pc}
+ .align 2, 0
+_021DDA58: .word 0x0000044C
+_021DDA5C: .word 0x021DF924
+ thumb_func_end MOD85_021DDA30
+
+ thumb_func_start MOD85_021DDA60
+MOD85_021DDA60: ; 0x021DDA60
+ push {r3, r4, r5, lr}
+ sub sp, #0x40
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0x28
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r3, _021DDAEC ; =0x021DF6A0
+ str r0, [r1, #8]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_0206475C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ add r1, sp, #0x34
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #8
+ add r2, sp, #0x34
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x28
+ bl FUN_02020054
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x1c
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02020088
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x40
+ pop {r3, r4, r5, pc}
+ nop
+_021DDAEC: .word 0x021DF6A0
+ thumb_func_end MOD85_021DDA60
+
+ thumb_func_start MOD85_021DDAF0
+MOD85_021DDAF0: ; 0x021DDAF0
+ ldr r3, _021DDAF8 ; =MOD85_021DECA0
+ add r1, #8
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DDAF8: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DDAF0
+
+ thumb_func_start MOD85_021DDAFC
+MOD85_021DDAFC: ; 0x021DDAFC
+ push {r3, lr}
+ ldr r2, [r1]
+ add r2, r2, #1
+ str r2, [r1]
+ cmp r2, #0x2d
+ blt _021DDB0C
+ bl FUN_02064520
+_021DDB0C:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DDAFC
+
+ thumb_func_start MOD85_021DDB10
+MOD85_021DDB10: ; 0x021DDB10
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DDB3C ; =0x021DF790
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DDB40 ; =0x021DF988
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DDB44 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DDB3C: .word 0x021DF790
+_021DDB40: .word 0x021DF988
+_021DDB44: .word 0x0000044C
+ thumb_func_end MOD85_021DDB10
+
+ thumb_func_start MOD85_021DDB48
+MOD85_021DDB48: ; 0x021DDB48
+ push {r3, r4, r5, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4]
+ add r0, r5, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #7
+ str r1, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #4
+ add r2, sp, #0x1c
+ bl MOD85_021DEC00
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021DDB48
+
+ thumb_func_start MOD85_021DDB94
+MOD85_021DDB94: ; 0x021DDB94
+ ldr r3, _021DDB9C ; =MOD85_021DECA0
+ add r0, r1, #4
+ bx r3
+ nop
+_021DDB9C: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DDB94
+
+ thumb_func_start MOD85_021DDBA0
+MOD85_021DDBA0: ; 0x021DDBA0
+ mov r0, #0x52
+ ldr r2, [r1]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ mov r3, #1
+ cmp r0, #1
+ bne _021DDBB0
+ mov r3, #0
+_021DDBB0:
+ ldr r0, [r1, #8]
+ add r1, r3, #0
+ ldr r3, _021DDBB8 ; =FUN_020200A0
+ bx r3
+ .align 2, 0
+_021DDBB8: .word FUN_020200A0
+ thumb_func_end MOD85_021DDBA0
+
+ thumb_func_start MOD85_021DDBBC
+MOD85_021DDBBC: ; 0x021DDBBC
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DDBF0 ; =0x021DF64C
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DDBF4 ; =0x021DF9B0
+ str r0, [r4]
+ mov r0, #0x11
+ lsl r0, r0, #0xe
+ str r0, [sp, #8]
+ lsl r0, r0, #2
+ str r0, [sp, #0xc]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DDBF8 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DDBF0: .word 0x021DF64C
+_021DDBF4: .word 0x021DF9B0
+_021DDBF8: .word 0x0000044C
+ thumb_func_end MOD85_021DDBBC
+
+ thumb_func_start MOD85_021DDBFC
+MOD85_021DDBFC: ; 0x021DDBFC
+ push {r3, r4, r5, lr}
+ sub sp, #0x40
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, sp, #0x28
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r3, _021DDC88 ; =0x021DF748
+ str r0, [r1, #8]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ bl FUN_0206475C
+ str r0, [r4, #4]
+ add r0, r5, #0
+ add r1, sp, #0x34
+ bl FUN_0206477C
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #7
+ str r1, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ mov r3, #2
+ str r3, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r4, #4]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r1, #8
+ add r2, sp, #0x34
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x28
+ bl FUN_02020054
+ ldr r0, [r4, #0xc]
+ add r1, sp, #0x1c
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02020088
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ add sp, #0x40
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DDC88: .word 0x021DF748
+ thumb_func_end MOD85_021DDBFC
+
+ thumb_func_start MOD85_021DDC8C
+MOD85_021DDC8C: ; 0x021DDC8C
+ ldr r3, _021DDC94 ; =MOD85_021DECA0
+ add r1, #8
+ add r0, r1, #0
+ bx r3
+ .align 2, 0
+_021DDC94: .word MOD85_021DECA0
+ thumb_func_end MOD85_021DDC8C
+
+ thumb_func_start MOD85_021DDC98
+MOD85_021DDC98: ; 0x021DDC98
+ push {r3, lr}
+ ldr r2, [r1]
+ add r2, r2, #1
+ str r2, [r1]
+ cmp r2, #0x2d
+ blt _021DDCA8
+ bl FUN_02064520
+_021DDCA8:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DDC98
+
+ thumb_func_start MOD85_021DDCAC
+MOD85_021DDCAC: ; 0x021DDCAC
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DDCD8 ; =0x021DF610
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DDCDC ; =0x021DF898
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DDCE0 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DDCD8: .word 0x021DF610
+_021DDCDC: .word 0x021DF898
+_021DDCE0: .word 0x0000044C
+ thumb_func_end MOD85_021DDCAC
+
+ thumb_func_start MOD85_021DDCE4
+MOD85_021DDCE4: ; 0x021DDCE4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r4, r0, #0
+ add r7, r1, #0
+ bl FUN_0206475C
+ str r0, [r7]
+ add r0, r4, #0
+ add r1, sp, #0x1c
+ bl FUN_0206477C
+ mov r6, #0
+ add r4, r7, #4
+ add r5, r7, #0
+_021DDD00:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #2
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r7]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r4, #0
+ add r2, sp, #0x1c
+ mov r3, #2
+ bl MOD85_021DEC00
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ add r6, r6, #1
+ add r4, #0xc
+ add r5, #0xc
+ cmp r6, #2
+ blt _021DDD00
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DDCE4
+
+ thumb_func_start MOD85_021DDD4C
+MOD85_021DDD4C: ; 0x021DDD4C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #4
+ bl MOD85_021DECA0
+ add r4, #0x10
+ add r0, r4, #0
+ bl MOD85_021DECA0
+ pop {r4, pc}
+ thumb_func_end MOD85_021DDD4C
+
+ thumb_func_start MOD85_021DDD60
+MOD85_021DDD60: ; 0x021DDD60
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ mov r0, #0x4f
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ add r4, r1, r0
+ ldr r0, [r5, #8]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, #0xc]
+ cmp r0, #1
+ beq _021DDE06
+ ldr r3, _021DDE0C ; =0x021DF76C
+ add r2, sp, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r6, #0
+ str r0, [r2]
+ ldr r0, [r5]
+ ldr r7, [r0, #0x10]
+ cmp r7, #0x63
+ bls _021DDD9C
+ mov r7, #0x63
+_021DDD9C:
+ add r0, r7, #0
+ mov r1, #0x64
+ bl _u32_div_f
+ add r0, r1, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ add r4, r0, #0
+ beq _021DDDDA
+ ldr r0, [r5, #8]
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ bl FUN_02020130
+ ldr r0, [r5, #8]
+ bl FUN_02020198
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #2
+ ldr r1, [sp]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp]
+ add r6, r6, #1
+_021DDDDA:
+ mov r0, #0xc
+ add r4, r6, #0
+ add r5, #8
+ mul r4, r0
+ ldr r0, [r5, r4]
+ add r1, sp, #0
+ bl FUN_02020044
+ add r0, r7, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ ldr r0, [r5, r4]
+ bl FUN_02020130
+ ldr r0, [r5, r4]
+ bl FUN_02020198
+ ldr r0, [r5, r4]
+ mov r1, #1
+ bl FUN_020200A0
+_021DDE06:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DDE0C: .word 0x021DF76C
+ thumb_func_end MOD85_021DDD60
+
+ thumb_func_start MOD85_021DDE10
+MOD85_021DDE10: ; 0x021DDE10
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DDE3C ; =0x021DF844
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DDE40 ; =0x021DF8FC
+ str r0, [r4]
+ str r3, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DDE44 ; =0x0000044C
+ ldr r0, [r3, r0]
+ mov r3, #0
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DDE3C: .word 0x021DF844
+_021DDE40: .word 0x021DF8FC
+_021DDE44: .word 0x0000044C
+ thumb_func_end MOD85_021DDE10
+
+ thumb_func_start MOD85_021DDE48
+MOD85_021DDE48: ; 0x021DDE48
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ ldr r3, _021DDEAC ; =0x021DF6C4
+ add r4, r0, #0
+ add r6, r1, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x1c
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r4, #0
+ bl FUN_0206475C
+ str r0, [r6]
+ mov r4, #0
+ add r5, r6, #4
+ mov r7, #2
+_021DDE6A:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r7, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r6]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r5, #0
+ add r2, sp, #0x1c
+ add r3, r7, #0
+ bl MOD85_021DEC00
+ mov r0, #2
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ add r4, r4, #1
+ add r5, #0xc
+ str r0, [sp, #0x1c]
+ cmp r4, #5
+ blt _021DDE6A
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DDEAC: .word 0x021DF6C4
+ thumb_func_end MOD85_021DDE48
+
+ thumb_func_start MOD85_021DDEB0
+MOD85_021DDEB0: ; 0x021DDEB0
+ push {r3, r4, r5, lr}
+ mov r4, #0
+ add r5, r1, #4
+_021DDEB6:
+ add r0, r5, #0
+ bl MOD85_021DECA0
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #5
+ blt _021DDEB6
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DDEB0
+
+ thumb_func_start MOD85_021DDEC8
+MOD85_021DDEC8: ; 0x021DDEC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r0, #0x52
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r7, #1
+ cmp r0, #1
+ bne _021DDEDC
+ mov r7, #0
+_021DDEDC:
+ mov r6, #0
+ add r4, r5, #0
+_021DDEE0:
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #5
+ blt _021DDEE0
+ cmp r7, #0
+ beq _021DDF34
+ ldr r0, [r5]
+ ldr r6, [r0, #0x14]
+ ldr r0, _021DDF38 ; =0x0000C350
+ cmp r6, r0
+ ble _021DDF00
+ add r6, r0, #0
+_021DDF00:
+ ldr r4, _021DDF3C ; =0x00002710
+ mov r7, #0xa
+_021DDF04:
+ add r1, r4, #0
+ add r0, r6, #0
+ mul r1, r7
+ bl _s32_div_f
+ add r0, r1, #0
+ add r1, r4, #0
+ bl _s32_div_f
+ add r1, r0, #0
+ ldr r0, [r5, #8]
+ bl FUN_02020130
+ ldr r0, [r5, #8]
+ bl FUN_02020198
+ add r0, r4, #0
+ mov r1, #0xa
+ bl _s32_div_f
+ add r4, r0, #0
+ add r5, #0xc
+ cmp r4, #1
+ bge _021DDF04
+_021DDF34:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DDF38: .word 0x0000C350
+_021DDF3C: .word 0x00002710
+ thumb_func_end MOD85_021DDEC8
+
+ thumb_func_start MOD85_021DDF40
+MOD85_021DDF40: ; 0x021DDF40
+ push {lr}
+ sub sp, #0x14
+ add r3, r1, #0
+ add r2, sp, #8
+ mov r1, #0
+ str r1, [r2]
+ str r1, [r2, #4]
+ str r1, [r2, #8]
+ str r0, [sp]
+ mov r1, #0x8e
+ str r1, [sp, #4]
+ ldr r1, _021DDF64 ; =0x0000044C
+ ldr r0, [r0, r1]
+ ldr r1, _021DDF68 ; =0x021DF99C
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {pc}
+ .align 2, 0
+_021DDF64: .word 0x0000044C
+_021DDF68: .word 0x021DF99C
+ thumb_func_end MOD85_021DDF40
+
+ thumb_func_start MOD85_021DDF6C
+MOD85_021DDF6C: ; 0x021DDF6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r6, r0, #0
+ add r5, r1, #0
+ add r1, sp, #0x2c
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ ldr r3, _021DE0D0 ; =0x021DF79C
+ str r0, [r1, #8]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x20
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r6, #0
+ bl FUN_0206475C
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_02064754
+ str r0, [r5]
+ str r4, [r5, #0x14]
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _021DDFD6
+ ldr r1, [r4, #0x1c]
+ ldr r0, _021DE0D4 ; =0x000003E7
+ str r1, [r5, #4]
+ cmp r1, r0
+ bls _021DDFAE
+ str r0, [r5, #4]
+_021DDFAE:
+ ldr r0, [r5, #4]
+ cmp r0, #0x64
+ blo _021DDFBA
+ mov r0, #3
+ str r0, [r5, #8]
+ b _021DDFC8
+_021DDFBA:
+ cmp r0, #0xa
+ blo _021DDFC4
+ mov r0, #2
+ str r0, [r5, #8]
+ b _021DDFC8
+_021DDFC4:
+ mov r0, #1
+ str r0, [r5, #8]
+_021DDFC8:
+ mov r0, #0x32
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x38]
+ mov r0, #0x13
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x3c]
+ b _021DE022
+_021DDFD6:
+ ldr r1, [r4, #0x14]
+ ldr r0, _021DE0D8 ; =0x0001869F
+ str r1, [r5, #4]
+ cmp r1, r0
+ bls _021DDFE2
+ str r0, [r5, #4]
+_021DDFE2:
+ ldr r1, [r5, #4]
+ ldr r0, _021DE0DC ; =0x00002710
+ cmp r1, r0
+ blo _021DDFF0
+ mov r0, #5
+ str r0, [r5, #8]
+ b _021DE016
+_021DDFF0:
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ cmp r1, r0
+ blo _021DDFFE
+ mov r0, #4
+ str r0, [r5, #8]
+ b _021DE016
+_021DDFFE:
+ cmp r1, #0x64
+ blo _021DE008
+ mov r0, #3
+ str r0, [r5, #8]
+ b _021DE016
+_021DE008:
+ cmp r1, #0xa
+ blo _021DE012
+ mov r0, #2
+ str r0, [r5, #8]
+ b _021DE016
+_021DE012:
+ mov r0, #1
+ str r0, [r5, #8]
+_021DE016:
+ mov r0, #0x32
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x38]
+ mov r0, #0x11
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x3c]
+_021DE022:
+ ldr r0, [r5, #8]
+ mov r7, #0
+ mov r6, #1
+ cmp r0, #0
+ bls _021DE0C6
+ add r0, r5, #0
+ str r0, [sp, #0x1c]
+ add r0, #0x18
+ str r0, [sp, #0x1c]
+ add r4, r5, #0
+_021DE036:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #2
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r5, #0x14]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x38
+ mov r3, #2
+ bl MOD85_021DEC00
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl FUN_020200EC
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x2c
+ bl FUN_02020054
+ ldr r0, [r4, #0x1c]
+ add r1, sp, #0x20
+ bl FUN_02020064
+ mov r0, #0
+ bl FUN_0201B9A0
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_02020088
+ mov r1, #0xa
+ ldr r0, [r5, #4]
+ mul r1, r6
+ bl _u32_div_f
+ add r0, r1, #0
+ add r1, r6, #0
+ bl _u32_div_f
+ add r1, r0, #0
+ ldr r0, [r4, #0x1c]
+ bl FUN_02020130
+ ldr r0, [r4, #0x1c]
+ bl FUN_02020198
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x38]
+ add r0, #0xc
+ str r0, [sp, #0x1c]
+ mov r0, #0xa
+ mul r6, r0
+ mov r0, #1
+ lsl r0, r0, #0x10
+ sub r0, r1, r0
+ str r0, [sp, #0x38]
+ ldr r0, [r5, #8]
+ add r7, r7, #1
+ add r4, #0xc
+ cmp r7, r0
+ blo _021DE036
+_021DE0C6:
+ str r7, [r5, #0x10]
+ mov r0, #1
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DE0D0: .word 0x021DF79C
+_021DE0D4: .word 0x000003E7
+_021DE0D8: .word 0x0001869F
+_021DE0DC: .word 0x00002710
+ thumb_func_end MOD85_021DDF6C
+
+ thumb_func_start MOD85_021DE0E0
+MOD85_021DE0E0: ; 0x021DE0E0
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ ldr r0, [r6, #0x10]
+ mov r4, #0
+ cmp r0, #0
+ ble _021DE100
+ add r5, r6, #0
+ add r5, #0x18
+_021DE0F0:
+ add r0, r5, #0
+ bl MOD85_021DECA0
+ ldr r0, [r6, #0x10]
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, r0
+ blt _021DE0F0
+_021DE100:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE0E0
+
+ thumb_func_start MOD85_021DE104
+MOD85_021DE104: ; 0x021DE104
+ push {r3, lr}
+ ldr r2, [r1, #0xc]
+ add r2, r2, #1
+ str r2, [r1, #0xc]
+ cmp r2, #0x2d
+ blt _021DE114
+ bl FUN_02064520
+_021DE114:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE104
+
+ thumb_func_start MOD85_021DE118
+MOD85_021DE118: ; 0x021DE118
+ push {r4, r5, lr}
+ sub sp, #0x14
+ ldr r5, _021DE14C ; =0x021DF664
+ add r2, r0, #0
+ add r3, r1, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #8
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r4]
+ ldr r0, _021DE150 ; =0x000003E7
+ cmp r3, r0
+ bls _021DE134
+ add r3, r0, #0
+_021DE134:
+ str r2, [sp]
+ mov r0, #0x8e
+ str r0, [sp, #4]
+ ldr r0, _021DE154 ; =0x0000044C
+ ldr r1, _021DE158 ; =0x021DF9C4
+ ldr r0, [r2, r0]
+ add r2, sp, #8
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021DE14C: .word 0x021DF664
+_021DE150: .word 0x000003E7
+_021DE154: .word 0x0000044C
+_021DE158: .word 0x021DF9C4
+ thumb_func_end MOD85_021DE118
+
+ thumb_func_start MOD85_021DE15C
+MOD85_021DE15C: ; 0x021DE15C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_0206475C
+ str r0, [r5, #8]
+ add r0, r4, #0
+ bl FUN_02064754
+ str r0, [sp, #0x20]
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl FUN_0206477C
+ ldr r0, [sp, #0x20]
+ cmp r0, #0x64
+ blo _021DE192
+ mov r0, #3
+ str r0, [r5, #4]
+ mov r0, #1
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0x10
+ sub r0, r1, r0
+ mov r4, #0x64
+ str r0, [sp, #0x24]
+ b _021DE1AA
+_021DE192:
+ cmp r0, #0xa
+ blo _021DE1A6
+ mov r0, #2
+ str r0, [r5, #4]
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ mov r4, #0xa
+ str r0, [sp, #0x24]
+ b _021DE1AA
+_021DE1A6:
+ mov r4, #1
+ str r4, [r5, #4]
+_021DE1AA:
+ ldr r0, [r5, #4]
+ mov r6, #0
+ cmp r0, #0
+ ble _021DE226
+ add r0, r5, #0
+ str r0, [sp, #0x1c]
+ add r0, #0xc
+ str r0, [sp, #0x1c]
+ add r7, r5, #0
+_021DE1BC:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ mov r0, #9
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #2
+ str r0, [sp, #0x14]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r5, #8]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x1c]
+ add r2, sp, #0x24
+ mov r3, #2
+ bl MOD85_021DEC00
+ mov r1, #0xa
+ ldr r0, [sp, #0x20]
+ mul r1, r4
+ bl _u32_div_f
+ add r0, r1, #0
+ add r1, r4, #0
+ bl _u32_div_f
+ add r1, r0, #0
+ ldr r0, [r7, #0x10]
+ bl FUN_02020130
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x24]
+ add r0, #0xc
+ str r0, [sp, #0x1c]
+ mov r0, #1
+ lsl r0, r0, #0x10
+ add r0, r1, r0
+ str r0, [sp, #0x24]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r7, #0xc
+ add r6, r6, #1
+ bl _u32_div_f
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ cmp r6, r0
+ blt _021DE1BC
+_021DE226:
+ mov r0, #1
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DE15C
+
+ thumb_func_start MOD85_021DE22C
+MOD85_021DE22C: ; 0x021DE22C
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ ldr r0, [r6, #4]
+ mov r4, #0
+ cmp r0, #0
+ ble _021DE24C
+ add r5, r6, #0
+ add r5, #0xc
+_021DE23C:
+ add r0, r5, #0
+ bl MOD85_021DECA0
+ ldr r0, [r6, #4]
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, r0
+ blt _021DE23C
+_021DE24C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE22C
+
+ thumb_func_start MOD85_021DE250
+MOD85_021DE250: ; 0x021DE250
+ push {r3, lr}
+ ldr r2, [r1]
+ add r2, r2, #1
+ str r2, [r1]
+ cmp r2, #0x3c
+ blt _021DE260
+ bl FUN_02064520
+_021DE260:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE250
+
+ thumb_func_start MOD85_021DE264
+MOD85_021DE264: ; 0x021DE264
+ push {lr}
+ sub sp, #0x14
+ add r2, sp, #8
+ mov r3, #0
+ str r3, [r2]
+ str r3, [r2, #4]
+ str r3, [r2, #8]
+ str r0, [sp]
+ mov r1, #0x8c
+ str r1, [sp, #4]
+ ldr r1, _021DE288 ; =0x0000044C
+ ldr r0, [r0, r1]
+ ldr r1, _021DE28C ; =0x021DF910
+ bl FUN_020644E4
+ add sp, #0x14
+ pop {pc}
+ nop
+_021DE288: .word 0x0000044C
+_021DE28C: .word 0x021DF910
+ thumb_func_end MOD85_021DE264
+
+ thumb_func_start MOD85_021DE290
+MOD85_021DE290: ; 0x021DE290
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0206475C
+ str r0, [r4, #0x44]
+ ldr r0, [r0, #0x44]
+ add r3, r4, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x44]
+ add r3, #0x1c
+ ldr r0, [r0, #0x48]
+ mov r1, #1
+_021DE2A8:
+ add r2, r0, #0
+ tst r2, r1
+ bne _021DE2BC
+ ldr r2, [r3]
+ lsr r0, r0, #1
+ add r2, r2, #1
+ str r2, [r3]
+ ldr r2, [r4, #0x1c]
+ cmp r2, #5
+ blt _021DE2A8
+_021DE2BC:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #5
+ blt _021DE2C6
+ bl ErrorHandling
+_021DE2C6:
+ add r0, r4, #0
+ bl MOD85_021DE4F0
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD85_021DE290
+
+ thumb_func_start MOD85_021DE2D0
+MOD85_021DE2D0: ; 0x021DE2D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ ldr r0, [r7, #0x14]
+ cmp r0, #0
+ bne _021DE30C
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x20
+_021DE2E2:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021DE2EE
+ add r0, r5, #0
+ bl MOD85_021DECA0
+_021DE2EE:
+ add r6, r6, #1
+ add r4, #0xc
+ add r5, #0xc
+ cmp r6, #3
+ blt _021DE2E2
+ mov r1, #0xa
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r7, #0x44]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ mov r2, #8
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+_021DE30C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE2D0
+
+ thumb_func_start MOD85_021DE310
+MOD85_021DE310: ; 0x021DE310
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ add r5, r1, #0
+ ldr r0, [r5]
+ cmp r0, #5
+ bhi _021DE33A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DE328: ; jump table
+ .short _021DE334 - _021DE328 - 2 ; case 0
+ .short _021DE3AE - _021DE328 - 2 ; case 1
+ .short _021DE3F8 - _021DE328 - 2 ; case 2
+ .short _021DE410 - _021DE328 - 2 ; case 3
+ .short _021DE454 - _021DE328 - 2 ; case 4
+ .short _021DE46C - _021DE328 - 2 ; case 5
+_021DE334:
+ ldr r0, [r5, #8]
+ cmp r0, #2
+ beq _021DE33C
+_021DE33A:
+ b _021DE4A0
+_021DE33C:
+ mov r4, #0
+ add r7, r5, #0
+ str r4, [sp, #0x20]
+ add r7, #0x20
+ add r6, r5, #0
+_021DE346:
+ ldr r1, [r5, #0x1c]
+ mov r0, #0x24
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021DE4A4 ; =0x021DFB80
+ add r0, r0, r2
+ add r3, r4, r0
+ add r2, sp, #0x24
+ ldmia r3!, {r0, r1}
+ mov ip, r2
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r3, #3
+ str r0, [r2]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x18]
+ mov r0, #0x45
+ ldr r1, [r5, #0x44]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ add r1, r7, #0
+ mov r2, ip
+ bl MOD85_021DEC00
+ ldr r0, [r6, #0x24]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [sp, #0x20]
+ add r4, #0xc
+ add r0, r0, #1
+ add r7, #0xc
+ add r6, #0xc
+ str r0, [sp, #0x20]
+ cmp r0, #3
+ blt _021DE346
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE3AE:
+ mov r6, #0
+ str r6, [sp, #0x1c]
+ add r4, r5, #0
+ add r7, sp, #0x24
+_021DE3B6:
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl MOD85_021DECBC
+ mov r0, #1
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xe
+ add r1, r1, r0
+ mov r0, #0xf
+ lsl r0, r0, #0x10
+ str r1, [sp, #0x28]
+ cmp r1, r0
+ blt _021DE3D4
+ str r0, [sp, #0x28]
+ b _021DE3D8
+_021DE3D4:
+ mov r0, #1
+ str r0, [sp, #0x1c]
+_021DE3D8:
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_02020044
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #3
+ blt _021DE3B6
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ bne _021DE4A0
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE3F8:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0x1e
+ blt _021DE4A0
+ mov r0, #0
+ str r0, [r5, #0xc]
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE410:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0xc
+ blt _021DE41E
+ mov r7, #1
+ b _021DE420
+_021DE41E:
+ mov r7, #0
+_021DE420:
+ mov r6, #0
+ add r4, r5, #0
+_021DE424:
+ ldr r0, [r4, #0x24]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #3
+ blt _021DE424
+ ldr r0, [r5, #0xc]
+ cmp r0, #0x1e
+ blt _021DE4A0
+ mov r1, #0
+ str r1, [r5, #0xc]
+ ldr r0, [r5, #0x10]
+ add r0, r0, #1
+ str r0, [r5, #0x10]
+ cmp r0, #3
+ blt _021DE4A0
+ str r1, [r5, #0x10]
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE454:
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0x1e
+ blt _021DE4A0
+ mov r0, #0
+ str r0, [r5, #0xc]
+ ldr r0, [r5]
+ add sp, #0x30
+ add r0, r0, #1
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE46C:
+ add r4, r5, #0
+ mov r6, #0
+ add r4, #0x20
+_021DE472:
+ add r0, r4, #0
+ bl MOD85_021DECA0
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #3
+ blt _021DE472
+ mov r1, #0xa
+ str r1, [sp]
+ mov r0, #0x45
+ ldr r2, [r5, #0x44]
+ lsl r0, r0, #4
+ ldr r0, [r2, r0]
+ mov r2, #8
+ add r3, r1, #0
+ bl MOD85_021DEAB4
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #1
+ str r0, [r5, #4]
+ str r0, [r5, #0x14]
+_021DE4A0:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DE4A4: .word 0x021DFB80
+ thumb_func_end MOD85_021DE310
+
+ thumb_func_start MOD85_021DE4A8
+MOD85_021DE4A8: ; 0x021DE4A8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r0, #0x45
+ ldr r1, [r4, #0x44]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0xa
+ bl MOD85_021DE8A8
+ mov r0, #1
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD85_021DE4A8
+
+ thumb_func_start MOD85_021DE4C8
+MOD85_021DE4C8: ; 0x021DE4C8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x44]
+ cmp r0, #1
+ bne _021DE4EC
+ mov r0, #0x45
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0xa
+ bl MOD85_021DE8DC
+ mov r0, #2
+ str r0, [r4, #8]
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_021DE4EC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE4C8
+
+ thumb_func_start MOD85_021DE4F0
+MOD85_021DE4F0: ; 0x021DE4F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ ldr r4, [r5, #0x44]
+ cmp r0, #0
+ bne _021DE538
+ mov r2, #0x45
+ mov r0, #0xa
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #3
+ mov r3, #0xe
+ bl MOD85_021DE840
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0xf
+ mov r3, #0xa
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x10
+ mov r3, #0xa
+ bl MOD85_021DEA4C
+ b _021DE572
+_021DE538:
+ mov r2, #0x45
+ mov r0, #0xa
+ lsl r2, r2, #4
+ str r0, [sp]
+ ldr r0, [r4, r2]
+ sub r2, #0x18
+ ldr r2, [r4, r2]
+ mov r1, #3
+ mov r3, #0x11
+ bl MOD85_021DE840
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x12
+ mov r3, #0xa
+ bl MOD85_021DE9E4
+ mov r1, #0x45
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ sub r1, #0x18
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ mov r3, #0xa
+ bl MOD85_021DEA4C
+_021DE572:
+ ldr r0, _021DE598 ; =MOD85_021DE4A8
+ ldr r2, _021DE59C ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA60
+ cmp r0, #0
+ bne _021DE584
+ bl ErrorHandling
+_021DE584:
+ ldr r0, _021DE5A0 ; =MOD85_021DE4C8
+ ldr r2, _021DE59C ; =0x00000101
+ add r1, r5, #0
+ bl FUN_0200CA98
+ cmp r0, #0
+ bne _021DE596
+ bl ErrorHandling
+_021DE596:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DE598: .word MOD85_021DE4A8
+_021DE59C: .word 0x00000101
+_021DE5A0: .word MOD85_021DE4C8
+ thumb_func_end MOD85_021DE4F0
+
+ thumb_func_start MOD85_021DE5A4
+MOD85_021DE5A4: ; 0x021DE5A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r1, [sp, #4]
+ ldr r1, [sp, #0x28]
+ str r0, [sp]
+ str r1, [sp, #0x28]
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r2, [sp, #8]
+ add r7, r3, #0
+ ldr r5, [sp, #0x20]
+ ldr r6, [sp, #0x24]
+ bl FUN_02016998
+ add r4, r0, #0
+ bne _021DE5C8
+ bl ErrorHandling
+_021DE5C8:
+ ldr r0, [sp]
+ add r1, r4, #0
+ str r0, [r4]
+ strb r7, [r4, #4]
+ strb r5, [r4, #5]
+ ldr r0, [sp, #0x28]
+ strb r6, [r4, #6]
+ strb r0, [r4, #7]
+ ldr r0, [sp, #0x2c]
+ ldr r2, [sp]
+ strb r0, [r4, #8]
+ ldr r0, [sp, #0x30]
+ add r1, #0x10
+ strb r0, [r4, #9]
+ ldr r0, [sp, #0x34]
+ strb r0, [r4, #0xa]
+ ldr r0, [sp, #0x38]
+ strb r0, [r4, #0xb]
+ ldr r0, [sp, #4]
+ bl FUN_02008C9C
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #8]
+ ldr r1, [sp]
+ bl FUN_0201C328
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #8]
+ ldr r1, [sp]
+ bl FUN_0201C24C
+ ldr r2, [sp]
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_02008DEC
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r2, [sp]
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02008DEC
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r2, [sp]
+ add r0, r6, #0
+ mov r1, #2
+ bl FUN_02008DEC
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp, #0x28]
+ ldr r2, [sp]
+ mov r1, #3
+ bl FUN_02008DEC
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r7, #3
+ bl FUN_02016998
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r5, #3
+ bl FUN_02016998
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r6, #3
+ bl FUN_02016998
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp]
+ lsl r1, r1, #3
+ bl FUN_02016998
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r1, #0
+ cmp r7, #0
+ bls _021DE6A4
+ bls _021DE6A4
+ ldr r0, [sp, #0x2c]
+ add r2, r1, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+_021DE694:
+ mov r3, #0x53
+ lsl r3, r3, #2
+ ldr r3, [r4, r3]
+ add r1, r1, #1
+ strh r0, [r3, r2]
+ add r2, #8
+ cmp r1, r7
+ blo _021DE694
+_021DE6A4:
+ mov r3, #0
+ cmp r5, #0
+ bls _021DE6C4
+ bls _021DE6C4
+ ldr r0, [sp, #0x30]
+ mov r7, #0x15
+ lsl r0, r0, #0x10
+ add r2, r3, #0
+ lsr r1, r0, #0x10
+ lsl r7, r7, #4
+_021DE6B8:
+ ldr r0, [r4, r7]
+ add r3, r3, #1
+ strh r1, [r0, r2]
+ add r2, #8
+ cmp r3, r5
+ blo _021DE6B8
+_021DE6C4:
+ mov r1, #0
+ cmp r6, #0
+ bls _021DE6E4
+ bls _021DE6E4
+ ldr r2, [sp, #0x34]
+ add r0, r1, #0
+ lsl r2, r2, #0x10
+ lsr r5, r2, #0x10
+ mov r2, #0x55
+ lsl r2, r2, #2
+_021DE6D8:
+ ldr r3, [r4, r2]
+ add r1, r1, #1
+ strh r5, [r3, r0]
+ add r0, #8
+ cmp r1, r6
+ blo _021DE6D8
+_021DE6E4:
+ ldr r0, [sp, #0x28]
+ mov r1, #0
+ cmp r0, #0
+ bls _021DE708
+ bls _021DE708
+ ldr r2, [sp, #0x38]
+ mov r3, #0x56
+ lsl r2, r2, #0x10
+ add r0, r1, #0
+ lsr r5, r2, #0x10
+ lsl r3, r3, #2
+_021DE6FA:
+ ldr r2, [r4, r3]
+ add r1, r1, #1
+ strh r5, [r2, r0]
+ ldr r2, [sp, #0x28]
+ add r0, #8
+ cmp r1, r2
+ blo _021DE6FA
+_021DE708:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE5A4
+
+ thumb_func_start MOD85_021DE710
+MOD85_021DE710: ; 0x021DE710
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrb r0, [r5, #4]
+ mov r6, #0
+ cmp r0, #0
+ bls _021DE73E
+ mov r7, #0x53
+ add r4, r6, #0
+ lsl r7, r7, #2
+_021DE722:
+ ldr r1, [r5, r7]
+ ldrb r2, [r5, #8]
+ add r0, r1, r4
+ ldrh r1, [r1, r4]
+ cmp r2, r1
+ beq _021DE734
+ ldr r0, [r0, #4]
+ bl FUN_02009C0C
+_021DE734:
+ ldrb r0, [r5, #4]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blo _021DE722
+_021DE73E:
+ ldrb r0, [r5, #5]
+ mov r6, #0
+ cmp r0, #0
+ bls _021DE768
+ mov r7, #0x15
+ add r4, r6, #0
+ lsl r7, r7, #4
+_021DE74C:
+ ldr r1, [r5, r7]
+ ldrb r2, [r5, #9]
+ add r0, r1, r4
+ ldrh r1, [r1, r4]
+ cmp r2, r1
+ beq _021DE75E
+ ldr r0, [r0, #4]
+ bl FUN_02009E04
+_021DE75E:
+ ldrb r0, [r5, #5]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blo _021DE74C
+_021DE768:
+ ldrb r0, [r5, #6]
+ mov r6, #0
+ cmp r0, #0
+ bls _021DE792
+ mov r7, #0x55
+ add r4, r6, #0
+ lsl r7, r7, #2
+_021DE776:
+ ldr r1, [r5, r7]
+ ldrb r2, [r5, #0xa]
+ add r0, r1, r4
+ ldrh r1, [r1, r4]
+ cmp r2, r1
+ beq _021DE788
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+_021DE788:
+ ldrb r0, [r5, #6]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blo _021DE776
+_021DE792:
+ ldrb r0, [r5, #7]
+ mov r6, #0
+ cmp r0, #0
+ bls _021DE7BC
+ mov r7, #0x56
+ add r4, r6, #0
+ lsl r7, r7, #2
+_021DE7A0:
+ ldr r1, [r5, r7]
+ ldrb r2, [r5, #0xb]
+ add r0, r1, r4
+ ldrh r1, [r1, r4]
+ cmp r2, r1
+ beq _021DE7B2
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+_021DE7B2:
+ ldrb r0, [r5, #7]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r0
+ blo _021DE7A0
+_021DE7BC:
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #0x52
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ bl FUN_0201C29C
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0201C350
+ ldr r0, [r5, #0xc]
+ bl FUN_0201FDB4
+ ldr r0, [r5, #0xc]
+ bl FUN_0201FD58
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE710
+
+ thumb_func_start MOD85_021DE830
+MOD85_021DE830: ; 0x021DE830
+ push {r3, lr}
+ ldr r0, [r0, #0xc]
+ bl FUN_0201FDEC
+ bl FUN_0201C348
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE830
+
+ thumb_func_start MOD85_021DE840
+MOD85_021DE840: ; 0x021DE840
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r5, [r4, #4]
+ add r7, r1, #0
+ mov r1, #0
+ str r2, [sp, #0xc]
+ mov ip, r3
+ cmp r5, #0
+ bls _021DE8A0
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r6, [r4, r0]
+ ldrb r3, [r4, #8]
+ add r2, r6, #0
+_021DE85E:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _021DE898
+ ldr r0, [sp, #0x28]
+ lsl r5, r1, #3
+ mov r1, #0x53
+ strh r0, [r6, r5]
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ mov r3, #0
+ add r2, r2, r5
+ strh r3, [r2, #2]
+ str r0, [sp]
+ str r7, [sp, #4]
+ ldr r0, [r4]
+ sub r1, #0x10
+ str r0, [sp, #8]
+ ldr r0, [r4, r1]
+ ldr r1, [sp, #0xc]
+ mov r2, ip
+ bl FUN_020091E0
+ mov r1, #0x53
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add sp, #0x10
+ add r1, r1, r5
+ str r0, [r1, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DE898:
+ add r1, r1, #1
+ add r2, #8
+ cmp r1, r5
+ blo _021DE85E
+_021DE8A0:
+ bl ErrorHandling
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DE840
+
+ thumb_func_start MOD85_021DE8A8
+MOD85_021DE8A8: ; 0x021DE8A8
+ push {r3, r4, r5, lr}
+ ldrb r2, [r0, #4]
+ mov r4, #0
+ cmp r2, #0
+ bls _021DE8D4
+ mov r3, #0x53
+ lsl r3, r3, #2
+ ldr r5, [r0, r3]
+ add r3, r5, #0
+_021DE8BA:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _021DE8CC
+ lsl r0, r4, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ bl FUN_02009B04
+ pop {r3, r4, r5, pc}
+_021DE8CC:
+ add r4, r4, #1
+ add r3, #8
+ cmp r4, r2
+ blo _021DE8BA
+_021DE8D4:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE8A8
+
+ thumb_func_start MOD85_021DE8DC
+MOD85_021DE8DC: ; 0x021DE8DC
+ push {r3, r4, r5, lr}
+ ldrb r2, [r0, #4]
+ mov r4, #0
+ cmp r2, #0
+ bls _021DE908
+ mov r3, #0x53
+ lsl r3, r3, #2
+ ldr r5, [r0, r3]
+ add r3, r5, #0
+_021DE8EE:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _021DE900
+ lsl r0, r4, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ pop {r3, r4, r5, pc}
+_021DE900:
+ add r4, r4, #1
+ add r3, #8
+ cmp r4, r2
+ blo _021DE8EE
+_021DE908:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE8DC
+
+ thumb_func_start MOD85_021DE910
+MOD85_021DE910: ; 0x021DE910
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldrb r5, [r4, #4]
+ add r7, r1, #0
+ mov r1, #0
+ str r2, [sp, #0x10]
+ mov ip, r3
+ cmp r5, #0
+ bls _021DE974
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r6, [r4, r0]
+ ldrb r3, [r4, #9]
+ add r2, r6, #0
+_021DE92E:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _021DE96C
+ ldr r0, [sp, #0x28]
+ lsl r5, r1, #3
+ mov r1, #0x15
+ strh r0, [r6, r5]
+ lsl r1, r1, #4
+ ldr r2, [r4, r1]
+ mov r3, #0
+ add r2, r2, r5
+ strh r3, [r2, #2]
+ str r0, [sp]
+ str r7, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ sub r1, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [r4, r1]
+ ldr r1, [sp, #0x10]
+ mov r2, ip
+ bl FUN_02009298
+ mov r1, #0x15
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add sp, #0x14
+ add r1, r1, r5
+ str r0, [r1, #4]
+ pop {r4, r5, r6, r7, pc}
+_021DE96C:
+ add r1, r1, #1
+ add r2, #8
+ cmp r1, r5
+ blo _021DE92E
+_021DE974:
+ bl ErrorHandling
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DE910
+
+ thumb_func_start MOD85_021DE97C
+MOD85_021DE97C: ; 0x021DE97C
+ push {r3, r4, r5, lr}
+ ldrb r2, [r0, #5]
+ mov r4, #0
+ cmp r2, #0
+ bls _021DE9A8
+ mov r3, #0x15
+ lsl r3, r3, #4
+ ldr r5, [r0, r3]
+ add r3, r5, #0
+_021DE98E:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _021DE9A0
+ lsl r0, r4, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ bl FUN_02009D68
+ pop {r3, r4, r5, pc}
+_021DE9A0:
+ add r4, r4, #1
+ add r3, #8
+ cmp r4, r2
+ blo _021DE98E
+_021DE9A8:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE97C
+
+ thumb_func_start MOD85_021DE9B0
+MOD85_021DE9B0: ; 0x021DE9B0
+ push {r3, r4, r5, lr}
+ ldrb r2, [r0, #5]
+ mov r4, #0
+ cmp r2, #0
+ bls _021DE9DC
+ mov r3, #0x15
+ lsl r3, r3, #4
+ ldr r5, [r0, r3]
+ add r3, r5, #0
+_021DE9C2:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _021DE9D4
+ lsl r0, r4, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ pop {r3, r4, r5, pc}
+_021DE9D4:
+ add r4, r4, #1
+ add r3, #8
+ cmp r4, r2
+ blo _021DE9C2
+_021DE9DC:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DE9B0
+
+ thumb_func_start MOD85_021DE9E4
+MOD85_021DE9E4: ; 0x021DE9E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r5, [r4, #4]
+ str r1, [sp, #0xc]
+ mov ip, r2
+ add r6, r3, #0
+ mov r1, #0
+ cmp r5, #0
+ bls _021DEA44
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r7, [r4, r0]
+ ldrb r3, [r4, #0xa]
+ add r2, r7, #0
+_021DEA02:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _021DEA3C
+ lsl r5, r1, #3
+ mov r0, #0x55
+ strh r6, [r7, r5]
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r3, #0
+ add r1, r1, r5
+ strh r3, [r1, #2]
+ str r6, [sp]
+ mov r1, #2
+ str r1, [sp, #4]
+ ldr r1, [r4]
+ sub r0, #0x10
+ str r1, [sp, #8]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0xc]
+ mov r2, ip
+ bl FUN_02009358
+ mov r1, #0x55
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add sp, #0x10
+ add r1, r1, r5
+ str r0, [r1, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEA3C:
+ add r1, r1, #1
+ add r2, #8
+ cmp r1, r5
+ blo _021DEA02
+_021DEA44:
+ bl ErrorHandling
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DE9E4
+
+ thumb_func_start MOD85_021DEA4C
+MOD85_021DEA4C: ; 0x021DEA4C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r5, [r4, #4]
+ str r1, [sp, #0xc]
+ mov ip, r2
+ add r6, r3, #0
+ mov r1, #0
+ cmp r5, #0
+ bls _021DEAAC
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r7, [r4, r0]
+ ldrb r3, [r4, #0xb]
+ add r2, r7, #0
+_021DEA6A:
+ ldrh r0, [r2]
+ cmp r3, r0
+ bne _021DEAA4
+ lsl r5, r1, #3
+ mov r0, #0x56
+ strh r6, [r7, r5]
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r3, #0
+ add r1, r1, r5
+ strh r3, [r1, #2]
+ str r6, [sp]
+ mov r1, #3
+ str r1, [sp, #4]
+ ldr r1, [r4]
+ sub r0, #0x10
+ str r1, [sp, #8]
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0xc]
+ mov r2, ip
+ bl FUN_02009358
+ mov r1, #0x56
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add sp, #0x10
+ add r1, r1, r5
+ str r0, [r1, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEAA4:
+ add r1, r1, #1
+ add r2, #8
+ cmp r1, r5
+ blo _021DEA6A
+_021DEAAC:
+ bl ErrorHandling
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DEA4C
+
+ thumb_func_start MOD85_021DEAB4
+MOD85_021DEAB4: ; 0x021DEAB4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r0, r1, #0
+ ldrb r1, [r4, #8]
+ add r7, r2, #0
+ str r3, [sp]
+ ldr r6, [sp, #0x20]
+ cmp r0, r1
+ beq _021DEB10
+ ldrb r5, [r4, #4]
+ mov r2, #0
+ cmp r5, #0
+ bls _021DEB10
+ mov r1, #0x53
+ lsl r1, r1, #2
+ ldr r3, [r4, r1]
+ mov ip, r3
+_021DEAD8:
+ ldrh r1, [r3]
+ cmp r0, r1
+ bne _021DEB08
+ lsl r5, r2, #3
+ mov r0, ip
+ add r0, r0, r5
+ ldr r0, [r0, #4]
+ bl FUN_02009C0C
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldr r1, [r4, r1]
+ add r1, r1, r5
+ ldr r1, [r1, #4]
+ bl FUN_02009490
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldrb r1, [r4, #8]
+ ldr r0, [r4, r0]
+ strh r1, [r0, r5]
+ b _021DEB10
+_021DEB08:
+ add r2, r2, #1
+ add r3, #8
+ cmp r2, r5
+ blo _021DEAD8
+_021DEB10:
+ ldrb r0, [r4, #9]
+ cmp r7, r0
+ beq _021DEB5E
+ ldrb r0, [r4, #5]
+ mov r1, #0
+ cmp r0, #0
+ bls _021DEB5E
+ mov r2, #0x15
+ lsl r2, r2, #4
+ ldr r3, [r4, r2]
+ str r3, [sp, #4]
+_021DEB26:
+ ldrh r2, [r3]
+ cmp r7, r2
+ bne _021DEB56
+ ldr r0, [sp, #4]
+ lsl r5, r1, #3
+ add r0, r0, r5
+ ldr r0, [r0, #4]
+ bl FUN_02009E04
+ mov r1, #5
+ lsl r1, r1, #6
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldr r1, [r4, r1]
+ add r1, r1, r5
+ ldr r1, [r1, #4]
+ bl FUN_02009490
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldrb r1, [r4, #9]
+ ldr r0, [r4, r0]
+ strh r1, [r0, r5]
+ b _021DEB5E
+_021DEB56:
+ add r1, r1, #1
+ add r3, #8
+ cmp r1, r0
+ blo _021DEB26
+_021DEB5E:
+ ldrb r1, [r4, #0xa]
+ ldr r0, [sp]
+ cmp r0, r1
+ beq _021DEBAE
+ ldrb r3, [r4, #6]
+ mov r5, #0
+ cmp r3, #0
+ bls _021DEBAE
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r7, [r4, r0]
+ add r2, r7, #0
+_021DEB76:
+ ldrh r1, [r2]
+ ldr r0, [sp]
+ cmp r0, r1
+ bne _021DEBA6
+ lsl r5, r5, #3
+ add r0, r7, r5
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldr r1, [r4, r1]
+ add r1, r1, r5
+ ldr r1, [r1, #4]
+ bl FUN_02009490
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, r0]
+ strh r1, [r0, r5]
+ b _021DEBAE
+_021DEBA6:
+ add r5, r5, #1
+ add r2, #8
+ cmp r5, r3
+ blo _021DEB76
+_021DEBAE:
+ ldrb r0, [r4, #0xb]
+ cmp r6, r0
+ beq _021DEBFC
+ ldrb r1, [r4, #7]
+ mov r2, #0
+ cmp r1, #0
+ bls _021DEBFC
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r5, r0, #0
+_021DEBC4:
+ ldrh r3, [r5]
+ cmp r6, r3
+ bne _021DEBF4
+ lsl r5, r2, #3
+ add r0, r0, r5
+ ldr r0, [r0, #4]
+ bl FUN_02009474
+ mov r1, #0x52
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, #0x10
+ ldr r1, [r4, r1]
+ add r1, r1, r5
+ ldr r1, [r1, #4]
+ bl FUN_02009490
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldrb r1, [r4, #0xb]
+ ldr r0, [r4, r0]
+ add sp, #8
+ strh r1, [r0, r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DEBF4:
+ add r2, r2, #1
+ add r5, #8
+ cmp r2, r1
+ blo _021DEBC4
+_021DEBFC:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD85_021DEAB4
+
+ thumb_func_start MOD85_021DEC00
+MOD85_021DEC00: ; 0x021DEC00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x70
+ add r5, r0, #0
+ ldrb r0, [r5, #0xb]
+ add r4, r1, #0
+ ldr r1, [sp, #0x98]
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r1, r0
+ bne _021DEC1A
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x98]
+_021DEC1A:
+ ldr r0, [sp, #0x98]
+ mov r1, #0x4f
+ str r0, [sp]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x88]
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x9c]
+ ldr r2, [sp, #0x90]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, r1]
+ ldr r3, [sp, #0x94]
+ str r0, [sp, #0x14]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ add r1, #0xc
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, r1]
+ ldr r1, [sp, #0x8c]
+ str r0, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, sp, #0x4c
+ bl FUN_02008AA4
+ ldr r0, [sp, #0x88]
+ cmp r0, #1
+ bne _021DEC6A
+ ldr r0, [sp, #0x4c]
+ str r0, [r4, #8]
+ mov r0, #1
+ b _021DEC6C
+_021DEC6A:
+ mov r0, #0
+_021DEC6C:
+ str r0, [r4]
+ ldr r0, [r5, #0xc]
+ add r2, sp, #0x34
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x4c
+ str r0, [sp, #0x30]
+ ldmia r6!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r2]
+ ldr r0, [sp, #0xa0]
+ str r7, [sp, #0x44]
+ str r0, [sp, #0x40]
+ ldr r0, [r5]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ bl FUN_0201FF84
+ str r0, [r4, #4]
+ cmp r0, #0
+ bne _021DEC9A
+ bl ErrorHandling
+_021DEC9A:
+ add sp, #0x70
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD85_021DEC00
+
+ thumb_func_start MOD85_021DECA0
+MOD85_021DECA0: ; 0x021DECA0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ bne _021DECB0
+ ldr r0, [r4, #8]
+ bl FUN_02009CDC
+_021DECB0:
+ ldr r0, [r4, #4]
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DECA0
+
+ thumb_func_start MOD85_021DECBC
+MOD85_021DECBC: ; 0x021DECBC
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_0202011C
+ add r2, r0, #0
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DECBC
+
+ thumb_func_start MOD85_021DECD0
+MOD85_021DECD0: ; 0x021DECD0
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02020120
+ add r2, r0, #0
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD85_021DECD0
+
+ .section .rodata
+ ; 0x021DECE4
+ .incbin "baserom.nds", 0x30AC04, 0x18BC
+
+ .section .data
+ ; 0x021E05C0
+ .incbin "baserom.nds", 0x30C4E0, 0x20
diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s
new file mode 100644
index 00000000..922a98f3
--- /dev/null
+++ b/arm9/modules/86/asm/module_86.s
@@ -0,0 +1,917 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD86_021D74E0
+MOD86_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #2
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x54
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #0x44
+ mov r2, #0x54
+ bl FUN_02006268
+ mov r1, #0
+ mov r2, #0x44
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x54
+ str r0, [r4]
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r1, [r0]
+ str r1, [r4, #8]
+ ldr r0, [r0, #4]
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl FUN_020238F4
+ str r0, [r4, #0xc]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F34
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D7580 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7584 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ add r0, r4, #0
+ bl MOD86_021D76EC
+ add r0, r4, #0
+ bl MOD86_021D78D4
+ ldr r0, _021D7588 ; =MOD86_021D76E0
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D7580: .word 0xFFFFE0FF
+_021D7584: .word 0x04001000
+_021D7588: .word MOD86_021D76E0
+ thumb_func_end MOD86_021D74E0
+
+ thumb_func_start MOD86_021D758C
+MOD86_021D758C: ; 0x021D758C
+ 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, #5
+ bhi _021D76A0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D75AC: ; jump table
+ .short _021D75B8 - _021D75AC - 2 ; case 0
+ .short _021D7614 - _021D75AC - 2 ; case 1
+ .short _021D7626 - _021D75AC - 2 ; case 2
+ .short _021D7638 - _021D75AC - 2 ; case 3
+ .short _021D765C - _021D75AC - 2 ; case 4
+ .short _021D7696 - _021D75AC - 2 ; case 5
+_021D75B8:
+ bl MOD86_021D7984
+ add r0, r4, #0
+ bl MOD86_021D79D4
+ add r0, r4, #0
+ bl MOD86_021D7B80
+ add r0, r6, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ str r0, [r5]
+ b _021D76A0
+_021D7614:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D76A0
+ add r0, r6, #0
+ str r0, [r4, #0x40]
+ mov r0, #2
+ str r0, [r5]
+ b _021D76A0
+_021D7626:
+ ldr r0, [r4, #0x40]
+ cmp r0, #0x3c
+ bge _021D7632
+ add r0, r0, #1
+ str r0, [r4, #0x40]
+ b _021D76A0
+_021D7632:
+ mov r0, #3
+ str r0, [r5]
+ b _021D76A0
+_021D7638:
+ mov r2, #0x3c
+ ldrsh r3, [r4, r2]
+ add r1, r2, #0
+ sub r1, #0xfc
+ cmp r3, r1
+ ble _021D764E
+ sub r1, r3, #4
+ strh r1, [r4, #0x3c]
+ bl MOD86_021D7990
+ b _021D76A0
+_021D764E:
+ sub r2, #0xfc
+ strh r2, [r4, #0x3c]
+ bl MOD86_021D7990
+ mov r0, #4
+ str r0, [r5]
+ b _021D76A0
+_021D765C:
+ ldr r0, _021D76A8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ and r0, r1
+ cmp r0, #1
+ beq _021D7678
+ mov r0, #2
+ and r0, r1
+ cmp r0, #2
+ beq _021D7678
+ ldr r0, _021D76AC ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021D76A0
+_021D7678:
+ 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
+ mov r0, #5
+ str r0, [r5]
+ b _021D76A0
+_021D7696:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D76A0
+ mov r6, #1
+_021D76A0:
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D76A8: .word 0x021C48B8
+_021D76AC: .word 0x021C48F8
+ thumb_func_end MOD86_021D758C
+
+ thumb_func_start MOD86_021D76B0
+MOD86_021D76B0: ; 0x021D76B0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r6, r0, #0
+ ldr r4, [r6]
+ bl MOD86_021D7964
+ add r0, r6, #0
+ bl MOD86_021D7858
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r5, #0
+ bl FUN_0200627C
+ add r0, r4, #0
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD86_021D76B0
+
+ thumb_func_start MOD86_021D76E0
+MOD86_021D76E0: ; 0x021D76E0
+ ldr r3, _021D76E8 ; =FUN_0201AB60
+ ldr r0, [r0, #0x10]
+ bx r3
+ nop
+_021D76E8: .word FUN_0201AB60
+ thumb_func_end MOD86_021D76E0
+
+ thumb_func_start MOD86_021D76EC
+MOD86_021D76EC: ; 0x021D76EC
+ push {r4, r5, lr}
+ sub sp, #0x54
+ ldr r5, _021D784C ; =0x021D7CBC
+ add r4, r0, #0
+ add r3, sp, #0x2c
+ mov r2, #5
+_021D76F8:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D76F8
+ add r0, sp, #0x2c
+ bl FUN_0201E66C
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0x1c
+ ldr r5, _021D7850 ; =0x021D7C90
+ str r0, [r4, #0x10]
+ 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, _021D7854 ; =0x021D7CA0
+ 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, #0
+ str r0, [r3]
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ mov r3, #4
+ strb r3, [r0, #0x13]
+ lsl r3, r3, #0xa
+ str r3, [sp, #8]
+ mov r3, #2
+ strb r3, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ add r3, r1, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02018744
+ mov r2, #2
+ add r0, sp, #0
+ strb r2, [r0, #0x12]
+ strb r2, [r0, #0x13]
+ lsl r1, r2, #0xb
+ str r1, [sp, #8]
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r2, sp, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02018744
+ mov r1, #4
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ mov r2, #1
+ strb r2, [r0, #0x13]
+ lsl r1, r2, #0xb
+ str r1, [sp, #8]
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ add r2, sp, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ bl FUN_02018744
+ mov r1, #4
+ mov r3, #0
+ add r0, sp, #0
+ strb r3, [r0, #0x12]
+ strb r1, [r0, #0x13]
+ lsl r2, r1, #0xa
+ str r2, [sp, #8]
+ mov r2, #2
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ add r2, sp, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #4
+ bl FUN_02018744
+ mov r2, #2
+ add r0, sp, #0
+ strb r2, [r0, #0x12]
+ strb r2, [r0, #0x13]
+ lsl r1, r2, #0xb
+ str r1, [sp, #8]
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ mov r1, #5
+ add r2, sp, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #5
+ bl FUN_02018744
+ mov r1, #4
+ add r0, sp, #0
+ strb r1, [r0, #0x12]
+ mov r2, #1
+ strb r2, [r0, #0x13]
+ lsl r1, r2, #0xb
+ str r1, [sp, #8]
+ strb r2, [r0, #0x10]
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ add r2, sp, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ bl FUN_02018744
+ 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 r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ add sp, #0x54
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D784C: .word 0x021D7CBC
+_021D7850: .word 0x021D7C90
+_021D7854: .word 0x021D7CA0
+ thumb_func_end MOD86_021D76EC
+
+ thumb_func_start MOD86_021D7858
+MOD86_021D7858: ; 0x021D7858
+ push {r4, lr}
+ add r4, r0, #0
+ 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 r0, #7
+ mov r1, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #7
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD86_021D7858
+
+ thumb_func_start MOD86_021D78D4
+MOD86_021D78D4: ; 0x021D78D4
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r1, _021D7960 ; =0x021D7C88
+ add r4, r0, #0
+ ldrh r2, [r1]
+ add r0, sp, #8
+ strh r2, [r0]
+ ldrh r2, [r1, #2]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #4]
+ ldrh r1, [r1, #6]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ bl FUN_0201BD5C
+ mov r0, #1
+ ldr r3, [r4]
+ mov r1, #0x1a
+ add r2, r0, #0
+ bl FUN_0200A86C
+ str r0, [r4, #0x34]
+ ldr r0, [r4]
+ bl FUN_0200AA80
+ str r0, [r4, #0x38]
+ mov r1, #0
+ add r0, sp, #8
+ strb r1, [r0]
+ add r1, r4, #0
+ ldr r0, [r4, #0x10]
+ add r1, #0x14
+ add r2, sp, #8
+ bl FUN_02019150
+ mov r1, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x14
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #4
+ add r0, sp, #8
+ strb r1, [r0]
+ add r1, r4, #0
+ ldr r0, [r4, #0x10]
+ add r1, #0x24
+ add r2, sp, #8
+ bl FUN_02019150
+ mov r1, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0xc0
+ add r4, #0x24
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7960: .word 0x021D7C88
+ thumb_func_end MOD86_021D78D4
+
+ thumb_func_start MOD86_021D7964
+MOD86_021D7964: ; 0x021D7964
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x24
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019178
+ ldr r0, [r4, #0x38]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x34]
+ bl FUN_0200A8B8
+ pop {r4, pc}
+ thumb_func_end MOD86_021D7964
+
+ thumb_func_start MOD86_021D7984
+MOD86_021D7984: ; 0x021D7984
+ ldr r3, _021D798C ; =MOD86_021D7990
+ mov r1, #0
+ strh r1, [r0, #0x3c]
+ bx r3
+ .align 2, 0
+_021D798C: .word MOD86_021D7990
+ thumb_func_end MOD86_021D7984
+
+ thumb_func_start MOD86_021D7990
+MOD86_021D7990: ; 0x021D7990
+ push {r4, lr}
+ add r4, r0, #0
+ mov r3, #0x3c
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ mov r2, #3
+ bl FUN_020179E0
+ mov r3, #0x3c
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #5
+ mov r2, #3
+ add r3, #0xc0
+ bl FUN_020179E0
+ mov r3, #0x3c
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #3
+ bl FUN_020179E0
+ mov r3, #0x3c
+ ldrsh r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #4
+ mov r2, #3
+ add r3, #0xc0
+ bl FUN_020179E0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD86_021D7990
+
+ thumb_func_start MOD86_021D79D4
+MOD86_021D79D4: ; 0x021D79D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _021D79F4
+ mov r0, #2
+ str r0, [sp, #0x18]
+ mov r0, #6
+ str r0, [sp, #0x14]
+ mov r0, #8
+ mov r7, #0xa
+ str r0, [sp, #0x10]
+ mov r6, #0
+ mov r4, #4
+ b _021D7A06
+_021D79F4:
+ mov r0, #3
+ str r0, [sp, #0x18]
+ mov r0, #7
+ str r0, [sp, #0x14]
+ mov r0, #9
+ mov r7, #0xb
+ str r0, [sp, #0x10]
+ mov r6, #1
+ mov r4, #5
+_021D7A06:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r1, r7, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #0
+ str r0, [sp, #4]
+ ldr r1, [sp, #0x14]
+ mov r0, #0x84
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r1, r7, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x18]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x14]
+ str r0, [sp, #4]
+ mov r0, #0x84
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r2, #0
+ ldr r0, [r5, #0x10]
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r1, r6, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #1
+ bl FUN_0200687C
+ mov r3, #0x20
+ str r3, [sp]
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ mov r0, #0x84
+ mov r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r2, #0
+ ldr r0, [r5, #0x10]
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_020186B4
+ ldr r0, [r5, #0x10]
+ mov r1, #5
+ bl FUN_02017CD0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ add r1, r6, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x84
+ mov r3, #5
+ bl FUN_0200687C
+ mov r3, #0x20
+ str r3, [sp]
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ mov r0, #0x84
+ mov r2, #4
+ bl FUN_02006930
+ mov r0, #0
+ ldr r3, [r5]
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ ldr r3, [r5]
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r2, [r5]
+ mov r0, #0
+ mov r1, #0x40
+ bl FUN_02002ED0
+ ldr r2, [r5]
+ mov r0, #4
+ mov r1, #0x40
+ bl FUN_02002ED0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD86_021D79D4
+
+ thumb_func_start MOD86_021D7B80
+MOD86_021D7B80: ; 0x021D7B80
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #2
+ ldr r1, [r5]
+ lsl r0, r0, #8
+ bl FUN_020219F4
+ add r4, r0, #0
+ mov r0, #2
+ ldr r1, [r5]
+ lsl r0, r0, #8
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x38]
+ ldr r2, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ ldr r0, [r5, #0x38]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x14
+ add r2, r4, #0
+ mov r3, #0x30
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x24
+ add r2, r4, #0
+ mov r3, #0x30
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _021D7C00
+ mov r1, #1
+ b _021D7C02
+_021D7C00:
+ mov r1, #2
+_021D7C02:
+ ldr r0, [r5, #0x34]
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r3, #0x40
+ str r3, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x14
+ add r2, r4, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r3, #0x40
+ str r3, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ str r1, [sp, #0xc]
+ add r0, #0x24
+ add r2, r4, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5, #0x34]
+ mov r1, #3
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r0, #0x90
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x14
+ add r2, r4, #0
+ mov r3, #0x8a
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r0, #0x90
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7C84 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r5, #0x24
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0x8a
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021D7C84: .word 0x00010200
+ thumb_func_end MOD86_021D7B80
+
+ .section .rodata
+ ; 0x021D7C88
+ .incbin "baserom.nds", 0x30CDA8, 0x5C
diff --git a/arm9/undefined_syms.txt b/arm9/undefined_syms.txt
deleted file mode 100644
index 4cca1421..00000000
--- a/arm9/undefined_syms.txt
+++ /dev/null
@@ -1,549 +0,0 @@
-
-// Overlay
-FUN_0222DAEC = 0x0222DAEC;
-FUN_0222DD1C = 0x0222DD1C;
-FUN_0222DD38 = 0x0222DD38;
-FUN_0222E2BC = 0x0222E2BC;
-FUN_0222E360 = 0x0222E360;
-FUN_0222E3A0 = 0x0222E3A0;
-FUN_0222E7E8 = 0x0222E7E8;
-FUN_0222E874 = 0x0222E874;
-FUN_0222EC60 = 0x0222EC60;
-FUN_0222ED34 = 0x0222ED34;
-FUN_0222EDBC = 0x0222EDBC;
-FUN_0222F440 = 0x0222F440;
-FUN_0222F480 = 0x0222F480;
-FUN_0222F7E0 = 0x0222F7E0;
-FUN_022300E4 = 0x022300E4;
-FUN_02230F3C = 0x02230F3C;
-FUN_02230F70 = 0x02230F70;
-FUN_02230F80 = 0x02230F80;
-FUN_02213B08 = 0x02213B08;
-FUN_02213D80 = 0x02213D80;
-FUN_02213DBC = 0x02213DBC;
-FUN_02213E24 = 0x02213E24;
-
-// Overlay
-
-SDK_OVERLAY_MODULE_00_ID = 0;
-SDK_OVERLAY_MODULE_00_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_00_SIZE = 0x00000020;
-SDK_OVERLAY_MODULE_00_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_00_STATIC_INIT_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_00_STATIC_INIT_END = 0x021D74E4;
-SDK_OVERLAY_MODULE_01_ID = 1;
-SDK_OVERLAY_MODULE_01_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_01_SIZE = 0x00000020;
-SDK_OVERLAY_MODULE_01_BSSSIZE = 0x00000020;
-SDK_OVERLAY_MODULE_01_STATIC_INIT_START = 0x021D74F0;
-SDK_OVERLAY_MODULE_01_STATIC_INIT_END = 0x021D74F8;
-SDK_OVERLAY_MODULE_02_ID = 2;
-SDK_OVERLAY_MODULE_02_START = 0x021D7520;
-SDK_OVERLAY_MODULE_02_SIZE = 0x00000020;
-SDK_OVERLAY_MODULE_02_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_02_STATIC_INIT_START = 0x021D7520;
-SDK_OVERLAY_MODULE_02_STATIC_INIT_END = 0x021D7524;
-SDK_OVERLAY_MODULE_03_ID = 3;
-SDK_OVERLAY_MODULE_03_START = 0x01FF8700;
-SDK_OVERLAY_MODULE_03_SIZE = 0x00000020;
-SDK_OVERLAY_MODULE_03_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_03_STATIC_INIT_START = 0x01FF8700;
-SDK_OVERLAY_MODULE_03_STATIC_INIT_END = 0x01FF8704;
-SDK_OVERLAY_MODULE_04_ID = 4;
-SDK_OVERLAY_MODULE_04_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_04_SIZE = 0x000386E0;
-SDK_OVERLAY_MODULE_04_BSSSIZE = 0x000022A0;
-SDK_OVERLAY_MODULE_04_STATIC_INIT_START = 0x0220BE94;
-SDK_OVERLAY_MODULE_04_STATIC_INIT_END = 0x0220BE98;
-SDK_OVERLAY_MODULE_05_ID = 5;
-SDK_OVERLAY_MODULE_05_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_05_SIZE = 0x000261A0;
-SDK_OVERLAY_MODULE_05_BSSSIZE = 0x0003C020;
-SDK_OVERLAY_MODULE_05_STATIC_INIT_START = 0x021FD1C8;
-SDK_OVERLAY_MODULE_05_STATIC_INIT_END = 0x021FD1CC;
-SDK_OVERLAY_MODULE_06_ID = 6;
-SDK_OVERLAY_MODULE_06_START = 0x022396A0;
-SDK_OVERLAY_MODULE_06_SIZE = 0x00018D80;
-SDK_OVERLAY_MODULE_06_BSSSIZE = 0x00000020;
-SDK_OVERLAY_MODULE_06_STATIC_INIT_START = 0x02252228;
-SDK_OVERLAY_MODULE_06_STATIC_INIT_END = 0x0225222C;
-SDK_OVERLAY_MODULE_07_ID = 7;
-SDK_OVERLAY_MODULE_07_START = 0x02211E60;
-SDK_OVERLAY_MODULE_07_SIZE = 0x000032E0;
-SDK_OVERLAY_MODULE_07_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_07_STATIC_INIT_START = 0x02215134;
-SDK_OVERLAY_MODULE_07_STATIC_INIT_END = 0x02215138;
-SDK_OVERLAY_MODULE_08_ID = 8;
-SDK_OVERLAY_MODULE_08_START = 0x02211E60;
-SDK_OVERLAY_MODULE_08_SIZE = 0x0001B760;
-SDK_OVERLAY_MODULE_08_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_08_STATIC_INIT_START = 0x0222D598;
-SDK_OVERLAY_MODULE_08_STATIC_INIT_END = 0x0222D59C;
-SDK_OVERLAY_MODULE_09_ID = 9;
-SDK_OVERLAY_MODULE_09_START = 0x02211E60;
-SDK_OVERLAY_MODULE_09_SIZE = 0x0000A1A0;
-SDK_OVERLAY_MODULE_09_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_09_STATIC_INIT_START = 0x0221BFE8;
-SDK_OVERLAY_MODULE_09_STATIC_INIT_END = 0x0221BFEC;
-SDK_OVERLAY_MODULE_10_ID = 10;
-SDK_OVERLAY_MODULE_10_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_10_SIZE = 0x00000020;
-SDK_OVERLAY_MODULE_10_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_10_STATIC_INIT_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_10_STATIC_INIT_END = 0x021D74E4;
-SDK_OVERLAY_MODULE_11_ID = 11;
-SDK_OVERLAY_MODULE_11_START = 0x0222D5C0;
-SDK_OVERLAY_MODULE_11_SIZE = 0x000329E0;
-SDK_OVERLAY_MODULE_11_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_11_STATIC_INIT_START = 0x0225FF18;
-SDK_OVERLAY_MODULE_11_STATIC_INIT_END = 0x0225FF20;
-SDK_OVERLAY_MODULE_12_ID = 12;
-SDK_OVERLAY_MODULE_12_START = 0x0222D5C0;
-SDK_OVERLAY_MODULE_12_SIZE = 0x00019260;
-SDK_OVERLAY_MODULE_12_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_12_STATIC_INIT_START = 0x02246810;
-SDK_OVERLAY_MODULE_12_STATIC_INIT_END = 0x02246818;
-SDK_OVERLAY_MODULE_13_ID = 13;
-SDK_OVERLAY_MODULE_13_START = 0x02211E60;
-SDK_OVERLAY_MODULE_13_SIZE = 0x0002EBE0;
-SDK_OVERLAY_MODULE_13_BSSSIZE = 0x000027E0;
-SDK_OVERLAY_MODULE_13_STATIC_INIT_START = 0x0223F768;
-SDK_OVERLAY_MODULE_13_STATIC_INIT_END = 0x0223F76C;
-SDK_OVERLAY_MODULE_14_ID = 14;
-SDK_OVERLAY_MODULE_14_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_14_SIZE = 0x0000F520;
-SDK_OVERLAY_MODULE_14_BSSSIZE = 0x000001A0;
-SDK_OVERLAY_MODULE_14_STATIC_INIT_START = 0x021E69C8;
-SDK_OVERLAY_MODULE_14_STATIC_INIT_END = 0x021E69CC;
-SDK_OVERLAY_MODULE_15_ID = 15;
-SDK_OVERLAY_MODULE_15_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_15_SIZE = 0x00004680;
-SDK_OVERLAY_MODULE_15_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_15_STATIC_INIT_START = 0x021DBB5C;
-SDK_OVERLAY_MODULE_15_STATIC_INIT_END = 0x021DBB60;
-SDK_OVERLAY_MODULE_16_ID = 16;
-SDK_OVERLAY_MODULE_16_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_16_SIZE = 0x00028500;
-SDK_OVERLAY_MODULE_16_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_16_STATIC_INIT_START = 0x021FF9C4;
-SDK_OVERLAY_MODULE_16_STATIC_INIT_END = 0x021FF9C8;
-SDK_OVERLAY_MODULE_17_ID = 17;
-SDK_OVERLAY_MODULE_17_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_17_SIZE = 0x00006E80;
-SDK_OVERLAY_MODULE_17_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_17_STATIC_INIT_START = 0x021DE354;
-SDK_OVERLAY_MODULE_17_STATIC_INIT_END = 0x021DE358;
-SDK_OVERLAY_MODULE_18_ID = 18;
-SDK_OVERLAY_MODULE_18_START = 0x022396A0;
-SDK_OVERLAY_MODULE_18_SIZE = 0x00017CE0;
-SDK_OVERLAY_MODULE_18_BSSSIZE = 0x00000080;
-SDK_OVERLAY_MODULE_18_STATIC_INIT_START = 0x02250858;
-SDK_OVERLAY_MODULE_18_STATIC_INIT_END = 0x0225085C;
-SDK_OVERLAY_MODULE_19_ID = 19;
-SDK_OVERLAY_MODULE_19_START = 0x02252440;
-SDK_OVERLAY_MODULE_19_SIZE = 0x00000100;
-SDK_OVERLAY_MODULE_19_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_19_STATIC_INIT_START = 0x02252524;
-SDK_OVERLAY_MODULE_19_STATIC_INIT_END = 0x02252528;
-SDK_OVERLAY_MODULE_20_ID = 20;
-SDK_OVERLAY_MODULE_20_START = 0x02252440;
-SDK_OVERLAY_MODULE_20_SIZE = 0x00002400;
-SDK_OVERLAY_MODULE_20_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_20_STATIC_INIT_START = 0x02254838;
-SDK_OVERLAY_MODULE_20_STATIC_INIT_END = 0x0225483C;
-SDK_OVERLAY_MODULE_21_ID = 21;
-SDK_OVERLAY_MODULE_21_START = 0x02254840;
-SDK_OVERLAY_MODULE_21_SIZE = 0x000005C0;
-SDK_OVERLAY_MODULE_21_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_21_STATIC_INIT_START = 0x02254DE8;
-SDK_OVERLAY_MODULE_21_STATIC_INIT_END = 0x02254DF0;
-SDK_OVERLAY_MODULE_22_ID = 22;
-SDK_OVERLAY_MODULE_22_START = 0x02254840;
-SDK_OVERLAY_MODULE_22_SIZE = 0x00000F00;
-SDK_OVERLAY_MODULE_22_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_22_STATIC_INIT_START = 0x02255730;
-SDK_OVERLAY_MODULE_22_STATIC_INIT_END = 0x02255738;
-SDK_OVERLAY_MODULE_23_ID = 23;
-SDK_OVERLAY_MODULE_23_START = 0x02254840;
-SDK_OVERLAY_MODULE_23_SIZE = 0x00001900;
-SDK_OVERLAY_MODULE_23_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_23_STATIC_INIT_START = 0x02256128;
-SDK_OVERLAY_MODULE_23_STATIC_INIT_END = 0x02256130;
-SDK_OVERLAY_MODULE_24_ID = 24;
-SDK_OVERLAY_MODULE_24_START = 0x02254840;
-SDK_OVERLAY_MODULE_24_SIZE = 0x000009A0;
-SDK_OVERLAY_MODULE_24_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_24_STATIC_INIT_START = 0x022551C0;
-SDK_OVERLAY_MODULE_24_STATIC_INIT_END = 0x022551C8;
-SDK_OVERLAY_MODULE_25_ID = 25;
-SDK_OVERLAY_MODULE_25_START = 0x02254840;
-SDK_OVERLAY_MODULE_25_SIZE = 0x00000560;
-SDK_OVERLAY_MODULE_25_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_25_STATIC_INIT_START = 0x02254D80;
-SDK_OVERLAY_MODULE_25_STATIC_INIT_END = 0x02254D88;
-SDK_OVERLAY_MODULE_26_ID = 26;
-SDK_OVERLAY_MODULE_26_START = 0x02254840;
-SDK_OVERLAY_MODULE_26_SIZE = 0x00000800;
-SDK_OVERLAY_MODULE_26_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_26_STATIC_INIT_START = 0x02255020;
-SDK_OVERLAY_MODULE_26_STATIC_INIT_END = 0x02255028;
-SDK_OVERLAY_MODULE_27_ID = 27;
-SDK_OVERLAY_MODULE_27_START = 0x02254840;
-SDK_OVERLAY_MODULE_27_SIZE = 0x00000BA0;
-SDK_OVERLAY_MODULE_27_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_27_STATIC_INIT_START = 0x022553C4;
-SDK_OVERLAY_MODULE_27_STATIC_INIT_END = 0x022553CC;
-SDK_OVERLAY_MODULE_28_ID = 28;
-SDK_OVERLAY_MODULE_28_START = 0x02254840;
-SDK_OVERLAY_MODULE_28_SIZE = 0x00001780;
-SDK_OVERLAY_MODULE_28_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_28_STATIC_INIT_START = 0x02255F18;
-SDK_OVERLAY_MODULE_28_STATIC_INIT_END = 0x02255F20;
-SDK_OVERLAY_MODULE_29_ID = 29;
-SDK_OVERLAY_MODULE_29_START = 0x02254840;
-SDK_OVERLAY_MODULE_29_SIZE = 0x00000900;
-SDK_OVERLAY_MODULE_29_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_29_STATIC_INIT_START = 0x0225512C;
-SDK_OVERLAY_MODULE_29_STATIC_INIT_END = 0x02255134;
-SDK_OVERLAY_MODULE_30_ID = 30;
-SDK_OVERLAY_MODULE_30_START = 0x02254840;
-SDK_OVERLAY_MODULE_30_SIZE = 0x00000600;
-SDK_OVERLAY_MODULE_30_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_30_STATIC_INIT_START = 0x02254E28;
-SDK_OVERLAY_MODULE_30_STATIC_INIT_END = 0x02254E30;
-SDK_OVERLAY_MODULE_31_ID = 31;
-SDK_OVERLAY_MODULE_31_START = 0x02254840;
-SDK_OVERLAY_MODULE_31_SIZE = 0x00000600;
-SDK_OVERLAY_MODULE_31_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_31_STATIC_INIT_START = 0x02254E20;
-SDK_OVERLAY_MODULE_31_STATIC_INIT_END = 0x02254E28;
-SDK_OVERLAY_MODULE_32_ID = 32;
-SDK_OVERLAY_MODULE_32_START = 0x02254840;
-SDK_OVERLAY_MODULE_32_SIZE = 0x000004A0;
-SDK_OVERLAY_MODULE_32_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_32_STATIC_INIT_START = 0x02254CC4;
-SDK_OVERLAY_MODULE_32_STATIC_INIT_END = 0x02254CCC;
-SDK_OVERLAY_MODULE_33_ID = 33;
-SDK_OVERLAY_MODULE_33_START = 0x02254840;
-SDK_OVERLAY_MODULE_33_SIZE = 0x00000320;
-SDK_OVERLAY_MODULE_33_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_33_STATIC_INIT_START = 0x02254B40;
-SDK_OVERLAY_MODULE_33_STATIC_INIT_END = 0x02254B48;
-SDK_OVERLAY_MODULE_34_ID = 34;
-SDK_OVERLAY_MODULE_34_START = 0x02254840;
-SDK_OVERLAY_MODULE_34_SIZE = 0x000004C0;
-SDK_OVERLAY_MODULE_34_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_34_STATIC_INIT_START = 0x02254CF8;
-SDK_OVERLAY_MODULE_34_STATIC_INIT_END = 0x02254D00;
-SDK_OVERLAY_MODULE_35_ID = 35;
-SDK_OVERLAY_MODULE_35_START = 0x02254840;
-SDK_OVERLAY_MODULE_35_SIZE = 0x000009A0;
-SDK_OVERLAY_MODULE_35_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_35_STATIC_INIT_START = 0x022551C0;
-SDK_OVERLAY_MODULE_35_STATIC_INIT_END = 0x022551C8;
-SDK_OVERLAY_MODULE_36_ID = 36;
-SDK_OVERLAY_MODULE_36_START = 0x02254840;
-SDK_OVERLAY_MODULE_36_SIZE = 0x00000CC0;
-SDK_OVERLAY_MODULE_36_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_36_STATIC_INIT_START = 0x022554F8;
-SDK_OVERLAY_MODULE_36_STATIC_INIT_END = 0x02255500;
-SDK_OVERLAY_MODULE_37_ID = 37;
-SDK_OVERLAY_MODULE_37_START = 0x02254840;
-SDK_OVERLAY_MODULE_37_SIZE = 0x00000560;
-SDK_OVERLAY_MODULE_37_BSSSIZE = 0x00000020;
-SDK_OVERLAY_MODULE_37_STATIC_INIT_START = 0x02254D90;
-SDK_OVERLAY_MODULE_37_STATIC_INIT_END = 0x02254D98;
-SDK_OVERLAY_MODULE_38_ID = 38;
-SDK_OVERLAY_MODULE_38_START = 0x02254840;
-SDK_OVERLAY_MODULE_38_SIZE = 0x00000B40;
-SDK_OVERLAY_MODULE_38_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_38_STATIC_INIT_START = 0x02255360;
-SDK_OVERLAY_MODULE_38_STATIC_INIT_END = 0x02255368;
-SDK_OVERLAY_MODULE_39_ID = 39;
-SDK_OVERLAY_MODULE_39_START = 0x02254840;
-SDK_OVERLAY_MODULE_39_SIZE = 0x00000CC0;
-SDK_OVERLAY_MODULE_39_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_39_STATIC_INIT_START = 0x022554E4;
-SDK_OVERLAY_MODULE_39_STATIC_INIT_END = 0x022554EC;
-SDK_OVERLAY_MODULE_40_ID = 40;
-SDK_OVERLAY_MODULE_40_START = 0x02254840;
-SDK_OVERLAY_MODULE_40_SIZE = 0x00000C60;
-SDK_OVERLAY_MODULE_40_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_40_STATIC_INIT_START = 0x02255480;
-SDK_OVERLAY_MODULE_40_STATIC_INIT_END = 0x02255488;
-SDK_OVERLAY_MODULE_41_ID = 41;
-SDK_OVERLAY_MODULE_41_START = 0x02254840;
-SDK_OVERLAY_MODULE_41_SIZE = 0x00001140;
-SDK_OVERLAY_MODULE_41_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_41_STATIC_INIT_START = 0x02255974;
-SDK_OVERLAY_MODULE_41_STATIC_INIT_END = 0x0225597C;
-SDK_OVERLAY_MODULE_42_ID = 42;
-SDK_OVERLAY_MODULE_42_START = 0x02254840;
-SDK_OVERLAY_MODULE_42_SIZE = 0x00000900;
-SDK_OVERLAY_MODULE_42_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_42_STATIC_INIT_START = 0x0225511C;
-SDK_OVERLAY_MODULE_42_STATIC_INIT_END = 0x02255124;
-SDK_OVERLAY_MODULE_43_ID = 43;
-SDK_OVERLAY_MODULE_43_START = 0x02254840;
-SDK_OVERLAY_MODULE_43_SIZE = 0x000009C0;
-SDK_OVERLAY_MODULE_43_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_43_STATIC_INIT_START = 0x022551EC;
-SDK_OVERLAY_MODULE_43_STATIC_INIT_END = 0x022551F4;
-SDK_OVERLAY_MODULE_44_ID = 44;
-SDK_OVERLAY_MODULE_44_START = 0x02254840;
-SDK_OVERLAY_MODULE_44_SIZE = 0x000004A0;
-SDK_OVERLAY_MODULE_44_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_44_STATIC_INIT_START = 0x02254CBC;
-SDK_OVERLAY_MODULE_44_STATIC_INIT_END = 0x02254CC4;
-SDK_OVERLAY_MODULE_45_ID = 45;
-SDK_OVERLAY_MODULE_45_START = 0x02254840;
-SDK_OVERLAY_MODULE_45_SIZE = 0x00000940;
-SDK_OVERLAY_MODULE_45_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_45_STATIC_INIT_START = 0x02255170;
-SDK_OVERLAY_MODULE_45_STATIC_INIT_END = 0x02255178;
-SDK_OVERLAY_MODULE_46_ID = 46;
-SDK_OVERLAY_MODULE_46_START = 0x02254840;
-SDK_OVERLAY_MODULE_46_SIZE = 0x00000320;
-SDK_OVERLAY_MODULE_46_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_46_STATIC_INIT_START = 0x02254B40;
-SDK_OVERLAY_MODULE_46_STATIC_INIT_END = 0x02254B48;
-SDK_OVERLAY_MODULE_47_ID = 47;
-SDK_OVERLAY_MODULE_47_START = 0x02254840;
-SDK_OVERLAY_MODULE_47_SIZE = 0x00000CA0;
-SDK_OVERLAY_MODULE_47_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_47_STATIC_INIT_START = 0x022554BC;
-SDK_OVERLAY_MODULE_47_STATIC_INIT_END = 0x022554C4;
-SDK_OVERLAY_MODULE_48_ID = 48;
-SDK_OVERLAY_MODULE_48_START = 0x02254840;
-SDK_OVERLAY_MODULE_48_SIZE = 0x000008A0;
-SDK_OVERLAY_MODULE_48_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_48_STATIC_INIT_START = 0x022550D0;
-SDK_OVERLAY_MODULE_48_STATIC_INIT_END = 0x022550D8;
-SDK_OVERLAY_MODULE_49_ID = 49;
-SDK_OVERLAY_MODULE_49_START = 0x02254840;
-SDK_OVERLAY_MODULE_49_SIZE = 0x00000600;
-SDK_OVERLAY_MODULE_49_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_49_STATIC_INIT_START = 0x02254E20;
-SDK_OVERLAY_MODULE_49_STATIC_INIT_END = 0x02254E28;
-SDK_OVERLAY_MODULE_50_ID = 50;
-SDK_OVERLAY_MODULE_50_START = 0x02254840;
-SDK_OVERLAY_MODULE_50_SIZE = 0x00000320;
-SDK_OVERLAY_MODULE_50_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_50_STATIC_INIT_START = 0x02254B50;
-SDK_OVERLAY_MODULE_50_STATIC_INIT_END = 0x02254B58;
-SDK_OVERLAY_MODULE_51_ID = 51;
-SDK_OVERLAY_MODULE_51_START = 0x02254840;
-SDK_OVERLAY_MODULE_51_SIZE = 0x00000FC0;
-SDK_OVERLAY_MODULE_51_BSSSIZE = 0x00000020;
-SDK_OVERLAY_MODULE_51_STATIC_INIT_START = 0x022557E0;
-SDK_OVERLAY_MODULE_51_STATIC_INIT_END = 0x022557E4;
-SDK_OVERLAY_MODULE_52_ID = 52;
-SDK_OVERLAY_MODULE_52_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_52_SIZE = 0x00000400;
-SDK_OVERLAY_MODULE_52_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_52_STATIC_INIT_START = 0x021D78D0;
-SDK_OVERLAY_MODULE_52_STATIC_INIT_END = 0x021D78D4;
-SDK_OVERLAY_MODULE_53_ID = 53;
-SDK_OVERLAY_MODULE_53_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_53_SIZE = 0x00002480;
-SDK_OVERLAY_MODULE_53_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_53_STATIC_INIT_START = 0x021D9888;
-SDK_OVERLAY_MODULE_53_STATIC_INIT_END = 0x021D988C;
-SDK_OVERLAY_MODULE_54_ID = 54;
-SDK_OVERLAY_MODULE_54_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_54_SIZE = 0x00002380;
-SDK_OVERLAY_MODULE_54_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_54_STATIC_INIT_START = 0x021D97D4;
-SDK_OVERLAY_MODULE_54_STATIC_INIT_END = 0x021D97D8;
-SDK_OVERLAY_MODULE_55_ID = 55;
-SDK_OVERLAY_MODULE_55_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_55_SIZE = 0x00003040;
-SDK_OVERLAY_MODULE_55_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_55_STATIC_INIT_START = 0x021DA480;
-SDK_OVERLAY_MODULE_55_STATIC_INIT_END = 0x021DA484;
-SDK_OVERLAY_MODULE_56_ID = 56;
-SDK_OVERLAY_MODULE_56_START = 0x02211E60;
-SDK_OVERLAY_MODULE_56_SIZE = 0x000047A0;
-SDK_OVERLAY_MODULE_56_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_56_STATIC_INIT_START = 0x0221647C;
-SDK_OVERLAY_MODULE_56_STATIC_INIT_END = 0x02216480;
-SDK_OVERLAY_MODULE_57_ID = 57;
-SDK_OVERLAY_MODULE_57_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_57_SIZE = 0x00002540;
-SDK_OVERLAY_MODULE_57_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_57_STATIC_INIT_START = 0x021D9A10;
-SDK_OVERLAY_MODULE_57_STATIC_INIT_END = 0x021D9A14;
-SDK_OVERLAY_MODULE_58_ID = 58;
-SDK_OVERLAY_MODULE_58_START = 0x021D9A20;
-SDK_OVERLAY_MODULE_58_SIZE = 0x000015A0;
-SDK_OVERLAY_MODULE_58_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_58_STATIC_INIT_START = 0x021DAF94;
-SDK_OVERLAY_MODULE_58_STATIC_INIT_END = 0x021DAF98;
-SDK_OVERLAY_MODULE_59_ID = 59;
-SDK_OVERLAY_MODULE_59_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_59_SIZE = 0x00002C20;
-SDK_OVERLAY_MODULE_59_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_59_STATIC_INIT_START = 0x021DA0FC;
-SDK_OVERLAY_MODULE_59_STATIC_INIT_END = 0x021DA100;
-SDK_OVERLAY_MODULE_60_ID = 60;
-SDK_OVERLAY_MODULE_60_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_60_SIZE = 0x00000D00;
-SDK_OVERLAY_MODULE_60_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_60_STATIC_INIT_START = 0x021D81D8;
-SDK_OVERLAY_MODULE_60_STATIC_INIT_END = 0x021D81DC;
-SDK_OVERLAY_MODULE_61_ID = 61;
-SDK_OVERLAY_MODULE_61_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_61_SIZE = 0x00001080;
-SDK_OVERLAY_MODULE_61_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_61_STATIC_INIT_START = 0x021D8554;
-SDK_OVERLAY_MODULE_61_STATIC_INIT_END = 0x021D8558;
-SDK_OVERLAY_MODULE_62_ID = 62;
-SDK_OVERLAY_MODULE_62_START = 0x0222D5C0;
-SDK_OVERLAY_MODULE_62_SIZE = 0x00003DE0;
-SDK_OVERLAY_MODULE_62_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_62_STATIC_INIT_START = 0x02231380;
-SDK_OVERLAY_MODULE_62_STATIC_INIT_END = 0x02231388;
-SDK_OVERLAY_MODULE_63_ID = 63;
-SDK_OVERLAY_MODULE_63_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_63_SIZE = 0x00004AC0;
-SDK_OVERLAY_MODULE_63_BSSSIZE = 0x00000020;
-SDK_OVERLAY_MODULE_63_STATIC_INIT_START = 0x021DBF20;
-SDK_OVERLAY_MODULE_63_STATIC_INIT_END = 0x021DBF24;
-SDK_OVERLAY_MODULE_64_ID = 64;
-SDK_OVERLAY_MODULE_64_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_64_SIZE = 0x00001C40;
-SDK_OVERLAY_MODULE_64_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_64_STATIC_INIT_START = 0x021D9110;
-SDK_OVERLAY_MODULE_64_STATIC_INIT_END = 0x021D9114;
-SDK_OVERLAY_MODULE_65_ID = 65;
-SDK_OVERLAY_MODULE_65_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_65_SIZE = 0x00003000;
-SDK_OVERLAY_MODULE_65_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_65_STATIC_INIT_START = 0x021DA428;
-SDK_OVERLAY_MODULE_65_STATIC_INIT_END = 0x021DA42C;
-SDK_OVERLAY_MODULE_66_ID = 66;
-SDK_OVERLAY_MODULE_66_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_66_SIZE = 0x00002660;
-SDK_OVERLAY_MODULE_66_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_66_STATIC_INIT_START = 0x021D9A9C;
-SDK_OVERLAY_MODULE_66_STATIC_INIT_END = 0x021D9AA0;
-SDK_OVERLAY_MODULE_67_ID = 67;
-SDK_OVERLAY_MODULE_67_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_67_SIZE = 0x00002440;
-SDK_OVERLAY_MODULE_67_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_67_STATIC_INIT_START = 0x021D9918;
-SDK_OVERLAY_MODULE_67_STATIC_INIT_END = 0x021D991C;
-SDK_OVERLAY_MODULE_68_ID = 68;
-SDK_OVERLAY_MODULE_68_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_68_SIZE = 0x00001600;
-SDK_OVERLAY_MODULE_68_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_68_STATIC_INIT_START = 0x021D8AD4;
-SDK_OVERLAY_MODULE_68_STATIC_INIT_END = 0x021D8AD8;
-SDK_OVERLAY_MODULE_69_ID = 69;
-SDK_OVERLAY_MODULE_69_START = 0x0222D5C0;
-SDK_OVERLAY_MODULE_69_SIZE = 0x000023A0;
-SDK_OVERLAY_MODULE_69_BSSSIZE = 0x00000020;
-SDK_OVERLAY_MODULE_69_STATIC_INIT_START = 0x0222F93C;
-SDK_OVERLAY_MODULE_69_STATIC_INIT_END = 0x0222F940;
-SDK_OVERLAY_MODULE_70_ID = 70;
-SDK_OVERLAY_MODULE_70_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_70_SIZE = 0x00000E20;
-SDK_OVERLAY_MODULE_70_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_70_STATIC_INIT_START = 0x021D82DC;
-SDK_OVERLAY_MODULE_70_STATIC_INIT_END = 0x021D82E0;
-SDK_OVERLAY_MODULE_71_ID = 71;
-SDK_OVERLAY_MODULE_71_START = 0x0222D5C0;
-SDK_OVERLAY_MODULE_71_SIZE = 0x00003EC0;
-SDK_OVERLAY_MODULE_71_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_71_STATIC_INIT_START = 0x0223147C;
-SDK_OVERLAY_MODULE_71_STATIC_INIT_END = 0x02231480;
-SDK_OVERLAY_MODULE_72_ID = 72;
-SDK_OVERLAY_MODULE_72_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_72_SIZE = 0x00000020;
-SDK_OVERLAY_MODULE_72_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_72_STATIC_INIT_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_72_STATIC_INIT_END = 0x021D74E4;
-SDK_OVERLAY_MODULE_73_ID = 73;
-SDK_OVERLAY_MODULE_73_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_73_SIZE = 0x00004AE0;
-SDK_OVERLAY_MODULE_73_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_73_STATIC_INIT_START = 0x021DBF70;
-SDK_OVERLAY_MODULE_73_STATIC_INIT_END = 0x021DBF74;
-SDK_OVERLAY_MODULE_74_ID = 74;
-SDK_OVERLAY_MODULE_74_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_74_SIZE = 0x00001220;
-SDK_OVERLAY_MODULE_74_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_74_STATIC_INIT_START = 0x021D8664;
-SDK_OVERLAY_MODULE_74_STATIC_INIT_END = 0x021D8668;
-SDK_OVERLAY_MODULE_75_ID = 75;
-SDK_OVERLAY_MODULE_75_START = 0x021E6BA0;
-SDK_OVERLAY_MODULE_75_SIZE = 0x00005DE0;
-SDK_OVERLAY_MODULE_75_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_75_STATIC_INIT_START = 0x021EC97C;
-SDK_OVERLAY_MODULE_75_STATIC_INIT_END = 0x021EC980;
-SDK_OVERLAY_MODULE_76_ID = 76;
-SDK_OVERLAY_MODULE_76_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_76_SIZE = 0x00001E20;
-SDK_OVERLAY_MODULE_76_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_76_STATIC_INIT_START = 0x021D92E0;
-SDK_OVERLAY_MODULE_76_STATIC_INIT_END = 0x021D92E4;
-SDK_OVERLAY_MODULE_77_ID = 77;
-SDK_OVERLAY_MODULE_77_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_77_SIZE = 0x00001BE0;
-SDK_OVERLAY_MODULE_77_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_77_STATIC_INIT_START = 0x021D90AC;
-SDK_OVERLAY_MODULE_77_STATIC_INIT_END = 0x021D90B0;
-SDK_OVERLAY_MODULE_78_ID = 78;
-SDK_OVERLAY_MODULE_78_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_78_SIZE = 0x00000460;
-SDK_OVERLAY_MODULE_78_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_78_STATIC_INIT_START = 0x021D78F8;
-SDK_OVERLAY_MODULE_78_STATIC_INIT_END = 0x021D78FC;
-SDK_OVERLAY_MODULE_79_ID = 79;
-SDK_OVERLAY_MODULE_79_START = 0x02211E60;
-SDK_OVERLAY_MODULE_79_SIZE = 0x000052C0;
-SDK_OVERLAY_MODULE_79_BSSSIZE = 0x00000040;
-SDK_OVERLAY_MODULE_79_STATIC_INIT_START = 0x02216748;
-SDK_OVERLAY_MODULE_79_STATIC_INIT_END = 0x0221674C;
-SDK_OVERLAY_MODULE_80_ID = 80;
-SDK_OVERLAY_MODULE_80_START = 0x0222D5C0;
-SDK_OVERLAY_MODULE_80_SIZE = 0x0000A720;
-SDK_OVERLAY_MODULE_80_BSSSIZE = 0x00000160;
-SDK_OVERLAY_MODULE_80_STATIC_INIT_START = 0x02237670;
-SDK_OVERLAY_MODULE_80_STATIC_INIT_END = 0x02237674;
-SDK_OVERLAY_MODULE_81_ID = 81;
-SDK_OVERLAY_MODULE_81_START = 0x02237E40;
-SDK_OVERLAY_MODULE_81_SIZE = 0x00005580;
-SDK_OVERLAY_MODULE_81_BSSSIZE = 0x000000A0;
-SDK_OVERLAY_MODULE_81_STATIC_INIT_START = 0x0223D39C;
-SDK_OVERLAY_MODULE_81_STATIC_INIT_END = 0x0223D3A0;
-SDK_OVERLAY_MODULE_82_ID = 82;
-SDK_OVERLAY_MODULE_82_START = 0x0222D5C0;
-SDK_OVERLAY_MODULE_82_SIZE = 0x00002540;
-SDK_OVERLAY_MODULE_82_BSSSIZE = 0x00000120;
-SDK_OVERLAY_MODULE_82_STATIC_INIT_START = 0x0222F8CC;
-SDK_OVERLAY_MODULE_82_STATIC_INIT_END = 0x0222F8D0;
-SDK_OVERLAY_MODULE_83_ID = 83;
-SDK_OVERLAY_MODULE_83_START = 0x0222D5C0;
-SDK_OVERLAY_MODULE_83_SIZE = 0x0000E2A0;
-SDK_OVERLAY_MODULE_83_BSSSIZE = 0x00001980;
-SDK_OVERLAY_MODULE_83_STATIC_INIT_START = 0x0223A77C;
-SDK_OVERLAY_MODULE_83_STATIC_INIT_END = 0x0223A780;
-SDK_OVERLAY_MODULE_84_ID = 84;
-SDK_OVERLAY_MODULE_84_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_84_SIZE = 0x00003920;
-SDK_OVERLAY_MODULE_84_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_84_STATIC_INIT_START = 0x021DADE4;
-SDK_OVERLAY_MODULE_84_STATIC_INIT_END = 0x021DADE8;
-SDK_OVERLAY_MODULE_85_ID = 85;
-SDK_OVERLAY_MODULE_85_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_85_SIZE = 0x00009100;
-SDK_OVERLAY_MODULE_85_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_85_STATIC_INIT_START = 0x021E05A0;
-SDK_OVERLAY_MODULE_85_STATIC_INIT_END = 0x021E05A4;
-SDK_OVERLAY_MODULE_86_ID = 86;
-SDK_OVERLAY_MODULE_86_START = 0x021D74E0;
-SDK_OVERLAY_MODULE_86_SIZE = 0x00000820;
-SDK_OVERLAY_MODULE_86_BSSSIZE = 0x00000000;
-SDK_OVERLAY_MODULE_86_STATIC_INIT_START = 0x021D7CE4;
-SDK_OVERLAY_MODULE_86_STATIC_INIT_END = 0x021D7CE8;