summaryrefslogtreecommitdiff
path: root/arm9
diff options
context:
space:
mode:
Diffstat (limited to 'arm9')
-rw-r--r--arm9/Makefile125
-rw-r--r--arm9/arm9.lcf2822
-rw-r--r--arm9/arm9.lsf318
-rw-r--r--arm9/asm/CP_context.s (renamed from arm9/asm/libcp.s)0
-rw-r--r--arm9/asm/DGT_hash1.s404
-rw-r--r--arm9/asm/DGT_hash2.s443
-rw-r--r--arm9/asm/DGT_sha1s_arm4cw.s179
-rw-r--r--arm9/asm/OS_interrupt_asm.s23
-rw-r--r--arm9/asm/OS_printf.s757
-rw-r--r--arm9/asm/OS_spinLock.s4
-rw-r--r--arm9/asm/arm9_itcm.s4
-rw-r--r--arm9/asm/crt0.s2
-rw-r--r--arm9/asm/filesystem.s140
-rw-r--r--arm9/asm/libcard.s2
-rw-r--r--arm9/asm/libctrdg.s8
-rw-r--r--arm9/asm/libdgt.s1017
-rw-r--r--arm9/asm/libmath.s6
-rw-r--r--arm9/asm/scrcmd.s490
-rw-r--r--arm9/asm/secure.s9
-rw-r--r--arm9/asm/unk_02000E0C.s343
-rw-r--r--arm9/asm/unk_020023C0.s250
-rw-r--r--arm9/asm/unk_020061E8.s2
-rw-r--r--arm9/asm/unk_02006864.s220
-rw-r--r--arm9/asm/unk_02038C78.s8
-rw-r--r--arm9/asm/unk_02046030.s1868
-rw-r--r--arm9/asm/unk_0208AC14.s48
-rw-r--r--arm9/asm/unk_020910EC.s14
-rw-r--r--arm9/asm/unk_020AF030.s4
-rw-r--r--arm9/data/bss.s681
-rw-r--r--arm9/data/bss_2.s1133
-rw-r--r--arm9/data/bss_3.s157
-rw-r--r--arm9/data/bss_4.s297
-rw-r--r--arm9/data/rom2.s42
-rw-r--r--arm9/data/rom2_2.s4370
-rw-r--r--arm9/data/rom2_3.s1365
-rw-r--r--arm9/data/rom2_4.s306
-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.inc1915
-rw-r--r--arm9/lib/include/CARD_backup.h6
-rw-r--r--arm9/lib/include/CTRDG_common.h6
-rw-r--r--arm9/lib/include/FS_overlay.h28
-rw-r--r--arm9/lib/include/OS_interrupt.h3
-rw-r--r--arm9/lib/include/OS_printf.h7
-rw-r--r--arm9/lib/include/PAD_pad.h38
-rw-r--r--arm9/lib/include/SPI_pm.h38
-rw-r--r--arm9/lib/include/gx.h1
-rw-r--r--arm9/lib/include/registers.h511
-rw-r--r--arm9/lib/src/FS_rom.c6
-rw-r--r--arm9/lib/src/FX_cp.c8
-rw-r--r--arm9/lib/src/OS_interrupt.c10
-rw-r--r--arm9/lib/src/OS_printf.c1248
-rw-r--r--arm9/macros.lcf.inc9
-rw-r--r--arm9/modules/00/asm/module_00_dummy.s3
-rw-r--r--arm9/modules/01/src/module_01.c12
-rw-r--r--arm9/modules/01/src/module_01.cpp11
-rw-r--r--arm9/modules/02/asm/module_02_dummy.s3
-rw-r--r--arm9/modules/03/asm/module_03_dummy.s3
-rw-r--r--arm9/modules/04/asm/arm_04.s14145
-rw-r--r--arm9/modules/04/asm/thumb_04.s520
-rw-r--r--arm9/modules/05/asm/module_05.s304
-rw-r--r--arm9/modules/06/asm/module_06.s1456
-rw-r--r--arm9/modules/07/asm/module_07.s642
-rw-r--r--arm9/modules/08/asm/module_08.s107
-rw-r--r--arm9/modules/09/asm/module_09.s184
-rw-r--r--arm9/modules/10/asm/module_10_dummy.s6
-rw-r--r--arm9/modules/11/asm/module_11.s192
-rw-r--r--arm9/modules/12/asm/module_12.s173
-rw-r--r--arm9/modules/13/asm/module_13_arm1.s12
-rw-r--r--arm9/modules/13/asm/module_13_arm2.s34
-rw-r--r--arm9/modules/13/asm/module_13_thumb.s12
-rw-r--r--arm9/modules/14/asm/module_14.s42
-rw-r--r--arm9/modules/15/asm/module_15.s44
-rw-r--r--arm9/modules/16/asm/module_16.s228
-rw-r--r--arm9/modules/17/asm/module_17.s76
-rw-r--r--arm9/modules/18/asm/module_18.s266
-rw-r--r--arm9/modules/19/asm/module_19.s4
-rw-r--r--arm9/modules/20/asm/module_20.s12
-rw-r--r--arm9/modules/21/asm/module_21.s21
-rw-r--r--arm9/modules/22/asm/module_22.s19
-rw-r--r--arm9/modules/23/asm/module_23.s24
-rw-r--r--arm9/modules/24/asm/module_24.s7
-rw-r--r--arm9/modules/25/asm/module_25.s7
-rw-r--r--arm9/modules/26/asm/module_26.s7
-rw-r--r--arm9/modules/27/asm/module_27.s12
-rw-r--r--arm9/modules/28/asm/module_28.s32
-rw-r--r--arm9/modules/29/asm/module_29.s22
-rw-r--r--arm9/modules/30/asm/module_30.s10
-rw-r--r--arm9/modules/31/asm/module_31.s7
-rw-r--r--arm9/modules/32/asm/module_32.s12
-rw-r--r--arm9/modules/33/asm/module_33.s399
-rw-r--r--arm9/modules/34/asm/module_34.s601
-rw-r--r--arm9/modules/35/asm/module_35.s1142
-rw-r--r--arm9/modules/36/asm/module_36.s1571
-rw-r--r--arm9/modules/37/asm/module_37.s681
-rw-r--r--arm9/modules/38/asm/module_38.s1193
-rw-r--r--arm9/modules/39/asm/module_39.s1457
-rw-r--r--arm9/modules/40/asm/module_40.s1417
-rw-r--r--arm9/modules/41/asm/module_41.s2032
-rw-r--r--arm9/modules/42/asm/module_42.s1161
-rw-r--r--arm9/modules/43/asm/module_43.s1140
-rw-r--r--arm9/modules/44/asm/module_44.s580
-rw-r--r--arm9/modules/45/asm/module_45.s1061
-rw-r--r--arm9/modules/46/asm/module_46.s399
-rw-r--r--arm9/modules/47/asm/module_47.s1497
-rw-r--r--arm9/modules/48/asm/module_48.s960
-rw-r--r--arm9/modules/49/asm/module_49.s638
-rw-r--r--arm9/modules/50/asm/module_50.s409
-rw-r--r--arm9/modules/51/asm/module_51.s1911
-rw-r--r--arm9/modules/52/asm/module_52.s250
-rw-r--r--arm9/modules/53/asm/module_53.s4051
-rw-r--r--arm9/modules/54/asm/module_54.s4382
-rw-r--r--arm9/modules/55/asm/module_55.s5594
-rw-r--r--arm9/modules/56/asm/module_56.s8689
-rw-r--r--arm9/modules/57/asm/module_57.s4303
-rw-r--r--arm9/modules/58/asm/module_58.s2481
-rw-r--r--arm9/modules/59/asm/module_59.s5042
-rw-r--r--arm9/modules/60/asm/module_60.s1491
-rw-r--r--arm9/modules/61/asm/module_61.s1907
-rw-r--r--arm9/modules/62/asm/module_62.s7543
-rw-r--r--arm9/modules/63/asm/module_63.s8588
-rw-r--r--arm9/modules/64/asm/module_64.s3582
-rw-r--r--arm9/modules/65/asm/module_65.s5500
-rw-r--r--arm9/modules/66/asm/module_66.s4216
-rw-r--r--arm9/modules/67/asm/module_67.s4337
-rw-r--r--arm9/modules/68/asm/module_68.s2461
-rw-r--r--arm9/modules/69/asm/module_69.s4143
-rw-r--r--arm9/modules/70/asm/module_70.s1702
-rw-r--r--arm9/modules/71/asm/module_71.s7155
-rw-r--r--arm9/modules/72/asm/module_72_dummy.s1
-rw-r--r--arm9/modules/73/asm/module_73.s9424
-rw-r--r--arm9/modules/74/asm/module_74.s2022
-rw-r--r--arm9/modules/75/asm/module_75.s11114
-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/src/FUN_02000DF4.c12
-rw-r--r--arm9/src/FUN_020910A4.c30
-rw-r--r--arm9/src/main.c276
-rw-r--r--arm9/src/poke_overlay.c6
234 files changed, 252980 insertions, 14781 deletions
diff --git a/arm9/Makefile b/arm9/Makefile
index bc8c8491..b53a5d3c 100644
--- a/arm9/Makefile
+++ b/arm9/Makefile
@@ -23,9 +23,9 @@ endif
ifeq ($(OS),Windows_NT)
EXE := .exe
-WINE :=
+WINE :=
else
-EXE :=
+EXE :=
WINE := wine
endif
@@ -49,16 +49,109 @@ LD_TEMPLATE := ARM9-TS.lcf.template
SRC_DIRS := src lib lib/src $(wildcard modules/*/src)
ASM_DIRS := asm data files $(wildcard modules/*/asm)
-C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
-S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
+C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
+CXX_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp))
+S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
+
+C_OBJS = $(C_FILES:%.c=$(BUILD_DIR)/%.o)
+CXX_OBJS = $(CXX_FILES:%.cpp=$(BUILD_DIR)/%.o)
+S_OBJS = $(S_FILES:%.s=$(BUILD_DIR)/%.o)
# Object files
-O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
- $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \
+O_FILES := $(C_OBJS) $(CXX_OBJS) $(S_OBJS)
# Overlay modules
# FIXME: lcf doesn't like this
# BIN_FILES := $(wildcard files/*.__AT_*)
+OVERLAYS := \
+ MODULE_00 \
+ MODULE_01 \
+ MODULE_02 \
+ MODULE_03 \
+ MODULE_04 \
+ MODULE_05 \
+ MODULE_06 \
+ MODULE_07 \
+ MODULE_08 \
+ MODULE_09 \
+ MODULE_10 \
+ MODULE_11 \
+ MODULE_12 \
+ MODULE_13 \
+ MODULE_14 \
+ MODULE_15 \
+ MODULE_16 \
+ MODULE_17 \
+ MODULE_18 \
+ MODULE_19 \
+ MODULE_20 \
+ MODULE_21 \
+ MODULE_22 \
+ MODULE_23 \
+ MODULE_24 \
+ MODULE_25 \
+ MODULE_26 \
+ MODULE_27 \
+ MODULE_28 \
+ MODULE_29 \
+ MODULE_30 \
+ MODULE_31 \
+ MODULE_32 \
+ MODULE_33 \
+ MODULE_34 \
+ MODULE_35 \
+ MODULE_36 \
+ MODULE_37 \
+ MODULE_38 \
+ MODULE_39 \
+ MODULE_40 \
+ MODULE_41 \
+ MODULE_42 \
+ MODULE_43 \
+ MODULE_44 \
+ MODULE_45 \
+ MODULE_46 \
+ MODULE_47 \
+ MODULE_48 \
+ MODULE_49 \
+ MODULE_50 \
+ MODULE_51 \
+ MODULE_52 \
+ MODULE_53 \
+ MODULE_54 \
+ MODULE_55 \
+ MODULE_56 \
+ MODULE_57 \
+ MODULE_58 \
+ MODULE_59 \
+ MODULE_60 \
+ MODULE_61 \
+ MODULE_62 \
+ MODULE_63 \
+ MODULE_64 \
+ MODULE_65 \
+ MODULE_66 \
+ MODULE_67 \
+ MODULE_68 \
+ MODULE_69 \
+ MODULE_70 \
+ MODULE_71 \
+ MODULE_72 \
+ MODULE_73 \
+ MODULE_74 \
+ MODULE_75 \
+ MODULE_76 \
+ MODULE_77 \
+ MODULE_78 \
+ MODULE_79 \
+ MODULE_80 \
+ MODULE_81 \
+ MODULE_82 \
+ MODULE_83 \
+ MODULE_84 \
+ MODULE_85 \
+ MODULE_86 \
+
.SECONDARY:
.DELETE_ON_ERROR:
.SECONDEXPANSION:
@@ -79,10 +172,10 @@ MWCCARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe
MWLDARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe
MWASMARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe
MAKELSF := $(WINE) $(TOOLS_DIR)/bin/makelcf.exe
-MAKELSF_FLAGS := -DCONST_34=0x34 -DCONST_3F=0x3F
AS = $(WINE) $(MWASMARM)
CC = $(WINE) $(MWCCARM)
+CXX = $(WINE) $(MWCCARM)
CPP := cpp -P
LD = $(WINE) $(MWLDARM)
AR := $(CROSS)ar
@@ -92,6 +185,7 @@ OBJCOPY := $(CROSS)objcopy
# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o
ASFLAGS = -proc arm5te -i ..
CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -ir ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int
+CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -ir ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int
LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start
####################### Other Tools #########################
@@ -157,24 +251,29 @@ build/src/FUN_020910A4.o: MWCCVERSION = 1.2/sp2p3
####################### Everything Else ######################
ifeq (,$(NODEP))
-$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I ../include -I ../include-mw -I lib/include $*.[cs])
+$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I ../include -I ../include-mw -I lib/include $(filter $*.c,$(C_FILES)) $(filter $*.cpp,$(CXX_FILES)) $(filter $*.s,$(S_FILES)))
else
$(BUILD_DIR)/%.o: dep :=
endif
-$(BUILD_DIR)/%.o: %.c $$(dep)
+$(C_OBJS): $(BUILD_DIR)/%.o: %.c $$(dep)
$(CC) -c $(CFLAGS) -o $@ $<
-$(BUILD_DIR)/%.o: %.s $$(dep)
+$(CXX_OBJS): $(BUILD_DIR)/%.o: %.cpp $$(dep)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
+
+$(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)
$(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(BIN_FILES)
-
+ $(OBJCOPY) --update-section arm9=$@ -j arm9 $(foreach ov,$(OVERLAYS),--update-section $(ov)=$(BUILD_DIR)/$(ov).sbin -j $(ov)) $(ELF) 2>/dev/null
# Make sure build directory exists before compiling anything
DUMMY != mkdir -p $(ALL_DIRS)
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 68347ea4..0f1b6fda 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 = .;
@@ -120,7 +122,6 @@ SECTIONS {
crt0.o (.rodata)
* (.version)
main.o (.text)
- FUN_02000DF4.o (.text)
unk_02000E0C.o (.text)
string_util.o (.text)
unk_020023C0.o (.text)
@@ -211,8 +212,10 @@ SECTIONS {
FS_file.o (.text)
FS_rom.o (.text)
FS_overlay.o (.text)
- libdgt.o (.text)
- libcp.o (.text)
+ DGT_hash1.o (.text)
+ DGT_hash2.o (.text)
+ DGT_sha1s_arm4cw.o (.text)
+ CP_context.o (.text)
libspi.o (.text)
libpm.o (.text)
librtc.o (.text)
@@ -259,59 +262,17 @@ SECTIONS {
{
/* ALIGNALL(4); . = ALIGN(32); */
SDK_STATIC_BSS_START = .;
- /* .sbss */
- gBacklightTop = 0x02106FA0;
- gBacklightTop_2 = 0x02106FA0;
- /* .bss */
- gLoadedOverlays = 0x021C45B0;
- gUnknown21C48B8 = 0x021C48B8;
- gUnk021C4918 = 0x021C4918;
- gUnk021C8C70 = 0x021C8C70;
- OSi_IrqCallbackInfo = 0x021D341C;
- isInitialized = 0x021D347C;
- OSi_StackForDestructor = 0x021D3480;
- OSi_RescheduleCount = 0x021D3484;
- OSi_ThreadIdCount = 0x021D3488;
- OSi_SystemCallbackInSwitchThread = 0x021D348C;
- OSi_CurrentThreadPtr = 0x021D3490;
- OSi_IsThreadInitialized = 0x021D3494;
- OSi_ThreadInfo = 0x021D3498;
- OSi_IdleThread = 0x021D34A8;
- OSi_LauncherThread = 0x021D3568;
- OSi_IdleThreadStack = 0x021D3628;
- OSi_Initialized = 0x021D36F0;
- OSi_MainExArenaEnabled = 0x021D36F4;
- OSiHeapInfo = 0x021D36F8;
- OSi_UserExceptionHandler = 0x021D371C;
- OSi_UserExceptionHandlerArg = 0x021D3720;
- OSi_DebuggerHandler = 0x021D3724;
- OSi_ExContext = 0x021D3728;
- OSi_TimerReserved = 0x021D37A8;
- OSi_UseTick = 0x021D37AC;
- OSi_NeedResetTimer = 0x021D37B0;
- OSi_TickCounter = 0x021D37B4;
- OSi_UseAlarm = 0x021D37BC;
- OSi_AlarmQueue = 0x021D37C0;
- OSi_UseVAlarm = 0x021D37C8;
- OSi_PreviousVCount = 0x021D37CC;
- OSi_VFrameCount = 0x021D37D0;
- OSi_VAlarmQueue = 0x021D37D4;
- OSi_IsInitReset = 0x021D37DC;
- OSi_IsResetOccurred = 0x021D37E0;
- OSi_vramExclusive = 0x021D37E4;
- OSi_vramLockId = 0x021D37E8;
- cardi_common = 0x021D55C0;
- arc_list = 0x021D53E8;
- current_dir_pos = 0x021D53EC;
- is_init = 0x021D53F8;
- fsi_card_lock_id = 0x021D53FC;
- fsi_default_dma_no = 0x021D5400;
- fsi_ovt9 = 0x021D5404;
- fsi_ovt7 = 0x021D540C;
- fsi_arc_rom = 0x021D5414;
- __global_destructor_chain = 0x021D74C8;
+ bss.o (.bss)
+ FUN_020910A4.o (.bss)
+ bss_2.o (.bss)
+ OS_alloc.o (.bss)
+ bss_3.o (.bss)
+ FS_archive.o (.bss)
+ FS_file.o (.bss)
+ FS_rom.o (.bss)
+ bss_4.o (.bss)
/* . = ALIGN(32); */
- SDK_STATIC_BSS_END = 0x021D74E0;
+ SDK_STATIC_BSS_END = .;
SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START;
} >> arm9
@@ -322,7 +283,7 @@ SECTIONS {
{
. = ALIGN(32);
SDK_AUTOLOAD.ITCM.START = .;
- arm9_itcm.o (.itcm)
+ arm9_itcm.o (.text)
. = ALIGN(32);
SDK_AUTOLOAD.ITCM.END = .;
SDK_AUTOLOAD.ITCM.SIZE = SDK_AUTOLOAD.ITCM.END - SDK_AUTOLOAD.ITCM.START;
@@ -405,260 +366,465 @@ SECTIONS {
WRITEW 0;
} > binary.STATIC_FOOTER
- .MODULE.00 :
+ .MODULE_00 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_00_ID = 0;
+ SDK_OVERLAY.MODULE_00.ID = 0;
SDK_OVERLAY.MODULE_00.START = .;
module_00_dummy.o (.text)
+ module_00_dummy.o (.rodata)
+ module_00_dummy.o (.init)
+ SDK_OVERLAY.MODULE_00.SINIT_START = .;
+ module_00_dummy.o (.ctor)
+ module_00_dummy.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_00.SINIT_END = .;
+ . = ALIGN(32);
module_00_dummy.o (.sdata)
module_00_dummy.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_00.END = .;
SDK_OVERLAY.MODULE_00.SIZE = SDK_OVERLAY.MODULE_00.END - SDK_OVERLAY.MODULE_00.START;
} > MODULE_00
- .MODULE.00.bss :
+ .MODULE_00.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_00.BSS_START = .;
- module_00_dummy.o (.sbss)
module_00_dummy.o (.bss)
+ module_00_dummy.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_00.BSS_END = .;
SDK_OVERLAY.MODULE_00.BSS_SIZE = SDK_OVERLAY.MODULE_00.BSS_END - SDK_OVERLAY.MODULE_00.BSS_START;
} >> MODULE_00
- .MODULE.01 :
+ .MODULE_01 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_01_ID = 1;
+ SDK_OVERLAY.MODULE_01.ID = 1;
SDK_OVERLAY.MODULE_01.START = .;
module_01.o (.text)
+ module_01.o (.rodata)
+ module_01.o (.init)
+ SDK_OVERLAY.MODULE_01.SINIT_START = .;
+ module_01.o (.ctor)
+ module_01.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_01.SINIT_END = .;
+ . = ALIGN(32);
module_01.o (.sdata)
module_01.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_01.END = .;
SDK_OVERLAY.MODULE_01.SIZE = SDK_OVERLAY.MODULE_01.END - SDK_OVERLAY.MODULE_01.START;
} > MODULE_01
- .MODULE.01.bss :
+ .MODULE_01.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_01.BSS_START = .;
- module_01.o (.sbss)
module_01.o (.bss)
+ module_01.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_01.BSS_END = .;
SDK_OVERLAY.MODULE_01.BSS_SIZE = SDK_OVERLAY.MODULE_01.BSS_END - SDK_OVERLAY.MODULE_01.BSS_START;
} >> MODULE_01
- .MODULE.02 :
+ .MODULE_02 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_02_ID = 2;
+ SDK_OVERLAY.MODULE_02.ID = 2;
SDK_OVERLAY.MODULE_02.START = .;
module_02_dummy.o (.text)
+ module_02_dummy.o (.rodata)
+ SDK_OVERLAY.MODULE_02.SINIT_START = .;
+ module_02_dummy.o (.ctor)
+ module_02_dummy.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_02.SINIT_END = .;
+ . = ALIGN(32);
module_02_dummy.o (.sdata)
module_02_dummy.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_02.END = .;
SDK_OVERLAY.MODULE_02.SIZE = SDK_OVERLAY.MODULE_02.END - SDK_OVERLAY.MODULE_02.START;
} > MODULE_02
- .MODULE.02.bss :
+ .MODULE_02.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_02.BSS_START = .;
- module_02_dummy.o (.sbss)
module_02_dummy.o (.bss)
+ module_02_dummy.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_02.BSS_END = .;
SDK_OVERLAY.MODULE_02.BSS_SIZE = SDK_OVERLAY.MODULE_02.BSS_END - SDK_OVERLAY.MODULE_02.BSS_START;
} >> MODULE_02
- .MODULE.03 :
+ .MODULE_03 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_03_ID = 3;
+ SDK_OVERLAY.MODULE_03.ID = 3;
SDK_OVERLAY.MODULE_03.START = .;
module_03_dummy.o (.text)
+ module_03_dummy.o (.rodata)
+ module_03_dummy.o (.init)
+ SDK_OVERLAY.MODULE_03.SINIT_START = .;
+ module_03_dummy.o (.ctor)
+ module_03_dummy.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_03.SINIT_END = .;
+ . = ALIGN(32);
module_03_dummy.o (.sdata)
module_03_dummy.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_03.END = .;
SDK_OVERLAY.MODULE_03.SIZE = SDK_OVERLAY.MODULE_03.END - SDK_OVERLAY.MODULE_03.START;
} > MODULE_03
- .MODULE.03.bss :
+ .MODULE_03.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_03.BSS_START = .;
- module_03_dummy.o (.sbss)
module_03_dummy.o (.bss)
+ module_03_dummy.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_03.BSS_END = .;
SDK_OVERLAY.MODULE_03.BSS_SIZE = SDK_OVERLAY.MODULE_03.BSS_END - SDK_OVERLAY.MODULE_03.BSS_START;
} >> MODULE_03
- .MODULE.04 :
+ .MODULE_04 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_04_ID = 4;
+ SDK_OVERLAY.MODULE_04.ID = 4;
SDK_OVERLAY.MODULE_04.START = .;
thumb_04.o (.text)
arm_04.o (.text)
- thumb_04.o (.sdata)
- arm_04.o (.sdata)
thumb_04.o (.rodata)
arm_04.o (.rodata)
+ thumb_04.o (.init)
+ arm_04.o (.init)
+ SDK_OVERLAY.MODULE_04.SINIT_START = .;
+ thumb_04.o (.ctor)
+ arm_04.o (.ctor)
+ thumb_04.o (.sinit)
+ arm_04.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_04.SINIT_END = .;
+ . = ALIGN(32);
+ thumb_04.o (.sdata)
+ arm_04.o (.sdata)
thumb_04.o (.data)
arm_04.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_04.END = .;
SDK_OVERLAY.MODULE_04.SIZE = SDK_OVERLAY.MODULE_04.END - SDK_OVERLAY.MODULE_04.START;
} > MODULE_04
- .MODULE.04.bss :
+ .MODULE_04.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_04.BSS_START = .;
- thumb_04.o (.sbss)
- arm_04.o (.sbss)
thumb_04.o (.bss)
arm_04.o (.bss)
+ thumb_04.o (.sbss)
+ arm_04.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_04.BSS_END = .;
SDK_OVERLAY.MODULE_04.BSS_SIZE = SDK_OVERLAY.MODULE_04.BSS_END - SDK_OVERLAY.MODULE_04.BSS_START;
} >> MODULE_04
- .MODULE.05 :
+ .MODULE_05 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_05_ID = 5;
+ SDK_OVERLAY.MODULE_05.ID = 5;
SDK_OVERLAY.MODULE_05.START = .;
module_05.o (.text)
+ module_05.o (.rodata)
+ module_05.o (.init)
+ SDK_OVERLAY.MODULE_05.SINIT_START = .;
+ module_05.o (.ctor)
+ module_05.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_05.SINIT_END = .;
+ . = ALIGN(32);
module_05.o (.sdata)
module_05.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_05.END = .;
SDK_OVERLAY.MODULE_05.SIZE = SDK_OVERLAY.MODULE_05.END - SDK_OVERLAY.MODULE_05.START;
} > MODULE_05
- .MODULE.05.bss :
+ .MODULE_05.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_05.BSS_START = .;
- module_05.o (.sbss)
module_05.o (.bss)
+ module_05.o (.sbss)
SDK_OVERLAY.MODULE_05.BSS_END = .;
SDK_OVERLAY.MODULE_05.BSS_SIZE = SDK_OVERLAY.MODULE_05.BSS_END - SDK_OVERLAY.MODULE_05.BSS_START;
} >> MODULE_05
- .MODULE.06 :
+ .MODULE_06 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_06_ID = 6;
+ SDK_OVERLAY.MODULE_06.ID = 6;
SDK_OVERLAY.MODULE_06.START = .;
module_06.o (.text)
+ module_06.o (.rodata)
+ module_06.o (.init)
+ SDK_OVERLAY.MODULE_06.SINIT_START = .;
+ module_06.o (.ctor)
+ module_06.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_06.SINIT_END = .;
+ . = ALIGN(32);
module_06.o (.sdata)
module_06.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_06.END = .;
SDK_OVERLAY.MODULE_06.SIZE = SDK_OVERLAY.MODULE_06.END - SDK_OVERLAY.MODULE_06.START;
} > MODULE_06
- .MODULE.06.bss :
+ .MODULE_06.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_06.BSS_START = .;
- module_06.o (.sbss)
module_06.o (.bss)
+ module_06.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_06.BSS_END = .;
SDK_OVERLAY.MODULE_06.BSS_SIZE = SDK_OVERLAY.MODULE_06.BSS_END - SDK_OVERLAY.MODULE_06.BSS_START;
} >> MODULE_06
- .MODULE.07 :
+ .MODULE_07 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_07_ID = 7;
+ SDK_OVERLAY.MODULE_07.ID = 7;
SDK_OVERLAY.MODULE_07.START = .;
module_07.o (.text)
+ module_07.o (.rodata)
+ module_07.o (.init)
+ SDK_OVERLAY.MODULE_07.SINIT_START = .;
+ module_07.o (.ctor)
+ module_07.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_07.SINIT_END = .;
+ . = ALIGN(32);
module_07.o (.sdata)
module_07.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_07.END = .;
SDK_OVERLAY.MODULE_07.SIZE = SDK_OVERLAY.MODULE_07.END - SDK_OVERLAY.MODULE_07.START;
} > MODULE_07
- .MODULE.07.bss :
+ .MODULE_07.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_07.BSS_START = .;
- module_07.o (.sbss)
module_07.o (.bss)
+ module_07.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_07.BSS_END = .;
SDK_OVERLAY.MODULE_07.BSS_SIZE = SDK_OVERLAY.MODULE_07.BSS_END - SDK_OVERLAY.MODULE_07.BSS_START;
} >> MODULE_07
- .MODULE.08 :
+ .MODULE_08 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_08_ID = 8;
+ SDK_OVERLAY.MODULE_08.ID = 8;
SDK_OVERLAY.MODULE_08.START = .;
module_08.o (.text)
+ module_08.o (.rodata)
+ module_08.o (.init)
+ SDK_OVERLAY.MODULE_08.SINIT_START = .;
+ module_08.o (.ctor)
+ module_08.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_08.SINIT_END = .;
+ . = ALIGN(32);
module_08.o (.sdata)
module_08.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_08.END = .;
SDK_OVERLAY.MODULE_08.SIZE = SDK_OVERLAY.MODULE_08.END - SDK_OVERLAY.MODULE_08.START;
} > MODULE_08
- .MODULE.08.bss :
+ .MODULE_08.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_08.BSS_START = .;
- module_08.o (.sbss)
module_08.o (.bss)
+ module_08.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_08.BSS_END = .;
SDK_OVERLAY.MODULE_08.BSS_SIZE = SDK_OVERLAY.MODULE_08.BSS_END - SDK_OVERLAY.MODULE_08.BSS_START;
} >> MODULE_08
- .MODULE.09 :
+ .MODULE_09 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_09_ID = 9;
+ SDK_OVERLAY.MODULE_09.ID = 9;
SDK_OVERLAY.MODULE_09.START = .;
module_09.o (.text)
+ module_09.o (.rodata)
+ module_09.o (.init)
+ SDK_OVERLAY.MODULE_09.SINIT_START = .;
+ module_09.o (.ctor)
+ module_09.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_09.SINIT_END = .;
+ . = ALIGN(32);
module_09.o (.sdata)
module_09.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_09.END = .;
SDK_OVERLAY.MODULE_09.SIZE = SDK_OVERLAY.MODULE_09.END - SDK_OVERLAY.MODULE_09.START;
} > MODULE_09
- .MODULE.09.bss :
+ .MODULE_09.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_09.BSS_START = .;
- module_09.o (.sbss)
module_09.o (.bss)
+ module_09.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_09.BSS_END = .;
SDK_OVERLAY.MODULE_09.BSS_SIZE = SDK_OVERLAY.MODULE_09.BSS_END - SDK_OVERLAY.MODULE_09.BSS_START;
} >> MODULE_09
- .MODULE.10 :
+ .MODULE_10 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_10_ID = 10;
+ SDK_OVERLAY.MODULE_10.ID = 10;
SDK_OVERLAY.MODULE_10.START = .;
module_10_dummy.o (.text)
+ module_10_dummy.o (.rodata)
+ module_10_dummy.o (.init)
+ SDK_OVERLAY.MODULE_10.SINIT_START = .;
+ module_10_dummy.o (.ctor)
+ module_10_dummy.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_10.SINIT_END = .;
+ . = ALIGN(32);
module_10_dummy.o (.sdata)
module_10_dummy.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_10.END = .;
SDK_OVERLAY.MODULE_10.SIZE = SDK_OVERLAY.MODULE_10.END - SDK_OVERLAY.MODULE_10.START;
} > MODULE_10
- .MODULE.10.bss :
+ .MODULE_10.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_10.BSS_START = .;
- module_10_dummy.o (.sbss)
module_10_dummy.o (.bss)
+ module_10_dummy.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_10.BSS_END = .;
SDK_OVERLAY.MODULE_10.BSS_SIZE = SDK_OVERLAY.MODULE_10.BSS_END - SDK_OVERLAY.MODULE_10.BSS_START;
} >> MODULE_10
- .MODULE.11 :
+ .MODULE_11 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_11_ID = 11;
+ SDK_OVERLAY.MODULE_11.ID = 11;
SDK_OVERLAY.MODULE_11.START = .;
module_11.o (.text)
+ module_11.o (.rodata)
+ module_11.o (.init)
+ // SDK_OVERLAY.MODULE_11.SINIT_START = .;
+ module_11.o (.ctor)
+ module_11.o (.sinit)
+ // SDK_OVERLAY.MODULE_11.SINIT_END = .;
+ // WRITEW 0;
+ . = ALIGN(32);
module_11.o (.sdata)
module_11.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_11.END = .;
SDK_OVERLAY.MODULE_11.SIZE = SDK_OVERLAY.MODULE_11.END - SDK_OVERLAY.MODULE_11.START;
} > MODULE_11
- .MODULE.11.bss :
+ .MODULE_11.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_11.BSS_START = .;
- module_11.o (.sbss)
module_11.o (.bss)
+ module_11.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_11.BSS_END = .;
SDK_OVERLAY.MODULE_11.BSS_SIZE = SDK_OVERLAY.MODULE_11.BSS_END - SDK_OVERLAY.MODULE_11.BSS_START;
} >> MODULE_11
- .MODULE.12 :
+ .MODULE_12 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_12_ID = 12;
+ SDK_OVERLAY.MODULE_12.ID = 12;
SDK_OVERLAY.MODULE_12.START = .;
module_12.o (.text)
+ module_12.o (.rodata)
+ module_12.o (.init)
+ SDK_OVERLAY.MODULE_12.SINIT_START = .;
+ module_12.o (.ctor)
+ module_12.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_12.SINIT_END = .;
+ . = ALIGN(32);
module_12.o (.sdata)
module_12.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_12.END = .;
SDK_OVERLAY.MODULE_12.SIZE = SDK_OVERLAY.MODULE_12.END - SDK_OVERLAY.MODULE_12.START;
} > MODULE_12
- .MODULE.12.bss :
+ .MODULE_12.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_12.BSS_START = .;
- module_12.o (.sbss)
module_12.o (.bss)
+ module_12.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_12.BSS_END = .;
SDK_OVERLAY.MODULE_12.BSS_SIZE = SDK_OVERLAY.MODULE_12.BSS_END - SDK_OVERLAY.MODULE_12.BSS_START;
} >> MODULE_12
- .MODULE.13 :
+ .MODULE_13 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_13_ID = 13;
+ SDK_OVERLAY.MODULE_13.ID = 13;
SDK_OVERLAY.MODULE_13.START = .;
module_13_init.o (.text)
module_13_arm1.o (.text)
module_13_thumb.o (.text)
module_13_arm2.o (.text)
+ module_13_init.o (.rodata)
+ module_13_arm1.o (.rodata)
+ module_13_thumb.o (.rodata)
+ module_13_arm2.o (.rodata)
+ module_13_init.o (.init)
+ module_13_arm1.o (.init)
+ module_13_thumb.o (.init)
+ module_13_arm2.o (.init)
+ SDK_OVERLAY.MODULE_13.SINIT_START = .;
+ module_13_init.o (.ctor)
+ module_13_arm1.o (.ctor)
+ module_13_thumb.o (.ctor)
+ module_13_arm2.o (.ctor)
+ module_13_init.o (.sinit)
+ module_13_arm1.o (.sinit)
+ module_13_thumb.o (.sinit)
+ module_13_arm2.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_13.SINIT_END = .;
+ . = ALIGN(32);
module_13_init.o (.sdata)
module_13_arm1.o (.sdata)
module_13_thumb.o (.sdata)
@@ -667,1407 +833,2423 @@ SECTIONS {
module_13_arm1.o (.data)
module_13_thumb.o (.data)
module_13_arm2.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_13.END = .;
SDK_OVERLAY.MODULE_13.SIZE = SDK_OVERLAY.MODULE_13.END - SDK_OVERLAY.MODULE_13.START;
} > MODULE_13
- .MODULE.13.bss :
+ .MODULE_13.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_13.BSS_START = .;
- module_13_init.o (.sbss)
- module_13_arm1.o (.sbss)
- module_13_thumb.o (.sbss)
- module_13_arm2.o (.sbss)
module_13_init.o (.bss)
module_13_arm1.o (.bss)
module_13_thumb.o (.bss)
module_13_arm2.o (.bss)
+ module_13_init.o (.sbss)
+ module_13_arm1.o (.sbss)
+ module_13_thumb.o (.sbss)
+ module_13_arm2.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_13.BSS_END = .;
SDK_OVERLAY.MODULE_13.BSS_SIZE = SDK_OVERLAY.MODULE_13.BSS_END - SDK_OVERLAY.MODULE_13.BSS_START;
} >> MODULE_13
- .MODULE.14 :
+ .MODULE_14 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_14_ID = 14;
+ SDK_OVERLAY.MODULE_14.ID = 14;
SDK_OVERLAY.MODULE_14.START = .;
module_14.o (.text)
+ module_14.o (.rodata)
+ module_14.o (.init)
+ SDK_OVERLAY.MODULE_14.SINIT_START = .;
+ module_14.o (.ctor)
+ module_14.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_14.SINIT_END = .;
+ . = ALIGN(32);
module_14.o (.sdata)
module_14.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_14.END = .;
SDK_OVERLAY.MODULE_14.SIZE = SDK_OVERLAY.MODULE_14.END - SDK_OVERLAY.MODULE_14.START;
} > MODULE_14
- .MODULE.14.bss :
+ .MODULE_14.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_14.BSS_START = .;
- module_14.o (.sbss)
module_14.o (.bss)
+ module_14.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_14.BSS_END = .;
SDK_OVERLAY.MODULE_14.BSS_SIZE = SDK_OVERLAY.MODULE_14.BSS_END - SDK_OVERLAY.MODULE_14.BSS_START;
} >> MODULE_14
- .MODULE.15 :
+ .MODULE_15 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_15_ID = 15;
+ SDK_OVERLAY.MODULE_15.ID = 15;
SDK_OVERLAY.MODULE_15.START = .;
module_15.o (.text)
+ module_15.o (.rodata)
+ module_15.o (.init)
+ SDK_OVERLAY.MODULE_15.SINIT_START = .;
+ module_15.o (.ctor)
+ module_15.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_15.SINIT_END = .;
+ . = ALIGN(32);
module_15.o (.sdata)
module_15.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_15.END = .;
SDK_OVERLAY.MODULE_15.SIZE = SDK_OVERLAY.MODULE_15.END - SDK_OVERLAY.MODULE_15.START;
} > MODULE_15
- .MODULE.15.bss :
+ .MODULE_15.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_15.BSS_START = .;
- module_15.o (.sbss)
module_15.o (.bss)
+ module_15.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_15.BSS_END = .;
SDK_OVERLAY.MODULE_15.BSS_SIZE = SDK_OVERLAY.MODULE_15.BSS_END - SDK_OVERLAY.MODULE_15.BSS_START;
} >> MODULE_15
- .MODULE.16 :
+ .MODULE_16 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_16_ID = 16;
+ SDK_OVERLAY.MODULE_16.ID = 16;
SDK_OVERLAY.MODULE_16.START = .;
module_16.o (.text)
+ module_16.o (.rodata)
+ module_16.o (.init)
+ SDK_OVERLAY.MODULE_16.SINIT_START = .;
+ module_16.o (.ctor)
+ module_16.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_16.SINIT_END = .;
+ . = ALIGN(32);
module_16.o (.sdata)
module_16.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_16.END = .;
SDK_OVERLAY.MODULE_16.SIZE = SDK_OVERLAY.MODULE_16.END - SDK_OVERLAY.MODULE_16.START;
} > MODULE_16
- .MODULE.16.bss :
+ .MODULE_16.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_16.BSS_START = .;
- module_16.o (.sbss)
module_16.o (.bss)
+ module_16.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_16.BSS_END = .;
SDK_OVERLAY.MODULE_16.BSS_SIZE = SDK_OVERLAY.MODULE_16.BSS_END - SDK_OVERLAY.MODULE_16.BSS_START;
} >> MODULE_16
- .MODULE.17 :
+ .MODULE_17 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_17_ID = 17;
+ SDK_OVERLAY.MODULE_17.ID = 17;
SDK_OVERLAY.MODULE_17.START = .;
module_17.o (.text)
+ module_17.o (.rodata)
+ module_17.o (.init)
+ SDK_OVERLAY.MODULE_17.SINIT_START = .;
+ module_17.o (.ctor)
+ module_17.o (.init)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_17.SINIT_END = .;
+ . = ALIGN(32);
module_17.o (.sdata)
module_17.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_17.END = .;
SDK_OVERLAY.MODULE_17.SIZE = SDK_OVERLAY.MODULE_17.END - SDK_OVERLAY.MODULE_17.START;
} > MODULE_17
- .MODULE.17.bss :
+ .MODULE_17.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_17.BSS_START = .;
- module_17.o (.sbss)
module_17.o (.bss)
+ module_17.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_17.BSS_END = .;
SDK_OVERLAY.MODULE_17.BSS_SIZE = SDK_OVERLAY.MODULE_17.BSS_END - SDK_OVERLAY.MODULE_17.BSS_START;
} >> MODULE_17
- .MODULE.18 :
+ .MODULE_18 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_18_ID = 18;
+ SDK_OVERLAY.MODULE_18.ID = 18;
SDK_OVERLAY.MODULE_18.START = .;
module_18.o (.text)
+ module_18.o (.rodata)
+ module_18.o (.init)
+ SDK_OVERLAY.MODULE_18.SINIT_START = .;
+ module_18.o (.ctor)
+ module_18.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_18.SINIT_END = .;
+ . = ALIGN(32);
module_18.o (.sdata)
module_18.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_18.END = .;
SDK_OVERLAY.MODULE_18.SIZE = SDK_OVERLAY.MODULE_18.END - SDK_OVERLAY.MODULE_18.START;
} > MODULE_18
- .MODULE.18.bss :
+ .MODULE_18.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_18.BSS_START = .;
- module_18.o (.sbss)
module_18.o (.bss)
+ module_18.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_18.BSS_END = .;
SDK_OVERLAY.MODULE_18.BSS_SIZE = SDK_OVERLAY.MODULE_18.BSS_END - SDK_OVERLAY.MODULE_18.BSS_START;
} >> MODULE_18
- .MODULE.19 :
+ .MODULE_19 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_19_ID = 19;
+ SDK_OVERLAY.MODULE_19.ID = 19;
SDK_OVERLAY.MODULE_19.START = .;
module_19.o (.text)
+ module_19.o (.rodata)
+ module_19.o (.init)
+ SDK_OVERLAY.MODULE_19.SINIT_START = .;
+ module_19.o (.ctor)
+ module_19.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_19.SINIT_END = .;
+ . = ALIGN(32);
module_19.o (.sdata)
module_19.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_19.END = .;
SDK_OVERLAY.MODULE_19.SIZE = SDK_OVERLAY.MODULE_19.END - SDK_OVERLAY.MODULE_19.START;
} > MODULE_19
- .MODULE.19.bss :
+ .MODULE_19.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_19.BSS_START = .;
- module_19.o (.sbss)
module_19.o (.bss)
+ module_19.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_19.BSS_END = .;
SDK_OVERLAY.MODULE_19.BSS_SIZE = SDK_OVERLAY.MODULE_19.BSS_END - SDK_OVERLAY.MODULE_19.BSS_START;
} >> MODULE_19
- .MODULE.20 :
+ .MODULE_20 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_20_ID = 20;
+ SDK_OVERLAY.MODULE_20.ID = 20;
SDK_OVERLAY.MODULE_20.START = .;
module_20.o (.text)
+ module_20.o (.rodata)
+ module_20.o (.init)
+ SDK_OVERLAY.MODULE_20.SINIT_START = .;
+ module_20.o (.ctor)
+ module_20.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_20.SINIT_END = .;
+ . = ALIGN(32);
module_20.o (.sdata)
module_20.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_20.END = .;
SDK_OVERLAY.MODULE_20.SIZE = SDK_OVERLAY.MODULE_20.END - SDK_OVERLAY.MODULE_20.START;
} > MODULE_20
- .MODULE.20.bss :
+ .MODULE_20.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_20.BSS_START = .;
- module_20.o (.sbss)
module_20.o (.bss)
+ module_20.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_20.BSS_END = .;
SDK_OVERLAY.MODULE_20.BSS_SIZE = SDK_OVERLAY.MODULE_20.BSS_END - SDK_OVERLAY.MODULE_20.BSS_START;
} >> MODULE_20
- .MODULE.21 :
+ .MODULE_21 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_21_ID = 21;
+ SDK_OVERLAY.MODULE_21.ID = 21;
SDK_OVERLAY.MODULE_21.START = .;
module_21.o (.text)
+ module_21.o (.rodata)
+ module_21.o (.init)
+ // SDK_OVERLAY.MODULE_21.SINIT_START = .;
+ module_21.o (.ctor)
+ module_21.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_21.SINIT_END = ;
+ . = ALIGN(32);
module_21.o (.sdata)
module_21.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_21.END = .;
SDK_OVERLAY.MODULE_21.SIZE = SDK_OVERLAY.MODULE_21.END - SDK_OVERLAY.MODULE_21.START;
} > MODULE_21
- .MODULE.21.bss :
+ .MODULE_21.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_21.BSS_START = .;
- module_21.o (.sbss)
module_21.o (.bss)
+ module_21.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_21.BSS_END = .;
SDK_OVERLAY.MODULE_21.BSS_SIZE = SDK_OVERLAY.MODULE_21.BSS_END - SDK_OVERLAY.MODULE_21.BSS_START;
} >> MODULE_21
- .MODULE.22 :
+ .MODULE_22 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_22_ID = 22;
+ SDK_OVERLAY.MODULE_22.ID = 22;
SDK_OVERLAY.MODULE_22.START = .;
module_22.o (.text)
+ module_22.o (.rodata)
+ module_22.o (.init)
+ SDK_OVERLAY.MODULE_22.SINIT_START = .;
+ module_22.o (.ctor)
+ module_22.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_22.SINIT_END = .;
+ . = ALIGN(32);
module_22.o (.sdata)
module_22.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_22.END = .;
SDK_OVERLAY.MODULE_22.SIZE = SDK_OVERLAY.MODULE_22.END - SDK_OVERLAY.MODULE_22.START;
} > MODULE_22
- .MODULE.22.bss :
+ .MODULE_22.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_22.BSS_START = .;
- module_22.o (.sbss)
module_22.o (.bss)
+ module_22.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_22.BSS_END = .;
SDK_OVERLAY.MODULE_22.BSS_SIZE = SDK_OVERLAY.MODULE_22.BSS_END - SDK_OVERLAY.MODULE_22.BSS_START;
} >> MODULE_22
- .MODULE.23 :
+ .MODULE_23 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_23_ID = 23;
+ SDK_OVERLAY.MODULE_23.ID = 23;
SDK_OVERLAY.MODULE_23.START = .;
module_23.o (.text)
+ module_23.o (.rodata)
+ module_23.o (.init)
+ // SDK_OVERLAY.MODULE_23.SINIT_START = .;
+ module_23.o (.ctor)
+ module_23.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_23.SINIT_END = .;
+ . = ALIGN(32);
module_23.o (.sdata)
module_23.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_23.END = .;
SDK_OVERLAY.MODULE_23.SIZE = SDK_OVERLAY.MODULE_23.END - SDK_OVERLAY.MODULE_23.START;
} > MODULE_23
- .MODULE.23.bss :
+ .MODULE_23.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_23.BSS_START = .;
- module_23.o (.sbss)
module_23.o (.bss)
+ module_23.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_23.BSS_END = .;
SDK_OVERLAY.MODULE_23.BSS_SIZE = SDK_OVERLAY.MODULE_23.BSS_END - SDK_OVERLAY.MODULE_23.BSS_START;
} >> MODULE_23
- .MODULE.24 :
+ .MODULE_24 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_24_ID = 24;
+ SDK_OVERLAY.MODULE_24.ID = 24;
SDK_OVERLAY.MODULE_24.START = .;
module_24.o (.text)
+ module_24.o (.rodata)
+ module_24.o (.init)
+ SDK_OVERLAY.MODULE_24.SINIT_START = .;
+ module_24.o (.ctor)
+ module_24.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_24.SINIT_END = .;
+ . = ALIGN(32);
module_24.o (.sdata)
module_24.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_24.END = .;
SDK_OVERLAY.MODULE_24.SIZE = SDK_OVERLAY.MODULE_24.END - SDK_OVERLAY.MODULE_24.START;
} > MODULE_24
- .MODULE.24.bss :
+ .MODULE_24.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_24.BSS_START = .;
- module_24.o (.sbss)
module_24.o (.bss)
+ module_24.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_24.BSS_END = .;
SDK_OVERLAY.MODULE_24.BSS_SIZE = SDK_OVERLAY.MODULE_24.BSS_END - SDK_OVERLAY.MODULE_24.BSS_START;
} >> MODULE_24
- .MODULE.25 :
+ .MODULE_25 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_25_ID = 25;
+ SDK_OVERLAY.MODULE_25.ID = 25;
SDK_OVERLAY.MODULE_25.START = .;
module_25.o (.text)
+ module_25.o (.rodata)
+ module_25.o (.init)
+ SDK_OVERLAY.MODULE_25.SINIT_START = .;
+ module_25.o (.ctor)
+ module_25.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_25.SINIT_END = .;
+ . = ALIGN(32);
module_25.o (.sdata)
module_25.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_25.END = .;
SDK_OVERLAY.MODULE_25.SIZE = SDK_OVERLAY.MODULE_25.END - SDK_OVERLAY.MODULE_25.START;
} > MODULE_25
- .MODULE.25.bss :
+ .MODULE_25.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_25.BSS_START = .;
- module_25.o (.sbss)
module_25.o (.bss)
+ module_25.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_25.BSS_END = .;
SDK_OVERLAY.MODULE_25.BSS_SIZE = SDK_OVERLAY.MODULE_25.BSS_END - SDK_OVERLAY.MODULE_25.BSS_START;
} >> MODULE_25
- .MODULE.26 :
+ .MODULE_26 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_26_ID = 26;
+ SDK_OVERLAY.MODULE_26.ID = 26;
SDK_OVERLAY.MODULE_26.START = .;
module_26.o (.text)
+ module_26.o (.rodata)
+ module_26.o (.init)
+ SDK_OVERLAY.MODULE_26.SINIT_START = .;
+ module_26.o (.ctor)
+ module_26.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_26.SINIT_END = .;
+ . = ALIGN(32);
module_26.o (.sdata)
module_26.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_26.END = .;
SDK_OVERLAY.MODULE_26.SIZE = SDK_OVERLAY.MODULE_26.END - SDK_OVERLAY.MODULE_26.START;
} > MODULE_26
- .MODULE.26.bss :
+ .MODULE_26.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_26.BSS_START = .;
- module_26.o (.sbss)
module_26.o (.bss)
+ module_26.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_26.BSS_END = .;
SDK_OVERLAY.MODULE_26.BSS_SIZE = SDK_OVERLAY.MODULE_26.BSS_END - SDK_OVERLAY.MODULE_26.BSS_START;
} >> MODULE_26
- .MODULE.27 :
+ .MODULE_27 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_27_ID = 27;
+ SDK_OVERLAY.MODULE_27.ID = 27;
SDK_OVERLAY.MODULE_27.START = .;
module_27.o (.text)
+ module_27.o (.rodata)
+ module_27.o (.init)
+ // SDK_OVERLAY.MODULE_27.SINIT_START = .;
+ module_27.o (.ctor)
+ module_27.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_27.SINIT_END = .;
+ . = ALIGN(32);
module_27.o (.sdata)
module_27.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_27.END = .;
SDK_OVERLAY.MODULE_27.SIZE = SDK_OVERLAY.MODULE_27.END - SDK_OVERLAY.MODULE_27.START;
} > MODULE_27
- .MODULE.27.bss :
+ .MODULE_27.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_27.BSS_START = .;
- module_27.o (.sbss)
module_27.o (.bss)
+ module_27.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_27.BSS_END = .;
SDK_OVERLAY.MODULE_27.BSS_SIZE = SDK_OVERLAY.MODULE_27.BSS_END - SDK_OVERLAY.MODULE_27.BSS_START;
} >> MODULE_27
- .MODULE.28 :
+ .MODULE_28 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_28_ID = 28;
+ SDK_OVERLAY.MODULE_28.ID = 28;
SDK_OVERLAY.MODULE_28.START = .;
module_28.o (.text)
+ module_28.o (.rodata)
+ module_28.o (.init)
+ // SDK_OVERLAY.MODULE_28.SINIT_START = .;
+ module_28.o (.ctor)
+ module_28.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_28.SINIT_END = .;
+ . = ALIGN(32);
module_28.o (.sdata)
module_28.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_28.END = .;
SDK_OVERLAY.MODULE_28.SIZE = SDK_OVERLAY.MODULE_28.END - SDK_OVERLAY.MODULE_28.START;
} > MODULE_28
- .MODULE.28.bss :
+ .MODULE_28.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_28.BSS_START = .;
- module_28.o (.sbss)
module_28.o (.bss)
+ module_28.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_28.BSS_END = .;
SDK_OVERLAY.MODULE_28.BSS_SIZE = SDK_OVERLAY.MODULE_28.BSS_END - SDK_OVERLAY.MODULE_28.BSS_START;
} >> MODULE_28
- .MODULE.29 :
+ .MODULE_29 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_29_ID = 29;
+ SDK_OVERLAY.MODULE_29.ID = 29;
SDK_OVERLAY.MODULE_29.START = .;
module_29.o (.text)
+ module_29.o (.rodata)
+ module_29.o (.init)
+ // SDK_OVERLAY.MODULE_29.SINIT_START = .;
+ module_29.o (.ctor)
+ module_29.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_29.SINIT_END = .;
+ . = ALIGN(32);
module_29.o (.sdata)
module_29.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_29.END = .;
SDK_OVERLAY.MODULE_29.SIZE = SDK_OVERLAY.MODULE_29.END - SDK_OVERLAY.MODULE_29.START;
} > MODULE_29
- .MODULE.29.bss :
+ .MODULE_29.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_29.BSS_START = .;
- module_29.o (.sbss)
module_29.o (.bss)
+ module_29.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_29.BSS_END = .;
SDK_OVERLAY.MODULE_29.BSS_SIZE = SDK_OVERLAY.MODULE_29.BSS_END - SDK_OVERLAY.MODULE_29.BSS_START;
} >> MODULE_29
- .MODULE.30 :
+ .MODULE_30 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_30_ID = 30;
+ SDK_OVERLAY.MODULE_30.ID = 30;
SDK_OVERLAY.MODULE_30.START = .;
module_30.o (.text)
+ module_30.o (.rodata)
+ module_30.o (.init)
+ // SDK_OVERLAY.MODULE_30.SINIT_START = .;
+ module_30.o (.ctor)
+ module_30.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_30.SINIT_END = .;
+ . = ALIGN(32);
module_30.o (.sdata)
module_30.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_30.END = .;
SDK_OVERLAY.MODULE_30.SIZE = SDK_OVERLAY.MODULE_30.END - SDK_OVERLAY.MODULE_30.START;
} > MODULE_30
- .MODULE.30.bss :
+ .MODULE_30.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_30.BSS_START = .;
- module_30.o (.sbss)
module_30.o (.bss)
+ module_30.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_30.BSS_END = .;
SDK_OVERLAY.MODULE_30.BSS_SIZE = SDK_OVERLAY.MODULE_30.BSS_END - SDK_OVERLAY.MODULE_30.BSS_START;
} >> MODULE_30
- .MODULE.31 :
+ .MODULE_31 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_31_ID = 31;
+ SDK_OVERLAY.MODULE_31.ID = 31;
SDK_OVERLAY.MODULE_31.START = .;
module_31.o (.text)
+ module_31.o (.rodata)
+ module_31.o (.init)
+ SDK_OVERLAY.MODULE_31.SINIT_START = .;
+ module_31.o (.ctor)
+ module_31.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_31.SINIT_END = .;
+ . = ALIGN(32);
module_31.o (.sdata)
module_31.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_31.END = .;
SDK_OVERLAY.MODULE_31.SIZE = SDK_OVERLAY.MODULE_31.END - SDK_OVERLAY.MODULE_31.START;
} > MODULE_31
- .MODULE.31.bss :
+ .MODULE_31.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_31.BSS_START = .;
- module_31.o (.sbss)
module_31.o (.bss)
+ module_31.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_31.BSS_END = .;
SDK_OVERLAY.MODULE_31.BSS_SIZE = SDK_OVERLAY.MODULE_31.BSS_END - SDK_OVERLAY.MODULE_31.BSS_START;
} >> MODULE_31
- .MODULE.32 :
+ .MODULE_32 :
{
+ ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_32_ID = 32;
+ SDK_OVERLAY.MODULE_32.ID = 32;
SDK_OVERLAY.MODULE_32.START = .;
module_32.o (.text)
+ module_32.o (.rodata)
+ module_32.o (.init)
+ // SDK_OVERLAY.MODULE_32.SINIT_START = .;
+ module_32.o (.ctor)
+ module_32.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_32.SINIT_END = .;
+ . = ALIGN(32);
module_32.o (.sdata)
module_32.o (.data)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_32.END = .;
SDK_OVERLAY.MODULE_32.SIZE = SDK_OVERLAY.MODULE_32.END - SDK_OVERLAY.MODULE_32.START;
} > MODULE_32
- .MODULE.32.bss :
+ .MODULE_32.bss :
{
+ ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_32.BSS_START = .;
- module_32.o (.sbss)
module_32.o (.bss)
+ module_32.o (.sbss)
+ . = ALIGN(32);
SDK_OVERLAY.MODULE_32.BSS_END = .;
SDK_OVERLAY.MODULE_32.BSS_SIZE = SDK_OVERLAY.MODULE_32.BSS_END - SDK_OVERLAY.MODULE_32.BSS_START;
} >> MODULE_32
- .MODULE.33: {
+ .MODULE_33 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_33_ID = 33;
+ SDK_OVERLAY.MODULE_33.ID = 33;
SDK_OVERLAY.MODULE_33.START = .;
- FILE_28DE00.o (.text) /* 0x289E00 */
+ module_33.o (.text)
+ module_33.o (.rodata)
+ module_33.o (.init)
+ SDK_OVERLAY.MODULE_33.SINIT_START = .;
+ module_33.o (.ctor)
+ module_33.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_33.SINIT_END = .;
+ . = ALIGN(32);
+ module_33.o (.sdata)
+ module_33.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_33.END = .;
SDK_OVERLAY.MODULE_33.SIZE = SDK_OVERLAY.MODULE_33.END - SDK_OVERLAY.MODULE_33.START;
} > MODULE_33
- .MODULE.33.bss :
+ .MODULE_33.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_33.BSS_START = .;
- FILE_28DE00.o (.bss)
+ module_33.o (.bss)
+ module_33.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_33.BSS_END = .;
SDK_OVERLAY.MODULE_33.BSS_SIZE = SDK_OVERLAY.MODULE_33.BSS_END - SDK_OVERLAY.MODULE_33.BSS_START;
} >> MODULE_33
- .MODULE.34: {
+ .MODULE_34 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_34_ID = 34;
+ SDK_OVERLAY.MODULE_34.ID = 34;
SDK_OVERLAY.MODULE_34.START = .;
- FILE_28E200.o (.text) /* 0x28A200 */
+ module_34.o (.text)
+ module_34.o (.rodata)
+ module_34.o (.init)
+ // SDK_OVERLAY.MODULE_34.SINIT_START = .;
+ module_34.o (.ctor)
+ module_34.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_34.SINIT_END = .;
+ . = ALIGN(32);
+ module_34.o (.sdata)
+ module_34.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_34.END = .;
SDK_OVERLAY.MODULE_34.SIZE = SDK_OVERLAY.MODULE_34.END - SDK_OVERLAY.MODULE_34.START;
} > MODULE_34
- .MODULE.34.bss :
+ .MODULE_34.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_34.BSS_START = .;
- FILE_28E200.o (.bss)
+ module_34.o (.bss)
+ module_34.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_34.BSS_END = .;
SDK_OVERLAY.MODULE_34.BSS_SIZE = SDK_OVERLAY.MODULE_34.BSS_END - SDK_OVERLAY.MODULE_34.BSS_START;
} >> MODULE_34
- .MODULE.35: {
+ .MODULE_35 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_35_ID = 35;
+ SDK_OVERLAY.MODULE_35.ID = 35;
SDK_OVERLAY.MODULE_35.START = .;
- FILE_28E800.o (.text) /* 0x28A800 */
+ module_35.o (.text)
+ module_35.o (.rodata)
+ module_35.o (.init)
+ SDK_OVERLAY.MODULE_35.SINIT_START = .;
+ module_35.o (.ctor)
+ module_35.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_35.SINIT_END = .;
+ . = ALIGN(32);
+ module_35.o (.sdata)
+ module_35.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_35.END = .;
SDK_OVERLAY.MODULE_35.SIZE = SDK_OVERLAY.MODULE_35.END - SDK_OVERLAY.MODULE_35.START;
} > MODULE_35
- .MODULE.35.bss :
+ .MODULE_35.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_35.BSS_START = .;
- FILE_28E800.o (.bss)
+ module_35.o (.bss)
+ module_35.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_35.BSS_END = .;
SDK_OVERLAY.MODULE_35.BSS_SIZE = SDK_OVERLAY.MODULE_35.BSS_END - SDK_OVERLAY.MODULE_35.BSS_START;
} >> MODULE_35
- .MODULE.36: {
+ .MODULE_36 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_36_ID = 36;
+ SDK_OVERLAY.MODULE_36.ID = 36;
SDK_OVERLAY.MODULE_36.START = .;
- FILE_28F200.o (.text) /* 0x28B200 */
+ module_36.o (.text)
+ module_36.o (.rodata)
+ module_36.o (.init)
+ // SDK_OVERLAY.MODULE_36.SINIT_START = .;
+ module_36.o (.ctor)
+ module_36.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_36.SINIT_END = .;
+ . = ALIGN(32);
+ module_36.o (.sdata)
+ module_36.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_36.END = .;
SDK_OVERLAY.MODULE_36.SIZE = SDK_OVERLAY.MODULE_36.END - SDK_OVERLAY.MODULE_36.START;
} > MODULE_36
- .MODULE.36.bss :
+ .MODULE_36.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_36.BSS_START = .;
- FILE_28F200.o (.bss)
+ module_36.o (.bss)
+ module_36.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_36.BSS_END = .;
SDK_OVERLAY.MODULE_36.BSS_SIZE = SDK_OVERLAY.MODULE_36.BSS_END - SDK_OVERLAY.MODULE_36.BSS_START;
} >> MODULE_36
- .MODULE.37: {
+ .MODULE_37 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_37_ID = 37;
+ SDK_OVERLAY.MODULE_37.ID = 37;
SDK_OVERLAY.MODULE_37.START = .;
- FILE_290000.o (.text) /* 0x28C000 */
+ module_37.o (.text)
+ module_37.o (.rodata)
+ module_37.o (.init)
+ SDK_OVERLAY.MODULE_37.SINIT_START = .;
+ module_37.o (.ctor)
+ module_37.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_37.SINIT_END = .;
+ . = ALIGN(32);
+ module_37.o (.sdata)
+ module_37.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_37.END = .;
SDK_OVERLAY.MODULE_37.SIZE = SDK_OVERLAY.MODULE_37.END - SDK_OVERLAY.MODULE_37.START;
} > MODULE_37
- .MODULE.37.bss :
+ .MODULE_37.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_37.BSS_START = .;
- FILE_290000.o (.bss)
+ module_37.o (.bss)
+ module_37.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_37.BSS_END = .;
SDK_OVERLAY.MODULE_37.BSS_SIZE = SDK_OVERLAY.MODULE_37.BSS_END - SDK_OVERLAY.MODULE_37.BSS_START;
} >> MODULE_37
- .MODULE.38: {
+ .MODULE_38 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_38_ID = 38;
+ SDK_OVERLAY.MODULE_38.ID = 38;
SDK_OVERLAY.MODULE_38.START = .;
- FILE_290600.o (.text) /* 0x28C600 */
+ module_38.o (.text)
+ module_38.o (.rodata)
+ module_38.o (.init)
+ SDK_OVERLAY.MODULE_38.SINIT_START = .;
+ module_38.o (.ctor)
+ module_38.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_38.SINIT_END = .;
+ . = ALIGN(32);
+ module_38.o (.sdata)
+ module_38.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_38.END = .;
SDK_OVERLAY.MODULE_38.SIZE = SDK_OVERLAY.MODULE_38.END - SDK_OVERLAY.MODULE_38.START;
} > MODULE_38
- .MODULE.38.bss :
+ .MODULE_38.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_38.BSS_START = .;
- FILE_290600.o (.bss)
+ module_38.o (.bss)
+ module_38.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_38.BSS_END = .;
SDK_OVERLAY.MODULE_38.BSS_SIZE = SDK_OVERLAY.MODULE_38.BSS_END - SDK_OVERLAY.MODULE_38.BSS_START;
} >> MODULE_38
- .MODULE.39: {
+ .MODULE_39 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_39_ID = 39;
+ SDK_OVERLAY.MODULE_39.ID = 39;
SDK_OVERLAY.MODULE_39.START = .;
- FILE_291200.o (.text) /* 0x28D200 */
+ module_39.o (.text)
+ module_39.o (.rodata)
+ module_39.o (.init)
+ // SDK_OVERLAY.MODULE_39.SINIT_START = .;
+ module_39.o (.ctor)
+ module_39.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_39.SINIT_END = .;
+ . = ALIGN(32);
+ module_39.o (.sdata)
+ module_39.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_39.END = .;
SDK_OVERLAY.MODULE_39.SIZE = SDK_OVERLAY.MODULE_39.END - SDK_OVERLAY.MODULE_39.START;
} > MODULE_39
- .MODULE.39.bss :
+ .MODULE_39.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_39.BSS_START = .;
- FILE_291200.o (.bss)
+ module_39.o (.bss)
+ module_39.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_39.BSS_END = .;
SDK_OVERLAY.MODULE_39.BSS_SIZE = SDK_OVERLAY.MODULE_39.BSS_END - SDK_OVERLAY.MODULE_39.BSS_START;
} >> MODULE_39
- .MODULE.40: {
+ .MODULE_40 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_40_ID = 40;
+ SDK_OVERLAY.MODULE_40.ID = 40;
SDK_OVERLAY.MODULE_40.START = .;
- FILE_292000.o (.text) /* 0x28E000 */
+ module_40.o (.text)
+ module_40.o (.rodata)
+ module_40.o (.init)
+ SDK_OVERLAY.MODULE_40.SINIT_START = .;
+ module_40.o (.ctor)
+ module_40.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_40.SINIT_END = .;
+ . = ALIGN(32);
+ module_40.o (.sdata)
+ module_40.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_40.END = .;
SDK_OVERLAY.MODULE_40.SIZE = SDK_OVERLAY.MODULE_40.END - SDK_OVERLAY.MODULE_40.START;
} > MODULE_40
- .MODULE.40.bss :
+ .MODULE_40.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_40.BSS_START = .;
- FILE_292000.o (.bss)
+ module_40.o (.bss)
+ module_40.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_40.BSS_END = .;
SDK_OVERLAY.MODULE_40.BSS_SIZE = SDK_OVERLAY.MODULE_40.BSS_END - SDK_OVERLAY.MODULE_40.BSS_START;
} >> MODULE_40
- .MODULE.41: {
+ .MODULE_41 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_41_ID = 41;
+ SDK_OVERLAY.MODULE_41.ID = 41;
SDK_OVERLAY.MODULE_41.START = .;
- FILE_292E00.o (.text) /* 0x28EE00 */
+ module_41.o (.text)
+ module_41.o (.rodata)
+ module_41.o (.init)
+ // SDK_OVERLAY.MODULE_41.SINIT_START = .;
+ module_41.o (.ctor)
+ module_41.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_41.SINIT_END = .;
+ . = ALIGN(32);
+ module_41.o (.sdata)
+ module_41.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_41.END = .;
SDK_OVERLAY.MODULE_41.SIZE = SDK_OVERLAY.MODULE_41.END - SDK_OVERLAY.MODULE_41.START;
} > MODULE_41
- .MODULE.41.bss :
+ .MODULE_41.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_41.BSS_START = .;
- FILE_292E00.o (.bss)
+ module_41.o (.bss)
+ module_41.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_41.BSS_END = .;
SDK_OVERLAY.MODULE_41.BSS_SIZE = SDK_OVERLAY.MODULE_41.BSS_END - SDK_OVERLAY.MODULE_41.BSS_START;
} >> MODULE_41
- .MODULE.42: {
+ .MODULE_42 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_42_ID = 42;
+ SDK_OVERLAY.MODULE_42.ID = 42;
SDK_OVERLAY.MODULE_42.START = .;
- FILE_294000.o (.text) /* 0x290000 */
+ module_42.o (.text)
+ module_42.o (.rodata)
+ module_42.o (.init)
+ // SDK_OVERLAY.MODULE_42.SINIT_START = .;
+ module_42.o (.ctor)
+ module_42.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_42.SINIT_END = .;
+ . = ALIGN(32);
+ module_42.o (.sdata)
+ module_42.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_42.END = .;
SDK_OVERLAY.MODULE_42.SIZE = SDK_OVERLAY.MODULE_42.END - SDK_OVERLAY.MODULE_42.START;
} > MODULE_42
- .MODULE.42.bss :
+ .MODULE_42.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_42.BSS_START = .;
- FILE_294000.o (.bss)
+ module_42.o (.bss)
+ module_42.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_42.BSS_END = .;
SDK_OVERLAY.MODULE_42.BSS_SIZE = SDK_OVERLAY.MODULE_42.BSS_END - SDK_OVERLAY.MODULE_42.BSS_START;
} >> MODULE_42
- .MODULE.43: {
+ .MODULE_43 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_43_ID = 43;
+ SDK_OVERLAY.MODULE_43.ID = 43;
SDK_OVERLAY.MODULE_43.START = .;
- FILE_294A00.o (.text) /* 0x290A00 */
+ module_43.o (.text)
+ module_43.o (.rodata)
+ module_43.o (.init)
+ // SDK_OVERLAY.MODULE_43.SINIT_START = .;
+ module_43.o (.ctor)
+ module_43.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_43.SINIT_END = .;
+ . = ALIGN(32);
+ module_43.o (.sdata)
+ module_43.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_43.END = .;
SDK_OVERLAY.MODULE_43.SIZE = SDK_OVERLAY.MODULE_43.END - SDK_OVERLAY.MODULE_43.START;
} > MODULE_43
- .MODULE.43.bss :
+ .MODULE_43.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_43.BSS_START = .;
- FILE_294A00.o (.bss)
+ module_43.o (.bss)
+ module_43.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_43.BSS_END = .;
SDK_OVERLAY.MODULE_43.BSS_SIZE = SDK_OVERLAY.MODULE_43.BSS_END - SDK_OVERLAY.MODULE_43.BSS_START;
} >> MODULE_43
- .MODULE.44: {
+ .MODULE_44 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_44_ID = 44;
+ SDK_OVERLAY.MODULE_44.ID = 44;
SDK_OVERLAY.MODULE_44.START = .;
- FILE_295400.o (.text) /* 0x291400 */
+ module_44.o (.text)
+ module_44.o (.rodata)
+ module_44.o (.init)
+ // SDK_OVERLAY.MODULE_44.SINIT_START = .;
+ module_44.o (.ctor)
+ module_44.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_44.SINIT_END = .;
+ . = ALIGN(32);
+ module_44.o (.sdata)
+ module_44.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_44.END = .;
SDK_OVERLAY.MODULE_44.SIZE = SDK_OVERLAY.MODULE_44.END - SDK_OVERLAY.MODULE_44.START;
} > MODULE_44
- .MODULE.44.bss :
+ .MODULE_44.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_44.BSS_START = .;
- FILE_295400.o (.bss)
+ module_44.o (.bss)
+ module_44.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_44.BSS_END = .;
SDK_OVERLAY.MODULE_44.BSS_SIZE = SDK_OVERLAY.MODULE_44.BSS_END - SDK_OVERLAY.MODULE_44.BSS_START;
} >> MODULE_44
- .MODULE.45: {
+ .MODULE_45 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_45_ID = 45;
+ SDK_OVERLAY.MODULE_45.ID = 45;
SDK_OVERLAY.MODULE_45.START = .;
- FILE_295A00.o (.text) /* 0x291A00 */
+ module_45.o (.text)
+ module_45.o (.rodata)
+ module_45.o (.init)
+ SDK_OVERLAY.MODULE_45.SINIT_START = .;
+ module_45.o (.ctor)
+ module_45.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_45.SINIT_END = .;
+ . = ALIGN(32);
+ module_45.o (.sdata)
+ module_45.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_45.END = .;
SDK_OVERLAY.MODULE_45.SIZE = SDK_OVERLAY.MODULE_45.END - SDK_OVERLAY.MODULE_45.START;
} > MODULE_45
- .MODULE.45.bss :
+ .MODULE_45.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_45.BSS_START = .;
- FILE_295A00.o (.bss)
+ module_45.o (.bss)
+ module_45.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_45.BSS_END = .;
SDK_OVERLAY.MODULE_45.BSS_SIZE = SDK_OVERLAY.MODULE_45.BSS_END - SDK_OVERLAY.MODULE_45.BSS_START;
} >> MODULE_45
- .MODULE.46: {
+ .MODULE_46 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_46_ID = 46;
+ SDK_OVERLAY.MODULE_46.ID = 46;
SDK_OVERLAY.MODULE_46.START = .;
- FILE_296400.o (.text) /* 0x292400 */
+ module_46.o (.text)
+ module_46.o (.rodata)
+ module_46.o (.init)
+ SDK_OVERLAY.MODULE_46.SINIT_START = .;
+ module_46.o (.ctor)
+ module_46.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_46.SINIT_END = .;
+ . = ALIGN(32);
+ module_46.o (.sdata)
+ module_46.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_46.END = .;
SDK_OVERLAY.MODULE_46.SIZE = SDK_OVERLAY.MODULE_46.END - SDK_OVERLAY.MODULE_46.START;
} > MODULE_46
- .MODULE.46.bss :
+ .MODULE_46.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_46.BSS_START = .;
- FILE_296400.o (.bss)
+ module_46.o (.bss)
+ module_46.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_46.BSS_END = .;
SDK_OVERLAY.MODULE_46.BSS_SIZE = SDK_OVERLAY.MODULE_46.BSS_END - SDK_OVERLAY.MODULE_46.BSS_START;
} >> MODULE_46
- .MODULE.47: {
+ .MODULE_47 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_47_ID = 47;
+ SDK_OVERLAY.MODULE_47.ID = 47;
SDK_OVERLAY.MODULE_47.START = .;
- FILE_296800.o (.text) /* 0x292800 */
+ module_47.o (.text)
+ module_47.o (.rodata)
+ module_47.o (.init)
+ // SDK_OVERLAY.MODULE_47.SINIT_START = .;
+ module_47.o (.ctor)
+ module_47.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_47.SINIT_END = .;
+ . = ALIGN(32);
+ module_47.o (.sdata)
+ module_47.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_47.END = .;
SDK_OVERLAY.MODULE_47.SIZE = SDK_OVERLAY.MODULE_47.END - SDK_OVERLAY.MODULE_47.START;
} > MODULE_47
- .MODULE.47.bss :
+ .MODULE_47.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_47.BSS_START = .;
- FILE_296800.o (.bss)
+ module_47.o (.bss)
+ module_47.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_47.BSS_END = .;
SDK_OVERLAY.MODULE_47.BSS_SIZE = SDK_OVERLAY.MODULE_47.BSS_END - SDK_OVERLAY.MODULE_47.BSS_START;
} >> MODULE_47
- .MODULE.48: {
+ .MODULE_48 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_48_ID = 48;
+ SDK_OVERLAY.MODULE_48.ID = 48;
SDK_OVERLAY.MODULE_48.START = .;
- FILE_297600.o (.text) /* 0x293600 */
+ module_48.o (.text)
+ module_48.o (.rodata)
+ module_48.o (.init)
+ SDK_OVERLAY.MODULE_48.SINIT_START = .;
+ module_48.o (.ctor)
+ module_48.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_48.SINIT_END = .;
+ . = ALIGN(32);
+ module_48.o (.sdata)
+ module_48.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_48.END = .;
SDK_OVERLAY.MODULE_48.SIZE = SDK_OVERLAY.MODULE_48.END - SDK_OVERLAY.MODULE_48.START;
} > MODULE_48
- .MODULE.48.bss :
+ .MODULE_48.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_48.BSS_START = .;
- FILE_297600.o (.bss)
+ module_48.o (.bss)
+ module_48.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_48.BSS_END = .;
SDK_OVERLAY.MODULE_48.BSS_SIZE = SDK_OVERLAY.MODULE_48.BSS_END - SDK_OVERLAY.MODULE_48.BSS_START;
} >> MODULE_48
- .MODULE.49: {
+ .MODULE_49 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_49_ID = 49;
+ SDK_OVERLAY.MODULE_49.ID = 49;
SDK_OVERLAY.MODULE_49.START = .;
- FILE_298000.o (.text) /* 0x294000 */
+ module_49.o (.text)
+ module_49.o (.rodata)
+ module_49.o (.init)
+ SDK_OVERLAY.MODULE_49.SINIT_START = .;
+ module_49.o (.ctor)
+ module_49.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_49.SINIT_END = .;
+ . = ALIGN(32);
+ module_49.o (.sdata)
+ module_49.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_49.END = .;
SDK_OVERLAY.MODULE_49.SIZE = SDK_OVERLAY.MODULE_49.END - SDK_OVERLAY.MODULE_49.START;
} > MODULE_49
- .MODULE.49.bss :
+ .MODULE_49.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_49.BSS_START = .;
- FILE_298000.o (.bss)
+ module_49.o (.bss)
+ module_49.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_49.BSS_END = .;
SDK_OVERLAY.MODULE_49.BSS_SIZE = SDK_OVERLAY.MODULE_49.BSS_END - SDK_OVERLAY.MODULE_49.BSS_START;
} >> MODULE_49
- .MODULE.50: {
+ .MODULE_50 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_50_ID = 50;
+ SDK_OVERLAY.MODULE_50.ID = 50;
SDK_OVERLAY.MODULE_50.START = .;
- FILE_298600.o (.text) /* 0x294600 */
+ module_50.o (.text)
+ module_50.o (.rodata)
+ module_50.o (.init)
+ SDK_OVERLAY.MODULE_50.SINIT_START = .;
+ module_50.o (.ctor)
+ module_50.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_50.SINIT_END = .;
+ . = ALIGN(32);
+ module_50.o (.sdata)
+ module_50.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_50.END = .;
SDK_OVERLAY.MODULE_50.SIZE = SDK_OVERLAY.MODULE_50.END - SDK_OVERLAY.MODULE_50.START;
} > MODULE_50
- .MODULE.50.bss :
+ .MODULE_50.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_50.BSS_START = .;
- FILE_298600.o (.bss)
+ module_50.o (.bss)
+ module_50.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_50.BSS_END = .;
SDK_OVERLAY.MODULE_50.BSS_SIZE = SDK_OVERLAY.MODULE_50.BSS_END - SDK_OVERLAY.MODULE_50.BSS_START;
} >> MODULE_50
- .MODULE.51: {
+ .MODULE_51 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_51_ID = 51;
+ SDK_OVERLAY.MODULE_51.ID = 51;
SDK_OVERLAY.MODULE_51.START = .;
- FILE_298A00.o (.text) /* 0x294A00 */
+ module_51.o (.text)
+ module_51.o (.rodata)
+ module_51.o (.init)
+ SDK_OVERLAY.MODULE_51.SINIT_START = .;
+ module_51.o (.ctor)
+ module_51.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_51.SINIT_END = .;
+ . = ALIGN(32);
+ module_51.o (.sdata)
+ module_51.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_51.END = .;
SDK_OVERLAY.MODULE_51.SIZE = SDK_OVERLAY.MODULE_51.END - SDK_OVERLAY.MODULE_51.START;
} > MODULE_51
- .MODULE.51.bss :
+ .MODULE_51.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_51.BSS_START = .;
- FILE_298A00.o (.bss)
+ module_51.o (.bss)
+ module_51.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_51.BSS_END = .;
SDK_OVERLAY.MODULE_51.BSS_SIZE = SDK_OVERLAY.MODULE_51.BSS_END - SDK_OVERLAY.MODULE_51.BSS_START;
} >> MODULE_51
- .MODULE.52: {
+ .MODULE_52 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_52_ID = 52;
+ SDK_OVERLAY.MODULE_52.ID = 52;
SDK_OVERLAY.MODULE_52.START = .;
- FILE_299A00.o (.text) /* 0x295A00 */
+ module_52.o (.text)
+ module_52.o (.rodata)
+ module_52.o (.init)
+ SDK_OVERLAY.MODULE_52.SINIT_START = .;
+ module_52.o (.ctor)
+ module_52.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_52.SINIT_END = .;
+ . = ALIGN(32);
+ module_52.o (.sdata)
+ module_52.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_52.END = .;
SDK_OVERLAY.MODULE_52.SIZE = SDK_OVERLAY.MODULE_52.END - SDK_OVERLAY.MODULE_52.START;
} > MODULE_52
- .MODULE.52.bss :
+ .MODULE_52.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_52.BSS_START = .;
- FILE_299A00.o (.bss)
+ module_52.o (.bss)
+ module_52.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_52.BSS_END = .;
SDK_OVERLAY.MODULE_52.BSS_SIZE = SDK_OVERLAY.MODULE_52.BSS_END - SDK_OVERLAY.MODULE_52.BSS_START;
} >> MODULE_52
- .MODULE.53: {
+ .MODULE_53 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_53_ID = 53;
+ SDK_OVERLAY.MODULE_53.ID = 53;
SDK_OVERLAY.MODULE_53.START = .;
- FILE_299E00.o (.text) /* 0x295E00 */
+ module_53.o (.text)
+ module_53.o (.rodata)
+ module_53.o (.init)
+ SDK_OVERLAY.MODULE_53.SINIT_START = .;
+ module_53.o (.ctor)
+ module_53.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_53.SINIT_END = .;
+ . = ALIGN(32);
+ module_53.o (.sdata)
+ module_53.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_53.END = .;
SDK_OVERLAY.MODULE_53.SIZE = SDK_OVERLAY.MODULE_53.END - SDK_OVERLAY.MODULE_53.START;
} > MODULE_53
- .MODULE.53.bss :
+ .MODULE_53.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_53.BSS_START = .;
- FILE_299E00.o (.bss)
+ module_53.o (.bss)
+ module_53.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_53.BSS_END = .;
SDK_OVERLAY.MODULE_53.BSS_SIZE = SDK_OVERLAY.MODULE_53.BSS_END - SDK_OVERLAY.MODULE_53.BSS_START;
} >> MODULE_53
- .MODULE.54: {
+ .MODULE_54 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_54_ID = 54;
+ SDK_OVERLAY.MODULE_54.ID = 54;
SDK_OVERLAY.MODULE_54.START = .;
- FILE_29C400.o (.text) /* 0x298400 */
+ module_54.o (.text)
+ module_54.o (.rodata)
+ module_54.o (.init)
+ SDK_OVERLAY.MODULE_54.SINIT_START = .;
+ module_54.o (.ctor)
+ module_54.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_54.SINIT_END = .;
+ . = ALIGN(32);
+ module_54.o (.sdata)
+ module_54.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_54.END = .;
SDK_OVERLAY.MODULE_54.SIZE = SDK_OVERLAY.MODULE_54.END - SDK_OVERLAY.MODULE_54.START;
} > MODULE_54
- .MODULE.54.bss :
+ .MODULE_54.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_54.BSS_START = .;
- FILE_29C400.o (.bss)
+ module_54.o (.bss)
+ module_54.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_54.BSS_END = .;
SDK_OVERLAY.MODULE_54.BSS_SIZE = SDK_OVERLAY.MODULE_54.BSS_END - SDK_OVERLAY.MODULE_54.BSS_START;
} >> MODULE_54
- .MODULE.55: {
+ .MODULE_55 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_55_ID = 55;
+ SDK_OVERLAY.MODULE_55.ID = 55;
SDK_OVERLAY.MODULE_55.START = .;
- FILE_29E800.o (.text) /* 0x29A800 */
+ module_55.o (.text)
+ module_55.o (.rodata)
+ module_55.o (.init)
+ SDK_OVERLAY.MODULE_55.SINIT_START = .;
+ module_55.o (.ctor)
+ module_55.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_55.SINIT_END = .;
+ . = ALIGN(32);
+ module_55.o (.sdata)
+ module_55.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_55.END = .;
SDK_OVERLAY.MODULE_55.SIZE = SDK_OVERLAY.MODULE_55.END - SDK_OVERLAY.MODULE_55.START;
} > MODULE_55
- .MODULE.55.bss :
+ .MODULE_55.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_55.BSS_START = .;
- FILE_29E800.o (.bss)
+ module_55.o (.bss)
+ module_55.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_55.BSS_END = .;
SDK_OVERLAY.MODULE_55.BSS_SIZE = SDK_OVERLAY.MODULE_55.BSS_END - SDK_OVERLAY.MODULE_55.BSS_START;
} >> MODULE_55
- .MODULE.56: {
+ .MODULE_56 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_56_ID = 56;
+ SDK_OVERLAY.MODULE_56.ID = 56;
SDK_OVERLAY.MODULE_56.START = .;
- FILE_2A1A00.o (.text) /* 0x29DA00 */
+ module_56.o (.text)
+ module_56.o (.rodata)
+ module_56.o (.init)
+ SDK_OVERLAY.MODULE_56.SINIT_START = .;
+ module_56.o (.ctor)
+ module_56.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_56.SINIT_END = .;
+ . = ALIGN(32);
+ module_56.o (.sdata)
+ module_56.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_56.END = .;
SDK_OVERLAY.MODULE_56.SIZE = SDK_OVERLAY.MODULE_56.END - SDK_OVERLAY.MODULE_56.START;
} > MODULE_56
- .MODULE.56.bss :
+ .MODULE_56.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_56.BSS_START = .;
- FILE_2A1A00.o (.bss)
+ module_56.o (.bss)
+ module_56.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_56.BSS_END = .;
SDK_OVERLAY.MODULE_56.BSS_SIZE = SDK_OVERLAY.MODULE_56.BSS_END - SDK_OVERLAY.MODULE_56.BSS_START;
} >> MODULE_56
- .MODULE.57: {
+ .MODULE_57 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_57_ID = 57;
+ SDK_OVERLAY.MODULE_57.ID = 57;
SDK_OVERLAY.MODULE_57.START = .;
- FILE_2A6200.o (.text) /* 0x2A2200 */
+ module_57.o (.text)
+ module_57.o (.rodata)
+ module_57.o (.init)
+ SDK_OVERLAY.MODULE_57.SINIT_START = .;
+ module_57.o (.ctor)
+ module_57.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_57.SINIT_END = .;
+ . = ALIGN(32);
+ module_57.o (.sdata)
+ module_57.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_57.END = .;
SDK_OVERLAY.MODULE_57.SIZE = SDK_OVERLAY.MODULE_57.END - SDK_OVERLAY.MODULE_57.START;
} > MODULE_57
- .MODULE.57.bss :
+ .MODULE_57.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_57.BSS_START = .;
- FILE_2A6200.o (.bss)
+ module_57.o (.bss)
+ module_57.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_57.BSS_END = .;
SDK_OVERLAY.MODULE_57.BSS_SIZE = SDK_OVERLAY.MODULE_57.BSS_END - SDK_OVERLAY.MODULE_57.BSS_START;
} >> MODULE_57
- .MODULE.58: {
+ .MODULE_58 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_58_ID = 58;
+ SDK_OVERLAY.MODULE_58.ID = 58;
SDK_OVERLAY.MODULE_58.START = .;
- FILE_2A8800.o (.text) /* 0x2A4800 */
+ module_58.o (.text)
+ module_58.o (.rodata)
+ module_58.o (.init)
+ SDK_OVERLAY.MODULE_58.SINIT_START = .;
+ module_58.o (.ctor)
+ module_58.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_58.SINIT_END = .;
+ . = ALIGN(32);
+ module_58.o (.sdata)
+ module_58.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_58.END = .;
SDK_OVERLAY.MODULE_58.SIZE = SDK_OVERLAY.MODULE_58.END - SDK_OVERLAY.MODULE_58.START;
} > MODULE_58
- .MODULE.58.bss :
+ .MODULE_58.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_58.BSS_START = .;
- FILE_2A8800.o (.bss)
+ module_58.o (.bss)
+ module_58.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_58.BSS_END = .;
SDK_OVERLAY.MODULE_58.BSS_SIZE = SDK_OVERLAY.MODULE_58.BSS_END - SDK_OVERLAY.MODULE_58.BSS_START;
} >> MODULE_58
- .MODULE.59: {
+ .MODULE_59 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_59_ID = 59;
+ SDK_OVERLAY.MODULE_59.ID = 59;
SDK_OVERLAY.MODULE_59.START = .;
- FILE_2A9E00.o (.text) /* 0x2A5E00 */
+ module_59.o (.text)
+ module_59.o (.rodata)
+ module_59.o (.init)
+ SDK_OVERLAY.MODULE_59.SINIT_START = .;
+ module_59.o (.ctor)
+ module_59.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_59.SINIT_END = .;
+ . = ALIGN(32);
+ module_59.o (.sdata)
+ module_59.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_59.END = .;
SDK_OVERLAY.MODULE_59.SIZE = SDK_OVERLAY.MODULE_59.END - SDK_OVERLAY.MODULE_59.START;
} > MODULE_59
- .MODULE.59.bss :
+ .MODULE_59.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_59.BSS_START = .;
- FILE_2A9E00.o (.bss)
+ module_59.o (.bss)
+ module_59.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_59.BSS_END = .;
SDK_OVERLAY.MODULE_59.BSS_SIZE = SDK_OVERLAY.MODULE_59.BSS_END - SDK_OVERLAY.MODULE_59.BSS_START;
} >> MODULE_59
- .MODULE.60: {
+ .MODULE_60 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_60_ID = 60;
+ SDK_OVERLAY.MODULE_60.ID = 60;
SDK_OVERLAY.MODULE_60.START = .;
- FILE_2ACC00.o (.text) /* 0x2A8C00 */
+ module_60.o (.text)
+ module_60.o (.rodata)
+ module_60.o (.init)
+ SDK_OVERLAY.MODULE_60.SINIT_START = .;
+ module_60.o (.ctor)
+ module_60.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_60.SINIT_END = .;
+ . = ALIGN(32);
+ module_60.o (.sdata)
+ module_60.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_60.END = .;
SDK_OVERLAY.MODULE_60.SIZE = SDK_OVERLAY.MODULE_60.END - SDK_OVERLAY.MODULE_60.START;
} > MODULE_60
- .MODULE.60.bss :
+ .MODULE_60.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_60.BSS_START = .;
- FILE_2ACC00.o (.bss)
+ module_60.o (.bss)
+ module_60.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_60.BSS_END = .;
SDK_OVERLAY.MODULE_60.BSS_SIZE = SDK_OVERLAY.MODULE_60.BSS_END - SDK_OVERLAY.MODULE_60.BSS_START;
} >> MODULE_60
- .MODULE.61: {
+ .MODULE_61 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_61_ID = 61;
+ SDK_OVERLAY.MODULE_61.ID = 61;
SDK_OVERLAY.MODULE_61.START = .;
- FILE_2ADA00.o (.text) /* 0x2A9A00 */
+ module_61.o (.text)
+ module_61.o (.rodata)
+ module_61.o (.init)
+ SDK_OVERLAY.MODULE_61.SINIT_START = .;
+ module_61.o (.ctor)
+ module_61.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_61.SINIT_END = .;
+ . = ALIGN(32);
+ module_61.o (.sdata)
+ module_61.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_61.END = .;
SDK_OVERLAY.MODULE_61.SIZE = SDK_OVERLAY.MODULE_61.END - SDK_OVERLAY.MODULE_61.START;
} > MODULE_61
- .MODULE.61.bss :
+ .MODULE_61.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_61.BSS_START = .;
- FILE_2ADA00.o (.bss)
+ module_61.o (.bss)
+ module_61.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_61.BSS_END = .;
SDK_OVERLAY.MODULE_61.BSS_SIZE = SDK_OVERLAY.MODULE_61.BSS_END - SDK_OVERLAY.MODULE_61.BSS_START;
} >> MODULE_61
- .MODULE.62: {
+ .MODULE_62 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_62_ID = 62;
+ SDK_OVERLAY.MODULE_62.ID = 62;
SDK_OVERLAY.MODULE_62.START = .;
- FILE_2AEC00.o (.text) /* 0x2AAC00 */
+ module_62.o (.text)
+ module_62.o (.rodata)
+ module_62.o (.init)
+ SDK_OVERLAY.MODULE_62.SINIT_START = .;
+ module_62.o (.ctor)
+ module_62.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_62.SINIT_END = .;
+ . = ALIGN(32);
+ module_62.o (.sdata)
+ module_62.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_62.END = .;
SDK_OVERLAY.MODULE_62.SIZE = SDK_OVERLAY.MODULE_62.END - SDK_OVERLAY.MODULE_62.START;
} > MODULE_62
- .MODULE.62.bss :
+ .MODULE_62.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_62.BSS_START = .;
- FILE_2AEC00.o (.bss)
+ module_62.o (.bss)
+ module_62.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_62.BSS_END = .;
SDK_OVERLAY.MODULE_62.BSS_SIZE = SDK_OVERLAY.MODULE_62.BSS_END - SDK_OVERLAY.MODULE_62.BSS_START;
} >> MODULE_62
- .MODULE.63: {
+ .MODULE_63 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_63_ID = 63;
+ SDK_OVERLAY.MODULE_63.ID = 63;
SDK_OVERLAY.MODULE_63.START = .;
- FILE_2B2A00.o (.text) /* 0x2AEA00 */
+ module_63.o (.text)
+ module_63.o (.rodata)
+ module_63.o (.init)
+ SDK_OVERLAY.MODULE_63.SINIT_START = .;
+ module_63.o (.ctor)
+ module_63.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_63.SINIT_END = .;
+ . = ALIGN(32);
+ module_63.o (.sdata)
+ module_63.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_63.END = .;
SDK_OVERLAY.MODULE_63.SIZE = SDK_OVERLAY.MODULE_63.END - SDK_OVERLAY.MODULE_63.START;
} > MODULE_63
- .MODULE.63.bss :
+ .MODULE_63.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_63.BSS_START = .;
- FILE_2B2A00.o (.bss)
+ module_63.o (.bss)
+ module_63.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_63.BSS_END = .;
SDK_OVERLAY.MODULE_63.BSS_SIZE = SDK_OVERLAY.MODULE_63.BSS_END - SDK_OVERLAY.MODULE_63.BSS_START;
} >> MODULE_63
- .MODULE.64: {
+ .MODULE_64 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_64_ID = 64;
+ SDK_OVERLAY.MODULE_64.ID = 64;
SDK_OVERLAY.MODULE_64.START = .;
- FILE_2B7600.o (.text) /* 0x2B3600 */
+ module_64.o (.text)
+ module_64.o (.rodata)
+ module_64.o (.init)
+ SDK_OVERLAY.MODULE_64.SINIT_START = .;
+ module_64.o (.ctor)
+ module_64.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_64.SINIT_END = .;
+ . = ALIGN(32);
+ module_64.o (.sdata)
+ module_64.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_64.END = .;
SDK_OVERLAY.MODULE_64.SIZE = SDK_OVERLAY.MODULE_64.END - SDK_OVERLAY.MODULE_64.START;
} > MODULE_64
- .MODULE.64.bss :
+ .MODULE_64.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_64.BSS_START = .;
- FILE_2B7600.o (.bss)
+ module_64.o (.bss)
+ module_64.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_64.BSS_END = .;
SDK_OVERLAY.MODULE_64.BSS_SIZE = SDK_OVERLAY.MODULE_64.BSS_END - SDK_OVERLAY.MODULE_64.BSS_START;
} >> MODULE_64
- .MODULE.65: {
+ .MODULE_65 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_65_ID = 65;
+ SDK_OVERLAY.MODULE_65.ID = 65;
SDK_OVERLAY.MODULE_65.START = .;
- FILE_2B9400.o (.text) /* 0x2B5400 */
+ module_65.o (.text)
+ module_65.o (.rodata)
+ module_65.o (.init)
+ SDK_OVERLAY.MODULE_65.SINIT_START = .;
+ module_65.o (.ctor)
+ module_65.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_65.SINIT_END = .;
+ . = ALIGN(32);
+ module_65.o (.sdata)
+ module_65.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_65.END = .;
SDK_OVERLAY.MODULE_65.SIZE = SDK_OVERLAY.MODULE_65.END - SDK_OVERLAY.MODULE_65.START;
} > MODULE_65
- .MODULE.65.bss :
+ .MODULE_65.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_65.BSS_START = .;
- FILE_2B9400.o (.bss)
+ module_65.o (.bss)
+ module_65.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_65.BSS_END = .;
SDK_OVERLAY.MODULE_65.BSS_SIZE = SDK_OVERLAY.MODULE_65.BSS_END - SDK_OVERLAY.MODULE_65.BSS_START;
} >> MODULE_65
- .MODULE.66: {
+ .MODULE_66 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_66_ID = 66;
+ SDK_OVERLAY.MODULE_66.ID = 66;
SDK_OVERLAY.MODULE_66.START = .;
- FILE_2BC400.o (.text) /* 0x2B8400 */
+ module_66.o (.text)
+ module_66.o (.rodata)
+ module_66.o (.init)
+ SDK_OVERLAY.MODULE_66.SINIT_START = .;
+ module_66.o (.ctor)
+ module_66.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_66.SINIT_END = .;
+ . = ALIGN(32);
+ module_66.o (.sdata)
+ module_66.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_66.END = .;
SDK_OVERLAY.MODULE_66.SIZE = SDK_OVERLAY.MODULE_66.END - SDK_OVERLAY.MODULE_66.START;
} > MODULE_66
- .MODULE.66.bss :
+ .MODULE_66.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_66.BSS_START = .;
- FILE_2BC400.o (.bss)
+ module_66.o (.bss)
+ module_66.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_66.BSS_END = .;
SDK_OVERLAY.MODULE_66.BSS_SIZE = SDK_OVERLAY.MODULE_66.BSS_END - SDK_OVERLAY.MODULE_66.BSS_START;
} >> MODULE_66
- .MODULE.67: {
+ .MODULE_67 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_67_ID = 67;
+ SDK_OVERLAY.MODULE_67.ID = 67;
SDK_OVERLAY.MODULE_67.START = .;
- FILE_2BEC00.o (.text) /* 0x2BAC00 */
+ module_67.o (.text)
+ module_67.o (.rodata)
+ module_67.o (.init)
+ SDK_OVERLAY.MODULE_67.SINIT_START = .;
+ module_67.o (.ctor)
+ module_67.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_67.SINIT_END = .;
+ . = ALIGN(32);
+ module_67.o (.sdata)
+ module_67.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_67.END = .;
SDK_OVERLAY.MODULE_67.SIZE = SDK_OVERLAY.MODULE_67.END - SDK_OVERLAY.MODULE_67.START;
} > MODULE_67
- .MODULE.67.bss :
+ .MODULE_67.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_67.BSS_START = .;
- FILE_2BEC00.o (.bss)
+ module_67.o (.bss)
+ module_67.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_67.BSS_END = .;
SDK_OVERLAY.MODULE_67.BSS_SIZE = SDK_OVERLAY.MODULE_67.BSS_END - SDK_OVERLAY.MODULE_67.BSS_START;
} >> MODULE_67
- .MODULE.68: {
+ .MODULE_68 :
+ {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_68_ID = 68;
+ SDK_OVERLAY.MODULE_68.ID = 68;
SDK_OVERLAY.MODULE_68.START = .;
- FILE_2C1200.o (.text) /* 0x2BD200 */
+ module_68.o (.text)
+ module_68.o (.rodata)
+ module_68.o (.init)
+ SDK_OVERLAY.MODULE_68.SINIT_START = .;
+ module_68.o (.ctor)
+ module_68.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_68.SINIT_END = .;
+ . = ALIGN(32);
+ module_68.o (.sdata)
+ module_68.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_68.END = .;
SDK_OVERLAY.MODULE_68.SIZE = SDK_OVERLAY.MODULE_68.END - SDK_OVERLAY.MODULE_68.START;
} > MODULE_68
- .MODULE.68.bss :
+ .MODULE_68.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_68.BSS_START = .;
- FILE_2C1200.o (.bss)
+ module_68.o (.bss)
+ module_68.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_68.BSS_END = .;
SDK_OVERLAY.MODULE_68.BSS_SIZE = SDK_OVERLAY.MODULE_68.BSS_END - SDK_OVERLAY.MODULE_68.BSS_START;
} >> MODULE_68
- .MODULE.69: {
+ .MODULE_69: {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_69_ID = 69;
+ SDK_OVERLAY.MODULE_69.ID = 69;
SDK_OVERLAY.MODULE_69.START = .;
- FILE_2C2800.o (.text) /* 0x2BE800 */
+ module_69.o (.text)
+ module_69.o (.rodata)
+ module_69.o (.init)
+ SDK_OVERLAY.MODULE_69.SINIT_START = .;
+ module_69.o (.ctor)
+ module_69.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_69.SINIT_END = .;
+ . = ALIGN(32);
+ module_69.o (.sdata)
+ module_69.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_69.END = .;
SDK_OVERLAY.MODULE_69.SIZE = SDK_OVERLAY.MODULE_69.END - SDK_OVERLAY.MODULE_69.START;
} > MODULE_69
- .MODULE.69.bss :
+ .MODULE_69.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_69.BSS_START = .;
- FILE_2C2800.o (.bss)
+ module_69.o (.bss)
+ module_69.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_69.BSS_END = .;
SDK_OVERLAY.MODULE_69.BSS_SIZE = SDK_OVERLAY.MODULE_69.BSS_END - SDK_OVERLAY.MODULE_69.BSS_START;
} >> MODULE_69
- .MODULE.70: {
+ .MODULE_70: {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_70_ID = 70;
+ SDK_OVERLAY.MODULE_70.ID = 70;
SDK_OVERLAY.MODULE_70.START = .;
- FILE_2C4C00.o (.text) /* 0x2C0C00 */
+ module_70.o (.text)
+ module_70.o (.rodata)
+ module_70.o (.init)
+ SDK_OVERLAY.MODULE_70.SINIT_START = .;
+ module_70.o (.ctor)
+ module_70.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_70.SINIT_END = .;
+ . = ALIGN(32);
+ module_70.o (.sdata)
+ module_70.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_70.END = .;
SDK_OVERLAY.MODULE_70.SIZE = SDK_OVERLAY.MODULE_70.END - SDK_OVERLAY.MODULE_70.START;
} > MODULE_70
- .MODULE.70.bss :
+ .MODULE_70.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_70.BSS_START = .;
- FILE_2C4C00.o (.bss)
+ module_70.o (.bss)
+ module_70.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_70.BSS_END = .;
SDK_OVERLAY.MODULE_70.BSS_SIZE = SDK_OVERLAY.MODULE_70.BSS_END - SDK_OVERLAY.MODULE_70.BSS_START;
} >> MODULE_70
- .MODULE.71: {
+ .MODULE_71: {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_71_ID = 71;
+ SDK_OVERLAY.MODULE_71.ID = 71;
SDK_OVERLAY.MODULE_71.START = .;
- FILE_2C5C00.o (.text) /* 0x2C1C00 */
+ module_71.o (.text)
+ module_71.o (.rodata)
+ module_71.o (.init)
+ SDK_OVERLAY.MODULE_71.SINIT_START = .;
+ module_71.o (.ctor)
+ module_71.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_71.SINIT_END = .;
+ . = ALIGN(32);
+ module_71.o (.sdata)
+ module_71.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_71.END = .;
SDK_OVERLAY.MODULE_71.SIZE = SDK_OVERLAY.MODULE_71.END - SDK_OVERLAY.MODULE_71.START;
} > MODULE_71
- .MODULE.71.bss :
+ .MODULE_71.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_71.BSS_START = .;
- FILE_2C5C00.o (.bss)
+ module_71.o (.bss)
+ module_71.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_71.BSS_END = .;
SDK_OVERLAY.MODULE_71.BSS_SIZE = SDK_OVERLAY.MODULE_71.BSS_END - SDK_OVERLAY.MODULE_71.BSS_START;
} >> MODULE_71
- .MODULE.72: {
+ .MODULE_72: {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_72_ID = 72;
+ SDK_OVERLAY.MODULE_72.ID = 72;
SDK_OVERLAY.MODULE_72.START = .;
- FILE_2C9C00.o (.text) /* 0x2C5C00 */
+ module_72_dummy.o (.text)
+ module_72_dummy.o (.rodata)
+ module_72_dummy.o (.init)
+ SDK_OVERLAY.MODULE_72.SINIT_START = .;
+ module_72_dummy.o (.ctor)
+ module_72_dummy.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_72.SINIT_END = .;
+ . = ALIGN(32);
+ module_72_dummy.o (.sdata)
+ module_72_dummy.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_72.END = .;
SDK_OVERLAY.MODULE_72.SIZE = SDK_OVERLAY.MODULE_72.END - SDK_OVERLAY.MODULE_72.START;
} > MODULE_72
- .MODULE.72.bss :
+ .MODULE_72.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_72.BSS_START = .;
- FILE_2C9C00.o (.bss)
+ module_72_dummy.o (.bss)
+ module_72_dummy.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_72.BSS_END = .;
SDK_OVERLAY.MODULE_72.BSS_SIZE = SDK_OVERLAY.MODULE_72.BSS_END - SDK_OVERLAY.MODULE_72.BSS_START;
} >> MODULE_72
- .MODULE.73: {
+ .MODULE_73: {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_73_ID = 73;
+ SDK_OVERLAY.MODULE_73.ID = 73;
SDK_OVERLAY.MODULE_73.START = .;
- FILE_2C9E00.o (.text) /* 0x2C5E00 */
+ module_73.o (.text)
+ module_73.o (.rodata)
+ module_73.o (.init)
+ SDK_OVERLAY.MODULE_73.SINIT_START = .;
+ module_73.o (.ctor)
+ module_73.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_73.SINIT_END = .;
+ . = ALIGN(32);
+ module_73.o (.sdata)
+ module_73.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_73.END = .;
SDK_OVERLAY.MODULE_73.SIZE = SDK_OVERLAY.MODULE_73.END - SDK_OVERLAY.MODULE_73.START;
} > MODULE_73
- .MODULE.73.bss :
+ .MODULE_73.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_73.BSS_START = .;
- FILE_2C9E00.o (.bss)
+ module_73.o (.bss)
+ module_73.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_73.BSS_END = .;
SDK_OVERLAY.MODULE_73.BSS_SIZE = SDK_OVERLAY.MODULE_73.BSS_END - SDK_OVERLAY.MODULE_73.BSS_START;
} >> MODULE_73
- .MODULE.74: {
+ .MODULE_74: {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_74_ID = 74;
+ SDK_OVERLAY.MODULE_74.ID = 74;
SDK_OVERLAY.MODULE_74.START = .;
- FILE_2CEA00.o (.text) /* 0x2CAA00 */
+ module_74.o (.text)
+ module_74.o (.rodata)
+ module_74.o (.init)
+ SDK_OVERLAY.MODULE_74.SINIT_START = .;
+ module_74.o (.ctor)
+ module_74.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_74.SINIT_END = .;
+ . = ALIGN(32);
+ module_74.o (.sdata)
+ module_74.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_74.END = .;
SDK_OVERLAY.MODULE_74.SIZE = SDK_OVERLAY.MODULE_74.END - SDK_OVERLAY.MODULE_74.START;
} > MODULE_74
- .MODULE.74.bss :
+ .MODULE_74.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_74.BSS_START = .;
- FILE_2CEA00.o (.bss)
+ module_74.o (.bss)
+ module_74.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_74.BSS_END = .;
SDK_OVERLAY.MODULE_74.BSS_SIZE = SDK_OVERLAY.MODULE_74.BSS_END - SDK_OVERLAY.MODULE_74.BSS_START;
} >> MODULE_74
- .MODULE.75: {
+ .MODULE_75: {
ALIGNALL(4); . = ALIGN(32);
+ SDK_OVERLAY_MODULE_75_ID = 75;
+ SDK_OVERLAY.MODULE_75.ID = 75;
SDK_OVERLAY.MODULE_75.START = .;
- FILE_2CFE00.o (.text) /* 0x2CBE00 */
+ module_75.o (.text)
+ module_75.o (.rodata)
+ module_75.o (.init)
+ SDK_OVERLAY.MODULE_75.SINIT_START = .;
+ module_75.o (.ctor)
+ module_75.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_75.SINIT_END = .;
+ . = ALIGN(32);
+ module_75.o (.sdata)
+ module_75.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_75.END = .;
SDK_OVERLAY.MODULE_75.SIZE = SDK_OVERLAY.MODULE_75.END - SDK_OVERLAY.MODULE_75.START;
} > MODULE_75
- .MODULE.75.bss :
+ .MODULE_75.bss :
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_75.BSS_START = .;
- FILE_2CFE00.o (.bss)
+ module_75.o (.bss)
+ module_75.o (.sbss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_75.BSS_END = .;
SDK_OVERLAY.MODULE_75.BSS_SIZE = SDK_OVERLAY.MODULE_75.BSS_END - SDK_OVERLAY.MODULE_75.BSS_START;
} >> MODULE_75
- .MODULE.76: {
+ .MODULE_76: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_76
- .MODULE.76.bss :
+ .MODULE_76.bss :
{
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;
} >> MODULE_76
- .MODULE.77: {
+ .MODULE_77: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_77
- .MODULE.77.bss :
+ .MODULE_77.bss :
{
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;
} >> MODULE_77
- .MODULE.78: {
+ .MODULE_78: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_78
- .MODULE.78.bss :
+ .MODULE_78.bss :
{
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;
} >> MODULE_78
- .MODULE.79: {
+ .MODULE_79: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_79
- .MODULE.79.bss :
+ .MODULE_79.bss :
{
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;
} >> MODULE_79
- .MODULE.80: {
+ .MODULE_80: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_80
- .MODULE.80.bss :
+ .MODULE_80.bss :
{
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;
} >> MODULE_80
- .MODULE.81: {
+ .MODULE_81: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_81
- .MODULE.81.bss :
+ .MODULE_81.bss :
{
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;
} >> MODULE_81
- .MODULE.82: {
+ .MODULE_82: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_82
- .MODULE.82.bss :
+ .MODULE_82.bss :
{
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;
} >> MODULE_82
- .MODULE.83: {
+ .MODULE_83: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_83
- .MODULE.83.bss :
+ .MODULE_83.bss :
{
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;
} >> MODULE_83
- .MODULE.84: {
+ .MODULE_84: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_84
- .MODULE.84.bss :
+ .MODULE_84.bss :
{
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;
} >> MODULE_84
- .MODULE.85: {
+ .MODULE_85: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_85
- .MODULE.85.bss :
+ .MODULE_85.bss :
{
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;
} >> MODULE_85
- .MODULE.86: {
+ .MODULE_86: {
ALIGNALL(4); . = ALIGN(32);
+ 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;
} > MODULE_86
- .MODULE.86.bss :
+ .MODULE_86.bss :
{
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;
@@ -2075,17 +3257,19 @@ SECTIONS {
.dummy.MAIN_EX:
{
-
+ . = ALIGN(32);
} > dummy.MAIN_EX
.arena.MAIN:
{
-
+ . = ALIGN(32);
+ SDK_SECTION_ARENA_START = .;
} > arena.MAIN
.arena.MAIN_EX:
{
-
+ . = ALIGN(32);
+ SDK_SECTION_ARENA_EX_START = .;
} > arena.MAIN_EX
.arena.ITCM:
@@ -2196,95 +3380,795 @@ SECTIONS {
} > arm9_defs
.arm9_table : {
- OVERLAY_TABLE(MODULE_00, 0)
- OVERLAY_TABLE(MODULE_01, 1)
- OVERLAY_TABLE(MODULE_02, 2)
- OVERLAY_TABLE(MODULE_03, 3)
- OVERLAY_TABLE(MODULE_04, 4)
- OVERLAY_TABLE(MODULE_05, 5)
- OVERLAY_TABLE(MODULE_06, 6)
- OVERLAY_TABLE(MODULE_07, 7)
- OVERLAY_TABLE(MODULE_08, 8)
- OVERLAY_TABLE(MODULE_09, 9)
- OVERLAY_TABLE(MODULE_10, 10)
- OVERLAY_TABLE(MODULE_11, 11)
- OVERLAY_TABLE(MODULE_12, 12)
- OVERLAY_TABLE(MODULE_13, 13)
- OVERLAY_TABLE(MODULE_14, 14)
- OVERLAY_TABLE(MODULE_15, 15)
- OVERLAY_TABLE(MODULE_16, 16)
- OVERLAY_TABLE(MODULE_17, 17)
- OVERLAY_TABLE(MODULE_18, 18)
- OVERLAY_TABLE(MODULE_19, 19)
- OVERLAY_TABLE(MODULE_20, 20)
- OVERLAY_TABLE(MODULE_21, 21)
- OVERLAY_TABLE(MODULE_22, 22)
- OVERLAY_TABLE(MODULE_23, 23)
- OVERLAY_TABLE(MODULE_24, 24)
- OVERLAY_TABLE(MODULE_25, 25)
- OVERLAY_TABLE(MODULE_26, 26)
- OVERLAY_TABLE(MODULE_27, 27)
- OVERLAY_TABLE(MODULE_28, 28)
- OVERLAY_TABLE(MODULE_29, 29)
- OVERLAY_TABLE(MODULE_30, 30)
- OVERLAY_TABLE(MODULE_31, 31)
- OVERLAY_TABLE(MODULE_32, 32)
- OVERLAY_TABLE(MODULE_33, 33)
- OVERLAY_TABLE(MODULE_34, 34)
- OVERLAY_TABLE(MODULE_35, 35)
- OVERLAY_TABLE(MODULE_36, 36)
- OVERLAY_TABLE(MODULE_37, 37)
- OVERLAY_TABLE(MODULE_38, 38)
- OVERLAY_TABLE(MODULE_39, 39)
- OVERLAY_TABLE(MODULE_40, 40)
- OVERLAY_TABLE(MODULE_41, 41)
- OVERLAY_TABLE(MODULE_42, 42)
- OVERLAY_TABLE(MODULE_43, 43)
- OVERLAY_TABLE(MODULE_44, 44)
- OVERLAY_TABLE(MODULE_45, 45)
- OVERLAY_TABLE(MODULE_46, 46)
- OVERLAY_TABLE(MODULE_47, 47)
- OVERLAY_TABLE(MODULE_48, 48)
- OVERLAY_TABLE(MODULE_49, 49)
- OVERLAY_TABLE(MODULE_50, 50)
- OVERLAY_TABLE(MODULE_51, 51)
- OVERLAY_TABLE(MODULE_52, 52)
- OVERLAY_TABLE(MODULE_53, 53)
- OVERLAY_TABLE(MODULE_54, 54)
- OVERLAY_TABLE(MODULE_55, 55)
- OVERLAY_TABLE(MODULE_56, 56)
- OVERLAY_TABLE(MODULE_57, 57)
- OVERLAY_TABLE(MODULE_58, 58)
- OVERLAY_TABLE(MODULE_59, 59)
- OVERLAY_TABLE(MODULE_60, 60)
- OVERLAY_TABLE(MODULE_61, 61)
- OVERLAY_TABLE(MODULE_62, 62)
- OVERLAY_TABLE(MODULE_63, 63)
- OVERLAY_TABLE(MODULE_64, 64)
- OVERLAY_TABLE(MODULE_65, 65)
- OVERLAY_TABLE(MODULE_66, 66)
- OVERLAY_TABLE(MODULE_67, 67)
- OVERLAY_TABLE(MODULE_68, 68)
- OVERLAY_TABLE(MODULE_69, 69)
- OVERLAY_TABLE(MODULE_70, 70)
- OVERLAY_TABLE(MODULE_71, 71)
- OVERLAY_TABLE(MODULE_72, 72)
- OVERLAY_TABLE(MODULE_73, 73)
- OVERLAY_TABLE(MODULE_74, 74)
- OVERLAY_TABLE(MODULE_75, 75)
- 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 0;
+ WRITEW ADDR(.MODULE_00);
+ WRITEW SDK_OVERLAY.MODULE_00.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_00.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_00.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_00.SINIT_END;
+ WRITEW 0;
+ WRITEW 0;
+
+ WRITEW 1;
+ WRITEW ADDR(.MODULE_01);
+ WRITEW SDK_OVERLAY.MODULE_01.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_01.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_01.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_01.SINIT_END;
+ WRITEW 1;
+ WRITEW 0;
+
+ WRITEW 2;
+ WRITEW ADDR(.MODULE_02);
+ WRITEW SDK_OVERLAY.MODULE_02.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_02.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_02.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_02.SINIT_END;
+ WRITEW 2;
+ WRITEW 0;
+
+ WRITEW 3;
+ WRITEW ADDR(.MODULE_03);
+ WRITEW SDK_OVERLAY.MODULE_03.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_03.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_03.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_03.SINIT_END;
+ WRITEW 3;
+ WRITEW 0;
+
+ WRITEW 4;
+ WRITEW ADDR(.MODULE_04);
+ WRITEW SDK_OVERLAY.MODULE_04.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_04.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_04.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_04.SINIT_END;
+ WRITEW 4;
+ WRITEW 0;
+
+ WRITEW 5;
+ WRITEW ADDR(.MODULE_05);
+ WRITEW SDK_OVERLAY.MODULE_05.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_05.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_05.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_05.SINIT_END;
+ WRITEW 5;
+ WRITEW 0;
+
+ WRITEW 6;
+ WRITEW ADDR(.MODULE_06);
+ WRITEW SDK_OVERLAY.MODULE_06.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_06.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_06.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_06.SINIT_END;
+ WRITEW 6;
+ WRITEW 0;
+
+ WRITEW 7;
+ WRITEW ADDR(.MODULE_07);
+ WRITEW SDK_OVERLAY.MODULE_07.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_07.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_07.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_07.SINIT_END;
+ WRITEW 7;
+ WRITEW 0;
+
+ WRITEW 8;
+ WRITEW ADDR(.MODULE_08);
+ WRITEW SDK_OVERLAY.MODULE_08.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_08.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_08.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_08.SINIT_END;
+ WRITEW 8;
+ WRITEW 0;
+
+ WRITEW 9;
+ WRITEW ADDR(.MODULE_09);
+ WRITEW SDK_OVERLAY.MODULE_09.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_09.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_09.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_09.SINIT_END;
+ WRITEW 9;
+ WRITEW 0;
+
+ WRITEW 10;
+ WRITEW ADDR(.MODULE_10);
+ WRITEW SDK_OVERLAY.MODULE_10.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_10.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_10.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_10.SINIT_END;
+ WRITEW 10;
+ WRITEW 0;
+
+ WRITEW 11;
+ WRITEW ADDR(.MODULE_11);
+ WRITEW SDK_OVERLAY.MODULE_11.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_11.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_11.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_11.SINIT_END;
+ WRITEW 11;
+ WRITEW 0;
+
+ WRITEW 12;
+ WRITEW ADDR(.MODULE_12);
+ WRITEW SDK_OVERLAY.MODULE_12.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_12.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_12.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_12.SINIT_END;
+ WRITEW 12;
+ WRITEW 0;
+
+ WRITEW 13;
+ WRITEW ADDR(.MODULE_13);
+ WRITEW SDK_OVERLAY.MODULE_13.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_13.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_13.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_13.SINIT_END;
+ WRITEW 13;
+ WRITEW 0;
+
+ WRITEW 14;
+ WRITEW ADDR(.MODULE_14);
+ WRITEW SDK_OVERLAY.MODULE_14.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_14.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_14.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_14.SINIT_END;
+ WRITEW 14;
+ WRITEW 0;
+
+ WRITEW 15;
+ WRITEW ADDR(.MODULE_15);
+ WRITEW SDK_OVERLAY.MODULE_15.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_15.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_15.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_15.SINIT_END;
+ WRITEW 15;
+ WRITEW 0;
+
+ WRITEW 16;
+ WRITEW ADDR(.MODULE_16);
+ WRITEW SDK_OVERLAY.MODULE_16.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_16.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_16.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_16.SINIT_END;
+ WRITEW 16;
+ WRITEW 0;
+
+ WRITEW 17;
+ WRITEW ADDR(.MODULE_17);
+ WRITEW SDK_OVERLAY.MODULE_17.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_17.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_17.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_17.SINIT_END;
+ WRITEW 17;
+ WRITEW 0;
+
+ WRITEW 18;
+ WRITEW ADDR(.MODULE_18);
+ WRITEW SDK_OVERLAY.MODULE_18.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_18.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_18.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_18.SINIT_END;
+ WRITEW 18;
+ WRITEW 0;
+
+ WRITEW 19;
+ WRITEW ADDR(.MODULE_19);
+ WRITEW SDK_OVERLAY.MODULE_19.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_19.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_19.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_19.SINIT_END;
+ WRITEW 19;
+ WRITEW 0;
+
+ WRITEW 20;
+ WRITEW ADDR(.MODULE_20);
+ WRITEW SDK_OVERLAY.MODULE_20.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_20.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_20.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_20.SINIT_END;
+ WRITEW 20;
+ WRITEW 0;
+
+ WRITEW 21;
+ WRITEW ADDR(.MODULE_21);
+ WRITEW SDK_OVERLAY.MODULE_21.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_21.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_21.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_21.SINIT_END;
+ WRITEW 21;
+ WRITEW 0;
+
+ WRITEW 22;
+ WRITEW ADDR(.MODULE_22);
+ WRITEW SDK_OVERLAY.MODULE_22.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_22.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_22.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_22.SINIT_END;
+ WRITEW 22;
+ WRITEW 0;
+
+ WRITEW 23;
+ WRITEW ADDR(.MODULE_23);
+ WRITEW SDK_OVERLAY.MODULE_23.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_23.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_23.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_23.SINIT_END;
+ WRITEW 23;
+ WRITEW 0;
+
+ WRITEW 24;
+ WRITEW ADDR(.MODULE_24);
+ WRITEW SDK_OVERLAY.MODULE_24.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_24.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_24.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_24.SINIT_END;
+ WRITEW 24;
+ WRITEW 0;
+
+ WRITEW 25;
+ WRITEW ADDR(.MODULE_25);
+ WRITEW SDK_OVERLAY.MODULE_25.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_25.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_25.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_25.SINIT_END;
+ WRITEW 25;
+ WRITEW 0;
+
+ WRITEW 26;
+ WRITEW ADDR(.MODULE_26);
+ WRITEW SDK_OVERLAY.MODULE_26.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_26.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_26.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_26.SINIT_END;
+ WRITEW 26;
+ WRITEW 0;
+
+ WRITEW 27;
+ WRITEW ADDR(.MODULE_27);
+ WRITEW SDK_OVERLAY.MODULE_27.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_27.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_27.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_27.SINIT_END;
+ WRITEW 27;
+ WRITEW 0;
+
+ WRITEW 28;
+ WRITEW ADDR(.MODULE_28);
+ WRITEW SDK_OVERLAY.MODULE_28.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_28.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_28.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_28.SINIT_END;
+ WRITEW 28;
+ WRITEW 0;
+
+ WRITEW 29;
+ WRITEW ADDR(.MODULE_29);
+ WRITEW SDK_OVERLAY.MODULE_29.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_29.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_29.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_29.SINIT_END;
+ WRITEW 29;
+ WRITEW 0;
+
+ WRITEW 30;
+ WRITEW ADDR(.MODULE_30);
+ WRITEW SDK_OVERLAY.MODULE_30.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_30.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_30.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_30.SINIT_END;
+ WRITEW 30;
+ WRITEW 0;
+
+ WRITEW 31;
+ WRITEW ADDR(.MODULE_31);
+ WRITEW SDK_OVERLAY.MODULE_31.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_31.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_31.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_31.SINIT_END;
+ WRITEW 31;
+ WRITEW 0;
+
+ WRITEW 32;
+ WRITEW ADDR(.MODULE_32);
+ WRITEW SDK_OVERLAY.MODULE_32.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_32.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_32.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_32.SINIT_END;
+ WRITEW 32;
+ WRITEW 0;
+
+ WRITEW 33;
+ WRITEW ADDR(.MODULE_33);
+ WRITEW SDK_OVERLAY.MODULE_33.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_33.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_33.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_33.SINIT_END;
+ WRITEW 33;
+ WRITEW 0;
+
+ WRITEW 34;
+ WRITEW ADDR(.MODULE_34);
+ WRITEW SDK_OVERLAY.MODULE_34.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_34.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_34.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_34.SINIT_END;
+ WRITEW 34;
+ WRITEW 0;
+
+ WRITEW 35;
+ WRITEW ADDR(.MODULE_35);
+ WRITEW SDK_OVERLAY.MODULE_35.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_35.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_35.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_35.SINIT_END;
+ WRITEW 35;
+ WRITEW 0;
+
+ WRITEW 36;
+ WRITEW ADDR(.MODULE_36);
+ WRITEW SDK_OVERLAY.MODULE_36.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_36.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_36.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_36.SINIT_END;
+ WRITEW 36;
+ WRITEW 0;
+
+ WRITEW 37;
+ WRITEW ADDR(.MODULE_37);
+ WRITEW SDK_OVERLAY.MODULE_37.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_37.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_37.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_37.SINIT_END;
+ WRITEW 37;
+ WRITEW 0;
+
+ WRITEW 38;
+ WRITEW ADDR(.MODULE_38);
+ WRITEW SDK_OVERLAY.MODULE_38.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_38.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_38.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_38.SINIT_END;
+ WRITEW 38;
+ WRITEW 0;
+
+ WRITEW 39;
+ WRITEW ADDR(.MODULE_39);
+ WRITEW SDK_OVERLAY.MODULE_39.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_39.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_39.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_39.SINIT_END;
+ WRITEW 39;
+ WRITEW 0;
+
+ WRITEW 40;
+ WRITEW ADDR(.MODULE_40);
+ WRITEW SDK_OVERLAY.MODULE_40.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_40.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_40.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_40.SINIT_END;
+ WRITEW 40;
+ WRITEW 0;
+
+ WRITEW 41;
+ WRITEW ADDR(.MODULE_41);
+ WRITEW SDK_OVERLAY.MODULE_41.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_41.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_41.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_41.SINIT_END;
+ WRITEW 41;
+ WRITEW 0;
+
+ WRITEW 42;
+ WRITEW ADDR(.MODULE_42);
+ WRITEW SDK_OVERLAY.MODULE_42.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_42.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_42.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_42.SINIT_END;
+ WRITEW 42;
+ WRITEW 0;
+
+ WRITEW 43;
+ WRITEW ADDR(.MODULE_43);
+ WRITEW SDK_OVERLAY.MODULE_43.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_43.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_43.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_43.SINIT_END;
+ WRITEW 43;
+ WRITEW 0;
+
+ WRITEW 44;
+ WRITEW ADDR(.MODULE_44);
+ WRITEW SDK_OVERLAY.MODULE_44.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_44.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_44.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_44.SINIT_END;
+ WRITEW 44;
+ WRITEW 0;
+
+ WRITEW 45;
+ WRITEW ADDR(.MODULE_45);
+ WRITEW SDK_OVERLAY.MODULE_45.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_45.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_45.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_45.SINIT_END;
+ WRITEW 45;
+ WRITEW 0;
+
+ WRITEW 46;
+ WRITEW ADDR(.MODULE_46);
+ WRITEW SDK_OVERLAY.MODULE_46.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_46.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_46.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_46.SINIT_END;
+ WRITEW 46;
+ WRITEW 0;
+
+ WRITEW 47;
+ WRITEW ADDR(.MODULE_47);
+ WRITEW SDK_OVERLAY.MODULE_47.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_47.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_47.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_47.SINIT_END;
+ WRITEW 47;
+ WRITEW 0;
+
+ WRITEW 48;
+ WRITEW ADDR(.MODULE_48);
+ WRITEW SDK_OVERLAY.MODULE_48.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_48.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_48.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_48.SINIT_END;
+ WRITEW 48;
+ WRITEW 0;
+
+ WRITEW 49;
+ WRITEW ADDR(.MODULE_49);
+ WRITEW SDK_OVERLAY.MODULE_49.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_49.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_49.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_49.SINIT_END;
+ WRITEW 49;
+ WRITEW 0;
+
+ WRITEW 50;
+ WRITEW ADDR(.MODULE_50);
+ WRITEW SDK_OVERLAY.MODULE_50.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_50.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_50.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_50.SINIT_END;
+ WRITEW 50;
+ WRITEW 0;
+
+ WRITEW 51;
+ WRITEW ADDR(.MODULE_51);
+ WRITEW SDK_OVERLAY.MODULE_51.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_51.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_51.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_51.SINIT_END;
+ WRITEW 51;
+ WRITEW 0;
+
+ WRITEW 52;
+ WRITEW ADDR(.MODULE_52);
+ WRITEW SDK_OVERLAY.MODULE_52.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_52.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_52.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_52.SINIT_END;
+ WRITEW 52;
+ WRITEW 0;
+
+ WRITEW 53;
+ WRITEW ADDR(.MODULE_53);
+ WRITEW SDK_OVERLAY.MODULE_53.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_53.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_53.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_53.SINIT_END;
+ WRITEW 53;
+ WRITEW 0;
+
+ WRITEW 54;
+ WRITEW ADDR(.MODULE_54);
+ WRITEW SDK_OVERLAY.MODULE_54.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_54.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_54.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_54.SINIT_END;
+ WRITEW 54;
+ WRITEW 0;
+
+ WRITEW 55;
+ WRITEW ADDR(.MODULE_55);
+ WRITEW SDK_OVERLAY.MODULE_55.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_55.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_55.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_55.SINIT_END;
+ WRITEW 55;
+ WRITEW 0;
+
+ WRITEW 56;
+ WRITEW ADDR(.MODULE_56);
+ WRITEW SDK_OVERLAY.MODULE_56.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_56.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_56.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_56.SINIT_END;
+ WRITEW 56;
+ WRITEW 0;
+
+ WRITEW 57;
+ WRITEW ADDR(.MODULE_57);
+ WRITEW SDK_OVERLAY.MODULE_57.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_57.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_57.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_57.SINIT_END;
+ WRITEW 57;
+ WRITEW 0;
+
+ WRITEW 58;
+ WRITEW ADDR(.MODULE_58);
+ WRITEW SDK_OVERLAY.MODULE_58.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_58.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_58.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_58.SINIT_END;
+ WRITEW 58;
+ WRITEW 0;
+
+ WRITEW 59;
+ WRITEW ADDR(.MODULE_59);
+ WRITEW SDK_OVERLAY.MODULE_59.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_59.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_59.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_59.SINIT_END;
+ WRITEW 59;
+ WRITEW 0;
+
+ WRITEW 60;
+ WRITEW ADDR(.MODULE_60);
+ WRITEW SDK_OVERLAY.MODULE_60.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_60.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_60.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_60.SINIT_END;
+ WRITEW 60;
+ WRITEW 0;
+
+ WRITEW 61;
+ WRITEW ADDR(.MODULE_61);
+ WRITEW SDK_OVERLAY.MODULE_61.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_61.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_61.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_61.SINIT_END;
+ WRITEW 61;
+ WRITEW 0;
+
+ WRITEW 62;
+ WRITEW ADDR(.MODULE_62);
+ WRITEW SDK_OVERLAY.MODULE_62.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_62.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_62.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_62.SINIT_END;
+ WRITEW 62;
+ WRITEW 0;
+
+ WRITEW 63;
+ WRITEW ADDR(.MODULE_63);
+ WRITEW SDK_OVERLAY.MODULE_63.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_63.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_63.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_63.SINIT_END;
+ WRITEW 63;
+ WRITEW 0;
+
+ WRITEW 64;
+ WRITEW ADDR(.MODULE_64);
+ WRITEW SDK_OVERLAY.MODULE_64.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_64.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_64.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_64.SINIT_END;
+ WRITEW 64;
+ WRITEW 0;
+
+ WRITEW 65;
+ WRITEW ADDR(.MODULE_65);
+ WRITEW SDK_OVERLAY.MODULE_65.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_65.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_65.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_65.SINIT_END;
+ WRITEW 65;
+ WRITEW 0;
+
+ WRITEW 66;
+ WRITEW ADDR(.MODULE_66);
+ WRITEW SDK_OVERLAY.MODULE_66.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_66.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_66.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_66.SINIT_END;
+ WRITEW 66;
+ WRITEW 0;
+
+ WRITEW 67;
+ WRITEW ADDR(.MODULE_67);
+ WRITEW SDK_OVERLAY.MODULE_67.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_67.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_67.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_67.SINIT_END;
+ WRITEW 67;
+ WRITEW 0;
+
+ WRITEW 68;
+ WRITEW ADDR(.MODULE_68);
+ WRITEW SDK_OVERLAY.MODULE_68.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_68.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_68.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_68.SINIT_END;
+ WRITEW 68;
+ WRITEW 0;
+
+ WRITEW 69;
+ WRITEW ADDR(.MODULE_69);
+ WRITEW SDK_OVERLAY.MODULE_69.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_69.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_69.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_69.SINIT_END;
+ WRITEW 69;
+ WRITEW 0;
+
+ WRITEW 70;
+ WRITEW ADDR(.MODULE_70);
+ WRITEW SDK_OVERLAY.MODULE_70.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_70.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_70.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_70.SINIT_END;
+ WRITEW 70;
+ WRITEW 0;
+
+ WRITEW 71;
+ WRITEW ADDR(.MODULE_71);
+ WRITEW SDK_OVERLAY.MODULE_71.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_71.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_71.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_71.SINIT_END;
+ WRITEW 71;
+ WRITEW 0;
+
+ WRITEW 72;
+ WRITEW ADDR(.MODULE_72);
+ WRITEW SDK_OVERLAY.MODULE_72.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_72.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_72.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_72.SINIT_END;
+ WRITEW 72;
+ WRITEW 0;
+
+ WRITEW 73;
+ WRITEW ADDR(.MODULE_73);
+ WRITEW SDK_OVERLAY.MODULE_73.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_73.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_73.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_73.SINIT_END;
+ WRITEW 73;
+ WRITEW 0;
+
+ WRITEW 74;
+ WRITEW ADDR(.MODULE_74);
+ WRITEW SDK_OVERLAY.MODULE_74.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_74.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_74.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_74.SINIT_END;
+ WRITEW 74;
+ WRITEW 0;
+
+ WRITEW 75;
+ WRITEW ADDR(.MODULE_75);
+ WRITEW SDK_OVERLAY.MODULE_75.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_75.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_75.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_75.SINIT_END;
+ WRITEW 75;
+ WRITEW 0;
+
+ 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;
+ SDK_IRQ_STACKSIZE = 1024;
+ SDK_SYS_STACKSIZE = 0;
+
.binary.MODULE_FILES:
{
WRITES ("arm9.sbin");
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/libcp.s b/arm9/asm/CP_context.s
index c756e8e2..c756e8e2 100644
--- a/arm9/asm/libcp.s
+++ b/arm9/asm/CP_context.s
diff --git a/arm9/asm/DGT_hash1.s b/arm9/asm/DGT_hash1.s
new file mode 100644
index 00000000..a9d6778d
--- /dev/null
+++ b/arm9/asm/DGT_hash1.s
@@ -0,0 +1,404 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start ProcessBlock
+ProcessBlock: ; 0x020D2798
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x4
+ add r3, r0, #0x18
+ ldr r5, [r0, #0x0]
+ ldr r4, [r0, #0x4]
+ ldr lr, [r0, #0x8]
+ ldr r12, [r0, #0xc]
+ ldr r2, _020D2B78 ; =0x02106900
+ mov r8, r3
+ mov r7, #0x0
+_020D27C0:
+ mvn r1, r4
+ and r6, r4, lr
+ and r1, r1, r12
+ orr r1, r6, r1
+ ldr r6, [r8, #0x0]
+ add r1, r5, r1
+ ldr r5, [r2, #0x0]
+ add r1, r6, r1
+ add r5, r5, r1
+ mov r1, r5, lsl #0x7
+ orr r1, r1, r5, lsr #0x19
+ add r5, r4, r1
+ mvn r1, r5
+ and r6, r5, r4
+ and r1, r1, lr
+ orr r1, r6, r1
+ ldr r6, [r8, #0x4]
+ add r1, r12, r1
+ ldr r9, [r2, #0x4]
+ add r1, r6, r1
+ add r6, r9, r1
+ mov r1, r6, lsl #0xc
+ orr r1, r1, r6, lsr #0x14
+ add r12, r5, r1
+ mvn r1, r12
+ and r6, r12, r5
+ and r1, r1, r4
+ orr r6, r6, r1
+ add r1, r8, #0xc
+ ldr r9, [r8, #0x8]
+ add r6, lr, r6
+ add r6, r9, r6
+ ldr r9, [r2, #0x8]
+ ldr r1, [r1, #0x0]
+ add r10, r9, r6
+ add r6, r2, #0xc
+ ldr r6, [r6, #0x0]
+ mov r9, r10, lsl #0x11
+ orr r9, r9, r10, lsr #0xf
+ add lr, r12, r9
+ add r2, r2, #0x10
+ add r8, r8, #0x10
+ and r10, lr, r12
+ mvn r9, lr
+ and r9, r9, r5
+ orr r9, r10, r9
+ add r4, r4, r9
+ add r1, r1, r4
+ add r4, r6, r1
+ mov r1, r4, lsl #0x16
+ orr r1, r1, r4, lsr #0xa
+ add r4, lr, r1
+ add r7, r7, #0x1
+ cmp r7, #0x4
+ blt _020D27C0
+ ldr r6, _020D2B7C ; =0x02106840
+ mov r1, #0x0
+_020D28A4:
+ mvn r7, r12
+ ldr r9, [r6, #0x0]
+ and r8, r4, r12
+ and r7, lr, r7
+ orr r7, r8, r7
+ ldr r8, [r3, r9, lsl #0x2]
+ add r5, r5, r7
+ ldr r7, [r2, #0x0]
+ add r5, r8, r5
+ add r7, r7, r5
+ mov r5, r7, lsl #0x5
+ orr r5, r5, r7, lsr #0x1b
+ add r5, r4, r5
+ mvn r8, lr
+ ldr r7, [r6, #0x4]
+ and r9, r5, lr
+ and r8, r4, r8
+ orr r10, r9, r8
+ mvn r8, r4
+ ldr r9, [r6, #0x8]
+ ldr r11, [r3, r7, lsl #0x2]
+ add r7, r12, r10
+ add r10, r11, r7
+ add r7, r6, #0xc
+ ldr r9, [r3, r9, lsl #0x2]
+ and r8, r5, r8
+ ldr r7, [r7, #0x0]
+ ldr r11, [r2, #0x4]
+ ldr r7, [r3, r7, lsl #0x2]
+ add r11, r11, r10
+ mov r10, r11, lsl #0x9
+ orr r10, r10, r11, lsr #0x17
+ add r12, r5, r10
+ ldr r10, [r2, #0x8]
+ and r11, r12, r4
+ orr r8, r11, r8
+ add r8, lr, r8
+ add r8, r9, r8
+ add r10, r10, r8
+ add r8, r2, #0xc
+ ldr r8, [r8, #0x0]
+ mov r9, r10, lsl #0xe
+ orr r9, r9, r10, lsr #0x12
+ add lr, r12, r9
+ add r2, r2, #0x10
+ add r6, r6, #0x10
+ and r10, lr, r5
+ mvn r9, r5
+ and r9, r12, r9
+ orr r9, r10, r9
+ add r4, r4, r9
+ add r4, r7, r4
+ add r7, r8, r4
+ mov r4, r7, lsl #0x14
+ orr r4, r4, r7, lsr #0xc
+ add r4, lr, r4
+ add r1, r1, #0x1
+ cmp r1, #0x4
+ blt _020D28A4
+ mov r7, #0x0
+_020D2994:
+ ldr r8, [r6, #0x0]
+ eor r1, r4, lr
+ eor r1, r12, r1
+ add r1, r5, r1
+ ldr r8, [r3, r8, lsl #0x2]
+ ldr r5, [r2, #0x0]
+ add r1, r8, r1
+ add r5, r5, r1
+ mov r1, r5, lsl #0x4
+ orr r1, r1, r5, lsr #0x1c
+ add r5, r4, r1
+ ldr r8, [r6, #0x4]
+ eor r1, r5, r4
+ eor r1, lr, r1
+ ldr r8, [r3, r8, lsl #0x2]
+ add r1, r12, r1
+ ldr r9, [r6, #0x8]
+ ldr r10, [r2, #0x4]
+ add r1, r8, r1
+ add r8, r10, r1
+ mov r1, r8, lsl #0xb
+ orr r1, r1, r8, lsr #0x15
+ add r12, r5, r1
+ eor r8, r12, r5
+ eor r8, r4, r8
+ ldr r9, [r3, r9, lsl #0x2]
+ add r8, lr, r8
+ add r9, r9, r8
+ ldr r10, [r2, #0x8]
+ add r1, r2, #0xc
+ ldr r8, [r6, #0xc]
+ add r10, r10, r9
+ ldr r9, [r3, r8, lsl #0x2]
+ mov r8, r10, lsl #0x10
+ orr r8, r8, r10, lsr #0x10
+ add lr, r12, r8
+ eor r8, lr, r12
+ eor r8, r5, r8
+ add r4, r4, r8
+ add r7, r7, #0x1
+ ldr r1, [r1, #0x0]
+ add r4, r9, r4
+ add r4, r1, r4
+ mov r1, r4, lsl #0x17
+ orr r1, r1, r4, lsr #0x9
+ add r2, r2, #0x10
+ add r6, r6, #0x10
+ add r4, lr, r1
+ cmp r7, #0x4
+ blt _020D2994
+ mov r10, #0x0
+_020D2A60:
+ mvn r1, r12
+ ldr r7, [r6, #0x0]
+ orr r1, r4, r1
+ eor r1, lr, r1
+ ldr r7, [r3, r7, lsl #0x2]
+ add r1, r5, r1
+ ldr r5, [r2, #0x0]
+ add r1, r7, r1
+ add r5, r5, r1
+ mov r1, r5, lsl #0x6
+ orr r1, r1, r5, lsr #0x1a
+ add r5, r4, r1
+ mvn r1, lr
+ ldr r7, [r6, #0x4]
+ orr r1, r5, r1
+ eor r1, r4, r1
+ ldr r8, [r6, #0x8]
+ ldr r7, [r3, r7, lsl #0x2]
+ add r1, r12, r1
+ ldr r9, [r2, #0x4]
+ add r1, r7, r1
+ add r9, r9, r1
+ mov r7, r9, lsl #0xa
+ add r1, r6, #0xc
+ orr r9, r7, r9, lsr #0x16
+ ldr r1, [r1, #0x0]
+ add r7, r2, #0xc
+ add r12, r5, r9
+ ldr r8, [r3, r8, lsl #0x2]
+ ldr r7, [r7, #0x0]
+ ldr r1, [r3, r1, lsl #0x2]
+ ldr r9, [r2, #0x8]
+ mvn r11, r4
+ orr r11, r12, r11
+ eor r11, r5, r11
+ add r11, lr, r11
+ add r8, r8, r11
+ add r9, r9, r8
+ mov r8, r9, lsl #0xf
+ orr r8, r8, r9, lsr #0x11
+ add lr, r12, r8
+ add r2, r2, #0x10
+ add r6, r6, #0x10
+ mvn r8, r5
+ orr r8, lr, r8
+ eor r8, r12, r8
+ add r4, r4, r8
+ add r1, r1, r4
+ add r4, r7, r1
+ mov r1, r4, lsl #0x15
+ orr r1, r1, r4, lsr #0xb
+ add r4, lr, r1
+ add r10, r10, #0x1
+ cmp r10, #0x4
+ blt _020D2A60
+ ldr r1, [r0, #0x0]
+ add r1, r1, r5
+ str r1, [r0, #0x0]
+ ldr r1, [r0, #0x4]
+ add r1, r1, r4
+ str r1, [r0, #0x4]
+ ldr r1, [r0, #0x8]
+ add r1, r1, lr
+ str r1, [r0, #0x8]
+ ldr r1, [r0, #0xc]
+ add r1, r1, r12
+ str r1, [r0, #0xc]
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+ .balign 4
+_020D2B78: .word Unk_02106900 ; = 0x02106900
+_020D2B7C: .word Unk_02106840 ; = 0x02106840
+
+ arm_func_start DGT_Hash1GetDigest_R
+DGT_Hash1GetDigest_R: ; 0x020D2B80
+ stmdb sp!, {r4-r7,lr}
+ sub sp, sp, #0x4
+ mov r6, r1
+ ldr r1, [r6, #0x14]
+ ldr r3, [r6, #0x10]
+ mov r7, r0
+ mov r4, r1, lsl #0x3
+ ldr r1, _020D2C40 ; =0x0210683C
+ mov r0, r6
+ mov r2, #0x1
+ orr r4, r4, r3, lsr #0x1d
+ mov r5, r3, lsl #0x3
+ bl DGT_Hash1SetSource
+ ldr r0, [r6, #0x10]
+ mov r1, #0x0
+ and r3, r0, #0x3f
+ rsb r2, r3, #0x40
+ cmp r2, #0x8
+ bhs _020D2BE8
+ add r0, r6, #0x18
+ add r0, r0, r3
+ bl MI_CpuFill8
+ mov r0, r6
+ bl ProcessBlock
+ mov r3, #0x0
+ mov r2, #0x40
+_020D2BE8:
+ cmp r2, #0x8
+ bls _020D2C04
+ add r0, r6, #0x18
+ add r0, r0, r3
+ sub r2, r2, #0x8
+ mov r1, #0x0
+ bl MI_CpuFill8
+_020D2C04:
+ str r5, [r6, #0x50]
+ mov r0, r6
+ str r4, [r6, #0x54]
+ bl ProcessBlock
+ mov r0, r6
+ mov r1, r7
+ mov r2, #0x10
+ bl MI_CpuCopy8
+ mov r0, r6
+ mov r1, #0x0
+ mov r2, #0x58
+ bl MI_CpuFill8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r7,lr}
+ bx lr
+ .balign 4
+_020D2C40: .word Unk_0210683C ; = 0x0210683C
+
+ arm_func_start DGT_Hash1SetSource
+DGT_Hash1SetSource: ; 0x020D2C44
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0x4
+ mov r8, r0
+ add r12, r8, #0x10
+ ldr r4, [r8, #0x10]
+ mov r6, r2
+ and r3, r4, #0x3f
+ ldr r0, [r12, #0x4]
+ adds r4, r4, r6
+ str r4, [r8, #0x10]
+ adc r0, r0, #0x0
+ rsb r5, r3, #0x40
+ mov r7, r1
+ str r0, [r12, #0x4]
+ cmp r5, r6
+ bls _020D2CB0
+ cmp r6, #0x0
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ add r1, r8, #0x18
+ mov r0, r7
+ add r1, r1, r3
+ bl MI_CpuCopy8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+_020D2CB0:
+ add r1, r8, #0x18
+ mov r0, r7
+ mov r2, r5
+ add r1, r1, r3
+ bl MI_CpuCopy8
+ mov r0, r8
+ bl ProcessBlock
+ sub r6, r6, r5
+ mov r4, r6, lsr #0x6
+ cmp r4, #0x0
+ add r9, r7, r5
+ ble _020D2D10
+ add r7, r8, #0x18
+ mov r5, #0x40
+_020D2CE8:
+ mov r0, r9
+ mov r1, r7
+ mov r2, r5
+ bl MI_CpuCopy8
+ mov r0, r8
+ add r9, r9, #0x40
+ bl ProcessBlock
+ sub r4, r4, #0x1
+ cmp r4, #0x0
+ bgt _020D2CE8
+_020D2D10:
+ ands r2, r6, #0x3f
+ addeq sp, sp, #0x4
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ mov r0, r9
+ add r1, r8, #0x18
+ bl MI_CpuCopy8
+ add sp, sp, #0x4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+
+ arm_func_start DGT_Hash1Reset
+DGT_Hash1Reset: ; 0x020D2D38
+ ldr r2, _020D2D68 ; =0x67452301
+ ldr r1, _020D2D6C ; =0xEFCDAB89
+ str r2, [r0, #0x0]
+ ldr r2, _020D2D70 ; =0x98BADCFE
+ str r1, [r0, #0x4]
+ ldr r1, _020D2D74 ; =0x10325476
+ str r2, [r0, #0x8]
+ str r1, [r0, #0xc]
+ mov r1, #0x0
+ str r1, [r0, #0x10]
+ str r1, [r0, #0x14]
+ bx lr
+ .balign 4
+_020D2D68: .word 0x67452301
+_020D2D6C: .word 0xEFCDAB89
+_020D2D70: .word 0x98BADCFE
+_020D2D74: .word 0x10325476
diff --git a/arm9/asm/DGT_hash2.s b/arm9/asm/DGT_hash2.s
new file mode 100644
index 00000000..614d700d
--- /dev/null
+++ b/arm9/asm/DGT_hash2.s
@@ -0,0 +1,443 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start DGT_Hash2CalcHmac
+DGT_Hash2CalcHmac: ; 0x020D2D78
+ stmdb sp!, {r4-r8,lr}
+ sub sp, sp, #0xa0
+ ldr lr, _020D2E00 ; =0x02106A04
+ add r12, sp, #0x1c
+ mov r8, r0
+ mov r7, r1
+ mov r6, r2
+ mov r5, r3
+ mov r4, r12
+ ldmia lr!, {r0-r3}
+ stmia r12!, {r0-r3}
+ ldmia lr, {r0-r2}
+ stmia r12, {r0-r2}
+ add lr, sp, #0x38
+ add r12, sp, #0x8
+ str lr, [sp, #0x24]
+ ldr lr, _020D2E04 ; =DGT_Hash2Reset
+ str r12, [sp, #0x28]
+ ldr ip, _020D2E08 ; =DGT_Hash2SetSource
+ str lr, [sp, #0x2c]
+ ldr lr, _020D2E0C ; =DGT_Hash2GetDigest
+ str r12, [sp, #0x30]
+ ldr r12, [sp, #0xb8]
+ str lr, [sp, #0x34]
+ str r12, [sp, #0x0]
+ mov r3, r5
+ mov r0, r8
+ mov r1, r7
+ mov r2, r6
+ str r4, [sp, #0x4]
+ bl DGTi_Hash2CalcHmac
+ add sp, sp, #0xa0
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020D2E00: .word Unk_02106A04 ; = 0x02106A04
+_020D2E04: .word DGT_Hash2Reset
+_020D2E08: .word DGT_Hash2SetSource
+_020D2E0C: .word DGT_Hash2GetDigest
+
+ arm_func_start DGT_Hash2GetDigest
+DGT_Hash2GetDigest: ; 0x020D2E10
+ stmdb sp!, {r0-r3}
+ stmdb sp!, {r4-r6,lr}
+ ldr r0, [sp, #0x10]
+ mov r6, r1
+ ldr r3, [r0, #0x1c]
+ add r5, r0, #0x20
+ ands r1, r3, #0x3
+ mov r0, r3, asr #0x2
+ moveq r1, #0x0
+ streq r1, [r5, r0, lsl #0x2]
+ ldr r2, [sp, #0x10]
+ mov r1, #0x80
+ add r4, r2, #0x20
+ strb r1, [r4, r3]
+ add r3, r3, #0x1
+ ands r1, r3, #0x3
+ beq _020D2E68
+ mov r2, #0x0
+_020D2E58:
+ strb r2, [r4, r3]
+ add r3, r3, #0x1
+ ands r1, r3, #0x3
+ bne _020D2E58
+_020D2E68:
+ ldr r1, [sp, #0x10]
+ add r0, r0, #0x1
+ ldr r1, [r1, #0x1c]
+ cmp r1, #0x38
+ blt _020D2EB4
+ cmp r0, #0x10
+ bge _020D2E98
+ mov r1, #0x0
+_020D2E88:
+ str r1, [r5, r0, lsl #0x2]
+ add r0, r0, #0x1
+ cmp r0, #0x10
+ blt _020D2E88
+_020D2E98:
+ ldr r1, _020D3008 ; =0x02106A00
+ ldr r0, [sp, #0x10]
+ ldr r3, [r1, #0x0]
+ mov r1, r5
+ mov r2, #0x40
+ blx r3
+ mov r0, #0x0
+_020D2EB4:
+ cmp r0, #0xe
+ bge _020D2ED0
+ mov r1, #0x0
+_020D2EC0:
+ str r1, [r5, r0, lsl #0x2]
+ add r0, r0, #0x1
+ cmp r0, #0xe
+ blt _020D2EC0
+_020D2ED0:
+ ldr r0, [sp, #0x10]
+ mov r1, r5
+ ldr r2, [r0, #0x14]
+ ldr r3, _020D3008 ; =0x02106A00
+ strb r2, [r4, #0x3f]
+ mov r0, r2, lsr #0x8
+ strb r0, [r4, #0x3e]
+ mov r0, r2, lsr #0x10
+ strb r0, [r4, #0x3d]
+ mov r0, r2, lsr #0x18
+ strb r0, [r4, #0x3c]
+ ldr r0, [sp, #0x10]
+ mov r2, #0x40
+ ldr r5, [r0, #0x18]
+ strb r5, [r4, #0x3b]
+ mov r0, r5, lsr #0x8
+ strb r0, [r4, #0x3a]
+ mov r0, r5, lsr #0x10
+ strb r0, [r4, #0x39]
+ mov r0, r5, lsr #0x18
+ strb r0, [r4, #0x38]
+ ldr r0, [sp, #0x10]
+ ldr r3, [r3, #0x0]
+ blx r3
+ ldr r0, [sp, #0x10]
+ add r1, sp, #0x10
+ ldr r3, [r0, #0x0]
+ mov r0, #0x0
+ mov r2, r3, lsr #0x18
+ strb r2, [r6, #0x0]
+ mov r2, r3, lsr #0x10
+ strb r2, [r6, #0x1]
+ mov r2, r3, lsr #0x8
+ strb r2, [r6, #0x2]
+ strb r3, [r6, #0x3]
+ ldr r3, [sp, #0x10]
+ mov r2, #0x4
+ ldr r4, [r3, #0x4]
+ mov r3, r4, lsr #0x18
+ strb r3, [r6, #0x4]
+ mov r3, r4, lsr #0x10
+ strb r3, [r6, #0x5]
+ mov r3, r4, lsr #0x8
+ strb r3, [r6, #0x6]
+ strb r4, [r6, #0x7]
+ ldr r3, [sp, #0x10]
+ ldr r4, [r3, #0x8]
+ mov r3, r4, lsr #0x18
+ strb r3, [r6, #0x8]
+ mov r3, r4, lsr #0x10
+ strb r3, [r6, #0x9]
+ mov r3, r4, lsr #0x8
+ strb r3, [r6, #0xa]
+ strb r4, [r6, #0xb]
+ ldr r3, [sp, #0x10]
+ ldr r4, [r3, #0xc]
+ mov r3, r4, lsr #0x18
+ strb r3, [r6, #0xc]
+ mov r3, r4, lsr #0x10
+ strb r3, [r6, #0xd]
+ mov r3, r4, lsr #0x8
+ strb r3, [r6, #0xe]
+ strb r4, [r6, #0xf]
+ ldr r3, [sp, #0x10]
+ ldr r4, [r3, #0x10]
+ mov r3, r4, lsr #0x18
+ strb r3, [r6, #0x10]
+ mov r3, r4, lsr #0x10
+ strb r3, [r6, #0x11]
+ mov r3, r4, lsr #0x8
+ strb r3, [r6, #0x12]
+ strb r4, [r6, #0x13]
+ ldr r3, [sp, #0x10]
+ str r0, [r3, #0x1c]
+ bl MIi_CpuClear32
+ ldmia sp!, {r4-r6,lr}
+ add sp, sp, #0x10
+ bx lr
+ .balign 4
+_020D3008: .word Unk_02106A00 ; = 0x02106A00
+
+ arm_func_start DGT_Hash2SetSource
+DGT_Hash2SetSource: ; 0x020D300C
+ stmdb sp!, {r4-r8,lr}
+ mov r8, r0
+ movs r6, r2
+ mov r7, r1
+ add r5, r8, #0x20
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ ldr r0, [r8, #0x14]
+ add r1, r0, r6, lsl #0x3
+ cmp r1, r0
+ ldrcc r0, [r8, #0x18]
+ addcc r0, r0, #0x1
+ strcc r0, [r8, #0x18]
+ ldr r0, [r8, #0x18]
+ add r0, r0, r6, lsr #0x1d
+ str r0, [r8, #0x18]
+ str r1, [r8, #0x14]
+ ldr r1, [r8, #0x1c]
+ cmp r1, #0x0
+ beq _020D30CC
+ add r0, r1, r6
+ cmp r0, #0x40
+ blo _020D30A8
+ rsb r4, r1, #0x40
+ mov r0, r7
+ mov r2, r4
+ add r1, r5, r1
+ bl MI_CpuCopy8
+ ldr r1, _020D3164 ; =0x02106A00
+ mov r0, r8
+ ldr r3, [r1, #0x0]
+ mov r1, r5
+ mov r2, #0x40
+ sub r6, r6, r4
+ add r7, r7, r4
+ blx r3
+ mov r0, #0x0
+ str r0, [r8, #0x1c]
+ b _020D30CC
+_020D30A8:
+ mov r0, r7
+ mov r2, r6
+ add r1, r5, r1
+ bl MI_CpuCopy8
+ ldr r0, [r8, #0x1c]
+ add r0, r0, r6
+ str r0, [r8, #0x1c]
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+_020D30CC:
+ cmp r6, #0x40
+ blo _020D313C
+ bic r4, r6, #0x3f
+ sub r6, r6, r4
+ ands r0, r7, #0x3
+ bne _020D3104
+ ldr r1, _020D3164 ; =0x02106A00
+ mov r0, r8
+ ldr r3, [r1, #0x0]
+ mov r1, r7
+ mov r2, r4
+ blx r3
+ add r7, r7, r4
+ b _020D313C
+_020D3104:
+ mov r0, r7
+ mov r1, r5
+ mov r2, #0x40
+ bl MI_CpuCopy8
+ ldr r1, _020D3164 ; =0x02106A00
+ mov r0, r8
+ ldr r3, [r1, #0x0]
+ mov r1, r5
+ mov r2, #0x40
+ add r7, r7, #0x40
+ blx r3
+ sub r4, r4, #0x40
+ cmp r4, #0x0
+ bgt _020D3104
+_020D313C:
+ str r6, [r8, #0x1c]
+ cmp r6, #0x0
+ ldmeqia sp!, {r4-r8,lr}
+ bxeq lr
+ mov r0, r7
+ mov r1, r5
+ mov r2, r6
+ bl MI_CpuCopy8
+ ldmia sp!, {r4-r8,lr}
+ bx lr
+ .balign 4
+_020D3164: .word Unk_02106A00 ; = 0x02106A00
+
+ arm_func_start DGT_Hash2Reset
+DGT_Hash2Reset: ; 0x020D3168
+ ldr r1, _020D31A4 ; =0x67452301
+ ldr r2, _020D31A8 ; =0xEFCDAB89
+ str r1, [r0, #0x0]
+ ldr r1, _020D31AC ; =0x98BADCFE
+ str r2, [r0, #0x4]
+ ldr r2, _020D31B0 ; =0x10325476
+ str r1, [r0, #0x8]
+ ldr r1, _020D31B4 ; =0xC3D2E1F0
+ str r2, [r0, #0xc]
+ str r1, [r0, #0x10]
+ mov r1, #0x0
+ str r1, [r0, #0x14]
+ str r1, [r0, #0x18]
+ str r1, [r0, #0x1c]
+ bx lr
+ .balign 4
+_020D31A4: .word 0x67452301
+_020D31A8: .word 0xEFCDAB89
+_020D31AC: .word 0x98BADCFE
+_020D31B0: .word 0x10325476
+_020D31B4: .word 0xC3D2E1F0
+
+ arm_func_start DGTi_Hash2CalcHmac
+DGTi_Hash2CalcHmac: ; 0x020D31B8
+ stmdb sp!, {r4-r9,lr}
+ sub sp, sp, #0xc4
+ ldr r5, [sp, #0xe0]
+ ldr r4, [sp, #0xe4]
+ movs r9, r0
+ mov r8, r1
+ mov r7, r2
+ mov r6, r3
+ addeq sp, sp, #0xc4
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ cmp r8, #0x0
+ addeq sp, sp, #0xc4
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ cmp r7, #0x0
+ addeq sp, sp, #0xc4
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ cmp r6, #0x0
+ addeq sp, sp, #0xc4
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ cmp r5, #0x0
+ addeq sp, sp, #0xc4
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ cmp r4, #0x0
+ addeq sp, sp, #0xc4
+ ldmeqia sp!, {r4-r9,lr}
+ bxeq lr
+ ldr r0, [r4, #0x4]
+ cmp r5, r0
+ ble _020D3278
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0x10]
+ blx r1
+ ldr r0, [r4, #0x8]
+ ldr r3, [r4, #0x14]
+ mov r1, r6
+ mov r2, r5
+ blx r3
+ ldr r0, [r4, #0x8]
+ ldr r2, [r4, #0x18]
+ add r1, sp, #0x0
+ blx r2
+ ldr r5, [r4, #0x0]
+ add r6, sp, #0x0
+_020D3278:
+ cmp r5, #0x0
+ mov r0, #0x0
+ ble _020D32A0
+ add r2, sp, #0x40
+_020D3288:
+ ldrb r1, [r6, r0]
+ add r0, r0, #0x1
+ cmp r0, r5
+ eor r1, r1, #0x36
+ strb r1, [r2], #0x1
+ blt _020D3288
+_020D32A0:
+ ldr r1, [r4, #0x4]
+ cmp r0, r1
+ bge _020D32CC
+ add r1, sp, #0x40
+ add r3, r1, r0
+ mov r2, #0x36
+_020D32B8:
+ strb r2, [r3], #0x1
+ ldr r1, [r4, #0x4]
+ add r0, r0, #0x1
+ cmp r0, r1
+ blt _020D32B8
+_020D32CC:
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0x10]
+ blx r1
+ ldr r0, [r4, #0x8]
+ ldr r2, [r4, #0x4]
+ ldr r3, [r4, #0x14]
+ add r1, sp, #0x40
+ blx r3
+ ldr r0, [r4, #0x8]
+ ldr r3, [r4, #0x14]
+ mov r1, r8
+ mov r2, r7
+ blx r3
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x18]
+ blx r2
+ cmp r5, #0x0
+ mov r2, #0x0
+ ble _020D3338
+ add r1, sp, #0x80
+_020D3320:
+ ldrb r0, [r6, r2]
+ add r2, r2, #0x1
+ cmp r2, r5
+ eor r0, r0, #0x5c
+ strb r0, [r1], #0x1
+ blt _020D3320
+_020D3338:
+ ldr r0, [r4, #0x4]
+ cmp r2, r0
+ bge _020D3364
+ add r0, sp, #0x80
+ add r3, r0, r2
+ mov r1, #0x5c
+_020D3350:
+ strb r1, [r3], #0x1
+ ldr r0, [r4, #0x4]
+ add r2, r2, #0x1
+ cmp r2, r0
+ blt _020D3350
+_020D3364:
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0x10]
+ blx r1
+ ldr r0, [r4, #0x8]
+ ldr r2, [r4, #0x4]
+ ldr r3, [r4, #0x14]
+ add r1, sp, #0x80
+ blx r3
+ ldr r0, [r4, #0x8]
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x0]
+ ldr r3, [r4, #0x14]
+ blx r3
+ ldr r0, [r4, #0x8]
+ ldr r2, [r4, #0x18]
+ mov r1, r9
+ blx r2
+ add sp, sp, #0xc4
+ ldmia sp!, {r4-r9,lr}
+ bx lr
+ .balign 4
diff --git a/arm9/asm/DGT_sha1s_arm4cw.s b/arm9/asm/DGT_sha1s_arm4cw.s
new file mode 100644
index 00000000..1f110a72
--- /dev/null
+++ b/arm9/asm/DGT_sha1s_arm4cw.s
@@ -0,0 +1,179 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+_020D33B4: .word 0x00FF00FF
+_020D33B8: .word 0x5A827999
+_020D33BC: .word 0x6ED9EBA1
+_020D33C0: .word 0x8F1BBCDC
+_020D33C4: .word 0xCA62C1D6
+
+ arm_func_start DGTi_hash2_arm4_small
+DGTi_hash2_arm4_small: ; 0x020D33C8
+ stmdb sp!, {r4-r12,lr}
+ ldmia r0, {r3,r9-r12}
+ sub sp, sp, #0x84
+ str r2, [sp, #0x80]
+_020D33D8:
+ ldr r8, _020D33B8 ; =0x5A827999
+ ldr r7, _020D33B4 ; =0x00FF00FF
+ mov r6, sp
+ mov r5, #0x0
+_020D33E8:
+ ldr r4, [r1], #0x4
+ add r2, r8, r12
+ add r2, r2, r3, ror #0x1B
+ and lr, r4, r7
+ and r4, r7, r4, ror #0x18
+ orr r4, r4, lr, ror #0x8
+ str r4, [r6, #0x40]
+ str r4, [r6], #0x4
+ add r2, r2, r4
+ eor r4, r10, r11
+ and r4, r4, r9
+ eor r4, r4, r11
+ add r2, r2, r4
+ mov r9, r9, ror #0x2
+ mov r12, r11
+ mov r11, r10
+ mov r10, r9
+ mov r9, r3
+ mov r3, r2
+ add r5, r5, #0x4
+ cmp r5, #0x40
+ blt _020D33E8
+ mov r7, #0x0
+ mov r6, sp
+_020D3448:
+ ldr r2, [r6, #0x0]
+ ldr r5, [r6, #0x8]
+ ldr r4, [r6, #0x20]
+ ldr lr, [r6, #0x34]
+ eor r2, r2, r5
+ eor r4, r4, lr
+ eor r2, r2, r4
+ mov r2, r2, ror #0x1F
+ str r2, [r6, #0x40]
+ str r2, [r6], #0x4
+ add r2, r2, r12
+ add r2, r2, r8
+ add r2, r2, r3, ror #0x1B
+ eor r4, r10, r11
+ and r4, r4, r9
+ eor r4, r4, r11
+ add r2, r2, r4
+ mov r9, r9, ror #0x2
+ mov r12, r11
+ mov r11, r10
+ mov r10, r9
+ mov r9, r3
+ mov r3, r2
+ add r7, r7, #0x4
+ cmp r7, #0x10
+ blt _020D3448
+ ldr r8, _020D33BC ; =0x6ED9EBA1
+ mov r7, #0x0
+_020D34B8:
+ ldr r2, [r6, #0x0]
+ ldr r4, [r6, #0x8]
+ ldr lr, [r6, #0x20]
+ ldr r5, [r6, #0x34]
+ eor r2, r2, r4
+ eor lr, lr, r5
+ eor r2, r2, lr
+ mov r2, r2, ror #0x1F
+ str r2, [r6, #0x40]
+ str r2, [r6], #0x4
+ add r2, r2, r12
+ add r2, r2, r8
+ add r2, r2, r3, ror #0x1B
+ eor lr, r9, r10
+ eor lr, lr, r11
+ add r2, r2, lr
+ mov r9, r9, ror #0x2
+ mov r12, r11
+ mov r11, r10
+ mov r10, r9
+ mov r9, r3
+ mov r3, r2
+ add r7, r7, #0x1
+ cmp r7, #0xc
+ moveq r6, sp
+ cmp r7, #0x14
+ blt _020D34B8
+ ldr r8, _020D33C0 ; =0x8F1BBCDC
+ mov r7, #0x0
+_020D352C:
+ ldr r2, [r6, #0x0]
+ ldr lr, [r6, #0x8]
+ ldr r5, [r6, #0x20]
+ ldr r4, [r6, #0x34]
+ eor r2, r2, lr
+ eor r5, r5, r4
+ eor r2, r2, r5
+ mov r2, r2, ror #0x1F
+ str r2, [r6, #0x40]
+ str r2, [r6], #0x4
+ add r2, r2, r12
+ add r2, r2, r8
+ add r2, r2, r3, ror #0x1B
+ orr r5, r9, r10
+ and r5, r5, r11
+ and r4, r9, r10
+ orr r5, r5, r4
+ add r2, r2, r5
+ mov r9, r9, ror #0x2
+ mov r12, r11
+ mov r11, r10
+ mov r10, r9
+ mov r9, r3
+ mov r3, r2
+ add r7, r7, #0x1
+ cmp r7, #0x8
+ moveq r6, sp
+ cmp r7, #0x14
+ blt _020D352C
+ ldr r8, _020D33C4 ; =0xCA62C1D6
+ mov r7, #0x0
+_020D35A8:
+ ldr r2, [r6, #0x0]
+ ldr r5, [r6, #0x8]
+ ldr r4, [r6, #0x20]
+ ldr lr, [r6, #0x34]
+ eor r2, r2, r5
+ eor r4, r4, lr
+ eor r2, r2, r4
+ mov r2, r2, ror #0x1F
+ str r2, [r6, #0x40]
+ str r2, [r6], #0x4
+ add r2, r2, r12
+ add r2, r2, r8
+ add r2, r2, r3, ror #0x1B
+ eor r4, r9, r10
+ eor r4, r4, r11
+ add r2, r2, r4
+ mov r9, r9, ror #0x2
+ mov r12, r11
+ mov r11, r10
+ mov r10, r9
+ mov r9, r3
+ mov r3, r2
+ add r7, r7, #0x1
+ cmp r7, #0x4
+ moveq r6, sp
+ cmp r7, #0x14
+ blt _020D35A8
+ ldmia r0, {r2,r4,r6-r7,lr}
+ add r3, r3, r2
+ add r9, r9, r4
+ add r10, r10, r6
+ add r11, r11, r7
+ add r12, r12, lr
+ stmia r0, {r3,r9-r12}
+ ldr lr, [sp, #0x80]
+ subs lr, lr, #0x40
+ str lr, [sp, #0x80]
+ bgt _020D33D8
+ add sp, sp, #0x84
+ ldmia sp!, {r4-r12,pc}
diff --git a/arm9/asm/OS_interrupt_asm.s b/arm9/asm/OS_interrupt_asm.s
index ea17cf8d..7fdc1ccc 100644
--- a/arm9/asm/OS_interrupt_asm.s
+++ b/arm9/asm/OS_interrupt_asm.s
@@ -93,26 +93,3 @@ OS_SetIrqMask: ; 0x020C9E94
.balign 4
_020C9EC0: .word 0x04000208
_020C9EC4: .word 0x04000210
-
- arm_func_start OSi_EnterTimerCallback
-OSi_EnterTimerCallback: ; 0x020C9EC8
- stmdb sp!, {r4,lr}
- mov r3, #0xc
- mul r4, r0, r3
- ldr ip, _020C9F08 ; =0x021D344C
- add r0, r0, #0x3
- mov r3, #0x1
- mov r0, r3, lsl r0
- ldr r3, _020C9F0C ; =0x021D3454
- str r1, [r12, r4]
- str r2, [r3, r4]
- bl OS_EnableIrqMask
- ldr r0, _020C9F10 ; =0x021D3450
- mov r1, #0x1
- str r1, [r0, r4]
- ldmia sp!, {r4,lr}
- bx lr
- .balign 4
-_020C9F08: .word OSi_IrqCallbackInfo+0x30
-_020C9F0C: .word OSi_IrqCallbackInfo+0x38
-_020C9F10: .word OSi_IrqCallbackInfo+0x34
diff --git a/arm9/asm/OS_printf.s b/arm9/asm/OS_printf.s
deleted file mode 100644
index f5175955..00000000
--- a/arm9/asm/OS_printf.s
+++ /dev/null
@@ -1,757 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start OS_VSNPrintf
-OS_VSNPrintf: ; 0x020CA49C
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x64
- mov r9, r2
- str r1, [sp, #0x54]
- str r0, [sp, #0x5c]
- str r0, [sp, #0x58]
- ldrsb r0, [r9, #0x0]
- str r1, [sp, #0x0]
- mov r11, r3
- cmp r0, #0x0
- beq _020CAD18
- mov r0, #0xa
- str r0, [sp, #0xc]
- mov r0, #0x0
- str r0, [sp, #0x4]
- mov r0, #0x20
- str r0, [sp, #0x1c]
- mov r0, #0x30
- str r0, [sp, #0x20]
- mvn r0, #0x0
- str r0, [sp, #0x8]
- mov r0, #0x57
- str r0, [sp, #0x10]
- mov r0, #0x8
- str r0, [sp, #0x14]
- mov r0, #0x37
- str r0, [sp, #0x18]
- mov r0, #0x10
- str r0, [sp, #0x24]
- mov r0, #0x1
- str r0, [sp, #0x28]
- mov r0, #0x2b
- str r0, [sp, #0x34]
- mov r0, #0x2d
- str r0, [sp, #0x30]
- mov r0, #0x2
- str r0, [sp, #0x2c]
-_020CA530:
- ldrsb r1, [r9, #0x0]
- and r0, r1, #0xff
- eor r0, r0, #0x20
- sub r0, r0, #0xa1
- cmp r0, #0x3c
- bhs _020CA56C
- add r0, sp, #0x54
- bl string_put_char
- ldrsb r1, [r9, #0x1]!
- cmp r1, #0x0
- beq _020CAD0C
- add r0, sp, #0x54
- add r9, r9, #0x1
- bl string_put_char
- b _020CAD0C
-_020CA56C:
- cmp r1, #0x25
- beq _020CA584
- add r0, sp, #0x54
- add r9, r9, #0x1
- bl string_put_char
- b _020CAD0C
-_020CA584:
- ldr r6, [sp, #0x4]
- ldr r5, [sp, #0x8]
- ldr r2, [sp, #0xc]
- ldr r0, [sp, #0x10]
- mov r10, r6
- mov r3, r9
-_020CA59C:
- ldrsb r4, [r9, #0x1]!
- cmp r4, #0x20
- bgt _020CA5B4
- cmp r4, #0x20
- beq _020CA5F4
- b _020CA60C
-_020CA5B4:
- cmp r4, #0x30
- bgt _020CA60C
- cmp r4, #0x2b
- blt _020CA60C
- cmp r4, #0x2b
- beq _020CA5E0
- cmp r4, #0x2d
- beq _020CA5FC
- cmp r4, #0x30
- beq _020CA604
- b _020CA60C
-_020CA5E0:
- ldrsb r1, [r9, #-0x1]
- cmp r1, #0x20
- bne _020CA60C
- orr r6, r6, #0x2
- b _020CA59C
-_020CA5F4:
- orr r6, r6, #0x1
- b _020CA59C
-_020CA5FC:
- orr r6, r6, #0x8
- b _020CA59C
-_020CA604:
- orr r6, r6, #0x10
- b _020CA59C
-_020CA60C:
- cmp r4, #0x2a
- bne _020CA640
- add r11, r11, #0x4
- ldr r10, [r11, #-0x4]
- add r9, r9, #0x1
- cmp r10, #0x0
- rsblt r10, r10, #0x0
- orrlt r6, r6, #0x8
- b _020CA654
-_020CA630:
- ldrsb r4, [r9], #0x1
- mov r1, #0xa
- mla r1, r10, r1, r4
- sub r10, r1, #0x30
-_020CA640:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x30
- blt _020CA654
- cmp r1, #0x39
- ble _020CA630
-_020CA654:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x2e
- bne _020CA6AC
- ldrsb r1, [r9, #0x1]!
- ldr r5, [sp, #0x4]
- cmp r1, #0x2a
- bne _020CA698
- add r11, r11, #0x4
- ldr r5, [r11, #-0x4]
- add r9, r9, #0x1
- cmp r5, #0x0
- ldrlt r5, [sp, #0x8]
- b _020CA6AC
-_020CA688:
- ldrsb r4, [r9], #0x1
- mov r1, #0xa
- mla r1, r5, r1, r4
- sub r5, r1, #0x30
-_020CA698:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x30
- blt _020CA6AC
- cmp r1, #0x39
- ble _020CA688
-_020CA6AC:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x68
- beq _020CA6C4
- cmp r1, #0x6c
- beq _020CA6DC
- b _020CA6F0
-_020CA6C4:
- ldrsb r1, [r9, #0x1]!
- cmp r1, #0x68
- orrne r6, r6, #0x40
- addeq r9, r9, #0x1
- orreq r6, r6, #0x100
- b _020CA6F0
-_020CA6DC:
- ldrsb r1, [r9, #0x1]!
- cmp r1, #0x6c
- orrne r6, r6, #0x20
- addeq r9, r9, #0x1
- orreq r6, r6, #0x80
-_020CA6F0:
- ldrsb r1, [r9, #0x0]
- cmp r1, #0x69
- bgt _020CA740
- cmp r1, #0x63
- blt _020CA720
- cmp r1, #0x63
- beq _020CA7B4
- cmp r1, #0x64
- beq _020CA96C
- cmp r1, #0x69
- beq _020CA96C
- b _020CA950
-_020CA720:
- cmp r1, #0x25
- bgt _020CA734
- cmp r1, #0x25
- beq _020CA934
- b _020CA950
-_020CA734:
- cmp r1, #0x58
- beq _020CA7A0
- b _020CA950
-_020CA740:
- cmp r1, #0x6e
- bgt _020CA754
- cmp r1, #0x6e
- beq _020CA8DC
- b _020CA950
-_020CA754:
- sub r1, r1, #0x6f
- cmp r1, #0x9
- addls pc, pc, r1, lsl #0x2
- b _020CA950
-_020CA764:
- b _020CA78C
- b _020CA7A8
- b _020CA950
- b _020CA950
- b _020CA828
- b _020CA950
- b _020CA798
- b _020CA950
- b _020CA950
- b _020CA964
-_020CA78C:
- ldr r2, [sp, #0x14]
- orr r6, r6, #0x1000
- b _020CA96C
-_020CA798:
- orr r6, r6, #0x1000
- b _020CA96C
-_020CA7A0:
- ldr r0, [sp, #0x18]
- b _020CA964
-_020CA7A8:
- orr r6, r6, #0x4
- ldr r5, [sp, #0x14]
- b _020CA964
-_020CA7B4:
- cmp r5, #0x0
- bge _020CA950
- ands r0, r6, #0x8
- add r11, r11, #0x4
- ldr r4, [r11, #-0x4]
- beq _020CA7F0
- mov r0, r4, lsl #0x18
- mov r1, r0, asr #0x18
- add r0, sp, #0x54
- bl string_put_char
- ldr r1, [sp, #0x1c]
- sub r2, r10, #0x1
- add r0, sp, #0x54
- bl string_fill_char
- b _020CA820
-_020CA7F0:
- ands r0, r6, #0x10
- ldrne r0, [sp, #0x20]
- sub r2, r10, #0x1
- ldreq r0, [sp, #0x1c]
- mov r0, r0, lsl #0x18
- mov r1, r0, asr #0x18
- add r0, sp, #0x54
- bl string_fill_char
- mov r0, r4, lsl #0x18
- mov r1, r0, asr #0x18
- add r0, sp, #0x54
- bl string_put_char
-_020CA820:
- add r9, r9, #0x1
- b _020CAD0C
-_020CA828:
- add fp, fp, #0x4
- cmp r5, #0x0
- ldr r7, [sp, #0x4]
- ldr r4, [fp, #-0x4]
- bge _020CA860
- ldrsb r0, [r4]
- cmp r0, #0x0
- beq _020CA874
-_020CA848:
- add r7, r7, #0x1
- ldrsb r0, [r4, r7]
- cmp r0, #0x0
- bne _020CA848
- b _020CA874
-_020CA85C:
- add r7, r7, #0x1
-_020CA860:
- cmp r7, r5
- bge _020CA874
- ldrsb r0, [r4, r7]
- cmp r0, #0x0
- bne _020CA85C
-_020CA874:
- ands r0, r6, #0x8
- sub sl, sl, r7
- beq _020CA8A4
- mov r1, r4
- mov r2, r7
- add r0, sp, #0x54
- bl string_put_string
- ldr r1, [sp, #0x1C]
- mov r2, sl
- add r0, sp, #0x54
- bl string_fill_char
- b _020CA8D4
-_020CA8A4:
- ands r0, r6, #0x10
- ldrne r0, [sp, #0x20]
- mov r2, sl
- ldreq r0, [sp, #0x1C]
- mov r0, r0, lsl #0x18
- mov r1, r0, asr #0x18
- add r0, sp, #0x54
- bl string_fill_char
- mov r1, r4
- mov r2, r7
- add r0, sp, #0x54
- bl string_put_string
-_020CA8D4:
- add r9, r9, #0x1
- b _020CAD0C
-_020CA8DC:
- ands r0, r6, #0x100
- ldr r1, [sp, #0x58]
- ldr r0, [sp, #0x5c]
- sub r2, r1, r0
- bne _020CA92C
- ands r0, r6, #0x40
- addne r11, r11, #0x4
- ldrne r0, [r11, #-0x4]
- strneh r2, [r0, #0x0]
- bne _020CA92C
- ands r0, r6, #0x80
- addeq r11, r11, #0x4
- ldreq r0, [r11, #-0x4]
- streq r2, [r0, #0x0]
- beq _020CA92C
- add r11, r11, #0x4
- ldr r0, [r11, #-0x4]
- mov r1, r2, asr #0x1f
- str r2, [r0, #0x0]
- str r1, [r0, #0x4]
-_020CA92C:
- add r9, r9, #0x1
- b _020CAD0C
-_020CA934:
- add r0, r3, #0x1
- cmp r0, r9
- bne _020CA950
- add r0, sp, #0x54
- add r9, r9, #0x1
- bl string_put_char
- b _020CAD0C
-_020CA950:
- add r0, sp, #0x54
- mov r1, r3
- sub r2, r9, r3
- bl string_put_string
- b _020CAD0C
-_020CA964:
- ldr r2, [sp, #0x24]
- orr r6, r6, #0x1000
-_020CA96C:
- ands r1, r6, #0x8
- bicne r6, r6, #0x10
- cmp r5, #0x0
- bicge r6, r6, #0x10
- ldrlt r5, [sp, #0x28]
- ldr r7, [sp, #0x4]
- ands r1, r6, #0x1000
- beq _020CAA20
- ands r1, r6, #0x100
- addne r11, r11, #0x4
- ldrneb r4, [r11, #-0x4]
- movne r1, #0x0
- bne _020CA9D0
- ands r1, r6, #0x40
- addne r11, r11, #0x4
- ldrneh r4, [r11, #-0x4]
- movne r1, #0x0
- bne _020CA9D0
- ands r1, r6, #0x80
- addne r11, r11, #0x8
- ldrne r1, [r11, #-0x4]
- ldrne r4, [r11, #-0x8]
- addeq r11, r11, #0x4
- ldreq r4, [r11, #-0x4]
- moveq r1, #0x0
-_020CA9D0:
- bic r6, r6, #0x3
- ands r3, r6, #0x4
- beq _020CAAD8
- cmp r2, #0x10
- bne _020CAA0C
- mov r3, #0x0
- cmp r1, r3
- cmpeq r4, r3
- beq _020CAAD8
- ldr r3, [sp, #0x20]
- ldr r7, [sp, #0x2c]
- strb r3, [sp, #0x39]
- add r3, r0, #0x21
- strb r3, [sp, #0x38]
- b _020CAAD8
-_020CAA0C:
- cmp r2, #0x8
- ldreq r3, [sp, #0x20]
- ldreq r7, [sp, #0x28]
- streqb r3, [sp, #0x38]
- b _020CAAD8
-_020CAA20:
- ands r1, r6, #0x100
- addne r11, r11, #0x4
- ldrnesb r4, [r11, #-0x4]
- movne r1, r4, asr #0x1f
- bne _020CAA64
- ands r1, r6, #0x40
- addne r11, r11, #0x4
- ldrnesh r4, [r11, #-0x4]
- movne r1, r4, asr #0x1f
- bne _020CAA64
- ands r1, r6, #0x80
- addne r11, r11, #0x8
- ldrne r4, [r11, #-0x8]
- ldrne r1, [r11, #-0x4]
- addeq r11, r11, #0x4
- ldreq r4, [r11, #-0x4]
- moveq r1, r4, asr #0x1f
-_020CAA64:
- mov r3, #0x0
- and r8, r3, #0x0
- cmp r8, r3
- and r8, r1, #0x80000000
- cmpeq r8, r3
- beq _020CAAA0
- ldr r7, [sp, #0x30]
- mvn r4, r4
- strb r7, [sp, #0x38]
- mvn r7, r1
- mov r1, #0x1
- adds r4, r4, r1
- adc r1, r7, r3
- ldr r7, [sp, #0x28]
- b _020CAAD8
-_020CAAA0:
- cmp r1, r3
- cmpeq r4, r3
- bne _020CAAB4
- cmp r5, #0x0
- beq _020CAAD8
-_020CAAB4:
- ands r3, r6, #0x2
- ldrne r3, [sp, #0x34]
- ldrne r7, [sp, #0x28]
- strneb r3, [sp, #0x38]
- bne _020CAAD8
- ands r3, r6, #0x1
- ldrne r3, [sp, #0x1c]
- ldrne r7, [sp, #0x28]
- strneb r3, [sp, #0x38]
-_020CAAD8:
- cmp r2, #0x8
- ldr r8, [sp, #0x4]
- beq _020CAAF8
- cmp r2, #0xa
- beq _020CAB40
- cmp r2, #0x10
- beq _020CABDC
- b _020CAC28
-_020CAAF8:
- mov r0, #0x0
- cmp r1, r0
- cmpeq r4, r0
- beq _020CAC28
-_020CAB08:
- and r0, r4, #0x7
- add r3, r0, #0x30
- add r0, sp, #0x3a
- strb r3, [r0, r8]
- mov r4, r4, lsr #0x3
- mov r2, #0x0
- mov r0, r1, lsr #0x3
- orr r4, r4, r1, lsl #0x1d
- cmp r0, r2
- cmpeq r4, r2
- mov r1, r0
- add r8, r8, #0x1
- bne _020CAB08
- b _020CAC28
-_020CAB40:
- mov r0, #0x0
- cmp r0, r0
- cmpeq r1, r0
- bne _020CAB8C
- cmp r4, #0x0
- beq _020CAC28
-_020CAB58:
- ldr r0, _020CAD60 ; =0xCCCCCCCD
- umull r1, r0, r4, r0
- movs r0, r0, lsr #0x3
- mov r1, #0xa
- mul r1, r0, r1
- sub r1, r4, r1
- mov r4, r0
- add r1, r1, #0x30
- add r0, sp, #0x3a
- strb r1, [r0, r8]
- add r8, r8, #0x1
- bne _020CAB58
- b _020CAC28
-_020CAB8C:
- cmp r1, r0
- cmpeq r4, r0
- beq _020CAC28
-_020CAB98:
- ldr r2, [sp, #0xc]
- ldr r3, [sp, #0x4]
- mov r0, r4
- bl _ll_udiv
- mov r3, #0xa
- umull r3, r12, r0, r3
- subs r3, r4, r3
- mov r2, #0x0
- add r4, r3, #0x30
- add r3, sp, #0x3a
- strb r4, [r3, r8]
- cmp r1, r2
- cmpeq r0, r2
- mov r4, r0
- add r8, r8, #0x1
- bne _020CAB98
- b _020CAC28
-_020CABDC:
- mov r2, #0x0
- cmp r1, r2
- cmpeq r4, r2
- beq _020CAC28
-_020CABEC:
- and r3, r4, #0xf
- cmp r3, #0xa
- mov r4, r4, lsr #0x4
- addlt r3, r3, #0x30
- mov r2, r1, lsr #0x4
- orr r4, r4, r1, lsl #0x1c
- mov r1, r2
- addge r3, r3, r0
- add r2, sp, #0x3a
- strb r3, [r2, r8]
- mov r2, #0x0
- cmp r1, r2
- add r8, r8, #0x1
- cmpeq r4, r2
- bne _020CABEC
-_020CAC28:
- cmp r7, #0x0
- ble _020CAC4C
- ldrsb r0, [sp, #0x38]
- cmp r0, #0x30
- ldreq r1, [sp, #0x20]
- addeq r0, sp, #0x3a
- streqb r1, [r0, r8]
- ldreq r7, [sp, #0x4]
- addeq r8, r8, #0x1
-_020CAC4C:
- sub r5, r5, r8
- ands r0, r6, #0x10
- beq _020CAC68
- sub r0, r10, r8
- sub r0, r0, r7
- cmp r5, r0
- movlt r5, r0
-_020CAC68:
- cmp r5, #0x0
- subgt r10, r10, r5
- add r0, r7, r8
- ands r6, r6, #0x8
- sub r10, r10, r0
- bne _020CAC90
- ldr r1, [sp, #0x1c]
- add r0, sp, #0x54
- mov r2, r10
- bl string_fill_char
-_020CAC90:
- cmp r7, #0x0
- ble _020CACB8
- add r0, sp, #0x38
- add r4, r0, r7
-_020CACA0:
- ldrsb r1, [r4, #-0x1]!
- sub r7, r7, #0x1
- add r0, sp, #0x54
- bl string_put_char
-_020CACB0:
- cmp r7, #0x0
- bgt _020CACA0
-_020CACB8:
- ldr r1, [sp, #0x20]
- mov r2, r5
- add r0, sp, #0x54
- bl string_fill_char
-_020CACC8:
- cmp r8, #0x0
- ble _020CACF0
- add r0, sp, #0x3A
- add r4, r0, r8
-_020CACD8:
- ldrsb r1, [r4, #-0x1]!
- sub r8, r8, #0x1
- add r0, sp, #0x54
- bl string_put_char
- cmp r8, #0x0
- bgt _020CACD8
-_020CACF0:
- cmp r6, #0x0
- beq _020CAD08
- ldr r1, [sp, #0x1C]
- mov r2, sl
- add r0, sp, #0x54
- bl string_fill_char
-_020CAD08:
- add r9, r9, #0x1
-_020CAD0C:
- ldrsb r0, [r9, #0x0]
- cmp r0, #0x0
- bne _020CA530
-_020CAD18:
- ldr r0, [sp, #0x54]
- cmp r0, #0x0
- ldrne r0, [sp, #0x58]
- movne r1, #0x0
- strneb r1, [r0, #0x0]
- bne _020CAD48
- ldr r0, [sp, #0x0]
- cmp r0, #0x0
- ldrne r1, [sp, #0x5c]
- movne r2, #0x0
- addne r0, r1, r0
- strneb r2, [r0, #-0x1]
-_020CAD48:
- ldr r1, [sp, #0x58]
- ldr r0, [sp, #0x5c]
- sub r0, r1, r0
- add sp, sp, #0x64
- ldmia sp!, {r4-r11,lr}
- bx lr
- .balign 4
-_020CAD60: .word 0xCCCCCCCD
-
- arm_func_start OS_SNPrintf
-OS_SNPrintf: ; 0x020CAD64
- stmdb sp!, {r0-r3}
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- add r3, sp, #0x10
- bic r3, r3, #0x3
- ldr r2, [sp, #0x10]
- add r3, r3, #0x4
- bl OS_VSNPrintf
- add sp, sp, #0x4
- ldmia sp!, {lr}
- add sp, sp, #0x10
- bx lr
-
- arm_func_start OS_VSPrintf
-OS_VSPrintf: ; 0x020CAD94
- ldr ip, _020CADA8 ; =OS_VSNPrintf
- mov r3, r2
- mov r2, r1
- mvn r1, #0x80000000
- bx r12
- .balign 4
-_020CADA8: .word OS_VSNPrintf
-
- arm_func_start OS_SPrintf
-OS_SPrintf: ; 0x020CADAC
- stmdb sp!, {r0-r3}
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- add r2, sp, #0xc
- bic r2, r2, #0x3
- ldr r1, [sp, #0xc]
- add r2, r2, #0x4
- bl OS_VSPrintf
- add sp, sp, #0x4
- ldmia sp!, {lr}
- add sp, sp, #0x10
- bx lr
-
- arm_func_start string_put_string
-string_put_string: ; 0x020CADDC
- stmdb sp!, {r4,lr}
- cmp r2, #0x0
- ldmleia sp!, {r4,lr}
- bxle lr
- ldr lr, [r0, #0x0]
- mov r4, #0x0
- cmp lr, r2
- movhi lr, r2
- cmp lr, #0x0
- bls _020CAE1C
-_020CAE04:
- ldrsb r12, [r1, r4]
- ldr r3, [r0, #0x4]
- strb r12, [r3, r4]
- add r4, r4, #0x1
- cmp r4, lr
- blo _020CAE04
-_020CAE1C:
- ldr r1, [r0, #0x0]
- sub r1, r1, lr
- str r1, [r0, #0x0]
- ldr r1, [r0, #0x4]
- add r1, r1, r2
- str r1, [r0, #0x4]
- ldmia sp!, {r4,lr}
- bx lr
-
- arm_func_start string_fill_char
-string_fill_char:
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- cmp r2, #0x0
- addle sp, sp, #0x4
- ldmleia sp!, {lr}
- bxle lr
- ldr r12, [r0, #0x0]
- mov lr, #0x0
- cmp r12, r2
- movhi r12, r2
- cmp r12, #0x0
- bls _020CAE80
-_020CAE6C:
- ldr r3, [r0, #0x4]
- strb r1, [r3, lr]
- add lr, lr, #0x1
- cmp lr, r12
- blo _020CAE6C
-_020CAE80:
- ldr r1, [r0, #0x0]
- sub r1, r1, r12
- str r1, [r0, #0x0]
- ldr r1, [r0, #0x4]
- add r1, r1, r2
- str r1, [r0, #0x4]
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-
- arm_func_start string_put_char
-string_put_char:
- ldr r2, [r0, #0x0]
- cmp r2, #0x0
- ldrne r2, [r0, #0x4]
- strneb r1, [r2, #0x0]
- ldrne r1, [r0, #0x0]
- subne r1, r1, #0x1
- strne r1, [r0, #0x0]
- ldr r1, [r0, #0x4]
- add r1, r1, #0x1
- str r1, [r0, #0x4]
- bx lr
diff --git a/arm9/asm/OS_spinLock.s b/arm9/asm/OS_spinLock.s
index 36ab2cf5..3137a69b 100644
--- a/arm9/asm/OS_spinLock.s
+++ b/arm9/asm/OS_spinLock.s
@@ -272,7 +272,7 @@ FUN_020CA358: ; 0x020CA358
mov r4, #0x400
_020CA380:
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
mov r0, r8
mov r1, r7
mov r2, r6
@@ -307,7 +307,7 @@ OS_InitLock: ; 0x020CA3AC
mov r4, #0x400
_020CA3FC:
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
ldrh r0, [r5, #0x6]
cmp r0, #0x0
bne _020CA3FC
diff --git a/arm9/asm/arm9_itcm.s b/arm9/asm/arm9_itcm.s
index 79c0de28..7db3d194 100644
--- a/arm9/asm/arm9_itcm.s
+++ b/arm9/asm/arm9_itcm.s
@@ -1,6 +1,6 @@
.include "asm/macros.inc"
.include "global.inc"
- .section .itcm
+ .section .text
; OS
arm_func_start OS_IrqHandler
@@ -125,7 +125,7 @@ _01FF81A8: .word OSi_ThreadInfo
_01FF81AC: .word CP_SaveContext
_01FF81B0: .word CP_RestoreContext
- .section .itcm
+ .section .text
arm_func_start OSi_DoBoot
OSi_DoBoot: ; 0x01FF81B4
mov ip, #0x04000000
diff --git a/arm9/asm/crt0.s b/arm9/asm/crt0.s
index 05a91b28..65084858 100644
--- a/arm9/asm/crt0.s
+++ b/arm9/asm/crt0.s
@@ -73,7 +73,7 @@ _020008C4:
bl _fp_init
bl NitroStartUp
bl __call_static_initializers
- ldr r1, _02000934 ; =0x02000C55
+ ldr r1, _02000934 ; =NitroMain
ldr lr, _02000938 ; =0xFFFF0000
tst sp, #4
subne sp, sp, #4
diff --git a/arm9/asm/filesystem.s b/arm9/asm/filesystem.s
index 75af021d..a52f38b9 100644
--- a/arm9/asm/filesystem.s
+++ b/arm9/asm/filesystem.s
@@ -18,31 +18,31 @@ ReadNARCFile: ; 0x02006314
add r0, sp, #0x18
add r5, r2, #0x0
str r3, [sp, #0x4]
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x18
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x18
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r4, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0x8
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x8
ldrh r0, [r0, #0x0]
cmp r0, r5
@@ -54,26 +54,26 @@ _0200637A:
add r6, r4, r0
add r0, sp, #0x18
add r1, r6, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x18
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0x14]
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x10
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x10]
add r2, #0x8
@@ -82,7 +82,7 @@ _0200637A:
add r0, sp, #0x18
add r1, r1, r2
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r0, [sp, #0x78]
cmp r0, #0x0
bne _020063D6
@@ -98,9 +98,9 @@ _020063E0:
ldr r1, [sp, #0x0]
ldr r2, [sp, #0x14]
add r0, sp, #0x18
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
- blx FS_CloseFile
+ bl FS_CloseFile
add sp, #0x60
pop {r3-r7, pc}
@@ -119,31 +119,31 @@ LoadFileIntoMemory: ; 0x020063F4
add r0, sp, #0x18
str r2, [sp, #0x0]
str r3, [sp, #0x4]
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x18
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x18
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r4, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0x8
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x8
ldrh r0, [r0, #0x0]
cmp r0, r5
@@ -155,26 +155,26 @@ _0200645A:
add r6, r4, r0
add r0, sp, #0x18
add r1, r6, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x18
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0x14]
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x10
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x10]
add r2, #0x8
@@ -183,7 +183,7 @@ _0200645A:
add r0, sp, #0x18
add r1, r1, r2
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r0, [sp, #0x78]
cmp r0, #0x0
bne _020064B6
@@ -212,9 +212,9 @@ _020064D8:
ldr r2, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x0
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, r4, #0x0
add sp, #0x60
pop {r3-r7, pc}
@@ -329,33 +329,33 @@ LoadFromNARC_7: ; 0x020065A4
add r0, sp, #0x0
strh r1, [r0, #0x0]
add r0, sp, #0x10
- blx FS_InitFile
+ bl FS_InitFile
ldr r1, _0200666C ; =0x021058A0
lsl r2, r4, #0x2
ldr r1, [r1, r2]
add r0, sp, #0x10
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x10
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r4, [sp, #0xc]
add r0, sp, #0x10
add r1, r4, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x10
add r1, sp, #0x0
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x0
ldrh r0, [r0, #0x0]
cmp r0, r5
@@ -367,33 +367,33 @@ _0200660A:
add r6, r4, r0
add r0, sp, #0x10
add r1, r6, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x10
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0xc]
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0x8
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x10
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x8]
add r2, #0x8
add r1, r2, r1
add r0, sp, #0x10
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r1, [sp, #0x4]
ldr r0, [sp, #0x8]
sub r0, r1, r0
@@ -418,46 +418,46 @@ FUN_02006670: ; 0x02006670
beq _020066EC
mov r1, #0x0
str r1, [r4, #0x48]
- blx FS_InitFile
+ bl FS_InitFile
ldr r1, _020066F0 ; =0x021058A0
lsl r2, r5, #0x2
ldr r1, [r1, r2]
add r0, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, r4, #0x0
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r1, r4, #0x0
add r0, r4, #0x0
add r1, #0x48
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r1, [r4, #0x48]
add r0, r4, #0x0
add r1, r1, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r4, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r1, r4, #0x0
add r0, r4, #0x0
add r1, #0x50
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r1, [r4, #0x48]
ldr r0, [sp, #0x0]
mov r2, #0x0
add r5, r1, r0
add r0, r4, #0x0
add r1, r5, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r4, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r0, [sp, #0x0]
add r0, r5, r0
str r0, [r4, #0x4c]
@@ -471,7 +471,7 @@ _020066F0: .word 0x021058A0
FUN_020066F4: ; 0x020066F4
push {r4, lr}
add r4, r0, #0x0
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, r4, #0x0
bl FUN_02016A18
pop {r4, pc}
@@ -495,22 +495,22 @@ _0200671A:
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x4]
add r2, #0x8
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r2, [sp, #0x0]
ldr r1, [sp, #0x4]
add r0, r6, #0x0
@@ -523,7 +523,7 @@ _0200671A:
add r0, r5, #0x0
add r1, r4, #0x0
sub r2, r3, r2
- blx FS_ReadFile
+ bl FS_ReadFile
_0200676C:
add r0, r4, #0x0
add sp, #0x8
@@ -549,28 +549,28 @@ _0200678A:
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x4]
add r2, #0x8
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r3, [sp, #0x0]
ldr r2, [sp, #0x4]
add r0, r5, #0x0
add r1, r6, #0x0
sub r2, r3, r2
- blx FS_ReadFile
+ bl FS_ReadFile
add sp, #0x8
pop {r4-r6, pc}
@@ -592,15 +592,15 @@ _020067E4:
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r1, [sp, #0x0]
ldr r0, [sp, #0x4]
sub r0, r1, r0
@@ -627,11 +627,11 @@ _0200682A:
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x0]
add r2, #0x8
@@ -639,10 +639,10 @@ _0200682A:
add r0, r5, #0x0
add r1, r6, r1
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r1, [sp, #0x18]
add r0, r5, #0x0
add r2, r7, #0x0
- blx FS_ReadFile
+ bl FS_ReadFile
pop {r3-r7, pc}
.balign 4
diff --git a/arm9/asm/libcard.s b/arm9/asm/libcard.s
index 959c6f64..1eb74e0d 100644
--- a/arm9/asm/libcard.s
+++ b/arm9/asm/libcard.s
@@ -1637,7 +1637,7 @@ _020D7BEC: ; 0x020D7BEC
mov r4, #0x0
_020D7C04:
mov r0, r6
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
mov r0, r5
mov r1, r7
mov r2, r4
diff --git a/arm9/asm/libctrdg.s b/arm9/asm/libctrdg.s
index 301ea233..6d8cf4a5 100644
--- a/arm9/asm/libctrdg.s
+++ b/arm9/asm/libctrdg.s
@@ -333,7 +333,7 @@ _020DB520: ; 0x020DB520
mov r4, #0x0
_020DB53C:
mov r0, r6
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
mov r0, r5
mov r1, r7
mov r2, r4
@@ -389,7 +389,7 @@ _020DB5DC: ; 0x020DB5DC
ldr r0, [r6, #0x4]
bl OS_RestoreInterrupts
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _020DB5A8
_020DB600: ; 0x020DB600
add sp, sp, #0x4
@@ -666,7 +666,7 @@ CTRDGi_InitCommon: ; 0x020DB938
ldr r2, _020DB974 ; =0x05000001
add r0, sp, #0x0
str r3, [sp, #0x0]
- blx FUN_020002FE
+ bl FUN_020002FE
bl OS_GetLockID
ldr r1, _020DB970 ; =0x021D6944
strh r0, [r1, #0x2]
@@ -872,7 +872,7 @@ _020DBBDC:
mov r7, #0x1
_020DBC1C:
mov r0, r7
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
ldrh r0, [r5, #0x0]
cmp r0, #0x1
bne _020DBC1C
diff --git a/arm9/asm/libdgt.s b/arm9/asm/libdgt.s
deleted file mode 100644
index 02a3293f..00000000
--- a/arm9/asm/libdgt.s
+++ /dev/null
@@ -1,1017 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .text
-
- arm_func_start ProcessBlock
-ProcessBlock: ; 0x020D2798
- stmdb sp!, {r4-r11,lr}
- sub sp, sp, #0x4
- add r3, r0, #0x18
- ldr r5, [r0, #0x0]
- ldr r4, [r0, #0x4]
- ldr lr, [r0, #0x8]
- ldr r12, [r0, #0xc]
- ldr r2, _020D2B78 ; =0x02106900
- mov r8, r3
- mov r7, #0x0
-_020D27C0:
- mvn r1, r4
- and r6, r4, lr
- and r1, r1, r12
- orr r1, r6, r1
- ldr r6, [r8, #0x0]
- add r1, r5, r1
- ldr r5, [r2, #0x0]
- add r1, r6, r1
- add r5, r5, r1
- mov r1, r5, lsl #0x7
- orr r1, r1, r5, lsr #0x19
- add r5, r4, r1
- mvn r1, r5
- and r6, r5, r4
- and r1, r1, lr
- orr r1, r6, r1
- ldr r6, [r8, #0x4]
- add r1, r12, r1
- ldr r9, [r2, #0x4]
- add r1, r6, r1
- add r6, r9, r1
- mov r1, r6, lsl #0xc
- orr r1, r1, r6, lsr #0x14
- add r12, r5, r1
- mvn r1, r12
- and r6, r12, r5
- and r1, r1, r4
- orr r6, r6, r1
- add r1, r8, #0xc
- ldr r9, [r8, #0x8]
- add r6, lr, r6
- add r6, r9, r6
- ldr r9, [r2, #0x8]
- ldr r1, [r1, #0x0]
- add r10, r9, r6
- add r6, r2, #0xc
- ldr r6, [r6, #0x0]
- mov r9, r10, lsl #0x11
- orr r9, r9, r10, lsr #0xf
- add lr, r12, r9
- add r2, r2, #0x10
- add r8, r8, #0x10
- and r10, lr, r12
- mvn r9, lr
- and r9, r9, r5
- orr r9, r10, r9
- add r4, r4, r9
- add r1, r1, r4
- add r4, r6, r1
- mov r1, r4, lsl #0x16
- orr r1, r1, r4, lsr #0xa
- add r4, lr, r1
- add r7, r7, #0x1
- cmp r7, #0x4
- blt _020D27C0
- ldr r6, _020D2B7C ; =0x02106840
- mov r1, #0x0
-_020D28A4:
- mvn r7, r12
- ldr r9, [r6, #0x0]
- and r8, r4, r12
- and r7, lr, r7
- orr r7, r8, r7
- ldr r8, [r3, r9, lsl #0x2]
- add r5, r5, r7
- ldr r7, [r2, #0x0]
- add r5, r8, r5
- add r7, r7, r5
- mov r5, r7, lsl #0x5
- orr r5, r5, r7, lsr #0x1b
- add r5, r4, r5
- mvn r8, lr
- ldr r7, [r6, #0x4]
- and r9, r5, lr
- and r8, r4, r8
- orr r10, r9, r8
- mvn r8, r4
- ldr r9, [r6, #0x8]
- ldr r11, [r3, r7, lsl #0x2]
- add r7, r12, r10
- add r10, r11, r7
- add r7, r6, #0xc
- ldr r9, [r3, r9, lsl #0x2]
- and r8, r5, r8
- ldr r7, [r7, #0x0]
- ldr r11, [r2, #0x4]
- ldr r7, [r3, r7, lsl #0x2]
- add r11, r11, r10
- mov r10, r11, lsl #0x9
- orr r10, r10, r11, lsr #0x17
- add r12, r5, r10
- ldr r10, [r2, #0x8]
- and r11, r12, r4
- orr r8, r11, r8
- add r8, lr, r8
- add r8, r9, r8
- add r10, r10, r8
- add r8, r2, #0xc
- ldr r8, [r8, #0x0]
- mov r9, r10, lsl #0xe
- orr r9, r9, r10, lsr #0x12
- add lr, r12, r9
- add r2, r2, #0x10
- add r6, r6, #0x10
- and r10, lr, r5
- mvn r9, r5
- and r9, r12, r9
- orr r9, r10, r9
- add r4, r4, r9
- add r4, r7, r4
- add r7, r8, r4
- mov r4, r7, lsl #0x14
- orr r4, r4, r7, lsr #0xc
- add r4, lr, r4
- add r1, r1, #0x1
- cmp r1, #0x4
- blt _020D28A4
- mov r7, #0x0
-_020D2994:
- ldr r8, [r6, #0x0]
- eor r1, r4, lr
- eor r1, r12, r1
- add r1, r5, r1
- ldr r8, [r3, r8, lsl #0x2]
- ldr r5, [r2, #0x0]
- add r1, r8, r1
- add r5, r5, r1
- mov r1, r5, lsl #0x4
- orr r1, r1, r5, lsr #0x1c
- add r5, r4, r1
- ldr r8, [r6, #0x4]
- eor r1, r5, r4
- eor r1, lr, r1
- ldr r8, [r3, r8, lsl #0x2]
- add r1, r12, r1
- ldr r9, [r6, #0x8]
- ldr r10, [r2, #0x4]
- add r1, r8, r1
- add r8, r10, r1
- mov r1, r8, lsl #0xb
- orr r1, r1, r8, lsr #0x15
- add r12, r5, r1
- eor r8, r12, r5
- eor r8, r4, r8
- ldr r9, [r3, r9, lsl #0x2]
- add r8, lr, r8
- add r9, r9, r8
- ldr r10, [r2, #0x8]
- add r1, r2, #0xc
- ldr r8, [r6, #0xc]
- add r10, r10, r9
- ldr r9, [r3, r8, lsl #0x2]
- mov r8, r10, lsl #0x10
- orr r8, r8, r10, lsr #0x10
- add lr, r12, r8
- eor r8, lr, r12
- eor r8, r5, r8
- add r4, r4, r8
- add r7, r7, #0x1
- ldr r1, [r1, #0x0]
- add r4, r9, r4
- add r4, r1, r4
- mov r1, r4, lsl #0x17
- orr r1, r1, r4, lsr #0x9
- add r2, r2, #0x10
- add r6, r6, #0x10
- add r4, lr, r1
- cmp r7, #0x4
- blt _020D2994
- mov r10, #0x0
-_020D2A60:
- mvn r1, r12
- ldr r7, [r6, #0x0]
- orr r1, r4, r1
- eor r1, lr, r1
- ldr r7, [r3, r7, lsl #0x2]
- add r1, r5, r1
- ldr r5, [r2, #0x0]
- add r1, r7, r1
- add r5, r5, r1
- mov r1, r5, lsl #0x6
- orr r1, r1, r5, lsr #0x1a
- add r5, r4, r1
- mvn r1, lr
- ldr r7, [r6, #0x4]
- orr r1, r5, r1
- eor r1, r4, r1
- ldr r8, [r6, #0x8]
- ldr r7, [r3, r7, lsl #0x2]
- add r1, r12, r1
- ldr r9, [r2, #0x4]
- add r1, r7, r1
- add r9, r9, r1
- mov r7, r9, lsl #0xa
- add r1, r6, #0xc
- orr r9, r7, r9, lsr #0x16
- ldr r1, [r1, #0x0]
- add r7, r2, #0xc
- add r12, r5, r9
- ldr r8, [r3, r8, lsl #0x2]
- ldr r7, [r7, #0x0]
- ldr r1, [r3, r1, lsl #0x2]
- ldr r9, [r2, #0x8]
- mvn r11, r4
- orr r11, r12, r11
- eor r11, r5, r11
- add r11, lr, r11
- add r8, r8, r11
- add r9, r9, r8
- mov r8, r9, lsl #0xf
- orr r8, r8, r9, lsr #0x11
- add lr, r12, r8
- add r2, r2, #0x10
- add r6, r6, #0x10
- mvn r8, r5
- orr r8, lr, r8
- eor r8, r12, r8
- add r4, r4, r8
- add r1, r1, r4
- add r4, r7, r1
- mov r1, r4, lsl #0x15
- orr r1, r1, r4, lsr #0xb
- add r4, lr, r1
- add r10, r10, #0x1
- cmp r10, #0x4
- blt _020D2A60
- ldr r1, [r0, #0x0]
- add r1, r1, r5
- str r1, [r0, #0x0]
- ldr r1, [r0, #0x4]
- add r1, r1, r4
- str r1, [r0, #0x4]
- ldr r1, [r0, #0x8]
- add r1, r1, lr
- str r1, [r0, #0x8]
- ldr r1, [r0, #0xc]
- add r1, r1, r12
- str r1, [r0, #0xc]
- add sp, sp, #0x4
- ldmia sp!, {r4-r11,lr}
- bx lr
- .balign 4
-_020D2B78: .word Unk_02106900 ; = 0x02106900
-_020D2B7C: .word Unk_02106840 ; = 0x02106840
-
- arm_func_start DGT_Hash1GetDigest_R
-DGT_Hash1GetDigest_R: ; 0x020D2B80
- stmdb sp!, {r4-r7,lr}
- sub sp, sp, #0x4
- mov r6, r1
- ldr r1, [r6, #0x14]
- ldr r3, [r6, #0x10]
- mov r7, r0
- mov r4, r1, lsl #0x3
- ldr r1, _020D2C40 ; =0x0210683C
- mov r0, r6
- mov r2, #0x1
- orr r4, r4, r3, lsr #0x1d
- mov r5, r3, lsl #0x3
- bl DGT_Hash1SetSource
- ldr r0, [r6, #0x10]
- mov r1, #0x0
- and r3, r0, #0x3f
- rsb r2, r3, #0x40
- cmp r2, #0x8
- bhs _020D2BE8
- add r0, r6, #0x18
- add r0, r0, r3
- bl MI_CpuFill8
- mov r0, r6
- bl ProcessBlock
- mov r3, #0x0
- mov r2, #0x40
-_020D2BE8:
- cmp r2, #0x8
- bls _020D2C04
- add r0, r6, #0x18
- add r0, r0, r3
- sub r2, r2, #0x8
- mov r1, #0x0
- bl MI_CpuFill8
-_020D2C04:
- str r5, [r6, #0x50]
- mov r0, r6
- str r4, [r6, #0x54]
- bl ProcessBlock
- mov r0, r6
- mov r1, r7
- mov r2, #0x10
- bl MI_CpuCopy8
- mov r0, r6
- mov r1, #0x0
- mov r2, #0x58
- bl MI_CpuFill8
- add sp, sp, #0x4
- ldmia sp!, {r4-r7,lr}
- bx lr
- .balign 4
-_020D2C40: .word Unk_0210683C ; = 0x0210683C
-
- arm_func_start DGT_Hash1SetSource
-DGT_Hash1SetSource: ; 0x020D2C44
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0x4
- mov r8, r0
- add r12, r8, #0x10
- ldr r4, [r8, #0x10]
- mov r6, r2
- and r3, r4, #0x3f
- ldr r0, [r12, #0x4]
- adds r4, r4, r6
- str r4, [r8, #0x10]
- adc r0, r0, #0x0
- rsb r5, r3, #0x40
- mov r7, r1
- str r0, [r12, #0x4]
- cmp r5, r6
- bls _020D2CB0
- cmp r6, #0x0
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r9,lr}
- bxeq lr
- add r1, r8, #0x18
- mov r0, r7
- add r1, r1, r3
- bl MI_CpuCopy8
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,lr}
- bx lr
-_020D2CB0:
- add r1, r8, #0x18
- mov r0, r7
- mov r2, r5
- add r1, r1, r3
- bl MI_CpuCopy8
- mov r0, r8
- bl ProcessBlock
- sub r6, r6, r5
- mov r4, r6, lsr #0x6
- cmp r4, #0x0
- add r9, r7, r5
- ble _020D2D10
- add r7, r8, #0x18
- mov r5, #0x40
-_020D2CE8:
- mov r0, r9
- mov r1, r7
- mov r2, r5
- bl MI_CpuCopy8
- mov r0, r8
- add r9, r9, #0x40
- bl ProcessBlock
- sub r4, r4, #0x1
- cmp r4, #0x0
- bgt _020D2CE8
-_020D2D10:
- ands r2, r6, #0x3f
- addeq sp, sp, #0x4
- ldmeqia sp!, {r4-r9,lr}
- bxeq lr
- mov r0, r9
- add r1, r8, #0x18
- bl MI_CpuCopy8
- add sp, sp, #0x4
- ldmia sp!, {r4-r9,lr}
- bx lr
-
- arm_func_start DGT_Hash1Reset
-DGT_Hash1Reset: ; 0x020D2D38
- ldr r2, _020D2D68 ; =0x67452301
- ldr r1, _020D2D6C ; =0xEFCDAB89
- str r2, [r0, #0x0]
- ldr r2, _020D2D70 ; =0x98BADCFE
- str r1, [r0, #0x4]
- ldr r1, _020D2D74 ; =0x10325476
- str r2, [r0, #0x8]
- str r1, [r0, #0xc]
- mov r1, #0x0
- str r1, [r0, #0x10]
- str r1, [r0, #0x14]
- bx lr
- .balign 4
-_020D2D68: .word 0x67452301
-_020D2D6C: .word 0xEFCDAB89
-_020D2D70: .word 0x98BADCFE
-_020D2D74: .word 0x10325476
-
- arm_func_start DGT_Hash2CalcHmac
-DGT_Hash2CalcHmac: ; 0x020D2D78
- stmdb sp!, {r4-r8,lr}
- sub sp, sp, #0xa0
- ldr lr, _020D2E00 ; =0x02106A04
- add r12, sp, #0x1c
- mov r8, r0
- mov r7, r1
- mov r6, r2
- mov r5, r3
- mov r4, r12
- ldmia lr!, {r0-r3}
- stmia r12!, {r0-r3}
- ldmia lr, {r0-r2}
- stmia r12, {r0-r2}
- add lr, sp, #0x38
- add r12, sp, #0x8
- str lr, [sp, #0x24]
- ldr lr, _020D2E04 ; =MATH_SHA1Init
- str r12, [sp, #0x28]
- ldr ip, _020D2E08 ; =MATH_SHA1Update
- str lr, [sp, #0x2c]
- ldr lr, _020D2E0C ; =MATH_SHA1GetHash
- str r12, [sp, #0x30]
- ldr r12, [sp, #0xb8]
- str lr, [sp, #0x34]
- str r12, [sp, #0x0]
- mov r3, r5
- mov r0, r8
- mov r1, r7
- mov r2, r6
- str r4, [sp, #0x4]
- bl MATHi_CalcHMAC
- add sp, sp, #0xa0
- ldmia sp!, {r4-r8,lr}
- bx lr
- .balign 4
-_020D2E00: .word Unk_02106A04 ; = 0x02106A04
-_020D2E04: .word MATH_SHA1Init
-_020D2E08: .word MATH_SHA1Update
-_020D2E0C: .word MATH_SHA1GetHash
-
- arm_func_start MATH_SHA1GetHash
-MATH_SHA1GetHash: ; 0x020D2E10
- stmdb sp!, {r0-r3}
- stmdb sp!, {r4-r6,lr}
- ldr r0, [sp, #0x10]
- mov r6, r1
- ldr r3, [r0, #0x1c]
- add r5, r0, #0x20
- ands r1, r3, #0x3
- mov r0, r3, asr #0x2
- moveq r1, #0x0
- streq r1, [r5, r0, lsl #0x2]
- ldr r2, [sp, #0x10]
- mov r1, #0x80
- add r4, r2, #0x20
- strb r1, [r4, r3]
- add r3, r3, #0x1
- ands r1, r3, #0x3
- beq _020D2E68
- mov r2, #0x0
-_020D2E58:
- strb r2, [r4, r3]
- add r3, r3, #0x1
- ands r1, r3, #0x3
- bne _020D2E58
-_020D2E68:
- ldr r1, [sp, #0x10]
- add r0, r0, #0x1
- ldr r1, [r1, #0x1c]
- cmp r1, #0x38
- blt _020D2EB4
- cmp r0, #0x10
- bge _020D2E98
- mov r1, #0x0
-_020D2E88:
- str r1, [r5, r0, lsl #0x2]
- add r0, r0, #0x1
- cmp r0, #0x10
- blt _020D2E88
-_020D2E98:
- ldr r1, _020D3008 ; =0x02106A00
- ldr r0, [sp, #0x10]
- ldr r3, [r1, #0x0]
- mov r1, r5
- mov r2, #0x40
- blx r3
- mov r0, #0x0
-_020D2EB4:
- cmp r0, #0xe
- bge _020D2ED0
- mov r1, #0x0
-_020D2EC0:
- str r1, [r5, r0, lsl #0x2]
- add r0, r0, #0x1
- cmp r0, #0xe
- blt _020D2EC0
-_020D2ED0:
- ldr r0, [sp, #0x10]
- mov r1, r5
- ldr r2, [r0, #0x14]
- ldr r3, _020D3008 ; =0x02106A00
- strb r2, [r4, #0x3f]
- mov r0, r2, lsr #0x8
- strb r0, [r4, #0x3e]
- mov r0, r2, lsr #0x10
- strb r0, [r4, #0x3d]
- mov r0, r2, lsr #0x18
- strb r0, [r4, #0x3c]
- ldr r0, [sp, #0x10]
- mov r2, #0x40
- ldr r5, [r0, #0x18]
- strb r5, [r4, #0x3b]
- mov r0, r5, lsr #0x8
- strb r0, [r4, #0x3a]
- mov r0, r5, lsr #0x10
- strb r0, [r4, #0x39]
- mov r0, r5, lsr #0x18
- strb r0, [r4, #0x38]
- ldr r0, [sp, #0x10]
- ldr r3, [r3, #0x0]
- blx r3
- ldr r0, [sp, #0x10]
- add r1, sp, #0x10
- ldr r3, [r0, #0x0]
- mov r0, #0x0
- mov r2, r3, lsr #0x18
- strb r2, [r6, #0x0]
- mov r2, r3, lsr #0x10
- strb r2, [r6, #0x1]
- mov r2, r3, lsr #0x8
- strb r2, [r6, #0x2]
- strb r3, [r6, #0x3]
- ldr r3, [sp, #0x10]
- mov r2, #0x4
- ldr r4, [r3, #0x4]
- mov r3, r4, lsr #0x18
- strb r3, [r6, #0x4]
- mov r3, r4, lsr #0x10
- strb r3, [r6, #0x5]
- mov r3, r4, lsr #0x8
- strb r3, [r6, #0x6]
- strb r4, [r6, #0x7]
- ldr r3, [sp, #0x10]
- ldr r4, [r3, #0x8]
- mov r3, r4, lsr #0x18
- strb r3, [r6, #0x8]
- mov r3, r4, lsr #0x10
- strb r3, [r6, #0x9]
- mov r3, r4, lsr #0x8
- strb r3, [r6, #0xa]
- strb r4, [r6, #0xb]
- ldr r3, [sp, #0x10]
- ldr r4, [r3, #0xc]
- mov r3, r4, lsr #0x18
- strb r3, [r6, #0xc]
- mov r3, r4, lsr #0x10
- strb r3, [r6, #0xd]
- mov r3, r4, lsr #0x8
- strb r3, [r6, #0xe]
- strb r4, [r6, #0xf]
- ldr r3, [sp, #0x10]
- ldr r4, [r3, #0x10]
- mov r3, r4, lsr #0x18
- strb r3, [r6, #0x10]
- mov r3, r4, lsr #0x10
- strb r3, [r6, #0x11]
- mov r3, r4, lsr #0x8
- strb r3, [r6, #0x12]
- strb r4, [r6, #0x13]
- ldr r3, [sp, #0x10]
- str r0, [r3, #0x1c]
- bl MIi_CpuClear32
- ldmia sp!, {r4-r6,lr}
- add sp, sp, #0x10
- bx lr
- .balign 4
-_020D3008: .word Unk_02106A00 ; = 0x02106A00
-
- arm_func_start MATH_SHA1Update
-MATH_SHA1Update: ; 0x020D300C
- stmdb sp!, {r4-r8,lr}
- mov r8, r0
- movs r6, r2
- mov r7, r1
- add r5, r8, #0x20
- ldmeqia sp!, {r4-r8,lr}
- bxeq lr
- ldr r0, [r8, #0x14]
- add r1, r0, r6, lsl #0x3
- cmp r1, r0
- ldrcc r0, [r8, #0x18]
- addcc r0, r0, #0x1
- strcc r0, [r8, #0x18]
- ldr r0, [r8, #0x18]
- add r0, r0, r6, lsr #0x1d
- str r0, [r8, #0x18]
- str r1, [r8, #0x14]
- ldr r1, [r8, #0x1c]
- cmp r1, #0x0
- beq _020D30CC
- add r0, r1, r6
- cmp r0, #0x40
- blo _020D30A8
- rsb r4, r1, #0x40
- mov r0, r7
- mov r2, r4
- add r1, r5, r1
- bl MI_CpuCopy8
- ldr r1, _020D3164 ; =0x02106A00
- mov r0, r8
- ldr r3, [r1, #0x0]
- mov r1, r5
- mov r2, #0x40
- sub r6, r6, r4
- add r7, r7, r4
- blx r3
- mov r0, #0x0
- str r0, [r8, #0x1c]
- b _020D30CC
-_020D30A8:
- mov r0, r7
- mov r2, r6
- add r1, r5, r1
- bl MI_CpuCopy8
- ldr r0, [r8, #0x1c]
- add r0, r0, r6
- str r0, [r8, #0x1c]
- ldmia sp!, {r4-r8,lr}
- bx lr
-_020D30CC:
- cmp r6, #0x40
- blo _020D313C
- bic r4, r6, #0x3f
- sub r6, r6, r4
- ands r0, r7, #0x3
- bne _020D3104
- ldr r1, _020D3164 ; =0x02106A00
- mov r0, r8
- ldr r3, [r1, #0x0]
- mov r1, r7
- mov r2, r4
- blx r3
- add r7, r7, r4
- b _020D313C
-_020D3104:
- mov r0, r7
- mov r1, r5
- mov r2, #0x40
- bl MI_CpuCopy8
- ldr r1, _020D3164 ; =0x02106A00
- mov r0, r8
- ldr r3, [r1, #0x0]
- mov r1, r5
- mov r2, #0x40
- add r7, r7, #0x40
- blx r3
- sub r4, r4, #0x40
- cmp r4, #0x0
- bgt _020D3104
-_020D313C:
- str r6, [r8, #0x1c]
- cmp r6, #0x0
- ldmeqia sp!, {r4-r8,lr}
- bxeq lr
- mov r0, r7
- mov r1, r5
- mov r2, r6
- bl MI_CpuCopy8
- ldmia sp!, {r4-r8,lr}
- bx lr
- .balign 4
-_020D3164: .word Unk_02106A00 ; = 0x02106A00
-
- arm_func_start MATH_SHA1Init
-MATH_SHA1Init: ; 0x020D3168
- ldr r1, _020D31A4 ; =0x67452301
- ldr r2, _020D31A8 ; =0xEFCDAB89
- str r1, [r0, #0x0]
- ldr r1, _020D31AC ; =0x98BADCFE
- str r2, [r0, #0x4]
- ldr r2, _020D31B0 ; =0x10325476
- str r1, [r0, #0x8]
- ldr r1, _020D31B4 ; =0xC3D2E1F0
- str r2, [r0, #0xc]
- str r1, [r0, #0x10]
- mov r1, #0x0
- str r1, [r0, #0x14]
- str r1, [r0, #0x18]
- str r1, [r0, #0x1c]
- bx lr
- .balign 4
-_020D31A4: .word 0x67452301
-_020D31A8: .word 0xEFCDAB89
-_020D31AC: .word 0x98BADCFE
-_020D31B0: .word 0x10325476
-_020D31B4: .word 0xC3D2E1F0
-
- arm_func_start MATHi_CalcHMAC
-MATHi_CalcHMAC: ; 0x020D31B8
- stmdb sp!, {r4-r9,lr}
- sub sp, sp, #0xc4
- ldr r5, [sp, #0xe0]
- ldr r4, [sp, #0xe4]
- movs r9, r0
- mov r8, r1
- mov r7, r2
- mov r6, r3
- addeq sp, sp, #0xc4
- ldmeqia sp!, {r4-r9,lr}
- bxeq lr
- cmp r8, #0x0
- addeq sp, sp, #0xc4
- ldmeqia sp!, {r4-r9,lr}
- bxeq lr
- cmp r7, #0x0
- addeq sp, sp, #0xc4
- ldmeqia sp!, {r4-r9,lr}
- bxeq lr
- cmp r6, #0x0
- addeq sp, sp, #0xc4
- ldmeqia sp!, {r4-r9,lr}
- bxeq lr
- cmp r5, #0x0
- addeq sp, sp, #0xc4
- ldmeqia sp!, {r4-r9,lr}
- bxeq lr
- cmp r4, #0x0
- addeq sp, sp, #0xc4
- ldmeqia sp!, {r4-r9,lr}
- bxeq lr
- ldr r0, [r4, #0x4]
- cmp r5, r0
- ble _020D3278
- ldr r0, [r4, #0x8]
- ldr r1, [r4, #0x10]
- blx r1
- ldr r0, [r4, #0x8]
- ldr r3, [r4, #0x14]
- mov r1, r6
- mov r2, r5
- blx r3
- ldr r0, [r4, #0x8]
- ldr r2, [r4, #0x18]
- add r1, sp, #0x0
- blx r2
- ldr r5, [r4, #0x0]
- add r6, sp, #0x0
-_020D3278:
- cmp r5, #0x0
- mov r0, #0x0
- ble _020D32A0
- add r2, sp, #0x40
-_020D3288:
- ldrb r1, [r6, r0]
- add r0, r0, #0x1
- cmp r0, r5
- eor r1, r1, #0x36
- strb r1, [r2], #0x1
- blt _020D3288
-_020D32A0:
- ldr r1, [r4, #0x4]
- cmp r0, r1
- bge _020D32CC
- add r1, sp, #0x40
- add r3, r1, r0
- mov r2, #0x36
-_020D32B8:
- strb r2, [r3], #0x1
- ldr r1, [r4, #0x4]
- add r0, r0, #0x1
- cmp r0, r1
- blt _020D32B8
-_020D32CC:
- ldr r0, [r4, #0x8]
- ldr r1, [r4, #0x10]
- blx r1
- ldr r0, [r4, #0x8]
- ldr r2, [r4, #0x4]
- ldr r3, [r4, #0x14]
- add r1, sp, #0x40
- blx r3
- ldr r0, [r4, #0x8]
- ldr r3, [r4, #0x14]
- mov r1, r8
- mov r2, r7
- blx r3
- ldr r0, [r4, #0x8]
- ldr r1, [r4, #0xc]
- ldr r2, [r4, #0x18]
- blx r2
- cmp r5, #0x0
- mov r2, #0x0
- ble _020D3338
- add r1, sp, #0x80
-_020D3320:
- ldrb r0, [r6, r2]
- add r2, r2, #0x1
- cmp r2, r5
- eor r0, r0, #0x5c
- strb r0, [r1], #0x1
- blt _020D3320
-_020D3338:
- ldr r0, [r4, #0x4]
- cmp r2, r0
- bge _020D3364
- add r0, sp, #0x80
- add r3, r0, r2
- mov r1, #0x5c
-_020D3350:
- strb r1, [r3], #0x1
- ldr r0, [r4, #0x4]
- add r2, r2, #0x1
- cmp r2, r0
- blt _020D3350
-_020D3364:
- ldr r0, [r4, #0x8]
- ldr r1, [r4, #0x10]
- blx r1
- ldr r0, [r4, #0x8]
- ldr r2, [r4, #0x4]
- ldr r3, [r4, #0x14]
- add r1, sp, #0x80
- blx r3
- ldr r0, [r4, #0x8]
- ldr r1, [r4, #0xc]
- ldr r2, [r4, #0x0]
- ldr r3, [r4, #0x14]
- blx r3
- ldr r0, [r4, #0x8]
- ldr r2, [r4, #0x18]
- mov r1, r9
- blx r2
- add sp, sp, #0xc4
- ldmia sp!, {r4-r9,lr}
- bx lr
- .balign 4
-_020D33B4: .word 0x00FF00FF
-_020D33B8: .word 0x5A827999
-_020D33BC: .word 0x6ED9EBA1
-_020D33C0: .word 0x8F1BBCDC
-_020D33C4: .word 0xCA62C1D6
-
- arm_func_start DGTi_hash2_arm4_small
-DGTi_hash2_arm4_small: ; 0x020D33C8
- stmdb sp!, {r4-r12,lr}
- ldmia r0, {r3,r9-r12}
- sub sp, sp, #0x84
- str r2, [sp, #0x80]
-_020D33D8:
- ldr r8, _020D33B8 ; =0x5A827999
- ldr r7, _020D33B4 ; =0x00FF00FF
- mov r6, sp
- mov r5, #0x0
-_020D33E8:
- ldr r4, [r1], #0x4
- add r2, r8, r12
- add r2, r2, r3, ror #0x1B
- and lr, r4, r7
- and r4, r7, r4, ror #0x18
- orr r4, r4, lr, ror #0x8
- str r4, [r6, #0x40]
- str r4, [r6], #0x4
- add r2, r2, r4
- eor r4, r10, r11
- and r4, r4, r9
- eor r4, r4, r11
- add r2, r2, r4
- mov r9, r9, ror #0x2
- mov r12, r11
- mov r11, r10
- mov r10, r9
- mov r9, r3
- mov r3, r2
- add r5, r5, #0x4
- cmp r5, #0x40
- blt _020D33E8
- mov r7, #0x0
- mov r6, sp
-_020D3448:
- ldr r2, [r6, #0x0]
- ldr r5, [r6, #0x8]
- ldr r4, [r6, #0x20]
- ldr lr, [r6, #0x34]
- eor r2, r2, r5
- eor r4, r4, lr
- eor r2, r2, r4
- mov r2, r2, ror #0x1F
- str r2, [r6, #0x40]
- str r2, [r6], #0x4
- add r2, r2, r12
- add r2, r2, r8
- add r2, r2, r3, ror #0x1B
- eor r4, r10, r11
- and r4, r4, r9
- eor r4, r4, r11
- add r2, r2, r4
- mov r9, r9, ror #0x2
- mov r12, r11
- mov r11, r10
- mov r10, r9
- mov r9, r3
- mov r3, r2
- add r7, r7, #0x4
- cmp r7, #0x10
- blt _020D3448
- ldr r8, _020D33BC ; =0x6ED9EBA1
- mov r7, #0x0
-_020D34B8:
- ldr r2, [r6, #0x0]
- ldr r4, [r6, #0x8]
- ldr lr, [r6, #0x20]
- ldr r5, [r6, #0x34]
- eor r2, r2, r4
- eor lr, lr, r5
- eor r2, r2, lr
- mov r2, r2, ror #0x1F
- str r2, [r6, #0x40]
- str r2, [r6], #0x4
- add r2, r2, r12
- add r2, r2, r8
- add r2, r2, r3, ror #0x1B
- eor lr, r9, r10
- eor lr, lr, r11
- add r2, r2, lr
- mov r9, r9, ror #0x2
- mov r12, r11
- mov r11, r10
- mov r10, r9
- mov r9, r3
- mov r3, r2
- add r7, r7, #0x1
- cmp r7, #0xc
- moveq r6, sp
- cmp r7, #0x14
- blt _020D34B8
- ldr r8, _020D33C0 ; =0x8F1BBCDC
- mov r7, #0x0
-_020D352C:
- ldr r2, [r6, #0x0]
- ldr lr, [r6, #0x8]
- ldr r5, [r6, #0x20]
- ldr r4, [r6, #0x34]
- eor r2, r2, lr
- eor r5, r5, r4
- eor r2, r2, r5
- mov r2, r2, ror #0x1F
- str r2, [r6, #0x40]
- str r2, [r6], #0x4
- add r2, r2, r12
- add r2, r2, r8
- add r2, r2, r3, ror #0x1B
- orr r5, r9, r10
- and r5, r5, r11
- and r4, r9, r10
- orr r5, r5, r4
- add r2, r2, r5
- mov r9, r9, ror #0x2
- mov r12, r11
- mov r11, r10
- mov r10, r9
- mov r9, r3
- mov r3, r2
- add r7, r7, #0x1
- cmp r7, #0x8
- moveq r6, sp
- cmp r7, #0x14
- blt _020D352C
- ldr r8, _020D33C4 ; =0xCA62C1D6
- mov r7, #0x0
-_020D35A8:
- ldr r2, [r6, #0x0]
- ldr r5, [r6, #0x8]
- ldr r4, [r6, #0x20]
- ldr lr, [r6, #0x34]
- eor r2, r2, r5
- eor r4, r4, lr
- eor r2, r2, r4
- mov r2, r2, ror #0x1F
- str r2, [r6, #0x40]
- str r2, [r6], #0x4
- add r2, r2, r12
- add r2, r2, r8
- add r2, r2, r3, ror #0x1B
- eor r4, r9, r10
- eor r4, r4, r11
- add r2, r2, r4
- mov r9, r9, ror #0x2
- mov r12, r11
- mov r11, r10
- mov r10, r9
- mov r9, r3
- mov r3, r2
- add r7, r7, #0x1
- cmp r7, #0x4
- moveq r6, sp
- cmp r7, #0x14
- blt _020D35A8
- ldmia r0, {r2,r4,r6-r7,lr}
- add r3, r3, r2
- add r9, r9, r4
- add r10, r10, r6
- add r11, r11, r7
- add r12, r12, lr
- stmia r0, {r3,r9-r12}
- ldr lr, [sp, #0x80]
- subs lr, lr, #0x40
- str lr, [sp, #0x80]
- bgt _020D33D8
- add sp, sp, #0x84
- ldmia sp!, {r4-r12,pc}
diff --git a/arm9/asm/libmath.s b/arm9/asm/libmath.s
index 02dcfbcf..e841f5da 100644
--- a/arm9/asm/libmath.s
+++ b/arm9/asm/libmath.s
@@ -32,16 +32,16 @@ MATH_CalcSHA1: ; 0x020DDCA0
add r0, sp, #0x0
mov r5, r1
mov r4, r2
- bl MATH_SHA1Init
+ bl DGT_Hash2Reset
_020DDCBC: ; 0x020DDCBC
add r0, sp, #0x0
mov r1, r5
mov r2, r4
- bl MATH_SHA1Update
+ bl DGT_Hash2SetSource
_020DDCCC: ; 0x020DDCCC
add r0, sp, #0x0
mov r1, r6
- bl MATH_SHA1GetHash
+ bl DGT_Hash2GetDigest
add sp, sp, #0x68
ldmia sp!, {r4-r6,lr}
bx lr
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
index d75850de..dfda1697 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd.s
@@ -898,7 +898,7 @@ FUN_0203A038: ; 0x0203A038
str r1, [r0, #0x8]
ldrb r2, [r2, #0x0]
ldr r1, [r0, #0x78]
- bl FUN_021E2C24
+ bl MOD05_021E2C24
mov r0, #0x0
pop {r3, pc}
@@ -930,7 +930,7 @@ FUN_0203A04C: ; 0x0203A04C
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- bl FUN_021E2C24
+ bl MOD05_021E2C24
add r0, r5, #0x0
bl FUN_0200A8B8
mov r0, #0x0
@@ -968,7 +968,7 @@ FUN_0203A098: ; 0x0203A098
add r1, r5, #0x0
add r2, r6, #0x0
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
add r0, r5, #0x0
bl FUN_0200A8B8
ldr r1, _0203A0F8 ; =FUN_0203A2F0
@@ -1004,7 +1004,7 @@ FUN_0203A0FC: ; 0x0203A0FC
add r1, r4, #0x0
add r2, r6, #0x0
add r3, r7, #0x0
- bl FUN_021E2C58
+ bl MOD05_021E2C58
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}
@@ -1034,7 +1034,7 @@ FUN_0203A13C: ; 0x0203A13C
add r1, r4, #0x0
add r2, r6, #0x0
add r3, r7, #0x0
- bl FUN_021E2C58
+ bl MOD05_021E2C58
ldr r1, _0203A184 ; =FUN_0203A2F0
add r0, r5, #0x0
bl SetupNativeScript
@@ -1085,7 +1085,7 @@ _0203A1AA:
add r0, r5, #0x0
add r1, r6, #0x0
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
add r0, r6, #0x0
bl FUN_0200A8B8
b _0203A1F4
@@ -1097,7 +1097,7 @@ _0203A1E2:
str r2, [sp, #0x4]
ldrh r2, [r4, #0x2]
ldrh r3, [r4, #0x4]
- bl FUN_021E2C58
+ bl MOD05_021E2C58
_0203A1F4:
ldr r1, _0203A20C ; =FUN_0203A2F0
add r0, r5, #0x0
@@ -1143,7 +1143,7 @@ FUN_0203A210: ; 0x0203A210
str r0, [sp, #0x0]
ldr r0, [r6, #0xc]
add r1, r7, #0x0
- bl FUN_02244210
+ bl MOD06_02244210
add r6, r0, #0x0
add r2, sp, #0x4
ldrb r2, [r2, #0x0]
@@ -1153,7 +1153,7 @@ FUN_0203A210: ; 0x0203A210
lsl r2, r2, #0x18
lsr r2, r2, #0x18
mov r3, #0x1
- bl FUN_021E2CBC
+ bl MOD05_021E2CBC
add r0, r6, #0x0
bl FUN_0200AB18
ldr r1, _0203A284 ; =FUN_0203A2F0
@@ -1174,7 +1174,7 @@ FUN_0203A288: ; 0x0203A288
add r4, r0, #0x0
add r0, sp, #0x4
add r1, r5, #0x0
- bl FUN_021E2BB8
+ bl MOD05_021E2BB8
mov r1, #0x3
add r0, sp, #0x4
strb r1, [r0, #0x2]
@@ -1184,7 +1184,7 @@ FUN_0203A288: ; 0x0203A288
add r0, r5, #0x0
add r2, r4, #0x0
mov r3, #0x0
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A2C0 ; =FUN_0203A2F0
add r0, r5, #0x0
bl SetupNativeScript
@@ -1207,7 +1207,7 @@ FUN_0203A2C4: ; 0x0203A2C4
str r1, [sp, #0x0]
ldrb r2, [r2, #0x0]
ldr r1, [r4, #0x78]
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A2EC ; =FUN_0203A2F0
add r0, r4, #0x0
bl SetupNativeScript
@@ -1247,7 +1247,7 @@ FUN_0203A304: ; 0x0203A304
add r0, r4, #0x0
lsr r2, r2, #0x18
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A33C ; =FUN_0203A2F0
add r0, r4, #0x0
bl SetupNativeScript
@@ -1271,7 +1271,7 @@ FUN_0203A340: ; 0x0203A340
add r4, r0, #0x0
add r0, sp, #0x4
add r1, r5, #0x0
- bl FUN_021E2BB8
+ bl MOD05_021E2BB8
lsl r2, r4, #0x18
mov r3, #0x1
add r0, sp, #0x4
@@ -1281,7 +1281,7 @@ FUN_0203A340: ; 0x0203A340
ldr r1, [r5, #0x78]
add r0, r5, #0x0
lsr r2, r2, #0x18
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A384 ; =FUN_0203A2F0
add r0, r5, #0x0
bl SetupNativeScript
@@ -1309,7 +1309,7 @@ FUN_0203A388: ; 0x0203A388
ldr r1, [r4, #0x78]
add r0, r4, #0x0
lsr r2, r2, #0x18
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A3C0 ; =FUN_0203A2F0
add r0, r4, #0x0
bl SetupNativeScript
@@ -1337,7 +1337,7 @@ FUN_0203A3C4: ; 0x0203A3C4
ldr r1, [r4, #0x78]
add r0, r4, #0x0
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A3FC ; =FUN_0203A2F0
add r0, r4, #0x0
bl SetupNativeScript
@@ -1365,12 +1365,12 @@ FUN_0203A400: ; 0x0203A400
add r0, r5, #0x0
add r2, r4, #0x0
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
b _0203A448
_0203A428:
add r0, sp, #0x4
add r1, r5, #0x0
- bl FUN_021E2BB8
+ bl MOD05_021E2BB8
mov r1, #0x1
add r0, sp, #0x4
strb r1, [r0, #0x0]
@@ -1381,7 +1381,7 @@ _0203A428:
add r0, r5, #0x0
add r2, r4, #0x0
mov r3, #0x0
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
_0203A448:
ldr r1, _0203A458 ; =FUN_0203A2F0
add r0, r5, #0x0
@@ -1854,12 +1854,12 @@ _0203A7E0:
ldr r0, [r4, #0x60]
ldr r1, [sp, #0x10]
add r2, r6, #0x0
- bl FUN_021E8128
+ bl MOD05_021E8128
ldr r0, [r4, #0x60]
mov r1, #0x1
- bl FUN_021E8130
+ bl MOD05_021E8130
add r0, r4, #0x0
- bl FUN_021E8158
+ bl MOD05_021E8158
ldr r2, [sp, #0x18]
ldr r0, [r5, #0x78]
ldr r1, [sp, #0xc]
@@ -1872,7 +1872,7 @@ _0203A7E0:
ldr r2, [r2, #0x0]
bl FUN_0200B7B8
ldr r0, [r4, #0x60]
- bl FUN_021E8140
+ bl MOD05_021E8140
mov r3, #0x0
str r3, [sp, #0x0]
str r3, [sp, #0x4]
@@ -1899,10 +1899,10 @@ FUN_0203A830: ; 0x0203A830
add r2, r0, #0x0
ldr r0, [r4, #0x60]
add r1, r5, #0x0
- bl FUN_021E8128
+ bl MOD05_021E8128
ldr r0, [r4, #0x60]
mov r1, #0x1
- bl FUN_021E8130
+ bl MOD05_021E8130
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -1918,7 +1918,7 @@ FUN_0203A85C: ; 0x0203A85C
str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
ldr r0, [r3, #0x60]
- bl FUN_021E8130
+ bl MOD05_021E8130
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -1930,7 +1930,7 @@ FUN_0203A878: ; 0x0203A878
add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x60]
- bl FUN_021E8148
+ bl MOD05_021E8148
cmp r0, #0x1
bne _0203A88E
mov r0, #0x0
@@ -1950,7 +1950,7 @@ FUN_0203A8A0: ; 0x0203A8A0
add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x60]
- bl FUN_021E8148
+ bl MOD05_021E8148
cmp r0, #0x1
bne _0203A8B4
mov r0, #0x1
@@ -2000,7 +2000,7 @@ FUN_0203A8B8: ; 0x0203A8B8
ldr r2, [r6, #0x0]
bl FUN_0200B7B8
ldr r0, [r4, #0x60]
- bl FUN_021E8140
+ bl MOD05_021E8140
add r4, r0, #0x0
add r0, r5, #0x0
add r0, #0x80
@@ -2042,7 +2042,7 @@ FUN_0203A94C: ; 0x0203A94C
bl FUN_020394B8
add r4, r0, #0x0
ldr r0, [r5, #0x60]
- bl FUN_021E8144
+ bl MOD05_021E8144
ldrb r0, [r6, #0x0]
ldr r5, _0203A9E8 ; =0x0000FFFF
bl FUN_020546C8
@@ -2376,7 +2376,7 @@ FUN_0203AB8C: ; 0x0203AB8C
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
add r0, r6, #0x0
- bl FUN_021E1BF8
+ bl MOD05_021E1BF8
ldr r1, [sp, #0x1c]
str r0, [r1, #0x0]
ldr r0, [sp, #0x24]
@@ -2441,7 +2441,7 @@ FUN_0203AC14: ; 0x0203AC14
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
add r0, r6, #0x0
- bl FUN_021E1BF8
+ bl MOD05_021E1BF8
ldr r1, [sp, #0x1c]
str r0, [r1, #0x0]
ldr r0, [sp, #0x24]
@@ -2467,7 +2467,7 @@ FUN_0203AC9C: ; 0x0203AC9C
str r2, [r4, #0x8]
ldrb r2, [r3, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021E1C4C
+ bl MOD05_021E1C4C
mov r0, #0x0
pop {r4, pc}
.balign 4
@@ -2498,7 +2498,7 @@ FUN_0203ACC4: ; 0x0203ACC4
add r2, r0, #0x0
ldr r0, [r4, #0x0]
add r1, r6, #0x0
- bl FUN_021E1C4C
+ bl MOD05_021E1C4C
mov r0, #0x0
pop {r4-r6, pc}
.balign 4
@@ -2512,7 +2512,7 @@ FUN_0203AD08: ; 0x0203AD08
mov r1, #0x0
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E1C54
+ bl MOD05_021E1C54
ldr r1, _0203AD28 ; =FUN_0203AD2C
add r0, r4, #0x0
bl SetupNativeScript
@@ -2552,7 +2552,7 @@ FUN_0203AD54: ; 0x0203AD54
mov r1, #0x0
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E1C54
+ bl MOD05_021E1C54
ldr r1, _0203AD74 ; =FUN_0203AD78
add r0, r4, #0x0
bl SetupNativeScript
@@ -2588,7 +2588,7 @@ FUN_0203AD78: ; 0x0203AD78
mov r0, #0x8
strh r0, [r4, #0x0]
ldr r0, [r6, #0x0]
- bl FUN_021E1ECC
+ bl MOD05_021E1ECC
mov r0, #0x1
pop {r4-r6, pc}
_0203ADB8:
@@ -2655,7 +2655,7 @@ FUN_0203ADC4: ; 0x0203ADC4
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
add r0, r6, #0x0
- bl FUN_021E1F34
+ bl MOD05_021E1F34
ldr r1, [sp, #0x1c]
str r0, [r1, #0x0]
ldr r0, [sp, #0x24]
@@ -2720,7 +2720,7 @@ FUN_0203AE4C: ; 0x0203AE4C
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
add r0, r6, #0x0
- bl FUN_021E1F34
+ bl MOD05_021E1F34
ldr r1, [sp, #0x1c]
str r0, [r1, #0x0]
ldr r0, [sp, #0x24]
@@ -2769,7 +2769,7 @@ FUN_0203AED4: ; 0x0203AED4
lsr r1, r1, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_021E1F58
+ bl MOD05_021E1F58
mov r0, #0x0
pop {r3-r7, pc}
@@ -2782,7 +2782,7 @@ FUN_0203AF34: ; 0x0203AF34
mov r1, #0x0
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E1F60
+ bl MOD05_021E1F60
ldr r1, _0203AF54 ; =FUN_0203AD2C
add r0, r4, #0x0
bl SetupNativeScript
@@ -2804,7 +2804,7 @@ FUN_0203AF58: ; 0x0203AF58
str r1, [r4, #0x8]
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021E26CC
+ bl MOD05_021E26CC
ldr r1, _0203AF80 ; =FUN_0203AD2C
add r0, r4, #0x0
bl SetupNativeScript
@@ -2826,7 +2826,7 @@ FUN_0203AF84: ; 0x0203AF84
str r1, [r4, #0x8]
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021E2B80
+ bl MOD05_021E2B80
mov r0, #0x1
pop {r4, pc}
@@ -2843,7 +2843,7 @@ FUN_0203AFA4: ; 0x0203AFA4
str r1, [r4, #0x8]
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021E2B9C
+ bl MOD05_021E2B9C
mov r0, #0x1
pop {r4, pc}
@@ -3479,7 +3479,7 @@ FUN_0203B468: ; 0x0203B468
ldr r1, [r1, #0x0]
add r4, r0, #0x0
ldr r1, [r1, #0x24]
- bl FUN_021EF5E0
+ bl MOD05_021EF5E0
add r5, #0x80
ldr r1, [r5, #0x0]
add r0, r4, #0x0
@@ -3512,7 +3512,7 @@ FUN_0203B500: ; 0x0203B500
ldr r1, [r1, #0x0]
add r4, r0, #0x0
ldr r1, [r1, #0x24]
- bl FUN_021EF5E0
+ bl MOD05_021EF5E0
add r5, #0x80
ldr r1, [r5, #0x0]
add r0, r4, #0x0
@@ -3540,7 +3540,7 @@ FUN_0203B544: ; 0x0203B544
pop {r3-r5, pc}
_0203B568:
add r1, r4, #0x0
- bl FUN_021F1EC0
+ bl MOD05_021F1EC0
mov r0, #0x0
pop {r3-r5, pc}
.balign 4
@@ -3669,56 +3669,56 @@ FUN_0203B640: ; 0x0203B640
cmp r7, #0x0
beq _0203B696
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0203B6A4
_0203B696:
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0203B6A4:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x0]
cmp r6, #0x0
beq _0203B6C0
lsl r0, r6, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0203B6CE
_0203B6C0:
lsl r0, r6, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0203B6CE:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x4]
cmp r4, #0x0
beq _0203B6EA
lsl r0, r4, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0203B6F8
_0203B6EA:
lsl r0, r4, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0203B6F8:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x8]
add r0, r5, #0x0
add r0, #0x80
@@ -4254,7 +4254,7 @@ FUN_0203BB34: ; 0x0203BB34
ldr r0, [r5, #0x0]
ldr r1, [r4, #0x0]
add r2, r7, #0x0
- bl FUN_021E1858
+ bl MOD05_021E1858
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -4446,7 +4446,7 @@ FUN_0203BCBC: ; 0x0203BCBC
push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_021F02C4
+ bl MOD05_021F02C4
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -4723,7 +4723,7 @@ FUN_0203BECC: ; 0x0203BECC
add r2, r0, #0x0
ldr r0, [r5, #0x74]
ldr r1, [r4, #0x0]
- bl FUN_021E1374
+ bl MOD05_021E1374
mov r0, #0x1
pop {r4-r6, pc}
.balign 4
@@ -4741,7 +4741,7 @@ FUN_0203BF00: ; 0x0203BF00
beq _0203BF1C
add r4, #0x80
ldr r0, [r4, #0x0]
- bl FUN_021E1994
+ bl MOD05_021E1994
_0203BF1C:
mov r0, #0x0
pop {r4, pc}
@@ -5134,7 +5134,7 @@ FUN_0203C200: ; 0x0203C200
mov r2, #0x8
str r0, [r6, #0x0]
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x0]
strh r7, [r4, #0x4]
strh r0, [r4, #0x6]
@@ -5889,7 +5889,7 @@ FUN_0203C844: ; 0x0203C844
add r1, r0, #0x0
ldr r0, [r5, #0x74]
add r2, r4, #0x0
- bl FUN_021E6990
+ bl MOD05_021E6990
mov r0, #0x1
pop {r3-r5, pc}
@@ -5918,7 +5918,7 @@ FUN_0203C874: ; 0x0203C874
add r1, r0, #0x0
ldr r0, [r5, #0x74]
add r2, r4, #0x0
- bl FUN_021E6410
+ bl MOD05_021E6410
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -5942,7 +5942,7 @@ FUN_0203C8B4: ; 0x0203C8B4
add r1, r0, #0x0
ldr r0, [r5, #0x74]
add r2, r4, #0x0
- bl FUN_021E6BF4
+ bl MOD05_021E6BF4
mov r0, #0x1
pop {r3-r5, pc}
@@ -5999,7 +5999,7 @@ FUN_0203C930: ; 0x0203C930
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x4]
ldr r0, [r0, #0xc]
- bl FUN_021DC174
+ bl MOD05_021DC174
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -6022,7 +6022,7 @@ FUN_0203C960: ; 0x0203C960
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x4]
ldr r0, [r0, #0xc]
- bl FUN_021DC174
+ bl MOD05_021DC174
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -6063,7 +6063,7 @@ FUN_0203C990: ; 0x0203C990
ldr r0, [r0, #0x0]
mov r1, #0x0
add r2, r6, #0x0
- bl FUN_0224666C
+ bl MOD06_0224666C
str r0, [r4, #0x0]
ldr r1, _0203C9F4 ; =FUN_0203C9F8
add r0, r5, #0x0
@@ -6082,11 +6082,11 @@ FUN_0203C9F8: ; 0x0203C9F8
bl FUN_02039438
add r4, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_022466A0
+ bl MOD06_022466A0
cmp r0, #0x1
bne _0203CA1A
ldr r0, [r4, #0x0]
- bl FUN_022466AC
+ bl MOD06_022466AC
mov r0, #0x1
pop {r4, pc}
_0203CA1A:
@@ -6098,7 +6098,7 @@ _0203CA1A:
FUN_0203CA20: ; 0x0203CA20
push {r3, lr}
ldr r0, [r0, #0x74]
- bl FUN_021E7030
+ bl MOD05_021E7030
mov r0, #0x1
pop {r3, pc}
@@ -6156,11 +6156,11 @@ FUN_0203CA5C: ; 0x0203CA5C
ldr r0, [r0, #0x0]
mov r1, #0x2
ldr r0, [r0, #0x38]
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
add r4, #0x80
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
b _0203CAE4
_0203CAA4:
add r0, r4, #0x0
@@ -6168,12 +6168,12 @@ _0203CAA4:
ldr r0, [r0, #0x0]
mov r1, #0x1
ldr r0, [r0, #0x38]
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
add r0, r4, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
add r0, r4, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
@@ -6202,7 +6202,7 @@ FUN_0203CAE8: ; 0x0203CAE8
ldr r0, [r0, #0x0]
mov r1, #0x2
ldr r0, [r0, #0x38]
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
add r4, #0x80
mov r1, #0x12
ldr r0, [r4, #0x0]
@@ -6264,7 +6264,7 @@ FUN_0203CB60: ; 0x0203CB60
add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
mov r0, #0x0
pop {r3, pc}
@@ -6297,7 +6297,7 @@ FUN_0203CB70: ; 0x0203CB70
bl FUN_0202A990
add r1, r6, #0x0
add r2, r4, #0x0
- bl FUN_02245910
+ bl MOD06_02245910
mov r0, #0x0
pop {r4-r6, pc}
.balign 4
@@ -6429,7 +6429,7 @@ FUN_0203CC88: ; 0x0203CC88
ldr r3, [sp, #0x4]
add r0, r4, #0x0
add r1, r7, #0x0
- bl FUN_02240790
+ bl MOD06_02240790
ldr r1, _0203CCF4 ; =FUN_0203CCF8
add r0, r5, #0x0
str r6, [r5, #0x64]
@@ -6451,7 +6451,7 @@ FUN_0203CCF8: ; 0x0203CCF8
lsr r1, r1, #0x10
bl FUN_020394B8
add r4, r0, #0x0
- bl FUN_022407DC
+ bl MOD06_022407DC
cmp r0, #0x0
bne _0203CD18
mov r0, #0x0
@@ -6500,7 +6500,7 @@ FUN_0203CD20: ; 0x0203CD20
ldr r3, [sp, #0x4]
add r0, r4, #0x0
add r1, r7, #0x0
- bl FUN_022407F8
+ bl MOD06_022407F8
ldr r1, _0203CD8C ; =FUN_0203CD90
add r0, r5, #0x0
str r6, [r5, #0x64]
@@ -6522,7 +6522,7 @@ FUN_0203CD90: ; 0x0203CD90
lsr r1, r1, #0x10
bl FUN_020394B8
add r4, r0, #0x0
- bl FUN_02240844
+ bl MOD06_02240844
cmp r0, #0x0
bne _0203CDB0
mov r0, #0x0
@@ -6653,7 +6653,7 @@ FUN_0203CE8C: ; 0x0203CE8C
bl FUN_02034E30
bl FUN_02034DD0
ldr r0, [r0, #0x0]
- bl FUN_021E2608
+ bl MOD05_021E2608
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -6688,7 +6688,7 @@ FUN_0203CEBC: ; 0x0203CEBC
str r0, [sp, #0x0]
ldr r0, [sp, #0x4]
add r2, r4, #0x0
- bl FUN_021E2464
+ bl MOD05_021E2464
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}
@@ -6971,7 +6971,7 @@ FUN_0203D140: ; 0x0203D140
push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_021F4DC8
+ bl MOD05_021F4DC8
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -6990,7 +6990,7 @@ FUN_0203D150: ; 0x0203D150
bl FUN_020394B8
add r5, r0, #0x0
add r0, r4, #0x0
- bl FUN_021F4D80
+ bl MOD05_021F4D80
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -7016,7 +7016,7 @@ FUN_0203D194: ; 0x0203D194
push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_021F4E7C
+ bl MOD05_021F4E7C
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -7094,7 +7094,7 @@ FUN_0203D214: ; 0x0203D214
bl FUN_020394B8
add r5, r0, #0x0
add r0, r4, #0x0
- bl FUN_021E85FC
+ bl MOD05_021E85FC
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -7104,7 +7104,7 @@ FUN_0203D214: ; 0x0203D214
FUN_0203D23C: ; 0x0203D23C
push {r3, lr}
ldr r0, [r0, #0x74]
- bl FUN_021E3424
+ bl MOD05_021E3424
mov r0, #0x1
pop {r3, pc}
@@ -8277,7 +8277,7 @@ FUN_0203DB88: ; 0x0203DB88
_0203DBC6:
add r0, r5, #0x0
add r1, r4, #0x0
- bl FUN_021F1EC0
+ bl MOD05_021F1EC0
mov r0, #0x0
pop {r4-r6, pc}
.balign 4
@@ -8340,7 +8340,7 @@ FUN_0203DC00: ; 0x0203DC00
ldr r0, [r5, #0x0]
add r1, r7, r1
add r2, r2, r4
- bl FUN_021DAE40
+ bl MOD05_021DAE40
mov r0, #0x0
pop {r3-r7, pc}
.balign 4
@@ -8354,7 +8354,7 @@ FUN_0203DC58: ; 0x0203DC58
add r0, #0x80
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021DAF78
+ bl MOD05_021DAF78
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -8368,7 +8368,7 @@ FUN_0203DC70: ; 0x0203DC70
add r0, #0x80
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021DAF98
+ bl MOD05_021DAF98
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -8382,7 +8382,7 @@ FUN_0203DC88: ; 0x0203DC88
add r0, #0x80
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021DAED4
+ bl MOD05_021DAED4
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -8396,7 +8396,7 @@ FUN_0203DCA0: ; 0x0203DCA0
add r0, #0x80
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021DAF28
+ bl MOD05_021DAF28
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -8416,7 +8416,7 @@ FUN_0203DCC8: ; 0x0203DCC8
push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_02241230
+ bl MOD06_02241230
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -8436,7 +8436,7 @@ FUN_0203DCE8: ; 0x0203DCE8
push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_02241914
+ bl MOD06_02241914
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -8488,7 +8488,7 @@ FUN_0203DD34: ; 0x0203DD34
str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
add r0, r3, #0x0
- bl FUN_02242A38
+ bl MOD06_02242A38
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -8536,7 +8536,7 @@ FUN_0203DD60: ; 0x0203DD60
add r2, r0, #0x0
ldr r1, [r1, #0x0]
add r0, r7, #0x0
- bl FUN_0224CA54
+ bl MOD18_0224CA54
str r0, [r4, #0x0]
ldr r1, _0203DDBC ; =FUN_0203DDC0
add r0, r5, #0x0
@@ -8564,7 +8564,7 @@ FUN_0203DDC0: ; 0x0203DDC0
bl FUN_020394B8
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_0224CA2C
+ bl MOD18_0224CA2C
strh r0, [r5, #0x0]
ldrh r1, [r5, #0x0]
ldr r0, _0203DDFC ; =0x0000FFFE
@@ -8594,7 +8594,7 @@ FUN_0203DE00: ; 0x0203DE00
add r0, #0x80
ldr r0, [r0, #0x0]
bl FUN_020394F0
- bl FUN_0224CA58
+ bl MOD06_0224CA58
strb r0, [r4, #0x0]
ldr r1, _0203DE34 ; =FUN_0203DE38
add r0, r5, #0x0
@@ -8618,7 +8618,7 @@ FUN_0203DE38: ; 0x0203DE38
thumb_func_start FUN_0203DE4C
FUN_0203DE4C: ; 0x0203DE4C
push {r3, lr}
- bl FUN_0224CA94
+ bl MOD11_0224CA94
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -8638,7 +8638,7 @@ FUN_0203DE58: ; 0x0203DE58
bl FUN_020394F0
add r1, r0, #0x0
add r0, r5, #0x0
- bl FUN_0224CAA0
+ bl MOD18_0224CAA0
mov r0, #0x0
pop {r3-r5, pc}
.balign 4
@@ -8658,7 +8658,7 @@ FUN_0203DE80: ; 0x0203DE80
bl FUN_020394F0
add r1, r0, #0x0
add r0, r5, #0x0
- bl FUN_0224CAB4
+ bl MOD18_0224CAB4
mov r0, #0x0
pop {r3-r5, pc}
.balign 4
@@ -8673,7 +8673,7 @@ FUN_0203DEA8: ; 0x0203DEA8
mov r1, #0x1
ldr r0, [r0, #0x74]
add r2, r1, #0x0
- bl FUN_02242BE0
+ bl MOD06_02242BE0
mov r0, #0x1
add sp, #0x8
pop {r3, pc}
@@ -8812,7 +8812,7 @@ FUN_0203DFA8: ; 0x0203DFA8
add r5, r0, #0x0
bl FUN_0201B9EC
add r1, r5, #0x0
- blx _s32_div_f
+ bl _s32_div_f
strh r1, [r4, #0x0]
mov r0, #0x1
pop {r3-r5, pc}
@@ -8837,7 +8837,7 @@ FUN_0203DFE0: ; 0x0203DFE0
add r5, r0, #0x0
bl FUN_0201B9EC
add r1, r5, #0x0
- blx _s32_div_f
+ bl _s32_div_f
strh r1, [r4, #0x0]
mov r0, #0x1
pop {r3-r5, pc}
@@ -8864,7 +8864,7 @@ FUN_0203E018: ; 0x0203E018
bl FUN_020394F0
add r1, r0, #0x0
add r0, r4, #0x0
- bl FUN_021F3A18
+ bl MOD05_021F3A18
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -8884,7 +8884,7 @@ FUN_0203E054: ; 0x0203E054
bl FUN_020394F0
add r1, r0, #0x0
add r0, r5, #0x0
- bl FUN_021F3AB4
+ bl MOD05_021F3AB4
mov r0, #0x0
pop {r3-r5, pc}
@@ -8922,7 +8922,7 @@ FUN_0203E078: ; 0x0203E078
add r0, r4, #0x0
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_021F3B7C
+ bl MOD05_021F3B7C
mov r0, #0x0
pop {r3-r7, pc}
@@ -8960,7 +8960,7 @@ FUN_0203E0CC: ; 0x0203E0CC
add r0, r4, #0x0
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_021F3B4C
+ bl MOD05_021F3B4C
mov r0, #0x0
pop {r3-r7, pc}
@@ -9394,7 +9394,7 @@ FUN_0203E4A0: ; 0x0203E4A0
add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0xc]
- bl FUN_0224CBB0
+ bl MOD06_0224CBB0
mov r0, #0x0
pop {r3, pc}
@@ -9412,7 +9412,7 @@ FUN_0203E4B0: ; 0x0203E4B0
add r4, r0, #0x0
ldr r0, [r5, #0x0]
ldr r0, [r0, #0xc]
- bl FUN_0224CC24
+ bl MOD06_0224CC24
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -9642,7 +9642,7 @@ FUN_0203E684: ; 0x0203E684
add r6, r0, #0x0
ldr r0, [r5, #0x0]
add r1, r4, #0x0
- bl FUN_022456E8
+ bl MOD06_022456E8
strh r0, [r6, #0x0]
mov r0, #0x1
pop {r4-r6, pc}
@@ -9680,7 +9680,7 @@ FUN_0203E6C4: ; 0x0203E6C4
ldrh r1, [r4, #0x0]
ldr r0, [r5, #0x0]
add r2, r6, #0x0
- bl FUN_0224525C
+ bl MOD06_0224525C
mov r0, #0x1
pop {r4-r6, pc}
@@ -9701,7 +9701,7 @@ FUN_0203E6FC: ; 0x0203E6FC
add r4, r0, #0x0
ldr r0, [r5, #0x0]
add r1, r6, #0x0
- bl FUN_02245340
+ bl MOD06_02245340
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -9765,7 +9765,7 @@ FUN_0203E774: ; 0x0203E774
add r4, r0, #0x0
bl FUN_0201B9EC
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r6, r0, #0x10
ldr r0, [sp, #0x0]
@@ -9885,7 +9885,7 @@ FUN_0203E870: ; 0x0203E870
str r0, [r5, #0x8]
ldrb r1, [r1, #0x0]
mov r0, #0xb
- bl FUN_0224884C
+ bl MOD06_0224884C
str r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -9907,7 +9907,7 @@ FUN_0203E894: ; 0x0203E894
bl FUN_020394B8
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_022488EC
+ bl MOD06_022488EC
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -9930,7 +9930,7 @@ FUN_0203E8C4: ; 0x0203E8C4
bl FUN_020394B8
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_022488F4
+ bl MOD06_022488F4
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -9969,7 +9969,7 @@ FUN_0203E928: ; 0x0203E928
mov r1, #0x14
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_022488CC
+ bl MOD06_022488CC
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10144,7 +10144,7 @@ FUN_0203EA90: ; 0x0203EA90
bl FUN_020394B8
add r1, r0, #0x0
ldr r0, [r4, #0x74]
- bl FUN_022411F4
+ bl MOD06_022411F4
mov r0, #0x1
pop {r4, pc}
@@ -10187,10 +10187,10 @@ FUN_0203EAB0: ; 0x0203EAB0
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r5, #0x0
- bl FUN_021F61E8
+ bl MOD05_021F61E8
strh r0, [r4, #0x0]
add r0, r5, #0x0
- bl FUN_021F61DC
+ bl MOD05_021F61DC
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -10211,7 +10211,7 @@ FUN_0203EB20: ; 0x0203EB20
lsl r1, r1, #0x18
ldr r0, [r4, #0x0]
lsr r1, r1, #0x18
- bl FUN_0224C27C
+ bl MOD06_0224C27C
mov r0, #0x1
pop {r4, pc}
.balign 4
@@ -10241,7 +10241,7 @@ FUN_0203EB48: ; 0x0203EB48
ldr r0, [r5, #0x0]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_0224C520
+ bl MOD06_0224C520
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -10349,7 +10349,7 @@ FUN_0203EBE4: ; 0x0203EBE4
ldr r2, [sp, #0x8]
ldr r3, [sp, #0xc]
add r1, r7, #0x0
- bl FUN_0224D14C
+ bl MOD06_0224D14C
add r5, r0, #0x0
mov r0, #0x0
mvn r0, r0
@@ -10415,7 +10415,7 @@ FUN_0203ECD8: ; 0x0203ECD8
str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
add r0, r3, #0x0
- bl FUN_0224C678
+ bl MOD06_0224C678
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10431,7 +10431,7 @@ FUN_0203ECF4: ; 0x0203ECF4
str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
add r0, r3, #0x0
- bl FUN_0224C6E8
+ bl MOD06_0224C6E8
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10447,7 +10447,7 @@ FUN_0203ED10: ; 0x0203ED10
str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
add r0, r3, #0x0
- bl FUN_0224C6F4
+ bl MOD06_0224C6F4
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10521,7 +10521,7 @@ FUN_0203EDA4: ; 0x0203EDA4
add r5, #0x80
str r0, [r4, #0x0]
ldr r0, [r5, #0x0]
- bl FUN_021E7184
+ bl MOD05_021E7184
str r0, [r4, #0x0]
mov r0, #0x1
pop {r3-r5, pc}
@@ -10535,7 +10535,7 @@ FUN_0203EDC8: ; 0x0203EDC8
mov r1, #0x16
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E71E8
+ bl MOD05_021E71E8
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -10555,7 +10555,7 @@ FUN_0203EDE0: ; 0x0203EDE0
lsl r1, r1, #0x18
ldr r0, [r4, #0x0]
lsr r1, r1, #0x18
- bl FUN_0224E554
+ bl MOD06_0224E554
mov r0, #0x1
pop {r4, pc}
.balign 4
@@ -10611,7 +10611,7 @@ FUN_0203EE58: ; 0x0203EE58
push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_0224E764
+ bl MOD06_0224E764
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10621,7 +10621,7 @@ FUN_0203EE68: ; 0x0203EE68
push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_0224E7C4
+ bl MOD06_0224E7C4
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -11059,7 +11059,7 @@ _0203F1E0:
_0203F1F8:
bl FUN_0201B9EC
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
mov r4, #0x0
add r2, sp, #0x4
_0203F206:
@@ -11485,7 +11485,7 @@ _0203F54C:
_0203F556:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x19
bge _0203F568
ldr r7, _0203F5CC ; =0x0000010D
@@ -11493,7 +11493,7 @@ _0203F556:
_0203F568:
bl FUN_0201B9EC
mov r1, #0x6
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r1, r0, #0x10
mov r0, #0x6
@@ -11900,7 +11900,7 @@ FUN_0203F880: ; 0x0203F880
_0203F8A2:
bl FUN_0201B9EC
mov r1, #0x65
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
cmp r0, r4
@@ -11945,17 +11945,17 @@ FUN_0203F8C0: ; 0x0203F8C0
_0203F8FC:
mov r2, #0x0
mov r3, #0x20
- bl FUN_0224F12C
+ bl MOD06_0224F12C
b _0203F91E
_0203F906:
mov r2, #0x1
mov r3, #0x20
- bl FUN_0224F12C
+ bl MOD06_0224F12C
b _0203F91E
_0203F910:
mov r2, #0x2
mov r3, #0x20
- bl FUN_0224F12C
+ bl MOD06_0224F12C
b _0203F91E
_0203F91A:
bl ErrorHandling
@@ -12002,13 +12002,13 @@ FUN_0203F954: ; 0x0203F954
add r4, #0x80
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x10]
- bl FUN_02239944
+ bl MOD06_02239944
b _0203F982
_0203F978:
add r4, #0x80
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x10]
- bl FUN_02239AAC
+ bl MOD06_02239AAC
_0203F982:
mov r0, #0x1
pop {r4, pc}
@@ -12389,9 +12389,9 @@ FUN_0203FC80: ; 0x0203FC80
add r0, r5, #0x0
mov r1, #0x4
mov r2, #0x3
- bl FUN_021E8588
+ bl MOD05_021E8588
str r0, [r4, #0x0]
- bl FUN_021E84F4
+ bl MOD05_021E84F4
_0203FCAA:
mov r0, #0x0
pop {r3-r5, pc}
@@ -12411,9 +12411,9 @@ FUN_0203FCB0: ; 0x0203FCB0
cmp r0, #0x0
bne _0203FCD6
ldr r0, [r4, #0x0]
- bl FUN_021E856C
+ bl MOD05_021E856C
ldr r0, [r4, #0x0]
- bl FUN_021E85E4
+ bl MOD05_021E85E4
_0203FCD6:
mov r0, #0x0
pop {r3-r5, pc}
@@ -12535,7 +12535,7 @@ _0203FD8E:
ldr r0, [r7, #0x74]
add r7, #0x80
ldr r1, [r7, #0x0]
- bl FUN_0223D3D0
+ bl MOD06_0223D3D0
mov r0, #0x1
add sp, #0x84
pop {r4-r7, pc}
@@ -12574,7 +12574,7 @@ _0203FDE6:
ldr r2, [r2, r3]
ldr r1, [r4, #0x0]
mov r3, #0x0
- bl FUN_0223D3D0
+ bl MOD06_0223D3D0
mov r0, #0x1
add sp, #0x4
pop {r3-r4, pc}
@@ -12609,7 +12609,7 @@ _0203FE2A:
ldr r2, [r2, r3]
ldr r1, [r4, #0x0]
mov r3, #0x1
- bl FUN_0223D3D0
+ bl MOD06_0223D3D0
mov r0, #0x1
add sp, #0x4
pop {r3-r4, pc}
@@ -12637,7 +12637,7 @@ FUN_0203FE48: ; 0x0203FE48
ldr r2, [r2, r3]
ldr r1, [r4, #0x0]
mov r3, #0x2
- bl FUN_0223D3D0
+ bl MOD06_0223D3D0
mov r0, #0x1
add sp, #0x4
pop {r3-r4, pc}
@@ -13575,7 +13575,7 @@ FUN_02040638: ; 0x02040638
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
ldr r0, [r0, #0x1c]
- bl FUN_021F4608
+ bl MOD05_021F4608
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -13587,7 +13587,7 @@ FUN_0204064C: ; 0x0204064C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
ldr r0, [r0, #0x1c]
- bl FUN_021F45E8
+ bl MOD05_021F45E8
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -13646,7 +13646,7 @@ _020406BA:
FUN_020406C0: ; 0x020406C0
push {r3, lr}
ldr r0, [r0, #0x74]
- bl FUN_0224D3E8
+ bl MOD06_0224D3E8
mov r0, #0x1
pop {r3, pc}
@@ -13994,11 +13994,11 @@ FUN_02040964: ; 0x02040964
bl FUN_020394F0
add r5, r0, #0x0
mov r1, #0x1e
- blx _s32_div_f
+ bl _s32_div_f
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x1e
- blx _s32_div_f
+ bl _s32_div_f
add r2, r1, #0x0
ldr r0, [sp, #0x0]
add r1, r7, #0x0
@@ -15183,14 +15183,14 @@ FUN_02041354: ; 0x02041354
_02041360:
add r0, r5, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
str r1, [sp, #0x0]
str r0, [sp, #0x4]
add r0, r4, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x8]
@@ -15199,12 +15199,12 @@ _02041360:
bne _020413AC
add r0, r5, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r4, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r6, #0x1
@@ -16556,7 +16556,7 @@ _02041E68:
add r4, #0x80
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_02248CD0
+ bl MOD06_02248CD0
strh r0, [r5, #0x0]
b _02041FD2
_02041E88:
@@ -16584,7 +16584,7 @@ _02041E88:
strh r0, [r5, #0x0]
ldr r0, [r4, #0x0]
add r1, r7, #0x0
- bl FUN_02249038
+ bl MOD06_02249038
strh r0, [r6, #0x0]
b _02041FD2
_02041ECA:
@@ -16623,12 +16623,12 @@ _02041ECA:
ldr r1, [r5, #0x0]
add r2, r6, #0x0
add r3, r7, #0x0
- bl FUN_022490A0
+ bl MOD06_022490A0
b _02041FD2
_02041F24:
add r4, #0x80
ldr r0, [r4, #0x0]
- bl FUN_02248CC0
+ bl MOD06_02248CC0
b _02041FD2
_02041F2E:
add r0, r4, #0x0
@@ -16652,7 +16652,7 @@ _02041F2E:
add r4, #0x80
strh r0, [r5, #0x0]
ldr r0, [r4, #0x0]
- bl FUN_022491FC
+ bl MOD06_022491FC
strh r0, [r6, #0x0]
b _02041FD2
_02041F68:
@@ -16684,7 +16684,7 @@ _02041F68:
ldr r0, [r4, #0x0]
add r1, r6, #0x0
add r2, r7, #0x0
- bl FUN_02248F70
+ bl MOD06_02248F70
strh r0, [r5, #0x0]
b _02041FD2
_02041FB4:
@@ -16698,7 +16698,7 @@ _02041FB4:
add r4, #0x80
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_02248FE0
+ bl MOD06_02248FE0
strh r0, [r5, #0x0]
_02041FD2:
mov r0, #0x0
@@ -17053,7 +17053,7 @@ FUN_020422A8: ; 0x020422A8
ldr r0, [r0, #0x4]
add r4, r1, #0x0
ldr r0, [r0, #0x14]
- bl FUN_02252538
+ bl MOD20_02252538
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x0
@@ -17145,7 +17145,7 @@ FUN_02042354: ; 0x02042354
add r0, #0x80
ldr r0, [r0, #0x0]
add r0, #0xa8
- bl FUN_022434BC
+ bl MOD06_022434BC
mov r0, #0x0
pop {r3, pc}
@@ -17164,7 +17164,7 @@ FUN_02042364: ; 0x02042364
bl FUN_020377AC
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_022434D0
+ bl MOD06_022434D0
add r5, #0x80
ldr r1, [r5, #0x0]
add r1, #0xa8
@@ -17180,7 +17180,7 @@ FUN_02042394: ; 0x02042394
ldr r0, [r0, #0x0]
add r0, #0xa8
ldr r0, [r0, #0x0]
- bl FUN_02243694
+ bl MOD06_02243694
add r4, #0x80
ldr r1, [r4, #0x0]
mov r0, #0x0
@@ -17333,7 +17333,7 @@ _02042406: ; jump table (using 16-bit offset)
.short _020426E6 - _02042406 - 2; case 100
_020424D0:
add r0, r6, #0x0
- bl FUN_0224312C
+ bl MOD06_0224312C
strh r0, [r4, #0x0]
b _020426FA
_020424DA:
@@ -17341,76 +17341,76 @@ _020424DA:
bne _020424EA
ldrb r0, [r5, #0xe]
ldr r1, [r1, #0xc]
- bl FUN_022432E4
+ bl MOD06_022432E4
strh r0, [r4, #0x0]
b _020426FA
_020424EA:
ldr r1, [r1, #0xc]
add r0, r6, #0x0
- bl FUN_022432E4
+ bl MOD06_022432E4
strh r0, [r4, #0x0]
b _020426FA
_020424F6:
- bl FUN_0224339C
+ bl MOD06_0224339C
b _020426FA
_020424FC:
ldr r0, [r1, #0xc]
bl FUN_0202A8CC
- bl FUN_022433A8
+ bl MOD06_022433A8
b _020426FA
_02042508:
ldr r0, [r1, #0xc]
bl FUN_0202A8CC
- bl FUN_022433B0
+ bl MOD06_022433B0
strh r0, [r4, #0x0]
b _020426FA
_02042516:
add r0, r1, #0x0
- bl FUN_022433B8
+ bl MOD06_022433B8
b _020426FA
_0204251E:
add r0, r1, #0x0
- bl FUN_022433F8
+ bl MOD06_022433F8
b _020426FA
_02042526:
ldr r0, [r1, #0xc]
add r1, r6, #0x0
- bl FUN_02243408
+ bl MOD06_02243408
strh r0, [r4, #0x0]
b _020426FA
_02042532:
ldr r1, [r1, #0xc]
mov r0, #0x0
mov r2, #0x2
- bl FUN_02243E74
+ bl MOD06_02243E74
strh r0, [r4, #0x0]
b _020426FA
_02042540:
mov r0, #0x0
ldr r1, [r1, #0xc]
add r2, r0, #0x0
- bl FUN_02243E74
+ bl MOD06_02243E74
strh r0, [r4, #0x0]
b _020426FA
_0204254E:
ldr r0, [r1, #0xc]
lsl r1, r6, #0x18
lsr r1, r1, #0x18
- bl FUN_02243428
+ bl MOD06_02243428
b _020426FA
_0204255A:
ldr r0, [r1, #0xc]
- bl FUN_02243448
+ bl MOD06_02243448
strh r0, [r4, #0x0]
b _020426FA
_02042564:
ldr r0, [r1, #0xc]
- bl FUN_0224345C
+ bl MOD06_0224345C
strh r0, [r4, #0x0]
b _020426FA
_0204256E:
ldr r0, [r1, #0xc]
- bl FUN_022434AC
+ bl MOD06_022434AC
strh r0, [r4, #0x0]
b _020426FA
_02042578:
@@ -17429,7 +17429,7 @@ _0204258A:
add r2, r0, #0x0
ldr r1, [r7, #0x74]
add r0, r5, #0x0
- bl FUN_022436C8
+ bl MOD06_022436C8
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
@@ -17442,60 +17442,60 @@ _020425A2:
add r1, r0, #0x0
ldr r2, [r2, #0xc]
add r0, r5, #0x0
- bl FUN_022436E8
+ bl MOD06_022436E8
strh r0, [r4, #0x0]
b _020426FA
_020425BC:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243780
+ bl MOD06_02243780
strh r0, [r4, #0x0]
b _020426FA
_020425C8:
add r0, r5, #0x0
- bl FUN_022438DC
+ bl MOD06_022438DC
strh r0, [r4, #0x0]
b _020426FA
_020425D2:
add r0, r5, #0x0
- bl FUN_022438E0
+ bl MOD06_022438E0
strh r0, [r4, #0x0]
b _020426FA
_020425DC:
add r0, r5, #0x0
- bl FUN_022438FC
+ bl MOD06_022438FC
strh r0, [r4, #0x0]
b _020426FA
_020425E6:
add r0, r5, #0x0
- bl FUN_02243920
+ bl MOD06_02243920
strh r0, [r4, #0x0]
b _020426FA
_020425F0:
add r0, r5, #0x0
- bl FUN_022439F8
+ bl MOD06_022439F8
b _020426FA
_020425F8:
add r0, r5, #0x0
- bl FUN_02243AD8
+ bl MOD06_02243AD8
b _020426FA
_02042600:
add r0, r5, #0x0
- bl FUN_02243BA8
+ bl MOD06_02243BA8
b _020426FA
_02042608:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243C5C
+ bl MOD06_02243C5C
b _020426FA
_02042612:
add r0, r5, #0x0
- bl FUN_02243D3C
+ bl MOD06_02243D3C
b _020426FA
_0204261A:
add r0, r5, #0x0
add r1, r6, #0x0
- bl FUN_02243DA0
+ bl MOD06_02243DA0
strh r0, [r4, #0x0]
b _020426FA
_02042626:
@@ -17507,45 +17507,45 @@ _02042626:
ldr r0, [r7, #0x0]
add r1, r5, #0x0
ldr r0, [r0, #0x10]
- bl FUN_02243DB8
+ bl MOD06_02243DB8
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
_02042642:
add r0, r5, #0x0
- bl FUN_02243DC0
+ bl MOD06_02243DC0
strh r0, [r4, #0x0]
b _020426FA
_0204264C:
add r0, r5, #0x0
add r1, r6, #0x0
- bl FUN_02243DC4
+ bl MOD06_02243DC4
b _020426FA
_02042656:
add r0, r5, #0x0
- bl FUN_02243DD8
+ bl MOD06_02243DD8
strh r0, [r4, #0x0]
b _020426FA
_02042660:
add r0, r5, #0x0
- bl FUN_02243DE0
+ bl MOD06_02243DE0
strh r0, [r4, #0x0]
b _020426FA
_0204266A:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243E34
+ bl MOD06_02243E34
b _020426FA
_02042674:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243F18
+ bl MOD06_02243F18
strh r0, [r4, #0x0]
b _020426FA
_02042680:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243F50
+ bl MOD06_02243F50
strh r0, [r4, #0x0]
b _020426FA
_0204268C:
@@ -17568,7 +17568,7 @@ _020426A0:
_020426AA:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243838
+ bl MOD06_02243838
b _020426FA
_020426B4:
add r0, r5, r6
@@ -17580,7 +17580,7 @@ _020426BE:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
mov r2, #0x1
- bl FUN_02243E74
+ bl MOD06_02243E74
strh r0, [r4, #0x0]
b _020426FA
_020426CC:
@@ -17593,7 +17593,7 @@ _020426CC:
_020426DA:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243F9C
+ bl MOD06_02243F9C
strh r0, [r4, #0x0]
b _020426FA
_020426E6:
@@ -17741,7 +17741,7 @@ FUN_020427D0: ; 0x020427D0
ldr r0, _0204285C ; =0x00000884
mov r2, #0x46
add r0, r6, r0
- blx MI_CpuFill8
+ bl MI_CpuFill8
cmp r4, #0x0
beq _0204281E
cmp r4, #0x1
@@ -17756,14 +17756,14 @@ _0204281E:
add r0, #0xa8
ldr r0, [r0, #0x0]
ldr r1, [r1, #0xc]
- bl FUN_022446FC
+ bl MOD06_022446FC
b _0204284C
_02042830:
add r5, #0x80
ldr r0, [r5, #0x0]
add r0, #0xa8
ldr r0, [r0, #0x0]
- bl FUN_02244758
+ bl MOD06_02244758
b _0204284C
_0204283E:
add r5, #0x80
@@ -17771,7 +17771,7 @@ _0204283E:
add r1, r7, #0x0
add r0, #0xa8
ldr r0, [r0, #0x0]
- bl FUN_02244770
+ bl MOD06_02244770
_0204284C:
bl FUN_02031190
ldr r1, _02042860 ; =0x0000083E
@@ -17924,7 +17924,7 @@ FUN_02042950: ; 0x02042950
ldr r0, [r5, #0x0]
add r1, r6, #0x0
add r2, r4, #0x0
- bl FUN_021E2A70
+ bl MOD05_021E2A70
str r0, [r7, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -17937,7 +17937,7 @@ FUN_02042980: ; 0x02042980
mov r1, #0x26
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E29B4
+ bl MOD05_021E29B4
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -17954,7 +17954,7 @@ FUN_02042998: ; 0x02042998
add r4, #0x80
ldr r0, [r4, #0x0]
ldr r1, [r1, #0x0]
- bl FUN_021E2AD4
+ bl MOD05_021E2AD4
mov r0, #0x0
pop {r4, pc}
.balign 4
@@ -18698,7 +18698,7 @@ FUN_02042F6C: ; 0x02042F6C
add r2, r7, #0x0
bl FUN_020671BC
add r6, r0, #0x0
- blx OS_GetTick
+ bl OS_GetTick
bl FUN_0201BA10
add r1, r0, #0x0
ldr r0, [sp, #0x14]
@@ -20033,7 +20033,7 @@ FUN_02043A44: ; 0x02043A44
ldr r0, [r4, #0x0]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_021E2950
+ bl MOD05_021E2950
str r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20046,7 +20046,7 @@ FUN_02043A94: ; 0x02043A94
mov r1, #0x26
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E29B4
+ bl MOD05_021E29B4
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -20063,7 +20063,7 @@ FUN_02043AAC: ; 0x02043AAC
add r4, #0x80
ldr r0, [r4, #0x0]
ldr r1, [r1, #0x0]
- bl FUN_021E29C8
+ bl MOD05_021E29C8
mov r0, #0x0
pop {r4, pc}
.balign 4
@@ -20423,7 +20423,7 @@ FUN_02043D78: ; 0x02043D78
ldr r0, [r4, #0x0]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_021E27E8
+ bl MOD05_021E27E8
str r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20436,7 +20436,7 @@ FUN_02043DC8: ; 0x02043DC8
mov r1, #0x27
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E288C
+ bl MOD05_021E288C
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -20453,7 +20453,7 @@ FUN_02043DE0: ; 0x02043DE0
add r4, #0x80
ldr r0, [r4, #0x0]
ldr r1, [r1, #0x0]
- bl FUN_021E28A0
+ bl MOD05_021E28A0
mov r0, #0x0
pop {r4, pc}
.balign 4
@@ -20470,7 +20470,7 @@ FUN_02043E00: ; 0x02043E00
add r0, r5, #0x0
bl FUN_02023D58
ldr r1, [r4, #0x0]
- bl FUN_021ED4E0
+ bl MOD05_021ED4E0
mov r0, #0x0
pop {r3-r5, pc}
@@ -20491,7 +20491,7 @@ FUN_02043E20: ; 0x02043E20
add r0, r4, #0x0
mov r1, #0x8
bl FUN_02022610
- bl FUN_021ED5EC
+ bl MOD05_021ED5EC
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -20505,7 +20505,7 @@ FUN_02043E50: ; 0x02043E50
mov r1, #0x8
ldr r0, [r0, #0xc]
bl FUN_02022610
- bl FUN_021ECD64
+ bl MOD05_021ECD64
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -20530,7 +20530,7 @@ FUN_02043E68: ; 0x02043E68
add r2, r0, #0x0
add r0, r6, #0x0
add r1, r5, #0x0
- bl FUN_021ED0CC
+ bl MOD05_021ED0CC
mov r0, #0x0
pop {r4-r6, pc}
@@ -20570,7 +20570,7 @@ FUN_02043E9C: ; 0x02043E9C
ldr r1, [r7, #0x0]
add r2, r6, #0x0
lsr r3, r3, #0x18
- bl FUN_021EC71C
+ bl MOD05_021EC71C
ldr r1, [sp, #0x0]
strh r0, [r1, #0x0]
mov r0, #0x0
@@ -20609,7 +20609,7 @@ FUN_02043EFC: ; 0x02043EFC
lsl r1, r4, #0x18
ldr r2, [r7, #0x0]
lsr r1, r1, #0x18
- bl FUN_021EC854
+ bl MOD05_021EC854
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20645,7 +20645,7 @@ FUN_02043F50: ; 0x02043F50
bl FUN_02022610
ldr r2, [r6, #0x0]
add r1, r5, #0x0
- bl FUN_021EC864
+ bl MOD05_021EC864
strh r0, [r7, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20682,7 +20682,7 @@ FUN_02043FA0: ; 0x02043FA0
bl FUN_0206BB1C
ldr r2, [r6, #0x0]
add r1, r7, #0x0
- bl FUN_021ED5C4
+ bl MOD05_021ED5C4
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20713,7 +20713,7 @@ FUN_02043FF4: ; 0x02043FF4
add r0, r4, #0x0
lsr r1, r1, #0x18
add r3, r5, #0x0
- bl FUN_021EC57C
+ bl MOD05_021EC57C
mov r0, #0x0
pop {r4-r6, pc}
.balign 4
@@ -20775,7 +20775,7 @@ FUN_02044034: ; 0x02044034
lsr r1, r1, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_021ED52C
+ bl MOD05_021ED52C
mov r0, #0x0
add sp, #0x10
pop {r3-r7, pc}
@@ -20797,7 +20797,7 @@ FUN_020440C0: ; 0x020440C0
add r0, r4, #0x0
mov r1, #0x8
bl FUN_02022610
- bl FUN_021ED644
+ bl MOD05_021ED644
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -20914,7 +20914,7 @@ FUN_02044198: ; 0x02044198
add r5, r0, #0x0
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
cmp r0, #0xf
@@ -21263,7 +21263,7 @@ FUN_02044414: ; 0x02044414
add r0, r4, #0x0
mov r2, #0x1
add r3, r7, #0x0
- bl FUN_021ECF14
+ bl MOD05_021ECF14
add r0, r6, #0x0
add r1, r4, #0x0
bl FUN_0206B900
@@ -21824,7 +21824,7 @@ FUN_020448D4: ; 0x020448D4
mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0204495A:
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_02000E0C.s b/arm9/asm/unk_02000E0C.s
index 9c67c9fd..15275ac8 100644
--- a/arm9/asm/unk_02000E0C.s
+++ b/arm9/asm/unk_02000E0C.s
@@ -2,337 +2,8 @@
.include "global.inc"
.text
-
- thumb_func_start FUN_02000E0C
-FUN_02000E0C: ; 0x02000E0C
- push {r3, lr}
- ldr r0, _02000E74 ; =0x02106FA0
- ldr r1, [r0, #0xc]
- cmp r1, #0x0
- bne _02000E4A
- ldr r1, [r0, #0x14]
- cmp r1, #0x0
- beq _02000E70
- mov r1, #0x0
- ldr r0, [r0, #0x10]
- mvn r1, r1
- cmp r0, r1
- beq _02000E2C
- mov r1, #0x0
- bl HandleLoadOverlay
-_02000E2C:
- ldr r0, _02000E74 ; =0x02106FA0
- mov r2, #0x0
- ldr r1, [r0, #0x10]
- str r1, [r0, #0x8]
- ldr r0, [r0, #0x14]
- ldr r1, _02000E78 ; =0x02106FB8
- bl FUN_02006234
- ldr r1, _02000E74 ; =0x02106FA0
- str r0, [r1, #0xc]
- mov r0, #0x0
- mvn r0, r0
- str r0, [r1, #0x10]
- mov r0, #0x0
- str r0, [r1, #0x14]
-_02000E4A:
- ldr r0, _02000E74 ; =0x02106FA0
- ldr r0, [r0, #0xc]
- bl FUN_02006290
- cmp r0, #0x0
- beq _02000E70
- ldr r0, _02000E74 ; =0x02106FA0
- ldr r0, [r0, #0xc]
- bl FUN_02006260
- ldr r0, _02000E74 ; =0x02106FA0
- mov r1, #0x0
- str r1, [r0, #0xc]
- ldr r0, [r0, #0x8]
- sub r1, r1, #0x1
- cmp r0, r1
- beq _02000E70
- bl UnloadOverlayByID
-_02000E70:
- pop {r3, pc}
- nop
-_02000E74: .word 0x02106FA0
-_02000E78: .word 0x02106FB8
-
- thumb_func_start FUN_02000E7C
-FUN_02000E7C: ; 0x02000E7C
- push {r3-r5, lr}
- add r5, r0, #0x0
- ldr r0, _02000E98 ; =0x02106FA0
- add r4, r1, #0x0
- ldr r0, [r0, #0x14]
- cmp r0, #0x0
- beq _02000E8E
- bl ErrorHandling
-_02000E8E:
- ldr r0, _02000E98 ; =0x02106FA0
- str r5, [r0, #0x10]
- str r4, [r0, #0x14]
- pop {r3-r5, pc}
- nop
-_02000E98: .word 0x02106FA0
-
- thumb_func_start FUN_02000E9C
-FUN_02000E9C: ; 0x02000E9C
- push {r3, lr}
- bl FUN_0202FB80
- mov r0, #0x1
- add r1, r0, #0x0
- blx OS_WaitIrq
- ldr r0, _02000EC4 ; =0x021C48B8
- ldr r1, [r0, #0x2c]
- add r1, r1, #0x1
- str r1, [r0, #0x2c]
- mov r1, #0x0
- str r1, [r0, #0x30]
- ldr r1, [r0, #0x0]
- cmp r1, #0x0
- beq _02000EC0
- ldr r0, [r0, #0x4]
- blx r1
-_02000EC0:
- pop {r3, pc}
- nop
-_02000EC4: .word 0x021C48B8
-
- thumb_func_start FUN_02000EC8
-FUN_02000EC8: ; 0x02000EC8
- push {r4, lr}
- add r4, r0, #0x0
- bl FUN_02033678
- cmp r0, #0x0
- beq _02000EE2
- blx CARD_TryWaitBackupAsync
- cmp r0, #0x1
- bne _02000EE2
- add r0, r4, #0x0
- blx OS_ResetSystem
-_02000EE2:
- bl FUN_02000E9C
- pop {r4, pc}
-
- thumb_func_start FUN_02000EE8
-FUN_02000EE8: ; 0x02000EE8
- push {r3, lr}
- bl FUN_020335B8
- add r1, r0, #0x0
- cmp r1, #0x1
- beq _02000EFE
- cmp r1, #0x2
- beq _02000F06
- cmp r1, #0x3
- beq _02000F0E
- pop {r3, pc}
-_02000EFE:
- mov r0, #0x1
- bl FUN_02000F4C
- pop {r3, pc}
-_02000F06:
- mov r0, #0x0
- bl FUN_02000F4C
- pop {r3, pc}
-_02000F0E:
- mov r0, #0x1
- bl FUN_02000F4C
- pop {r3, pc}
- .balign 4
-
- thumb_func_start FUN_02000F18
-FUN_02000F18: ; 0x02000F18
- push {r4, lr}
- ldr r1, _02000F48 ; =0x00007FFF
- add r4, r0, #0x0
- mov r0, #0x0
- bl FUN_0200E3A0
- ldr r1, _02000F48 ; =0x00007FFF
- mov r0, #0x1
- bl FUN_0200E3A0
- bl FUN_02032DAC
- cmp r0, #0x0
- beq _02000F3C
- bl FUN_020225F8
- bl FUN_0202287C
-_02000F3C:
- bl FUN_02000FE8
- add r0, r4, #0x0
- bl FUN_02000EC8
- b _02000F3C
- .balign 4
-_02000F48: .word 0x00007FFF
-
- thumb_func_start FUN_02000F4C
-FUN_02000F4C: ; 0x02000F4C
- push {r4-r6, lr}
- add r6, r0, #0x0
- cmp r1, #0x3
- bne _02000F60
- mov r0, #0x0
- mov r1, #0x3
- add r2, r0, #0x0
- bl FUN_02033F70
- b _02000F7A
-_02000F60:
- cmp r6, #0x0
- bne _02000F70
- mov r0, #0x0
- mov r1, #0x2
- add r2, r0, #0x0
- bl FUN_02033F70
- b _02000F7A
-_02000F70:
- mov r0, #0x0
- add r1, r0, #0x0
- add r2, r0, #0x0
- bl FUN_02033F70
-_02000F7A:
- bl FUN_02032DAC
- ldr r5, _02000FA0 ; =0x021C48B8
- mov r4, #0x1
-_02000F82:
- bl FUN_02000FE8
- bl FUN_02016464
- ldr r0, [r5, #0x48]
- tst r0, r4
- bne _02000F96
- bl FUN_02000E9C
- b _02000F82
-_02000F96:
- add r0, r6, #0x0
- bl FUN_02000F18
- pop {r4-r6, pc}
- nop
-_02000FA0: .word 0x021C48B8
-
- thumb_func_start FUN_02000FA4
-FUN_02000FA4: ; 0x02000FA4
- push {r4-r5, lr}
- sub sp, #0x1c
- add r0, sp, #0xc
- add r1, sp, #0x0
- bl FUN_0201265C
- ldr r0, _02000FE4 ; =0x021C48B8
- ldr r3, [sp, #0x10]
- ldr r4, [r0, #0x2c]
- ldr r1, [sp, #0x4]
- ldr r0, [sp, #0x8]
- ldr r5, [sp, #0x14]
- add r0, r1, r0
- lsl r2, r0, #0x18
- ldr r0, [sp, #0x0]
- lsl r3, r3, #0x8
- lsl r1, r0, #0x10
- mul r3, r5
- ldr r0, [sp, #0xc]
- lsl r3, r3, #0x10
- add r0, r0, r3
- add r0, r1, r0
- add r5, r2, r0
- add r0, r4, r5
- bl FUN_0201BA1C
- add r0, r4, r5
- bl FUN_0201B9E0
- add sp, #0x1c
- pop {r4-r5, pc}
- nop
-_02000FE4: .word 0x021C48B8
-
- thumb_func_start FUN_02000FE8
-FUN_02000FE8: ; 0x02000FE8
- push {r3-r7, lr}
- sub sp, #0x8
- ldr r0, _0200109C ; =0x027FFFA8
- ldrh r1, [r0, #0x0]
- mov r0, #0x2
- lsl r0, r0, #0xe
- and r0, r1
- asr r0, r0, #0xf
- beq _0200107E
- ldr r0, _020010A0 ; =0x021C4918
- ldrb r0, [r0, #0x7]
- cmp r0, #0x0
- bne _02001064
- bl FUN_0201CE04
- blx CTRDG_IsPulledOut
- cmp r0, #0x1
- bne _02001014
- ldr r0, _020010A4 ; =0x02106FA0
- mov r1, #0x1
- str r1, [r0, #0x4]
-_02001014:
- ldr r6, _020010A4 ; =0x02106FA0
- mov r0, #0xc
- ldr r1, [r6, #0x4]
- ldr r4, _0200109C ; =0x027FFFA8
- mov r2, #0x10
- add r5, r0, #0x0
- ldr r7, _020010A0 ; =0x021C4918
- orr r5, r2
-_02001024:
- ldrb r2, [r7, #0x6]
- mov r0, #0xc
- cmp r2, #0x0
- beq _02001032
- cmp r1, #0x0
- bne _02001032
- add r0, r5, #0x0
-_02001032:
- mov r1, #0x0
- add r2, r1, #0x0
- blx PM_GoSleepMode
- blx CARD_IsPulledOut
- cmp r0, #0x0
- beq _02001048
- blx PM_ForceToPowerOff
- b _0200105C
-_02001048:
- ldrh r1, [r4, #0x0]
- mov r0, #0x2
- lsl r0, r0, #0xe
- and r0, r1
- asr r0, r0, #0xf
- beq _0200105C
- mov r0, #0x1
- str r0, [r6, #0x4]
- add r1, r0, #0x0
- b _02001024
-_0200105C:
- bl FUN_0201CDD0
- add sp, #0x8
- pop {r3-r7, pc}
-_02001064:
- add r0, sp, #0x4
- add r1, sp, #0x0
- blx PM_GetBackLight
- ldr r0, [sp, #0x4]
- cmp r0, #0x1
- bne _02001096
- mov r0, #0x2
- mov r1, #0x0
- blx PM_SetBackLight
- add sp, #0x8
- pop {r3-r7, pc}
-_0200107E:
- add r0, sp, #0x4
- add r1, sp, #0x0
- blx PM_GetBackLight
- ldr r0, [sp, #0x4]
- cmp r0, #0x0
- bne _02001096
- ldr r1, _020010A4 ; =0x02106FA0
- mov r0, #0x2
- ldr r1, [r1, #0x0]
- blx PM_SetBackLight
-_02001096:
- add sp, #0x8
- pop {r3-r7, pc}
- nop
-_0200109C: .word 0x027FFFA8
-_020010A0: .word 0x021C4918
-_020010A4: .word 0x02106FA0
+ .extern FUN_02000E9C
+ .extern FUN_02000EC8
thumb_func_start FUN_020010A8
FUN_020010A8: ; 0x020010A8
@@ -2291,7 +1962,7 @@ _02001ECE:
ldrb r4, [r5, #0x15]
add r1, r6, #0x0
add r0, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x0
bne _02001EF2
ldrb r0, [r5, #0xb]
@@ -2323,7 +1994,7 @@ _02001F08:
ldrb r6, [r5, #0x15]
sub r4, r1, #0x1
add r0, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
cmp r4, r1
bne _02001F2A
ldrb r0, [r5, #0xb]
@@ -2393,7 +2064,7 @@ _02001F72:
mov r0, #0x0
pop {r4-r6, pc}
_02001F8A:
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x18
asr r2, r0, #0x18
b _02001F9A
@@ -2563,7 +2234,7 @@ FUN_020020B0: ; 0x020020B0
ldrb r1, [r5, #0xa]
add r0, r7, #0x0
add r6, r2, #0x0
- blx _s32_div_f
+ bl _s32_div_f
ldrb r2, [r5, #0x19]
ldrb r1, [r5, #0x16]
lsl r2, r2, #0x1
@@ -2572,7 +2243,7 @@ FUN_020020B0: ; 0x020020B0
strb r1, [r4, #0x0]
ldrb r1, [r5, #0xa]
add r0, r7, #0x0
- blx _s32_div_f
+ bl _s32_div_f
ldrb r2, [r5, #0xb]
ldrb r3, [r5, #0x1a]
ldrb r0, [r5, #0x18]
diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s
index 0e8dfbdf..3295bcc9 100644
--- a/arm9/asm/unk_020023C0.s
+++ b/arm9/asm/unk_020023C0.s
@@ -1631,7 +1631,7 @@ FUN_02002FD0: ; 0x02002FD0
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -1710,13 +1710,13 @@ FUN_02003054: ; 0x02003054
lsl r4, r3, #0x1
add r1, r1, r4
add r2, r7, #0x0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r1, r5, r6
ldr r1, [r1, #0x4]
ldr r0, [sp, #0x0]
add r1, r1, r4
add r2, r7, #0x0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
pop {r3-r7, pc}
.balign 4
@@ -1876,7 +1876,7 @@ _0200319A:
lsl r0, r0, #0x1
add r0, r1, r0
ldr r1, [sp, #0x14]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r4, #0x0
bl FUN_02016A18
pop {r3-r5, pc}
@@ -1904,7 +1904,7 @@ FUN_020031B8: ; 0x020031B8
ldr r1, [r5, r6]
add r0, r0, r4
add r1, r1, r7
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [sp, #0x4]
add r1, r5, r6
ldr r0, [r5, r0]
@@ -1912,7 +1912,7 @@ FUN_020031B8: ; 0x020031B8
ldr r2, [sp, #0x0]
add r0, r0, r4
add r1, r1, r7
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add sp, #0x8
pop {r3-r7, pc}
.balign 4
@@ -2156,7 +2156,7 @@ FUN_020033A4: ; 0x020033A4
cmp r2, #0x0
bge _020033D4
add r0, r2, #0x0
- blx abs
+ bl abs
add r0, r0, #0x2
ldrh r1, [r5, #0x6]
mov r2, #0xf
@@ -2659,7 +2659,7 @@ _02003750:
_02003770:
ldr r0, [r4, #0x4]
ldr r1, [r4, #0x8]
- blx DC_FlushRange
+ bl DC_FlushRange
cmp r5, #0xd
bls _0200377E
_0200377C:
@@ -2690,109 +2690,109 @@ _020037A6:
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GX_LoadBGPltt
+ bl GX_LoadBGPltt
b _020038A4
_020037B2:
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GXS_LoadBGPltt
+ bl GXS_LoadBGPltt
b _020038A4
_020037BE:
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
b _020038A4
_020037CA:
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GXS_LoadOBJPltt
+ bl GXS_LoadOBJPltt
b _020038A4
_020037D6:
- blx GX_BeginLoadBGExtPltt
+ bl GX_BeginLoadBGExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GX_LoadBGExtPltt
- blx GX_EndLoadBGExtPltt
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
b _020038A4
_020037EA:
- blx GX_BeginLoadBGExtPltt
+ bl GX_BeginLoadBGExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
add r1, r7, #0x0
- blx GX_LoadBGExtPltt
- blx GX_EndLoadBGExtPltt
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
b _020038A4
_020037FE:
- blx GX_BeginLoadBGExtPltt
+ bl GX_BeginLoadBGExtPltt
mov r1, #0x1
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
lsl r1, r1, #0xe
- blx GX_LoadBGExtPltt
- blx GX_EndLoadBGExtPltt
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
b _020038A4
_02003814:
- blx GX_BeginLoadBGExtPltt
+ bl GX_BeginLoadBGExtPltt
mov r1, #0x6
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
lsl r1, r1, #0xc
- blx GX_LoadBGExtPltt
- blx GX_EndLoadBGExtPltt
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
b _020038A4
_0200382A:
- blx GXS_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GXS_LoadBGExtPltt
- blx GXS_EndLoadBGExtPltt
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
b _020038A4
_0200383E:
- blx GXS_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
add r1, r7, #0x0
- blx GXS_LoadBGExtPltt
- blx GXS_EndLoadBGExtPltt
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
b _020038A4
_02003852:
- blx GXS_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
mov r1, #0x1
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
lsl r1, r1, #0xe
- blx GXS_LoadBGExtPltt
- blx GXS_EndLoadBGExtPltt
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
b _020038A4
_02003868:
- blx GXS_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
mov r1, #0x6
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
lsl r1, r1, #0xc
- blx GXS_LoadBGExtPltt
- blx GXS_EndLoadBGExtPltt
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
b _020038A4
_0200387E:
- blx GX_BeginLoadOBJExtPltt
+ bl GX_BeginLoadOBJExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GX_LoadOBJExtPltt
- blx GX_EndLoadOBJExtPltt
+ bl GX_LoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
b _020038A4
_02003892:
- blx GXS_BeginLoadOBJExtPltt
+ bl GXS_BeginLoadOBJExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GXS_LoadOBJExtPltt
- blx GXS_EndLoadOBJExtPltt
+ bl GXS_LoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
_020038A4:
add r5, r5, #0x1
add r4, #0x14
@@ -2887,7 +2887,7 @@ _0200393A:
ldr r0, [sp, #0x0]
sub r2, r2, r5
lsl r2, r2, #0x1
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
_02003952:
cmp r7, #0x0
beq _0200395A
@@ -2902,7 +2902,7 @@ _0200395A:
ldr r0, [sp, #0x0]
sub r2, r2, r5
lsl r2, r2, #0x1
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
_0200396E:
add sp, #0x8
pop {r3-r7, pc}
@@ -3216,14 +3216,14 @@ FUN_02003B98: ; 0x02003B98
add r6, r1, #0x0
bl FUN_02003D30
add r4, r0, #0x0
- blx FUN_020C01D0
+ bl FUN_020C01D0
bl FUN_020040C8
add r0, r4, #0x0
bl FUN_02004064
add r0, r4, #0x0
ldr r1, _02003C00 ; =0x000BBC00
add r0, #0x94
- blx FUN_020C2A94
+ bl FUN_020C2A94
add r1, r4, #0x0
add r1, #0x90
str r0, [r1, #0x0]
@@ -3233,11 +3233,11 @@ FUN_02003B98: ; 0x02003B98
ldr r2, [r2, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- blx FUN_020C26F8
+ bl FUN_020C26F8
add r0, r4, #0x0
add r0, #0x90
ldr r0, [r0, #0x0]
- blx FUN_020C39CC
+ bl FUN_020C39CC
add r0, r4, #0x0
bl FUN_02004088
add r0, r4, #0x0
@@ -3276,7 +3276,7 @@ _02003C2C:
bl FUN_02003C40
_02003C30:
bl FUN_02005CFC
- blx FUN_020C01A0
+ bl FUN_020C01A0
pop {r4, pc}
nop
_02003C3C: .word 0x000BCD00
@@ -3672,7 +3672,7 @@ FUN_02003F3C: ; 0x02003F3C
bl FUN_02003D30
add r0, #0x90
ldr r0, [r0, #0x0]
- blx FUN_020C290C
+ bl FUN_020C290C
add r4, r0, #0x0
mov r0, #0x0
mvn r0, r0
@@ -3695,7 +3695,7 @@ FUN_02003F64: ; 0x02003F64
add r0, #0x90
ldr r0, [r0, #0x0]
add r1, r4, #0x0
- blx FUN_020C2828
+ bl FUN_020C2828
pop {r4, pc}
thumb_func_start FUN_02003F78
@@ -3707,7 +3707,7 @@ FUN_02003F78: ; 0x02003F78
add r1, #0x90
ldr r1, [r1, #0x0]
add r0, r4, #0x0
- blx FUN_020C36A8
+ bl FUN_020C36A8
pop {r4, pc}
.balign 4
@@ -3720,7 +3720,7 @@ FUN_02003F90: ; 0x02003F90
add r1, #0x90
ldr r1, [r1, #0x0]
add r0, r4, #0x0
- blx FUN_020C3674
+ bl FUN_020C3674
pop {r4, pc}
.balign 4
@@ -3735,7 +3735,7 @@ FUN_02003FA8: ; 0x02003FA8
ldr r2, [r2, #0x0]
add r0, r5, #0x0
add r1, r4, #0x0
- blx FUN_020C35E0
+ bl FUN_020C35E0
pop {r3-r5, pc}
.balign 4
@@ -3748,7 +3748,7 @@ FUN_02003FC4: ; 0x02003FC4
add r1, #0x90
ldr r1, [r1, #0x0]
add r0, r4, #0x0
- blx FUN_020C360C
+ bl FUN_020C360C
pop {r4, pc}
.balign 4
@@ -3761,7 +3761,7 @@ FUN_02003FDC: ; 0x02003FDC
add r1, #0x90
ldr r1, [r1, #0x0]
add r0, r4, #0x0
- blx FUN_020C3640
+ bl FUN_020C3640
pop {r4, pc}
.balign 4
@@ -3840,7 +3840,7 @@ FUN_02004064: ; 0x02004064
ldr r2, _02004080 ; =0x000BCD60
mov r1, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, _02004084 ; =0x000BCD1C
mov r1, #0x0
_02004074:
@@ -3862,7 +3862,7 @@ FUN_02004088: ; 0x02004088
add r5, r0, r1
_02004090:
add r0, r5, #0x0
- blx FUN_020C0F80
+ bl FUN_020C0F80
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x9
@@ -3891,11 +3891,11 @@ _020040C4: .word 0x000BCD20
thumb_func_start FUN_020040C8
FUN_020040C8: ; 0x020040C8
push {r3, lr}
- blx MIC_Init
+ bl MIC_Init
mov r0, #0x1
- blx PM_SetAmp
+ bl PM_SetAmp
mov r0, #0x2
- blx PM_SetAmpGain
+ bl PM_SetAmpGain
pop {r3, pc}
thumb_func_start FUN_020040DC
@@ -3903,10 +3903,10 @@ FUN_020040DC: ; 0x020040DC
push {r3, lr}
mov r0, #0x7
mov r1, #0x0
- blx FUN_020C1040
+ bl FUN_020C1040
mov r0, #0x7
bl FUN_02003FF4
- blx FUN_020C0F68
+ bl FUN_020C0F68
pop {r3, pc}
.balign 4
@@ -4814,7 +4814,7 @@ _02004800:
add r0, r4, #0x0
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C0F8C
+ bl FUN_020C0F8C
strb r5, [r6, #0x0]
_0200480E:
pop {r4-r6, pc}
@@ -4840,7 +4840,7 @@ FUN_02004828: ; 0x02004828
bl FUN_02003FF4
add r1, r5, #0x0
add r2, r4, #0x0
- blx FUN_020C0EF4
+ bl FUN_020C0EF4
pop {r3-r5, pc}
thumb_func_start FUN_0200483C
@@ -4856,7 +4856,7 @@ _02004844:
_0200484A:
bl FUN_02003FF4
add r1, r4, #0x0
- blx FUN_020C0F30
+ bl FUN_020C0F30
pop {r4, pc}
.balign 4
@@ -4864,7 +4864,7 @@ _0200484A:
FUN_02004858: ; 0x02004858
push {r3-r5, lr}
add r5, r1, #0x0
- blx FUN_020C23FC
+ bl FUN_020C23FC
cmp r5, #0x1
beq _02004868
cmp r5, #0x8
@@ -4882,7 +4882,7 @@ _02004872:
bne _0200488A
add r0, r4, #0x0
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_0200483C
@@ -4910,7 +4910,7 @@ FUN_020048A0: ; 0x020048A0
add r1, r5, #0x0
add r3, r2, #0x0
str r4, [sp, #0x0]
- blx FUN_020C3910
+ bl FUN_020C3910
pop {r3-r5, pc}
.balign 4
@@ -4922,7 +4922,7 @@ FUN_020048BC: ; 0x020048BC
bl ErrorHandling
_020048C6:
add r0, r4, #0x0
- blx FUN_020C0F50
+ bl FUN_020C0F50
pop {r4, pc}
.balign 4
@@ -4934,7 +4934,7 @@ FUN_020048D0: ; 0x020048D0
mov r0, #0xff
pop {r3, pc}
_020048DA:
- blx FUN_020C23FC
+ bl FUN_020C23FC
cmp r0, #0x0
bne _020048E6
mov r0, #0xff
@@ -4955,13 +4955,13 @@ _020048F0: .word FUN_020C0E14
FUN_020048F4: ; 0x020048F4
push {r3, lr}
bl FUN_02004900
- blx FUN_020C22D0
+ bl FUN_020C22D0
pop {r3, pc}
thumb_func_start FUN_02004900
FUN_02004900: ; 0x02004900
push {r3, lr}
- blx FUN_020C23FC
+ bl FUN_020C23FC
cmp r0, #0x0
bne _0200490E
mov r0, #0x0
@@ -4982,13 +4982,13 @@ _02004918: .word MIC_StartAutoSampling
FUN_0200491C: ; 0x0200491C
push {r3, lr}
bl FUN_02003D30
- blx MIC_StopAutoSampling
+ bl MIC_StopAutoSampling
pop {r3, pc}
thumb_func_start FUN_02004928
FUN_02004928: ; 0x02004928
push {r3, lr}
- blx MIC_DoSamplingAsync
+ bl MIC_DoSamplingAsync
pop {r3, pc}
thumb_func_start FUN_02004930
@@ -5058,7 +5058,7 @@ _020049A8:
bl FUN_02003D38
add r4, r0, #0x0
add r0, r5, #0x0
- blx FUN_020C0688
+ bl FUN_020C0688
str r0, [r4, #0x0]
cmp r0, #0x0
bne _020049CA
@@ -5079,7 +5079,7 @@ _020049D6:
bl FUN_02003D38
add r6, r0, #0x0
add r0, r5, #0x0
- blx FUN_020C0688
+ bl FUN_020C0688
str r0, [r6, #0x0]
cmp r0, #0x0
bne _020049F4
@@ -5122,7 +5122,7 @@ _02004A2A:
add r0, r5, #0x0
bl FUN_02004930
ldr r0, [r0, #0x0]
- blx FUN_020C0670
+ bl FUN_020C0670
mov r0, #0x0
strb r0, [r6, #0x0]
pop {r4-r6, pc}
@@ -5136,7 +5136,7 @@ _02004A4C:
add r0, r5, #0x0
bl FUN_02004930
ldr r0, [r0, #0x0]
- blx FUN_020C0670
+ bl FUN_020C0670
mov r0, #0x0
strb r0, [r4, #0x0]
pop {r4-r6, pc}
@@ -5168,7 +5168,7 @@ FUN_02004A6C: ; 0x02004A6C
ldr r2, [r3, #0x8]
ldr r0, [r0, #0x0]
ldr r3, [r3, #0xc]
- blx FUN_020C054C
+ bl FUN_020C054C
add r5, r0, #0x0
bne _02004AA4
add r0, r4, #0x0
@@ -5184,7 +5184,7 @@ FUN_02004AAC: ; 0x02004AAC
push {r3, lr}
bl FUN_02004930
ldr r0, [r0, #0x0]
- blx FUN_020C0510
+ bl FUN_020C0510
pop {r3, pc}
.balign 4
@@ -5193,7 +5193,7 @@ FUN_02004ABC: ; 0x02004ABC
push {r3, lr}
bl FUN_02004930
ldr r0, [r0, #0x0]
- blx FUN_020C03B8
+ bl FUN_020C03B8
pop {r3, pc}
.balign 4
@@ -5208,7 +5208,7 @@ _02004AD6:
bl FUN_02004930
ldr r0, [r0, #0x0]
add r1, r4, #0x0
- blx FUN_020C041C
+ bl FUN_020C041C
pop {r4, pc}
thumb_func_start FUN_02004AE4
@@ -5218,7 +5218,7 @@ FUN_02004AE4: ; 0x02004AE4
bl FUN_02004930
ldr r0, [r0, #0x0]
add r1, r4, #0x0
- blx FUN_020C044C
+ bl FUN_020C044C
pop {r4, pc}
.balign 4
@@ -5235,17 +5235,17 @@ FUN_02004AF8: ; 0x02004AF8
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
ldr r0, [r4, #0x0]
- blx FUN_020C04DC
+ bl FUN_020C04DC
pop {r3-r5, pc}
_02004B20:
add r0, r4, #0x0
bl FUN_02004930
ldr r0, [r0, #0x0]
add r1, r5, #0x0
- blx FUN_020C04DC
+ bl FUN_020C04DC
pop {r3-r5, pc}
thumb_func_start FUN_02004B30
@@ -5267,7 +5267,7 @@ FUN_02004B30: ; 0x02004B30
bl ErrorHandling
_02004B54:
add r0, r6, #0x0
- blx FUN_020C226C
+ bl FUN_020C226C
add r7, r0, #0x0
bne _02004B68
bl ErrorHandling
@@ -5278,7 +5278,7 @@ _02004B68:
ldr r0, [r7, #0x0]
lsl r0, r0, #0x8
lsr r0, r0, #0x8
- blx FUN_020C217C
+ bl FUN_020C217C
add r6, r0, #0x0
bne _02004B80
bl ErrorHandling
@@ -5301,14 +5301,14 @@ _02004B80:
_02004B9C:
mov r1, #0x0
add r2, r6, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r7, #0x0]
ldr r1, [r4, #0x0]
lsl r0, r0, #0x8
lsr r0, r0, #0x8
add r2, r6, #0x0
mov r3, #0x0
- blx FUN_020C2104
+ bl FUN_020C2104
mov r1, #0x0
mvn r1, r1
cmp r0, r1
@@ -5429,7 +5429,7 @@ FUN_02004C80: ; 0x02004C80
mov r2, #0x0
lsl r3, r3, #0x6
str r4, [sp, #0x0]
- blx FUN_020C1FF0
+ bl FUN_020C1FF0
add sp, #0x4
pop {r3-r4, pc}
@@ -5456,7 +5456,7 @@ FUN_02004CB4: ; 0x02004CB4
bl FUN_02003D38
mov r1, #0x0
mov r2, #0x1c
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x3
bl FUN_02003D38
add r4, r0, #0x0
@@ -5471,7 +5471,7 @@ FUN_02004CB4: ; 0x02004CB4
ldr r3, _02004CF8 ; =0x000055F0
add r0, r4, #0x0
mov r2, #0x0
- blx FUN_020C1EA4
+ bl FUN_020C1EA4
add sp, #0xc
pop {r3-r4, pc}
nop
@@ -5511,7 +5511,7 @@ FUN_02004D20: ; 0x02004D20
bl FUN_02003FF4
add r1, r5, #0x0
add r2, r4, #0x0
- blx FUN_020C0EA4
+ bl FUN_020C0EA4
pop {r3-r5, pc}
thumb_func_start FUN_02004D34
@@ -5534,14 +5534,14 @@ FUN_02004D4C: ; 0x02004D4C
bl FUN_02003FF4
add r1, r5, #0x0
add r2, r4, #0x0
- blx FUN_020C0E7C
+ bl FUN_020C0E7C
pop {r3-r5, pc}
thumb_func_start FUN_02004D60
FUN_02004D60: ; 0x02004D60
push {r4, lr}
add r4, r0, #0x0
- blx FUN_020C0174
+ bl FUN_020C0174
ldr r0, _02004D70 ; =0x021C3DD8
str r4, [r0, #0x0]
pop {r4, pc}
@@ -5758,7 +5758,7 @@ FUN_02004ED0: ; 0x02004ED0
_02004EF0:
mov r0, #0x1
_02004EF2:
- blx FUN_020C226C
+ bl FUN_020C226C
cmp r0, #0x0
bne _02004F02
bl ErrorHandling
@@ -5768,7 +5768,7 @@ _02004F02:
ldr r0, [r0, #0x0]
lsl r0, r0, #0x8
lsr r0, r0, #0x8
- blx FUN_020C20DC
+ bl FUN_020C20DC
cmp r0, #0x0
bne _02004F18
bl ErrorHandling
@@ -5776,7 +5776,7 @@ _02004F02:
pop {r3-r5, pc}
_02004F18:
mov r1, #0x0
- blx SND_GetWaveDataAddress
+ bl SND_GetWaveDataAddress
str r0, [r4, #0x0]
pop {r3-r5, pc}
nop
@@ -5794,11 +5794,11 @@ FUN_02004F28: ; 0x02004F28
add r0, r6, #0x0
lsl r1, r1, #0x8
ldr r5, [r5, #0x8]
- blx _s32_div_f
+ bl _s32_div_f
lsl r1, r0, #0x1
bpl _02004F50
mov r0, #0x20
- blx _s32_div_f
+ bl _s32_div_f
neg r0, r0
b _02004F5A
_02004F50:
@@ -5820,7 +5820,7 @@ _02004F62:
FUN_02004F64: ; 0x02004F64
push {r3, lr}
bl FUN_02003FF4
- blx FUN_020C0DD4
+ bl FUN_020C0DD4
pop {r3, pc}
thumb_func_start FUN_02004F70
@@ -6043,7 +6043,7 @@ _020050D8:
blt _020050D8
_020050E6:
add r1, r2, #0x0
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x8]
strh r0, [r1, #0x0]
mov r0, #0x0
@@ -6060,7 +6060,7 @@ _020050FA:
cmp r2, r1
blt _020050FA
_02005108:
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x4]
sub r4, r4, #0x1
strh r0, [r1, #0x0]
@@ -6097,10 +6097,10 @@ _02005130:
_0200514A:
ldr r1, [sp, #0x0]
add r0, r5, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r1, [sp, #0x0]
add r0, r6, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
_0200515A:
add sp, #0x30
pop {r3-r7, pc}
@@ -6188,7 +6188,7 @@ FUN_020051F4: ; 0x020051F4
add r4, r0, #0x0
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
add r6, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -6266,7 +6266,7 @@ FUN_02005288: ; 0x02005288
add r0, r4, #0x0
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
pop {r3-r5, pc}
.balign 4
@@ -6299,7 +6299,7 @@ FUN_020052B8: ; 0x020052B8
add r0, r6, #0x0
add r3, r1, #0x0
str r5, [sp, #0x0]
- blx FUN_020C3910
+ bl FUN_020C3910
add sp, #0x4
pop {r3-r6, pc}
.balign 4
@@ -6328,7 +6328,7 @@ _0200532A:
mov r0, #0x7
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
add r4, r0, #0x0
add r0, r5, #0x0
bl FUN_02004110
@@ -6341,14 +6341,14 @@ _0200532A:
FUN_02005350: ; 0x02005350
push {r4, lr}
add r4, r0, #0x0
- blx FUN_020C0FDC
+ bl FUN_020C0FDC
add r0, r4, #0x0
bl FUN_020048D0
cmp r0, #0xff
beq _0200536E
bl FUN_02004018
bl FUN_02003FF4
- blx FUN_020C0F68
+ bl FUN_020C0F68
_0200536E:
bl FUN_02005374
pop {r4, pc}
@@ -6446,7 +6446,7 @@ FUN_0200541C: ; 0x0200541C
bl FUN_02003D38
add r4, r0, #0x0
mov r0, #0x0
- blx FUN_020C0F9C
+ bl FUN_020C0F9C
ldrb r0, [r5, #0x0]
cmp r0, #0x1
bne _02005440
@@ -6475,7 +6475,7 @@ FUN_02005454: ; 0x02005454
mov r0, #0x7
bl FUN_02003FF4
mov r1, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
bl FUN_02005374
mov r5, #0x0
add r4, r5, #0x0
@@ -6527,7 +6527,7 @@ FUN_020054C8: ; 0x020054C8
add r4, r0, #0x0
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
add r6, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -6549,7 +6549,7 @@ FUN_020054F8: ; 0x020054F8
add r4, r1, #0x0
bl FUN_02003FF4
add r1, r4, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
pop {r4, pc}
thumb_func_start FUN_02005508
@@ -6587,7 +6587,7 @@ FUN_02005530: ; 0x02005530
bl FUN_02003FF4
add r1, r5, #0x0
add r2, r4, #0x0
- blx FUN_020C0E7C
+ bl FUN_020C0E7C
pop {r3-r5, pc}
thumb_func_start FUN_0200554C
@@ -6604,7 +6604,7 @@ _0200555C:
bl FUN_02003FF4
add r1, r7, #0x0
add r2, r6, #0x0
- blx FUN_020C0E7C
+ bl FUN_020C0E7C
add r5, r5, #0x1
cmp r5, #0x4
blt _0200555C
@@ -6659,7 +6659,7 @@ _020055BC:
sub r1, r1, #0x3
add r2, r5, #0x0
add r3, r1, #0x0
- blx FUN_020C3910
+ bl FUN_020C3910
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x1
@@ -6673,7 +6673,7 @@ _020055E8:
sub r1, r1, #0x3
add r2, r5, #0x0
add r3, r1, #0x0
- blx FUN_020C3910
+ bl FUN_020C3910
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x8
@@ -6701,11 +6701,11 @@ FUN_02005614: ; 0x02005614
mov r0, #0x1
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
mov r0, #0x8
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
ldrb r0, [r6, #0x0]
cmp r0, #0x1
bne _02005658
@@ -7415,7 +7415,7 @@ _02005C48:
mov r0, #0x2
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x2
@@ -7455,7 +7455,7 @@ FUN_02005CA0: ; 0x02005CA0
mov r0, #0x2
bl FUN_02003FF4
add r1, r4, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
mov r0, #0x6
bl FUN_02004748
bl FUN_02003F64
diff --git a/arm9/asm/unk_020061E8.s b/arm9/asm/unk_020061E8.s
index 3b8df8d6..a3c6d702 100644
--- a/arm9/asm/unk_020061E8.s
+++ b/arm9/asm/unk_020061E8.s
@@ -19,7 +19,7 @@ FUN_020061E8: ; 0x020061E8
_02006202:
mov r1, #0x0
add r2, r5, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
b _0200620E
_0200620C:
mov r4, #0x0
diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s
index bcbdc275..008599ed 100644
--- a/arm9/asm/unk_02006864.s
+++ b/arm9/asm/unk_02006864.s
@@ -5096,13 +5096,13 @@ _02008DD8: .word 0x0001FE00
thumb_func_start FUN_02008DDC
FUN_02008DDC: ; 0x02008DDC
- ldr r3, _02008DE8 ; =0x0201E069
+ ldr r3, _02008DE8 ; =FUN_0201E068
add r1, r0, #0x0
mov r0, #0x3
lsl r0, r0, #0xe
bx r3
nop
-_02008DE8: .word 0x0201E069
+_02008DE8: .word FUN_0201E068
thumb_func_start FUN_02008DEC
FUN_02008DEC: ; 0x02008DEC
@@ -12523,11 +12523,11 @@ _0200C5A4: .word FUN_020201E4
thumb_func_start FUN_0200C5A8
FUN_0200C5A8: ; 0x0200C5A8
- ldr r3, _0200C5B0 ; =0x0200C59D
+ ldr r3, _0200C5B0 ; =FUN_0200C59C
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C5B0: .word 0x0200C59D
+_0200C5B0: .word FUN_0200C59C
thumb_func_start FUN_0200C5B4
FUN_0200C5B4: ; 0x0200C5B4
@@ -12607,11 +12607,11 @@ _0200C618: .word FUN_02020208
thumb_func_start FUN_0200C61C
FUN_0200C61C: ; 0x0200C61C
- ldr r3, _0200C624 ; =0x0200C615
+ ldr r3, _0200C624 ; =FUN_0200C614
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C624: .word 0x0200C615
+_0200C624: .word FUN_0200C614
thumb_func_start FUN_0200C628
FUN_0200C628: ; 0x0200C628
@@ -12707,11 +12707,11 @@ _0200C6A0: .word FUN_02020238
thumb_func_start FUN_0200C6A4
FUN_0200C6A4: ; 0x0200C6A4
- ldr r3, _0200C6AC ; =0x02020241
+ ldr r3, _0200C6AC ; =FUN_02020240
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C6AC: .word 0x02020241
+_0200C6AC: .word FUN_02020240
thumb_func_start FUN_0200C6B0
FUN_0200C6B0: ; 0x0200C6B0
@@ -12949,11 +12949,11 @@ _0200C83C: .word FUN_020200EC
thumb_func_start FUN_0200C840
FUN_0200C840: ; 0x0200C840
- ldr r3, _0200C848 ; =0x0200C839
+ ldr r3, _0200C848 ; =FUN_0200C838
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C848: .word 0x0200C839
+_0200C848: .word FUN_0200C838
thumb_func_start FUN_0200C84C
FUN_0200C84C: ; 0x0200C84C
@@ -13057,11 +13057,11 @@ FUN_0200C8DC: ; 0x0200C8DC
thumb_func_start FUN_0200C8F8
FUN_0200C8F8: ; 0x0200C8F8
- ldr r3, _0200C900 ; =0x02020359
+ ldr r3, _0200C900 ; =FUN_02020358
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C900: .word 0x02020359
+_0200C900: .word FUN_02020358
thumb_func_start FUN_0200C904
FUN_0200C904: ; 0x0200C904
@@ -15571,7 +15571,7 @@ _0200DD10:
ldr r0, [r4, r0]
bl FUN_0200C3DC
add r0, r4, #0x0
- bl FUN_021D99F8
+ bl MOD05_021D99F8
add r0, r5, #0x0
bl FUN_0200621C
pop {r3-r5, pc}
@@ -15656,7 +15656,7 @@ FUN_0200DDAC: ; 0x0200DDAC
add r1, r2, #0x0
add r0, r6, #0x0
mov r2, #0x1
- bl FUN_021D959C
+ bl MOD05_021D959C
add sp, #0x18
pop {r4-r6, pc}
.balign 4
@@ -15675,21 +15675,21 @@ FUN_0200DDD8: ; 0x0200DDD8
mov r1, #0x26
mov r3, #0x0
add r4, r0, #0x0
- bl FUN_021D967C
+ bl MOD05_021D967C
ldr r0, _0200DE2C ; =0x00015CD5
mov r1, #0x26
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r2, #0x2f
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _0200DE2C ; =0x00015CD5
mov r1, #0x26
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r2, #0x2e
mov r3, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r0, #0x1
str r0, [sp, #0x0]
ldr r0, _0200DE2C ; =0x00015CD5
@@ -15698,7 +15698,7 @@ FUN_0200DDD8: ; 0x0200DDD8
add r0, r4, #0x0
mov r2, #0x30
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
add sp, #0xc
pop {r3-r4, pc}
nop
@@ -15730,7 +15730,7 @@ _0200DE40:
strh r1, [r0, #0x2]
add r0, r4, #0x0
add r1, sp, #0x0
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r1, #0x59
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -31039,11 +31039,11 @@ _02014F24: .word FUN_02014F08
thumb_func_start FUN_02014F28
FUN_02014F28: ; 0x02014F28
- ldr r3, _02014F30 ; =0x02014F1D
+ ldr r3, _02014F30 ; =FUN_02014F1C
mov r1, #0x1
bx r3
nop
-_02014F30: .word 0x02014F1D
+_02014F30: .word FUN_02014F1C
thumb_func_start FUN_02014F34
FUN_02014F34: ; 0x02014F34
@@ -47117,21 +47117,21 @@ _0201C4F0: .word 0xFFFF0000
thumb_func_start FUN_0201C4F4
FUN_0201C4F4: ; 0x0201C4F4
- ldr r3, _0201C4FC ; =0x0201C50D
+ ldr r3, _0201C4FC ; =FUN_0201C50C
ldr r0, [r0, #0x4]
ldrb r1, [r1, #0x0]
bx r3
.balign 4
-_0201C4FC: .word 0x0201C50D
+_0201C4FC: .word FUN_0201C50C
thumb_func_start FUN_0201C500
FUN_0201C500: ; 0x0201C500
- ldr r3, _0201C508 ; =0x0201C541
+ ldr r3, _0201C508 ; =FUN_0201C540
ldr r0, [r0, #0x4]
ldrb r1, [r1, #0x1]
bx r3
.balign 4
-_0201C508: .word 0x0201C541
+_0201C508: .word FUN_0201C540
thumb_func_start FUN_0201C50C
FUN_0201C50C: ; 0x0201C50C
@@ -66319,11 +66319,11 @@ _02024EBC: .word FUN_02022610
thumb_func_start FUN_02024EC0
FUN_02024EC0: ; 0x02024EC0
- ldr r3, _02024EC8 ; =0x02022635
+ ldr r3, _02024EC8 ; =FUN_02022634
mov r1, #0xa
bx r3
nop
-_02024EC8: .word 0x02022635
+_02024EC8: .word FUN_02022634
thumb_func_start FUN_02024ECC
FUN_02024ECC: ; 0x02024ECC
@@ -70860,9 +70860,9 @@ FUN_02026D34: ; 0x02026D34
add r0, r4, #0x0
add r1, sp, #0x4
add r2, sp, #0x8
- bl FUN_021DB858
+ bl MOD17_021DB858
add r0, r4, #0x0
- bl FUN_021DB7E8
+ bl MOD17_021DB7E8
add r4, r0, #0x0
mov r0, #0x1
ldr r1, [sp, #0x4]
@@ -90692,7 +90692,7 @@ FUN_0202FA5C: ; 0x0202FA5C
bl FUN_02033534
cmp r0, #0x13
blt _0202FA78
- bl FUN_021D83C0
+ bl MOD04_021D83C0
mov r4, #0x1
b _0202FA82
_0202FA78:
@@ -90997,7 +90997,7 @@ FUN_0202FCCC: ; 0x0202FCCC
cmp r1, #0x0
beq _0202FCF8
mov r1, #0x26
- bl FUN_021D78FC
+ bl MOD04_021D78FC
cmp r0, #0x0
bne _0202FCFA
_0202FCF8:
@@ -91079,7 +91079,7 @@ _0202FD90:
ldr r0, _0202FE14 ; =0x021C59F4
mov r1, #0x26
ldr r0, [r0, #0x4]
- bl FUN_021D78FC
+ bl MOD04_021D78FC
cmp r0, #0x0
beq _0202FE10
ldr r0, _0202FE20 ; =0x02105D58
@@ -91458,7 +91458,7 @@ FUN_02030074: ; 0x02030074
lsl r0, r0, #0x2
add r0, r1, r0
mov r1, #0x4c
- bl FUN_021D79B4
+ bl MOD04_021D79B4
cmp r0, #0x0
beq _020300DC
ldr r0, _02030228 ; =0x021C59F4
@@ -91552,7 +91552,7 @@ _02030150:
lsl r0, r0, #0x2
add r0, r1, r0
mov r1, #0x4c
- bl FUN_021D79B4
+ bl MOD04_021D79B4
cmp r0, #0x0
beq _02030224
ldr r0, _02030230 ; =0x02105D58
@@ -93257,7 +93257,7 @@ _02030E8C:
ldrb r0, [r1, r0]
cmp r0, #0x0
beq _02030EBC
- bl FUN_021D8018
+ bl MOD04_021D8018
mov r1, #0x0
mvn r1, r1
cmp r0, r1
@@ -93669,7 +93669,7 @@ FUN_02031190: ; 0x02031190
bl FUN_02033534
cmp r0, #0x13
blt _020311B4
- bl FUN_021D8018
+ bl MOD04_021D8018
mov r1, #0x0
mvn r1, r1
cmp r0, r1
@@ -93997,7 +93997,7 @@ FUN_020313EC: ; 0x020313EC
mov r0, #0x0
pop {r3, pc}
_020313FA:
- bl FUN_021D8624
+ bl MOD04_021D8624
pop {r3, pc}
thumb_func_start FUN_02031400
@@ -95240,7 +95240,7 @@ _02031CEE:
bl FUN_02033590
cmp r0, #0x0
beq _02031D04
- bl FUN_021DDB08
+ bl MOD04_021DDB08
mov r1, #0x3
sub r0, r1, r0
bl FUN_02033EEC
@@ -97388,7 +97388,7 @@ _02032DBE:
lsr r0, r0, #0x18
cmp r0, #0x1
bhi _02032DD4
- bl FUN_021D83C0
+ bl MOD04_021D83C0
mov r0, #0x1
pop {r3, pc}
_02032DD4:
@@ -97482,7 +97482,7 @@ FUN_02032E8C: ; 0x02032E8C
thumb_func_start FUN_02032E90
FUN_02032E90: ; 0x02032E90
push {r3, lr}
- bl FUN_021D7F8C
+ bl MOD04_021D7F8C
cmp r0, #0x0
bge _02032EA2
ldr r0, _02032EA4 ; =FUN_02032E8C
@@ -97508,7 +97508,7 @@ FUN_02032EB0: ; 0x02032EB0
push {r3, lr}
mov r0, #0x1
bl FUN_020313A0
- bl FUN_021D7F8C
+ bl MOD04_021D7F8C
cmp r0, #0xa
blt _02032ECA
ldr r0, _02032F0C ; =FUN_02032EAC
@@ -97573,7 +97573,7 @@ _02032F30: .word 0x021C5A00
FUN_02032F34: ; 0x02032F34
push {r3, lr}
mov r0, #0x0
- bl FUN_021D7800
+ bl MOD04_021D7800
cmp r0, #0xa
blt _02032F4A
ldr r0, _02032F88 ; =FUN_02032EAC
@@ -97620,7 +97620,7 @@ _02032F94: .word FUN_02032EA8
FUN_02032F98: ; 0x02032F98
push {r3, lr}
mov r0, #0x1
- bl FUN_021D7800
+ bl MOD04_021D7800
cmp r0, #0x0
bge _02032FB2
bl FUN_02032F20
@@ -97633,7 +97633,7 @@ _02032FB2:
ldr r0, [r0, #0x0]
add r0, #0x42
ldrb r0, [r0, #0x0]
- bl FUN_021D8494
+ bl MOD04_021D8494
cmp r0, #0x0
beq _02032FCE
bl FUN_0202FC60
@@ -97653,7 +97653,7 @@ FUN_02032FDC: ; 0x02032FDC
add r4, r0, #0x0
ldr r0, _02032FFC ; =FUN_020303BC
ldr r1, _02033000 ; =FUN_02030238
- bl FUN_021D77C4
+ bl MOD04_021D77C4
ldr r0, _02033004 ; =0x021C5A00
mov r1, #0x0
ldr r0, [r0, #0x0]
@@ -97719,10 +97719,10 @@ FUN_02033060: ; 0x02033060
push {r3, lr}
ldr r0, _02033090 ; =FUN_020303BC
ldr r1, _02033094 ; =FUN_02030238
- bl FUN_021D77C4
+ bl MOD04_021D77C4
mov r0, #0x0
mvn r0, r0
- bl FUN_021D8494
+ bl MOD04_021D8494
cmp r0, #0x0
beq _0203308C
ldr r0, _02033098 ; =0x021C5A00
@@ -97751,16 +97751,16 @@ FUN_020330A0: ; 0x020330A0
ldr r0, [r0, #0x0]
add r0, #0x41
ldrb r0, [r0, #0x0]
- bl FUN_021D82BC
+ bl MOD04_021D82BC
cmp r0, #0x0
beq _020330C6
- bl FUN_021D836C
+ bl MOD04_021D836C
ldr r0, _020330DC ; =FUN_02033060
mov r1, #0x0
bl FUN_02031D20
pop {r3, pc}
_020330C6:
- bl FUN_021D7F8C
+ bl MOD04_021D7F8C
cmp r0, #0x0
bge _020330D6
ldr r0, _020330E0 ; =FUN_02032E8C
@@ -97873,15 +97873,15 @@ FUN_0203318C: ; 0x0203318C
mov r0, #0x0
bl FUN_020313A0
mov r0, #0x0
- bl FUN_021D82BC
+ bl MOD04_021D82BC
cmp r0, #0x0
beq _020331AA
- bl FUN_021D836C
+ bl MOD04_021D836C
ldr r0, _020331BC ; =FUN_02032440
mov r1, #0x0
bl FUN_02031D20
_020331AA:
- bl FUN_021D7F8C
+ bl MOD04_021D7F8C
cmp r0, #0x0
bge _020331BA
ldr r0, _020331C0 ; =FUN_02032E8C
@@ -98149,10 +98149,10 @@ _020333AA:
bne _020333C8
add r0, sp, #0x4
add r1, sp, #0x0
- bl FUN_021DD718
+ bl MOD04_021DD718
cmp r0, #0x0
beq _020333E4
- bl FUN_021DD6F0
+ bl MOD04_021DD6F0
add sp, #0x8
mov r0, #0x1
pop {r3, pc}
@@ -98161,7 +98161,7 @@ _020333C8:
bne _020333E4
add r0, sp, #0x4
add r1, sp, #0x0
- bl FUN_021DD718
+ bl MOD04_021DD718
cmp r0, #0x0
beq _020333E4
ldr r0, [sp, #0x0]
@@ -98180,7 +98180,7 @@ _020333EC: .word 0x021C5A00
thumb_func_start FUN_020333F0
FUN_020333F0: ; 0x020333F0
push {r3, lr}
- bl FUN_021D76AC
+ bl MOD04_021D76AC
cmp r0, #0x0
bge _02033408
bl FUN_02032F20
@@ -98222,7 +98222,7 @@ FUN_0203341C: ; 0x0203341C
ldr r0, [r0, #0x28]
bl MOD05_021D74E0
ldr r0, _02033464 ; =FUN_020335D0
- bl FUN_021D83A8
+ bl MOD04_021D83A8
bl FUN_0202FA10
ldr r0, _02033468 ; =FUN_020333F0
mov r1, #0x0
@@ -102476,7 +102476,7 @@ _02035398:
add r0, r6, #0x0
bl FUN_02035734
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0xe
strh r0, [r4, #0x2a]
b _02035484
@@ -102486,7 +102486,7 @@ _020353C0:
cmp r0, #0x0
beq _02035484
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x9
strh r0, [r4, #0x2a]
b _02035484
@@ -102511,7 +102511,7 @@ _020353F6:
ldr r0, [r5, #0x34]
bl FUN_02058780
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0xb
strh r0, [r4, #0x2a]
b _02035484
@@ -103217,7 +103217,7 @@ FUN_020359B8: ; 0x020359B8
add r0, #0x38
mov r2, #0x8
mov r3, #0xb
- bl FUN_021D959C
+ bl MOD05_021D959C
mov r0, #0x2
str r0, [sp, #0x0]
mov r0, #0x1
@@ -103229,7 +103229,7 @@ FUN_020359B8: ; 0x020359B8
mov r2, #0x5
add r0, #0x38
mov r3, #0x0
- bl FUN_021D967C
+ bl MOD05_021D967C
ldr r0, _02035B64 ; =0x000034D8
mov r1, #0x42
str r0, [sp, #0x0]
@@ -103237,7 +103237,7 @@ FUN_020359B8: ; 0x020359B8
mov r2, #0x1
add r0, #0x38
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _02035B64 ; =0x000034D8
mov r2, #0x0
str r0, [sp, #0x0]
@@ -103245,7 +103245,7 @@ FUN_020359B8: ; 0x020359B8
mov r1, #0x42
add r0, #0x38
add r3, r2, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r0, #0x1
str r0, [sp, #0x0]
ldr r0, _02035B64 ; =0x000034D8
@@ -103255,11 +103255,11 @@ FUN_020359B8: ; 0x020359B8
mov r2, #0x2
add r0, #0x38
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r0, [sp, #0xc]
ldr r1, _02035B68 ; =0x020F2B14
add r0, #0x38
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r2, #0x67
ldr r1, [sp, #0xc]
lsl r2, r2, #0x2
@@ -103276,7 +103276,7 @@ FUN_020359B8: ; 0x020359B8
mov r2, #0x4
add r0, #0x38
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _02035B6C ; =0x000034D9
mov r1, #0x42
str r0, [sp, #0x0]
@@ -103284,7 +103284,7 @@ FUN_020359B8: ; 0x020359B8
mov r2, #0x3
add r0, #0x38
mov r3, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r0, #0x1
str r0, [sp, #0x0]
ldr r0, _02035B6C ; =0x000034D9
@@ -103294,7 +103294,7 @@ FUN_020359B8: ; 0x020359B8
mov r2, #0x6
add r0, #0x38
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r0, [sp, #0x14]
mov r4, #0x0
cmp r0, #0x0
@@ -103352,7 +103352,7 @@ _02035AF2:
ldr r0, [sp, #0xc]
add r1, sp, #0x68
add r0, #0x38
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r1, #0x1a
lsl r1, r1, #0x4
add r2, sp, #0x5c
@@ -103437,7 +103437,7 @@ _02035B90:
_02035BA6:
add r5, #0x38
add r0, r5, #0x0
- bl FUN_021D99F8
+ bl MOD05_021D99F8
pop {r3-r7, pc}
thumb_func_start FUN_02035BB0
@@ -103629,7 +103629,7 @@ FUN_02035D10: ; 0x02035D10
bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _02035D30 ; =FUN_02035D34
lsl r0, r0, #0x2
@@ -103736,7 +103736,7 @@ FUN_02035DF8: ; 0x02035DF8
bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _02035E18 ; =FUN_02035E1C
lsl r0, r0, #0x2
@@ -104266,7 +104266,7 @@ FUN_02036284: ; 0x02036284
bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _020362A4 ; =FUN_020362A8
lsl r0, r0, #0x2
@@ -104561,7 +104561,7 @@ FUN_02036510: ; 0x02036510
bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _02036530 ; =FUN_02036534
lsl r0, r0, #0x2
@@ -104740,7 +104740,7 @@ FUN_02036684: ; 0x02036684
bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _020366A4 ; =FUN_020366A8
lsl r0, r0, #0x2
@@ -104801,7 +104801,7 @@ FUN_02036700: ; 0x02036700
bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _02036720 ; =FUN_02036724
lsl r0, r0, #0x2
@@ -106308,17 +106308,17 @@ _0203732E:
FUN_02037334: ; 0x02037334
push {r3, lr}
bl FUN_020374B0
- ldr r0, _02037348 ; =0x0000003F
+ ldr r0, _02037348 ; =SDK_OVERLAY_MODULE_63_ID
ldr r1, _0203734C ; =0x021DBAB8
bl FUN_02000E7C
mov r0, #0x1
pop {r3, pc}
nop
-_02037348: .word 0x0000003F
+_02037348: .word SDK_OVERLAY_MODULE_63_ID
_0203734C: .word 0x021DBAB8
- thumb_func_start FUN_02037350
-FUN_02037350: ; 0x02037350
+ thumb_func_start LoadOverlay_MODULE_05
+LoadOverlay_MODULE_05: ; 0x02037350
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x0]
@@ -106333,7 +106333,7 @@ _02037360:
beq _0203736C
bl ErrorHandling
_0203736C:
- ldr r0, _0203738C ; =0x00000005
+ ldr r0, _0203738C ; =SDK_OVERLAY_MODULE_05_ID
mov r1, #0x2
bl HandleLoadOverlay
mov r1, #0x0
@@ -106348,7 +106348,7 @@ _0203736C:
str r0, [r1, #0x0]
pop {r4, pc}
.balign 4
-_0203738C: .word 0x00000005
+_0203738C: .word SDK_OVERLAY_MODULE_05_ID
_02037390: .word 0x021F64C8
thumb_func_start FUN_02037394
@@ -106564,7 +106564,7 @@ FUN_02037524: ; 0x02037524
mov r1, #0x0
add r0, r4, #0x0
add r2, r1, #0x0
- bl FUN_021EFA9C
+ bl MOD05_021EFA9C
_02037546:
ldr r0, [r4, #0x0]
ldr r1, [r0, #0x0]
@@ -106575,7 +106575,7 @@ _02037546:
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0203756E
- ldr r0, _02037590 ; =0x00000005
+ ldr r0, _02037590 ; =SDK_OVERLAY_MODULE_05_ID
bl UnloadOverlayByID
b _0203756E
_02037562:
@@ -106604,7 +106604,7 @@ _0203758C:
mov r0, #0x0
pop {r4, pc}
.balign 4
-_02037590: .word 0x00000005
+_02037590: .word SDK_OVERLAY_MODULE_05_ID
thumb_func_start FUN_02037594
FUN_02037594: ; 0x02037594
@@ -106637,7 +106637,7 @@ _020375B4:
add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_021D8164
+ bl MOD05_021D8164
_020375D4:
ldr r0, [r4, #0x1c]
ldr r2, [r4, #0x6c]
@@ -106669,7 +106669,7 @@ _020375FC:
beq _02037610
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D85FC
+ bl MOD05_021D85FC
_02037610:
add r0, r4, #0x0
add r1, r5, #0x0
@@ -106684,7 +106684,7 @@ _0203761C:
beq _02037638
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D865C
+ bl MOD04_021D865C
cmp r0, #0x1
bne _0203763A
mov r5, #0x0
@@ -106704,7 +106704,7 @@ _02037646:
_0203764C:
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D8758
+ bl MOD05_021D8758
cmp r0, #0x1
beq _02037754
add r3, sp, #0x8
@@ -106724,21 +106724,21 @@ _02037672:
beq _02037754
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D8820
+ bl MOD05_021D8820
cmp r0, #0x1
bne _020376A6
ldr r0, [r4, #0x4]
ldr r0, [r0, #0x8]
- bl FUN_021E32F0
+ bl MOD05_021E32F0
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_021E81BC
+ bl MOD05_021E81BC
ldr r0, [r4, #0x38]
- bl FUN_021E7138
+ bl MOD05_021E7138
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x1
- bl FUN_021EFA9C
+ bl MOD05_021EFA9C
add sp, #0x10
pop {r3-r5, pc}
_020376A6:
@@ -106749,13 +106749,13 @@ _020376A6:
beq _020376B8
ldr r0, [r4, #0x4]
ldr r0, [r0, #0x8]
- bl FUN_021E32F0
+ bl MOD05_021E32F0
_020376B8:
mov r5, #0x0
bl FUN_02037790
cmp r0, #0x0
beq _020376C8
- bl FUN_02252534
+ bl MOD20_02252534
add r5, r0, #0x0
_020376C8:
add r3, sp, #0x8
@@ -106775,23 +106775,23 @@ _020376E2:
beq _02037754
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D8320
+ bl MOD05_021D8320
cmp r0, #0x1
bne _0203771C
ldr r0, [r4, #0x4]
ldr r0, [r0, #0x8]
- bl FUN_021E32F0
+ bl MOD05_021E32F0
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_021E81BC
+ bl MOD05_021E81BC
ldr r0, [r4, #0x38]
bl FUN_02055B14
ldr r0, [r4, #0x38]
- bl FUN_021E7138
+ bl MOD05_021E7138
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x1
- bl FUN_021EFA9C
+ bl MOD05_021EFA9C
add sp, #0x10
pop {r3-r5, pc}
_0203771C:
@@ -106802,13 +106802,13 @@ _0203771C:
beq _0203772E
ldr r0, [r4, #0x4]
ldr r0, [r0, #0x8]
- bl FUN_021E32F0
+ bl MOD05_021E32F0
_0203772E:
mov r5, #0x0
bl FUN_02037790
cmp r0, #0x0
beq _0203773E
- bl FUN_02252534
+ bl MOD20_02252534
add r5, r0, #0x0
_0203773E:
add r3, sp, #0x8
@@ -106923,7 +106923,7 @@ FUN_020377F0: ; 0x020377F0
thumb_func_start FUN_020377F4
FUN_020377F4: ; 0x020377F4
push {r3, lr}
- bl FUN_0222D5C0
+ bl MOD11_0222D5C0
cmp r0, #0x0
beq _02037802
mov r0, #0x1
@@ -109041,7 +109041,7 @@ FUN_020388B4: ; 0x020388B4
add r4, r0, #0x0
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
- bl FUN_021ED49C
+ bl MOD05_021ED49C
add r5, r0, #0x0
bne _020388CC
bl ErrorHandling
@@ -109269,11 +109269,11 @@ FUN_02038AB0: ; 0x02038AB0
push {r4, lr}
bl FUN_0204652C
add r4, r0, #0x0
- bl FUN_0224D79C
+ bl MOD06_0224D79C
cmp r0, #0x1
bne _02038ACA
add r0, r4, #0x0
- bl FUN_0224D76C
+ bl MOD06_0224D76C
mov r0, #0x1
pop {r4, pc}
_02038ACA:
@@ -109290,7 +109290,7 @@ FUN_02038AD0: ; 0x02038AD0
ldr r1, [r2, #0xc]
ldr r2, [r2, #0x8]
mov r0, #0x4
- bl FUN_0224D70C
+ bl MOD06_0224D70C
add r2, r0, #0x0
ldr r1, _02038AF0 ; =FUN_02038AB0
add r0, r4, #0x0
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s
index 785e5b48..dadbc8aa 100644
--- a/arm9/asm/unk_02038C78.s
+++ b/arm9/asm/unk_02038C78.s
@@ -224,7 +224,7 @@ _02038E32:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xdc
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, _02038E44 ; =0x0003643F
str r0, [r4, #0x0]
add r0, r4, #0x0
@@ -1187,7 +1187,7 @@ FUN_02039564: ; 0x02039564
bl FUN_02046380
mov r1, #0x0
mov r2, #0x40
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
pop {r4, pc}
.balign 4
@@ -1540,14 +1540,14 @@ _020397EC:
sub r1, r0, r1
mov r0, #0x7
sub r0, r0, r1
- blx abs
+ bl abs
strh r0, [r5, #0x0]
ldr r1, [r4, #0x8]
ldr r0, [sp, #0x14]
sub r1, r0, r1
mov r0, #0x7
sub r0, r0, r1
- blx abs
+ bl abs
strh r0, [r5, #0x2]
add r5, r5, #0x6
add r6, r6, #0x1
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s
index 872e976a..874a600a 100644
--- a/arm9/asm/unk_02046030.s
+++ b/arm9/asm/unk_02046030.s
@@ -597,10 +597,10 @@ _02046496:
thumb_func_start FUN_0204649C
FUN_0204649C: ; 0x0204649C
- ldr r3, _020464A0 ; =FUN_02037350
+ ldr r3, _020464A0 ; =LoadOverlay_MODULE_05
bx r3
.balign 4
-_020464A0: .word FUN_02037350
+_020464A0: .word LoadOverlay_MODULE_05
thumb_func_start FUN_020464A4
FUN_020464A4: ; 0x020464A4
@@ -1231,7 +1231,7 @@ FUN_02046948: ; 0x02046948
bl FUN_02046528
add r1, r0, #0x0
add r0, r4, #0x0
- bl FUN_02244558
+ bl MOD06_02244558
add r4, r0, #0x0
bl FUN_020475A0
add r6, r0, #0x0
@@ -1507,7 +1507,7 @@ _02046BA0:
_02046BAE:
ldr r1, [r4, #0x10]
add r0, r5, #0x0
- bl FUN_02248724
+ bl MOD06_02248724
add r0, r6, #0x0
bl FUN_0204B00C
ldr r0, [r4, #0x0]
@@ -1769,7 +1769,7 @@ FUN_02046DB4: ; 0x02046DB4
str r1, [r4, r0]
add r0, r5, #0x0
add r1, r4, #0x0
- bl FUN_0223CCDC
+ bl MOD06_0223CCDC
ldr r0, [r5, #0xc]
bl FUN_02029FC8
mov r1, #0x7
@@ -1811,7 +1811,7 @@ FUN_02046E18: ; 0x02046E18
add r0, r5, #0x0
add r1, r7, #0x0
add r3, r4, #0x0
- bl FUN_0223CD7C
+ bl MOD06_0223CD7C
ldr r0, [sp, #0x20]
cmp r0, #0x0
beq _02046E60
@@ -1991,7 +1991,7 @@ FUN_02046FA0: ; 0x02046FA0
add r1, r6, #0x0
add r2, r7, #0x0
add r3, r4, #0x0
- bl FUN_0223CD7C
+ bl MOD06_0223CD7C
mov r0, #0x63
mov r1, #0x1
lsl r0, r0, #0x2
@@ -2691,7 +2691,7 @@ _0204756A:
cmp r0, r1
bne _0204757C
add r0, r4, #0x0
- bl FUN_021E495C
+ bl MOD05_021E495C
_0204757C:
pop {r3-r5, pc}
nop
@@ -2910,7 +2910,7 @@ FUN_020476CC: ; 0x020476CC
mov r1, #0x0
lsl r2, r2, #0x2
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x63
str r4, [r7, #0x0]
mov r0, #0x0
@@ -2926,7 +2926,7 @@ _020476FA:
add r1, r4, #0x0
mov r2, #0x34
str r0, [r6, #0x18]
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r0, [sp, #0x0]
add r6, r6, #0x4
add r0, r0, #0x1
@@ -3034,7 +3034,7 @@ _02047774:
add r0, r2, #0x4
add r0, r7, r0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r7, #0x0
pop {r3-r7, pc}
@@ -4191,7 +4191,7 @@ _0204817A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x24
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x0
str r0, [r4, #0x0]
str r5, [r4, #0x4]
@@ -4788,7 +4788,7 @@ _02048666:
mov r0, #0x4
bl FUN_020168D0
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
add sp, #0xc
mov r0, #0x1
pop {r4-r7, pc}
@@ -5889,7 +5889,7 @@ _02048F9A:
str r1, [r6, #0x0]
add r0, r4, #0x0
add r2, r6, #0x0
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r5, #0x0]
add r0, r0, #0x1
str r0, [r5, #0x0]
@@ -6460,7 +6460,7 @@ _02049408:
str r0, [r4, #0x0]
b _0204942C
_02049416:
- bl FUN_021E331C
+ bl MOD05_021E331C
add r0, r5, #0x0
bl FUN_02049430
ldr r0, [r4, #0x0]
@@ -6494,7 +6494,7 @@ _02049452:
bl FUN_020553E8
add r1, r0, #0x0
add r0, r5, #0x0
- bl FUN_022483BC
+ bl MOD06_022483BC
str r0, [r4, #0x4]
ldr r1, _02049470 ; =FUN_02049474
add r0, r6, #0x0
@@ -6510,11 +6510,11 @@ FUN_02049474: ; 0x02049474
bl FUN_0204652C
add r4, r0, #0x0
ldr r0, [r4, #0x4]
- bl FUN_022483E0
+ bl MOD06_022483E0
cmp r0, #0x1
bne _02049490
ldr r0, [r4, #0x4]
- bl FUN_022483EC
+ bl MOD06_022483EC
mov r0, #0x1
pop {r4, pc}
_02049490:
@@ -6710,7 +6710,7 @@ _020495F0:
b _02049616
_020495FE:
add r0, r6, #0x0
- bl FUN_021E331C
+ bl MOD05_021E331C
add r0, r5, #0x0
bl FUN_0204961C
ldr r0, [r4, #0x0]
@@ -6744,7 +6744,7 @@ _0204963E:
ldr r2, [r6, #0x4]
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_0224C8C8
+ bl MOD06_0224C8C8
add r2, r0, #0x0
ldr r1, _02049654 ; =0x0224C8E9
add r0, r5, #0x0
@@ -6785,7 +6785,7 @@ _0204968E:
add r0, r7, #0x0
mov r1, #0x1
add r2, r4, #0x4
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
@@ -6829,7 +6829,7 @@ _020496EA:
str r1, [r4, #0x4]
add r0, r7, #0x0
add r2, r4, #0x4
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
@@ -6863,7 +6863,7 @@ FUN_02049718: ; 0x02049718
mov r1, #0x0
mov r2, #0x1c
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0x38]
bl FUN_020552F8
mov r1, #0x0
@@ -7152,9 +7152,9 @@ _02049976:
add r0, r5, #0x0
mov r1, #0xb
mov r2, #0x3
- bl FUN_021E8588
+ bl MOD05_021E8588
str r0, [r4, #0x20]
- bl FUN_021E84F4
+ bl MOD05_021E84F4
add r3, r4, #0x0
mov r2, #0x0
ldr r1, _02049AC4 ; =0x000007D5
@@ -7176,9 +7176,9 @@ _020499A2:
b _02049AB2
_020499B2:
ldr r0, [r4, #0x20]
- bl FUN_021E856C
+ bl MOD05_021E856C
ldr r0, [r4, #0x20]
- bl FUN_021E85E4
+ bl MOD05_021E85E4
ldrh r0, [r4, #0x1c]
cmp r0, #0x0
bne _020499CA
@@ -7225,7 +7225,7 @@ _02049A06:
_02049A14:
mov r0, #0x1
str r0, [r5, #0x6c]
- ldr r0, _02049AC8 ; =0x00000012
+ ldr r0, _02049AC8 ; =SDK_OVERLAY_MODULE_18_ID
mov r1, #0x2
bl HandleLoadOverlay
add r0, r5, #0x0
@@ -7265,7 +7265,7 @@ _02049A64:
beq _02049AB2
bl FUN_0204FCA0
add r0, r5, #0x0
- bl FUN_02244824
+ bl MOD18_02244824
mov r1, #0x0
str r0, [r5, #0x68]
mov r0, #0x2
@@ -7285,7 +7285,7 @@ _02049A96:
cmp r0, #0x0
beq _02049AB2
mov r0, #0x1
- bl FUN_02247970
+ bl MOD18_02247970
add r0, r4, #0x0
bl FUN_02016A18
add sp, #0x8
@@ -7300,7 +7300,7 @@ _02049AB8: .word 0x000003D9
_02049ABC: .word 0x020F46D8
_02049AC0: .word 0x000007F2
_02049AC4: .word 0x000007D5
-_02049AC8: .word 0x00000012
+_02049AC8: .word SDK_OVERLAY_MODULE_18_ID
thumb_func_start FUN_02049ACC
FUN_02049ACC: ; 0x02049ACC
@@ -7332,10 +7332,10 @@ _02049AF2: ; jump table (using 16-bit offset)
.short _02049BD2 - _02049AF2 - 2; case 7
_02049B02:
mov r0, #0x0
- bl FUN_02247970
+ bl MOD18_02247970
bl FUN_0204FCD8
ldr r0, [r5, #0x68]
- bl FUN_0224484C
+ bl MOD18_0224484C
mov r0, #0x2
str r0, [sp, #0x0]
mov r0, #0x1e
@@ -7386,7 +7386,7 @@ _02049B68:
_02049B76:
mov r0, #0x0
str r0, [r5, #0x6c]
- ldr r0, _02049BE4 ; =0x00000012
+ ldr r0, _02049BE4 ; =SDK_OVERLAY_MODULE_18_ID
bl UnloadOverlayByID
ldr r0, [r4, #0x14]
mov r2, #0x1
@@ -7435,7 +7435,7 @@ _02049BDC:
add sp, #0x8
pop {r4-r6, pc}
nop
-_02049BE4: .word 0x00000012
+_02049BE4: .word SDK_OVERLAY_MODULE_18_ID
thumb_func_start FUN_02049BE8
FUN_02049BE8: ; 0x02049BE8
@@ -7614,7 +7614,7 @@ _02049D30:
add r0, r7, #0x0
mov r1, #0x1
add r2, r5, #0x4
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
@@ -7675,7 +7675,7 @@ FUN_02049D9C: ; 0x02049D9C
add r6, r0, #0x0
mov r1, #0x0
mov r2, #0x1c
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r2, r6, #0x0
ldmia r4!, {r0-r1}
add r2, #0x8
@@ -7768,7 +7768,7 @@ _02049E74:
str r1, [r5, #0x4]
add r0, r7, #0x0
add r2, r5, #0x4
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
@@ -7806,7 +7806,7 @@ FUN_02049EA4: ; 0x02049EA4
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r7, #0x0
add r1, r5, #0x0
bl FUN_02048CB0
@@ -8074,7 +8074,7 @@ FUN_0204A0C8: ; 0x0204A0C8
add r0, r4, #0x0
add r1, r5, #0x0
add r2, r7, #0x0
- bl FUN_021ECF14
+ bl MOD05_021ECF14
add r0, r6, #0x0
add r1, r4, #0x0
bl FUN_0206B900
@@ -8608,7 +8608,7 @@ FUN_0204A4A4: ; 0x0204A4A4
ldr r2, [r2, #0x0]
add r0, r7, #0x0
add r3, sp, #0x28
- bl FUN_021F4520
+ bl MOD05_021F4520
str r0, [sp, #0x20]
lsr r0, r7, #0x5
str r0, [sp, #0x18]
@@ -8632,7 +8632,7 @@ FUN_0204A4A4: ; 0x0204A4A4
mul r0, r1
ldr r1, [sp, #0xc]
add r0, r7, r0
- bl FUN_021EF620
+ bl MOD05_021EF620
ldr r2, [sp, #0x14]
add r1, r0, #0x0
add r3, r2, #0x0
@@ -8641,7 +8641,7 @@ FUN_0204A4A4: ; 0x0204A4A4
mul r3, r0
ldr r0, [sp, #0x18]
add r0, r0, r3
- bl FUN_021EF654
+ bl MOD05_021EF654
add r1, r0, #0x0
cmp r1, #0x3
bls _0204A53C
@@ -8651,14 +8651,14 @@ _0204A53C:
lsl r1, r1, #0x18
ldr r0, [sp, #0x8]
lsr r1, r1, #0x18
- bl FUN_021EF8C8
+ bl MOD05_021EF8C8
add r3, r0, #0x0
add r0, sp, #0x30
str r0, [sp, #0x0]
ldr r0, [sp, #0x4]
ldr r1, [sp, #0x2c]
ldr r2, [sp, #0x34]
- bl FUN_021F3DA4
+ bl MOD05_021F3DA4
add r4, r0, #0x0
_0204A558:
ldr r0, [sp, #0x20]
@@ -8668,7 +8668,7 @@ _0204A558:
add r5, #0x9c
ldrb r0, [r0, #0x0]
ldr r1, [r5, #0x0]
- bl FUN_021F4568
+ bl MOD05_021F4568
add r5, r0, #0x0
cmp r4, #0x0
beq _0204A59E
@@ -8731,7 +8731,7 @@ FUN_0204A5C0: ; 0x0204A5C0
asr r1, r1, #0x10
asr r2, r2, #0x10
mov r3, #0x0
- bl FUN_021EF844
+ bl MOD05_021EF844
ldr r1, [sp, #0x8]
cmp r1, #0x0
beq _0204A5EE
@@ -8758,7 +8758,7 @@ FUN_0204A5F4: ; 0x0204A5F4
add r3, sp, #0x0
add r5, r1, #0x0
add r6, r2, #0x0
- bl FUN_021EF844
+ bl MOD05_021EF844
cmp r0, #0x0
bne _0204A612
mov r0, #0xff
@@ -8769,7 +8769,7 @@ _0204A612:
add r1, sp, #0x0
ldrb r1, [r1, #0x0]
add r0, r7, #0x0
- bl FUN_021EF8DC
+ bl MOD05_021EF8DC
lsr r2, r5, #0x1f
lsl r1, r5, #0x1b
sub r1, r1, r2
@@ -9114,7 +9114,7 @@ FUN_0204A87C: ; 0x0204A87C
add r4, r2, #0x0
add r0, sp, #0x0
add r1, r3, #0x0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r1, [sp, #0x0]
ldr r0, [r4, #0x0]
ldr r2, [sp, #0x8]
@@ -9159,11 +9159,11 @@ _0204A8D4:
ldr r0, [sp, #0x8]
ldr r1, [r1, #0x24]
add r2, sp, #0xc
- bl FUN_021EF604
+ bl MOD05_021EF604
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x8]
ldr r0, [r0, #0x24]
- bl FUN_021EF824
+ bl MOD05_021EF824
add r4, r0, #0x0
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x28]
@@ -9176,7 +9176,7 @@ _0204A8D4:
_0204A900:
ldr r0, [sp, #0xc]
add r1, r5, #0x0
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r1, r7, #0x0
add r2, sp, #0x10
add r4, r0, #0x0
@@ -9184,7 +9184,7 @@ _0204A900:
cmp r0, #0x0
beq _0204A92E
add r0, r4, #0x0
- bl FUN_021E7EC4
+ bl MOD05_021E7EC4
cmp r0, r6
bne _0204A92E
ldr r0, [sp, #0x4]
@@ -9227,11 +9227,11 @@ _0204A95C:
ldr r0, [sp, #0x8]
ldr r1, [r1, #0x24]
add r2, sp, #0xc
- bl FUN_021EF604
+ bl MOD05_021EF604
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x8]
ldr r0, [r0, #0x24]
- bl FUN_021EF824
+ bl MOD05_021EF824
add r6, r0, #0x0
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x28]
@@ -9244,7 +9244,7 @@ _0204A95C:
_0204A988:
ldr r0, [sp, #0xc]
add r1, r6, #0x0
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
ldr r1, [sp, #0x4]
add r2, sp, #0x10
add r7, r0, #0x0
@@ -9252,7 +9252,7 @@ _0204A988:
cmp r0, #0x0
beq _0204A9D2
add r0, r7, #0x0
- bl FUN_021E7EC4
+ bl MOD05_021E7EC4
mov r1, #0x0
cmp r4, #0x0
bls _0204A9D2
@@ -9311,14 +9311,14 @@ _0204A9FE:
add r0, r7, #0x0
ldr r1, [r1, #0x24]
add r2, sp, #0xc
- bl FUN_021EF604
+ bl MOD05_021EF604
mov r4, #0x0
_0204AA0C:
ldr r0, [sp, #0xc]
add r1, r4, #0x0
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r6, r0, #0x0
- bl FUN_021E7EC4
+ bl MOD05_021E7EC4
cmp r0, r5
bne _0204AA40
ldr r0, [sp, #0x4]
@@ -9332,7 +9332,7 @@ _0204AA26:
ldr r0, [sp, #0x0]
add r1, r7, #0x0
ldr r0, [r0, #0x24]
- bl FUN_021EF824
+ bl MOD05_021EF824
ldr r1, [sp, #0x8]
str r0, [r1, #0x0]
_0204AA3A:
@@ -9370,14 +9370,14 @@ _0204AA6C:
ldr r0, [sp, #0x8]
ldr r1, [r1, #0x24]
add r2, sp, #0xc
- bl FUN_021EF604
+ bl MOD05_021EF604
mov r6, #0x0
_0204AA7A:
ldr r0, [sp, #0xc]
add r1, r6, #0x0
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r7, r0, #0x0
- bl FUN_021E7EC4
+ bl MOD05_021E7EC4
mov r1, #0x0
cmp r4, #0x0
bls _0204AAB6
@@ -9432,7 +9432,7 @@ FUN_0204AAD4: ; 0x0204AAD4
add r5, r0, #0x0
add r6, r1, #0x0
str r2, [r4, #0x8]
- blx _s32_div_f
+ bl _s32_div_f
lsl r1, r1, #0x10
lsr r1, r1, #0x10
ldr r0, [r4, #0x0]
@@ -9441,7 +9441,7 @@ FUN_0204AAD4: ; 0x0204AAD4
str r0, [r4, #0x0]
add r0, r5, #0x0
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
ldr r1, [r4, #0x8]
@@ -9890,7 +9890,7 @@ _0204AE28:
ldr r0, [r4, #0x0]
mov r1, #0x6
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
str r1, [r4, #0x0]
_0204AE58:
pop {r4, pc}
@@ -9933,7 +9933,7 @@ _0204AE74:
ldr r0, [r4, #0x0]
mov r1, #0x6
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
str r1, [r4, #0x0]
_0204AEA6:
pop {r4, pc}
@@ -9957,7 +9957,7 @@ _0204AEC6:
ldr r0, [r4, #0x8]
add r1, r5, #0x0
add r2, r4, #0x4
- bl FUN_021E3444
+ bl MOD05_021E3444
ldr r1, [r4, #0xc]
mov r0, #0x5
lsl r1, r1, #0x10
@@ -10221,7 +10221,7 @@ _0204B0C0:
str r0, [r4, #0x0]
b _0204B0E4
_0204B0CE:
- bl FUN_021E331C
+ bl MOD05_021E331C
add r0, r5, #0x0
bl FUN_0204B00C
ldr r0, [r4, #0x0]
@@ -10279,7 +10279,7 @@ FUN_0204B130: ; 0x0204B130
add r6, r0, #0x0
add r5, r1, #0x0
add r0, r2, #0x0
- blx RTC_ConvertDateToDay
+ bl RTC_ConvertDateToDay
ldr r1, [r5, #0x20]
add r4, r0, #0x0
cmp r4, r1
@@ -10306,13 +10306,13 @@ FUN_0204B158: ; 0x0204B158
add r5, r1, #0x0
add r0, r4, #0x0
add r1, r6, #0x0
- blx RTC_ConvertDateTimeToSecond
+ bl RTC_ConvertDateTimeToSecond
str r1, [sp, #0x8]
add r1, r5, #0x0
add r7, r0, #0x0
add r0, r5, #0x4
add r1, #0x14
- blx RTC_ConvertDateTimeToSecond
+ bl RTC_ConvertDateTimeToSecond
add r2, r1, #0x0
sub r1, r7, r0
ldr r1, [sp, #0x8]
@@ -10337,7 +10337,7 @@ _0204B19C:
mov r2, #0x3c
mov r3, #0x0
str r1, [sp, #0x8]
- blx _ll_sdiv
+ bl _ll_sdiv
add r7, r0, #0x0
cmp r7, #0x0
ble _0204B1D8
@@ -10505,7 +10505,7 @@ FUN_0204B2F0: ; 0x0204B2F0
ldr r3, [r3, #0x28]
add r0, r5, #0x0
add r1, r4, #0x0
- blx RTC_ConvertSecondToDateTime
+ bl RTC_ConvertSecondToDateTime
pop {r3-r5, pc}
thumb_func_start FUN_0204B30C
@@ -10520,7 +10520,7 @@ FUN_0204B30C: ; 0x0204B30C
ldr r3, [r3, #0x30]
add r0, r5, #0x0
add r1, r4, #0x0
- blx RTC_ConvertSecondToDateTime
+ bl RTC_ConvertSecondToDateTime
pop {r3-r5, pc}
thumb_func_start FUN_0204B328
@@ -10600,7 +10600,7 @@ FUN_0204B388: ; 0x0204B388
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x64
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r6, [r4, #0x0]
add r0, r6, #0x0
bl FUN_02025128
@@ -10661,7 +10661,7 @@ FUN_0204B410: ; 0x0204B410
add r5, r1, #0x0
add r0, r4, #0x0
mov r1, #0x11
- bl FUN_021E4C54
+ bl MOD05_021E4C54
add r1, r0, #0x0
ldr r0, [r5, #0x0]
bl FUN_02016998
@@ -10669,7 +10669,7 @@ FUN_0204B410: ; 0x0204B410
ldr r2, [r5, #0x60]
add r0, r4, #0x0
mov r1, #0x11
- bl FUN_021E4C60
+ bl MOD05_021E4C60
add r0, r5, #0x0
add r1, r5, #0x0
add r5, #0x60
@@ -10681,11 +10681,11 @@ FUN_0204B410: ; 0x0204B410
thumb_func_start FUN_0204B444
FUN_0204B444: ; 0x0204B444
- ldr r3, _0204B44C ; =0x021E4C01
+ ldr r3, _0204B44C ; =MOD05_021E4C00
ldr r0, [r0, #0x60]
bx r3
nop
-_0204B44C: .word 0x021E4C01
+_0204B44C: .word MOD05_021E4C00
thumb_func_start FUN_0204B450
FUN_0204B450: ; 0x0204B450
@@ -10700,7 +10700,7 @@ FUN_0204B450: ; 0x0204B450
ldr r0, [r3, #0x0]
str r0, [r2, #0x0]
add r0, sp, #0x0
- blx MTX_Identity33_
+ bl MTX_Identity33_
ldr r0, [r5, #0x4]
add r1, r4, #0x0
ldr r0, [r0, #0x18]
@@ -11203,9 +11203,9 @@ _0204B83E: ; jump table (using 16-bit offset)
_0204B848:
ldr r0, [r5, #0x38]
mov r1, #0x10
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
ldr r0, [r5, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
ldr r0, [r5, #0x38]
bl FUN_020553A0
bl FUN_02058914
@@ -11392,9 +11392,9 @@ FUN_0204B9CC: ; 0x0204B9CC
bl FUN_02055648
add r1, r0, #0x0
ldr r0, [r4, #0x38]
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
ldr r0, [r4, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
pop {r4, pc}
.balign 4
@@ -11405,7 +11405,7 @@ FUN_0204B9EC: ; 0x0204B9EC
add r4, r0, #0x0
mov r0, #0x0
mov r2, #0x4c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r1, _0204BA14 ; =0x021C5A1C
add r0, r4, #0x0
bl FUN_0204BB20
@@ -11519,11 +11519,11 @@ _0204BAD0: .word 0x021C5A1C
thumb_func_start FUN_0204BAD4
FUN_0204BAD4: ; 0x0204BAD4
- ldr r3, _0204BADC ; =0x0204BE11
+ ldr r3, _0204BADC ; =FUN_0204BE10
ldr r0, _0204BAE0 ; =0x021C5A1C
bx r3
nop
-_0204BADC: .word 0x0204BE11
+_0204BADC: .word FUN_0204BE10
_0204BAE0: .word 0x021C5A1C
thumb_func_start FUN_0204BAE4
@@ -11651,7 +11651,7 @@ FUN_0204BBC4: ; 0x0204BBC4
add r4, r0, #0x0
bl FUN_0201B9EC
ldr r1, _0204BBE4 ; =0x0000199A
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0xa
@@ -11780,13 +11780,13 @@ _0204BCA4:
lsl r1, r1, #0x10
ldr r0, _0204BD14 ; =0x0000FFFF
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r4, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
add r6, #0x14
lsr r4, r0, #0x10
@@ -12410,7 +12410,7 @@ FUN_0204C0D4: ; 0x0204C0D4
beq _0204C0E6
add r0, #0x2a
mov r2, #0x78
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_0204C0E6:
pop {r3, pc}
@@ -12422,7 +12422,7 @@ FUN_0204C0E8: ; 0x0204C0E8
add r1, r4, #0x0
add r1, #0x2a
mov r2, #0x78
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldrb r1, [r4, #0x0]
mov r0, #0x4
orr r0, r1
@@ -12581,7 +12581,7 @@ FUN_0204C1F4: ; 0x0204C1F4
_0204C214:
ldr r0, [r5, #0x4]
ldr r0, [r0, #0x1c]
- bl FUN_021F4608
+ bl MOD05_021F4608
ldr r0, [r4, #0x14]
str r0, [sp, #0x0]
ldr r0, [r4, #0x18]
@@ -12603,7 +12603,7 @@ _0204C23C:
beq _0204C258
ldr r0, [r5, #0x4]
ldr r0, [r0, #0x1c]
- bl FUN_021F45E8
+ bl MOD05_021F45E8
add r0, r4, #0x0
bl FUN_02016A18
add sp, #0xc
@@ -12843,7 +12843,7 @@ _0204C41E:
add r0, r7, #0x0
bl FUN_0204AD8C
add r0, r7, #0x0
- bl FUN_021E331C
+ bl MOD05_021E331C
mov r0, #0x0
str r0, [r4, #0x4]
ldr r1, [r4, #0x20]
@@ -12925,7 +12925,7 @@ _0204C4C8: ; jump table (using 16-bit offset)
.short _0204C510 - _0204C4C8 - 2; case 2
.short _0204C51E - _0204C4C8 - 2; case 3
_0204C4D0:
- bl FUN_021DA5B8
+ bl MOD05_021DA5B8
str r0, [r4, #0x1c]
ldr r0, [r5, #0x38]
bl FUN_02055320
@@ -12935,7 +12935,7 @@ _0204C4D0:
add r1, r0, #0x0
ldr r2, [r4, #0x1c]
add r0, r6, #0x0
- bl FUN_021DA5D0
+ bl MOD05_021DA5D0
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -12943,11 +12943,11 @@ _0204C4D0:
_0204C4F6:
ldr r1, [r4, #0x1c]
add r0, r5, #0x0
- bl FUN_021DA5D8
+ bl MOD05_021DA5D8
cmp r0, #0x0
beq _0204C522
ldr r0, [r4, #0x1c]
- bl FUN_021DA5C8
+ bl MOD05_021DA5C8
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -12985,7 +12985,7 @@ FUN_0204C528: ; 0x0204C528
beq _0204C598
b _0204C59C
_0204C54A:
- bl FUN_021DA5B8
+ bl MOD05_021DA5B8
str r0, [r4, #0x1c]
ldr r0, [r5, #0x38]
bl FUN_02055320
@@ -12995,7 +12995,7 @@ _0204C54A:
add r1, r0, #0x0
ldr r2, [r4, #0x1c]
add r0, r6, #0x0
- bl FUN_021DA5D0
+ bl MOD05_021DA5D0
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13009,11 +13009,11 @@ _0204C570:
add r0, r5, #0x0
add r1, r6, #0x0
lsr r2, r2, #0x18
- bl FUN_021DAC70
+ bl MOD05_021DAC70
cmp r0, #0x0
beq _0204C59C
ldr r0, [r4, #0x1c]
- bl FUN_021DA5C8
+ bl MOD05_021DA5C8
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13089,7 +13089,7 @@ _0204C61C:
ldr r0, _0204C640 ; =0x00000603
bl FUN_020054C8
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13124,7 +13124,7 @@ FUN_0204C644: ; 0x0204C644
beq _0204C67E
b _0204C682
_0204C668:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C688 ; =0x021DB1D1
add r0, r5, #0x0
@@ -13160,7 +13160,7 @@ FUN_0204C68C: ; 0x0204C68C
beq _0204C6C6
b _0204C6CA
_0204C6B0:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C6D0 ; =0x021DB145
add r0, r5, #0x0
@@ -13224,7 +13224,7 @@ _0204C700:
str r0, [r5, #0x4]
b _0204C798
_0204C736:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C79C ; =0x021DB251
add r0, r6, #0x0
@@ -13233,7 +13233,7 @@ _0204C736:
str r0, [r5, #0x4]
b _0204C798
_0204C74A:
- bl FUN_021DA5B8
+ bl MOD05_021DA5B8
str r0, [r5, #0x1c]
ldr r0, [r4, #0x38]
bl FUN_02055320
@@ -13243,7 +13243,7 @@ _0204C74A:
add r1, r0, #0x0
ldr r2, [r5, #0x1c]
add r0, r6, #0x0
- bl FUN_021DA5D0
+ bl MOD05_021DA5D0
ldr r0, [r5, #0x4]
add r0, r0, #0x1
str r0, [r5, #0x4]
@@ -13252,11 +13252,11 @@ _0204C770:
ldr r5, [r5, #0x1c]
add r0, r4, #0x0
add r1, r5, #0x0
- bl FUN_021DA7B4
+ bl MOD05_021DA7B4
cmp r0, #0x0
beq _0204C798
add r0, r5, #0x0
- bl FUN_021DA5C8
+ bl MOD05_021DA5C8
ldr r0, [r4, #0x38]
bl FUN_020553A0
mov r1, #0x0
@@ -13314,7 +13314,7 @@ _0204C7BE:
bl FUN_020463EC
b _0204C818
_0204C7FE:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C820 ; =0x021DB381
add r0, r6, #0x0
@@ -13351,7 +13351,7 @@ FUN_0204C824: ; 0x0204C824
beq _0204C894
b _0204C898
_0204C846:
- bl FUN_021DA5B8
+ bl MOD05_021DA5B8
str r0, [r4, #0x1c]
ldr r0, [r5, #0x38]
bl FUN_02055320
@@ -13361,7 +13361,7 @@ _0204C846:
add r1, r0, #0x0
ldr r2, [r4, #0x1c]
add r0, r6, #0x0
- bl FUN_021DA5D0
+ bl MOD05_021DA5D0
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13375,11 +13375,11 @@ _0204C86C:
add r0, r5, #0x0
add r1, r6, #0x0
lsr r2, r2, #0x18
- bl FUN_021DAAA4
+ bl MOD05_021DAAA4
cmp r0, #0x0
beq _0204C898
ldr r0, [r4, #0x1c]
- bl FUN_021DA5C8
+ bl MOD05_021DA5C8
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13416,7 +13416,7 @@ _0204C8C0: ; jump table (using 16-bit offset)
.short _0204C932 - _0204C8C0 - 2; case 3
_0204C8C8:
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0x0
@@ -13489,7 +13489,7 @@ FUN_0204C93C: ; 0x0204C93C
beq _0204C976
b _0204C97A
_0204C960:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C980 ; =0x021DB041
add r0, r5, #0x0
@@ -13740,7 +13740,7 @@ _0204CB32:
str r0, [r1, #0x0]
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
_0204CB40:
ldr r1, _0204CC34 ; =0x021C5A68
ldr r0, _0204CC38 ; =0x000002BE
@@ -13751,7 +13751,7 @@ _0204CB40:
cmp r5, #0x0
str r2, [r0, #0x4]
beq _0204CB6C
- bl FUN_02244D1C
+ bl MOD18_02244D1C
add r1, r0, #0x0
mov r0, #0xf
bl FUN_02016998
@@ -13760,7 +13760,7 @@ _0204CB40:
str r0, [r2, #0x4]
ldr r0, [r1, #0x0]
ldr r0, [r0, #0x4]
- bl FUN_02244D20
+ bl MOD18_02244D20
_0204CB6C:
ldr r0, _0204CC34 ; =0x021C5A68
ldr r7, _0204CC3C ; =0x0000FFFF
@@ -14005,7 +14005,7 @@ _0204CD2C:
ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0204CD60
- bl FUN_02244D3C
+ bl MOD18_02244D3C
ldr r0, _0204CD70 ; =0x021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
@@ -14831,7 +14831,7 @@ _0204D3B2:
cmp r0, #0x0
beq _0204D3DC
add r0, r5, #0x0
- bl FUN_0223E4D4
+ bl MOD18_0223E4D4
_0204D3DC:
ldr r0, _0204D430 ; =0x021C5A68
ldr r1, _0204D438 ; =0x000002BE
@@ -14856,7 +14856,7 @@ _0204D3DC:
ldrh r1, [r1, #0x0]
ldrh r3, [r3, #0x0]
mov r2, #0x0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
_0204D40E:
ldr r0, _0204D430 ; =0x021C5A68
mov r1, #0x1
@@ -14894,7 +14894,7 @@ FUN_0204D43C: ; 0x0204D43C
add r0, #0x5a
mov r1, #0x0
mov r2, #0x8
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_0204CD78
ldr r0, _0204D4CC ; =0x021C5A68
@@ -14995,7 +14995,7 @@ FUN_0204D4F0: ; 0x0204D4F0
ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0204D52A
- bl FUN_02244D58
+ bl MOD18_02244D58
b _0204D52A
_0204D524:
add r0, r4, #0x0
@@ -15020,7 +15020,7 @@ _0204D536:
cmp r0, #0x0
bne _0204D556
add r0, r5, #0x0
- bl FUN_02245358
+ bl MOD18_02245358
_0204D556:
add r5, r5, #0x1
cmp r5, #0x8
@@ -15057,7 +15057,7 @@ _0204D58A:
cmp r0, #0x0
beq _0204D5A0
add r0, r5, #0x0
- bl FUN_02247614
+ bl MOD18_02247614
_0204D5A0:
lsl r0, r5, #0x10
lsr r0, r0, #0x10
@@ -15091,9 +15091,9 @@ _0204D5C6:
cmp r0, #0x0
beq _0204D5F0
add r0, r5, #0x0
- bl FUN_0223EB8C
+ bl MOD18_0223EB8C
add r0, r5, #0x0
- bl FUN_0223CB08
+ bl MOD18_0223CB08
_0204D5F0:
strb r5, [r6, #0x0]
ldr r3, [r4, #0x0]
@@ -15384,7 +15384,7 @@ _0204D7F6:
beq _0204D812
add r0, r5, #0x0
add r1, r6, #0x0
- bl FUN_02246F1C
+ bl MOD18_02246F1C
cmp r0, #0x0
bne _0204D812
mov r0, #0x1
@@ -15411,8 +15411,8 @@ FUN_0204D830: ; 0x0204D830
ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0204D852
- bl FUN_02244D40
- bl FUN_02244DA0
+ bl MOD18_02244D40
+ bl MOD18_02244DA0
cmp r0, #0x0
bne _0204D84E
mov r0, #0x1
@@ -15500,7 +15500,7 @@ _0204D8AA:
cmp r0, #0x0
beq _0204D8E0
add r1, r5, #0x0
- bl FUN_02244D40
+ bl MOD18_02244D40
str r0, [sp, #0x4]
_0204D8E0:
ldr r1, [r6, #0x0]
@@ -15509,7 +15509,7 @@ _0204D8E0:
cmp r0, #0x0
beq _0204D8F4
add r0, r5, #0x0
- bl FUN_02245F4C
+ bl MOD18_02245F4C
cmp r0, #0x0
bne _0204D976
_0204D8F4:
@@ -15536,7 +15536,7 @@ _0204D90A:
cmp r0, #0x0
beq _0204D93C
add r0, r5, #0x0
- bl FUN_0223F8D8
+ bl MOD18_0223F8D8
cmp r0, #0x0
bne _0204D976
add r0, r5, #0x0
@@ -15544,14 +15544,14 @@ _0204D90A:
cmp r0, #0x0
bne _0204D93C
add r0, r5, #0x0
- bl FUN_02247544
+ bl MOD06_02247544
cmp r0, #0x0
bne _0204D976
_0204D93C:
ldr r0, [sp, #0x4]
cmp r0, #0x0
beq _0204D94A
- bl FUN_02244DB0
+ bl MOD06_02244DB0
cmp r0, #0x0
beq _0204D976
_0204D94A:
@@ -15693,7 +15693,7 @@ _0204DA44:
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x8]
add r0, r5, #0x0
- bl FUN_0224566C
+ bl MOD18_0224566C
cmp r0, #0x1
beq _0204DAE2
_0204DA66:
@@ -15756,7 +15756,7 @@ _0204DA8E:
add r0, r5, #0x0
add r2, sp, #0x14
mov r3, #0x0
- bl FUN_0224089C
+ bl MOD18_0224089C
_0204DAE2:
ldr r0, [sp, #0x0]
add r5, r5, #0x1
@@ -15889,7 +15889,7 @@ FUN_0204DBCC: ; 0x0204DBCC
cmp r0, #0x0
beq _0204DC14
add r0, r4, #0x0
- bl FUN_0223E554
+ bl MOD18_0223E554
ldr r0, _0204DC28 ; =0x021C5A68
ldr r3, [r0, #0x0]
ldr r0, _0204DC30 ; =0x000002BD
@@ -15905,7 +15905,7 @@ FUN_0204DBCC: ; 0x0204DBCC
ldrh r1, [r1, #0x0]
ldrh r3, [r3, #0x0]
mov r2, #0x0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
_0204DC14:
mov r1, #0x0
add r0, r4, #0x0
@@ -16246,10 +16246,10 @@ _0204DE98:
b _0204DEEC
_0204DEC2:
ldr r0, [sp, #0x10]
- blx abs
+ bl abs
add r6, r0, #0x0
add r0, r7, #0x0
- blx abs
+ bl abs
cmp r6, r0
ble _0204DEE2
ldr r0, [sp, #0x10]
@@ -16269,9 +16269,9 @@ _0204DEEA:
mov r6, #0x80
_0204DEEC:
add r0, r7, #0x0
- blx abs
+ bl abs
ldr r0, [sp, #0x10]
- blx abs
+ bl abs
ldrb r3, [r5, #0x5]
add r0, r4, #0x0
add r1, r6, #0x0
@@ -16566,7 +16566,7 @@ _0204E124:
add r0, r5, #0x0
add r2, sp, #0x4
mov r3, #0x0
- bl FUN_0224089C
+ bl MOD18_0224089C
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
@@ -16813,11 +16813,11 @@ FUN_0204E2E0: ; 0x0204E2E0
thumb_func_start FUN_0204E2F0
FUN_0204E2F0: ; 0x0204E2F0
- ldr r3, _0204E2F8 ; =0x0223E4BD
+ ldr r3, _0204E2F8 ; =MOD18_0223E4BC
ldrb r0, [r2, #0x0]
bx r3
nop
-_0204E2F8: .word 0x0223E4BD
+_0204E2F8: .word MOD18_0223E4BC
thumb_func_start FUN_0204E2FC
FUN_0204E2FC: ; 0x0204E2FC
@@ -17428,9 +17428,9 @@ FUN_0204E758: ; 0x0204E758
ldr r0, [r0, #0x0]
add r1, r2, #0x0
ldr r0, [r0, #0x4]
- bl FUN_02244D40
+ bl MOD18_02244D40
add r1, r4, #0x0
- bl FUN_02244D98
+ bl MOD18_02244D98
pop {r4, pc}
nop
_0204E774: .word 0x021C5A68
@@ -17442,9 +17442,9 @@ FUN_0204E778: ; 0x0204E778
ldr r0, _0204E790 ; =0x021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
- bl FUN_02244D40
+ bl MOD18_02244D40
mov r1, #0x0
- bl FUN_02244D98
+ bl MOD18_02244D98
pop {r3, pc}
nop
_0204E790: .word 0x021C5A68
@@ -17500,7 +17500,7 @@ FUN_0204E7CC: ; 0x0204E7CC
ldrh r3, [r4, #0x2]
ldr r0, [r0, #0x54]
mov r2, #0x0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
_0204E7FA:
strh r6, [r4, #0x0]
ldr r0, [sp, #0x0]
@@ -17528,7 +17528,7 @@ _0204E81A:
ldrh r1, [r4, #0x0]
ldrh r3, [r4, #0x2]
mov r2, #0x0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
_0204E832:
ldr r0, _0204E848 ; =0x021C5A68
ldr r1, [r0, #0x0]
@@ -17664,7 +17664,7 @@ FUN_0204E8FC: ; 0x0204E8FC
ldr r1, [r1, #0x0]
ldr r0, _0204E968 ; =FUN_0204D308
ldr r1, [r1, #0x54]
- bl FUN_022494C8
+ bl MOD18_022494C8
pop {r4, pc}
_0204E936:
ldrb r0, [r4, #0x0]
@@ -17686,7 +17686,7 @@ _0204E936:
ldr r1, [r1, #0x0]
ldr r0, _0204E968 ; =FUN_0204D308
ldr r1, [r1, #0x54]
- bl FUN_0224A7C8
+ bl MOD06_0224A7C8
_0204E962:
pop {r4, pc}
.balign 4
@@ -17716,11 +17716,11 @@ _0204E988:
cmp r1, r0
bne _0204E9AA
bl FUN_0204F7E4
- bl FUN_0223D638
+ bl MOD18_0223D638
ldr r3, _0204EAD0 ; =FUN_0204E2AC
mov r1, #0x48
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
_0204E9AA:
ldrb r0, [r5, #0x0]
cmp r0, #0x1
@@ -17741,7 +17741,7 @@ _0204E9B8:
ldr r2, [r2, #0x0]
ldr r1, _0204EAD4 ; =FUN_0204D308
ldr r2, [r2, #0x54]
- bl FUN_02247A34
+ bl MOD18_02247A34
ldr r0, _0204EACC ; =0x021C5A68
ldrb r4, [r5, #0x1]
ldr r2, [r0, #0x0]
@@ -17831,7 +17831,7 @@ _0204EA7C:
ldr r2, [r2, #0x0]
add r0, r4, #0x0
ldr r2, [r2, #0x54]
- bl FUN_02248DF8
+ bl MOD18_02248DF8
_0204EA9A:
ldrb r0, [r5, #0x0]
cmp r0, #0x2
@@ -17841,18 +17841,18 @@ _0204EA9A:
cmp r1, r0
bne _0204EABC
bl FUN_0204F7E4
- bl FUN_0223D638
+ bl MOD18_0223D638
ldr r3, _0204EAD0 ; =FUN_0204E2AC
mov r1, #0x2
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
_0204EABC:
ldrb r0, [r5, #0x0]
cmp r0, #0x1
bne _0204EACA
ldrb r0, [r5, #0x1]
ldrb r1, [r5, #0x2]
- bl FUN_0223E4A8
+ bl MOD18_0223E4A8
_0204EACA:
pop {r4-r6, pc}
.balign 4
@@ -18548,7 +18548,7 @@ _0204F004:
bne _0204F01E
add r0, r1, #0x0
bl FUN_020553A0
- bl FUN_021E5970
+ bl MOD05_021E5970
ldr r1, _0204F06C ; =0x021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x2
@@ -18568,7 +18568,7 @@ _0204F02C:
bne _0204F068
add r0, r1, #0x0
bl FUN_020553A0
- bl FUN_021E57D4
+ bl MOD05_021E57D4
ldr r1, _0204F06C ; =0x021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x2
@@ -18581,7 +18581,7 @@ _0204F048:
bne _0204F068
add r0, r1, #0x0
bl FUN_020553A0
- bl FUN_021E5614
+ bl MOD05_021E5614
ldr r1, _0204F06C ; =0x021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x2
@@ -18689,8 +18689,8 @@ FUN_0204F108: ; 0x0204F108
push {r3, lr}
bl FUN_02031190
bl FUN_0204F0A8
- bl FUN_0223D648
- bl FUN_0224DD94
+ bl MOD18_0223D648
+ bl MOD18_0224DD94
mov r0, #0x4
bl FUN_0204F774
pop {r3, pc}
@@ -18848,18 +18848,18 @@ FUN_0204F23C: ; 0x0204F23C
sub sp, #0x8
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
mov r0, #0x0
bl FUN_0204D628
mov r0, #0x4
bl FUN_0204F74C
- bl FUN_0223D648
+ bl MOD18_0223D648
add r6, r0, #0x0
ldrb r0, [r5, #0x1]
bl FUN_0202DFA4
add r1, r0, #0x0
add r0, r6, #0x0
- bl FUN_0224DDB8
+ bl MOD18_0224DDB8
cmp r4, #0x0
beq _0204F29C
bl FUN_02031190
@@ -18873,18 +18873,18 @@ FUN_0204F23C: ; 0x0204F23C
bl FUN_0204F0A8
bl FUN_02031190
bl FUN_0204F074
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F2CC ; =FUN_0204F108
mov r1, #0xa
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
b _0204F2AA
_0204F29C:
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F2CC ; =FUN_0204F108
mov r1, #0xb
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
_0204F2AA:
mov r0, #0xff
str r0, [sp, #0x0]
@@ -18965,11 +18965,11 @@ _0204F346:
b _0204F5DA
_0204F348:
bl FUN_0204F7E4
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F5E4 ; =FUN_0204E2B4
mov r1, #0x2
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
mov r0, #0xff
str r0, [sp, #0x0]
mov r3, #0x0
@@ -19033,11 +19033,11 @@ _0204F3AC:
add r0, r4, #0x0
bl FUN_02026C00
bl FUN_0204F7E4
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F5EC ; =FUN_0204E2AC
mov r1, #0xd
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
ldr r0, _0204F5F0 ; =0x00000625
bl FUN_020054C8
b _0204F410
@@ -19052,7 +19052,7 @@ _0204F3FC:
bl FUN_0204F23C
_0204F410:
ldrb r0, [r5, #0x1]
- bl FUN_022472AC
+ bl MOD18_022472AC
add sp, #0xc
pop {r4-r5, pc}
_0204F41A:
@@ -19069,18 +19069,18 @@ _0204F41A:
bl FUN_02026970
mov r0, #0x1
bl FUN_0204F74C
- bl FUN_0223D648
+ bl MOD18_0223D648
add r4, r0, #0x0
ldrb r0, [r5, #0x2]
bl FUN_0202DFA4
add r1, r0, #0x0
add r0, r4, #0x0
- bl FUN_0224DDB8
- bl FUN_0223D648
+ bl MOD18_0224DDB8
+ bl MOD18_0223D648
ldr r3, _0204F5F4 ; =FUN_0204E2D4
mov r1, #0xc
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
ldr r0, _0204F5F8 ; =0x00000425
bl FUN_0200521C
ldr r0, _0204F5F0 ; =0x00000625
@@ -19098,7 +19098,7 @@ _0204F46C:
_0204F480:
ldrb r0, [r5, #0x1]
ldrb r1, [r5, #0x2]
- bl FUN_02247294
+ bl MOD18_02247294
add sp, #0xc
pop {r4-r5, pc}
_0204F48C:
@@ -19108,11 +19108,11 @@ _0204F48C:
bne _0204F4B8
mov r0, #0x2
bl FUN_0204F74C
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F5FC ; =FUN_0204E2BC
mov r1, #0x6
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
add sp, #0xc
pop {r4-r5, pc}
_0204F4AE:
@@ -19125,11 +19125,11 @@ _0204F4B8:
_0204F4BA:
mov r0, #0x20
bl FUN_0204F74C
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F600 ; =FUN_0204E2C8
mov r1, #0x5
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
add sp, #0xc
pop {r4-r5, pc}
_0204F4D2:
@@ -19194,11 +19194,11 @@ _0204F54A:
ldrb r1, [r1, #0x0]
cmp r1, r0
bne _0204F572
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F5EC ; =FUN_0204E2AC
mov r1, #0x7
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
b _0204F57A
_0204F572:
mov r0, #0x60
@@ -19569,7 +19569,7 @@ FUN_0204F80C: ; 0x0204F80C
pop {r3, pc}
_0204F832:
bl FUN_02031190
- bl FUN_0223E734
+ bl MOD12_0223E734
cmp r0, #0x0
beq _0204F84C
bl FUN_0204F7FC
@@ -19598,7 +19598,7 @@ FUN_0204F858: ; 0x0204F858
cmp r0, #0x0
beq _0204F880
bl FUN_02031190
- bl FUN_0223E734
+ bl MOD12_0223E734
cmp r0, #0x0
bne _0204F880
mov r0, #0x0
@@ -20040,7 +20040,7 @@ FUN_0204FBB0: ; 0x0204FBB0
mov r2, #0x48
str r0, [r1, #0x0]
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0204FC08 ; =0x021C5A6C
mov r1, #0x32
ldr r0, [r0, #0x0]
@@ -20157,7 +20157,7 @@ FUN_0204FCA0: ; 0x0204FCA0
ldr r0, _0204FCD0 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
- bl FUN_0223E060
+ bl MOD18_0223E060
ldr r0, _0204FCD4 ; =FUN_020500A4
mov r1, #0x0
bl FUN_02050094
@@ -20199,7 +20199,7 @@ FUN_0204FD08: ; 0x0204FD08
bl FUN_0202EDD8
cmp r0, #0x0
bne _0204FD1E
- bl FUN_02245F1C
+ bl MOD18_02245F1C
ldr r0, _0204FD20 ; =FUN_020500A4
mov r1, #0x0
bl FUN_02050094
@@ -20673,12 +20673,12 @@ _020500B6:
ldr r0, _02050108 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
- bl FUN_0223E1E0
+ bl MOD18_0223E1E0
bl FUN_0202DBE0
mov r0, #0x0
bl FUN_0204D168
- bl FUN_0223EF7C
- bl FUN_02245FA0
+ bl MOD18_0223EF7C
+ bl MOD06_02245FA0
ldr r0, _02050108 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
@@ -20748,7 +20748,7 @@ _02050164: .word FUN_02050168
thumb_func_start FUN_02050168
FUN_02050168: ; 0x02050168
push {r3, lr}
- bl FUN_0223DFB4
+ bl MOD06_0223DFB4
bl FUN_0204F80C
bl FUN_020318C4
cmp r0, #0x0
@@ -20756,7 +20756,7 @@ FUN_02050168: ; 0x02050168
bl FUN_02031190
cmp r0, #0x0
bne _02050190
- bl FUN_02245324
+ bl MOD18_02245324
ldr r0, _0205019C ; =FUN_0205024C
mov r1, #0x3c
bl FUN_02050094
@@ -20817,17 +20817,17 @@ _020501DC:
cmp r0, r1
bne _0205023C
_02050202:
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
mov r0, #0x0
bl FUN_0204D040
mov r0, #0x0
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- bl FUN_022408FC
+ bl MOD18_022408FC
mov r0, #0x0
mov r1, #0x1
- bl FUN_0223FCE8
+ bl MOD18_0223FCE8
mov r0, #0x0
bl FUN_0202DE78
mov r0, #0x0
@@ -20848,7 +20848,7 @@ _02050248: .word FUN_02050350
thumb_func_start FUN_0205024C
FUN_0205024C: ; 0x0205024C
push {r3, lr}
- bl FUN_0223DFB4
+ bl MOD06_0223DFB4
ldr r0, _020502A0 ; =0x021C5A6C
ldr r1, [r0, #0x0]
ldrh r0, [r1, #0x3c]
@@ -20866,7 +20866,7 @@ _02050260:
cmp r0, #0x0
bne _0205029E
_02050272:
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
cmp r0, #0x0
beq _0205027E
bl FUN_0204F7FC
@@ -20876,8 +20876,8 @@ _0205027E:
mov r0, #0x0
bl FUN_0204D168
bl FUN_0204F930
- bl FUN_02245FA0
- bl FUN_0223E7FC
+ bl MOD06_02245FA0
+ bl MOD18_0223E7FC
ldr r0, _020502A8 ; =FUN_020502AC
mov r1, #0x0
bl FUN_02050094
@@ -20891,7 +20891,7 @@ _020502A8: .word FUN_020502AC
thumb_func_start FUN_020502AC
FUN_020502AC: ; 0x020502AC
push {r3, lr}
- bl FUN_0223DFB4
+ bl MOD06_0223DFB4
ldr r0, _02050314 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
@@ -20913,15 +20913,15 @@ FUN_020502AC: ; 0x020502AC
bne _02050310
_020502E2:
mov r0, #0x0
- bl FUN_02245358
+ bl MOD18_02245358
bl FUN_0204F90C
- bl FUN_02247808
+ bl MOD06_02247808
mov r0, #0x2b
bl FUN_020311DC
bl FUN_02031190
mov r1, #0x1
- bl FUN_0223FCE8
- bl FUN_0223E6B8
+ bl MOD18_0223FCE8
+ bl MOD18_0223E6B8
bl FUN_020318B4
ldr r0, _02050318 ; =FUN_02050458
mov r1, #0x0
@@ -20945,15 +20945,15 @@ _0205032C: .word FUN_02050330
thumb_func_start FUN_02050330
FUN_02050330: ; 0x02050330
- ldr r3, _02050334 ; =FUN_0223DFB4
+ ldr r3, _02050334 ; =MOD06_0223DFB4
bx r3
.balign 4
-_02050334: .word FUN_0223DFB4 + 1
+_02050334: .word MOD06_0223DFB4
thumb_func_start FUN_02050338
FUN_02050338: ; 0x02050338
push {r3, lr}
- bl FUN_02245F1C
+ bl MOD18_02245F1C
bl FUN_0204CC9C
ldr r0, _0205034C ; =FUN_020502AC
mov r1, #0x0
@@ -20971,7 +20971,7 @@ FUN_02050350: ; 0x02050350
cmp r0, #0x9
bne _02050364
bl FUN_0202DBE0
- bl FUN_0223E7FC
+ bl MOD18_0223E7FC
_02050364:
ldr r0, _020503A8 ; =0x021C5A6C
ldr r0, [r0, #0x0]
@@ -21014,7 +21014,7 @@ FUN_020503B4: ; 0x020503B4
bl FUN_0204FB00
cmp r0, #0x0
beq _020503CC
- bl FUN_0223EF7C
+ bl MOD18_0223EF7C
ldr r0, _020503E8 ; =FUN_020503F0
mov r1, #0x0
bl FUN_02050094
@@ -21039,13 +21039,13 @@ _020503EC: .word 0x021C5A6C
thumb_func_start FUN_020503F0
FUN_020503F0: ; 0x020503F0
push {r3, lr}
- bl FUN_0223F4D8
+ bl MOD18_0223F4D8
cmp r0, #0x0
beq _02050412
ldr r0, _02050418 ; =0x02105E94
bl FUN_0204FBAC
- bl FUN_0223F4F4
- bl FUN_02245FA0
+ bl MOD18_0223F4F4
+ bl MOD06_02245FA0
ldr r0, _0205041C ; =FUN_02050420
mov r1, #0x0
bl FUN_02050094
@@ -21060,12 +21060,12 @@ _0205041C: .word FUN_02050420
thumb_func_start FUN_02050420
FUN_02050420: ; 0x02050420
push {r3, lr}
- bl FUN_022461A4
+ bl MOD18_022461A4
cmp r0, #0x0
beq _0205044A
ldr r0, _02050450 ; =0x02105EB0
bl FUN_0204FBAC
- bl FUN_022461B8
+ bl MOD18_022461B8
mov r0, #0x1
bl FUN_0204D168
mov r0, #0x1f
@@ -21148,10 +21148,10 @@ _020504CC: .word FUN_020500A4
thumb_func_start FUN_020504D0
FUN_020504D0: ; 0x020504D0
- ldr r3, _020504D4 ; =FUN_0223DFB4
+ ldr r3, _020504D4 ; =MOD06_0223DFB4
bx r3
.balign 4
-_020504D4: .word FUN_0223DFB4 + 1
+_020504D4: .word MOD06_0223DFB4
thumb_func_start FUN_020504D8
FUN_020504D8: ; 0x020504D8
@@ -21162,12 +21162,12 @@ FUN_020504D8: ; 0x020504D8
ldr r0, _02050508 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
- bl FUN_0223E1E0
+ bl MOD18_0223E1E0
bl FUN_0202DBE0
mov r0, #0x0
bl FUN_0204D168
- bl FUN_0223EF7C
- bl FUN_02245FA0
+ bl MOD18_0223EF7C
+ bl MOD06_02245FA0
ldr r0, _0205050C ; =FUN_020504D0
mov r1, #0x0
bl FUN_02050094
@@ -21182,13 +21182,13 @@ FUN_02050510: ; 0x02050510
push {r3, lr}
bl FUN_02031190
mov r1, #0x1
- bl FUN_0223FCE8
+ bl MOD18_0223FCE8
bl FUN_02031190
mov r1, #0x1
- bl FUN_02247728
- bl FUN_0223CACC
+ bl MOD18_02247728
+ bl MOD18_0223CACC
bl FUN_0204CEF8
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
bl FUN_02031880
bl FUN_0204FB28
ldr r0, _02050544 ; =FUN_020504A4
@@ -21201,7 +21201,7 @@ _02050544: .word FUN_020504A4
thumb_func_start FUN_02050548
FUN_02050548: ; 0x02050548
push {r3, lr}
- bl FUN_0223DFB4
+ bl MOD06_0223DFB4
bl FUN_0204F80C
ldr r0, _02050574 ; =0x021C5A6C
ldr r0, [r0, #0x0]
@@ -21235,15 +21235,15 @@ _02050588: .word FUN_0205058C
thumb_func_start FUN_0205058C
FUN_0205058C: ; 0x0205058C
- ldr r3, _02050590 ; =0x02247831
+ ldr r3, _02050590 ; =MOD18_02247830
bx r3
.balign 4
-_02050590: .word 0x02247831
+_02050590: .word MOD18_02247830
thumb_func_start FUN_02050594
FUN_02050594: ; 0x02050594
push {r3, lr}
- bl FUN_02245F1C
+ bl MOD18_02245F1C
bl FUN_0204CC9C
bl FUN_0202EE44
cmp r0, #0x0
@@ -21252,9 +21252,9 @@ FUN_02050594: ; 0x02050594
cmp r0, #0x0
beq _020505CC
_020505AE:
- bl FUN_022452A4
+ bl MOD18_022452A4
bl FUN_0204CEF8
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
bl FUN_02031880
bl FUN_0204FB28
ldr r0, _020505D8 ; =FUN_020504A4
@@ -21289,7 +21289,7 @@ FUN_020505F4: ; 0x020505F4
thumb_func_start FUN_020505F8
FUN_020505F8: ; 0x020505F8
push {r3, lr}
- bl FUN_02245F1C
+ bl MOD18_02245F1C
bl FUN_0204CC9C
ldr r0, _0205060C ; =FUN_02050168
mov r1, #0x0
@@ -21317,7 +21317,7 @@ FUN_02050624: ; 0x02050624
thumb_func_start FUN_02050628
FUN_02050628: ; 0x02050628
push {r3, lr}
- bl FUN_02245F1C
+ bl MOD18_02245F1C
bl FUN_0204CC9C
ldr r0, _0205063C ; =FUN_020504D0
mov r1, #0x0
@@ -21333,7 +21333,7 @@ FUN_02050640: ; 0x02050640
bl FUN_02030E7C
cmp r0, #0x0
beq _0205065E
- bl FUN_02240834
+ bl MOD06_02240834
bl FUN_0202DBE0
ldr r0, _02050660 ; =FUN_02050664
mov r1, #0x0
@@ -21354,7 +21354,7 @@ FUN_02050668: ; 0x02050668
bl FUN_0202E4C8
cmp r0, #0x0
beq _0205067E
- bl FUN_022407CC
+ bl MOD06_022407CC
ldr r0, _02050680 ; =FUN_02050684
mov r1, #0x0
bl FUN_02050094
@@ -22247,7 +22247,7 @@ FUN_02050D54: ; 0x02050D54
strh r0, [r1, #0x3c]
pop {r3, pc}
_02050D66:
- bl FUN_0223E1A4
+ bl MOD18_0223E1A4
bl FUN_02031860
mov r0, #0x21
bl FUN_020168D0
@@ -22329,7 +22329,7 @@ _02050E02:
mov r0, #0x0
pop {r3, pc}
_02050E06:
- bl FUN_0223E2AC
+ bl MOD18_0223E2AC
pop {r3, pc}
.balign 4
_02050E0C: .word 0x021C5A6C
@@ -22345,7 +22345,7 @@ FUN_02050E10: ; 0x02050E10
ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _02050E26
- bl FUN_0223E118
+ bl MOD18_0223E118
_02050E26:
pop {r3, pc}
.balign 4
@@ -22362,7 +22362,7 @@ FUN_02050E2C: ; 0x02050E2C
ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _02050E42
- bl FUN_0223E154
+ bl MOD18_0223E154
_02050E42:
pop {r3, pc}
.balign 4
@@ -22383,7 +22383,7 @@ FUN_02050E48: ; 0x02050E48
mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0xc]
bl FUN_020238F4
add r1, r0, #0x0
@@ -22438,7 +22438,7 @@ FUN_02050ED4: ; 0x02050ED4
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0x24]
ldr r0, [r0, #0xc]
bl LoadPlayerDataAddress
@@ -22564,7 +22564,7 @@ _02050FDA:
add r0, #0x2c
add r1, #0x3d
mov r2, #0x6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [r4, #0x4]
add r0, #0x22
ldrb r0, [r0, #0x0]
@@ -22628,7 +22628,7 @@ FUN_0205104C: ; 0x0205104C
cmp r0, #0x0
beq _02051066
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
bl FUN_0204CC9C
mov r0, #0x1
pop {r3, pc}
@@ -22921,7 +22921,7 @@ _02051288:
b _020517B8
_0205129C:
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0xe
str r0, [r4, #0x34]
b _020517B8
@@ -23392,7 +23392,7 @@ _02051642:
b _020517B8
_0205167A:
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x21
str r0, [r4, #0x34]
b _020517B8
@@ -23654,7 +23654,7 @@ _0205188E:
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x8c
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
mov r1, #0x5
add r0, #0x43
@@ -23840,7 +23840,7 @@ _02051A16:
bl FUN_0206B9B0
add r1, r4, #0x0
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r5, r5, #0x1
add r4, r4, r6
cmp r5, #0x3
@@ -24002,7 +24002,7 @@ FUN_02051B1C: ; 0x02051B1C
mul r2, r4
add r1, r3, r2
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [r6, #0x50]
mov r1, #0x3
bl FUN_0206B8CC
@@ -24562,7 +24562,7 @@ _02051F7C:
add r0, #0x8
bl FUN_02019178
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
ldr r0, [r4, #0x28]
add r0, r0, #0x1
str r0, [r4, #0x28]
@@ -24605,7 +24605,7 @@ _0205200C:
cmp r0, #0x0
bne _0205203A
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
bl FUN_0204CC9C
ldr r0, [r4, #0x28]
add r0, r0, #0x1
@@ -24746,7 +24746,7 @@ _0205211E:
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
str r0, [r4, #0x10]
mov r0, #0x28
@@ -26131,7 +26131,7 @@ FUN_02052B74: ; 0x02052B74
add r0, sp, #0x0
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
cmp r4, #0xb
bhi _02052BFA
add r0, r4, r4
@@ -26593,7 +26593,7 @@ FUN_02052EE8: ; 0x02052EE8
ldr r2, _02052F58 ; =0x000004E8
mov r0, #0x0
add r1, r4, #0x0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x4e
str r5, [r4, #0x0]
mov r1, #0x1
@@ -27251,7 +27251,7 @@ _020533CC:
cmp r0, #0x1
bne _0205342A
add r0, r4, #0x0
- bl FUN_02249668
+ bl MOD06_02249668
str r0, [r5, #0x14]
b _02053438
_0205342A:
@@ -27259,7 +27259,7 @@ _0205342A:
blo _02053438
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02249668
+ bl MOD06_02249668
str r0, [r5, #0x14]
_02053438:
mov r0, #0x0
@@ -27306,7 +27306,7 @@ FUN_02053478: ; 0x02053478
cmp r0, #0x0
bne _0205349C
add r0, r1, #0x0
- bl FUN_021EDA48
+ bl MOD05_021EDA48
str r0, [r4, #0x10]
mov r0, #0x1e
strh r0, [r4, #0x6]
@@ -27408,7 +27408,7 @@ _02053524:
bne _02053566
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_02249668
+ bl MOD06_02249668
str r0, [r5, #0x14]
b _02053574
_02053566:
@@ -27416,7 +27416,7 @@ _02053566:
blo _02053574
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02249668
+ bl MOD06_02249668
str r0, [r5, #0x14]
_02053574:
mov r0, #0x0
@@ -30706,7 +30706,7 @@ FUN_02054C14: ; 0x02054C14
push {r4, lr}
mov r1, #0xa
add r4, r0, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C26
mov r0, #0x1
@@ -30714,7 +30714,7 @@ FUN_02054C14: ; 0x02054C14
_02054C26:
add r0, r4, #0x0
mov r1, #0x64
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C36
mov r0, #0x2
@@ -30723,7 +30723,7 @@ _02054C36:
mov r1, #0xfa
add r0, r4, #0x0
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C48
mov r0, #0x3
@@ -30731,7 +30731,7 @@ _02054C36:
_02054C48:
ldr r1, _02054C9C ; =0x00002710
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C58
mov r0, #0x4
@@ -30739,7 +30739,7 @@ _02054C48:
_02054C58:
ldr r1, _02054CA0 ; =0x000186A0
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C68
mov r0, #0x5
@@ -30747,7 +30747,7 @@ _02054C58:
_02054C68:
ldr r1, _02054CA4 ; =0x000F4240
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C78
mov r0, #0x6
@@ -30755,7 +30755,7 @@ _02054C68:
_02054C78:
ldr r1, _02054CA8 ; =0x00989680
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C88
mov r0, #0x7
@@ -30763,7 +30763,7 @@ _02054C78:
_02054C88:
ldr r1, _02054CAC ; =0x05F5E100
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C98
mov r0, #0x8
@@ -31092,7 +31092,7 @@ FUN_02054EA0: ; 0x02054EA0
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -31108,7 +31108,7 @@ FUN_02054EA0: ; 0x02054EA0
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -31171,46 +31171,46 @@ FUN_02054F50: ; 0x02054F50
mov r1, #0x0
mov r2, #0x14
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, sp, #0x8
ldrh r0, [r0, #0x10]
cmp r0, #0x0
beq _02054F8A
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _02054F98
_02054F8A:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_02054F98:
- blx _ffix
+ bl _ffix
str r0, [r4, #0x4]
add r0, sp, #0x8
ldrh r0, [r0, #0x14]
cmp r0, #0x0
beq _02054FB8
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _02054FC6
_02054FB8:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_02054FC6:
- blx _ffix
+ bl _ffix
str r0, [r4, #0x8]
strh r6, [r4, #0xc]
strh r7, [r4, #0x10]
@@ -31274,7 +31274,7 @@ FUN_0205502C: ; 0x0205502C
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
strh r6, [r4, #0x4]
strh r7, [r4, #0x6]
str r5, [r4, #0x0]
@@ -31373,7 +31373,7 @@ _02055118:
add r0, r4, #0x0
bl FUN_02058578
add r0, r5, #0x0
- bl FUN_021EDBC8
+ bl MOD05_021EDBC8
add r0, r5, #0x0
bl FUN_020553C4
cmp r0, #0x2
@@ -31392,7 +31392,7 @@ _02055118:
add r0, r4, #0x0
add r1, r6, #0x0
add r2, r7, #0x0
- bl FUN_0224ABAC
+ bl MOD06_0224ABAC
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_02055450
@@ -31430,7 +31430,7 @@ _0205518E:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x3c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
@@ -32477,14 +32477,14 @@ _02055812:
add r2, r6, #0x0
bl FUN_02055900
add r0, r5, #0x0
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_02055BD4
cmp r0, #0x1
bne _0205584E
add r0, r5, #0x0
- bl FUN_021E7138
+ bl MOD05_021E7138
pop {r3-r7, pc}
_0205584E:
add r0, r5, #0x0
@@ -32497,14 +32497,14 @@ _0205584E:
cmp r0, #0x0
beq _0205586C
add r0, r5, #0x0
- bl FUN_021E7138
+ bl MOD05_021E7138
b _02055878
_0205586C:
ldr r0, [sp, #0x1c]
cmp r0, #0x1
bne _02055878
add r0, r5, #0x0
- bl FUN_021E70F0
+ bl MOD05_021E70F0
_02055878:
add r0, sp, #0x8
ldrh r0, [r0, #0x10]
@@ -36009,7 +36009,7 @@ _02057430:
bl FUN_020583A0
add r1, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_021F2AF4
+ bl MOD05_021F2AF4
add sp, #0x8
pop {r3-r7, pc}
.balign 4
@@ -36030,7 +36030,7 @@ _0205745A:
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x4a
lsl r0, r0, #0x2
add r6, r4, #0x0
@@ -36045,7 +36045,7 @@ _0205747E:
add r0, r4, #0x0
mov r1, #0x0
add r2, r6, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_020583B4
@@ -36489,7 +36489,7 @@ _02057846:
add r0, r5, #0x0
mov r1, #0x0
mul r2, r4
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
_02057856:
add sp, #0x8
pop {r3-r7, pc}
@@ -36889,7 +36889,7 @@ _02057BD4:
ldr r2, [sp, #0x4]
add r0, r6, #0x0
add r1, r4, #0x0
- blx memcpy
+ bl memcpy
mov r0, #0xb
mov r1, #0x14
bl FUN_020169D8
@@ -37619,7 +37619,7 @@ FUN_020581B4: ; 0x020581B4
bl FUN_02058544
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_021F2E0C
+ bl MOD05_021F2E0C
add r0, r4, #0x0
bl FUN_02058884
cmp r0, #0x0
@@ -37812,7 +37812,7 @@ FUN_02058348: ; 0x02058348
cmp r0, #0x1
bne _0205835E
add r0, r4, #0x0
- bl FUN_021F1D8C
+ bl MOD05_021F1D8C
_0205835E:
pop {r4, pc}
@@ -38313,7 +38313,7 @@ _0205859A:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38337,7 +38337,7 @@ _020585C2:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38361,7 +38361,7 @@ _020585EA:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38385,7 +38385,7 @@ _02058612:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -40122,7 +40122,7 @@ FUN_02059064: ; 0x02059064
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40185,7 +40185,7 @@ FUN_020590F4: ; 0x020590F4
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40263,7 +40263,7 @@ FUN_020591A8: ; 0x020591A8
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40311,7 +40311,7 @@ FUN_02059214: ; 0x02059214
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40364,7 +40364,7 @@ FUN_0205928C: ; 0x0205928C
lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40539,7 +40539,7 @@ FUN_0205941C: ; 0x0205941C
bne _02059432
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_0224B568
+ bl MOD06_0224B568
_02059432:
pop {r4, pc}
@@ -40553,7 +40553,7 @@ FUN_02059434: ; 0x02059434
bne _0205944A
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_0224B568
+ bl MOD06_0224B568
_0205944A:
pop {r4, pc}
@@ -40577,13 +40577,13 @@ FUN_0205944C: ; 0x0205944C
cmp r0, #0x1
bne _02059478
add r0, r5, #0x0
- bl FUN_02249E6C
+ bl MOD06_02249E6C
pop {r4-r6, pc}
_02059478:
cmp r0, #0x2
bne _020594BC
add r0, r5, #0x0
- bl FUN_02249E78
+ bl MOD06_02249E78
pop {r4-r6, pc}
_02059484:
add r0, r4, #0x0
@@ -40600,7 +40600,7 @@ _02059484:
beq _020594AA
_020594A2:
add r0, r5, #0x0
- bl FUN_02249E90
+ bl MOD06_02249E90
pop {r4-r6, pc}
_020594AA:
add r0, r5, #0x0
@@ -40609,7 +40609,7 @@ _020594AA:
cmp r0, #0x1
bne _020594BC
add r0, r5, #0x0
- bl FUN_02249E84
+ bl MOD06_02249E84
_020594BC:
pop {r4-r6, pc}
.balign 4
@@ -40628,7 +40628,7 @@ FUN_020594C0: ; 0x020594C0
bne _020594F2
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_0224B9E0
+ bl MOD06_0224B9E0
add r0, r4, #0x0
mov r1, #0x1
bl FUN_020589E4
@@ -40716,7 +40716,7 @@ _02059584:
cmp r0, #0x0
bne _020595A2
add r0, r5, #0x0
- bl FUN_02249508
+ bl MOD06_02249508
mov r1, #0x2
add r0, r5, #0x0
lsl r1, r1, #0xe
@@ -40816,7 +40816,7 @@ FUN_0205962C: ; 0x0205962C
cmp r0, #0x1
beq _02059674
add r0, r5, #0x0
- bl FUN_0224BBEC
+ bl MOD06_0224BBEC
_02059674:
pop {r3-r5, pc}
.balign 4
@@ -40831,7 +40831,7 @@ FUN_02059678: ; 0x02059678
bne _0205968E
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_0224BD90
+ bl MOD06_0224BD90
_0205968E:
pop {r4, pc}
@@ -40845,7 +40845,7 @@ FUN_02059690: ; 0x02059690
bne _020596A6
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_0224BD90
+ bl MOD06_0224BD90
_020596A6:
pop {r4, pc}
@@ -40859,7 +40859,7 @@ FUN_020596A8: ; 0x020596A8
bne _020596BE
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_0224C038
+ bl MOD06_0224C038
_020596BE:
pop {r4, pc}
@@ -40873,7 +40873,7 @@ FUN_020596C0: ; 0x020596C0
bne _020596D6
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_0224C038
+ bl MOD06_0224C038
_020596D6:
pop {r4, pc}
@@ -40897,7 +40897,7 @@ FUN_020596D8: ; 0x020596D8
add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_0224B124
+ bl MOD06_0224B124
_02059708:
pop {r4-r6, pc}
.balign 4
@@ -40922,7 +40922,7 @@ FUN_0205970C: ; 0x0205970C
add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_0224B124
+ bl MOD06_0224B124
_0205973C:
pop {r4-r6, pc}
.balign 4
@@ -40947,7 +40947,7 @@ FUN_02059740: ; 0x02059740
add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_0224B2C4
+ bl MOD06_0224B2C4
_02059770:
pop {r4-r6, pc}
.balign 4
@@ -40972,7 +40972,7 @@ FUN_02059774: ; 0x02059774
add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_0224B2C4
+ bl MOD06_0224B2C4
_020597A4:
pop {r4-r6, pc}
.balign 4
@@ -41012,12 +41012,12 @@ _020597DE:
bne _020597FA
add r0, r5, #0x0
mov r1, #0x0
- bl FUN_022497E8
+ bl MOD06_022497E8
pop {r4-r6, pc}
_020597FA:
add r0, r5, #0x0
mov r1, #0x1
- bl FUN_022497E8
+ bl MOD06_022497E8
_02059802:
pop {r4-r6, pc}
@@ -43565,7 +43565,7 @@ FUN_0205AAB0: ; 0x0205AAB0
bl FUN_0205AA90
add r1, r0, #0x0
add r0, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x2
ldr r0, [r5, r0]
pop {r4-r6, pc}
@@ -43584,7 +43584,7 @@ FUN_0205AAD4: ; 0x0205AAD4
bl FUN_0205AA90
add r1, r0, #0x0
add r0, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x2
ldr r0, [r4, r0]
pop {r4-r6, pc}
@@ -45936,7 +45936,7 @@ FUN_0205BB90: ; 0x0205BB90
add r0, r5, #0x0
add r1, r6, #0x0
mov r2, #0x1
- bl FUN_021E7AC0
+ bl MOD05_021E7AC0
str r0, [r4, #0x4]
add r0, r5, #0x0
bl FUN_02058700
@@ -45949,7 +45949,7 @@ FUN_0205BBB4: ; 0x0205BBB4
bl FUN_02058600
add r4, r0, #0x0
ldr r0, [r4, #0x4]
- bl FUN_021E799C
+ bl MOD05_021E799C
cmp r0, #0x1
bne _0205BBD8
ldr r0, [r4, #0x4]
@@ -46273,7 +46273,7 @@ _0205BDFE:
add r0, r4, #0x0
bl FUN_02058B94
add r0, r4, #0x0
- bl FUN_0224D2E0
+ bl MOD06_0224D2E0
ldr r1, _0205BE34 ; =0x00010004
add r0, r4, #0x0
bl FUN_02058410
@@ -47060,7 +47060,7 @@ FUN_0205C3B0: ; 0x0205C3B0
mov r1, #0x0
str r1, [r0, #0x4]
add r0, r4, #0x0
- bl FUN_0224A310
+ bl MOD06_0224A310
pop {r4, pc}
nop
_0205C3CC: .word 0x0000FFFF
@@ -47080,7 +47080,7 @@ FUN_0205C3D0: ; 0x0205C3D0
bl FUN_0204B5FC
add r6, r0, #0x0
add r0, r5, #0x0
- bl FUN_021F2E28
+ bl MOD05_021F2E28
cmp r0, #0x1
beq _0205C488
ldr r0, [r4, #0x4]
@@ -47090,7 +47090,7 @@ FUN_0205C3D0: ; 0x0205C3D0
ldr r2, [r4, #0x0]
add r0, r5, #0x0
add r1, #0x8
- bl FUN_021F2094
+ bl MOD05_021F2094
add r0, r5, #0x0
bl FUN_02058738
add r1, r5, #0x0
@@ -47105,13 +47105,13 @@ FUN_0205C3D0: ; 0x0205C3D0
cmp r0, #0x0
beq _0205C432
add r0, r5, #0x0
- bl FUN_0224A528
+ bl MOD06_0224A528
_0205C432:
add r1, r4, #0x0
ldr r2, [r4, #0x0]
add r0, r5, #0x0
add r1, #0x8
- bl FUN_021F1F78
+ bl MOD05_021F1F78
b _0205C450
_0205C440:
cmp r0, #0x0
@@ -47120,23 +47120,23 @@ _0205C440:
cmp r0, #0x0
bne _0205C450
add r0, r5, #0x0
- bl FUN_0224A528
+ bl MOD06_0224A528
_0205C450:
mov r0, #0x0
strh r0, [r7, #0x2]
_0205C454:
add r0, r5, #0x0
str r6, [r4, #0x4]
- bl FUN_021F2E28
+ bl MOD05_021F2E28
cmp r0, #0x1
beq _0205C488
ldr r1, [r4, #0x8]
cmp r1, #0x0
beq _0205C488
add r0, r5, #0x0
- bl FUN_021F2F48
+ bl MOD05_021F2F48
add r0, r5, #0x0
- bl FUN_021F1DFC
+ bl MOD05_021F1DFC
cmp r0, #0x0
bne _0205C480
mov r1, #0x1
@@ -47146,7 +47146,7 @@ _0205C454:
_0205C480:
ldr r1, [r4, #0x8]
add r0, r5, #0x0
- bl FUN_021F2F6C
+ bl MOD05_021F2F6C
_0205C488:
pop {r3-r7, pc}
nop
@@ -47162,7 +47162,7 @@ FUN_0205C490: ; 0x0205C490
ldr r2, [r2, #0x0]
add r0, r4, #0x0
add r1, #0x8
- bl FUN_021F2094
+ bl MOD05_021F2094
pop {r4, pc}
thumb_func_start FUN_0205C4A8
@@ -47176,13 +47176,13 @@ FUN_0205C4A8: ; 0x0205C4A8
beq _0205C4C0
add r1, r4, #0x0
add r1, #0xc
- bl FUN_021F20D8
+ bl MOD05_021F20D8
_0205C4C0:
add r1, r4, #0x0
ldr r2, [r4, #0x0]
add r0, r5, #0x0
add r1, #0x8
- bl FUN_021F2094
+ bl MOD05_021F2094
mov r1, #0x2
add r0, r5, #0x0
lsl r1, r1, #0x14
@@ -47196,7 +47196,7 @@ FUN_0205C4D8: ; 0x0205C4D8
bl FUN_02058628
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_021F2E28
+ bl MOD05_021F2E28
cmp r0, #0x1
beq _0205C536
ldr r0, [r4, #0x8]
@@ -47209,7 +47209,7 @@ FUN_0205C4D8: ; 0x0205C4D8
add r1, r4, #0x0
add r0, r5, #0x0
add r1, #0x8
- bl FUN_021F1F78
+ bl MOD05_021F1F78
b _0205C510
_0205C506:
mov r1, #0x2
@@ -47218,17 +47218,17 @@ _0205C506:
bl FUN_02058418
_0205C510:
add r0, r5, #0x0
- bl FUN_0224A310
+ bl MOD06_0224A310
_0205C516:
ldr r0, [r4, #0x8]
cmp r0, #0x0
beq _0205C536
add r1, r4, #0x0
add r1, #0xc
- bl FUN_021F20F8
+ bl MOD05_021F20F8
ldr r1, [r4, #0x8]
add r0, r5, #0x0
- bl FUN_021F2F48
+ bl MOD05_021F2F48
mov r1, #0x2
add r0, r5, #0x0
lsl r1, r1, #0x14
@@ -47960,7 +47960,7 @@ _0205CA9A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x2c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [sp, #0x0]
str r7, [r4, #0x8]
str r0, [r4, #0xc]
@@ -48052,7 +48052,7 @@ FUN_0205CB30: ; 0x0205CB30
_0205CB44:
ldr r0, [r4, #0x24]
ldr r1, [r4, #0x8]
- bl FUN_021F1EC0
+ bl MOD05_021F1EC0
add r0, r5, #0x0
mov r1, #0x40
bl FUN_02058410
@@ -48154,7 +48154,7 @@ FUN_0205CBF8: ; 0x0205CBF8
mov r1, #0x0
ldr r0, [r4, #0x24]
add r2, r1, #0x0
- bl FUN_021E7AC0
+ bl MOD05_021E7AC0
str r0, [r4, #0x20]
mov r0, #0x6
str r0, [r4, #0x0]
@@ -48166,7 +48166,7 @@ FUN_0205CC10: ; 0x0205CC10
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x20]
- bl FUN_021E799C
+ bl MOD05_021E799C
cmp r0, #0x1
bne _0205CC28
ldr r0, [r4, #0x20]
@@ -48724,7 +48724,7 @@ FUN_0205D024: ; 0x0205D024
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49024,9 +49024,9 @@ _0205D296:
bl FUN_02058914
ldr r0, [r4, #0x38]
mov r1, #0x1
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
ldr r0, [r4, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0204AB20
@@ -49054,9 +49054,9 @@ _0205D2D6:
bl FUN_02058914
ldr r0, [r4, #0x38]
mov r1, #0x2
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
ldr r0, [r4, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
add r4, #0x90
ldr r0, [r4, #0x0]
bl FUN_0205DD40
@@ -49207,7 +49207,7 @@ FUN_0205D400: ; 0x0205D400
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49566,7 +49566,7 @@ FUN_0205D6BC: ; 0x0205D6BC
add r4, r0, #0x0
add r0, r6, #0x0
bl FUN_0204649C
- bl FUN_021F57EC
+ bl MOD05_021F57EC
str r0, [sp, #0x0]
ldr r1, [sp, #0x0]
mov r0, #0xb
@@ -49574,7 +49574,7 @@ FUN_0205D6BC: ; 0x0205D6BC
ldr r2, [sp, #0x0]
mov r1, #0x0
add r7, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x72
ldr r1, _0205D710 ; =0x021F57F1
lsl r0, r0, #0x2
@@ -49646,7 +49646,7 @@ FUN_0205D74C: ; 0x0205D74C
add r0, r5, #0x0
mov r1, #0xb
mov r2, #0x0
- bl FUN_021F5C44
+ bl MOD05_021F5C44
mov r1, #0x7e
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -49663,7 +49663,7 @@ FUN_0205D788: ; 0x0205D788
ldr r0, [r4, #0x0]
mov r1, #0x4
mov r2, #0x0
- bl FUN_021F5C44
+ bl MOD05_021F5C44
add r2, r0, #0x0
ldr r0, [r4, #0x0]
ldr r1, _0205D7A4 ; =0x021F5C71
@@ -49692,7 +49692,7 @@ FUN_0205D7A8: ; 0x0205D7A8
add r0, r5, #0x0
mov r1, #0xb
mov r2, #0x1
- bl FUN_021F5C44
+ bl MOD05_021F5C44
mov r1, #0x7e
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -49709,7 +49709,7 @@ FUN_0205D7E4: ; 0x0205D7E4
ldr r0, [r4, #0x0]
mov r1, #0x4
mov r2, #0x1
- bl FUN_021F5C44
+ bl MOD05_021F5C44
add r2, r0, #0x0
ldr r0, [r4, #0x0]
ldr r1, _0205D800 ; =0x021F5C71
@@ -49738,7 +49738,7 @@ FUN_0205D804: ; 0x0205D804
add r0, r5, #0x0
mov r1, #0xb
mov r2, #0x2
- bl FUN_021F5C44
+ bl MOD05_021F5C44
mov r1, #0x7e
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -49755,7 +49755,7 @@ FUN_0205D840: ; 0x0205D840
ldr r0, [r4, #0x0]
mov r1, #0x4
mov r2, #0x2
- bl FUN_021F5C44
+ bl MOD05_021F5C44
add r2, r0, #0x0
ldr r0, [r4, #0x0]
ldr r1, _0205D85C ; =0x021F5C71
@@ -49938,7 +49938,7 @@ FUN_0205D9A8: ; 0x0205D9A8
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -50049,7 +50049,7 @@ FUN_0205DAAC: ; 0x0205DAAC
add r4, r0, #0x0
bl FUN_02046528
mov r1, #0xb
- bl FUN_0224C700
+ bl MOD06_0224C700
add r2, r0, #0x0
ldr r1, _0205DAC8 ; =0x0224C721
add r0, r4, #0x0
@@ -50170,7 +50170,7 @@ _0205DB9C:
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x2c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
str r5, [r4, #0x0]
ldr r0, [sp, #0x0]
add r1, r4, #0x4
@@ -50269,7 +50269,7 @@ _0205DC68:
ldr r0, [r5, #0x34]
bl FUN_02058780
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x1
add r4, #0x2a
strb r0, [r4, #0x0]
@@ -50317,7 +50317,7 @@ _0205DCC4:
ldr r0, [r5, #0x34]
bl FUN_02058780
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x4
add r4, #0x2a
strb r0, [r4, #0x0]
@@ -50392,7 +50392,7 @@ FUN_0205DD40: ; 0x0205DD40
add r0, #0x1c
mov r2, #0xa0
str r1, [r4, #0x18]
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r3, #0x0
add r2, r3, #0x0
mov r0, #0x28
@@ -50453,13 +50453,13 @@ _0205DDCA:
add r6, r0, #0x0
ldr r0, _0205DED0 ; =0x0000FFFF
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r6, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, r4
@@ -50475,13 +50475,13 @@ _0205DDF2:
lsr r6, r0, #0x18
add r0, r6, #0x0
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bne _0205DE1C
add r0, r6, #0x0
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r5, r1
add r0, r5, #0x0
b _0205DE5C
@@ -50490,7 +50490,7 @@ _0205DE1C:
bne _0205DE30
add r0, r6, #0x0
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r0, r5, r4
add r1, r5, r1
sub r0, r0, #0x1
@@ -50603,7 +50603,7 @@ _0205DEE0:
bl FUN_0201B9EC
mov r1, #0x29
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r7, r0, #0x10
cmp r7, #0x64
@@ -50659,7 +50659,7 @@ _0205DF4C:
beq _0205DF6E
add r0, r5, #0x0
mov r3, #0x2
- bl FUN_0224B818
+ bl MOD06_0224B818
str r0, [r4, #0x34]
b _0205DF90
_0205DF6E:
@@ -50668,13 +50668,13 @@ _0205DF6E:
bne _0205DF80
add r0, r5, #0x0
mov r3, #0x0
- bl FUN_0224B818
+ bl MOD06_0224B818
str r0, [r4, #0x34]
b _0205DF90
_0205DF80:
add r0, r5, #0x0
mov r3, #0x1
- bl FUN_0224B818
+ bl MOD06_0224B818
str r0, [r4, #0x34]
b _0205DF90
_0205DF8C:
@@ -50701,7 +50701,7 @@ _0205DFA4:
ldr r0, [r5, #0x34]
cmp r0, #0x0
beq _0205DFCA
- bl FUN_0224B86C
+ bl MOD06_0224B86C
cmp r0, #0x0
beq _0205DFD0
ldr r0, [r5, #0x34]
@@ -51041,7 +51041,7 @@ FUN_0205E1F0: ; 0x0205E1F0
ldr r2, [r5, #0x8]
lsl r1, r1, #0x2
strh r2, [r4, r1]
- bl FUN_02245844
+ bl MOD06_02245844
add r0, r5, #0x0
add r0, #0xd0
ldrb r0, [r0, #0x0]
@@ -51150,7 +51150,7 @@ _0205E2DC:
bl FUN_0201B9EC
mov r1, #0x29
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x64
@@ -51325,13 +51325,13 @@ _0205E43C:
lsl r1, r5, #0x10
ldr r0, _0205E47C ; =0x0000FFFF
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r4, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
lsl r0, r5, #0x10
@@ -52131,7 +52131,7 @@ FUN_0205EA64: ; 0x0205EA64
bl FUN_0205EB20
cmp r0, #0x0
beq _0205EA72
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
_0205EA72:
pop {r3, pc}
@@ -52174,7 +52174,7 @@ FUN_0205EAB0: ; 0x0205EAB0
cmp r1, #0x0
bne _0205EACA
ldrb r1, [r4, #0x1]
- bl FUN_0224CECC
+ bl MOD06_0224CECC
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_0205EB14
@@ -52206,7 +52206,7 @@ FUN_0205EAE0: ; 0x0205EAE0
bne _0205EB0E
ldrb r1, [r4, #0x1]
add r0, r5, #0x0
- bl FUN_0224CECC
+ bl MOD06_0224CECC
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_0205EB14
@@ -52260,12 +52260,12 @@ FUN_0205EB38: ; 0x0205EB38
add r7, r0, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r7, #0x0
add r1, sp, #0xc
mov r2, #0x2
mov r3, #0xb
- bl FUN_021D959C
+ bl MOD05_021D959C
mov r0, #0x2
str r0, [sp, #0x0]
mov r0, #0x1
@@ -52276,21 +52276,21 @@ FUN_0205EB38: ; 0x0205EB38
add r0, r7, #0x0
mov r1, #0x55
add r3, r2, #0x0
- bl FUN_021D967C
+ bl MOD05_021D967C
ldr r0, _0205EBE4 ; =0x000034D8
mov r1, #0x55
str r0, [sp, #0x0]
add r0, r7, #0x0
mov r2, #0x2
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _0205EBE4 ; =0x000034D8
mov r1, #0x55
str r0, [sp, #0x0]
add r0, r7, #0x0
mov r2, #0x3
mov r3, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r2, #0x1
ldr r0, _0205EBE4 ; =0x000034D8
str r2, [sp, #0x0]
@@ -52298,14 +52298,14 @@ FUN_0205EB38: ; 0x0205EB38
add r0, r7, #0x0
mov r1, #0x55
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r4, _0205EBE8 ; =0x020F73C8
mov r6, #0x0
add r5, r7, #0x0
_0205EBC0:
add r0, r7, #0x0
add r1, r4, #0x0
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r1, #0x59
lsl r1, r1, #0x2
str r0, [r5, r1]
@@ -52341,7 +52341,7 @@ _0205EC02:
cmp r4, #0x2
blt _0205EBF8
add r0, r7, #0x0
- bl FUN_021D99F8
+ bl MOD05_021D99F8
add r0, r7, #0x0
bl FUN_02016A18
pop {r3-r7, pc}
@@ -53787,7 +53787,7 @@ FUN_0205F668: ; 0x0205F668
add r4, r0, #0x0
bl FUN_0201B9EC
mov r1, #0x62
- blx _s32_div_f
+ bl _s32_div_f
add r1, r1, #0x2
lsl r1, r1, #0x10
add r0, r4, #0x0
@@ -53977,7 +53977,7 @@ FUN_0205F7A0: ; 0x0205F7A0
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x6
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38]
bl FUN_02055320
@@ -54024,7 +54024,7 @@ _0205F812:
ldr r0, [r0, #0x0]
mov r1, #0x6
add r0, r0, #0x4
- blx _s32_div_f
+ bl _s32_div_f
mov r6, #0x0
add r4, r5, #0x0
_0205F83E:
@@ -54046,7 +54046,7 @@ _0205F85A:
strh r0, [r4, #0x28]
add r0, r1, #0x5
mov r1, #0x6
- blx _s32_div_f
+ bl _s32_div_f
add r6, r6, #0x1
add r4, #0xc
cmp r6, #0x5
@@ -54109,10 +54109,10 @@ FUN_0205F8CC: ; 0x0205F8CC
bl FUN_020462AC
str r0, [sp, #0x0]
add r0, sp, #0x28
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x28
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
cmp r0, #0x0
bne _0205F8F8
bl ErrorHandling
@@ -54122,7 +54122,7 @@ _0205F8F8:
add r0, sp, #0x28
add r1, sp, #0x24
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
cmp r0, #0x0
bge _0205F90A
bl ErrorHandling
@@ -54133,7 +54133,7 @@ _0205F90A:
mov r1, #0x0
mov r2, #0x4
add r6, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [sp, #0x24]
ldr r0, _0205FA28 ; =0x0000013A
mov r4, #0x0
@@ -54162,7 +54162,7 @@ _0205F94C:
add r0, sp, #0x28
add r1, r6, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldrb r0, [r6, #0x0]
cmp r0, #0x1
beq _0205F962
@@ -54263,7 +54263,7 @@ _0205FA0E:
blt _0205F94C
_0205FA16:
add r0, sp, #0x28
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, r6, #0x0
bl FUN_02016A18
add sp, #0x70
@@ -54283,7 +54283,7 @@ FUN_0205FA2C: ; 0x0205FA2C
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r6, #0x0
bl LoadPlayerDataAddress
str r0, [r4, #0xc]
@@ -54390,7 +54390,7 @@ _0205FB0C:
add r0, #0x2c
add r1, #0xe
mov r2, #0x6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
add r0, #0x22
ldrb r0, [r0, #0x0]
@@ -54416,7 +54416,7 @@ FUN_0205FB34: ; 0x0205FB34
mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl LoadPlayerDataAddress
str r0, [r4, #0x4]
@@ -54554,7 +54554,7 @@ FUN_0205FC50: ; 0x0205FC50
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x18
- blx MI_CpuFill8
+ bl MI_CpuFill8
strb r6, [r4, #0x8]
strb r7, [r4, #0x9]
add r0, sp, #0x8
@@ -54673,7 +54673,7 @@ FUN_0205FD38: ; 0x0205FD38
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x18
- blx MI_CpuFill8
+ bl MI_CpuFill8
strh r5, [r4, #0x12]
strh r7, [r4, #0x14]
ldr r0, [sp, #0x0]
@@ -54719,19 +54719,19 @@ _0205FD96:
_0205FDB0:
add r0, r6, #0x0
add r1, r7, #0x0
- bl FUN_02244660
+ bl MOD06_02244660
strh r0, [r4, #0x0]
b _0205FDD2
_0205FDBC:
add r0, r6, #0x0
add r1, r7, #0x0
- bl FUN_022446BC
+ bl MOD06_022446BC
strh r0, [r4, #0x0]
b _0205FDD2
_0205FDC8:
add r0, r6, #0x0
add r1, r7, #0x0
- bl FUN_022446E0
+ bl MOD06_022446E0
strh r0, [r4, #0x0]
_0205FDD2:
add r0, r5, #0x0
@@ -54752,7 +54752,7 @@ FUN_0205FDDC: ; 0x0205FDDC
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
strh r5, [r4, #0x0]
strh r6, [r4, #0x2]
ldr r0, [r7, #0x10]
@@ -55197,11 +55197,11 @@ FUN_0206015C: ; 0x0206015C
bl FUN_020169D8
add r4, r0, #0x0
mov r0, #0xb
- bl FUN_02244DB0
+ bl MOD06_02244DB0
str r0, [r4, #0x0]
mov r0, #0xb
add r1, r5, #0x0
- bl FUN_02245114
+ bl MOD06_02245114
str r0, [r4, #0x4]
mov r0, #0x0
strb r0, [r4, #0xc]
@@ -55251,9 +55251,9 @@ _020601CE:
bl FUN_0206367C
ldrb r0, [r4, #0xd]
ldr r1, [r4, #0x4]
- bl FUN_02245198
+ bl MOD06_02245198
ldr r0, [r4, #0x4]
- bl FUN_022451F0
+ bl MOD06_022451F0
str r0, [r4, #0x8]
add r0, r5, #0x0
bl FUN_0204AFC8
@@ -55302,16 +55302,16 @@ _02060232:
cmp r1, #0x5
bhi _02060290
add r0, r6, #0x0
- bl FUN_02245088
+ bl MOD06_02245088
add r6, r0, #0x0
add r0, r7, #0x0
mov r1, #0x1
bl FUN_0205889C
ldr r0, [r4, #0x0]
add r1, r6, #0x0
- bl FUN_02244DC4
+ bl MOD06_02244DC4
ldr r0, [r4, #0x0]
- bl FUN_02244EF8
+ bl MOD06_02244EF8
mov r0, #0x0
strb r0, [r4, #0xe]
ldr r0, _02060338 ; =0x00000679
@@ -55355,9 +55355,9 @@ _020602A2:
_020602B8:
ldrb r0, [r4, #0xd]
ldr r1, [r4, #0x4]
- bl FUN_02245198
+ bl MOD06_02245198
ldr r0, [r4, #0x4]
- bl FUN_022451F0
+ bl MOD06_022451F0
str r0, [r4, #0x8]
ldr r0, _02060338 ; =0x00000679
bl FUN_020054C8
@@ -55379,17 +55379,17 @@ _020602B8:
b _02060332
_020602F0:
ldr r0, [r4, #0x0]
- bl FUN_02244F18
+ bl MOD06_02244F18
mov r0, #0x7
strb r0, [r4, #0xc]
b _02060332
_020602FC:
ldr r0, [r4, #0x0]
- bl FUN_02244F24
+ bl MOD06_02244F24
cmp r0, #0x0
beq _02060332
ldr r0, [r4, #0x0]
- bl FUN_02244F2C
+ bl MOD06_02244F2C
mov r0, #0x1
strb r0, [r4, #0xc]
b _02060332
@@ -55398,9 +55398,9 @@ _02060312:
mov r1, #0x0
bl FUN_0206367C
ldr r0, [r4, #0x4]
- bl FUN_02245190
+ bl MOD06_02245190
ldr r0, [r4, #0x0]
- bl FUN_02244DBC
+ bl MOD06_02244DBC
add r0, r4, #0x0
bl FUN_02016A18
add sp, #0x10
@@ -55722,7 +55722,7 @@ FUN_02060588: ; 0x02060588
_0206059C:
bl FUN_0201B9EC
ldr r1, _020605D4 ; =0x000008D4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x1d
@@ -55796,13 +55796,13 @@ _02060630:
add r6, r0, #0x0
ldr r0, _02060684 ; =0x0000FFFF
add r1, r5, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r6, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, r5
@@ -55903,11 +55903,11 @@ _02060704:
ldr r1, [r4, #0x0]
ldr r2, [r4, #0x8]
add r0, r6, #0x0
- bl FUN_0224891C
+ bl MOD06_0224891C
ldr r1, [r4, #0x0]
ldr r2, [r4, #0x8]
add r0, r6, #0x0
- bl FUN_022488FC
+ bl MOD06_022488FC
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -55975,7 +55975,7 @@ FUN_02060790: ; 0x02060790
mov r1, #0x0
mov r2, #0x2c
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x0
str r0, [r4, #0x4]
str r5, [r4, #0x0]
@@ -56277,23 +56277,23 @@ _020609EC:
ldr r0, [r5, #0x50]
mov r1, #0x1
mov r2, #0x0
- bl FUN_021DA4EC
+ bl MOD05_021DA4EC
ldr r0, [r5, #0x50]
mov r1, #0x2
mov r2, #0x0
- bl FUN_021DA4EC
+ bl MOD05_021DA4EC
ldr r0, _02060B08 ; =0x000006DE
bl FUN_020054C8
b _02060B00
_02060A2C:
ldr r0, [r5, #0x50]
mov r1, #0x1
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0x0
beq _02060B00
ldr r0, [r5, #0x50]
mov r1, #0x2
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0x0
beq _02060B00
cmp r6, #0x0
@@ -56339,11 +56339,11 @@ _02060A8A:
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #0x1
- bl FUN_021DA54C
+ bl MOD05_021DA54C
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #0x2
- bl FUN_021DA54C
+ bl MOD05_021DA54C
_02060AA8:
add r0, r6, #0x0
bl FUN_0204AF3C
@@ -56401,7 +56401,7 @@ FUN_02060B0C: ; 0x02060B0C
add r4, r0, #0x0
ldr r1, [r4, #0x30]
add r0, sp, #0x0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldrb r0, [r4, #0x1]
cmp r0, #0x3
bhi _02060B7C
@@ -56481,7 +56481,7 @@ _02060B86:
_02060BA6:
ldr r0, [r4, #0x30]
add r1, sp, #0x0
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
ldr r1, [r4, #0x14]
ldr r0, [r4, #0x7c]
add r1, r1, r0
@@ -56539,9 +56539,9 @@ _02060BF6:
beq _02060C6A
ldr r1, [r5, #0x2c]
add r0, r4, #0x0
- bl FUN_021F4BD0
+ bl MOD05_021F4BD0
ldr r0, [r0, #0x0]
- blx FUN_020BC13C
+ bl FUN_020BC13C
ldrh r1, [r0, #0xe]
add r2, sp, #0x20
mov r3, #0x0
@@ -56557,10 +56557,10 @@ _02060BF6:
bl ErrorHandling
_02060C38:
ldr r0, [sp, #0x20]
- bl FUN_021E7EC8
+ bl MOD05_021E7EC8
str r0, [sp, #0x1c]
ldr r0, [r5, #0x2c]
- bl FUN_021F4C88
+ bl MOD05_021F4C88
ldr r1, [sp, #0x1c]
add r2, sp, #0x24
str r1, [sp, #0x0]
@@ -56576,7 +56576,7 @@ _02060C38:
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
add r3, r4, #0x0
- bl FUN_021DA464
+ bl MOD05_021DA464
b _02060C6E
_02060C6A:
bl ErrorHandling
@@ -56665,7 +56665,7 @@ FUN_02060CF8: ; 0x02060CF8
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B6C
+ bl MOD06_02248B6C
add r4, r0, #0x0
cmp r4, #0x0
ble _02060D0E
@@ -56781,13 +56781,13 @@ FUN_02060DCC: ; 0x02060DCC
add r5, r0, #0x0
add r0, r6, #0x0
add r4, r1, #0x0
- bl FUN_02248B5C
+ bl MOD06_02248B5C
add r7, r0, #0x0
add r0, r6, #0x0
- bl FUN_02248B54
+ bl MOD06_02248B54
str r0, [sp, #0x8]
add r0, r6, #0x0
- bl FUN_02248B58
+ bl MOD06_02248B58
str r0, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
@@ -57077,7 +57077,7 @@ FUN_02061008: ; 0x02061008
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x24
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
pop {r4, pc}
@@ -57098,7 +57098,7 @@ FUN_02061028: ; 0x02061028
add r1, r5, #0x0
mov r2, #0x24
add r7, r3, #0x0
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
str r6, [r5, #0x0]
add r0, r5, #0x0
add r2, r5, #0x0
@@ -57205,7 +57205,7 @@ FUN_020610F8: ; 0x020610F8
add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrb r0, [r4, #0xb]
cmp r0, #0x0
@@ -57287,7 +57287,7 @@ FUN_020611A8: ; 0x020611A8
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57321,7 +57321,7 @@ FUN_020611E8: ; 0x020611E8
bl FUN_02024DA0
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r1, r0, #0x0
ldrh r1, [r1, #0x6]
add r0, r4, #0x0
@@ -57364,7 +57364,7 @@ FUN_0206123C: ; 0x0206123C
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57400,7 +57400,7 @@ FUN_02061288: ; 0x02061288
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r4, #0x8]
cmp r0, #0x0
@@ -57426,7 +57426,7 @@ FUN_020612AC: ; 0x020612AC
mov r0, #0x0
add r1, sp, #0x0
mov r2, #0x28
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r6, #0x0
mov r1, #0x1
mov r2, #0x0
@@ -57467,10 +57467,10 @@ FUN_02061304: ; 0x02061304
add r4, r2, #0x0
add r0, r4, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r6, r0, #0x0
add r0, r4, #0x0
- bl FUN_02248B58
+ bl MOD06_02248B58
str r0, [sp, #0x0]
mov r1, #0x1
add r0, r5, #0x0
@@ -57494,10 +57494,10 @@ FUN_0206133C: ; 0x0206133C
add r4, r2, #0x0
add r0, r4, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r6, r0, #0x0
add r0, r4, #0x0
- bl FUN_02248B58
+ bl MOD06_02248B58
str r0, [sp, #0x0]
mov r1, #0x1
add r0, r5, #0x0
@@ -57541,7 +57541,7 @@ FUN_0206139C: ; 0x0206139C
add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrh r2, [r4, #0x2]
add r0, r5, #0x0
@@ -57593,7 +57593,7 @@ FUN_02061404: ; 0x02061404
add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrh r2, [r4, #0x6]
add r0, r5, #0x0
@@ -57622,7 +57622,7 @@ FUN_02061444: ; 0x02061444
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -57666,7 +57666,7 @@ FUN_02061498: ; 0x02061498
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57692,7 +57692,7 @@ FUN_02061498: ; 0x02061498
bl FUN_02060D90
bl FUN_0201B9EC
ldr r1, _020614F8 ; =0x00003334
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x5
@@ -57714,7 +57714,7 @@ FUN_020614FC: ; 0x020614FC
bl FUN_02024DA0
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r1, r0, #0x0
ldrh r1, [r1, #0x0]
add r0, r4, #0x0
@@ -57743,7 +57743,7 @@ FUN_02061534: ; 0x02061534
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57805,7 +57805,7 @@ FUN_020615B0: ; 0x020615B0
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57841,7 +57841,7 @@ FUN_020615F8: ; 0x020615F8
bl FUN_02024DA0
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r1, r0, #0x0
ldrh r1, [r1, #0x0]
add r0, r4, #0x0
@@ -57881,7 +57881,7 @@ FUN_02061648: ; 0x02061648
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57910,7 +57910,7 @@ FUN_02061688: ; 0x02061688
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -57963,7 +57963,7 @@ FUN_020616E8: ; 0x020616E8
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57993,7 +57993,7 @@ FUN_02061728: ; 0x02061728
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58014,7 +58014,7 @@ FUN_02061750: ; 0x02061750
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58051,7 +58051,7 @@ FUN_02061798: ; 0x02061798
strb r2, [r0, #0x6]
bl FUN_0201BA60
mov r1, #0x3
- blx _u32_div_f
+ bl _u32_div_f
add r0, sp, #0x4
strb r1, [r0, #0x5]
add r0, sp, #0x8
@@ -58079,7 +58079,7 @@ FUN_020617D8: ; 0x020617D8
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58100,7 +58100,7 @@ FUN_020617D8: ; 0x020617D8
bl FUN_02060E70
bl FUN_0201B9EC
ldr r1, _02061830 ; =0x00005556
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x3
@@ -58119,7 +58119,7 @@ FUN_02061834: ; 0x02061834
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58147,7 +58147,7 @@ FUN_02061868: ; 0x02061868
add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
bl FUN_02023924
ldr r1, [r4, #0x0]
@@ -58261,7 +58261,7 @@ FUN_0206193C: ; 0x0206193C
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58301,7 +58301,7 @@ FUN_02061990: ; 0x02061990
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58351,7 +58351,7 @@ FUN_020619F0: ; 0x020619F0
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58371,13 +58371,13 @@ FUN_020619F0: ; 0x020619F0
lsl r0, r0, #0x2
mul r0, r1
mov r1, #0xfe
- blx _u32_div_f
+ bl _u32_div_f
add r0, r0, #0x5
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
mov r1, #0xa
add r4, r0, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -58389,7 +58389,7 @@ FUN_020619F0: ; 0x020619F0
bl FUN_0200AD38
add r0, r4, #0x0
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
mov r0, #0x0
add r2, r1, #0x0
str r0, [sp, #0x0]
@@ -58407,7 +58407,7 @@ FUN_02061A70: ; 0x02061A70
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58444,7 +58444,7 @@ FUN_02061AB0: ; 0x02061AB0
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58502,7 +58502,7 @@ FUN_02061B24: ; 0x02061B24
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58550,7 +58550,7 @@ FUN_02061B80: ; 0x02061B80
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58615,7 +58615,7 @@ FUN_02061C00: ; 0x02061C00
add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
mov r1, #0x0
add r4, r0, #0x0
str r1, [sp, #0x0]
@@ -58698,7 +58698,7 @@ FUN_02061CA8: ; 0x02061CA8
add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrb r0, [r4, #0x5]
cmp r0, #0x0
@@ -58760,7 +58760,7 @@ FUN_02061D30: ; 0x02061D30
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58777,7 +58777,7 @@ FUN_02061D4C: ; 0x02061D4C
ldr r0, [r5, #0x4]
add r4, r1, #0x0
ldr r0, [r0, #0x14]
- bl FUN_02252538
+ bl MOD20_02252538
str r0, [sp, #0x0]
add r0, sp, #0x0
strh r4, [r0, #0x4]
@@ -58796,7 +58796,7 @@ FUN_02061D74: ; 0x02061D74
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58852,7 +58852,7 @@ FUN_02061DE4: ; 0x02061DE4
add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrb r0, [r4, #0x5]
mov r1, #0x0
@@ -58907,7 +58907,7 @@ FUN_02061E60: ; 0x02061E60
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58945,7 +58945,7 @@ FUN_02061EAC: ; 0x02061EAC
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58967,7 +58967,7 @@ FUN_02061EDC: ; 0x02061EDC
push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58994,7 +58994,7 @@ FUN_02061F0C: ; 0x02061F0C
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -59037,7 +59037,7 @@ FUN_02061F60: ; 0x02061F60
add r7, r2, #0x0
add r0, r7, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r6, r0, #0x0
ldrb r4, [r6, #0x1]
add r0, r5, #0x0
@@ -59120,7 +59120,7 @@ FUN_02061FF8: ; 0x02061FF8
add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -59220,7 +59220,7 @@ _020620BE:
ble _020620D0
bl FUN_0201BA60
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r5, r1, #0x0
b _020620D2
_020620D0:
@@ -59255,7 +59255,7 @@ _02062100:
bl FUN_0201B9EC
mov r1, #0xf1
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x11
@@ -59313,7 +59313,7 @@ FUN_02062170: ; 0x02062170
add r7, r1, #0x0
bl FUN_0201B9EC
ldr r1, _02062234 ; =0x00003334
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x5
@@ -59436,7 +59436,7 @@ FUN_02062240: ; 0x02062240
add r1, sp, #0x0
add r1, #0x2
add r2, sp, #0x0
- bl FUN_02245910
+ bl MOD06_02245910
add r0, sp, #0x0
ldrh r0, [r0, #0x2]
bl FUN_02034824
@@ -59499,7 +59499,7 @@ FUN_020622C4: ; 0x020622C4
bl FUN_0201B9EC
mov r1, #0xf1
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x11
@@ -59513,7 +59513,7 @@ _020622E6:
bl FUN_0201B9EC
mov r1, #0xf1
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x11
@@ -59625,13 +59625,13 @@ _020623B0:
lsl r1, r4, #0x10
ldr r0, _020623F0 ; =0x0000FFFF
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r5, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
lsl r0, r4, #0x10
@@ -59745,13 +59745,13 @@ _0206249E:
add r5, r0, #0x0
ldr r0, _02062504 ; =0x0000FFFF
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r5, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, r4
@@ -59827,7 +59827,7 @@ FUN_0206252C: ; 0x0206252C
ble _02062552
bl FUN_0201BA60
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r5, r1, #0x0
b _02062554
_02062552:
@@ -59925,16 +59925,16 @@ FUN_020625EC: ; 0x020625EC
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x50
str r0, [r4, #0x0]
ldr r0, [sp, #0x0]
mov r1, #0x3
- blx _s32_div_f
+ bl _s32_div_f
strb r1, [r4, #0x16]
ldr r0, [sp, #0x0]
mov r1, #0x3
- blx _s32_div_f
+ bl _s32_div_f
strb r0, [r4, #0x17]
ldrb r0, [r4, #0x16]
bl FUN_0202B870
@@ -60047,7 +60047,7 @@ _020626FE:
add r0, r4, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_020168D0
mov r0, #0xc
@@ -60511,7 +60511,7 @@ FUN_02062A70: ; 0x02062A70
mov r2, #0x3c
mov r1, #0x0
mul r2, r3
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldrb r1, [r4, #0x16]
ldr r2, [r4, #0x0]
add r0, r5, #0x0
@@ -61110,7 +61110,7 @@ FUN_02062F3C: ; 0x02062F3C
ldr r3, [r6, #0x0]
add r0, r6, r0
mov r2, #0x2
- bl FUN_021D959C
+ bl MOD05_021D959C
mov r0, #0x3
str r0, [sp, #0x0]
mov r0, #0x1
@@ -61123,7 +61123,7 @@ FUN_02062F3C: ; 0x02062F3C
add r0, r6, r0
mov r1, #0x82
add r3, r2, #0x0
- bl FUN_021D967C
+ bl MOD05_021D967C
ldr r0, _02062FF4 ; =0x000034D8
mov r1, #0x82
str r0, [sp, #0x0]
@@ -61132,7 +61132,7 @@ FUN_02062F3C: ; 0x02062F3C
add r0, r6, r0
mov r2, #0x2
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _02062FF4 ; =0x000034D8
mov r1, #0x82
str r0, [sp, #0x0]
@@ -61141,7 +61141,7 @@ FUN_02062F3C: ; 0x02062F3C
add r0, r6, r0
mov r2, #0x3
mov r3, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r2, #0x1
ldr r0, _02062FF4 ; =0x000034D8
str r2, [sp, #0x0]
@@ -61151,7 +61151,7 @@ FUN_02062F3C: ; 0x02062F3C
add r0, r6, r0
mov r1, #0x82
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r4, _02062FF8 ; =0x020F7C7C
mov r7, #0x0
add r5, r6, #0x0
@@ -61160,7 +61160,7 @@ _02062FC4:
lsl r0, r0, #0x2
add r0, r6, r0
add r1, r4, #0x0
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r1, #0xa6
lsl r1, r1, #0x2
str r0, [r5, r1]
@@ -61201,7 +61201,7 @@ _02063012:
mov r0, #0x4d
lsl r0, r0, #0x2
add r0, r7, r0
- bl FUN_021D99F8
+ bl MOD05_021D99F8
pop {r3-r7, pc}
.balign 4
@@ -61269,7 +61269,7 @@ _02063094:
ldr r0, _02063164 ; =0x020F7C2C
add r1, #0xa0
mov r2, #0x20
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r1, r5, #0x0
add r0, r5, #0x0
add r1, #0xd4
@@ -62277,7 +62277,7 @@ _020638DA:
ldr r0, [r4, #0x0]
ldr r2, [r4, #0x10]
mov r1, #0x1
- bl FUN_0224666C
+ bl MOD06_0224666C
str r0, [r4, #0x14]
ldr r0, [r4, #0x4]
add r0, r0, #0x1
@@ -62285,11 +62285,11 @@ _020638DA:
b _02063942
_020638F8:
ldr r0, [r4, #0x14]
- bl FUN_022466A0
+ bl MOD06_022466A0
cmp r0, #0x0
beq _02063942
ldr r0, [r4, #0x14]
- bl FUN_022466AC
+ bl MOD06_022466AC
mov r1, #0xa
mov r2, #0xc
ldrh r0, [r4, #0x8]
@@ -62405,7 +62405,7 @@ _020639B6:
ldr r0, [r5, #0x38]
add r1, r7, #0x0
add r2, r6, #0x0
- bl FUN_021E643C
+ bl MOD05_021E643C
cmp r0, #0x0
beq _020639FE
ldrh r1, [r4, #0xc]
@@ -62417,7 +62417,7 @@ _020639FE:
bl FUN_020552F8
add r1, r0, #0x0
add r0, r6, #0x0
- bl FUN_021E69BC
+ bl MOD05_021E69BC
cmp r0, #0x0
beq _02063A18
ldrh r1, [r4, #0xc]
@@ -63398,7 +63398,7 @@ FUN_02064174: ; 0x02064174
ldr r1, [r4, #0x0]
add r0, r6, #0x0
mov r2, #0x4
- bl FUN_0224CB30
+ bl MOD06_0224CB30
add r6, r0, #0x0
add r0, r4, #0x0
bl FUN_02016A18
@@ -63490,7 +63490,7 @@ FUN_02064230: ; 0x02064230
ldr r1, [r6, #0x0]
add r0, r4, #0x0
mov r2, #0xb
- bl FUN_0224CA88
+ bl MOD06_0224CA88
ldr r1, [r4, #0x1c]
add r7, r0, #0x0
ldr r1, [r1, #0x0]
@@ -63987,7 +63987,7 @@ _02064622:
add r0, r4, #0x0
mov r1, #0x0
add r2, r5, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
@@ -64007,7 +64007,7 @@ FUN_02064640: ; 0x02064640
mov r1, #0x0
mov r2, #0xc8
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r1, _02064680 ; =FUN_0206478C
add r0, r4, #0x0
bl FUN_020646B8
@@ -64166,7 +64166,7 @@ FUN_0206473C: ; 0x0206473C
bl FUN_02064738
mov r1, #0x0
add r2, r4, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
pop {r4, pc}
.balign 4
@@ -64297,12 +64297,12 @@ FUN_020647A4: ; 0x020647A4
ldr r0, [r0, #0x0]
ldr r1, [r4, #0x2c]
mov r3, r12
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
add r0, r4, #0x0
add r0, #0xa0
ldr r0, [r0, #0x0]
ldr r1, _02064864 ; =0x00000102
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
str r0, [sp, #0x14]
b _0206482C
_0206480A:
@@ -64324,11 +64324,11 @@ _0206480A:
_0206482C:
ldr r1, [sp, #0x14]
add r0, sp, #0x18
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r0, [sp, #0x14]
add r1, sp, #0x18
str r5, [sp, #0x1c]
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
mov r0, #0x2
str r0, [sp, #0x0]
str r5, [sp, #0x4]
@@ -64339,7 +64339,7 @@ _0206482C:
ldr r1, [r6, #0x8]
ldr r2, [r6, #0xc]
mov r0, #0x0
- bl FUN_021F44D8
+ bl MOD05_021F44D8
add sp, #0x30
pop {r3-r7, pc}
nop
@@ -64671,7 +64671,7 @@ _02064AB4:
add r0, #0xa0
ldr r0, [r0, #0x0]
ldr r1, _02064B64 ; =0x00000102
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
str r0, [sp, #0xc]
b _02064AEC
_02064ACA:
@@ -64693,7 +64693,7 @@ _02064ACA:
_02064AEC:
ldr r1, [sp, #0xc]
add r0, sp, #0x10
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r0, [r4, #0xc]
cmp r0, #0x0
bne _02064AFE
@@ -64721,7 +64721,7 @@ _02064B1C:
bl FUN_02055540
ldr r0, [sp, #0xc]
add r1, sp, #0x10
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02064B5C
_02064B2E:
add r2, r5, #0x0
@@ -64729,7 +64729,7 @@ _02064B2E:
ldr r1, [r4, #0x4]
ldr r2, [r2, #0x0]
mov r0, #0x0
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r0, [r5, #0x38]
mov r1, #0x1
bl FUN_0205557C
@@ -64795,7 +64795,7 @@ _02064BB4:
add r0, #0xa0
ldr r0, [r0, #0x0]
ldr r1, _02064C58 ; =0x00000102
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
str r0, [sp, #0xc]
b _02064BEC
_02064BCA:
@@ -64817,7 +64817,7 @@ _02064BCA:
_02064BEC:
ldr r1, [sp, #0xc]
add r0, sp, #0x10
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
mov r0, #0x1
ldr r1, [sp, #0x14]
lsl r0, r0, #0xc
@@ -64838,7 +64838,7 @@ _02064C12:
bl FUN_02055540
ldr r0, [sp, #0xc]
add r1, sp, #0x10
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02064C52
_02064C24:
add r2, r5, #0x0
@@ -64846,7 +64846,7 @@ _02064C24:
ldr r1, [r4, #0x4]
ldr r2, [r2, #0x0]
mov r0, #0x0
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r0, [r5, #0x38]
mov r1, #0x1
bl FUN_0205557C
@@ -65347,7 +65347,7 @@ FUN_02065054: ; 0x02065054
ldr r2, _0206506C ; =0x0000066C
mov r1, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
nop
@@ -65640,7 +65640,7 @@ _02065290:
ldr r0, [sp, #0x10]
add r1, r4, #0x0
lsl r2, r2, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3-r5, pc}
.balign 4
_020652A0: .word 0x000F423F
@@ -65828,7 +65828,7 @@ FUN_020653EC: ; 0x020653EC
mov r1, #0x0
lsl r2, r2, #0x2
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
str r6, [r4, #0x4]
bl FUN_020377AC
@@ -66796,7 +66796,7 @@ _02065B9E:
ldr r0, _02065CE4 ; =0x020F7E8C
add r1, r5, r1
mov r2, #0x20
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r1, #0x5d
lsl r1, r1, #0x2
add r0, r1, #0x0
@@ -67096,7 +67096,7 @@ _02065E14:
ldr r0, _02065ED0 ; =0x020F7E8C
add r1, r5, r1
mov r2, #0x20
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x5d
lsl r0, r0, #0x2
add r1, r0, #0x0
@@ -67807,7 +67807,7 @@ FUN_020663D4: ; 0x020663D4
add r0, r4, r0
mov r1, #0x0
mov r2, #0x10
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x17
mov r1, #0x0
lsl r0, r0, #0x4
@@ -68077,12 +68077,12 @@ _020665E6:
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x5a
- bl FUN_0224C678
+ bl MOD06_0224C678
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x5a
- bl FUN_0224C6E8
+ bl MOD06_0224C6E8
ldrh r0, [r4, #0x12]
add r0, r0, #0x1
strh r0, [r4, #0x12]
@@ -68093,7 +68093,7 @@ _02066614:
ldr r0, [r4, r0]
mov r1, #0x5a
ldr r0, [r0, #0x50]
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0x0
beq _0206662E
mov r0, #0x0
@@ -68114,7 +68114,7 @@ FUN_02066634: ; 0x02066634
add r4, r1, #0x0
ldr r0, [r5, r0]
mov r1, #0x5a
- bl FUN_021DAF98
+ bl MOD05_021DAF98
cmp r4, #0x0
bne _02066652
add r0, r5, #0x0
@@ -68148,7 +68148,7 @@ _02066676:
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r5, r0]
@@ -68387,13 +68387,13 @@ FUN_02066840: ; 0x02066840
add r0, r7, #0x0
mov r1, #0x0
mov r2, #0xe4
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_0202398C
add r1, r7, #0x0
add r1, #0xa8
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
bl FUN_020239BC
add r1, r7, #0x0
@@ -68460,7 +68460,7 @@ _020668FC:
ldr r1, [sp, #0x8]
mov r2, #0x8
add r1, r1, r5
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x3
@@ -68471,7 +68471,7 @@ _020668FC:
add r1, r7, #0x0
add r1, #0xc0
mov r2, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [sp, #0x0]
cmp r0, #0x0
bne _02066956
@@ -68517,7 +68517,7 @@ FUN_02066978: ; 0x02066978
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0xec
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
ldrh r2, [r4, #0x6]
add r0, #0x8
@@ -68537,7 +68537,7 @@ FUN_020669A0: ; 0x020669A0
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x88
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
ldrh r2, [r4, #0x6]
add r0, #0x8
@@ -68747,7 +68747,7 @@ FUN_02066ACC: ; 0x02066ACC
mov r0, #0x0
add r1, sp, #0x14
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r5, #0x0
mov r1, #0xaa
add r2, sp, #0x14
@@ -69083,7 +69083,7 @@ _02066DF4:
orr r0, r1
orr r0, r2
mov r1, #0x1c
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r1, #0x10
lsr r5, r0, #0x10
add r0, r4, #0x0
@@ -69137,7 +69137,7 @@ FUN_02066E74: ; 0x02066E74
cmp r5, #0x0
bne _02066EA0
mov r1, #0x19
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x1
mov r0, #0x19
mul r0, r1
@@ -69312,7 +69312,7 @@ _02066FFC:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r4, r0
add r0, #0xa
_0206701E:
@@ -69334,7 +69334,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x4c]
add r0, r5, #0x0
@@ -69362,7 +69362,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x48]
add r0, r5, #0x0
@@ -69390,7 +69390,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x44]
add r0, r5, #0x0
@@ -69418,7 +69418,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x40]
add r0, r5, #0x0
@@ -69446,7 +69446,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x3c]
add r0, r5, #0x0
@@ -70060,7 +70060,7 @@ _020675AA:
sub r2, #0x19
add r1, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
ldr r2, [r5, #0x1c]
add r3, r4, #0x0
and r3, r1
@@ -70156,7 +70156,7 @@ _02067654:
sub r2, #0x4e
add r1, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
ldr r2, [r6, #0x14]
add r3, r4, #0x0
and r3, r1
@@ -70255,7 +70255,7 @@ _02067706:
sub r2, #0x7a
add r1, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
ldr r3, [r7, #0x18]
ldr r2, [r7, #0x1c]
and r3, r0
@@ -71020,7 +71020,7 @@ _02067C98:
sub r2, #0x19
add r0, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
cmp r4, #0x0
beq _02067CB6
ldr r1, [r7, #0x1c]
@@ -71158,7 +71158,7 @@ _02067D94:
sub r2, #0x4e
add r0, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
cmp r4, #0x0
beq _02067DB2
ldr r1, [r5, #0x14]
@@ -71288,7 +71288,7 @@ _02067E8A:
sub r2, #0x7a
add r0, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
cmp r4, #0x0
beq _02067EB2
add r4, r6, #0x0
@@ -72436,7 +72436,7 @@ FUN_02068698: ; 0x02068698
mov r0, #0x64
mul r0, r1
sub r1, r6, r4
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3-r7, pc}
@@ -72652,7 +72652,7 @@ FUN_0206885C: ; 0x0206885C
FUN_02068884: ; 0x02068884
push {r3, lr}
mov r1, #0x19
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r1, #0x18
lsr r0, r0, #0x18
pop {r3, pc}
@@ -72686,7 +72686,7 @@ _020688A2:
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
b _020688E0
@@ -72696,7 +72696,7 @@ _020688CE:
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
_020688E0:
@@ -72798,7 +72798,7 @@ _02068994:
mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
asr r4, r0, #0x18
_020689AA:
@@ -73726,7 +73726,7 @@ FUN_02069010: ; 0x02069010
add r0, sp, #0xc
add r1, r4, #0x0
mov r2, #0x14
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add sp, #0x20
pop {r3-r5, pc}
.balign 4
@@ -74006,7 +74006,7 @@ _02069216:
ldr r0, [sp, #0x1c]
mov r1, #0xa
ldr r4, [sp, #0x18]
- blx _s32_div_f
+ bl _s32_div_f
str r1, [sp, #0x8]
_02069246:
ldrh r0, [r4, #0x0]
@@ -74438,20 +74438,20 @@ FUN_02069558: ; 0x02069558
bl ErrorHandling
_0206956E:
add r0, sp, #0x4
- blx FS_InitFile
+ bl FS_InitFile
ldr r1, _020695A4 ; =0x02105FC8
add r0, sp, #0x4
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x4
lsl r1, r4, #0x1
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x4
add r1, sp, #0x0
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x4
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, sp, #0x0
ldrh r0, [r0, #0x0]
add sp, #0x4c
@@ -75115,7 +75115,7 @@ _02069A8E:
mov r0, #0x0
add r1, sp, #0x4
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
mov r1, #0xaa
add r2, sp, #0x4
@@ -75347,7 +75347,7 @@ FUN_02069C4C: ; 0x02069C4C
_02069C70:
bl FUN_0201B9EC
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r0, r5, #0x0
add r7, r1, #0x0
bl FUN_0206B9B0
@@ -75529,7 +75529,7 @@ FUN_02069DC8: ; 0x02069DC8
add r7, r0, #0x0
bl FUN_0201B9EC
mov r1, #0x3
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x0
bne _02069E70
mov r4, #0x0
@@ -75917,7 +75917,7 @@ FUN_0206A094: ; 0x0206A094
bne _0206A12E
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r4, r1, #0x0
add r0, r5, #0x0
mov r1, #0x5
@@ -77385,7 +77385,7 @@ FUN_0206AA84: ; 0x0206AA84
add r1, sp, #0x0
add r1, #0x1
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
mov r1, #0xa1
add r2, sp, #0x0
@@ -77479,7 +77479,7 @@ _0206AB3A:
mul r0, r4
mul r0, r5
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r4, r0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
@@ -77970,7 +77970,7 @@ _0206AECE:
mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -78054,7 +78054,7 @@ _0206AF76:
mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -78147,7 +78147,7 @@ _0206B030:
mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -78231,7 +78231,7 @@ _0206B0DA:
mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -79377,7 +79377,7 @@ _0206B8DA:
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r4, #0x0
str r4, [r5, #0x4]
str r6, [r5, #0x0]
@@ -80144,7 +80144,7 @@ FUN_0206BE48: ; 0x0206BE48
add r0, sp, #0x30
mov r1, #0x0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x20]
mov r7, #0x0
cmp r0, #0x0
@@ -80325,10 +80325,10 @@ FUN_0206BF90: ; 0x0206BF90
strb r0, [r6, #0x4]
add r0, r5, #0x0
add r1, r4, #0x4
- bl FUN_02231344
+ bl MOD11_02231344
add r0, r5, #0x0
add r1, r6, #0x4
- bl FUN_02231350
+ bl MOD11_02231350
ldr r0, _0206BFE8 ; =FUN_0206C550
add r1, r4, #0x0
mov r2, #0x0
@@ -80511,13 +80511,13 @@ FUN_0206C0C8: ; 0x0206C0C8
bl FUN_02016998
add r6, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_022300D4
+ bl MOD11_022300D4
add r5, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_022300F4
+ bl MOD11_022300F4
add r4, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_02230100
+ bl MOD11_02230100
mov r12, r0
add r0, sp, #0x10
ldrh r3, [r4, #0x0]
@@ -80577,13 +80577,13 @@ FUN_0206C154: ; 0x0206C154
add r0, r3, #0x0
add r5, r1, #0x0
add r6, r2, #0x0
- bl FUN_022300DC
+ bl MOD11_022300DC
add r7, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_02230118
+ bl MOD11_02230118
add r4, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_02230124
+ bl MOD11_02230124
ldrh r1, [r4, #0x0]
add r2, r1, r5
add r3, r2, #0x1
@@ -81135,16 +81135,16 @@ FUN_0206C550: ; 0x0206C550
add r5, r1, #0x0
str r0, [sp, #0x0]
ldr r0, [r5, #0x0]
- bl FUN_022300D4
+ bl MOD11_022300D4
add r6, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_022300E8
+ bl MOD11_022300E8
add r4, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_022300F4
+ bl MOD11_022300F4
str r0, [sp, #0x4]
ldr r0, [r5, #0x0]
- bl FUN_02230100
+ bl MOD11_02230100
add r7, r0, #0x0
ldrb r0, [r5, #0x4]
cmp r0, #0x0
@@ -81203,16 +81203,16 @@ FUN_0206C5DC: ; 0x0206C5DC
add r5, r1, #0x0
str r0, [sp, #0x0]
ldr r0, [r5, #0x0]
- bl FUN_022300DC
+ bl MOD11_022300DC
add r6, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_0223010C
+ bl MOD11_0223010C
add r4, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_02230118
+ bl MOD11_02230118
add r7, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_02230124
+ bl MOD11_02230124
ldrb r1, [r5, #0x4]
cmp r1, #0x0
beq _0206C60A
@@ -81233,7 +81233,7 @@ _0206C61E:
ldrh r1, [r4, #0x0]
ldr r0, [r5, #0x0]
add r1, r6, r1
- bl FUN_022567E0
+ bl MOD11_022567E0
ldrh r0, [r4, #0x0]
add r1, r0, #0x2
ldrb r2, [r6, r1]
@@ -81259,13 +81259,13 @@ FUN_0206C64C: ; 0x0206C64C
add r4, r3, #0x0
add r0, r4, #0x0
mov r1, #0xff
- bl FUN_0223135C
+ bl MOD11_0223135C
add r0, r4, #0x0
mov r1, #0xff
- bl FUN_02231368
+ bl MOD11_02231368
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_02231374
+ bl MOD11_02231374
pop {r4, pc}
.balign 4
@@ -81362,21 +81362,21 @@ FUN_0206C700: ; 0x0206C700
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x80
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
bl FUN_020222F0
str r0, [sp, #0x1c]
bl FUN_020222E8
add r1, r0, #0x0
ldr r2, [sp, #0x1c]
mov r0, #0x0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
bl FUN_02022300
str r0, [sp, #0x20]
bl FUN_020222F8
add r1, r0, #0x0
ldr r2, [sp, #0x20]
mov r0, #0x0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r0, [sp, #0x14]
str r6, [r4, #0x24]
mov r1, #0x5
@@ -81497,7 +81497,7 @@ FUN_0206C700: ; 0x0206C700
ldr r1, [r4, #0x3c]
mov r0, #0x0
mov r2, #0x30
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r1, [sp, #0x38]
ldr r0, [r4, #0x3c]
str r1, [r0, #0x2c]
@@ -83490,7 +83490,7 @@ _0206D8EA:
mov r0, #0x0
add r1, sp, #0x8
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r5, #0x0
mov r1, #0xaa
add r2, sp, #0x8
@@ -83559,25 +83559,25 @@ _0206D9C6:
mov r0, #0x0
lsl r1, r1, #0x18
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x62
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x19
mov r2, #0x1
mov r0, #0x0
lsl r1, r1, #0x16
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x66
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r6, _0206DC2C ; =0x020F8328
add r3, sp, #0x2c
add r2, r3, #0x0
@@ -84084,14 +84084,14 @@ FUN_0206DE4C: ; 0x0206DE4C
mov r1, #0x0
mov r2, #0xe
mov r3, #0xb
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
mov r0, #0x8
str r0, [sp, #0x0]
ldr r0, _0206DE74 ; =0x04001050
mov r1, #0x0
mov r2, #0xe
mov r3, #0x7
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_0206DE70: .word 0x04000050
@@ -84155,13 +84155,13 @@ FUN_0206DE94: ; 0x0206DE94
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _0206DF0C ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _0206DF10 ; =0xBFFF0000
ldr r0, _0206DF14 ; =0x04000580
str r1, [r0, #0x0]
@@ -84214,7 +84214,7 @@ FUN_0206DF58: ; 0x0206DF58
cmp r0, #0x0
ble _0206DF6E
bl FUN_020222AC
- blx FUN_020B02C8
+ bl FUN_020B02C8
_0206DF6E:
bl FUN_02013388
mov r0, #0x1
@@ -84720,7 +84720,7 @@ FUN_0206E2F0: ; 0x0206E2F0
mov r1, #0x0
mov r2, #0x78
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -86830,7 +86830,7 @@ FUN_0206F164: ; 0x0206F164
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x24
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
add r0, r4, #0x0
pop {r4, pc}
@@ -87124,9 +87124,9 @@ _0206F34A:
bl FUN_0201681C
bl FUN_02088878
mov r0, #0x36
- bl FUN_02211E60
+ bl MOD07_02211E60
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
b _0206F380
_0206F366:
ldr r0, [r4, #0x0]
@@ -87157,14 +87157,14 @@ FUN_0206F38C: ; 0x0206F38C
mov r1, #0x0
mov r2, #0x10
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0xb
mov r1, #0xc
bl FUN_020169D8
mov r1, #0x0
mov r2, #0xc
str r0, [r4, #0x0]
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -88362,7 +88362,7 @@ FUN_0206FD24: ; 0x0206FD24
bl LoadFromNarc_2
add r1, sp, #0x10
add r4, r0, #0x0
- blx FUN_020B0138
+ bl FUN_020B0138
ldr r2, [sp, #0x10]
mov r0, #0x3
ldr r1, [r2, #0xc]
@@ -88378,7 +88378,7 @@ FUN_0206FD24: ; 0x0206FD24
add r0, r5, r0
add r1, #0x60
lsl r2, r2, #0x8
- blx memcpy
+ bl memcpy
mov r0, #0xc
add r1, r4, #0x0
bl FUN_02016A8C
@@ -88490,7 +88490,7 @@ FUN_0206FE74: ; 0x0206FE74
ldr r2, _0206FF50 ; =0x00000B38
mov r1, #0x0
add r6, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_0200628C
ldr r1, _0206FF54 ; =0x000005A4
@@ -93292,7 +93292,7 @@ FUN_020724D4: ; 0x020724D4
bl LoadFromNarc_2
add r1, sp, #0xc
str r0, [sp, #0x8]
- blx FUN_020B0180
+ bl FUN_020B0180
ldr r0, [sp, #0xc]
mov r4, #0x0
str r0, [sp, #0x4]
@@ -93303,14 +93303,14 @@ _020724FE:
ldr r1, [sp, #0x0]
add r0, r5, #0x0
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r1, r4, #0x6
lsl r2, r1, #0x6
ldr r1, [sp, #0x4]
add r0, r6, #0x0
add r1, r1, r2
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r1, r4, #0x0
add r1, #0xc
lsl r2, r1, #0x6
@@ -93318,7 +93318,7 @@ _020724FE:
add r0, r7, #0x0
add r1, r1, r2
mov r2, #0x20
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x0]
add r4, r4, #0x1
add r0, #0x40
@@ -97348,13 +97348,13 @@ _02074638:
ldr r1, [sp, #0x14]
add r0, r0, r5
add r1, r1, r7
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x10]
add r0, r0, r5
add r1, r1, r7
mov r2, #0x20
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x4]
mov r2, #0x20
add r0, r0, r4
@@ -97366,13 +97366,13 @@ _02074638:
ldr r1, [sp, #0x14]
add r0, r0, r5
add r1, r1, r7
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x10]
add r0, r0, r5
add r1, r1, r7
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -99044,7 +99044,7 @@ FUN_020753B4: ; 0x020753B4
ldr r0, _020754AC ; =0x00000708
ldrh r0, [r1, r0]
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _020754B0 ; =0x00000B28
strh r0, [r4, r1]
sub r0, r1, #0x3
@@ -102727,7 +102727,7 @@ _020772FE:
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x12
bl FUN_02016B94
mov r1, #0x16
@@ -102890,7 +102890,7 @@ FUN_020774B8: ; 0x020774B8
ldr r1, _020774E8 ; =0x000057E0
add r6, r3, #0x0
lsl r2, r2, #0x8
- blx GX_LoadOBJ
+ bl GX_LoadOBJ
ldr r4, [r4, #0xc]
add r0, r5, #0x0
add r1, r6, #0x0
@@ -102900,7 +102900,7 @@ FUN_020774B8: ; 0x020774B8
add r0, r4, r0
mov r1, #0xc0
mov r2, #0x20
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
pop {r4-r6, pc}
nop
_020774E8: .word 0x000057E0
@@ -103279,7 +103279,7 @@ FUN_020777D4: ; 0x020777D4
bne _020777FE
bl FUN_0201B9EC
mov r1, #0x12
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
@@ -103291,7 +103291,7 @@ _020777FE:
bne _0207781A
bl FUN_0201B9EC
mov r1, #0x12
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
@@ -103949,7 +103949,7 @@ _02077D88:
mov r0, #0x1
add r1, #0xd8
mov r2, #0x40
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r0, [r4, #0x0]
cmp r0, #0x1
bne _02077DCE
@@ -104394,7 +104394,7 @@ FUN_02078140: ; 0x02078140
push {r4-r7, lr}
sub sp, #0x14
add r5, r0, #0x0
- blx FUN_020B0FC0
+ bl FUN_020B0FC0
mov r0, #0x0
str r0, [sp, #0x0]
mov r1, #0x80
@@ -104516,7 +104516,7 @@ _0207818C:
mov r1, #0x2
ldr r0, [r5, r0]
lsl r1, r1, #0x8
- blx DC_FlushRange
+ bl DC_FlushRange
bl FUN_0206B888
add r1, r0, #0x0
mov r0, #0x13
@@ -104529,7 +104529,7 @@ _0207818C:
add r0, r1, #0x4
ldr r0, [r5, r0]
mov r1, #0x80
- blx DC_FlushRange
+ bl DC_FlushRange
_02078272:
mov r3, #0x1
str r3, [sp, #0x0]
@@ -106027,7 +106027,7 @@ _02078E52:
add r0, sp, #0x0
mov r1, #0x3a
mov r2, #0x2
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
pop {r3, pc}
thumb_func_start FUN_02078E7C
@@ -106197,7 +106197,7 @@ FUN_02078FA0: ; 0x02078FA0
bl FUN_02078F7C
mov r1, #0x2
lsl r1, r1, #0xa
- blx DC_FlushRange
+ bl DC_FlushRange
add r7, r6, #0x0
mov r4, #0x0
add r7, #0x30
@@ -106213,14 +106213,14 @@ _02078FD0:
mov r1, #0x1
add r0, r5, #0x0
lsl r1, r1, #0x8
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r1, _02079070 ; =0x020F9D28
mov r2, #0x1
ldrb r1, [r1, r4]
add r0, r5, #0x0
lsl r2, r2, #0x8
lsl r1, r1, #0x5
- blx GXS_LoadOBJ
+ bl GXS_LoadOBJ
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -106253,14 +106253,14 @@ _02079012:
bl FUN_02078F7C
mov r1, #0x80
add r7, r0, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r1, _02079078 ; =0x020F9D40
lsl r2, r5, #0x2
ldr r1, [r1, r2]
add r0, r7, #0x0
lsl r1, r1, #0x5
mov r2, #0x80
- blx GXS_LoadOBJ
+ bl GXS_LoadOBJ
add r0, r5, #0x1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
@@ -106854,7 +106854,7 @@ _02079470:
mov r1, #0x0
mov r2, #0x7
str r3, [sp, #0x0]
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
mov r0, #0xd3
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -107543,7 +107543,7 @@ FUN_02079A0C: ; 0x02079A0C
push {r4, lr}
add r4, r0, #0x0
mul r0, r2
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bne _02079A22
@@ -107566,7 +107566,7 @@ FUN_02079A24: ; 0x02079A24
pop {r4, pc}
_02079A36:
mov r1, #0x5
- blx _u32_div_f
+ bl _u32_div_f
cmp r4, r0
bls _02079A44
mov r0, #0x2
@@ -107767,7 +107767,7 @@ FUN_02079B60: ; 0x02079B60
_02079B9A:
add r0, r7, #0x0
add r1, sp, #0x10
- blx FUN_020B0088
+ bl FUN_020B0088
cmp r4, #0x0
bne _02079BAE
ldr r0, [sp, #0x10]
@@ -107789,7 +107789,7 @@ _02079BAE:
_02079BC6:
add r0, r7, #0x0
add r1, sp, #0xc
- blx FUN_020B0180
+ bl FUN_020B0180
cmp r4, #0x0
bne _02079BDA
ldr r0, [sp, #0xc]
@@ -107825,7 +107825,7 @@ _02079BF8:
_02079C10:
add r0, r7, #0x0
add r1, sp, #0x8
- blx FUN_020B0138
+ bl FUN_020B0138
cmp r4, #0x0
bne _02079C24
ldr r0, [sp, #0x8]
@@ -107866,7 +107866,7 @@ FUN_02079C40: ; 0x02079C40
bl FUN_02006774
add r0, r4, #0x0
add r1, r7, #0x0
- blx FUN_020B0180
+ bl FUN_020B0180
add r0, r4, #0x0
pop {r3-r7, pc}
@@ -107924,7 +107924,7 @@ FUN_02079C7C: ; 0x02079C7C
ldr r2, _02079DAC ; =0x0000069C
mov r1, #0x0
add r5, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_0200628C
mov r1, #0x93
@@ -108459,7 +108459,7 @@ FUN_0207A188: ; 0x0207A188
mov r1, #0x1
mov r2, #0x1e
mov r3, #0x17
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_0207A19C: .word 0x04000050
@@ -110574,7 +110574,7 @@ _0207B256:
bl LoadFromNarc_2
add r1, sp, #0xc
add r4, r0, #0x0
- blx FUN_020B0180
+ bl FUN_020B0180
mov r3, #0x0
str r3, [sp, #0x0]
mov r0, #0x20
@@ -111980,7 +111980,7 @@ FUN_0207BD84: ; 0x0207BD84
bl FUN_0206AB18
bl FUN_02083114
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
asr r6, r0, #0x18
mov r4, #0x0
@@ -113920,7 +113920,7 @@ _0207CD3E:
mov r1, #0xa
ldrb r0, [r4, r0]
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, _0207CE44 ; =0x00000693
strb r1, [r4, r0]
b _0207CDE8
@@ -114375,7 +114375,7 @@ FUN_0207D0C8: ; 0x0207D0C8
lsl r0, r1, #0x10
mov r1, #0x4b
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
lsr r0, r0, #0x10
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -114390,7 +114390,7 @@ _0207D0EE:
lsl r0, r1, #0x10
mov r1, #0x4b
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
lsr r0, r0, #0x10
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118028,9 +118028,9 @@ _0207EF68: .word 0x0001020F
FUN_0207EF6C: ; 0x0207EF6C
push {r3-r4, lr}
sub sp, #0x4
- blx FUN_020BB7F4
- blx G3X_Init
- blx G3X_InitMtxStack
+ bl FUN_020BB7F4
+ bl G3X_Init
+ bl G3X_InitMtxStack
ldr r0, _0207EFEC ; =0x04000060
ldr r1, _0207EFF0 ; =0xFFFFCFFD
ldrh r2, [r0, #0x0]
@@ -118060,13 +118060,13 @@ FUN_0207EF6C: ; 0x0207EF6C
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _0207EFF8 ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _0207EFFC ; =0x04000540
mov r0, #0x0
str r0, [r1, #0x0]
@@ -118112,16 +118112,16 @@ FUN_0207F008: ; 0x0207F008
mov r0, #0x2
str r0, [r2, #0x0]
str r3, [r1, #0x0]
- blx FUN_020B849C
+ bl FUN_020B849C
mov r0, #0xb7
lsl r0, r0, #0x2
add r0, r4, r0
bl FUN_0207F108
- blx FUN_020B849C
+ bl FUN_020B849C
add r0, r4, #0x0
bl FUN_0207F1A4
_0207F046:
- blx FUN_020B02C8
+ bl FUN_020B02C8
mov r0, #0xae
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -118682,43 +118682,43 @@ FUN_0207F48C: ; 0x0207F48C
add r6, r2, #0x0
sub r7, r1, r0
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
mov r1, #0x0
- blx _fgr
+ bl _fgr
bls _0207F4E0
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
- blx _ffix
+ bl _fadd
+ bl _ffix
b _0207F506
_0207F4E0:
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
- blx _ffix
+ bl _fsub
+ bl _ffix
_0207F506:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118728,43 +118728,43 @@ _0207F506:
ldrsh r0, [r5, r0]
sub r7, r1, r0
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
mov r1, #0x0
- blx _fgr
+ bl _fgr
bls _0207F558
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
- blx _ffix
+ bl _fadd
+ bl _ffix
b _0207F57E
_0207F558:
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
- blx _ffix
+ bl _fsub
+ bl _ffix
_0207F57E:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118774,43 +118774,43 @@ _0207F57E:
ldrsh r0, [r5, r0]
sub r4, r1, r0
add r0, r4, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
mov r1, #0x0
- blx _fgr
+ bl _fgr
bls _0207F5D0
add r0, r4, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
- blx _ffix
+ bl _fadd
+ bl _ffix
b _0207F5F6
_0207F5D0:
add r0, r4, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
- blx _ffix
+ bl _fsub
+ bl _ffix
_0207F5F6:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -120608,7 +120608,7 @@ FUN_0208048C: ; 0x0208048C
add r2, r1, #0x0
bl FUN_020671BC
mov r1, #0x6
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x5
bhi _02080510
add r0, r1, r1
@@ -120819,7 +120819,7 @@ _0208064C:
add r0, r7, #0x0
_02080654:
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
mov r2, #0xa
add r6, r5, #0x0
mul r6, r2
@@ -121550,7 +121550,7 @@ FUN_02080C38: ; 0x02080C38
mov r1, #0x0
mov r2, #0x8
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, _02080C5C ; =FUN_02080C60
add r0, r5, #0x0
add r2, r4, #0x0
@@ -121774,7 +121774,7 @@ FUN_02080E0C: ; 0x02080E0C
mov r1, #0x0
mov r2, #0x8
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02080E50 ; =0x00000121
str r6, [r4, #0x0]
ldrb r0, [r6, r0]
@@ -122275,7 +122275,7 @@ FUN_020811D8: ; 0x020811D8
ldr r2, _02081204 ; =0x000019C4
mov r1, #0x0
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02081208 ; =0x00000123
mov r1, #0x0
strb r1, [r4, r0]
@@ -122790,7 +122790,7 @@ FUN_020815D0: ; 0x020815D0
mov r1, #0x0
mov r2, #0x28
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02081658 ; =0x00000123
ldrb r1, [r5, r0]
lsl r1, r1, #0x2
@@ -123406,7 +123406,7 @@ _02081A8A:
ldr r1, _02081D30 ; =0x00000585
ldr r0, [r4, r0]
add r1, r4, r1
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0xc
bl FUN_02031588
ldr r0, _02081D2C ; =0x00000584
@@ -124765,7 +124765,7 @@ _02082456:
mov r1, #0x0
mov r2, #0x10
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r6, #0x0
bl FUN_020832E4
strb r0, [r4, #0xc]
@@ -125393,7 +125393,7 @@ _0208292A:
mov r1, #0x0
bl LoadFromNARC_7
mov r1, #0x30
- blx _u32_div_f
+ bl _u32_div_f
str r0, [sp, #0x24]
ldr r1, [sp, #0x24]
add r0, r5, #0x0
@@ -125553,7 +125553,7 @@ _02082A5A:
ldr r0, [sp, #0x4]
bl FUN_02082878
ldr r1, [sp, #0x10]
- blx _s32_div_f
+ bl _s32_div_f
mov r3, #0x0
cmp r6, #0x0
ble _02082AA2
@@ -125597,7 +125597,7 @@ _02082AB0:
ldr r0, [sp, #0x4]
bl FUN_02082878
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r2, r0, #0x10
ldrb r3, [r5, r2]
@@ -125658,7 +125658,7 @@ _02082B16:
ldr r0, [sp, #0x4]
bl FUN_02082878
ldr r1, [sp, #0x8]
- blx _s32_div_f
+ bl _s32_div_f
add r0, r4, r1
lsl r0, r0, #0x10
lsr r2, r0, #0x10
@@ -126341,7 +126341,7 @@ _02083058:
ldr r0, [sp, #0x4]
bl FUN_02082878
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r1, r0, #0x10
ldr r0, [sp, #0x10]
@@ -126929,7 +126929,7 @@ FUN_02083454: ; 0x02083454
_02083464:
bl FUN_0201B9EC
mov r1, #0xc
- blx _s32_div_f
+ bl _s32_div_f
add sp, #0xc
add r0, r1, #0x0
pop {r4-r5, pc}
@@ -126937,7 +126937,7 @@ _02083474:
add r0, sp, #0x0
add r1, r4, #0x0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x2
add r0, sp, #0x0
strb r1, [r0, #0x0]
@@ -126974,7 +126974,7 @@ _020834A6:
_020834BE:
bl FUN_0201B9EC
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r0, sp, #0x0
ldrb r0, [r0, r1]
add sp, #0xc
@@ -127090,7 +127090,7 @@ _02083578:
add r1, r2, r1
ldr r0, [sp, #0x0]
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x1
strb r0, [r7, r5]
pop {r3-r7, pc}
@@ -127105,11 +127105,11 @@ FUN_020835A0: ; 0x020835A0
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r3, r0]
- ldr r3, _020835AC ; =0x0223D1CD
+ ldr r3, _020835AC ; =MOD12_0223D1CC
add r1, r2, #0x0
bx r3
.balign 4
-_020835AC: .word 0x0223D1CD
+_020835AC: .word MOD12_0223D1CC
thumb_func_start FUN_020835B0
FUN_020835B0: ; 0x020835B0
@@ -127125,7 +127125,7 @@ FUN_020835B0: ; 0x020835B0
lsl r1, r6, #0x8
add r1, r2, r1
add r2, r5, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r2, _02083628 ; =0x00000584
ldrb r0, [r4, r2]
add r0, r0, #0x1
@@ -127247,7 +127247,7 @@ FUN_02083694: ; 0x02083694
add r0, r5, #0x0
lsl r1, r1, #0x2
ldr r1, [r4, r1]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _020836B8 ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127270,7 +127270,7 @@ FUN_020836BC: ; 0x020836BC
add r0, r7, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x1b
add r1, r5, #0x0
add r2, r4, #0x1
@@ -127304,7 +127304,7 @@ _02083710:
ldr r1, [r4, #0x0]
add r0, r0, r5
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, #0x4
add r5, r5, r6
@@ -127341,7 +127341,7 @@ _02083758:
ldr r0, [r5, #0x0]
add r1, r1, r4
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, r6
add r5, r5, #0x4
@@ -127376,7 +127376,7 @@ FUN_0208378C: ; 0x0208378C
add r5, #0x10
mul r3, r2
add r1, r5, r3
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _020837B0 ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127397,7 +127397,7 @@ FUN_020837B4: ; 0x020837B4
add r0, r6, #0x0
add r1, r4, #0x0
mov r2, #0x30
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
add r0, #0x30
strb r5, [r0, #0x0]
@@ -127432,7 +127432,7 @@ _02083802:
add r0, r6, r0
add r1, r5, #0x0
add r2, r7, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x3
@@ -127467,7 +127467,7 @@ _02083848:
add r0, r5, #0x0
add r1, r6, r1
add r2, r7, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x3
@@ -127532,7 +127532,7 @@ FUN_020838B4: ; 0x020838B4
add r0, sp, #0x0
add r1, r4, #0x4
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
strb r5, [r4, #0x0]
mov r0, #0x10
strb r0, [r4, #0x1]
@@ -127569,7 +127569,7 @@ FUN_02083904: ; 0x02083904
add r1, r4, r1
add r1, #0xf8
ldr r1, [r1, #0x0]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _0208392C ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127592,7 +127592,7 @@ FUN_02083930: ; 0x02083930
add r0, r7, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x20
add r1, r5, #0x0
add r2, r4, #0x1
@@ -127635,7 +127635,7 @@ _02083992:
ldr r1, [r1, #0x0]
add r0, r0, r5
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, #0x4
add r5, r5, r6
@@ -127678,7 +127678,7 @@ _020839E8:
ldr r0, [r5, #0x0]
add r1, r1, r4
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, r6
add r5, r5, #0x4
@@ -127708,7 +127708,7 @@ FUN_02083A1C: ; 0x02083A1C
add r0, r2, #0x0
add r1, r3, r1
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r4, pc}
nop
_02083A30: .word 0x000019A0
@@ -127796,7 +127796,7 @@ FUN_02083AA8: ; 0x02083AA8
mov r1, #0x57
lsl r1, r1, #0x2
ldr r1, [r3, r1]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _02083AD0 ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127820,7 +127820,7 @@ FUN_02083AD4: ; 0x02083AD4
add r0, r6, #0x0
add r1, r4, #0x0
add r2, r5, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_02083AF4:
mov r0, #0x24
add r1, r4, #0x0
@@ -127879,7 +127879,7 @@ FUN_02083B48: ; 0x02083B48
add r0, r6, #0x0
add r1, r4, #0x0
mov r2, #0x6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x25
add r1, r4, #0x0
mov r2, #0x7
@@ -127939,7 +127939,7 @@ FUN_02083BAC: ; 0x02083BAC
ldr r0, [r4, r0]
add r1, r6, #0x0
lsl r2, r2, #0x4
- blx memcpy
+ bl memcpy
ldr r0, [r4, #0x58]
add r0, r0, #0x1
str r0, [r4, #0x58]
@@ -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
@@ -128115,7 +128115,7 @@ FUN_02083CD8: ; 0x02083CD8
add r0, r6, #0x0
add r1, r3, r1
sub r2, r2, #0x4
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
mov r0, #0x4
str r0, [r4, #0x54]
mov r0, #0x0
@@ -128205,14 +128205,14 @@ FUN_02083D5C: ; 0x02083D5C
mov r2, #0x19
add r0, r5, #0x0
lsl r2, r2, #0x4
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
b _02083D9C
_02083D90:
add r2, r4, r2
add r1, r2, r1
add r0, r5, #0x0
sub r2, r3, #0x4
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
_02083D9C:
mov r1, #0xb5
ldr r0, _02083DE8 ; =0x000043D0
@@ -128221,7 +128221,7 @@ _02083D9C:
ldr r1, [r4, r1]
add r0, r4, r0
lsl r2, r2, #0x6
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
mov r0, #0xb2
lsl r0, r0, #0x2
add r0, r4, r0
@@ -128316,13 +128316,13 @@ FUN_02083E4C: ; 0x02083E4C
add r0, r4, #0x0
mov r1, #0x3
mov r2, #0x0
- bl FUN_021D8B64
+ bl MOD53_021D8B64
ldr r1, _02083E8C ; =0x000043D0
mov r2, #0xe1
mov r0, #0x0
add r1, r4, r1
lsl r2, r2, #0x6
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
bl FUN_02031190
cmp r0, #0x0
bne _02083E8A
@@ -128381,14 +128381,14 @@ _02083ED0:
ldr r1, [r4, r1]
cmp r1, r0
bne _02083EFE
- bl FUN_021D917C
+ bl MOD53_021D917C
mov r1, #0xc6
lsl r1, r1, #0x2
ldr r1, [r4, r1]
cmp r1, r0
bne _02083EFE
bl FUN_0202CB8C
- blx MATH_CountPopulation
+ bl MATH_CountPopulation
mov r1, #0xc6
lsl r1, r1, #0x2
ldr r1, [r4, r1]
@@ -128437,7 +128437,7 @@ _02083F3C:
add r0, r4, #0x0
mov r1, #0x9
add r2, r6, #0x0
- bl FUN_021D8B64
+ bl MOD53_021D8B64
add sp, #0x4
pop {r3-r6, pc}
_02083F5A:
@@ -128447,14 +128447,14 @@ _02083F5A:
ldrb r2, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x8
- bl FUN_021D8B64
+ bl MOD53_021D8B64
add sp, #0x4
pop {r3-r6, pc}
_02083F6E:
ldrb r2, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x15
- bl FUN_021D8B64
+ bl MOD53_021D8B64
_02083F78:
add sp, #0x4
pop {r3-r6, pc}
@@ -128474,7 +128474,7 @@ FUN_02083F88: ; 0x02083F88
add r4, r3, #0x0
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_021D8B64
+ bl MOD53_021D8B64
bl FUN_02031190
cmp r0, #0x0
bne _02083FB6
@@ -128514,7 +128514,7 @@ FUN_02083FC4: ; 0x02083FC4
add r0, r4, #0x0
mov r1, #0xf
mov r2, #0x0
- bl FUN_021D8B64
+ bl MOD53_021D8B64
_02083FDA:
pop {r4, pc}
@@ -128577,7 +128577,7 @@ FUN_0208402C: ; 0x0208402C
add r0, r1, r0
ldr r1, _02084078 ; =0x00007C10
add r1, r5, r1
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
ldr r0, _02084078 ; =0x00007C10
mov r2, #0x0
add r1, r2, #0x0
@@ -128674,12 +128674,12 @@ FUN_020840CC: ; 0x020840CC
add r0, r4, #0x0
bl FUN_02084270
add r0, r4, #0x0
- bl FUN_021D844C
+ bl MOD54_021D844C
lsl r2, r5, #0x18
add r0, r4, #0x0
mov r1, #0x19
lsr r2, r2, #0x18
- bl FUN_021D88E4
+ bl MOD54_021D88E4
mov r0, #0x1
add r1, r0, #0x0
bl FUN_020334E8
@@ -128693,12 +128693,12 @@ _02084110: .word 0x00000658
thumb_func_start FUN_02084114
FUN_02084114: ; 0x02084114
add r0, r3, #0x0
- ldr r3, _02084120 ; =FUN_021D88E4
+ ldr r3, _02084120 ; =MOD54_021D88E4
mov r1, #0x2
mov r2, #0x0
bx r3
nop
-_02084120: .word FUN_021D88E4 + 1
+_02084120: .word MOD54_021D88E4
thumb_func_start FUN_02084124
FUN_02084124: ; 0x02084124
@@ -128736,13 +128736,13 @@ _0208415E:
ldr r1, [r4, r1]
cmp r1, r0
bne _02084186
- bl FUN_021D8C24
+ bl MOD54_021D8C24
ldr r1, _02084208 ; =0x00004A48
ldr r1, [r4, r1]
cmp r1, r0
bne _02084186
bl FUN_0202CB8C
- blx MATH_CountPopulation
+ bl MATH_CountPopulation
ldr r1, _02084208 ; =0x00004A48
ldr r2, [r4, r1]
cmp r2, r0
@@ -128792,7 +128792,7 @@ _020841C8:
add r0, r4, #0x0
mov r1, #0x8
add r2, r6, #0x0
- bl FUN_021D88E4
+ bl MOD54_021D88E4
add sp, #0x4
pop {r3-r6, pc}
_020841E6:
@@ -128802,14 +128802,14 @@ _020841E6:
ldrb r2, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x7
- bl FUN_021D88E4
+ bl MOD54_021D88E4
add sp, #0x4
pop {r3-r6, pc}
_020841FA:
ldrb r2, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x13
- bl FUN_021D88E4
+ bl MOD54_021D88E4
_02084204:
add sp, #0x4
pop {r3-r6, pc}
@@ -128824,7 +128824,7 @@ FUN_02084210: ; 0x02084210
add r4, r3, #0x0
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_021D89CC
+ bl MOD54_021D89CC
bl FUN_02031190
cmp r0, #0x0
bne _0208422E
@@ -128855,7 +128855,7 @@ FUN_02084238: ; 0x02084238
add r0, r4, #0x0
mov r1, #0xd
mov r2, #0x0
- bl FUN_021D88E4
+ bl MOD54_021D88E4
_0208424E:
pop {r4, pc}
@@ -130682,7 +130682,7 @@ _020850BE:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x18]
_020850EC:
add r0, r5, #0x0
@@ -131327,7 +131327,7 @@ FUN_020854E0: ; 0x020854E0
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x0]
strb r0, [r4, #0xf]
ldr r0, [sp, #0x4]
@@ -131365,7 +131365,7 @@ FUN_02085538: ; 0x02085538
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r4, #0x0]
str r5, [r4, #0x8]
@@ -131395,7 +131395,7 @@ FUN_02085578: ; 0x02085578
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r4, #0x0]
str r5, [r4, #0x10]
@@ -131422,7 +131422,7 @@ FUN_020855B0: ; 0x020855B0
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r4, #0x0]
add r0, r7, #0x0
@@ -131582,7 +131582,7 @@ FUN_020856F0: ; 0x020856F0
mov r1, #0x0
mov r2, #0x34
add r6, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r6, #0x0]
add r0, r4, #0x0
@@ -131720,7 +131720,7 @@ FUN_020857F8: ; 0x020857F8
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x28
str r1, [r4, #0x0]
ldr r0, [r5, #0x14]
@@ -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
@@ -131946,8 +131946,8 @@ FUN_020859C0: ; 0x020859C0
ldr r2, _02085BA0 ; =0x0000042C
mov r1, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
- bl FUN_0222E2BC
+ bl Call_FillMemWithValue
+ 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
@@ -132164,7 +132164,7 @@ _02085BCA:
str r0, [r5, #0x0]
b _02085C02
_02085BD8:
- bl FUN_0222F990
+ bl MOD12_0222F990
cmp r0, #0x0
bne _02085BE6
mov r0, #0x2
@@ -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,29 +132306,29 @@ 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
mov r0, #0x35
bl FUN_020168D0
- ldr r0, _02085D68 ; =0x00000008
+ ldr r0, _02085D68 ; =SDK_OVERLAY_MODULE_08_ID
bl UnloadOverlayByID
mov r0, #0x1
pop {r3-r5, pc}
nop
_02085D64: .word 0x00000428
-_02085D68: .word 0x00000008
+_02085D68: .word SDK_OVERLAY_MODULE_08_ID
thumb_func_start FUN_02085D6C
FUN_02085D6C: ; 0x02085D6C
@@ -132596,7 +132596,7 @@ _02085F5E:
mov r1, #0x0
mov r2, #0x30
str r0, [r4, #0x8]
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
bl LoadPlayerDataAddress
ldr r1, [r4, #0x8]
@@ -132609,7 +132609,7 @@ _02085F5E:
mov r1, #0x0
mov r2, #0x40
str r0, [r4, #0xc]
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r1, _02085FA8 ; =FUN_02085DA4
add r0, r6, #0x0
add r2, r4, #0x0
@@ -132752,7 +132752,7 @@ FUN_02086084: ; 0x02086084
mov r1, #0x0
mov r2, #0x80
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
bl FUN_0200628C
str r0, [r4, #0x0]
@@ -132974,7 +132974,7 @@ _020862A0: ; jump table (using 16-bit offset)
_020862AE:
ldr r0, [r4, #0xc]
mov r1, #0xb
- bl FUN_021ED940
+ bl MOD05_021ED940
add r0, r5, #0x0
bl FUN_0204AF3C
ldr r0, [r4, #0x0]
@@ -133167,14 +133167,14 @@ FUN_0208643C: ; 0x0208643C
mov r1, #0x0
mov r2, #0xe
mov r3, #0xb
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
mov r0, #0x8
str r0, [sp, #0x0]
ldr r0, _02086464 ; =0x04001050
mov r1, #0x0
mov r2, #0xe
mov r3, #0x7
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_02086460: .word 0x04000050
@@ -133239,13 +133239,13 @@ FUN_02086488: ; 0x02086488
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _02086500 ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _02086504 ; =0xBFFF0000
ldr r0, _02086508 ; =0x04000580
str r1, [r0, #0x0]
@@ -133311,25 +133311,25 @@ _0208655C:
mov r0, #0x0
lsl r1, r1, #0x18
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x62
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x19
mov r2, #0x1
mov r0, #0x0
lsl r1, r1, #0x16
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x66
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r5, _02086654 ; =0x020FCE24
add r3, sp, #0x1c
add r2, r3, #0x0
@@ -133444,7 +133444,7 @@ FUN_02086698: ; 0x02086698
cmp r0, #0x0
ble _020866AE
bl FUN_020222AC
- blx FUN_020B02C8
+ bl FUN_020B02C8
_020866AE:
bl FUN_02013388
mov r0, #0x1
@@ -134325,7 +134325,7 @@ _02086DB4:
bl FUN_0200C82C
mov r0, #0x0
add r1, r7, #0x0
- blx _feq
+ bl _feq
beq _02086DD2
ldr r0, [r6, #0x6c]
ldr r2, [sp, #0x0]
@@ -136295,7 +136295,7 @@ FUN_02087D00: ; 0x02087D00
mov r1, #0x0
lsl r2, r2, #0x2
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_02028048
str r0, [r7, #0x8]
@@ -136454,7 +136454,7 @@ FUN_02087E40: ; 0x02087E40
mov r1, #0x0
mov r2, #0x18
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x2c
str r0, [r4, #0x0]
str r5, [r4, #0xc]
@@ -136620,7 +136620,7 @@ _02087F86:
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0xc]
mov r1, #0x0
ldr r0, [r0, #0x10]
@@ -136761,7 +136761,7 @@ FUN_020880A0: ; 0x020880A0
mov r1, #0x0
mov r2, #0xc
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [r5, #0xc]
ldrb r0, [r1, #0x1]
lsl r0, r0, #0x3
@@ -136992,22 +136992,22 @@ _0208826A:
cmp r0, #0x5
beq _020882B8
ldrb r0, [r4, r0]
- blx _ffltu
+ bl _ffltu
add r1, r0, #0x0
ldr r0, _02088318 ; =0x3F8CCCCD
- blx _fmul
- blx _ffixu
+ bl _fmul
+ bl _ffixu
ldr r1, [sp, #0x4]
strb r0, [r4, r1]
add r4, sp, #0x8
ldr r0, [sp, #0x0]
add r4, #0x1
ldrb r0, [r4, r0]
- blx _ffltu
+ bl _ffltu
add r1, r0, #0x0
ldr r0, _0208831C ; =0x3F666666
- blx _fmul
- blx _ffixu
+ bl _fmul
+ bl _ffixu
ldr r1, [sp, #0x0]
strb r0, [r4, r1]
_020882B8:
@@ -137075,7 +137075,7 @@ FUN_02088320: ; 0x02088320
mov r1, #0x0
lsl r2, r2, #0x2
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r6, [r4, #0x0]
cmp r5, #0x10
bls _0208834A
@@ -137104,7 +137104,7 @@ FUN_02088360: ; 0x02088360
add r0, r4, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_02016A18
pop {r4, pc}
@@ -137199,7 +137199,7 @@ _02088402:
ldr r0, [r0, r2]
mov r1, #0x0
mov r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
add sp, #0xc
pop {r4-r7, pc}
.balign 4
@@ -137272,7 +137272,7 @@ _020884B4:
str r0, [sp, #0x38]
mov r1, #0x0
mov r2, #0x8
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [sp, #0x3c]
ldr r0, [sp, #0x38]
strh r1, [r0, #0x0]
@@ -137365,59 +137365,59 @@ _020884D8:
str r0, [sp, #0x44]
beq _02088596
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _020885A4
_02088596:
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_020885A4:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x48]
ldr r0, [sp, #0x30]
cmp r0, #0x0
beq _020885C2
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _020885D0
_020885C2:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_020885D0:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x4c]
add r0, sp, #0x78
ldrh r0, [r0, #0x10]
cmp r0, #0x0
beq _020885F0
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _020885FE
_020885F0:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_020885FE:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x50]
cmp r6, #0x2
bne _02088612
@@ -137758,40 +137758,40 @@ FUN_02088854: ; 0x02088854
thumb_func_start FUN_02088858
FUN_02088858: ; 0x02088858
ldr r3, _02088860 ; =HandleLoadOverlay
- ldr r0, _02088864 ; =0x00000004
+ ldr r0, _02088864 ; =SDK_OVERLAY_MODULE_04_ID
mov r1, #0x2
bx r3
.balign 4
_02088860: .word HandleLoadOverlay
-_02088864: .word 0x00000004
+_02088864: .word SDK_OVERLAY_MODULE_04_ID
thumb_func_start FUN_02088868
FUN_02088868: ; 0x02088868
ldr r3, _02088870 ; =UnloadOverlayByID
- ldr r0, _02088874 ; =0x00000004
+ ldr r0, _02088874 ; =SDK_OVERLAY_MODULE_04_ID
bx r3
nop
_02088870: .word UnloadOverlayByID
-_02088874: .word 0x00000004
+_02088874: .word SDK_OVERLAY_MODULE_04_ID
thumb_func_start FUN_02088878
FUN_02088878: ; 0x02088878
ldr r3, _02088880 ; =HandleLoadOverlay
- ldr r0, _02088884 ; =0x0000000D
+ ldr r0, _02088884 ; =SDK_OVERLAY_MODULE_13_ID
mov r1, #0x2
bx r3
.balign 4
_02088880: .word HandleLoadOverlay
-_02088884: .word 0x0000000D
+_02088884: .word SDK_OVERLAY_MODULE_13_ID
thumb_func_start FUN_02088888
FUN_02088888: ; 0x02088888
ldr r3, _02088890 ; =UnloadOverlayByID
- ldr r0, _02088894 ; =0x0000000D
+ ldr r0, _02088894 ; =SDK_OVERLAY_MODULE_13_ID
bx r3
nop
_02088890: .word UnloadOverlayByID
-_02088894: .word 0x0000000D
+_02088894: .word SDK_OVERLAY_MODULE_13_ID
thumb_func_start FUN_02088898
FUN_02088898: ; 0x02088898
@@ -137800,32 +137800,32 @@ FUN_02088898: ; 0x02088898
bl FUN_02088858
bl FUN_02088878
add r0, r4, #0x0
- bl FUN_02211E60
+ bl MOD07_02211E60
bl FUN_02088888
bl FUN_02088868
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
pop {r4, pc}
.balign 4
thumb_func_start FUN_020888BC
FUN_020888BC: ; 0x020888BC
ldr r3, _020888C4 ; =HandleLoadOverlay
- ldr r0, _020888C8 ; =0x0000004F
+ ldr r0, _020888C8 ; =SDK_OVERLAY_MODULE_79_ID
mov r1, #0x2
bx r3
.balign 4
_020888C4: .word HandleLoadOverlay
-_020888C8: .word 0x0000004F
+_020888C8: .word SDK_OVERLAY_MODULE_79_ID
thumb_func_start FUN_020888CC
FUN_020888CC: ; 0x020888CC
ldr r3, _020888D4 ; =UnloadOverlayByID
- ldr r0, _020888D8 ; =0x0000004F
+ ldr r0, _020888D8 ; =SDK_OVERLAY_MODULE_79_ID
bx r3
nop
_020888D4: .word UnloadOverlayByID
-_020888D8: .word 0x0000004F
+_020888D8: .word SDK_OVERLAY_MODULE_79_ID
thumb_func_start FUN_020888DC
FUN_020888DC: ; 0x020888DC
@@ -137844,7 +137844,7 @@ FUN_020888DC: ; 0x020888DC
mov r0, #0x31
bl FUN_020168D0
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
mov r0, #0x1
pop {r4, pc}
.balign 4
@@ -137861,7 +137861,7 @@ FUN_0208890C: ; 0x0208890C
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r5, [r4, #0xc]
add r0, r5, #0x0
bl FUN_02028048
@@ -137950,7 +137950,7 @@ FUN_020889B0: ; 0x020889B0
mov r1, #0x0
mov r2, #0x24
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x37
str r0, [r4, #0x0]
str r5, [r4, #0x10]
@@ -138050,7 +138050,7 @@ FUN_02088A78: ; 0x02088A78
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x24
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_0200627C
add r0, r6, #0x0
@@ -138221,7 +138221,7 @@ _02088BBA:
add r2, r0, #0x0
ldr r1, [r4, #0x18]
add r0, r5, #0x0
- blx memcpy
+ bl memcpy
ldr r0, [r4, #0x18]
bl FUN_02016A18
mov r0, #0x0
@@ -139359,7 +139359,7 @@ FUN_020893F0: ; 0x020893F0
bhs _0208940A
add r0, r1, #0x0
ldr r1, _02089410 ; =0x021C5C58
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
ldr r0, _02089414 ; =0x02106154
str r4, [r0, #0x0]
pop {r4, pc}
@@ -139382,7 +139382,7 @@ FUN_02089418: ; 0x02089418
cmp r0, r3
bne _02089438
ldr r0, _02089440 ; =0x021C5C58
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
mov r0, #0x1
pop {r3, pc}
_02089434:
@@ -139404,7 +139404,7 @@ FUN_02089444: ; 0x02089444
bhs _0208945E
add r0, r1, #0x0
ldr r1, _02089464 ; =0x021C5C58
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
ldr r0, _02089468 ; =0x02106154
str r4, [r0, #0x0]
pop {r4, pc}
@@ -139427,7 +139427,7 @@ FUN_0208946C: ; 0x0208946C
cmp r0, r3
bne _0208948C
ldr r0, _02089494 ; =0x021C5C58
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
mov r0, #0x1
pop {r3, pc}
_02089488:
@@ -139455,7 +139455,7 @@ FUN_02089498: ; 0x02089498
mov r1, #0x0
mov r2, #0x38
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
@@ -139604,7 +139604,7 @@ FUN_020895F0: ; 0x020895F0
add r0, r4, #0x0
bl FUN_020168D0
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
mov r0, #0x1
pop {r3-r5, pc}
@@ -140031,7 +140031,7 @@ FUN_02089960: ; 0x02089960
mov r1, #0x0
mov r2, #0x3c
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
@@ -140127,13 +140127,13 @@ FUN_02089A40: ; 0x02089A40
bl FUN_0200627C
add r0, r4, #0x0
bl FUN_020168D0
- ldr r0, _02089A64 ; =0x00000053
+ ldr r0, _02089A64 ; =SDK_OVERLAY_MODULE_83_ID
ldr r1, _02089A68 ; =0x0223A360
bl FUN_02000E7C
mov r0, #0x1
pop {r3-r5, pc}
nop
-_02089A64: .word 0x00000053
+_02089A64: .word SDK_OVERLAY_MODULE_83_ID
_02089A68: .word 0x0223A360
thumb_func_start FUN_02089A6C
@@ -140667,7 +140667,7 @@ _02089EE4:
bl FUN_02000FE8
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _02089EE4
nop
_02089EF4: .word 0xFFFFE0FF
@@ -140828,7 +140828,7 @@ _0208A078:
bl FUN_02000FE8
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208A078
nop
_0208A088: .word 0xFFFFE0FF
@@ -140997,7 +140997,7 @@ _0208A21A:
bl FUN_02000FE8
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208A21A
.balign 4
_0208A228: .word 0xFFFFE0FF
@@ -141083,7 +141083,7 @@ FUN_0208A2C4: ; 0x0208A2C4
cmp r0, #0x0
beq _0208A2F6
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
ldr r1, _0208A2F8 ; =0x0223D4AD
add r0, r5, #0x0
add r2, r4, #0x0
@@ -141406,7 +141406,7 @@ _0208A566:
cmp r0, #0x0
beq _0208A5B0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x5
str r0, [r4, #0x54]
b _0208A6C8
@@ -141447,7 +141447,7 @@ _0208A5BE:
cmp r0, #0x0
beq _0208A6C8
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x8
str r0, [r4, #0x54]
b _0208A6C8
@@ -141956,15 +141956,15 @@ _0208A9C6:
mov r1, #0x1
str r1, [r0, #0x0]
mov r0, #0x0
- blx OS_GetInitArenaHi
+ bl OS_GetInitArenaHi
add r1, r0, #0x0
mov r0, #0x0
- blx OS_SetArenaHi
+ bl OS_SetArenaHi
mov r0, #0x0
- blx OS_GetInitArenaLo
+ bl OS_GetInitArenaLo
add r1, r0, #0x0
mov r0, #0x0
- blx OS_SetArenaLo
+ bl OS_SetArenaLo
mov r1, #0x1
ldr r0, _0208ABCC ; =0x020FF4A4
add r2, r1, #0x0
@@ -141977,12 +141977,12 @@ _0208A9C6:
mov r1, #0x0
bl FUN_0200E3A0
mov r0, #0x1
- blx OS_DisableIrqMask
+ bl OS_DisableIrqMask
ldr r1, _0208ABD0 ; =FUN_0208A998
mov r0, #0x1
- blx OS_SetIrqFunction
+ bl OS_SetIrqFunction
mov r0, #0x1
- blx OS_EnableIrqMask
+ bl OS_EnableIrqMask
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F10
@@ -142122,7 +142122,7 @@ _0208AB58:
bne _0208AB72
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208AB58
_0208AB72:
ldr r5, _0208AC04 ; =0x04000130
@@ -142143,7 +142143,7 @@ _0208AB7A:
bne _0208AB9C
mov r0, #0x1
add r1, r0, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208AB7A
_0208AB9C:
ldr r1, _0208AC10 ; =0x00007FFF
@@ -142159,7 +142159,7 @@ _0208AB9C:
ldr r0, [sp, #0x10]
bl FUN_02016A18
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
_0208ABC4:
add sp, #0x24
pop {r4-r7, pc}
diff --git a/arm9/asm/unk_0208AC14.s b/arm9/asm/unk_0208AC14.s
index e2ac3396..38ad538a 100644
--- a/arm9/asm/unk_0208AC14.s
+++ b/arm9/asm/unk_0208AC14.s
@@ -1950,7 +1950,7 @@ _0208C778:
_0208C79C:
add r0, sp, #0x60
mov r3, r2
- blx MTX_Scale43_
+ bl MTX_Scale43_
add r0, sp, #0x30
add r1, sp, #0x60
add r2, sp, #0x0
@@ -2253,7 +2253,7 @@ _0208CBF4:
_0208CC18:
add r0, sp, #0x60
mov r3, r2
- blx MTX_Scale43_
+ bl MTX_Scale43_
add r0, sp, #0x60
add r1, sp, #0x30
add r2, sp, #0x0
@@ -2479,7 +2479,7 @@ _0208CF4C:
_0208CF70:
add r0, sp, #0x60
mov r3, r2
- blx MTX_Scale43_
+ bl MTX_Scale43_
add r0, sp, #0x30
add r1, sp, #0x60
add r2, sp, #0x0
@@ -2703,7 +2703,7 @@ _0208D29C:
_0208D2C0:
add r0, sp, #0x60
mov r3, r2
- blx MTX_Scale43_
+ bl MTX_Scale43_
add r0, sp, #0x60
add r1, sp, #0x30
add r2, sp, #0x0
@@ -6273,7 +6273,7 @@ _020907AC:
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r12]
ldrsh r2, [r3, r2]
- blx MTX_RotX33_
+ bl MTX_RotX33_
b _02090838
_020907DC:
ldrh r1, [r0, #0x0]
@@ -6286,7 +6286,7 @@ _020907DC:
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r12]
ldrsh r2, [r3, r2]
- blx MTX_RotY33_
+ bl MTX_RotY33_
b _02090838
_0209080C:
ldrh r1, [r0, #0x0]
@@ -6299,7 +6299,7 @@ _0209080C:
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r12]
ldrsh r2, [r3, r2]
- blx MTX_RotZ33_
+ bl MTX_RotZ33_
_02090838:
add r0, r4, #0x8
add r1, sp, #0x0
@@ -6894,37 +6894,3 @@ _02091030: .word 0x04000243
_02091034: .word FUN_02090BBC
_02091038: .word FUN_02090BB8
_0209103C: .word 0x021C8C68
-
- arm_func_start FUN_02091040
-FUN_02091040: ; 0x02091040
- ldr r3, _02091054 ; =0x021C8C70
- ldr r2, _02091058 ; =0x021C8C74
- str r0, [r3, #0x0]
- str r1, [r2, #0x0]
- bx lr
- .balign 4
-_02091054: .word 0x021C8C70
-_02091058: .word 0x021C8C74
-
- arm_func_start FUN_0209105C
-FUN_0209105C: ; 0x0209105C
- stmdb sp!, {lr}
- sub sp, sp, #0x4
- ldr r1, _020910A0 ; =0x021C8C74
- mov r2, r0
- ldr r1, [r1, #0x0]
- cmp r1, #0x0
- beq _02091088
- blx r1
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
-_02091088:
- mov r0, #0x0
- mvn r1, #0x0
- bl OS_FreeToHeap
- add sp, sp, #0x4
- ldmia sp!, {lr}
- bx lr
- .balign 4
-_020910A0: .word 0x021C8C74
diff --git a/arm9/asm/unk_020910EC.s b/arm9/asm/unk_020910EC.s
index 2108f3de..88bd5a14 100644
--- a/arm9/asm/unk_020910EC.s
+++ b/arm9/asm/unk_020910EC.s
@@ -4877,7 +4877,7 @@ _02095460:
cmp r0, #0x1
beq _02095488
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _02095460
_02095488:
mov r0, #0x1
@@ -4943,7 +4943,7 @@ _0209552C:
ldmeqia sp!, {r4-r8,pc}
_02095548: ; 0x02095548
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _0209552C
_02095554: ; 0x02095554
ldmia sp!, {r4-r8,pc}
@@ -4984,7 +4984,7 @@ _020955B0:
cmp r0, #0x1
beq _020955D8
mov r0, r7
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _020955B0
_020955D8:
mov r0, r4
@@ -5341,7 +5341,7 @@ _02095A74:
b _0209574C
_02095A7C:
ldr r0, [sp, #0xbc]
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _0209574C
_02095A88:
add sp, sp, #0xc4
@@ -29496,7 +29496,7 @@ _020AA144:
ldr r2, [r6, #0x0]
str r3, [r7, #0x8cc]
and r0, r0, #0xff
- bl FUN_021EAE90
+ bl MOD04_021EAE90
ldr r0, [r7, #0x8cc]
cmp r0, #0x0
bne _020AA1A0
@@ -32194,7 +32194,7 @@ FUN_020AC554:
_020AC57C:
ldrb r0, [r0, #0x4]
mov r2, #0x10
- bl FUN_021EB044
+ bl MOD04_021EB044
_020AC588: ; 0x020AC588
cmp r0, #0x0
addeq sp, sp, #0x4
@@ -32274,7 +32274,7 @@ _020AC654:
mov r1, r10
mov r2, r6
strb r8, [r10, #0x9]
- bl FUN_021EB044
+ bl MOD04_021EB044
_020AC68C: ; 0x020AC68C
cmp r0, #0x0
addne r9, r9, #0x1
diff --git a/arm9/asm/unk_020AF030.s b/arm9/asm/unk_020AF030.s
index 3851b8c7..a107adc3 100644
--- a/arm9/asm/unk_020AF030.s
+++ b/arm9/asm/unk_020AF030.s
@@ -13216,7 +13216,7 @@ _020BA188:
str r1, [sp, #0x0]
ldrsh r1, [r5, #0x2]
str r1, [sp, #0x4]
- blx MI_Zero36B
+ bl MI_Zero36B
ldrh r0, [r4, #0x0]
add r1, r6, r11, lsl #0x2
add r5, r5, #0x4
@@ -17209,7 +17209,7 @@ FUN_020BD850: ; 0x020BD850
mov r5, r2, asr #0x4
ldrsh r7, [r1, #0x0]
ldrsh r6, [r1, #0x2]
- blx MI_Zero36B
+ bl MI_Zero36B
ldrh r0, [r4, #0x0]
add r1, r8, r5, lsl #0x2
ands r0, r0, #0x100
diff --git a/arm9/data/bss.s b/arm9/data/bss.s
new file mode 100644
index 00000000..84594abc
--- /dev/null
+++ b/arm9/data/bss.s
@@ -0,0 +1,681 @@
+ .section .bss
+
+ .global UNK_02106FA0
+ .global gBacklightTop
+ .global gBacklightTop_2
+UNK_02106FA0: ; 0x02106FA0
+gBacklightTop: ; 0x02106FA0
+gBacklightTop_2: ; 0x02106FA0
+ .space 0x18
+
+ .global UNK_02106FB8
+UNK_02106FB8: ; 0x02106FB8
+ .space 0xc
+
+ .global UNK_02106FC4
+UNK_02106FC4: ; 0x02106FC4
+ .space 0x4
+
+ .global UNK_02106FC8
+UNK_02106FC8: ; 0x02106FC8
+ .space 0x4
+
+ .global UNK_02106FCC
+UNK_02106FCC: ; 0x02106FCC
+ .space 0xa4
+
+ .global UNK_02107070
+UNK_02107070: ; 0x02107070
+ .space 0x8
+
+ .global UNK_02107078
+UNK_02107078: ; 0x02107078
+ .space 0x688
+
+ .global UNK_02107700
+UNK_02107700: ; 0x02107700
+ .space 0x24
+
+ .global UNK_02107724
+UNK_02107724: ; 0x02107724
+ .space 0x891e
+
+ .global UNK_02110042
+UNK_02110042: ; 0x02110042
+ .space 0xc0
+
+ .global UNK_02110102
+UNK_02110102: ; 0x02110102
+ .space 0x1d9
+
+ .global UNK_021102DB
+UNK_021102DB: ; 0x021102DB
+ .space 0xc27
+
+ .global UNK_02110F02
+UNK_02110F02: ; 0x02110F02
+ .space 0x6906
+
+ .global UNK_02117808
+UNK_02117808: ; 0x02117808
+ .space 0x883b
+
+ .global UNK_02120043
+UNK_02120043: ; 0x02120043
+ .space 0xe4
+
+ .global UNK_02120127
+UNK_02120127: ; 0x02120127
+ .space 0x47
+
+ .global UNK_0212016E
+UNK_0212016E: ; 0x0212016E
+ .space 0xa0
+
+ .global UNK_0212020E
+UNK_0212020E: ; 0x0212020E
+ .space 0x3
+
+ .global UNK_02120211
+UNK_02120211: ; 0x02120211
+ .space 0x1632
+
+ .global UNK_02121843
+UNK_02121843: ; 0x02121843
+ .space 0x26
+
+ .global UNK_02121869
+UNK_02121869: ; 0x02121869
+ .space 0xc2
+
+ .global UNK_0212192B
+UNK_0212192B: ; 0x0212192B
+ .space 0x2d6
+
+ .global UNK_02121C01
+UNK_02121C01: ; 0x02121C01
+ .space 0x1d
+
+ .global UNK_02121C1E
+UNK_02121C1E: ; 0x02121C1E
+ .space 0x1b
+
+ .global UNK_02121C39
+UNK_02121C39: ; 0x02121C39
+ .space 0x4c7
+
+ .global UNK_02122100
+UNK_02122100: ; 0x02122100
+ .space 0x3
+
+ .global UNK_02122103
+UNK_02122103: ; 0x02122103
+ .space 0xff
+
+ .global UNK_02122202
+UNK_02122202: ; 0x02122202
+ .space 0x1
+
+ .global UNK_02122203
+UNK_02122203: ; 0x02122203
+ .space 0xc
+
+ .global UNK_0212220F
+UNK_0212220F: ; 0x0212220F
+ .space 0x30
+
+ .global UNK_0212223F
+UNK_0212223F: ; 0x0212223F
+ .space 0xf21
+
+ .global UNK_02123160
+UNK_02123160: ; 0x02123160
+ .space 0x26c8
+
+ .global UNK_02125828
+UNK_02125828: ; 0x02125828
+ .space 0x39
+
+ .global UNK_02125861
+UNK_02125861: ; 0x02125861
+ .space 0x10df
+
+ .global UNK_02126940
+UNK_02126940: ; 0x02126940
+ .space 0xec9
+
+ .global UNK_02127809
+UNK_02127809: ; 0x02127809
+ .space 0xd7
+
+ .global UNK_021278E0
+UNK_021278E0: ; 0x021278E0
+ .space 0x1821
+
+ .global UNK_02129101
+UNK_02129101: ; 0x02129101
+ .space 0x2
+
+ .global UNK_02129103
+UNK_02129103: ; 0x02129103
+ .space 0x6f41
+
+ .global UNK_02130044
+UNK_02130044: ; 0x02130044
+ .space 0xed
+
+ .global UNK_02130131
+UNK_02130131: ; 0x02130131
+ .space 0x243
+
+ .global UNK_02130374
+UNK_02130374: ; 0x02130374
+ .space 0xfcd1
+
+ .global UNK_02140045
+UNK_02140045: ; 0x02140045
+ .space 0xe3
+
+ .global UNK_02140128
+UNK_02140128: ; 0x02140128
+ .space 0xeb
+
+ .global UNK_02140213
+UNK_02140213: ; 0x02140213
+ .space 0x14b
+
+ .global UNK_0214035E
+UNK_0214035E: ; 0x0214035E
+ .space 0xfce8
+
+ .global UNK_02150046
+UNK_02150046: ; 0x02150046
+ .space 0x252
+
+ .global UNK_02150298
+UNK_02150298: ; 0x02150298
+ .space 0xd45
+
+ .global UNK_02150FDD
+UNK_02150FDD: ; 0x02150FDD
+ .space 0xe046
+
+ .global UNK_0215F023
+UNK_0215F023: ; 0x0215F023
+ .space 0x1024
+
+ .global UNK_02160047
+UNK_02160047: ; 0x02160047
+ .space 0xe2
+
+ .global UNK_02160129
+UNK_02160129: ; 0x02160129
+ .space 0x1d
+
+ .global UNK_02160146
+UNK_02160146: ; 0x02160146
+ .space 0xd0
+
+ .global UNK_02160216
+UNK_02160216: ; 0x02160216
+ .space 0x42
+
+ .global UNK_02160258
+UNK_02160258: ; 0x02160258
+ .space 0x4237
+
+ .global UNK_0216448F
+UNK_0216448F: ; 0x0216448F
+ .space 0xbbb9
+
+ .global UNK_02170048
+UNK_02170048: ; 0x02170048
+ .space 0x2ce
+
+ .global UNK_02170316
+UNK_02170316: ; 0x02170316
+ .space 0xfd33
+
+ .global UNK_02180049
+UNK_02180049: ; 0x02180049
+ .space 0xe2
+
+ .global UNK_0218012B
+UNK_0218012B: ; 0x0218012B
+ .space 0x2d1
+
+ .global UNK_021803FC
+UNK_021803FC: ; 0x021803FC
+ .space 0x3c05
+
+ .global UNK_02184001
+UNK_02184001: ; 0x02184001
+ .space 0xc049
+
+ .global UNK_0219004A
+UNK_0219004A: ; 0x0219004A
+ .space 0x31e
+
+ .global UNK_02190368
+UNK_02190368: ; 0x02190368
+ .space 0x173
+
+ .global UNK_021904DB
+UNK_021904DB: ; 0x021904DB
+ .space 0xfb70
+
+ .global UNK_021A004B
+UNK_021A004B: ; 0x021A004B
+ .space 0xe1
+
+ .global UNK_021A012C
+UNK_021A012C: ; 0x021A012C
+ .space 0xcc
+
+ .global UNK_021A01F8
+UNK_021A01F8: ; 0x021A01F8
+ .space 0x1a
+
+ .global UNK_021A0212
+UNK_021A0212: ; 0x021A0212
+ .space 0x2
+
+ .global UNK_021A0214
+UNK_021A0214: ; 0x021A0214
+ .space 0x2
+
+ .global UNK_021A0216
+UNK_021A0216: ; 0x021A0216
+ .space 0x2a
+
+ .global UNK_021A0240
+UNK_021A0240: ; 0x021A0240
+ .space 0xfe0c
+
+ .global UNK_021B004C
+UNK_021B004C: ; 0x021B004C
+ .space 0x18c
+
+ .global UNK_021B01D8
+UNK_021B01D8: ; 0x021B01D8
+ .space 0x61
+
+ .global UNK_021B0239
+UNK_021B0239: ; 0x021B0239
+ .space 0xda3
+
+ .global UNK_021B0FDC
+UNK_021B0FDC: ; 0x021B0FDC
+ .space 0xc29
+
+ .global UNK_021B1C05
+UNK_021B1C05: ; 0x021B1C05
+ .space 0x6fe
+
+ .global UNK_021B2303
+UNK_021B2303: ; 0x021B2303
+ .space 0xfc
+
+ .global UNK_021B23FF
+UNK_021B23FF: ; 0x021B23FF
+ .space 0x2516
+
+ .global UNK_021B4915
+UNK_021B4915: ; 0x021B4915
+ .space 0x1ef0
+
+ .global UNK_021B6805
+UNK_021B6805: ; 0x021B6805
+ .space 0x29fc
+
+ .global UNK_021B9201
+UNK_021B9201: ; 0x021B9201
+ .space 0x5ff
+
+ .global UNK_021B9800
+UNK_021B9800: ; 0x021B9800
+ .space 0x5824
+
+ .global UNK_021BF024
+UNK_021BF024: ; 0x021BF024
+ .space 0x1029
+
+ .global UNK_021C004D
+UNK_021C004D: ; 0x021C004D
+ .space 0xe0
+
+ .global UNK_021C012D
+UNK_021C012D: ; 0x021C012D
+ .space 0xd7
+
+ .global UNK_021C0204
+UNK_021C0204: ; 0x021C0204
+ .space 0x2
+
+ .global UNK_021C0206
+UNK_021C0206: ; 0x021C0206
+ .space 0x33a
+
+ .global UNK_021C0540
+UNK_021C0540: ; 0x021C0540
+ .space 0x3898
+
+ .global UNK_021C3DD8
+UNK_021C3DD8: ; 0x021C3DD8
+ .space 0x8
+
+ .global UNK_021C3DE0
+UNK_021C3DE0: ; 0x021C3DE0
+ .space 0x7d0
+
+ .global gLoadedOverlays
+gLoadedOverlays: ; 0x021C45B0
+ .space 0x40
+
+ .global UNK_021C45F0
+UNK_021C45F0: ; 0x021C45F0
+ .space 0x40
+
+ .global UNK_021C4630
+UNK_021C4630: ; 0x021C4630
+ .space 0x40
+
+ .global UNK_021C4670
+UNK_021C4670: ; 0x021C4670
+ .space 0x4
+
+ .global UNK_021C4674
+UNK_021C4674: ; 0x021C4674
+ .space 0x20
+
+ .global UNK_021C4694
+UNK_021C4694: ; 0x021C4694
+ .space 0x20
+
+ .global UNK_021C46B4
+UNK_021C46B4: ; 0x021C46B4
+ .space 0x4
+
+ .global UNK_021C46B8
+UNK_021C46B8: ; 0x021C46B8
+ .space 0x4
+
+ .global UNK_021C46BC
+UNK_021C46BC: ; 0x021C46BC
+ .space 0xc
+
+ .global UNK_021C46C8
+UNK_021C46C8: ; 0x021C46C8
+ .space 0x30
+
+ .global UNK_021C46F8
+UNK_021C46F8: ; 0x021C46F8
+ .space 0x30
+
+ .global UNK_021C4728
+UNK_021C4728: ; 0x021C4728
+ .space 0x18
+
+ .global UNK_021C4740
+UNK_021C4740: ; 0x021C4740
+ .space 0xb4
+
+ .global UNK_021C47F4
+UNK_021C47F4: ; 0x021C47F4
+ .space 0x14
+
+ .global UNK_021C4808
+UNK_021C4808: ; 0x021C4808
+ .space 0x10
+
+ .global UNK_021C4818
+UNK_021C4818: ; 0x021C4818
+ .space 0x10
+
+ .global UNK_021C4828
+UNK_021C4828: ; 0x021C4828
+ .space 0x28
+
+ .global UNK_021C4850
+UNK_021C4850: ; 0x021C4850
+ .space 0x8
+
+ .global UNK_021C4858
+UNK_021C4858: ; 0x021C4858
+ .space 0x40
+
+ .global UNK_021C4898
+UNK_021C4898: ; 0x021C4898
+ .space 0x20
+
+ .global gUnknown21C48B8
+gUnknown21C48B8: ; 0x021C48B8
+ .space 0x40
+
+ .global UNK_021C48F8
+UNK_021C48F8: ; 0x021C48F8
+ .space 0x20
+
+ .global gUnk021C4918
+gUnk021C4918: ; 0x021C4918
+ .space 0x10
+
+ .global UNK_021C4928
+UNK_021C4928: ; 0x021C4928
+ .space 0x4
+
+ .global UNK_021C492C
+UNK_021C492C: ; 0x021C492C
+ .space 0x3f4
+
+ .global UNK_021C4D20
+UNK_021C4D20: ; 0x021C4D20
+ .space 0x8
+
+ .global UNK_021C4D28
+UNK_021C4D28: ; 0x021C4D28
+ .space 0x1c
+
+ .global UNK_021C4D44
+UNK_021C4D44: ; 0x021C4D44
+ .space 0x4
+
+ .global UNK_021C4D48
+UNK_021C4D48: ; 0x021C4D48
+ .space 0x4
+
+ .global UNK_021C4D4C
+UNK_021C4D4C: ; 0x021C4D4C
+ .space 0x4
+
+ .global UNK_021C4D50
+UNK_021C4D50: ; 0x021C4D50
+ .space 0x5f8
+
+ .global UNK_021C5348
+UNK_021C5348: ; 0x021C5348
+ .space 0x380
+
+ .global UNK_021C56C8
+UNK_021C56C8: ; 0x021C56C8
+ .space 0x44
+
+ .global UNK_021C570C
+UNK_021C570C: ; 0x021C570C
+ .space 0x8
+
+ .global UNK_021C5714
+UNK_021C5714: ; 0x021C5714
+ .space 0x20
+
+ .global UNK_021C5734
+UNK_021C5734: ; 0x021C5734
+ .space 0x200
+
+ .global UNK_021C5934
+UNK_021C5934: ; 0x021C5934
+ .space 0x4
+
+ .global UNK_021C5938
+UNK_021C5938: ; 0x021C5938
+ .space 0xc
+
+ .global UNK_021C5944
+UNK_021C5944: ; 0x021C5944
+ .space 0x34
+
+ .global UNK_021C5978
+UNK_021C5978: ; 0x021C5978
+ .space 0x1c
+
+ .global UNK_021C5994
+UNK_021C5994: ; 0x021C5994
+ .space 0x4
+
+ .global UNK_021C5998
+UNK_021C5998: ; 0x021C5998
+ .space 0x4
+
+ .global UNK_021C599C
+UNK_021C599C: ; 0x021C599C
+ .space 0x8
+
+ .global UNK_021C59A4
+UNK_021C59A4: ; 0x021C59A4
+ .space 0x4
+
+ .global UNK_021C59A8
+UNK_021C59A8: ; 0x021C59A8
+ .space 0x8
+
+ .global UNK_021C59B0
+UNK_021C59B0: ; 0x021C59B0
+ .space 0xc
+
+ .global UNK_021C59BC
+UNK_021C59BC: ; 0x021C59BC
+ .space 0xc
+
+ .global UNK_021C59C8
+UNK_021C59C8: ; 0x021C59C8
+ .space 0x8
+
+ .global UNK_021C59D0
+UNK_021C59D0: ; 0x021C59D0
+ .space 0x4
+
+ .global UNK_021C59D4
+UNK_021C59D4: ; 0x021C59D4
+ .space 0x4
+
+ .global UNK_021C59D8
+UNK_021C59D8: ; 0x021C59D8
+ .space 0x8
+
+ .global UNK_021C59E0
+UNK_021C59E0: ; 0x021C59E0
+ .space 0x4
+
+ .global UNK_021C59E4
+UNK_021C59E4: ; 0x021C59E4
+ .space 0x4
+
+ .global UNK_021C59E8
+UNK_021C59E8: ; 0x021C59E8
+ .space 0xc
+
+ .global UNK_021C59F4
+UNK_021C59F4: ; 0x021C59F4
+ .space 0x8
+
+ .global UNK_021C59FC
+UNK_021C59FC: ; 0x021C59FC
+ .space 0x4
+
+ .global UNK_021C5A00
+UNK_021C5A00: ; 0x021C5A00
+ .space 0x4
+
+ .global UNK_021C5A04
+UNK_021C5A04: ; 0x021C5A04
+ .space 0x4
+
+ .global UNK_021C5A08
+UNK_021C5A08: ; 0x021C5A08
+ .space 0x4
+
+ .global UNK_021C5A0C
+UNK_021C5A0C: ; 0x021C5A0C
+ .space 0x4
+
+ .global UNK_021C5A10
+UNK_021C5A10: ; 0x021C5A10
+ .space 0x4
+
+ .global UNK_021C5A14
+UNK_021C5A14: ; 0x021C5A14
+ .space 0x8
+
+ .global UNK_021C5A1C
+UNK_021C5A1C: ; 0x021C5A1C
+ .space 0x4c
+
+ .global UNK_021C5A68
+UNK_021C5A68: ; 0x021C5A68
+ .space 0x4
+
+ .global UNK_021C5A6C
+UNK_021C5A6C: ; 0x021C5A6C
+ .space 0x4
+
+ .global UNK_021C5A70
+UNK_021C5A70: ; 0x021C5A70
+ .space 0xc
+
+ .global UNK_021C5A7C
+UNK_021C5A7C: ; 0x021C5A7C
+ .space 0x40
+
+ .global UNK_021C5ABC
+UNK_021C5ABC: ; 0x021C5ABC
+ .space 0x4
+
+ .global UNK_021C5AC0
+UNK_021C5AC0: ; 0x021C5AC0
+ .space 0x4
+
+ .global UNK_021C5AC4
+UNK_021C5AC4: ; 0x021C5AC4
+ .space 0x190
+
+ .global UNK_021C5C54
+UNK_021C5C54: ; 0x021C5C54
+ .space 0x4
+
+ .global UNK_021C5C58
+UNK_021C5C58: ; 0x021C5C58
+ .space 0x3000
+
+ .global UNK_021C8C58
+UNK_021C8C58: ; 0x021C8C58
+ .space 0x4
+
+ .global UNK_021C8C5C
+UNK_021C8C5C: ; 0x021C8C5C
+ .space 0x4
+
+ .global UNK_021C8C60
+UNK_021C8C60: ; 0x021C8C60
+ .space 0x4
+
+ .global UNK_021C8C64
+UNK_021C8C64: ; 0x021C8C64
+ .space 0x4
+
+ .global UNK_021C8C68
+UNK_021C8C68: ; 0x021C8C68
+ .space 0x4
+
+ .global UNK_021C8C6C
+UNK_021C8C6C: ; 0x021C8C6C
+ .space 0x4
diff --git a/arm9/data/bss_2.s b/arm9/data/bss_2.s
new file mode 100644
index 00000000..5c9d538b
--- /dev/null
+++ b/arm9/data/bss_2.s
@@ -0,0 +1,1133 @@
+ .section .bss
+
+ .global UNK_021C8C78
+UNK_021C8C78: ; 0x021C8C78
+ .space 0x4
+
+ .global UNK_021C8C7C
+UNK_021C8C7C: ; 0x021C8C7C
+ .space 0x4
+
+ .global UNK_021C8C80
+UNK_021C8C80: ; 0x021C8C80
+ .space 0x4
+
+ .global UNK_021C8C84
+UNK_021C8C84: ; 0x021C8C84
+ .space 0x5
+
+ .global UNK_021C8C89
+UNK_021C8C89: ; 0x021C8C89
+ .space 0x1
+
+ .global UNK_021C8C8A
+UNK_021C8C8A: ; 0x021C8C8A
+ .space 0x4
+
+ .global UNK_021C8C8E
+UNK_021C8C8E: ; 0x021C8C8E
+ .space 0x2
+
+ .global UNK_021C8C90
+UNK_021C8C90: ; 0x021C8C90
+ .space 0x10
+
+ .global UNK_021C8CA0
+UNK_021C8CA0: ; 0x021C8CA0
+ .space 0x20
+
+ .global UNK_021C8CC0
+UNK_021C8CC0: ; 0x021C8CC0
+ .space 0x4
+
+ .global UNK_021C8CC4
+UNK_021C8CC4: ; 0x021C8CC4
+ .space 0x4
+
+ .global UNK_021C8CC8
+UNK_021C8CC8: ; 0x021C8CC8
+ .space 0x4
+
+ .global UNK_021C8CCC
+UNK_021C8CCC: ; 0x021C8CCC
+ .space 0x4
+
+ .global UNK_021C8CD0
+UNK_021C8CD0: ; 0x021C8CD0
+ .space 0x4
+
+ .global UNK_021C8CD4
+UNK_021C8CD4: ; 0x021C8CD4
+ .space 0x30
+
+ .global UNK_021C8D04
+UNK_021C8D04: ; 0x021C8D04
+ .space 0x4
+
+ .global UNK_021C8D08
+UNK_021C8D08: ; 0x021C8D08
+ .space 0x20
+
+ .global UNK_021C8D28
+UNK_021C8D28: ; 0x021C8D28
+ .space 0x8
+
+ .global UNK_021C8D30
+UNK_021C8D30: ; 0x021C8D30
+ .space 0x4
+
+ .global UNK_021C8D34
+UNK_021C8D34: ; 0x021C8D34
+ .space 0x4
+
+ .global UNK_021C8D38
+UNK_021C8D38: ; 0x021C8D38
+ .space 0x4
+
+ .global UNK_021C8D3C
+UNK_021C8D3C: ; 0x021C8D3C
+ .space 0x4
+
+ .global UNK_021C8D40
+UNK_021C8D40: ; 0x021C8D40
+ .space 0x4
+
+ .global UNK_021C8D44
+UNK_021C8D44: ; 0x021C8D44
+ .space 0x8
+
+ .global UNK_021C8D4C
+UNK_021C8D4C: ; 0x021C8D4C
+ .space 0x10
+
+ .global UNK_021C8D5C
+UNK_021C8D5C: ; 0x021C8D5C
+ .space 0x10
+
+ .global UNK_021C8D6C
+UNK_021C8D6C: ; 0x021C8D6C
+ .space 0x38
+
+ .global UNK_021C8DA4
+UNK_021C8DA4: ; 0x021C8DA4
+ .space 0x104
+
+ .global UNK_021C8EA8
+UNK_021C8EA8: ; 0x021C8EA8
+ .space 0x4
+
+ .global UNK_021C8EAC
+UNK_021C8EAC: ; 0x021C8EAC
+ .space 0x4
+
+ .global UNK_021C8EB0
+UNK_021C8EB0: ; 0x021C8EB0
+ .space 0x4
+
+ .global UNK_021C8EB4
+UNK_021C8EB4: ; 0x021C8EB4
+ .space 0x4
+
+ .global UNK_021C8EB8
+UNK_021C8EB8: ; 0x021C8EB8
+ .space 0x4
+
+ .global UNK_021C8EBC
+UNK_021C8EBC: ; 0x021C8EBC
+ .space 0x4
+
+ .global UNK_021C8EC0
+UNK_021C8EC0: ; 0x021C8EC0
+ .space 0x4
+
+ .global UNK_021C8EC4
+UNK_021C8EC4: ; 0x021C8EC4
+ .space 0x4
+
+ .global UNK_021C8EC8
+UNK_021C8EC8: ; 0x021C8EC8
+ .space 0x4
+
+ .global UNK_021C8ECC
+UNK_021C8ECC: ; 0x021C8ECC
+ .space 0x4
+
+ .global UNK_021C8ED0
+UNK_021C8ED0: ; 0x021C8ED0
+ .space 0x4
+
+ .global UNK_021C8ED4
+UNK_021C8ED4: ; 0x021C8ED4
+ .space 0x4
+
+ .global UNK_021C8ED8
+UNK_021C8ED8: ; 0x021C8ED8
+ .space 0x4
+
+ .global UNK_021C8EDC
+UNK_021C8EDC: ; 0x021C8EDC
+ .space 0x4
+
+ .global UNK_021C8EE0
+UNK_021C8EE0: ; 0x021C8EE0
+ .space 0x4
+
+ .global UNK_021C8EE4
+UNK_021C8EE4: ; 0x021C8EE4
+ .space 0x4
+
+ .global UNK_021C8EE8
+UNK_021C8EE8: ; 0x021C8EE8
+ .space 0x4
+
+ .global UNK_021C8EEC
+UNK_021C8EEC: ; 0x021C8EEC
+ .space 0x4
+
+ .global UNK_021C8EF0
+UNK_021C8EF0: ; 0x021C8EF0
+ .space 0x4
+
+ .global UNK_021C8EF4
+UNK_021C8EF4: ; 0x021C8EF4
+ .space 0x4
+
+ .global UNK_021C8EF8
+UNK_021C8EF8: ; 0x021C8EF8
+ .space 0x4
+
+ .global UNK_021C8EFC
+UNK_021C8EFC: ; 0x021C8EFC
+ .space 0x4
+
+ .global UNK_021C8F00
+UNK_021C8F00: ; 0x021C8F00
+ .space 0x4
+
+ .global UNK_021C8F04
+UNK_021C8F04: ; 0x021C8F04
+ .space 0x4
+
+ .global UNK_021C8F08
+UNK_021C8F08: ; 0x021C8F08
+ .space 0x4
+
+ .global UNK_021C8F0C
+UNK_021C8F0C: ; 0x021C8F0C
+ .space 0x4
+
+ .global UNK_021C8F10
+UNK_021C8F10: ; 0x021C8F10
+ .space 0x4
+
+ .global UNK_021C8F14
+UNK_021C8F14: ; 0x021C8F14
+ .space 0x8
+
+ .global UNK_021C8F1C
+UNK_021C8F1C: ; 0x021C8F1C
+ .space 0x8
+
+ .global UNK_021C8F24
+UNK_021C8F24: ; 0x021C8F24
+ .space 0x3a
+
+ .global UNK_021C8F5E
+UNK_021C8F5E: ; 0x021C8F5E
+ .space 0x1a
+
+ .global UNK_021C8F78
+UNK_021C8F78: ; 0x021C8F78
+ .space 0xa
+
+ .global UNK_021C8F82
+UNK_021C8F82: ; 0x021C8F82
+ .space 0x56
+
+ .global UNK_021C8FD8
+UNK_021C8FD8: ; 0x021C8FD8
+ .space 0x64
+
+ .global UNK_021C903C
+UNK_021C903C: ; 0x021C903C
+ .space 0x64
+
+ .global UNK_021C90A0
+UNK_021C90A0: ; 0x021C90A0
+ .space 0xc0
+
+ .global UNK_021C9160
+UNK_021C9160: ; 0x021C9160
+ .space 0xc0
+
+ .global UNK_021C9220
+UNK_021C9220: ; 0x021C9220
+ .space 0x2a
+
+ .global UNK_021C924A
+UNK_021C924A: ; 0x021C924A
+ .space 0x156
+
+ .global UNK_021C93A0
+UNK_021C93A0: ; 0x021C93A0
+ .space 0x180
+
+ .global UNK_021C9520
+UNK_021C9520: ; 0x021C9520
+ .space 0x9c0
+
+ .global UNK_021C9EE0
+UNK_021C9EE0: ; 0x021C9EE0
+ .space 0x800
+
+ .global UNK_021CA6E0
+UNK_021CA6E0: ; 0x021CA6E0
+ .space 0x4
+
+ .global UNK_021CA6E4
+UNK_021CA6E4: ; 0x021CA6E4
+ .space 0x4
+
+ .global UNK_021CA6E8
+UNK_021CA6E8: ; 0x021CA6E8
+ .space 0x13
+
+ .global UNK_021CA6FB
+UNK_021CA6FB: ; 0x021CA6FB
+ .space 0x1
+
+ .global UNK_021CA6FC
+UNK_021CA6FC: ; 0x021CA6FC
+ .space 0x170
+
+ .global UNK_021CA86C
+UNK_021CA86C: ; 0x021CA86C
+ .space 0x4
+
+ .global UNK_021CA870
+UNK_021CA870: ; 0x021CA870
+ .space 0x4
+
+ .global UNK_021CA874
+UNK_021CA874: ; 0x021CA874
+ .space 0x8
+
+ .global UNK_021CA87C
+UNK_021CA87C: ; 0x021CA87C
+ .space 0x20
+
+ .global UNK_021CA89C
+UNK_021CA89C: ; 0x021CA89C
+ .space 0x4
+
+ .global UNK_021CA8A0
+UNK_021CA8A0: ; 0x021CA8A0
+ .space 0x10
+
+ .global UNK_021CA8B0
+UNK_021CA8B0: ; 0x021CA8B0
+ .space 0x4
+
+ .global UNK_021CA8B4
+UNK_021CA8B4: ; 0x021CA8B4
+ .space 0x4
+
+ .global UNK_021CA8B8
+UNK_021CA8B8: ; 0x021CA8B8
+ .space 0x4
+
+ .global UNK_021CA8BC
+UNK_021CA8BC: ; 0x021CA8BC
+ .space 0x4
+
+ .global UNK_021CA8C0
+UNK_021CA8C0: ; 0x021CA8C0
+ .space 0x4
+
+ .global UNK_021CA8C4
+UNK_021CA8C4: ; 0x021CA8C4
+ .space 0x4
+
+ .global UNK_021CA8C8
+UNK_021CA8C8: ; 0x021CA8C8
+ .space 0x4
+
+ .global UNK_021CA8CC
+UNK_021CA8CC: ; 0x021CA8CC
+ .space 0x4
+
+ .global UNK_021CA8D0
+UNK_021CA8D0: ; 0x021CA8D0
+ .space 0x4
+
+ .global UNK_021CA8D4
+UNK_021CA8D4: ; 0x021CA8D4
+ .space 0x4
+
+ .global UNK_021CA8D8
+UNK_021CA8D8: ; 0x021CA8D8
+ .space 0x4
+
+ .global UNK_021CA8DC
+UNK_021CA8DC: ; 0x021CA8DC
+ .space 0xc
+
+ .global UNK_021CA8E8
+UNK_021CA8E8: ; 0x021CA8E8
+ .space 0x1bc
+
+ .global UNK_021CAAA4
+UNK_021CAAA4: ; 0x021CAAA4
+ .space 0x45c
+
+ .global UNK_021CAF00
+UNK_021CAF00: ; 0x021CAF00
+ .space 0x8d8
+
+ .global UNK_021CB7D8
+UNK_021CB7D8: ; 0x021CB7D8
+ .space 0x4
+
+ .global UNK_021CB7DC
+UNK_021CB7DC: ; 0x021CB7DC
+ .space 0x4
+
+ .global UNK_021CB7E0
+UNK_021CB7E0: ; 0x021CB7E0
+ .space 0xc
+
+ .global UNK_021CB7EC
+UNK_021CB7EC: ; 0x021CB7EC
+ .space 0x4
+
+ .global UNK_021CB7F0
+UNK_021CB7F0: ; 0x021CB7F0
+ .space 0xc
+
+ .global UNK_021CB7FC
+UNK_021CB7FC: ; 0x021CB7FC
+ .space 0xc
+
+ .global UNK_021CB808
+UNK_021CB808: ; 0x021CB808
+ .space 0xc
+
+ .global UNK_021CB814
+UNK_021CB814: ; 0x021CB814
+ .space 0x4
+
+ .global UNK_021CB818
+UNK_021CB818: ; 0x021CB818
+ .space 0x4
+
+ .global UNK_021CB81C
+UNK_021CB81C: ; 0x021CB81C
+ .space 0x8
+
+ .global UNK_021CB824
+UNK_021CB824: ; 0x021CB824
+ .space 0x14
+
+ .global UNK_021CB838
+UNK_021CB838: ; 0x021CB838
+ .space 0x18
+
+ .global UNK_021CB850
+UNK_021CB850: ; 0x021CB850
+ .space 0x18
+
+ .global UNK_021CB868
+UNK_021CB868: ; 0x021CB868
+ .space 0x4
+
+ .global UNK_021CB86C
+UNK_021CB86C: ; 0x021CB86C
+ .space 0x4
+
+ .global UNK_021CB870
+UNK_021CB870: ; 0x021CB870
+ .space 0x4
+
+ .global UNK_021CB874
+UNK_021CB874: ; 0x021CB874
+ .space 0x4
+
+ .global UNK_021CB878
+UNK_021CB878: ; 0x021CB878
+ .space 0x4
+
+ .global UNK_021CB87C
+UNK_021CB87C: ; 0x021CB87C
+ .space 0x4
+
+ .global UNK_021CB880
+UNK_021CB880: ; 0x021CB880
+ .space 0x10
+
+ .global UNK_021CB890
+UNK_021CB890: ; 0x021CB890
+ .space 0x4
+
+ .global UNK_021CB894
+UNK_021CB894: ; 0x021CB894
+ .space 0x4
+
+ .global UNK_021CB898
+UNK_021CB898: ; 0x021CB898
+ .space 0x4
+
+ .global UNK_021CB89C
+UNK_021CB89C: ; 0x021CB89C
+ .space 0x4
+
+ .global UNK_021CB8A0
+UNK_021CB8A0: ; 0x021CB8A0
+ .space 0x4
+
+ .global UNK_021CB8A4
+UNK_021CB8A4: ; 0x021CB8A4
+ .space 0x18
+
+ .global UNK_021CB8BC
+UNK_021CB8BC: ; 0x021CB8BC
+ .space 0x18
+
+ .global UNK_021CB8D4
+UNK_021CB8D4: ; 0x021CB8D4
+ .space 0x440
+
+ .global UNK_021CBD14
+UNK_021CBD14: ; 0x021CBD14
+ .space 0x1000
+
+ .global UNK_021CCD14
+UNK_021CCD14: ; 0x021CCD14
+ .space 0x4
+
+ .global UNK_021CCD18
+UNK_021CCD18: ; 0x021CCD18
+ .space 0x4
+
+ .global UNK_021CCD1C
+UNK_021CCD1C: ; 0x021CCD1C
+ .space 0x4
+
+ .global UNK_021CCD20
+UNK_021CCD20: ; 0x021CCD20
+ .space 0x18
+
+ .global UNK_021CCD38
+UNK_021CCD38: ; 0x021CCD38
+ .space 0x4
+
+ .global UNK_021CCD3C
+UNK_021CCD3C: ; 0x021CCD3C
+ .space 0xc
+
+ .global UNK_021CCD48
+UNK_021CCD48: ; 0x021CCD48
+ .space 0x4
+
+ .global UNK_021CCD4C
+UNK_021CCD4C: ; 0x021CCD4C
+ .space 0xc
+
+ .global UNK_021CCD58
+UNK_021CCD58: ; 0x021CCD58
+ .space 0x14
+
+ .global UNK_021CCD6C
+UNK_021CCD6C: ; 0x021CCD6C
+ .space 0x4
+
+ .global UNK_021CCD70
+UNK_021CCD70: ; 0x021CCD70
+ .space 0x4
+
+ .global UNK_021CCD74
+UNK_021CCD74: ; 0x021CCD74
+ .space 0x14
+
+ .global UNK_021CCD88
+UNK_021CCD88: ; 0x021CCD88
+ .space 0x4
+
+ .global UNK_021CCD8C
+UNK_021CCD8C: ; 0x021CCD8C
+ .space 0x10
+
+ .global UNK_021CCD9C
+UNK_021CCD9C: ; 0x021CCD9C
+ .space 0x4
+
+ .global UNK_021CCDA0
+UNK_021CCDA0: ; 0x021CCDA0
+ .space 0x100
+
+ .global UNK_021CCEA0
+UNK_021CCEA0: ; 0x021CCEA0
+ .space 0x400
+
+ .global UNK_021CD2A0
+UNK_021CD2A0: ; 0x021CD2A0
+ .space 0x40
+
+ .global UNK_021CD2E0
+UNK_021CD2E0: ; 0x021CD2E0
+ .space 0x100
+
+ .global UNK_021CD3E0
+UNK_021CD3E0: ; 0x021CD3E0
+ .space 0x400
+
+ .global UNK_021CD7E0
+UNK_021CD7E0: ; 0x021CD7E0
+ .space 0x40
+
+ .global UNK_021CD820
+UNK_021CD820: ; 0x021CD820
+ .space 0x100
+
+ .global UNK_021CD920
+UNK_021CD920: ; 0x021CD920
+ .space 0x400
+
+ .global UNK_021CDD20
+UNK_021CDD20: ; 0x021CDD20
+ .space 0x40
+
+ .global UNK_021CDD60
+UNK_021CDD60: ; 0x021CDD60
+ .space 0x4
+
+ .global UNK_021CDD64
+UNK_021CDD64: ; 0x021CDD64
+ .space 0x4
+
+ .global UNK_021CDD68
+UNK_021CDD68: ; 0x021CDD68
+ .space 0x4
+
+ .global UNK_021CDD6C
+UNK_021CDD6C: ; 0x021CDD6C
+ .space 0x4
+
+ .global UNK_021CDD70
+UNK_021CDD70: ; 0x021CDD70
+ .space 0x4
+
+ .global UNK_021CDD74
+UNK_021CDD74: ; 0x021CDD74
+ .space 0x80
+
+ .global UNK_021CDDF4
+UNK_021CDDF4: ; 0x021CDDF4
+ .space 0x4
+
+ .global UNK_021CDDF8
+UNK_021CDDF8: ; 0x021CDDF8
+ .space 0xfc
+
+ .global UNK_021CDEF4
+UNK_021CDEF4: ; 0x021CDEF4
+ .space 0x10
+
+ .global UNK_021CDF04
+UNK_021CDF04: ; 0x021CDF04
+ .space 0x4
+
+ .global UNK_021CDF08
+UNK_021CDF08: ; 0x021CDF08
+ .space 0x2ec
+
+ .global UNK_021CE1F4
+UNK_021CE1F4: ; 0x021CE1F4
+ .space 0x300
+
+ .global UNK_021CE4F4
+UNK_021CE4F4: ; 0x021CE4F4
+ .space 0x400
+
+ .global UNK_021CE8F4
+UNK_021CE8F4: ; 0x021CE8F4
+ .space 0x4
+
+ .global UNK_021CE8F8
+UNK_021CE8F8: ; 0x021CE8F8
+ .space 0x404
+
+ .global UNK_021CECFC
+UNK_021CECFC: ; 0x021CECFC
+ .space 0x4
+
+ .global UNK_021CED00
+UNK_021CED00: ; 0x021CED00
+ .space 0x4
+
+ .global UNK_021CED04
+UNK_021CED04: ; 0x021CED04
+ .space 0x4
+
+ .global UNK_021CED08
+UNK_021CED08: ; 0x021CED08
+ .space 0x4
+
+ .global UNK_021CED0C
+UNK_021CED0C: ; 0x021CED0C
+ .space 0x4
+
+ .global UNK_021CED10
+UNK_021CED10: ; 0x021CED10
+ .space 0x4
+
+ .global UNK_021CED14
+UNK_021CED14: ; 0x021CED14
+ .space 0x4
+
+ .global UNK_021CED18
+UNK_021CED18: ; 0x021CED18
+ .space 0x8
+
+ .global UNK_021CED20
+UNK_021CED20: ; 0x021CED20
+ .space 0x44
+
+ .global UNK_021CED64
+UNK_021CED64: ; 0x021CED64
+ .space 0x34
+
+ .global UNK_021CED98
+UNK_021CED98: ; 0x021CED98
+ .space 0x28
+
+ .global UNK_021CEDC0
+UNK_021CEDC0: ; 0x021CEDC0
+ .space 0x14
+
+ .global UNK_021CEDD4
+UNK_021CEDD4: ; 0x021CEDD4
+ .space 0x24
+
+ .global UNK_021CEDF8
+UNK_021CEDF8: ; 0x021CEDF8
+ .space 0xc
+
+ .global UNK_021CEE04
+UNK_021CEE04: ; 0x021CEE04
+ .space 0x14
+
+ .global UNK_021CEE18
+UNK_021CEE18: ; 0x021CEE18
+ .space 0x30
+
+ .global UNK_021CEE48
+UNK_021CEE48: ; 0x021CEE48
+ .space 0x30
+
+ .global UNK_021CEE78
+UNK_021CEE78: ; 0x021CEE78
+ .space 0xe0
+
+ .global UNK_021CEF58
+UNK_021CEF58: ; 0x021CEF58
+ .space 0xc
+
+ .global UNK_021CEF64
+UNK_021CEF64: ; 0x021CEF64
+ .space 0xc
+
+ .global UNK_021CEF70
+UNK_021CEF70: ; 0x021CEF70
+ .space 0xc
+
+ .global UNK_021CEF7C
+UNK_021CEF7C: ; 0x021CEF7C
+ .space 0x4
+
+ .global UNK_021CEF80
+UNK_021CEF80: ; 0x021CEF80
+ .space 0xe00
+
+ .global UNK_021CFD80
+UNK_021CFD80: ; 0x021CFD80
+ .space 0x4
+
+ .global UNK_021CFD84
+UNK_021CFD84: ; 0x021CFD84
+ .space 0x4
+
+ .global UNK_021CFD88
+UNK_021CFD88: ; 0x021CFD88
+ .space 0x4
+
+ .global UNK_021CFD8C
+UNK_021CFD8C: ; 0x021CFD8C
+ .space 0x4
+
+ .global UNK_021CFD90
+UNK_021CFD90: ; 0x021CFD90
+ .space 0x4
+
+ .global UNK_021CFD94
+UNK_021CFD94: ; 0x021CFD94
+ .space 0x2ba
+
+ .global UNK_021D004E
+UNK_021D004E: ; 0x021D004E
+ .space 0x332
+
+ .global UNK_021D0380
+UNK_021D0380: ; 0x021D0380
+ .space 0x40
+
+ .global UNK_021D03C0
+UNK_021D03C0: ; 0x021D03C0
+ .space 0xb42
+
+ .global UNK_021D0F02
+UNK_021D0F02: ; 0x021D0F02
+ .space 0xd7e
+
+ .global UNK_021D1C80
+UNK_021D1C80: ; 0x021D1C80
+ .space 0x4
+
+ .global UNK_021D1C84
+UNK_021D1C84: ; 0x021D1C84
+ .space 0x4
+
+ .global UNK_021D1C88
+UNK_021D1C88: ; 0x021D1C88
+ .space 0x4
+
+ .global UNK_021D1C8C
+UNK_021D1C8C: ; 0x021D1C8C
+ .space 0x4
+
+ .global UNK_021D1C90
+UNK_021D1C90: ; 0x021D1C90
+ .space 0x4
+
+ .global UNK_021D1C94
+UNK_021D1C94: ; 0x021D1C94
+ .space 0x4
+
+ .global UNK_021D1C98
+UNK_021D1C98: ; 0x021D1C98
+ .space 0xc
+
+ .global UNK_021D1CA4
+UNK_021D1CA4: ; 0x021D1CA4
+ .space 0xc
+
+ .global UNK_021D1CB0
+UNK_021D1CB0: ; 0x021D1CB0
+ .space 0x4
+
+ .global UNK_021D1CB4
+UNK_021D1CB4: ; 0x021D1CB4
+ .space 0x4
+
+ .global UNK_021D1CB8
+UNK_021D1CB8: ; 0x021D1CB8
+ .space 0x4
+
+ .global UNK_021D1CBC
+UNK_021D1CBC: ; 0x021D1CBC
+ .space 0x140
+
+ .global UNK_021D1DFC
+UNK_021D1DFC: ; 0x021D1DFC
+ .space 0xc
+
+ .global UNK_021D1E08
+UNK_021D1E08: ; 0x021D1E08
+ .space 0xc
+
+ .global UNK_021D1E14
+UNK_021D1E14: ; 0x021D1E14
+ .space 0x440
+
+ .global UNK_021D2254
+UNK_021D2254: ; 0x021D2254
+ .space 0x8
+
+ .global UNK_021D225C
+UNK_021D225C: ; 0x021D225C
+ .space 0x10
+
+ .global UNK_021D226C
+UNK_021D226C: ; 0x021D226C
+ .space 0x4
+
+ .global UNK_021D2270
+UNK_021D2270: ; 0x021D2270
+ .space 0x4
+
+ .global UNK_021D2274
+UNK_021D2274: ; 0x021D2274
+ .space 0x460
+
+ .global UNK_021D26D4
+UNK_021D26D4: ; 0x021D26D4
+ .space 0x4
+
+ .global UNK_021D26D8
+UNK_021D26D8: ; 0x021D26D8
+ .space 0xc
+
+ .global UNK_021D26E4
+UNK_021D26E4: ; 0x021D26E4
+ .space 0x40
+
+ .global UNK_021D2724
+UNK_021D2724: ; 0x021D2724
+ .space 0x80
+
+ .global UNK_021D27A4
+UNK_021D27A4: ; 0x021D27A4
+ .space 0x4
+
+ .global UNK_021D27A8
+UNK_021D27A8: ; 0x021D27A8
+ .space 0x4
+
+ .global UNK_021D27AC
+UNK_021D27AC: ; 0x021D27AC
+ .space 0x20
+
+ .global UNK_021D27CC
+UNK_021D27CC: ; 0x021D27CC
+ .space 0x54
+
+ .global UNK_021D2820
+UNK_021D2820: ; 0x021D2820
+ .space 0xa0
+
+ .global UNK_021D28C0
+UNK_021D28C0: ; 0x021D28C0
+ .space 0x4
+
+ .global UNK_021D28C4
+UNK_021D28C4: ; 0x021D28C4
+ .space 0x3c
+
+ .global UNK_021D2900
+UNK_021D2900: ; 0x021D2900
+ .space 0x4
+
+ .global UNK_021D2904
+UNK_021D2904: ; 0x021D2904
+ .space 0x4d4
+
+ .global UNK_021D2DD8
+UNK_021D2DD8: ; 0x021D2DD8
+ .space 0x18
+
+ .global UNK_021D2DF0
+UNK_021D2DF0: ; 0x021D2DF0
+ .space 0xc
+
+ .global UNK_021D2DFC
+UNK_021D2DFC: ; 0x021D2DFC
+ .space 0x5c0
+
+ .global UNK_021D33BC
+UNK_021D33BC: ; 0x021D33BC
+ .space 0x4
+
+ .global UNK_021D33C0
+UNK_021D33C0: ; 0x021D33C0
+ .space 0x4
+
+ .global UNK_021D33C4
+UNK_021D33C4: ; 0x021D33C4
+ .space 0x2
+
+ .global UNK_021D33C6
+UNK_021D33C6: ; 0x021D33C6
+ .space 0x2
+
+ .global UNK_021D33C8
+UNK_021D33C8: ; 0x021D33C8
+ .space 0x2
+
+ .global UNK_021D33CA
+UNK_021D33CA: ; 0x021D33CA
+ .space 0x2
+
+ .global UNK_021D33CC
+UNK_021D33CC: ; 0x021D33CC
+ .space 0x2
+
+ .global UNK_021D33CE
+UNK_021D33CE: ; 0x021D33CE
+ .space 0x2
+
+ .global UNK_021D33D0
+UNK_021D33D0: ; 0x021D33D0
+ .space 0x2
+
+ .global UNK_021D33D2
+UNK_021D33D2: ; 0x021D33D2
+ .space 0x2
+
+ .global UNK_021D33D4
+UNK_021D33D4: ; 0x021D33D4
+ .space 0x2
+
+ .global UNK_021D33D6
+UNK_021D33D6: ; 0x021D33D6
+ .space 0x2
+
+ .global UNK_021D33D8
+UNK_021D33D8: ; 0x021D33D8
+ .space 0x2
+
+ .global UNK_021D33DA
+UNK_021D33DA: ; 0x021D33DA
+ .space 0x2
+
+ .global UNK_021D33DC
+UNK_021D33DC: ; 0x021D33DC
+ .space 0x4
+
+ .global UNK_021D33E0
+UNK_021D33E0: ; 0x021D33E0
+ .space 0x4
+
+ .global UNK_021D33E4
+UNK_021D33E4: ; 0x021D33E4
+ .space 0x4
+
+ .global UNK_021D33E8
+UNK_021D33E8: ; 0x021D33E8
+ .space 0x4
+
+ .global UNK_021D33EC
+UNK_021D33EC: ; 0x021D33EC
+ .space 0x4
+
+ .global UNK_021D33F0
+UNK_021D33F0: ; 0x021D33F0
+ .space 0x4
+
+ .global UNK_021D33F4
+UNK_021D33F4: ; 0x021D33F4
+ .space 0x4
+
+ .global UNK_021D33F8
+UNK_021D33F8: ; 0x021D33F8
+ .space 0x4
+
+ .global UNK_021D33FC
+UNK_021D33FC: ; 0x021D33FC
+ .space 0x4
+
+ .global UNK_021D3400
+UNK_021D3400: ; 0x021D3400
+ .space 0x4
+
+ .global UNK_021D3404
+UNK_021D3404: ; 0x021D3404
+ .space 0x4
+
+ .global UNK_021D3408
+UNK_021D3408: ; 0x021D3408
+ .space 0x4
+
+ .global UNK_021D340C
+UNK_021D340C: ; 0x021D340C
+ .space 0x4
+
+ .global UNK_021D3410
+UNK_021D3410: ; 0x021D3410
+ .space 0x4
+
+ .global UNK_021D3414
+UNK_021D3414: ; 0x021D3414
+ .space 0x4
+
+ .global UNK_021D3418
+UNK_021D3418: ; 0x021D3418
+ .space 0x4
+
+ .global OSi_IrqCallbackInfo
+OSi_IrqCallbackInfo: ; 0x021D341C
+ .space 0x4
+
+ .global UNK_021D3420
+UNK_021D3420: ; 0x021D3420
+ .space 0x4
+
+ .global UNK_021D3424
+UNK_021D3424: ; 0x021D3424
+ .space 0x28
+
+ .global UNK_021D344C
+UNK_021D344C: ; 0x021D344C
+ .space 0x4
+
+ .global UNK_021D3450
+UNK_021D3450: ; 0x021D3450
+ .space 0x4
+
+ .global UNK_021D3454
+UNK_021D3454: ; 0x021D3454
+ .space 0x28
+
+ .global isInitialized
+isInitialized: ; 0x021D347C
+ .space 0x4
+
+ .global OSi_StackForDestructor
+OSi_StackForDestructor: ; 0x021D3480
+ .space 0x4
+
+ .global OSi_RescheduleCount
+OSi_RescheduleCount: ; 0x021D3484
+ .space 0x4
+
+ .global OSi_ThreadIdCount
+OSi_ThreadIdCount: ; 0x021D3488
+ .space 0x4
+
+ .global OSi_SystemCallbackInSwitchThread
+OSi_SystemCallbackInSwitchThread: ; 0x021D348C
+ .space 0x4
+
+ .global OSi_CurrentThreadPtr
+OSi_CurrentThreadPtr: ; 0x021D3490
+ .space 0x4
+
+ .global OSi_IsThreadInitialized
+OSi_IsThreadInitialized: ; 0x021D3494
+ .space 0x4
+
+ .global OSi_ThreadInfo
+OSi_ThreadInfo: ; 0x021D3498
+ .space 0x4
+
+ .global UNK_021D349C
+UNK_021D349C: ; 0x021D349C
+ .space 0xc
+
+ .global OSi_IdleThread
+OSi_IdleThread: ; 0x021D34A8
+ .space 0xc0
+
+ .global OSi_LauncherThread
+OSi_LauncherThread: ; 0x021D3568
+ .space 0xC0
+
+ .global OSi_IdleThreadStack
+OSi_IdleThreadStack: ; 0x021D3628
+ .space 0xC8
+
+ .global OSi_Initialized
+OSi_Initialized: ; 0x021D36F0
+ .space 0x4
+
+ .global OSi_MainExArenaEnabled
+OSi_MainExArenaEnabled: ; 0x021D36F4
+ .space 0x4
diff --git a/arm9/data/bss_3.s b/arm9/data/bss_3.s
new file mode 100644
index 00000000..438d87f1
--- /dev/null
+++ b/arm9/data/bss_3.s
@@ -0,0 +1,157 @@
+ .section .bss
+
+ .global OSi_UserExceptionHandler
+OSi_UserExceptionHandler: ; 0x021D371C
+ .space 0x4
+
+ .global OSi_UserExceptionHandlerArg
+OSi_UserExceptionHandlerArg: ; 0x021D3720
+ .space 0x4
+
+ .global OSi_DebuggerHandler
+OSi_DebuggerHandler: ; 0x021D3724
+ .space 0x4
+
+ .global OSi_ExContext
+OSi_ExContext: ; 0x021D3728
+ .space 0x80
+
+ .global OSi_TimerReserved
+OSi_TimerReserved: ; 0x021D37A8
+ .space 0x4
+
+ .global OSi_UseTick
+OSi_UseTick: ; 0x021D37AC
+ .space 0x4
+
+ .global OSi_NeedResetTimer
+OSi_NeedResetTimer: ; 0x021D37B0
+ .space 0x4
+
+ .global OSi_TickCounter
+OSi_TickCounter: ; 0x021D37B4
+ .space 0x8
+
+ .global OSi_UseAlarm
+OSi_UseAlarm: ; 0x021D37BC
+ .space 0x4
+
+ .global OSi_AlarmQueue
+OSi_AlarmQueue: ; 0x021D37C0
+ .space 0x8
+
+ .global OSi_UseVAlarm
+OSi_UseVAlarm: ; 0x021D37C8
+ .space 0x4
+
+ .global OSi_PreviousVCount
+OSi_PreviousVCount: ; 0x021D37CC
+ .space 0x4
+
+ .global OSi_VFrameCount
+OSi_VFrameCount: ; 0x021D37D0
+ .space 0x4
+
+ .global OSi_VAlarmQueue
+OSi_VAlarmQueue: ; 0x021D37D4
+ .space 0x8
+
+ .global OSi_IsInitReset
+OSi_IsInitReset: ; 0x021D37DC
+ .space 0x4
+
+ .global OSi_IsResetOccurred
+OSi_IsResetOccurred: ; 0x021D37E0
+ .space 0x4
+
+ .global OSi_vramExclusive
+OSi_vramExclusive: ; 0x021D37E4
+ .space 0x4
+
+ .global OSi_vramLockId
+OSi_vramLockId: ; 0x021D37E8
+ .space 0x14
+
+ .global UNK_021D37FC
+UNK_021D37FC: ; 0x021D37FC
+ .space 0x20
+
+ .global UNK_021D381C
+UNK_021D381C: ; 0x021D381C
+ .space 0x4
+
+ .global UNK_021D3820
+UNK_021D3820: ; 0x021D3820
+ .space 0x18
+
+ .global UNK_021D3838
+UNK_021D3838: ; 0x021D3838
+ .space 0x4
+
+ .global UNK_021D383C
+UNK_021D383C: ; 0x021D383C
+ .space 0x4
+
+ .global UNK_021D3840
+UNK_021D3840: ; 0x021D3840
+ .space 0x4
+
+ .global UNK_021D3844
+UNK_021D3844: ; 0x021D3844
+ .space 0x4
+
+ .global UNK_021D3848
+UNK_021D3848: ; 0x021D3848
+ .space 0x4
+
+ .global UNK_021D384C
+UNK_021D384C: ; 0x021D384C
+ .space 0x4
+
+ .global UNK_021D3850
+UNK_021D3850: ; 0x021D3850
+ .space 0x4
+
+ .global UNK_021D3854
+UNK_021D3854: ; 0x021D3854
+ .space 0x4
+
+ .global UNK_021D3858
+UNK_021D3858: ; 0x021D3858
+ .space 0x4
+
+ .global UNK_021D385C
+UNK_021D385C: ; 0x021D385C
+ .space 0x24
+
+ .global UNK_021D3880
+UNK_021D3880: ; 0x021D3880
+ .space 0x280
+
+ .global UNK_021D3B00
+UNK_021D3B00: ; 0x021D3B00
+ .space 0x1000
+
+ .global UNK_021D4B00
+UNK_021D4B00: ; 0x021D4B00
+ .space 0x7e8
+
+ .global UNK_021D52E8
+UNK_021D52E8: ; 0x021D52E8
+ .space 0x18
+
+ .global UNK_021D5300
+UNK_021D5300: ; 0x021D5300
+ .space 0x60
+
+ .global UNK_021D5360
+UNK_021D5360: ; 0x021D5360
+ .space 0x4
+
+ .global UNK_021D5364
+UNK_021D5364: ; 0x021D5364
+ .space 0x4
+
+ .global UNK_021D5368
+UNK_021D5368: ; 0x021D5368
+ .space 0x80
diff --git a/arm9/data/bss_4.s b/arm9/data/bss_4.s
new file mode 100644
index 00000000..76961150
--- /dev/null
+++ b/arm9/data/bss_4.s
@@ -0,0 +1,297 @@
+ .section .bss
+
+ .global UNK_021D5470
+UNK_021D5470: ; 0x021D5470
+ .space 0x4
+
+ .global UNK_021D5474
+UNK_021D5474: ; 0x021D5474
+ .space 0x18
+
+ .global UNK_021D548C
+UNK_021D548C: ; 0x021D548C
+ .space 0x20
+
+ .global UNK_021D54AC
+UNK_021D54AC: ; 0x021D54AC
+ .space 0x4
+
+ .global UNK_021D54B0
+UNK_021D54B0: ; 0x021D54B0
+ .space 0x1c
+
+ .global UNK_021D54CC
+UNK_021D54CC: ; 0x021D54CC
+ .space 0x4
+
+ .global UNK_021D54D0
+UNK_021D54D0: ; 0x021D54D0
+ .space 0x4
+
+ .global UNK_021D54D4
+UNK_021D54D4: ; 0x021D54D4
+ .space 0x4
+
+ .global UNK_021D54D8
+UNK_021D54D8: ; 0x021D54D8
+ .space 0x4
+
+ .global UNK_021D54DC
+UNK_021D54DC: ; 0x021D54DC
+ .space 0x4
+
+ .global UNK_021D54E0
+UNK_021D54E0: ; 0x021D54E0
+ .space 0x4
+
+ .global UNK_021D54E4
+UNK_021D54E4: ; 0x021D54E4
+ .space 0x10
+
+ .global UNK_021D54F4
+UNK_021D54F4: ; 0x021D54F4
+ .space 0x18
+
+ .global UNK_021D550C
+UNK_021D550C: ; 0x021D550C
+ .space 0x4
+
+ .global UNK_021D5510
+UNK_021D5510: ; 0x021D5510
+ .space 0x24
+
+ .global UNK_021D5534
+UNK_021D5534: ; 0x021D5534
+ .space 0x4
+
+ .global UNK_021D5538
+UNK_021D5538: ; 0x021D5538
+ .space 0x24
+
+ .global UNK_021D555C
+UNK_021D555C: ; 0x021D555C
+ .space 0x4
+
+ .global UNK_021D5560
+UNK_021D5560: ; 0x021D5560
+ .space 0x60
+
+ .global cardi_common
+cardi_common: ; 0x021D55C0
+ .space 0x620
+
+ .global UNK_021D5BE0
+UNK_021D5BE0: ; 0x021D5BE0
+ .space 0x20
+
+ .global UNK_021D5C00
+UNK_021D5C00: ; 0x021D5C00
+ .space 0x220
+
+ .global UNK_021D5E20
+UNK_021D5E20: ; 0x021D5E20
+ .space 0x4
+
+ .global UNK_021D5E24
+UNK_021D5E24: ; 0x021D5E24
+ .space 0x4
+
+ .global UNK_021D5E28
+UNK_021D5E28: ; 0x021D5E28
+ .space 0x4
+
+ .global UNK_021D5E2C
+UNK_021D5E2C: ; 0x021D5E2C
+ .space 0x4
+
+ .global UNK_021D5E30
+UNK_021D5E30: ; 0x021D5E30
+ .space 0x20
+
+ .global UNK_021D5E50
+UNK_021D5E50: ; 0x021D5E50
+ .space 0x28
+
+ .global UNK_021D5E78
+UNK_021D5E78: ; 0x021D5E78
+ .space 0x14
+
+ .global UNK_021D5E8C
+UNK_021D5E8C: ; 0x021D5E8C
+ .space 0x10
+
+ .global UNK_021D5E9C
+UNK_021D5E9C: ; 0x021D5E9C
+ .space 0x24
+
+ .global UNK_021D5EC0
+UNK_021D5EC0: ; 0x021D5EC0
+ .space 0xa00
+
+ .global UNK_021D68C0
+UNK_021D68C0: ; 0x021D68C0
+ .space 0x80
+
+ .global UNK_021D6940
+UNK_021D6940: ; 0x021D6940
+ .space 0x4
+
+ .global UNK_021D6944
+UNK_021D6944: ; 0x021D6944
+ .space 0x4
+
+ .global UNK_021D6948
+UNK_021D6948: ; 0x021D6948
+ .space 0x4
+
+ .global UNK_021D694C
+UNK_021D694C: ; 0x021D694C
+ .space 0x4
+
+ .global UNK_021D6950
+UNK_021D6950: ; 0x021D6950
+ .space 0x4
+
+ .global UNK_021D6954
+UNK_021D6954: ; 0x021D6954
+ .space 0x4
+
+ .global UNK_021D6958
+UNK_021D6958: ; 0x021D6958
+ .space 0x8
+
+ .global UNK_021D6960
+UNK_021D6960: ; 0x021D6960
+ .space 0x4
+
+ .global UNK_021D6964
+UNK_021D6964: ; 0x021D6964
+ .space 0xbc
+
+ .global UNK_021D6A20
+UNK_021D6A20: ; 0x021D6A20
+ .space 0xe8
+
+ .global UNK_021D6B08
+UNK_021D6B08: ; 0x021D6B08
+ .space 0x4
+
+ .global UNK_021D6B0C
+UNK_021D6B0C: ; 0x021D6B0C
+ .space 0x4
+
+ .global UNK_021D6B10
+UNK_021D6B10: ; 0x021D6B10
+ .space 0x4
+
+ .global UNK_021D6B14
+UNK_021D6B14: ; 0x021D6B14
+ .space 0x4
+
+ .global UNK_021D6B18
+UNK_021D6B18: ; 0x021D6B18
+ .space 0x4
+
+ .global UNK_021D6B1C
+UNK_021D6B1C: ; 0x021D6B1C
+ .space 0x4
+
+ .global UNK_021D6B20
+UNK_021D6B20: ; 0x021D6B20
+ .space 0x4
+
+ .global UNK_021D6B24
+UNK_021D6B24: ; 0x021D6B24
+ .space 0x4
+
+ .global UNK_021D6B28
+UNK_021D6B28: ; 0x021D6B28
+ .space 0x4
+
+ .global UNK_021D6B2C
+UNK_021D6B2C: ; 0x021D6B2C
+ .space 0x4
+
+ .global UNK_021D6B30
+UNK_021D6B30: ; 0x021D6B30
+ .space 0x4
+
+ .global UNK_021D6B34
+UNK_021D6B34: ; 0x021D6B34
+ .space 0x4
+
+ .global UNK_021D6B38
+UNK_021D6B38: ; 0x021D6B38
+ .space 0x4
+
+ .global UNK_021D6B3C
+UNK_021D6B3C: ; 0x021D6B3C
+ .space 0x8
+
+ .global UNK_021D6B44
+UNK_021D6B44: ; 0x021D6B44
+ .space 0x8
+
+ .global UNK_021D6B4C
+UNK_021D6B4C: ; 0x021D6B4C
+ .space 0x4
+
+ .global UNK_021D6B50
+UNK_021D6B50: ; 0x021D6B50
+ .space 0x4
+
+ .global UNK_021D6B54
+UNK_021D6B54: ; 0x021D6B54
+ .space 0x424
+
+ .global UNK_021D6F78
+UNK_021D6F78: ; 0x021D6F78
+ .space 0x10
+
+ .global UNK_021D6F88
+UNK_021D6F88: ; 0x021D6F88
+ .space 0x100
+
+ .global UNK_021D7088
+UNK_021D7088: ; 0x021D7088
+ .space 0x24
+
+ .global UNK_021D70AC
+UNK_021D70AC: ; 0x021D70AC
+ .space 0x24
+
+ .global UNK_021D70D0
+UNK_021D70D0: ; 0x021D70D0
+ .space 0x48
+
+ .global UNK_021D7118
+UNK_021D7118: ; 0x021D7118
+ .space 0x60
+
+ .global UNK_021D7178
+UNK_021D7178: ; 0x021D7178
+ .space 0x30
+
+ .global UNK_021D71A8
+UNK_021D71A8: ; 0x021D71A8
+ .space 0x100
+
+ .global UNK_021D72A8
+UNK_021D72A8: ; 0x021D72A8
+ .space 0x100
+
+ .global UNK_021D73A8
+UNK_021D73A8: ; 0x021D73A8
+ .space 0x100
+
+ .global UNK_021D74A8
+UNK_021D74A8: ; 0x021D74A8
+ .space 0x4
+
+ .global UNK_021D74AC
+UNK_021D74AC: ; 0x021D74AC
+ .space 0x1c
+
+ .global __global_destructor_chain
+__global_destructor_chain: ; 0x021D74C8
+ .space 0x18
diff --git a/arm9/data/rom2.s b/arm9/data/rom2.s
index 9650cc4c..15b44a64 100644
--- a/arm9/data/rom2.s
+++ b/arm9/data/rom2.s
@@ -4,4 +4,44 @@
.section .rodata
-.incbin "baserom.nds", 0xF0710, 0x3F8 ; this does not seem to be code
+ ; 0x020EC710
+ .global UNK_020EC710
+UNK_020EC710: ; 0x020EC710
+ .incbin "baserom.nds", 0xf0710, 0x8
+
+ .global UNK_020EC718
+UNK_020EC718: ; 0x020EC718
+ .incbin "baserom.nds", 0xf0718, 0x8
+
+ .global UNK_020EC720
+UNK_020EC720: ; 0x020EC720
+ .incbin "baserom.nds", 0xf0720, 0x8
+
+ .global UNK_020EC728
+UNK_020EC728: ; 0x020EC728
+ .incbin "baserom.nds", 0xf0728, 0x8
+
+ .global UNK_020EC730
+UNK_020EC730: ; 0x020EC730
+ .incbin "baserom.nds", 0xf0730, 0x8
+
+ .global UNK_020EC738
+UNK_020EC738: ; 0x020EC738
+ .incbin "baserom.nds", 0xf0738, 0x8
+
+ .global UNK_020EC740
+UNK_020EC740: ; 0x020EC740
+ .incbin "baserom.nds", 0xf0740, 0x380
+
+ .global UNK_020ECAC0
+UNK_020ECAC0: ; 0x020ECAC0
+ .incbin "baserom.nds", 0xf0ac0, 0x4
+
+ .global UNK_020ECAC4
+UNK_020ECAC4: ; 0x020ECAC4
+ .incbin "baserom.nds", 0xf0ac4, 0x4
+
+ .global UNK_020ECAC8
+UNK_020ECAC8: ; 0x020ECAC8
+ .incbin "baserom.nds", 0xf0ac8, 0x40
+
diff --git a/arm9/data/rom2_2.s b/arm9/data/rom2_2.s
index c5624b8e..396d68dc 100644
--- a/arm9/data/rom2_2.s
+++ b/arm9/data/rom2_2.s
@@ -5,7 +5,1037 @@
.section .rodata
-.incbin "baserom.nds", 0xF0B50, 0x6A0C
+ .global UNK_020ECB50
+UNK_020ECB50: ; 0x020ECB50
+ .incbin "baserom.nds", 0xf0b50, 0x4
+
+ .global UNK_020ECB54
+UNK_020ECB54: ; 0x020ECB54
+ .incbin "baserom.nds", 0xf0b54, 0x2
+
+ .global UNK_020ECB56
+UNK_020ECB56: ; 0x020ECB56
+ .incbin "baserom.nds", 0xf0b56, 0xe
+
+ .global UNK_020ECB64
+UNK_020ECB64: ; 0x020ECB64
+ .incbin "baserom.nds", 0xf0b64, 0x1
+
+ .global UNK_020ECB65
+UNK_020ECB65: ; 0x020ECB65
+ .incbin "baserom.nds", 0xf0b65, 0x1
+
+ .global UNK_020ECB66
+UNK_020ECB66: ; 0x020ECB66
+ .incbin "baserom.nds", 0xf0b66, 0x1
+
+ .global UNK_020ECB67
+UNK_020ECB67: ; 0x020ECB67
+ .incbin "baserom.nds", 0xf0b67, 0x1
+
+ .global UNK_020ECB68
+UNK_020ECB68: ; 0x020ECB68
+ .incbin "baserom.nds", 0xf0b68, 0x1
+
+ .global UNK_020ECB69
+UNK_020ECB69: ; 0x020ECB69
+ .incbin "baserom.nds", 0xf0b69, 0x1
+
+ .global UNK_020ECB6A
+UNK_020ECB6A: ; 0x020ECB6A
+ .incbin "baserom.nds", 0xf0b6a, 0x1
+
+ .global UNK_020ECB6B
+UNK_020ECB6B: ; 0x020ECB6B
+ .incbin "baserom.nds", 0xf0b6b, 0x21
+
+ .global UNK_020ECB8C
+UNK_020ECB8C: ; 0x020ECB8C
+ .incbin "baserom.nds", 0xf0b8c, 0xc
+
+ .global UNK_020ECB98
+UNK_020ECB98: ; 0x020ECB98
+ .incbin "baserom.nds", 0xf0b98, 0x8
+
+ .global UNK_020ECBA0
+UNK_020ECBA0: ; 0x020ECBA0
+ .incbin "baserom.nds", 0xf0ba0, 0x8
+
+ .global UNK_020ECBA8
+UNK_020ECBA8: ; 0x020ECBA8
+ .incbin "baserom.nds", 0xf0ba8, 0x8
+
+ .global UNK_020ECBB0
+UNK_020ECBB0: ; 0x020ECBB0
+ .incbin "baserom.nds", 0xf0bb0, 0x20
+
+ .global UNK_020ECBD0
+UNK_020ECBD0: ; 0x020ECBD0
+ .incbin "baserom.nds", 0xf0bd0, 0x40
+
+ .global UNK_020ECC10
+UNK_020ECC10: ; 0x020ECC10
+ .incbin "baserom.nds", 0xf0c10, 0x68
+
+ .global UNK_020ECC78
+UNK_020ECC78: ; 0x020ECC78
+ .incbin "baserom.nds", 0xf0c78, 0x6a
+
+ .global UNK_020ECCE2
+UNK_020ECCE2: ; 0x020ECCE2
+ .incbin "baserom.nds", 0xf0ce2, 0x6a
+
+ .global UNK_020ECD4C
+UNK_020ECD4C: ; 0x020ECD4C
+ .incbin "baserom.nds", 0xf0d4c, 0x80
+
+ .global UNK_020ECDCC
+UNK_020ECDCC: ; 0x020ECDCC
+ .incbin "baserom.nds", 0xf0dcc, 0x98
+
+ .global UNK_020ECE64
+UNK_020ECE64: ; 0x020ECE64
+ .incbin "baserom.nds", 0xf0e64, 0x8
+
+ .global UNK_020ECE6C
+UNK_020ECE6C: ; 0x020ECE6C
+ .incbin "baserom.nds", 0xf0e6c, 0x2
+
+ .global UNK_020ECE6E
+UNK_020ECE6E: ; 0x020ECE6E
+ .incbin "baserom.nds", 0xf0e6e, 0x1a
+
+ .global UNK_020ECE88
+UNK_020ECE88: ; 0x020ECE88
+ .incbin "baserom.nds", 0xf0e88, 0x10
+
+ .global UNK_020ECE98
+UNK_020ECE98: ; 0x020ECE98
+ .incbin "baserom.nds", 0xf0e98, 0x10
+
+ .global UNK_020ECEA8
+UNK_020ECEA8: ; 0x020ECEA8
+ .incbin "baserom.nds", 0xf0ea8, 0x18
+
+ .global UNK_020ECEC0
+UNK_020ECEC0: ; 0x020ECEC0
+ .incbin "baserom.nds", 0xf0ec0, 0x34
+
+ .global UNK_020ECEF4
+UNK_020ECEF4: ; 0x020ECEF4
+ .incbin "baserom.nds", 0xf0ef4, 0xa8
+
+ .global UNK_020ECF9C
+UNK_020ECF9C: ; 0x020ECF9C
+ .incbin "baserom.nds", 0xf0f9c, 0x3
+
+ .global UNK_020ECF9F
+UNK_020ECF9F: ; 0x020ECF9F
+ .incbin "baserom.nds", 0xf0f9f, 0x3
+
+ .global UNK_020ECFA2
+UNK_020ECFA2: ; 0x020ECFA2
+ .incbin "baserom.nds", 0xf0fa2, 0x3
+
+ .global UNK_020ECFA5
+UNK_020ECFA5: ; 0x020ECFA5
+ .incbin "baserom.nds", 0xf0fa5, 0x3
+
+ .global UNK_020ECFA8
+UNK_020ECFA8: ; 0x020ECFA8
+ .incbin "baserom.nds", 0xf0fa8, 0x6
+
+ .global UNK_020ECFAE
+UNK_020ECFAE: ; 0x020ECFAE
+ .incbin "baserom.nds", 0xf0fae, 0x6
+
+ .global UNK_020ECFB4
+UNK_020ECFB4: ; 0x020ECFB4
+ .incbin "baserom.nds", 0xf0fb4, 0x6
+
+ .global UNK_020ECFBA
+UNK_020ECFBA: ; 0x020ECFBA
+ .incbin "baserom.nds", 0xf0fba, 0x6
+
+ .global UNK_020ECFC0
+UNK_020ECFC0: ; 0x020ECFC0
+ .incbin "baserom.nds", 0xf0fc0, 0x6
+
+ .global UNK_020ECFC6
+UNK_020ECFC6: ; 0x020ECFC6
+ .incbin "baserom.nds", 0xf0fc6, 0x6
+
+ .global UNK_020ECFCC
+UNK_020ECFCC: ; 0x020ECFCC
+ .incbin "baserom.nds", 0xf0fcc, 0x9
+
+ .global UNK_020ECFD5
+UNK_020ECFD5: ; 0x020ECFD5
+ .incbin "baserom.nds", 0xf0fd5, 0xb
+
+ .global UNK_020ECFE0
+UNK_020ECFE0: ; 0x020ECFE0
+ .incbin "baserom.nds", 0xf0fe0, 0xc
+
+ .global UNK_020ECFEC
+UNK_020ECFEC: ; 0x020ECFEC
+ .incbin "baserom.nds", 0xf0fec, 0xc
+
+ .global UNK_020ECFF8
+UNK_020ECFF8: ; 0x020ECFF8
+ .incbin "baserom.nds", 0xf0ff8, 0xc
+
+ .global UNK_020ED004
+UNK_020ED004: ; 0x020ED004
+ .incbin "baserom.nds", 0xf1004, 0xc
+
+ .global UNK_020ED010
+UNK_020ED010: ; 0x020ED010
+ .incbin "baserom.nds", 0xf1010, 0xc
+
+ .global UNK_020ED01C
+UNK_020ED01C: ; 0x020ED01C
+ .incbin "baserom.nds", 0xf101c, 0xc
+
+ .global UNK_020ED028
+UNK_020ED028: ; 0x020ED028
+ .incbin "baserom.nds", 0xf1028, 0xc
+
+ .global UNK_020ED034
+UNK_020ED034: ; 0x020ED034
+ .incbin "baserom.nds", 0xf1034, 0xc
+
+ .global UNK_020ED040
+UNK_020ED040: ; 0x020ED040
+ .incbin "baserom.nds", 0xf1040, 0x10
+
+ .global UNK_020ED050
+UNK_020ED050: ; 0x020ED050
+ .incbin "baserom.nds", 0xf1050, 0x10
+
+ .global UNK_020ED060
+UNK_020ED060: ; 0x020ED060
+ .incbin "baserom.nds", 0xf1060, 0x10
+
+ .global UNK_020ED070
+UNK_020ED070: ; 0x020ED070
+ .incbin "baserom.nds", 0xf1070, 0x10
+
+ .global UNK_020ED080
+UNK_020ED080: ; 0x020ED080
+ .incbin "baserom.nds", 0xf1080, 0x10
+
+ .global UNK_020ED090
+UNK_020ED090: ; 0x020ED090
+ .incbin "baserom.nds", 0xf1090, 0x10
+
+ .global UNK_020ED0A0
+UNK_020ED0A0: ; 0x020ED0A0
+ .incbin "baserom.nds", 0xf10a0, 0x24
+
+ .global UNK_020ED0C4
+UNK_020ED0C4: ; 0x020ED0C4
+ .incbin "baserom.nds", 0xf10c4, 0x24
+
+ .global UNK_020ED0E8
+UNK_020ED0E8: ; 0x020ED0E8
+ .incbin "baserom.nds", 0xf10e8, 0x24
+
+ .global UNK_020ED10C
+UNK_020ED10C: ; 0x020ED10C
+ .incbin "baserom.nds", 0xf110c, 0x24
+
+ .global UNK_020ED130
+UNK_020ED130: ; 0x020ED130
+ .incbin "baserom.nds", 0xf1130, 0x24
+
+ .global UNK_020ED154
+UNK_020ED154: ; 0x020ED154
+ .incbin "baserom.nds", 0xf1154, 0x24
+
+ .global UNK_020ED178
+UNK_020ED178: ; 0x020ED178
+ .incbin "baserom.nds", 0xf1178, 0x24
+
+ .global UNK_020ED19C
+UNK_020ED19C: ; 0x020ED19C
+ .incbin "baserom.nds", 0xf119c, 0x24
+
+ .global UNK_020ED1C0
+UNK_020ED1C0: ; 0x020ED1C0
+ .incbin "baserom.nds", 0xf11c0, 0x24
+
+ .global UNK_020ED1E4
+UNK_020ED1E4: ; 0x020ED1E4
+ .incbin "baserom.nds", 0xf11e4, 0x24
+
+ .global UNK_020ED208
+UNK_020ED208: ; 0x020ED208
+ .incbin "baserom.nds", 0xf1208, 0x24
+
+ .global UNK_020ED22C
+UNK_020ED22C: ; 0x020ED22C
+ .incbin "baserom.nds", 0xf122c, 0x24
+
+ .global UNK_020ED250
+UNK_020ED250: ; 0x020ED250
+ .incbin "baserom.nds", 0xf1250, 0x24
+
+ .global UNK_020ED274
+UNK_020ED274: ; 0x020ED274
+ .incbin "baserom.nds", 0xf1274, 0x24
+
+ .global UNK_020ED298
+UNK_020ED298: ; 0x020ED298
+ .incbin "baserom.nds", 0xf1298, 0x40
+
+ .global UNK_020ED2D8
+UNK_020ED2D8: ; 0x020ED2D8
+ .incbin "baserom.nds", 0xf12d8, 0x40
+
+ .global UNK_020ED318
+UNK_020ED318: ; 0x020ED318
+ .incbin "baserom.nds", 0xf1318, 0x40
+
+ .global UNK_020ED358
+UNK_020ED358: ; 0x020ED358
+ .incbin "baserom.nds", 0xf1358, 0x40
+
+ .global UNK_020ED398
+UNK_020ED398: ; 0x020ED398
+ .incbin "baserom.nds", 0xf1398, 0x1
+
+ .global UNK_020ED399
+UNK_020ED399: ; 0x020ED399
+ .incbin "baserom.nds", 0xf1399, 0x17
+
+ .global UNK_020ED3B0
+UNK_020ED3B0: ; 0x020ED3B0
+ .incbin "baserom.nds", 0xf13b0, 0x8
+
+ .global UNK_020ED3B8
+UNK_020ED3B8: ; 0x020ED3B8
+ .incbin "baserom.nds", 0xf13b8, 0x10
+
+ .global UNK_020ED3C8
+UNK_020ED3C8: ; 0x020ED3C8
+ .incbin "baserom.nds", 0xf13c8, 0x10
+
+ .global UNK_020ED3D8
+UNK_020ED3D8: ; 0x020ED3D8
+ .incbin "baserom.nds", 0xf13d8, 0x60
+
+ .global UNK_020ED438
+UNK_020ED438: ; 0x020ED438
+ .incbin "baserom.nds", 0xf1438, 0x60
+
+ .global UNK_020ED498
+UNK_020ED498: ; 0x020ED498
+ .incbin "baserom.nds", 0xf1498, 0xc
+
+ .global UNK_020ED4A4
+UNK_020ED4A4: ; 0x020ED4A4
+ .incbin "baserom.nds", 0xf14a4, 0xe
+
+ .global UNK_020ED4B2
+UNK_020ED4B2: ; 0x020ED4B2
+ .incbin "baserom.nds", 0xf14b2, 0x1a
+
+ .global UNK_020ED4CC
+UNK_020ED4CC: ; 0x020ED4CC
+ .incbin "baserom.nds", 0xf14cc, 0x18
+
+ .global UNK_020ED4E4
+UNK_020ED4E4: ; 0x020ED4E4
+ .incbin "baserom.nds", 0xf14e4, 0xc
+
+ .global UNK_020ED4F0
+UNK_020ED4F0: ; 0x020ED4F0
+ .incbin "baserom.nds", 0xf14f0, 0xc
+
+ .global UNK_020ED4FC
+UNK_020ED4FC: ; 0x020ED4FC
+ .incbin "baserom.nds", 0xf14fc, 0xc
+
+ .global UNK_020ED508
+UNK_020ED508: ; 0x020ED508
+ .incbin "baserom.nds", 0xf1508, 0x40
+
+ .global UNK_020ED548
+UNK_020ED548: ; 0x020ED548
+ .incbin "baserom.nds", 0xf1548, 0x4
+
+ .global UNK_020ED54C
+UNK_020ED54C: ; 0x020ED54C
+ .incbin "baserom.nds", 0xf154c, 0xa
+
+ .global UNK_020ED556
+UNK_020ED556: ; 0x020ED556
+ .incbin "baserom.nds", 0xf1556, 0x1
+
+ .global UNK_020ED557
+UNK_020ED557: ; 0x020ED557
+ .incbin "baserom.nds", 0xf1557, 0x1
+
+ .global UNK_020ED558
+UNK_020ED558: ; 0x020ED558
+ .incbin "baserom.nds", 0xf1558, 0x2
+
+ .global UNK_020ED55A
+UNK_020ED55A: ; 0x020ED55A
+ .incbin "baserom.nds", 0xf155a, 0x2
+
+ .global UNK_020ED55C
+UNK_020ED55C: ; 0x020ED55C
+ .incbin "baserom.nds", 0xf155c, 0x2
+
+ .global UNK_020ED55E
+UNK_020ED55E: ; 0x020ED55E
+ .incbin "baserom.nds", 0xf155e, 0x22
+
+ .global UNK_020ED580
+UNK_020ED580: ; 0x020ED580
+ .incbin "baserom.nds", 0xf1580, 0x4
+
+ .global UNK_020ED584
+UNK_020ED584: ; 0x020ED584
+ .incbin "baserom.nds", 0xf1584, 0x4
+
+ .global UNK_020ED588
+UNK_020ED588: ; 0x020ED588
+ .incbin "baserom.nds", 0xf1588, 0x4
+
+ .global UNK_020ED58C
+UNK_020ED58C: ; 0x020ED58C
+ .incbin "baserom.nds", 0xf158c, 0x4
+
+ .global UNK_020ED590
+UNK_020ED590: ; 0x020ED590
+ .incbin "baserom.nds", 0xf1590, 0x4
+
+ .global UNK_020ED594
+UNK_020ED594: ; 0x020ED594
+ .incbin "baserom.nds", 0xf1594, 0x4
+
+ .global UNK_020ED598
+UNK_020ED598: ; 0x020ED598
+ .incbin "baserom.nds", 0xf1598, 0x4
+
+ .global UNK_020ED59C
+UNK_020ED59C: ; 0x020ED59C
+ .incbin "baserom.nds", 0xf159c, 0x4
+
+ .global UNK_020ED5A0
+UNK_020ED5A0: ; 0x020ED5A0
+ .incbin "baserom.nds", 0xf15a0, 0x4
+
+ .global UNK_020ED5A4
+UNK_020ED5A4: ; 0x020ED5A4
+ .incbin "baserom.nds", 0xf15a4, 0x4
+
+ .global UNK_020ED5A8
+UNK_020ED5A8: ; 0x020ED5A8
+ .incbin "baserom.nds", 0xf15a8, 0x4
+
+ .global UNK_020ED5AC
+UNK_020ED5AC: ; 0x020ED5AC
+ .incbin "baserom.nds", 0xf15ac, 0x8
+
+ .global UNK_020ED5B4
+UNK_020ED5B4: ; 0x020ED5B4
+ .incbin "baserom.nds", 0xf15b4, 0x1
+
+ .global UNK_020ED5B5
+UNK_020ED5B5: ; 0x020ED5B5
+ .incbin "baserom.nds", 0xf15b5, 0xb
+
+ .global UNK_020ED5C0
+UNK_020ED5C0: ; 0x020ED5C0
+ .incbin "baserom.nds", 0xf15c0, 0x16
+
+ .global UNK_020ED5D6
+UNK_020ED5D6: ; 0x020ED5D6
+ .incbin "baserom.nds", 0xf15d6, 0x16
+
+ .global UNK_020ED5EC
+UNK_020ED5EC: ; 0x020ED5EC
+ .incbin "baserom.nds", 0xf15ec, 0x4
+
+ .global UNK_020ED5F0
+UNK_020ED5F0: ; 0x020ED5F0
+ .incbin "baserom.nds", 0xf15f0, 0x5c
+
+ .global UNK_020ED64C
+UNK_020ED64C: ; 0x020ED64C
+ .incbin "baserom.nds", 0xf164c, 0x1c
+
+ .global UNK_020ED668
+UNK_020ED668: ; 0x020ED668
+ .incbin "baserom.nds", 0xf1668, 0x4
+
+ .global UNK_020ED66C
+UNK_020ED66C: ; 0x020ED66C
+ .incbin "baserom.nds", 0xf166c, 0x4
+
+ .global UNK_020ED670
+UNK_020ED670: ; 0x020ED670
+ .incbin "baserom.nds", 0xf1670, 0x34
+
+ .global UNK_020ED6A4
+UNK_020ED6A4: ; 0x020ED6A4
+ .incbin "baserom.nds", 0xf16a4, 0x88
+
+ .global UNK_020ED72C
+UNK_020ED72C: ; 0x020ED72C
+ .incbin "baserom.nds", 0xf172c, 0x8
+
+ .global UNK_020ED734
+UNK_020ED734: ; 0x020ED734
+ .incbin "baserom.nds", 0xf1734, 0x3dc
+
+ .global UNK_020EDB10
+UNK_020EDB10: ; 0x020EDB10
+ .incbin "baserom.nds", 0xf1b10, 0x20
+
+ .global UNK_020EDB30
+UNK_020EDB30: ; 0x020EDB30
+ .incbin "baserom.nds", 0xf1b30, 0x8
+
+ .global UNK_020EDB38
+UNK_020EDB38: ; 0x020EDB38
+ .incbin "baserom.nds", 0xf1b38, 0xc
+
+ .global UNK_020EDB44
+UNK_020EDB44: ; 0x020EDB44
+ .incbin "baserom.nds", 0xf1b44, 0xc
+
+ .global UNK_020EDB50
+UNK_020EDB50: ; 0x020EDB50
+ .incbin "baserom.nds", 0xf1b50, 0xc
+
+ .global UNK_020EDB5C
+UNK_020EDB5C: ; 0x020EDB5C
+ .incbin "baserom.nds", 0xf1b5c, 0xc
+
+ .global UNK_020EDB68
+UNK_020EDB68: ; 0x020EDB68
+ .incbin "baserom.nds", 0xf1b68, 0xc
+
+ .global UNK_020EDB74
+UNK_020EDB74: ; 0x020EDB74
+ .incbin "baserom.nds", 0xf1b74, 0x10a
+
+ .global UNK_020EDC7E
+UNK_020EDC7E: ; 0x020EDC7E
+ .incbin "baserom.nds", 0xf1c7e, 0x2d2
+
+ .global UNK_020EDF50
+UNK_020EDF50: ; 0x020EDF50
+ .incbin "baserom.nds", 0xf1f50, 0x708
+
+ .global UNK_020EE658
+UNK_020EE658: ; 0x020EE658
+ .incbin "baserom.nds", 0xf2658, 0x8
+
+ .global UNK_020EE660
+UNK_020EE660: ; 0x020EE660
+ .incbin "baserom.nds", 0xf2660, 0x8
+
+ .global UNK_020EE668
+UNK_020EE668: ; 0x020EE668
+ .incbin "baserom.nds", 0xf2668, 0x4
+
+ .global UNK_020EE66C
+UNK_020EE66C: ; 0x020EE66C
+ .incbin "baserom.nds", 0xf266c, 0x8
+
+ .global UNK_020EE674
+UNK_020EE674: ; 0x020EE674
+ .incbin "baserom.nds", 0xf2674, 0x8
+
+ .global UNK_020EE67C
+UNK_020EE67C: ; 0x020EE67C
+ .incbin "baserom.nds", 0xf267c, 0x14
+
+ .global UNK_020EE690
+UNK_020EE690: ; 0x020EE690
+ .incbin "baserom.nds", 0xf2690, 0x10
+
+ .global UNK_020EE6A0
+UNK_020EE6A0: ; 0x020EE6A0
+ .incbin "baserom.nds", 0xf26a0, 0x2c
+
+ .global UNK_020EE6CC
+UNK_020EE6CC: ; 0x020EE6CC
+ .incbin "baserom.nds", 0xf26cc, 0x8
+
+ .global UNK_020EE6D4
+UNK_020EE6D4: ; 0x020EE6D4
+ .incbin "baserom.nds", 0xf26d4, 0x4
+
+ .global UNK_020EE6D8
+UNK_020EE6D8: ; 0x020EE6D8
+ .incbin "baserom.nds", 0xf26d8, 0x4
+
+ .global UNK_020EE6DC
+UNK_020EE6DC: ; 0x020EE6DC
+ .incbin "baserom.nds", 0xf26dc, 0x4
+
+ .global UNK_020EE6E0
+UNK_020EE6E0: ; 0x020EE6E0
+ .incbin "baserom.nds", 0xf26e0, 0x20
+
+ .global UNK_020EE700
+UNK_020EE700: ; 0x020EE700
+ .incbin "baserom.nds", 0xf2700, 0x242
+
+ .global UNK_020EE942
+UNK_020EE942: ; 0x020EE942
+ .incbin "baserom.nds", 0xf2942, 0x16
+
+ .global UNK_020EE958
+UNK_020EE958: ; 0x020EE958
+ .incbin "baserom.nds", 0xf2958, 0xc
+
+ .global UNK_020EE964
+UNK_020EE964: ; 0x020EE964
+ .incbin "baserom.nds", 0xf2964, 0x6
+
+ .global UNK_020EE96A
+UNK_020EE96A: ; 0x020EE96A
+ .incbin "baserom.nds", 0xf296a, 0x3a
+
+ .global UNK_020EE9A4
+UNK_020EE9A4: ; 0x020EE9A4
+ .incbin "baserom.nds", 0xf29a4, 0x4
+
+ .global UNK_020EE9A8
+UNK_020EE9A8: ; 0x020EE9A8
+ .incbin "baserom.nds", 0xf29a8, 0xd4
+
+ .global UNK_020EEA7C
+UNK_020EEA7C: ; 0x020EEA7C
+ .incbin "baserom.nds", 0xf2a7c, 0x4c
+
+ .global UNK_020EEAC8
+UNK_020EEAC8: ; 0x020EEAC8
+ .incbin "baserom.nds", 0xf2ac8, 0x1
+
+ .global UNK_020EEAC9
+UNK_020EEAC9: ; 0x020EEAC9
+ .incbin "baserom.nds", 0xf2ac9, 0x7
+
+ .global UNK_020EEAD0
+UNK_020EEAD0: ; 0x020EEAD0
+ .incbin "baserom.nds", 0xf2ad0, 0x34
+
+ .global UNK_020EEB04
+UNK_020EEB04: ; 0x020EEB04
+ .incbin "baserom.nds", 0xf2b04, 0x1a
+
+ .global UNK_020EEB1E
+UNK_020EEB1E: ; 0x020EEB1E
+ .incbin "baserom.nds", 0xf2b1e, 0x1a
+
+ .global UNK_020EEB38
+UNK_020EEB38: ; 0x020EEB38
+ .incbin "baserom.nds", 0xf2b38, 0x4
+
+ .global UNK_020EEB3C
+UNK_020EEB3C: ; 0x020EEB3C
+ .incbin "baserom.nds", 0xf2b3c, 0x4
+
+ .global UNK_020EEB40
+UNK_020EEB40: ; 0x020EEB40
+ .incbin "baserom.nds", 0xf2b40, 0x100
+
+ .global UNK_020EEC40
+UNK_020EEC40: ; 0x020EEC40
+ .incbin "baserom.nds", 0xf2c40, 0x8
+
+ .global UNK_020EEC48
+UNK_020EEC48: ; 0x020EEC48
+ .incbin "baserom.nds", 0xf2c48, 0x8
+
+ .global UNK_020EEC50
+UNK_020EEC50: ; 0x020EEC50
+ .incbin "baserom.nds", 0xf2c50, 0xc
+
+ .global UNK_020EEC5C
+UNK_020EEC5C: ; 0x020EEC5C
+ .incbin "baserom.nds", 0xf2c5c, 0xc
+
+ .global UNK_020EEC68
+UNK_020EEC68: ; 0x020EEC68
+ .incbin "baserom.nds", 0xf2c68, 0x8
+
+ .global UNK_020EEC70
+UNK_020EEC70: ; 0x020EEC70
+ .incbin "baserom.nds", 0xf2c70, 0x8
+
+ .global UNK_020EEC78
+UNK_020EEC78: ; 0x020EEC78
+ .incbin "baserom.nds", 0xf2c78, 0x8
+
+ .global UNK_020EEC80
+UNK_020EEC80: ; 0x020EEC80
+ .incbin "baserom.nds", 0xf2c80, 0x8
+
+ .global UNK_020EEC88
+UNK_020EEC88: ; 0x020EEC88
+ .incbin "baserom.nds", 0xf2c88, 0x14
+
+ .global UNK_020EEC9C
+UNK_020EEC9C: ; 0x020EEC9C
+ .incbin "baserom.nds", 0xf2c9c, 0x8
+
+ .global UNK_020EECA4
+UNK_020EECA4: ; 0x020EECA4
+ .incbin "baserom.nds", 0xf2ca4, 0x10
+
+ .global UNK_020EECB4
+UNK_020EECB4: ; 0x020EECB4
+ .incbin "baserom.nds", 0xf2cb4, 0x1c
+
+ .global UNK_020EECD0
+UNK_020EECD0: ; 0x020EECD0
+ .incbin "baserom.nds", 0xf2cd0, 0x28
+
+ .global UNK_020EECF8
+UNK_020EECF8: ; 0x020EECF8
+ .incbin "baserom.nds", 0xf2cf8, 0x8
+
+ .global UNK_020EED00
+UNK_020EED00: ; 0x020EED00
+ .incbin "baserom.nds", 0xf2d00, 0x10
+
+ .global UNK_020EED10
+UNK_020EED10: ; 0x020EED10
+ .incbin "baserom.nds", 0xf2d10, 0x1c
+
+ .global UNK_020EED2C
+UNK_020EED2C: ; 0x020EED2C
+ .incbin "baserom.nds", 0xf2d2c, 0x28
+
+ .global UNK_020EED54
+UNK_020EED54: ; 0x020EED54
+ .incbin "baserom.nds", 0xf2d54, 0x24
+
+ .global UNK_020EED78
+UNK_020EED78: ; 0x020EED78
+ .incbin "baserom.nds", 0xf2d78, 0x44
+
+ .global UNK_020EEDBC
+UNK_020EEDBC: ; 0x020EEDBC
+ .incbin "baserom.nds", 0xf2dbc, 0x1
+
+ .global UNK_020EEDBD
+UNK_020EEDBD: ; 0x020EEDBD
+ .incbin "baserom.nds", 0xf2dbd, 0x1
+
+ .global UNK_020EEDBE
+UNK_020EEDBE: ; 0x020EEDBE
+ .incbin "baserom.nds", 0xf2dbe, 0x2
+
+ .global UNK_020EEDC0
+UNK_020EEDC0: ; 0x020EEDC0
+ .incbin "baserom.nds", 0xf2dc0, 0x2
+
+ .global UNK_020EEDC2
+UNK_020EEDC2: ; 0x020EEDC2
+ .incbin "baserom.nds", 0xf2dc2, 0x2
+
+ .global UNK_020EEDC4
+UNK_020EEDC4: ; 0x020EEDC4
+ .incbin "baserom.nds", 0xf2dc4, 0x2
+
+ .global UNK_020EEDC6
+UNK_020EEDC6: ; 0x020EEDC6
+ .incbin "baserom.nds", 0xf2dc6, 0x2
+
+ .global UNK_020EEDC8
+UNK_020EEDC8: ; 0x020EEDC8
+ .incbin "baserom.nds", 0xf2dc8, 0x2
+
+ .global UNK_020EEDCA
+UNK_020EEDCA: ; 0x020EEDCA
+ .incbin "baserom.nds", 0xf2dca, 0x2
+
+ .global UNK_020EEDCC
+UNK_020EEDCC: ; 0x020EEDCC
+ .incbin "baserom.nds", 0xf2dcc, 0x2
+
+ .global UNK_020EEDCE
+UNK_020EEDCE: ; 0x020EEDCE
+ .incbin "baserom.nds", 0xf2dce, 0x2
+
+ .global UNK_020EEDD0
+UNK_020EEDD0: ; 0x020EEDD0
+ .incbin "baserom.nds", 0xf2dd0, 0x1
+
+ .global UNK_020EEDD1
+UNK_020EEDD1: ; 0x020EEDD1
+ .incbin "baserom.nds", 0xf2dd1, 0x1
+
+ .global UNK_020EEDD2
+UNK_020EEDD2: ; 0x020EEDD2
+ .incbin "baserom.nds", 0xf2dd2, 0x250
+
+ .global UNK_020EF022
+UNK_020EF022: ; 0x020EF022
+ .incbin "baserom.nds", 0xf3022, 0x101e
+
+ .global UNK_020F0040
+UNK_020F0040: ; 0x020F0040
+ .incbin "baserom.nds", 0xf4040, 0x62
+
+ .global UNK_020F00A2
+UNK_020F00A2: ; 0x020F00A2
+ .incbin "baserom.nds", 0xf40a2, 0x5e
+
+ .global UNK_020F0100
+UNK_020F0100: ; 0x020F0100
+ .incbin "baserom.nds", 0xf4100, 0x1ca
+
+ .global UNK_020F02CA
+UNK_020F02CA: ; 0x020F02CA
+ .incbin "baserom.nds", 0xf42ca, 0x93f
+
+ .global UNK_020F0C09
+UNK_020F0C09: ; 0x020F0C09
+ .incbin "baserom.nds", 0xf4c09, 0x161b
+
+ .global UNK_020F2224
+UNK_020F2224: ; 0x020F2224
+ .incbin "baserom.nds", 0xf6224, 0x2
+
+ .global UNK_020F2226
+UNK_020F2226: ; 0x020F2226
+ .incbin "baserom.nds", 0xf6226, 0x2
+
+ .global UNK_020F2228
+UNK_020F2228: ; 0x020F2228
+ .incbin "baserom.nds", 0xf6228, 0x2
+
+ .global UNK_020F222A
+UNK_020F222A: ; 0x020F222A
+ .incbin "baserom.nds", 0xf622a, 0x2
+
+ .global UNK_020F222C
+UNK_020F222C: ; 0x020F222C
+ .incbin "baserom.nds", 0xf622c, 0x2
+
+ .global UNK_020F222E
+UNK_020F222E: ; 0x020F222E
+ .incbin "baserom.nds", 0xf622e, 0x4
+
+ .global UNK_020F2232
+UNK_020F2232: ; 0x020F2232
+ .incbin "baserom.nds", 0xf6232, 0x132
+
+ .global UNK_020F2364
+UNK_020F2364: ; 0x020F2364
+ .incbin "baserom.nds", 0xf6364, 0x728
+
+ .global UNK_020F2A8C
+UNK_020F2A8C: ; 0x020F2A8C
+ .incbin "baserom.nds", 0xf6a8c, 0x4
+
+ .global UNK_020F2A90
+UNK_020F2A90: ; 0x020F2A90
+ .incbin "baserom.nds", 0xf6a90, 0xc
+
+ .global UNK_020F2A9C
+UNK_020F2A9C: ; 0x020F2A9C
+ .incbin "baserom.nds", 0xf6a9c, 0xc
+
+ .global UNK_020F2AA8
+UNK_020F2AA8: ; 0x020F2AA8
+ .incbin "baserom.nds", 0xf6aa8, 0xc
+
+ .global UNK_020F2AB4
+UNK_020F2AB4: ; 0x020F2AB4
+ .incbin "baserom.nds", 0xf6ab4, 0x18
+
+ .global UNK_020F2ACC
+UNK_020F2ACC: ; 0x020F2ACC
+ .incbin "baserom.nds", 0xf6acc, 0x4
+
+ .global UNK_020F2AD0
+UNK_020F2AD0: ; 0x020F2AD0
+ .incbin "baserom.nds", 0xf6ad0, 0x44
+
+ .global UNK_020F2B14
+UNK_020F2B14: ; 0x020F2B14
+ .incbin "baserom.nds", 0xf6b14, 0x34
+
+ .global UNK_020F2B48
+UNK_020F2B48: ; 0x020F2B48
+ .incbin "baserom.nds", 0xf6b48, 0x54
+
+ .global UNK_020F2B9C
+UNK_020F2B9C: ; 0x020F2B9C
+ .incbin "baserom.nds", 0xf6b9c, 0x14
+
+ .global UNK_020F2BB0
+UNK_020F2BB0: ; 0x020F2BB0
+ .incbin "baserom.nds", 0xf6bb0, 0x14
+
+ .global UNK_020F2BC4
+UNK_020F2BC4: ; 0x020F2BC4
+ .incbin "baserom.nds", 0xf6bc4, 0x4
+
+ .global UNK_020F2BC8
+UNK_020F2BC8: ; 0x020F2BC8
+ .incbin "baserom.nds", 0xf6bc8, 0x4
+
+ .global UNK_020F2BCC
+UNK_020F2BCC: ; 0x020F2BCC
+ .incbin "baserom.nds", 0xf6bcc, 0x4
+
+ .global UNK_020F2BD0
+UNK_020F2BD0: ; 0x020F2BD0
+ .incbin "baserom.nds", 0xf6bd0, 0xc
+
+ .global UNK_020F2BDC
+UNK_020F2BDC: ; 0x020F2BDC
+ .incbin "baserom.nds", 0xf6bdc, 0xc
+
+ .global UNK_020F2BE8
+UNK_020F2BE8: ; 0x020F2BE8
+ .incbin "baserom.nds", 0xf6be8, 0xc
+
+ .global UNK_020F2BF4
+UNK_020F2BF4: ; 0x020F2BF4
+ .incbin "baserom.nds", 0xf6bf4, 0x10
+
+ .global UNK_020F2C04
+UNK_020F2C04: ; 0x020F2C04
+ .incbin "baserom.nds", 0xf6c04, 0x10
+
+ .global UNK_020F2C14
+UNK_020F2C14: ; 0x020F2C14
+ .incbin "baserom.nds", 0xf6c14, 0x10
+
+ .global UNK_020F2C24
+UNK_020F2C24: ; 0x020F2C24
+ .incbin "baserom.nds", 0xf6c24, 0x10
+
+ .global UNK_020F2C34
+UNK_020F2C34: ; 0x020F2C34
+ .incbin "baserom.nds", 0xf6c34, 0x10
+
+ .global UNK_020F2C44
+UNK_020F2C44: ; 0x020F2C44
+ .incbin "baserom.nds", 0xf6c44, 0x10
+
+ .global UNK_020F2C54
+UNK_020F2C54: ; 0x020F2C54
+ .incbin "baserom.nds", 0xf6c54, 0x10
+
+ .global UNK_020F2C64
+UNK_020F2C64: ; 0x020F2C64
+ .incbin "baserom.nds", 0xf6c64, 0x10
+
+ .global UNK_020F2C74
+UNK_020F2C74: ; 0x020F2C74
+ .incbin "baserom.nds", 0xf6c74, 0x10
+
+ .global UNK_020F2C84
+UNK_020F2C84: ; 0x020F2C84
+ .incbin "baserom.nds", 0xf6c84, 0x10
+
+ .global UNK_020F2C94
+UNK_020F2C94: ; 0x020F2C94
+ .incbin "baserom.nds", 0xf6c94, 0x10
+
+ .global UNK_020F2CA4
+UNK_020F2CA4: ; 0x020F2CA4
+ .incbin "baserom.nds", 0xf6ca4, 0x10
+
+ .global UNK_020F2CB4
+UNK_020F2CB4: ; 0x020F2CB4
+ .incbin "baserom.nds", 0xf6cb4, 0x10
+
+ .global UNK_020F2CC4
+UNK_020F2CC4: ; 0x020F2CC4
+ .incbin "baserom.nds", 0xf6cc4, 0x10
+
+ .global UNK_020F2CD4
+UNK_020F2CD4: ; 0x020F2CD4
+ .incbin "baserom.nds", 0xf6cd4, 0x10
+
+ .global UNK_020F2CE4
+UNK_020F2CE4: ; 0x020F2CE4
+ .incbin "baserom.nds", 0xf6ce4, 0x10
+
+ .global UNK_020F2CF4
+UNK_020F2CF4: ; 0x020F2CF4
+ .incbin "baserom.nds", 0xf6cf4, 0x10
+
+ .global UNK_020F2D04
+UNK_020F2D04: ; 0x020F2D04
+ .incbin "baserom.nds", 0xf6d04, 0x10
+
+ .global UNK_020F2D14
+UNK_020F2D14: ; 0x020F2D14
+ .incbin "baserom.nds", 0xf6d14, 0x10
+
+ .global UNK_020F2D24
+UNK_020F2D24: ; 0x020F2D24
+ .incbin "baserom.nds", 0xf6d24, 0x20
+
+ .global UNK_020F2D44
+UNK_020F2D44: ; 0x020F2D44
+ .incbin "baserom.nds", 0xf6d44, 0x10
+
+ .global UNK_020F2D54
+UNK_020F2D54: ; 0x020F2D54
+ .incbin "baserom.nds", 0xf6d54, 0x10
+
+ .global UNK_020F2D64
+UNK_020F2D64: ; 0x020F2D64
+ .incbin "baserom.nds", 0xf6d64, 0x10
+
+ .global UNK_020F2D74
+UNK_020F2D74: ; 0x020F2D74
+ .incbin "baserom.nds", 0xf6d74, 0x10
+
+ .global UNK_020F2D84
+UNK_020F2D84: ; 0x020F2D84
+ .incbin "baserom.nds", 0xf6d84, 0x10
+
+ .global UNK_020F2D94
+UNK_020F2D94: ; 0x020F2D94
+ .incbin "baserom.nds", 0xf6d94, 0x10
+
+ .global UNK_020F2DA4
+UNK_020F2DA4: ; 0x020F2DA4
+ .incbin "baserom.nds", 0xf6da4, 0x10
+
+ .global UNK_020F2DB4
+UNK_020F2DB4: ; 0x020F2DB4
+ .incbin "baserom.nds", 0xf6db4, 0x728
+
+ .global UNK_020F34DC
+UNK_020F34DC: ; 0x020F34DC
+ .incbin "baserom.nds", 0xf74dc, 0x4
+
+ .global UNK_020F34E0
+UNK_020F34E0: ; 0x020F34E0
+ .incbin "baserom.nds", 0xf74e0, 0x8
+
+ .global UNK_020F34E8
+UNK_020F34E8: ; 0x020F34E8
+ .incbin "baserom.nds", 0xf74e8, 0x14
+
+ .global UNK_020F34FC
+UNK_020F34FC: ; 0x020F34FC
+ .incbin "baserom.nds", 0xf74fc, 0x3c
+
+ .global UNK_020F3538
+UNK_020F3538: ; 0x020F3538
+ .incbin "baserom.nds", 0xf7538, 0x24
.global gScriptCmdTable
gScriptCmdTable: ; 0x020F355C
@@ -731,4 +1761,3340 @@ gScriptCmdTable: ; 0x020F355C
.word FUN_0203AF84
.word FUN_0203AFA4
- .incbin "baserom.nds", 0xF80A0, 0xFEE0
+ ; 0x020F40A0
+
+ .global UNK_020F40A0
+UNK_020F40A0: ; 0x020F40A0
+ .incbin "baserom.nds", 0xf80a0, 0x6
+
+ .global UNK_020F40A6
+UNK_020F40A6: ; 0x020F40A6
+ .incbin "baserom.nds", 0xf80a6, 0x6
+
+ .global UNK_020F40AC
+UNK_020F40AC: ; 0x020F40AC
+ .incbin "baserom.nds", 0xf80ac, 0x8
+
+ .global UNK_020F40B4
+UNK_020F40B4: ; 0x020F40B4
+ .incbin "baserom.nds", 0xf80b4, 0x8
+
+ .global UNK_020F40BC
+UNK_020F40BC: ; 0x020F40BC
+ .incbin "baserom.nds", 0xf80bc, 0xa
+
+ .global UNK_020F40C6
+UNK_020F40C6: ; 0x020F40C6
+ .incbin "baserom.nds", 0xf80c6, 0xa
+
+ .global UNK_020F40D0
+UNK_020F40D0: ; 0x020F40D0
+ .incbin "baserom.nds", 0xf80d0, 0xa
+
+ .global UNK_020F40DA
+UNK_020F40DA: ; 0x020F40DA
+ .incbin "baserom.nds", 0xf80da, 0xa
+
+ .global UNK_020F40E4
+UNK_020F40E4: ; 0x020F40E4
+ .incbin "baserom.nds", 0xf80e4, 0xa
+
+ .global UNK_020F40EE
+UNK_020F40EE: ; 0x020F40EE
+ .incbin "baserom.nds", 0xf80ee, 0xa
+
+ .global UNK_020F40F8
+UNK_020F40F8: ; 0x020F40F8
+ .incbin "baserom.nds", 0xf80f8, 0xa
+
+ .global UNK_020F4102
+UNK_020F4102: ; 0x020F4102
+ .incbin "baserom.nds", 0xf8102, 0xa
+
+ .global UNK_020F410C
+UNK_020F410C: ; 0x020F410C
+ .incbin "baserom.nds", 0xf810c, 0xc
+
+ .global UNK_020F4118
+UNK_020F4118: ; 0x020F4118
+ .incbin "baserom.nds", 0xf8118, 0xe
+
+ .global UNK_020F4126
+UNK_020F4126: ; 0x020F4126
+ .incbin "baserom.nds", 0xf8126, 0xe
+
+ .global UNK_020F4134
+UNK_020F4134: ; 0x020F4134
+ .incbin "baserom.nds", 0xf8134, 0xe
+
+ .global UNK_020F4142
+UNK_020F4142: ; 0x020F4142
+ .incbin "baserom.nds", 0xf8142, 0x10
+
+ .global UNK_020F4152
+UNK_020F4152: ; 0x020F4152
+ .incbin "baserom.nds", 0xf8152, 0x10
+
+ .global UNK_020F4162
+UNK_020F4162: ; 0x020F4162
+ .incbin "baserom.nds", 0xf8162, 0x10
+
+ .global UNK_020F4172
+UNK_020F4172: ; 0x020F4172
+ .incbin "baserom.nds", 0xf8172, 0x10
+
+ .global UNK_020F4182
+UNK_020F4182: ; 0x020F4182
+ .incbin "baserom.nds", 0xf8182, 0x10
+
+ .global UNK_020F4192
+UNK_020F4192: ; 0x020F4192
+ .incbin "baserom.nds", 0xf8192, 0x10
+
+ .global UNK_020F41A2
+UNK_020F41A2: ; 0x020F41A2
+ .incbin "baserom.nds", 0xf81a2, 0x10
+
+ .global UNK_020F41B2
+UNK_020F41B2: ; 0x020F41B2
+ .incbin "baserom.nds", 0xf81b2, 0x10
+
+ .global UNK_020F41C2
+UNK_020F41C2: ; 0x020F41C2
+ .incbin "baserom.nds", 0xf81c2, 0x12
+
+ .global UNK_020F41D4
+UNK_020F41D4: ; 0x020F41D4
+ .incbin "baserom.nds", 0xf81d4, 0x12
+
+ .global UNK_020F41E6
+UNK_020F41E6: ; 0x020F41E6
+ .incbin "baserom.nds", 0xf81e6, 0x18
+
+ .global UNK_020F41FE
+UNK_020F41FE: ; 0x020F41FE
+ .incbin "baserom.nds", 0xf81fe, 0x1a
+
+ .global UNK_020F4218
+UNK_020F4218: ; 0x020F4218
+ .incbin "baserom.nds", 0xf8218, 0x4c
+
+ .global UNK_020F4264
+UNK_020F4264: ; 0x020F4264
+ .incbin "baserom.nds", 0xf8264, 0x4
+
+ .global UNK_020F4268
+UNK_020F4268: ; 0x020F4268
+ .incbin "baserom.nds", 0xf8268, 0x4
+
+ .global UNK_020F426C
+UNK_020F426C: ; 0x020F426C
+ .incbin "baserom.nds", 0xf826c, 0x4
+
+ .global UNK_020F4270
+UNK_020F4270: ; 0x020F4270
+ .incbin "baserom.nds", 0xf8270, 0xc4
+
+ .global UNK_020F4334
+UNK_020F4334: ; 0x020F4334
+ .incbin "baserom.nds", 0xf8334, 0xa
+
+ .global UNK_020F433E
+UNK_020F433E: ; 0x020F433E
+ .incbin "baserom.nds", 0xf833e, 0x2
+
+ .global UNK_020F4340
+UNK_020F4340: ; 0x020F4340
+ .incbin "baserom.nds", 0xf8340, 0xa4
+
+ .global UNK_020F43E4
+UNK_020F43E4: ; 0x020F43E4
+ .incbin "baserom.nds", 0xf83e4, 0xb0
+
+ .global UNK_020F4494
+UNK_020F4494: ; 0x020F4494
+ .incbin "baserom.nds", 0xf8494, 0x78
+
+ .global UNK_020F450C
+UNK_020F450C: ; 0x020F450C
+ .incbin "baserom.nds", 0xf850c, 0x2
+
+ .global UNK_020F450E
+UNK_020F450E: ; 0x020F450E
+ .incbin "baserom.nds", 0xf850e, 0x1a
+
+ .global UNK_020F4528
+UNK_020F4528: ; 0x020F4528
+ .incbin "baserom.nds", 0xf8528, 0x2
+
+ .global UNK_020F452A
+UNK_020F452A: ; 0x020F452A
+ .incbin "baserom.nds", 0xf852a, 0x4a
+
+ .global UNK_020F4574
+UNK_020F4574: ; 0x020F4574
+ .incbin "baserom.nds", 0xf8574, 0x8
+
+ .global UNK_020F457C
+UNK_020F457C: ; 0x020F457C
+ .incbin "baserom.nds", 0xf857c, 0x2
+
+ .global UNK_020F457E
+UNK_020F457E: ; 0x020F457E
+ .incbin "baserom.nds", 0xf857e, 0x7a
+
+ .global UNK_020F45F8
+UNK_020F45F8: ; 0x020F45F8
+ .incbin "baserom.nds", 0xf85f8, 0x30
+
+ .global UNK_020F4628
+UNK_020F4628: ; 0x020F4628
+ .incbin "baserom.nds", 0xf8628, 0x8
+
+ .global UNK_020F4630
+UNK_020F4630: ; 0x020F4630
+ .incbin "baserom.nds", 0xf8630, 0x10
+
+ .global UNK_020F4640
+UNK_020F4640: ; 0x020F4640
+ .incbin "baserom.nds", 0xf8640, 0x1c
+
+ .global UNK_020F465C
+UNK_020F465C: ; 0x020F465C
+ .incbin "baserom.nds", 0xf865c, 0x28
+
+ .global UNK_020F4684
+UNK_020F4684: ; 0x020F4684
+ .incbin "baserom.nds", 0xf8684, 0x10
+
+ .global UNK_020F4694
+UNK_020F4694: ; 0x020F4694
+ .incbin "baserom.nds", 0xf8694, 0x1c
+
+ .global UNK_020F46B0
+UNK_020F46B0: ; 0x020F46B0
+ .incbin "baserom.nds", 0xf86b0, 0x28
+
+ .global UNK_020F46D8
+UNK_020F46D8: ; 0x020F46D8
+ .incbin "baserom.nds", 0xf86d8, 0x8
+
+ .global UNK_020F46E0
+UNK_020F46E0: ; 0x020F46E0
+ .incbin "baserom.nds", 0xf86e0, 0x28
+
+ .global UNK_020F4708
+UNK_020F4708: ; 0x020F4708
+ .incbin "baserom.nds", 0xf8708, 0x8
+
+ .global UNK_020F4710
+UNK_020F4710: ; 0x020F4710
+ .incbin "baserom.nds", 0xf8710, 0x8
+
+ .global UNK_020F4718
+UNK_020F4718: ; 0x020F4718
+ .incbin "baserom.nds", 0xf8718, 0x2
+
+ .global UNK_020F471A
+UNK_020F471A: ; 0x020F471A
+ .incbin "baserom.nds", 0xf871a, 0x136
+
+ .global UNK_020F4850
+UNK_020F4850: ; 0x020F4850
+ .incbin "baserom.nds", 0xf8850, 0x8
+
+ .global UNK_020F4858
+UNK_020F4858: ; 0x020F4858
+ .incbin "baserom.nds", 0xf8858, 0x8
+
+ .global UNK_020F4860
+UNK_020F4860: ; 0x020F4860
+ .incbin "baserom.nds", 0xf8860, 0xc
+
+ .global UNK_020F486C
+UNK_020F486C: ; 0x020F486C
+ .incbin "baserom.nds", 0xf886c, 0xc
+
+ .global UNK_020F4878
+UNK_020F4878: ; 0x020F4878
+ .incbin "baserom.nds", 0xf8878, 0x1c
+
+ .global UNK_020F4894
+UNK_020F4894: ; 0x020F4894
+ .incbin "baserom.nds", 0xf8894, 0x1c
+
+ .global UNK_020F48B0
+UNK_020F48B0: ; 0x020F48B0
+ .incbin "baserom.nds", 0xf88b0, 0x1c
+
+ .global UNK_020F48CC
+UNK_020F48CC: ; 0x020F48CC
+ .incbin "baserom.nds", 0xf88cc, 0x1
+
+ .global UNK_020F48CD
+UNK_020F48CD: ; 0x020F48CD
+ .incbin "baserom.nds", 0xf88cd, 0xa
+
+ .global UNK_020F48D7
+UNK_020F48D7: ; 0x020F48D7
+ .incbin "baserom.nds", 0xf88d7, 0x1
+
+ .global UNK_020F48D8
+UNK_020F48D8: ; 0x020F48D8
+ .incbin "baserom.nds", 0xf88d8, 0x1
+
+ .global UNK_020F48D9
+UNK_020F48D9: ; 0x020F48D9
+ .incbin "baserom.nds", 0xf88d9, 0x3
+
+ .global UNK_020F48DC
+UNK_020F48DC: ; 0x020F48DC
+ .incbin "baserom.nds", 0xf88dc, 0x4
+
+ .global UNK_020F48E0
+UNK_020F48E0: ; 0x020F48E0
+ .incbin "baserom.nds", 0xf88e0, 0x4
+
+ .global UNK_020F48E4
+UNK_020F48E4: ; 0x020F48E4
+ .incbin "baserom.nds", 0xf88e4, 0x1
+
+ .global UNK_020F48E5
+UNK_020F48E5: ; 0x020F48E5
+ .incbin "baserom.nds", 0xf88e5, 0x15f
+
+ .global UNK_020F4A44
+UNK_020F4A44: ; 0x020F4A44
+ .incbin "baserom.nds", 0xf8a44, 0xdbc
+
+ .global UNK_020F5800
+UNK_020F5800: ; 0x020F5800
+ .incbin "baserom.nds", 0xf9800, 0x8
+
+ .global UNK_020F5808
+UNK_020F5808: ; 0x020F5808
+ .incbin "baserom.nds", 0xf9808, 0xc
+
+ .global UNK_020F5814
+UNK_020F5814: ; 0x020F5814
+ .incbin "baserom.nds", 0xf9814, 0x10
+
+ .global UNK_020F5824
+UNK_020F5824: ; 0x020F5824
+ .incbin "baserom.nds", 0xf9824, 0x14
+
+ .global UNK_020F5838
+UNK_020F5838: ; 0x020F5838
+ .incbin "baserom.nds", 0xf9838, 0x10
+
+ .global UNK_020F5848
+UNK_020F5848: ; 0x020F5848
+ .incbin "baserom.nds", 0xf9848, 0x38
+
+ .global UNK_020F5880
+UNK_020F5880: ; 0x020F5880
+ .incbin "baserom.nds", 0xf9880, 0xc
+
+ .global UNK_020F588C
+UNK_020F588C: ; 0x020F588C
+ .incbin "baserom.nds", 0xf988c, 0x8
+
+ .global UNK_020F5894
+UNK_020F5894: ; 0x020F5894
+ .incbin "baserom.nds", 0xf9894, 0x8
+
+ .global UNK_020F589C
+UNK_020F589C: ; 0x020F589C
+ .incbin "baserom.nds", 0xf989c, 0x8
+
+ .global UNK_020F58A4
+UNK_020F58A4: ; 0x020F58A4
+ .incbin "baserom.nds", 0xf98a4, 0x8
+
+ .global UNK_020F58AC
+UNK_020F58AC: ; 0x020F58AC
+ .incbin "baserom.nds", 0xf98ac, 0x8
+
+ .global UNK_020F58B4
+UNK_020F58B4: ; 0x020F58B4
+ .incbin "baserom.nds", 0xf98b4, 0x10
+
+ .global UNK_020F58C4
+UNK_020F58C4: ; 0x020F58C4
+ .incbin "baserom.nds", 0xf98c4, 0x10
+
+ .global UNK_020F58D4
+UNK_020F58D4: ; 0x020F58D4
+ .incbin "baserom.nds", 0xf98d4, 0x14
+
+ .global UNK_020F58E8
+UNK_020F58E8: ; 0x020F58E8
+ .incbin "baserom.nds", 0xf98e8, 0x18
+
+ .global UNK_020F5900
+UNK_020F5900: ; 0x020F5900
+ .incbin "baserom.nds", 0xf9900, 0x18
+
+ .global UNK_020F5918
+UNK_020F5918: ; 0x020F5918
+ .incbin "baserom.nds", 0xf9918, 0x18
+
+ .global UNK_020F5930
+UNK_020F5930: ; 0x020F5930
+ .incbin "baserom.nds", 0xf9930, 0x18
+
+ .global UNK_020F5948
+UNK_020F5948: ; 0x020F5948
+ .incbin "baserom.nds", 0xf9948, 0x1c
+
+ .global UNK_020F5964
+UNK_020F5964: ; 0x020F5964
+ .incbin "baserom.nds", 0xf9964, 0x20
+
+ .global UNK_020F5984
+UNK_020F5984: ; 0x020F5984
+ .incbin "baserom.nds", 0xf9984, 0x20
+
+ .global UNK_020F59A4
+UNK_020F59A4: ; 0x020F59A4
+ .incbin "baserom.nds", 0xf99a4, 0x20
+
+ .global UNK_020F59C4
+UNK_020F59C4: ; 0x020F59C4
+ .incbin "baserom.nds", 0xf99c4, 0x18
+
+ .global UNK_020F59DC
+UNK_020F59DC: ; 0x020F59DC
+ .incbin "baserom.nds", 0xf99dc, 0x38
+
+ .global UNK_020F5A14
+UNK_020F5A14: ; 0x020F5A14
+ .incbin "baserom.nds", 0xf9a14, 0x30
+
+ .global UNK_020F5A44
+UNK_020F5A44: ; 0x020F5A44
+ .incbin "baserom.nds", 0xf9a44, 0x30
+
+ .global UNK_020F5A74
+UNK_020F5A74: ; 0x020F5A74
+ .incbin "baserom.nds", 0xf9a74, 0x50
+
+ .global UNK_020F5AC4
+UNK_020F5AC4: ; 0x020F5AC4
+ .incbin "baserom.nds", 0xf9ac4, 0x80
+
+ .global UNK_020F5B44
+UNK_020F5B44: ; 0x020F5B44
+ .incbin "baserom.nds", 0xf9b44, 0x4
+
+ .global UNK_020F5B48
+UNK_020F5B48: ; 0x020F5B48
+ .incbin "baserom.nds", 0xf9b48, 0x4
+
+ .global UNK_020F5B4C
+UNK_020F5B4C: ; 0x020F5B4C
+ .incbin "baserom.nds", 0xf9b4c, 0xb8
+
+ .global UNK_020F5C04
+UNK_020F5C04: ; 0x020F5C04
+ .incbin "baserom.nds", 0xf9c04, 0x4
+
+ .global UNK_020F5C08
+UNK_020F5C08: ; 0x020F5C08
+ .incbin "baserom.nds", 0xf9c08, 0xc
+
+ .global UNK_020F5C14
+UNK_020F5C14: ; 0x020F5C14
+ .incbin "baserom.nds", 0xf9c14, 0x100
+
+ .global UNK_020F5D14
+UNK_020F5D14: ; 0x020F5D14
+ .incbin "baserom.nds", 0xf9d14, 0x8
+
+ .global UNK_020F5D1C
+UNK_020F5D1C: ; 0x020F5D1C
+ .incbin "baserom.nds", 0xf9d1c, 0x18
+
+ .global UNK_020F5D34
+UNK_020F5D34: ; 0x020F5D34
+ .incbin "baserom.nds", 0xf9d34, 0x4
+
+ .global UNK_020F5D38
+UNK_020F5D38: ; 0x020F5D38
+ .incbin "baserom.nds", 0xf9d38, 0x24
+
+ .global UNK_020F5D5C
+UNK_020F5D5C: ; 0x020F5D5C
+ .incbin "baserom.nds", 0xf9d5c, 0x10
+
+ .global UNK_020F5D6C
+UNK_020F5D6C: ; 0x020F5D6C
+ .incbin "baserom.nds", 0xf9d6c, 0x10
+
+ .global UNK_020F5D7C
+UNK_020F5D7C: ; 0x020F5D7C
+ .incbin "baserom.nds", 0xf9d7c, 0x10
+
+ .global UNK_020F5D8C
+UNK_020F5D8C: ; 0x020F5D8C
+ .incbin "baserom.nds", 0xf9d8c, 0x10
+
+ .global UNK_020F5D9C
+UNK_020F5D9C: ; 0x020F5D9C
+ .incbin "baserom.nds", 0xf9d9c, 0x10
+
+ .global UNK_020F5DAC
+UNK_020F5DAC: ; 0x020F5DAC
+ .incbin "baserom.nds", 0xf9dac, 0x10
+
+ .global UNK_020F5DBC
+UNK_020F5DBC: ; 0x020F5DBC
+ .incbin "baserom.nds", 0xf9dbc, 0x10
+
+ .global UNK_020F5DCC
+UNK_020F5DCC: ; 0x020F5DCC
+ .incbin "baserom.nds", 0xf9dcc, 0x10
+
+ .global UNK_020F5DDC
+UNK_020F5DDC: ; 0x020F5DDC
+ .incbin "baserom.nds", 0xf9ddc, 0x10
+
+ .global UNK_020F5DEC
+UNK_020F5DEC: ; 0x020F5DEC
+ .incbin "baserom.nds", 0xf9dec, 0x10
+
+ .global UNK_020F5DFC
+UNK_020F5DFC: ; 0x020F5DFC
+ .incbin "baserom.nds", 0xf9dfc, 0x10
+
+ .global UNK_020F5E0C
+UNK_020F5E0C: ; 0x020F5E0C
+ .incbin "baserom.nds", 0xf9e0c, 0x10
+
+ .global UNK_020F5E1C
+UNK_020F5E1C: ; 0x020F5E1C
+ .incbin "baserom.nds", 0xf9e1c, 0x10
+
+ .global UNK_020F5E2C
+UNK_020F5E2C: ; 0x020F5E2C
+ .incbin "baserom.nds", 0xf9e2c, 0x10
+
+ .global UNK_020F5E3C
+UNK_020F5E3C: ; 0x020F5E3C
+ .incbin "baserom.nds", 0xf9e3c, 0x10
+
+ .global UNK_020F5E4C
+UNK_020F5E4C: ; 0x020F5E4C
+ .incbin "baserom.nds", 0xf9e4c, 0x10
+
+ .global UNK_020F5E5C
+UNK_020F5E5C: ; 0x020F5E5C
+ .incbin "baserom.nds", 0xf9e5c, 0x10
+
+ .global UNK_020F5E6C
+UNK_020F5E6C: ; 0x020F5E6C
+ .incbin "baserom.nds", 0xf9e6c, 0x10
+
+ .global UNK_020F5E7C
+UNK_020F5E7C: ; 0x020F5E7C
+ .incbin "baserom.nds", 0xf9e7c, 0x10
+
+ .global UNK_020F5E8C
+UNK_020F5E8C: ; 0x020F5E8C
+ .incbin "baserom.nds", 0xf9e8c, 0x10
+
+ .global UNK_020F5E9C
+UNK_020F5E9C: ; 0x020F5E9C
+ .incbin "baserom.nds", 0xf9e9c, 0x10
+
+ .global UNK_020F5EAC
+UNK_020F5EAC: ; 0x020F5EAC
+ .incbin "baserom.nds", 0xf9eac, 0x10
+
+ .global UNK_020F5EBC
+UNK_020F5EBC: ; 0x020F5EBC
+ .incbin "baserom.nds", 0xf9ebc, 0x14
+
+ .global UNK_020F5ED0
+UNK_020F5ED0: ; 0x020F5ED0
+ .incbin "baserom.nds", 0xf9ed0, 0x14
+
+ .global UNK_020F5EE4
+UNK_020F5EE4: ; 0x020F5EE4
+ .incbin "baserom.nds", 0xf9ee4, 0x14
+
+ .global UNK_020F5EF8
+UNK_020F5EF8: ; 0x020F5EF8
+ .incbin "baserom.nds", 0xf9ef8, 0x14
+
+ .global UNK_020F5F0C
+UNK_020F5F0C: ; 0x020F5F0C
+ .incbin "baserom.nds", 0xf9f0c, 0x14
+
+ .global UNK_020F5F20
+UNK_020F5F20: ; 0x020F5F20
+ .incbin "baserom.nds", 0xf9f20, 0x14
+
+ .global UNK_020F5F34
+UNK_020F5F34: ; 0x020F5F34
+ .incbin "baserom.nds", 0xf9f34, 0x14
+
+ .global UNK_020F5F48
+UNK_020F5F48: ; 0x020F5F48
+ .incbin "baserom.nds", 0xf9f48, 0x14
+
+ .global UNK_020F5F5C
+UNK_020F5F5C: ; 0x020F5F5C
+ .incbin "baserom.nds", 0xf9f5c, 0x14
+
+ .global UNK_020F5F70
+UNK_020F5F70: ; 0x020F5F70
+ .incbin "baserom.nds", 0xf9f70, 0x14
+
+ .global UNK_020F5F84
+UNK_020F5F84: ; 0x020F5F84
+ .incbin "baserom.nds", 0xf9f84, 0x14
+
+ .global UNK_020F5F98
+UNK_020F5F98: ; 0x020F5F98
+ .incbin "baserom.nds", 0xf9f98, 0x14
+
+ .global UNK_020F5FAC
+UNK_020F5FAC: ; 0x020F5FAC
+ .incbin "baserom.nds", 0xf9fac, 0x14
+
+ .global UNK_020F5FC0
+UNK_020F5FC0: ; 0x020F5FC0
+ .incbin "baserom.nds", 0xf9fc0, 0x14
+
+ .global UNK_020F5FD4
+UNK_020F5FD4: ; 0x020F5FD4
+ .incbin "baserom.nds", 0xf9fd4, 0x14
+
+ .global UNK_020F5FE8
+UNK_020F5FE8: ; 0x020F5FE8
+ .incbin "baserom.nds", 0xf9fe8, 0x14
+
+ .global UNK_020F5FFC
+UNK_020F5FFC: ; 0x020F5FFC
+ .incbin "baserom.nds", 0xf9ffc, 0x14
+
+ .global UNK_020F6010
+UNK_020F6010: ; 0x020F6010
+ .incbin "baserom.nds", 0xfa010, 0x14
+
+ .global UNK_020F6024
+UNK_020F6024: ; 0x020F6024
+ .incbin "baserom.nds", 0xfa024, 0x14
+
+ .global UNK_020F6038
+UNK_020F6038: ; 0x020F6038
+ .incbin "baserom.nds", 0xfa038, 0x14
+
+ .global UNK_020F604C
+UNK_020F604C: ; 0x020F604C
+ .incbin "baserom.nds", 0xfa04c, 0x14
+
+ .global UNK_020F6060
+UNK_020F6060: ; 0x020F6060
+ .incbin "baserom.nds", 0xfa060, 0x14
+
+ .global UNK_020F6074
+UNK_020F6074: ; 0x020F6074
+ .incbin "baserom.nds", 0xfa074, 0x14
+
+ .global UNK_020F6088
+UNK_020F6088: ; 0x020F6088
+ .incbin "baserom.nds", 0xfa088, 0x14
+
+ .global UNK_020F609C
+UNK_020F609C: ; 0x020F609C
+ .incbin "baserom.nds", 0xfa09c, 0x14
+
+ .global UNK_020F60B0
+UNK_020F60B0: ; 0x020F60B0
+ .incbin "baserom.nds", 0xfa0b0, 0x14
+
+ .global UNK_020F60C4
+UNK_020F60C4: ; 0x020F60C4
+ .incbin "baserom.nds", 0xfa0c4, 0x14
+
+ .global UNK_020F60D8
+UNK_020F60D8: ; 0x020F60D8
+ .incbin "baserom.nds", 0xfa0d8, 0x14
+
+ .global UNK_020F60EC
+UNK_020F60EC: ; 0x020F60EC
+ .incbin "baserom.nds", 0xfa0ec, 0x14
+
+ .global UNK_020F6100
+UNK_020F6100: ; 0x020F6100
+ .incbin "baserom.nds", 0xfa100, 0x14
+
+ .global UNK_020F6114
+UNK_020F6114: ; 0x020F6114
+ .incbin "baserom.nds", 0xfa114, 0x14
+
+ .global UNK_020F6128
+UNK_020F6128: ; 0x020F6128
+ .incbin "baserom.nds", 0xfa128, 0x14
+
+ .global UNK_020F613C
+UNK_020F613C: ; 0x020F613C
+ .incbin "baserom.nds", 0xfa13c, 0x14
+
+ .global UNK_020F6150
+UNK_020F6150: ; 0x020F6150
+ .incbin "baserom.nds", 0xfa150, 0x14
+
+ .global UNK_020F6164
+UNK_020F6164: ; 0x020F6164
+ .incbin "baserom.nds", 0xfa164, 0x14
+
+ .global UNK_020F6178
+UNK_020F6178: ; 0x020F6178
+ .incbin "baserom.nds", 0xfa178, 0x14
+
+ .global UNK_020F618C
+UNK_020F618C: ; 0x020F618C
+ .incbin "baserom.nds", 0xfa18c, 0x14
+
+ .global UNK_020F61A0
+UNK_020F61A0: ; 0x020F61A0
+ .incbin "baserom.nds", 0xfa1a0, 0x14
+
+ .global UNK_020F61B4
+UNK_020F61B4: ; 0x020F61B4
+ .incbin "baserom.nds", 0xfa1b4, 0x14
+
+ .global UNK_020F61C8
+UNK_020F61C8: ; 0x020F61C8
+ .incbin "baserom.nds", 0xfa1c8, 0x14
+
+ .global UNK_020F61DC
+UNK_020F61DC: ; 0x020F61DC
+ .incbin "baserom.nds", 0xfa1dc, 0x14
+
+ .global UNK_020F61F0
+UNK_020F61F0: ; 0x020F61F0
+ .incbin "baserom.nds", 0xfa1f0, 0x14
+
+ .global UNK_020F6204
+UNK_020F6204: ; 0x020F6204
+ .incbin "baserom.nds", 0xfa204, 0x14
+
+ .global UNK_020F6218
+UNK_020F6218: ; 0x020F6218
+ .incbin "baserom.nds", 0xfa218, 0x14
+
+ .global UNK_020F622C
+UNK_020F622C: ; 0x020F622C
+ .incbin "baserom.nds", 0xfa22c, 0x14
+
+ .global UNK_020F6240
+UNK_020F6240: ; 0x020F6240
+ .incbin "baserom.nds", 0xfa240, 0x14
+
+ .global UNK_020F6254
+UNK_020F6254: ; 0x020F6254
+ .incbin "baserom.nds", 0xfa254, 0x14
+
+ .global UNK_020F6268
+UNK_020F6268: ; 0x020F6268
+ .incbin "baserom.nds", 0xfa268, 0x14
+
+ .global UNK_020F627C
+UNK_020F627C: ; 0x020F627C
+ .incbin "baserom.nds", 0xfa27c, 0x14
+
+ .global UNK_020F6290
+UNK_020F6290: ; 0x020F6290
+ .incbin "baserom.nds", 0xfa290, 0x14
+
+ .global UNK_020F62A4
+UNK_020F62A4: ; 0x020F62A4
+ .incbin "baserom.nds", 0xfa2a4, 0x14
+
+ .global UNK_020F62B8
+UNK_020F62B8: ; 0x020F62B8
+ .incbin "baserom.nds", 0xfa2b8, 0x14
+
+ .global UNK_020F62CC
+UNK_020F62CC: ; 0x020F62CC
+ .incbin "baserom.nds", 0xfa2cc, 0x14
+
+ .global UNK_020F62E0
+UNK_020F62E0: ; 0x020F62E0
+ .incbin "baserom.nds", 0xfa2e0, 0x14
+
+ .global UNK_020F62F4
+UNK_020F62F4: ; 0x020F62F4
+ .incbin "baserom.nds", 0xfa2f4, 0x14
+
+ .global UNK_020F6308
+UNK_020F6308: ; 0x020F6308
+ .incbin "baserom.nds", 0xfa308, 0x5c
+
+ .global UNK_020F6364
+UNK_020F6364: ; 0x020F6364
+ .incbin "baserom.nds", 0xfa364, 0xdc
+
+ .global UNK_020F6440
+UNK_020F6440: ; 0x020F6440
+ .incbin "baserom.nds", 0xfa440, 0x1a4
+
+ .global UNK_020F65E4
+UNK_020F65E4: ; 0x020F65E4
+ .incbin "baserom.nds", 0xfa5e4, 0xc
+
+ .global UNK_020F65F0
+UNK_020F65F0: ; 0x020F65F0
+ .incbin "baserom.nds", 0xfa5f0, 0xc
+
+ .global UNK_020F65FC
+UNK_020F65FC: ; 0x020F65FC
+ .incbin "baserom.nds", 0xfa5fc, 0xc
+
+ .global UNK_020F6608
+UNK_020F6608: ; 0x020F6608
+ .incbin "baserom.nds", 0xfa608, 0xc
+
+ .global UNK_020F6614
+UNK_020F6614: ; 0x020F6614
+ .incbin "baserom.nds", 0xfa614, 0xc
+
+ .global UNK_020F6620
+UNK_020F6620: ; 0x020F6620
+ .incbin "baserom.nds", 0xfa620, 0x10
+
+ .global UNK_020F6630
+UNK_020F6630: ; 0x020F6630
+ .incbin "baserom.nds", 0xfa630, 0x10
+
+ .global UNK_020F6640
+UNK_020F6640: ; 0x020F6640
+ .incbin "baserom.nds", 0xfa640, 0x10
+
+ .global UNK_020F6650
+UNK_020F6650: ; 0x020F6650
+ .incbin "baserom.nds", 0xfa650, 0x10
+
+ .global UNK_020F6660
+UNK_020F6660: ; 0x020F6660
+ .incbin "baserom.nds", 0xfa660, 0x10
+
+ .global UNK_020F6670
+UNK_020F6670: ; 0x020F6670
+ .incbin "baserom.nds", 0xfa670, 0x8
+
+ .global UNK_020F6678
+UNK_020F6678: ; 0x020F6678
+ .incbin "baserom.nds", 0xfa678, 0xc
+
+ .global UNK_020F6684
+UNK_020F6684: ; 0x020F6684
+ .incbin "baserom.nds", 0xfa684, 0xc
+
+ .global UNK_020F6690
+UNK_020F6690: ; 0x020F6690
+ .incbin "baserom.nds", 0xfa690, 0xc
+
+ .global UNK_020F669C
+UNK_020F669C: ; 0x020F669C
+ .incbin "baserom.nds", 0xfa69c, 0xc
+
+ .global UNK_020F66A8
+UNK_020F66A8: ; 0x020F66A8
+ .incbin "baserom.nds", 0xfa6a8, 0xc
+
+ .global UNK_020F66B4
+UNK_020F66B4: ; 0x020F66B4
+ .incbin "baserom.nds", 0xfa6b4, 0xc
+
+ .global UNK_020F66C0
+UNK_020F66C0: ; 0x020F66C0
+ .incbin "baserom.nds", 0xfa6c0, 0xc
+
+ .global UNK_020F66CC
+UNK_020F66CC: ; 0x020F66CC
+ .incbin "baserom.nds", 0xfa6cc, 0xc
+
+ .global UNK_020F66D8
+UNK_020F66D8: ; 0x020F66D8
+ .incbin "baserom.nds", 0xfa6d8, 0xc
+
+ .global UNK_020F66E4
+UNK_020F66E4: ; 0x020F66E4
+ .incbin "baserom.nds", 0xfa6e4, 0x10
+
+ .global UNK_020F66F4
+UNK_020F66F4: ; 0x020F66F4
+ .incbin "baserom.nds", 0xfa6f4, 0x10
+
+ .global UNK_020F6704
+UNK_020F6704: ; 0x020F6704
+ .incbin "baserom.nds", 0xfa704, 0x10
+
+ .global UNK_020F6714
+UNK_020F6714: ; 0x020F6714
+ .incbin "baserom.nds", 0xfa714, 0x10
+
+ .global UNK_020F6724
+UNK_020F6724: ; 0x020F6724
+ .incbin "baserom.nds", 0xfa724, 0x10
+
+ .global UNK_020F6734
+UNK_020F6734: ; 0x020F6734
+ .incbin "baserom.nds", 0xfa734, 0x10
+
+ .global UNK_020F6744
+UNK_020F6744: ; 0x020F6744
+ .incbin "baserom.nds", 0xfa744, 0x10
+
+ .global UNK_020F6754
+UNK_020F6754: ; 0x020F6754
+ .incbin "baserom.nds", 0xfa754, 0x10
+
+ .global UNK_020F6764
+UNK_020F6764: ; 0x020F6764
+ .incbin "baserom.nds", 0xfa764, 0x10
+
+ .global UNK_020F6774
+UNK_020F6774: ; 0x020F6774
+ .incbin "baserom.nds", 0xfa774, 0x10
+
+ .global UNK_020F6784
+UNK_020F6784: ; 0x020F6784
+ .incbin "baserom.nds", 0xfa784, 0x10
+
+ .global UNK_020F6794
+UNK_020F6794: ; 0x020F6794
+ .incbin "baserom.nds", 0xfa794, 0x10
+
+ .global UNK_020F67A4
+UNK_020F67A4: ; 0x020F67A4
+ .incbin "baserom.nds", 0xfa7a4, 0x10
+
+ .global UNK_020F67B4
+UNK_020F67B4: ; 0x020F67B4
+ .incbin "baserom.nds", 0xfa7b4, 0x10
+
+ .global UNK_020F67C4
+UNK_020F67C4: ; 0x020F67C4
+ .incbin "baserom.nds", 0xfa7c4, 0x10
+
+ .global UNK_020F67D4
+UNK_020F67D4: ; 0x020F67D4
+ .incbin "baserom.nds", 0xfa7d4, 0x10
+
+ .global UNK_020F67E4
+UNK_020F67E4: ; 0x020F67E4
+ .incbin "baserom.nds", 0xfa7e4, 0x10
+
+ .global UNK_020F67F4
+UNK_020F67F4: ; 0x020F67F4
+ .incbin "baserom.nds", 0xfa7f4, 0x10
+
+ .global UNK_020F6804
+UNK_020F6804: ; 0x020F6804
+ .incbin "baserom.nds", 0xfa804, 0x10
+
+ .global UNK_020F6814
+UNK_020F6814: ; 0x020F6814
+ .incbin "baserom.nds", 0xfa814, 0x10
+
+ .global UNK_020F6824
+UNK_020F6824: ; 0x020F6824
+ .incbin "baserom.nds", 0xfa824, 0x10
+
+ .global UNK_020F6834
+UNK_020F6834: ; 0x020F6834
+ .incbin "baserom.nds", 0xfa834, 0x10
+
+ .global UNK_020F6844
+UNK_020F6844: ; 0x020F6844
+ .incbin "baserom.nds", 0xfa844, 0x10
+
+ .global UNK_020F6854
+UNK_020F6854: ; 0x020F6854
+ .incbin "baserom.nds", 0xfa854, 0x10
+
+ .global UNK_020F6864
+UNK_020F6864: ; 0x020F6864
+ .incbin "baserom.nds", 0xfa864, 0x10
+
+ .global UNK_020F6874
+UNK_020F6874: ; 0x020F6874
+ .incbin "baserom.nds", 0xfa874, 0x10
+
+ .global UNK_020F6884
+UNK_020F6884: ; 0x020F6884
+ .incbin "baserom.nds", 0xfa884, 0x10
+
+ .global UNK_020F6894
+UNK_020F6894: ; 0x020F6894
+ .incbin "baserom.nds", 0xfa894, 0x10
+
+ .global UNK_020F68A4
+UNK_020F68A4: ; 0x020F68A4
+ .incbin "baserom.nds", 0xfa8a4, 0x10
+
+ .global UNK_020F68B4
+UNK_020F68B4: ; 0x020F68B4
+ .incbin "baserom.nds", 0xfa8b4, 0x10
+
+ .global UNK_020F68C4
+UNK_020F68C4: ; 0x020F68C4
+ .incbin "baserom.nds", 0xfa8c4, 0x14
+
+ .global UNK_020F68D8
+UNK_020F68D8: ; 0x020F68D8
+ .incbin "baserom.nds", 0xfa8d8, 0x14
+
+ .global UNK_020F68EC
+UNK_020F68EC: ; 0x020F68EC
+ .incbin "baserom.nds", 0xfa8ec, 0x14
+
+ .global UNK_020F6900
+UNK_020F6900: ; 0x020F6900
+ .incbin "baserom.nds", 0xfa900, 0x14
+
+ .global UNK_020F6914
+UNK_020F6914: ; 0x020F6914
+ .incbin "baserom.nds", 0xfa914, 0x14
+
+ .global UNK_020F6928
+UNK_020F6928: ; 0x020F6928
+ .incbin "baserom.nds", 0xfa928, 0x14
+
+ .global UNK_020F693C
+UNK_020F693C: ; 0x020F693C
+ .incbin "baserom.nds", 0xfa93c, 0x14
+
+ .global UNK_020F6950
+UNK_020F6950: ; 0x020F6950
+ .incbin "baserom.nds", 0xfa950, 0x14
+
+ .global UNK_020F6964
+UNK_020F6964: ; 0x020F6964
+ .incbin "baserom.nds", 0xfa964, 0x20
+
+ .global UNK_020F6984
+UNK_020F6984: ; 0x020F6984
+ .incbin "baserom.nds", 0xfa984, 0x38
+
+ .global UNK_020F69BC
+UNK_020F69BC: ; 0x020F69BC
+ .incbin "baserom.nds", 0xfa9bc, 0x140
+
+ .global UNK_020F6AFC
+UNK_020F6AFC: ; 0x020F6AFC
+ .incbin "baserom.nds", 0xfaafc, 0x8
+
+ .global UNK_020F6B04
+UNK_020F6B04: ; 0x020F6B04
+ .incbin "baserom.nds", 0xfab04, 0x8
+
+ .global UNK_020F6B0C
+UNK_020F6B0C: ; 0x020F6B0C
+ .incbin "baserom.nds", 0xfab0c, 0x8
+
+ .global UNK_020F6B14
+UNK_020F6B14: ; 0x020F6B14
+ .incbin "baserom.nds", 0xfab14, 0x8
+
+ .global UNK_020F6B1C
+UNK_020F6B1C: ; 0x020F6B1C
+ .incbin "baserom.nds", 0xfab1c, 0x8
+
+ .global UNK_020F6B24
+UNK_020F6B24: ; 0x020F6B24
+ .incbin "baserom.nds", 0xfab24, 0x8
+
+ .global UNK_020F6B2C
+UNK_020F6B2C: ; 0x020F6B2C
+ .incbin "baserom.nds", 0xfab2c, 0x8
+
+ .global UNK_020F6B34
+UNK_020F6B34: ; 0x020F6B34
+ .incbin "baserom.nds", 0xfab34, 0x8
+
+ .global UNK_020F6B3C
+UNK_020F6B3C: ; 0x020F6B3C
+ .incbin "baserom.nds", 0xfab3c, 0x8
+
+ .global UNK_020F6B44
+UNK_020F6B44: ; 0x020F6B44
+ .incbin "baserom.nds", 0xfab44, 0x8
+
+ .global UNK_020F6B4C
+UNK_020F6B4C: ; 0x020F6B4C
+ .incbin "baserom.nds", 0xfab4c, 0xc
+
+ .global UNK_020F6B58
+UNK_020F6B58: ; 0x020F6B58
+ .incbin "baserom.nds", 0xfab58, 0xc
+
+ .global UNK_020F6B64
+UNK_020F6B64: ; 0x020F6B64
+ .incbin "baserom.nds", 0xfab64, 0xc
+
+ .global UNK_020F6B70
+UNK_020F6B70: ; 0x020F6B70
+ .incbin "baserom.nds", 0xfab70, 0xc
+
+ .global UNK_020F6B7C
+UNK_020F6B7C: ; 0x020F6B7C
+ .incbin "baserom.nds", 0xfab7c, 0xc
+
+ .global UNK_020F6B88
+UNK_020F6B88: ; 0x020F6B88
+ .incbin "baserom.nds", 0xfab88, 0xc
+
+ .global UNK_020F6B94
+UNK_020F6B94: ; 0x020F6B94
+ .incbin "baserom.nds", 0xfab94, 0xc
+
+ .global UNK_020F6BA0
+UNK_020F6BA0: ; 0x020F6BA0
+ .incbin "baserom.nds", 0xfaba0, 0xc
+
+ .global UNK_020F6BAC
+UNK_020F6BAC: ; 0x020F6BAC
+ .incbin "baserom.nds", 0xfabac, 0xc
+
+ .global UNK_020F6BB8
+UNK_020F6BB8: ; 0x020F6BB8
+ .incbin "baserom.nds", 0xfabb8, 0xc
+
+ .global UNK_020F6BC4
+UNK_020F6BC4: ; 0x020F6BC4
+ .incbin "baserom.nds", 0xfabc4, 0xc
+
+ .global UNK_020F6BD0
+UNK_020F6BD0: ; 0x020F6BD0
+ .incbin "baserom.nds", 0xfabd0, 0xc
+
+ .global UNK_020F6BDC
+UNK_020F6BDC: ; 0x020F6BDC
+ .incbin "baserom.nds", 0xfabdc, 0xc
+
+ .global UNK_020F6BE8
+UNK_020F6BE8: ; 0x020F6BE8
+ .incbin "baserom.nds", 0xfabe8, 0xc
+
+ .global UNK_020F6BF4
+UNK_020F6BF4: ; 0x020F6BF4
+ .incbin "baserom.nds", 0xfabf4, 0xc
+
+ .global UNK_020F6C00
+UNK_020F6C00: ; 0x020F6C00
+ .incbin "baserom.nds", 0xfac00, 0xc
+
+ .global UNK_020F6C0C
+UNK_020F6C0C: ; 0x020F6C0C
+ .incbin "baserom.nds", 0xfac0c, 0xc
+
+ .global UNK_020F6C18
+UNK_020F6C18: ; 0x020F6C18
+ .incbin "baserom.nds", 0xfac18, 0xc
+
+ .global UNK_020F6C24
+UNK_020F6C24: ; 0x020F6C24
+ .incbin "baserom.nds", 0xfac24, 0xc
+
+ .global UNK_020F6C30
+UNK_020F6C30: ; 0x020F6C30
+ .incbin "baserom.nds", 0xfac30, 0xc
+
+ .global UNK_020F6C3C
+UNK_020F6C3C: ; 0x020F6C3C
+ .incbin "baserom.nds", 0xfac3c, 0xc
+
+ .global UNK_020F6C48
+UNK_020F6C48: ; 0x020F6C48
+ .incbin "baserom.nds", 0xfac48, 0xc
+
+ .global UNK_020F6C54
+UNK_020F6C54: ; 0x020F6C54
+ .incbin "baserom.nds", 0xfac54, 0x18
+
+ .global UNK_020F6C6C
+UNK_020F6C6C: ; 0x020F6C6C
+ .incbin "baserom.nds", 0xfac6c, 0x18
+
+ .global UNK_020F6C84
+UNK_020F6C84: ; 0x020F6C84
+ .incbin "baserom.nds", 0xfac84, 0x1c
+
+ .global UNK_020F6CA0
+UNK_020F6CA0: ; 0x020F6CA0
+ .incbin "baserom.nds", 0xfaca0, 0x40
+
+ .global UNK_020F6CE0
+UNK_020F6CE0: ; 0x020F6CE0
+ .incbin "baserom.nds", 0xface0, 0x40
+
+ .global UNK_020F6D20
+UNK_020F6D20: ; 0x020F6D20
+ .incbin "baserom.nds", 0xfad20, 0x40
+
+ .global UNK_020F6D60
+UNK_020F6D60: ; 0x020F6D60
+ .incbin "baserom.nds", 0xfad60, 0xc
+
+ .global UNK_020F6D6C
+UNK_020F6D6C: ; 0x020F6D6C
+ .incbin "baserom.nds", 0xfad6c, 0xc
+
+ .global UNK_020F6D78
+UNK_020F6D78: ; 0x020F6D78
+ .incbin "baserom.nds", 0xfad78, 0xc
+
+ .global UNK_020F6D84
+UNK_020F6D84: ; 0x020F6D84
+ .incbin "baserom.nds", 0xfad84, 0xc
+
+ .global UNK_020F6D90
+UNK_020F6D90: ; 0x020F6D90
+ .incbin "baserom.nds", 0xfad90, 0xc
+
+ .global UNK_020F6D9C
+UNK_020F6D9C: ; 0x020F6D9C
+ .incbin "baserom.nds", 0xfad9c, 0xc
+
+ .global UNK_020F6DA8
+UNK_020F6DA8: ; 0x020F6DA8
+ .incbin "baserom.nds", 0xfada8, 0xc
+
+ .global UNK_020F6DB4
+UNK_020F6DB4: ; 0x020F6DB4
+ .incbin "baserom.nds", 0xfadb4, 0xc
+
+ .global UNK_020F6DC0
+UNK_020F6DC0: ; 0x020F6DC0
+ .incbin "baserom.nds", 0xfadc0, 0xc
+
+ .global UNK_020F6DCC
+UNK_020F6DCC: ; 0x020F6DCC
+ .incbin "baserom.nds", 0xfadcc, 0xc
+
+ .global UNK_020F6DD8
+UNK_020F6DD8: ; 0x020F6DD8
+ .incbin "baserom.nds", 0xfadd8, 0xc
+
+ .global UNK_020F6DE4
+UNK_020F6DE4: ; 0x020F6DE4
+ .incbin "baserom.nds", 0xfade4, 0xc
+
+ .global UNK_020F6DF0
+UNK_020F6DF0: ; 0x020F6DF0
+ .incbin "baserom.nds", 0xfadf0, 0xc
+
+ .global UNK_020F6DFC
+UNK_020F6DFC: ; 0x020F6DFC
+ .incbin "baserom.nds", 0xfadfc, 0xc
+
+ .global UNK_020F6E08
+UNK_020F6E08: ; 0x020F6E08
+ .incbin "baserom.nds", 0xfae08, 0xc
+
+ .global UNK_020F6E14
+UNK_020F6E14: ; 0x020F6E14
+ .incbin "baserom.nds", 0xfae14, 0xc
+
+ .global UNK_020F6E20
+UNK_020F6E20: ; 0x020F6E20
+ .incbin "baserom.nds", 0xfae20, 0xc
+
+ .global UNK_020F6E2C
+UNK_020F6E2C: ; 0x020F6E2C
+ .incbin "baserom.nds", 0xfae2c, 0xc
+
+ .global UNK_020F6E38
+UNK_020F6E38: ; 0x020F6E38
+ .incbin "baserom.nds", 0xfae38, 0xc
+
+ .global UNK_020F6E44
+UNK_020F6E44: ; 0x020F6E44
+ .incbin "baserom.nds", 0xfae44, 0xc
+
+ .global UNK_020F6E50
+UNK_020F6E50: ; 0x020F6E50
+ .incbin "baserom.nds", 0xfae50, 0xc
+
+ .global UNK_020F6E5C
+UNK_020F6E5C: ; 0x020F6E5C
+ .incbin "baserom.nds", 0xfae5c, 0xc
+
+ .global UNK_020F6E68
+UNK_020F6E68: ; 0x020F6E68
+ .incbin "baserom.nds", 0xfae68, 0xc
+
+ .global UNK_020F6E74
+UNK_020F6E74: ; 0x020F6E74
+ .incbin "baserom.nds", 0xfae74, 0xc
+
+ .global UNK_020F6E80
+UNK_020F6E80: ; 0x020F6E80
+ .incbin "baserom.nds", 0xfae80, 0xc
+
+ .global UNK_020F6E8C
+UNK_020F6E8C: ; 0x020F6E8C
+ .incbin "baserom.nds", 0xfae8c, 0xc
+
+ .global UNK_020F6E98
+UNK_020F6E98: ; 0x020F6E98
+ .incbin "baserom.nds", 0xfae98, 0xc
+
+ .global UNK_020F6EA4
+UNK_020F6EA4: ; 0x020F6EA4
+ .incbin "baserom.nds", 0xfaea4, 0xc
+
+ .global UNK_020F6EB0
+UNK_020F6EB0: ; 0x020F6EB0
+ .incbin "baserom.nds", 0xfaeb0, 0xc
+
+ .global UNK_020F6EBC
+UNK_020F6EBC: ; 0x020F6EBC
+ .incbin "baserom.nds", 0xfaebc, 0xc
+
+ .global UNK_020F6EC8
+UNK_020F6EC8: ; 0x020F6EC8
+ .incbin "baserom.nds", 0xfaec8, 0xc
+
+ .global UNK_020F6ED4
+UNK_020F6ED4: ; 0x020F6ED4
+ .incbin "baserom.nds", 0xfaed4, 0xc
+
+ .global UNK_020F6EE0
+UNK_020F6EE0: ; 0x020F6EE0
+ .incbin "baserom.nds", 0xfaee0, 0xc
+
+ .global UNK_020F6EEC
+UNK_020F6EEC: ; 0x020F6EEC
+ .incbin "baserom.nds", 0xfaeec, 0xc
+
+ .global UNK_020F6EF8
+UNK_020F6EF8: ; 0x020F6EF8
+ .incbin "baserom.nds", 0xfaef8, 0xc
+
+ .global UNK_020F6F04
+UNK_020F6F04: ; 0x020F6F04
+ .incbin "baserom.nds", 0xfaf04, 0xc
+
+ .global UNK_020F6F10
+UNK_020F6F10: ; 0x020F6F10
+ .incbin "baserom.nds", 0xfaf10, 0xc
+
+ .global UNK_020F6F1C
+UNK_020F6F1C: ; 0x020F6F1C
+ .incbin "baserom.nds", 0xfaf1c, 0xc
+
+ .global UNK_020F6F28
+UNK_020F6F28: ; 0x020F6F28
+ .incbin "baserom.nds", 0xfaf28, 0xc
+
+ .global UNK_020F6F34
+UNK_020F6F34: ; 0x020F6F34
+ .incbin "baserom.nds", 0xfaf34, 0xc
+
+ .global UNK_020F6F40
+UNK_020F6F40: ; 0x020F6F40
+ .incbin "baserom.nds", 0xfaf40, 0xc
+
+ .global UNK_020F6F4C
+UNK_020F6F4C: ; 0x020F6F4C
+ .incbin "baserom.nds", 0xfaf4c, 0xc
+
+ .global UNK_020F6F58
+UNK_020F6F58: ; 0x020F6F58
+ .incbin "baserom.nds", 0xfaf58, 0xc
+
+ .global UNK_020F6F64
+UNK_020F6F64: ; 0x020F6F64
+ .incbin "baserom.nds", 0xfaf64, 0xc
+
+ .global UNK_020F6F70
+UNK_020F6F70: ; 0x020F6F70
+ .incbin "baserom.nds", 0xfaf70, 0xc
+
+ .global UNK_020F6F7C
+UNK_020F6F7C: ; 0x020F6F7C
+ .incbin "baserom.nds", 0xfaf7c, 0xc
+
+ .global UNK_020F6F88
+UNK_020F6F88: ; 0x020F6F88
+ .incbin "baserom.nds", 0xfaf88, 0xc
+
+ .global UNK_020F6F94
+UNK_020F6F94: ; 0x020F6F94
+ .incbin "baserom.nds", 0xfaf94, 0xc
+
+ .global UNK_020F6FA0
+UNK_020F6FA0: ; 0x020F6FA0
+ .incbin "baserom.nds", 0xfafa0, 0xc
+
+ .global UNK_020F6FAC
+UNK_020F6FAC: ; 0x020F6FAC
+ .incbin "baserom.nds", 0xfafac, 0xc
+
+ .global UNK_020F6FB8
+UNK_020F6FB8: ; 0x020F6FB8
+ .incbin "baserom.nds", 0xfafb8, 0xc
+
+ .global UNK_020F6FC4
+UNK_020F6FC4: ; 0x020F6FC4
+ .incbin "baserom.nds", 0xfafc4, 0xc
+
+ .global UNK_020F6FD0
+UNK_020F6FD0: ; 0x020F6FD0
+ .incbin "baserom.nds", 0xfafd0, 0xc
+
+ .global UNK_020F6FDC
+UNK_020F6FDC: ; 0x020F6FDC
+ .incbin "baserom.nds", 0xfafdc, 0xc
+
+ .global UNK_020F6FE8
+UNK_020F6FE8: ; 0x020F6FE8
+ .incbin "baserom.nds", 0xfafe8, 0xc
+
+ .global UNK_020F6FF4
+UNK_020F6FF4: ; 0x020F6FF4
+ .incbin "baserom.nds", 0xfaff4, 0xc
+
+ .global UNK_020F7000
+UNK_020F7000: ; 0x020F7000
+ .incbin "baserom.nds", 0xfb000, 0xc
+
+ .global UNK_020F700C
+UNK_020F700C: ; 0x020F700C
+ .incbin "baserom.nds", 0xfb00c, 0xc
+
+ .global UNK_020F7018
+UNK_020F7018: ; 0x020F7018
+ .incbin "baserom.nds", 0xfb018, 0xc
+
+ .global UNK_020F7024
+UNK_020F7024: ; 0x020F7024
+ .incbin "baserom.nds", 0xfb024, 0xc
+
+ .global UNK_020F7030
+UNK_020F7030: ; 0x020F7030
+ .incbin "baserom.nds", 0xfb030, 0xc
+
+ .global UNK_020F703C
+UNK_020F703C: ; 0x020F703C
+ .incbin "baserom.nds", 0xfb03c, 0xc
+
+ .global UNK_020F7048
+UNK_020F7048: ; 0x020F7048
+ .incbin "baserom.nds", 0xfb048, 0xc
+
+ .global UNK_020F7054
+UNK_020F7054: ; 0x020F7054
+ .incbin "baserom.nds", 0xfb054, 0xc
+
+ .global UNK_020F7060
+UNK_020F7060: ; 0x020F7060
+ .incbin "baserom.nds", 0xfb060, 0xc
+
+ .global UNK_020F706C
+UNK_020F706C: ; 0x020F706C
+ .incbin "baserom.nds", 0xfb06c, 0xc
+
+ .global UNK_020F7078
+UNK_020F7078: ; 0x020F7078
+ .incbin "baserom.nds", 0xfb078, 0xc
+
+ .global UNK_020F7084
+UNK_020F7084: ; 0x020F7084
+ .incbin "baserom.nds", 0xfb084, 0xc
+
+ .global UNK_020F7090
+UNK_020F7090: ; 0x020F7090
+ .incbin "baserom.nds", 0xfb090, 0xc
+
+ .global UNK_020F709C
+UNK_020F709C: ; 0x020F709C
+ .incbin "baserom.nds", 0xfb09c, 0xc
+
+ .global UNK_020F70A8
+UNK_020F70A8: ; 0x020F70A8
+ .incbin "baserom.nds", 0xfb0a8, 0xc
+
+ .global UNK_020F70B4
+UNK_020F70B4: ; 0x020F70B4
+ .incbin "baserom.nds", 0xfb0b4, 0xc
+
+ .global UNK_020F70C0
+UNK_020F70C0: ; 0x020F70C0
+ .incbin "baserom.nds", 0xfb0c0, 0xc
+
+ .global UNK_020F70CC
+UNK_020F70CC: ; 0x020F70CC
+ .incbin "baserom.nds", 0xfb0cc, 0xc
+
+ .global UNK_020F70D8
+UNK_020F70D8: ; 0x020F70D8
+ .incbin "baserom.nds", 0xfb0d8, 0x10
+
+ .global UNK_020F70E8
+UNK_020F70E8: ; 0x020F70E8
+ .incbin "baserom.nds", 0xfb0e8, 0x10
+
+ .global UNK_020F70F8
+UNK_020F70F8: ; 0x020F70F8
+ .incbin "baserom.nds", 0xfb0f8, 0x20
+
+ .global UNK_020F7118
+UNK_020F7118: ; 0x020F7118
+ .incbin "baserom.nds", 0xfb118, 0x30
+
+ .global UNK_020F7148
+UNK_020F7148: ; 0x020F7148
+ .incbin "baserom.nds", 0xfb148, 0x30
+
+ .global UNK_020F7178
+UNK_020F7178: ; 0x020F7178
+ .incbin "baserom.nds", 0xfb178, 0x30
+
+ .global UNK_020F71A8
+UNK_020F71A8: ; 0x020F71A8
+ .incbin "baserom.nds", 0xfb1a8, 0x10
+
+ .global UNK_020F71B8
+UNK_020F71B8: ; 0x020F71B8
+ .incbin "baserom.nds", 0xfb1b8, 0x48
+
+ .global UNK_020F7200
+UNK_020F7200: ; 0x020F7200
+ .incbin "baserom.nds", 0xfb200, 0x20
+
+ .global UNK_020F7220
+UNK_020F7220: ; 0x020F7220
+ .incbin "baserom.nds", 0xfb220, 0x20
+
+ .global UNK_020F7240
+UNK_020F7240: ; 0x020F7240
+ .incbin "baserom.nds", 0xfb240, 0x20
+
+ .global UNK_020F7260
+UNK_020F7260: ; 0x020F7260
+ .incbin "baserom.nds", 0xfb260, 0x4
+
+ .global UNK_020F7264
+UNK_020F7264: ; 0x020F7264
+ .incbin "baserom.nds", 0xfb264, 0x4
+
+ .global UNK_020F7268
+UNK_020F7268: ; 0x020F7268
+ .incbin "baserom.nds", 0xfb268, 0x10c
+
+ .global UNK_020F7374
+UNK_020F7374: ; 0x020F7374
+ .incbin "baserom.nds", 0xfb374, 0xc
+
+ .global UNK_020F7380
+UNK_020F7380: ; 0x020F7380
+ .incbin "baserom.nds", 0xfb380, 0x8
+
+ .global UNK_020F7388
+UNK_020F7388: ; 0x020F7388
+ .incbin "baserom.nds", 0xfb388, 0x8
+
+ .global UNK_020F7390
+UNK_020F7390: ; 0x020F7390
+ .incbin "baserom.nds", 0xfb390, 0x8
+
+ .global UNK_020F7398
+UNK_020F7398: ; 0x020F7398
+ .incbin "baserom.nds", 0xfb398, 0xc
+
+ .global UNK_020F73A4
+UNK_020F73A4: ; 0x020F73A4
+ .incbin "baserom.nds", 0xfb3a4, 0xc
+
+ .global UNK_020F73B0
+UNK_020F73B0: ; 0x020F73B0
+ .incbin "baserom.nds", 0xfb3b0, 0x18
+
+ .global UNK_020F73C8
+UNK_020F73C8: ; 0x020F73C8
+ .incbin "baserom.nds", 0xfb3c8, 0x68
+
+ .global UNK_020F7430
+UNK_020F7430: ; 0x020F7430
+ .incbin "baserom.nds", 0xfb430, 0x6
+
+ .global UNK_020F7436
+UNK_020F7436: ; 0x020F7436
+ .incbin "baserom.nds", 0xfb436, 0xa
+
+ .global UNK_020F7440
+UNK_020F7440: ; 0x020F7440
+ .incbin "baserom.nds", 0xfb440, 0x14
+
+ .global UNK_020F7454
+UNK_020F7454: ; 0x020F7454
+ .incbin "baserom.nds", 0xfb454, 0xc
+
+ .global UNK_020F7460
+UNK_020F7460: ; 0x020F7460
+ .incbin "baserom.nds", 0xfb460, 0x74
+
+ .global UNK_020F74D4
+UNK_020F74D4: ; 0x020F74D4
+ .incbin "baserom.nds", 0xfb4d4, 0x15c
+
+ .global UNK_020F7630
+UNK_020F7630: ; 0x020F7630
+ .incbin "baserom.nds", 0xfb630, 0x10
+
+ .global UNK_020F7640
+UNK_020F7640: ; 0x020F7640
+ .incbin "baserom.nds", 0xfb640, 0x10
+
+ .global UNK_020F7650
+UNK_020F7650: ; 0x020F7650
+ .incbin "baserom.nds", 0xfb650, 0x8
+
+ .global UNK_020F7658
+UNK_020F7658: ; 0x020F7658
+ .incbin "baserom.nds", 0xfb658, 0x24
+
+ .global UNK_020F767C
+UNK_020F767C: ; 0x020F767C
+ .incbin "baserom.nds", 0xfb67c, 0x30
+
+ .global UNK_020F76AC
+UNK_020F76AC: ; 0x020F76AC
+ .incbin "baserom.nds", 0xfb6ac, 0x48
+
+ .global UNK_020F76F4
+UNK_020F76F4: ; 0x020F76F4
+ .incbin "baserom.nds", 0xfb6f4, 0x68
+
+ .global UNK_020F775C
+UNK_020F775C: ; 0x020F775C
+ .incbin "baserom.nds", 0xfb75c, 0x88
+
+ .global UNK_020F77E4
+UNK_020F77E4: ; 0x020F77E4
+ .incbin "baserom.nds", 0xfb7e4, 0xc0
+
+ .global UNK_020F78A4
+UNK_020F78A4: ; 0x020F78A4
+ .incbin "baserom.nds", 0xfb8a4, 0x2
+
+ .global UNK_020F78A6
+UNK_020F78A6: ; 0x020F78A6
+ .incbin "baserom.nds", 0xfb8a6, 0x148
+
+ .global UNK_020F79EE
+UNK_020F79EE: ; 0x020F79EE
+ .incbin "baserom.nds", 0xfb9ee, 0x1da
+
+ .global UNK_020F7BC8
+UNK_020F7BC8: ; 0x020F7BC8
+ .incbin "baserom.nds", 0xfbbc8, 0x8
+
+ .global UNK_020F7BD0
+UNK_020F7BD0: ; 0x020F7BD0
+ .incbin "baserom.nds", 0xfbbd0, 0xc
+
+ .global UNK_020F7BDC
+UNK_020F7BDC: ; 0x020F7BDC
+ .incbin "baserom.nds", 0xfbbdc, 0x18
+
+ .global UNK_020F7BF4
+UNK_020F7BF4: ; 0x020F7BF4
+ .incbin "baserom.nds", 0xfbbf4, 0x18
+
+ .global UNK_020F7C0C
+UNK_020F7C0C: ; 0x020F7C0C
+ .incbin "baserom.nds", 0xfbc0c, 0x20
+
+ .global UNK_020F7C2C
+UNK_020F7C2C: ; 0x020F7C2C
+ .incbin "baserom.nds", 0xfbc2c, 0x20
+
+ .global UNK_020F7C4C
+UNK_020F7C4C: ; 0x020F7C4C
+ .incbin "baserom.nds", 0xfbc4c, 0x30
+
+ .global UNK_020F7C7C
+UNK_020F7C7C: ; 0x020F7C7C
+ .incbin "baserom.nds", 0xfbc7c, 0x68
+
+ .global UNK_020F7CE4
+UNK_020F7CE4: ; 0x020F7CE4
+ .incbin "baserom.nds", 0xfbce4, 0x4
+
+ .global UNK_020F7CE8
+UNK_020F7CE8: ; 0x020F7CE8
+ .incbin "baserom.nds", 0xfbce8, 0x64
+
+ .global UNK_020F7D4C
+UNK_020F7D4C: ; 0x020F7D4C
+ .incbin "baserom.nds", 0xfbd4c, 0x18
+
+ .global UNK_020F7D64
+UNK_020F7D64: ; 0x020F7D64
+ .incbin "baserom.nds", 0xfbd64, 0xc
+
+ .global UNK_020F7D70
+UNK_020F7D70: ; 0x020F7D70
+ .incbin "baserom.nds", 0xfbd70, 0x4
+
+ .global UNK_020F7D74
+UNK_020F7D74: ; 0x020F7D74
+ .incbin "baserom.nds", 0xfbd74, 0xc
+
+ .global UNK_020F7D80
+UNK_020F7D80: ; 0x020F7D80
+ .incbin "baserom.nds", 0xfbd80, 0x4
+
+ .global UNK_020F7D84
+UNK_020F7D84: ; 0x020F7D84
+ .incbin "baserom.nds", 0xfbd84, 0xc4
+
+ .global UNK_020F7E48
+UNK_020F7E48: ; 0x020F7E48
+ .incbin "baserom.nds", 0xfbe48, 0xc
+
+ .global UNK_020F7E54
+UNK_020F7E54: ; 0x020F7E54
+ .incbin "baserom.nds", 0xfbe54, 0x18
+
+ .global UNK_020F7E6C
+UNK_020F7E6C: ; 0x020F7E6C
+ .incbin "baserom.nds", 0xfbe6c, 0x8
+
+ .global UNK_020F7E74
+UNK_020F7E74: ; 0x020F7E74
+ .incbin "baserom.nds", 0xfbe74, 0x8
+
+ .global UNK_020F7E7C
+UNK_020F7E7C: ; 0x020F7E7C
+ .incbin "baserom.nds", 0xfbe7c, 0x8
+
+ .global UNK_020F7E84
+UNK_020F7E84: ; 0x020F7E84
+ .incbin "baserom.nds", 0xfbe84, 0x8
+
+ .global UNK_020F7E8C
+UNK_020F7E8C: ; 0x020F7E8C
+ .incbin "baserom.nds", 0xfbe8c, 0x20
+
+ .global UNK_020F7EAC
+UNK_020F7EAC: ; 0x020F7EAC
+ .incbin "baserom.nds", 0xfbeac, 0x20
+
+ .global UNK_020F7ECC
+UNK_020F7ECC: ; 0x020F7ECC
+ .incbin "baserom.nds", 0xfbecc, 0x2
+
+ .global UNK_020F7ECE
+UNK_020F7ECE: ; 0x020F7ECE
+ .incbin "baserom.nds", 0xfbece, 0x6
+
+ .global UNK_020F7ED4
+UNK_020F7ED4: ; 0x020F7ED4
+ .incbin "baserom.nds", 0xfbed4, 0x1e
+
+ .global UNK_020F7EF2
+UNK_020F7EF2: ; 0x020F7EF2
+ .incbin "baserom.nds", 0xfbef2, 0x24
+
+ .global UNK_020F7F16
+UNK_020F7F16: ; 0x020F7F16
+ .incbin "baserom.nds", 0xfbf16, 0x7d
+
+ .global UNK_020F7F93
+UNK_020F7F93: ; 0x020F7F93
+ .incbin "baserom.nds", 0xfbf93, 0x7d
+
+ .global UNK_020F8010
+UNK_020F8010: ; 0x020F8010
+ .incbin "baserom.nds", 0xfc010, 0x64
+
+ .global UNK_020F8074
+UNK_020F8074: ; 0x020F8074
+ .incbin "baserom.nds", 0xfc074, 0x218
+
+ .global UNK_020F828C
+UNK_020F828C: ; 0x020F828C
+ .incbin "baserom.nds", 0xfc28c, 0x90
+
+ .global UNK_020F831C
+UNK_020F831C: ; 0x020F831C
+ .incbin "baserom.nds", 0xfc31c, 0x4
+
+ .global UNK_020F8320
+UNK_020F8320: ; 0x020F8320
+ .incbin "baserom.nds", 0xfc320, 0x8
+
+ .global UNK_020F8328
+UNK_020F8328: ; 0x020F8328
+ .incbin "baserom.nds", 0xfc328, 0x10
+
+ .global UNK_020F8338
+UNK_020F8338: ; 0x020F8338
+ .incbin "baserom.nds", 0xfc338, 0x1c
+
+ .global UNK_020F8354
+UNK_020F8354: ; 0x020F8354
+ .incbin "baserom.nds", 0xfc354, 0x28
+
+ .global UNK_020F837C
+UNK_020F837C: ; 0x020F837C
+ .incbin "baserom.nds", 0xfc37c, 0x54
+
+ .global UNK_020F83D0
+UNK_020F83D0: ; 0x020F83D0
+ .incbin "baserom.nds", 0xfc3d0, 0x4
+
+ .global UNK_020F83D4
+UNK_020F83D4: ; 0x020F83D4
+ .incbin "baserom.nds", 0xfc3d4, 0xc
+
+ .global UNK_020F83E0
+UNK_020F83E0: ; 0x020F83E0
+ .incbin "baserom.nds", 0xfc3e0, 0x5c
+
+ .global UNK_020F843C
+UNK_020F843C: ; 0x020F843C
+ .incbin "baserom.nds", 0xfc43c, 0x18
+
+ .global UNK_020F8454
+UNK_020F8454: ; 0x020F8454
+ .incbin "baserom.nds", 0xfc454, 0x18
+
+ .global UNK_020F846C
+UNK_020F846C: ; 0x020F846C
+ .incbin "baserom.nds", 0xfc46c, 0x80
+
+ .global UNK_020F84EC
+UNK_020F84EC: ; 0x020F84EC
+ .incbin "baserom.nds", 0xfc4ec, 0xc8
+
+ .global UNK_020F85B4
+UNK_020F85B4: ; 0x020F85B4
+ .incbin "baserom.nds", 0xfc5b4, 0x2
+
+ .global UNK_020F85B6
+UNK_020F85B6: ; 0x020F85B6
+ .incbin "baserom.nds", 0xfc5b6, 0x2
+
+ .global UNK_020F85B8
+UNK_020F85B8: ; 0x020F85B8
+ .incbin "baserom.nds", 0xfc5b8, 0x2
+
+ .global UNK_020F85BA
+UNK_020F85BA: ; 0x020F85BA
+ .incbin "baserom.nds", 0xfc5ba, 0xe82
+
+ .global UNK_020F943C
+UNK_020F943C: ; 0x020F943C
+ .incbin "baserom.nds", 0xfd43c, 0x10
+
+ .global UNK_020F944C
+UNK_020F944C: ; 0x020F944C
+ .incbin "baserom.nds", 0xfd44c, 0x1
+
+ .global UNK_020F944D
+UNK_020F944D: ; 0x020F944D
+ .incbin "baserom.nds", 0xfd44d, 0xb
+
+ .global UNK_020F9458
+UNK_020F9458: ; 0x020F9458
+ .incbin "baserom.nds", 0xfd458, 0x10
+
+ .global UNK_020F9468
+UNK_020F9468: ; 0x020F9468
+ .incbin "baserom.nds", 0xfd468, 0x18
+
+ .global UNK_020F9480
+UNK_020F9480: ; 0x020F9480
+ .incbin "baserom.nds", 0xfd480, 0x1c
+
+ .global UNK_020F949C
+UNK_020F949C: ; 0x020F949C
+ .incbin "baserom.nds", 0xfd49c, 0x1c
+
+ .global UNK_020F94B8
+UNK_020F94B8: ; 0x020F94B8
+ .incbin "baserom.nds", 0xfd4b8, 0x1c
+
+ .global UNK_020F94D4
+UNK_020F94D4: ; 0x020F94D4
+ .incbin "baserom.nds", 0xfd4d4, 0x1c
+
+ .global UNK_020F94F0
+UNK_020F94F0: ; 0x020F94F0
+ .incbin "baserom.nds", 0xfd4f0, 0x1c
+
+ .global UNK_020F950C
+UNK_020F950C: ; 0x020F950C
+ .incbin "baserom.nds", 0xfd50c, 0x1c
+
+ .global UNK_020F9528
+UNK_020F9528: ; 0x020F9528
+ .incbin "baserom.nds", 0xfd528, 0x1c
+
+ .global UNK_020F9544
+UNK_020F9544: ; 0x020F9544
+ .incbin "baserom.nds", 0xfd544, 0x20
+
+ .global UNK_020F9564
+UNK_020F9564: ; 0x020F9564
+ .incbin "baserom.nds", 0xfd564, 0x28
+
+ .global UNK_020F958C
+UNK_020F958C: ; 0x020F958C
+ .incbin "baserom.nds", 0xfd58c, 0x40
+
+ .global UNK_020F95CC
+UNK_020F95CC: ; 0x020F95CC
+ .incbin "baserom.nds", 0xfd5cc, 0x40
+
+ .global UNK_020F960C
+UNK_020F960C: ; 0x020F960C
+ .incbin "baserom.nds", 0xfd60c, 0x40
+
+ .global UNK_020F964C
+UNK_020F964C: ; 0x020F964C
+ .incbin "baserom.nds", 0xfd64c, 0x48
+
+ .global UNK_020F9694
+UNK_020F9694: ; 0x020F9694
+ .incbin "baserom.nds", 0xfd694, 0x48
+
+ .global UNK_020F96DC
+UNK_020F96DC: ; 0x020F96DC
+ .incbin "baserom.nds", 0xfd6dc, 0x10
+
+ .global UNK_020F96EC
+UNK_020F96EC: ; 0x020F96EC
+ .incbin "baserom.nds", 0xfd6ec, 0x8
+
+ .global UNK_020F96F4
+UNK_020F96F4: ; 0x020F96F4
+ .incbin "baserom.nds", 0xfd6f4, 0x30
+
+ .global UNK_020F9724
+UNK_020F9724: ; 0x020F9724
+ .incbin "baserom.nds", 0xfd724, 0x8
+
+ .global UNK_020F972C
+UNK_020F972C: ; 0x020F972C
+ .incbin "baserom.nds", 0xfd72c, 0x8
+
+ .global UNK_020F9734
+UNK_020F9734: ; 0x020F9734
+ .incbin "baserom.nds", 0xfd734, 0x8
+
+ .global UNK_020F973C
+UNK_020F973C: ; 0x020F973C
+ .incbin "baserom.nds", 0xfd73c, 0x8
+
+ .global UNK_020F9744
+UNK_020F9744: ; 0x020F9744
+ .incbin "baserom.nds", 0xfd744, 0x8
+
+ .global UNK_020F974C
+UNK_020F974C: ; 0x020F974C
+ .incbin "baserom.nds", 0xfd74c, 0x8
+
+ .global UNK_020F9754
+UNK_020F9754: ; 0x020F9754
+ .incbin "baserom.nds", 0xfd754, 0x8
+
+ .global UNK_020F975C
+UNK_020F975C: ; 0x020F975C
+ .incbin "baserom.nds", 0xfd75c, 0x50
+
+ .global UNK_020F97AC
+UNK_020F97AC: ; 0x020F97AC
+ .incbin "baserom.nds", 0xfd7ac, 0x50
+
+ .global UNK_020F97FC
+UNK_020F97FC: ; 0x020F97FC
+ .incbin "baserom.nds", 0xfd7fc, 0xc8
+
+ .global UNK_020F98C4
+UNK_020F98C4: ; 0x020F98C4
+ .incbin "baserom.nds", 0xfd8c4, 0x14
+
+ .global UNK_020F98D8
+UNK_020F98D8: ; 0x020F98D8
+ .incbin "baserom.nds", 0xfd8d8, 0x1c
+
+ .global UNK_020F98F4
+UNK_020F98F4: ; 0x020F98F4
+ .incbin "baserom.nds", 0xfd8f4, 0x20
+
+ .global UNK_020F9914
+UNK_020F9914: ; 0x020F9914
+ .incbin "baserom.nds", 0xfd914, 0x28
+
+ .global UNK_020F993C
+UNK_020F993C: ; 0x020F993C
+ .incbin "baserom.nds", 0xfd93c, 0x28
+
+ .global UNK_020F9964
+UNK_020F9964: ; 0x020F9964
+ .incbin "baserom.nds", 0xfd964, 0x28
+
+ .global UNK_020F998C
+UNK_020F998C: ; 0x020F998C
+ .incbin "baserom.nds", 0xfd98c, 0x2f8
+
+ .global UNK_020F9C84
+UNK_020F9C84: ; 0x020F9C84
+ .incbin "baserom.nds", 0xfdc84, 0x28
+
+ .global UNK_020F9CAC
+UNK_020F9CAC: ; 0x020F9CAC
+ .incbin "baserom.nds", 0xfdcac, 0x7c
+
+ .global UNK_020F9D28
+UNK_020F9D28: ; 0x020F9D28
+ .incbin "baserom.nds", 0xfdd28, 0x4
+
+ .global UNK_020F9D2C
+UNK_020F9D2C: ; 0x020F9D2C
+ .incbin "baserom.nds", 0xfdd2c, 0x4
+
+ .global UNK_020F9D30
+UNK_020F9D30: ; 0x020F9D30
+ .incbin "baserom.nds", 0xfdd30, 0x8
+
+ .global UNK_020F9D38
+UNK_020F9D38: ; 0x020F9D38
+ .incbin "baserom.nds", 0xfdd38, 0x8
+
+ .global UNK_020F9D40
+UNK_020F9D40: ; 0x020F9D40
+ .incbin "baserom.nds", 0xfdd40, 0xc
+
+ .global UNK_020F9D4C
+UNK_020F9D4C: ; 0x020F9D4C
+ .incbin "baserom.nds", 0xfdd4c, 0x10
+
+ .global UNK_020F9D5C
+UNK_020F9D5C: ; 0x020F9D5C
+ .incbin "baserom.nds", 0xfdd5c, 0x10
+
+ .global UNK_020F9D6C
+UNK_020F9D6C: ; 0x020F9D6C
+ .incbin "baserom.nds", 0xfdd6c, 0x3e
+
+ .global UNK_020F9DAA
+UNK_020F9DAA: ; 0x020F9DAA
+ .incbin "baserom.nds", 0xfddaa, 0x1a
+
+ .global UNK_020F9DC4
+UNK_020F9DC4: ; 0x020F9DC4
+ .incbin "baserom.nds", 0xfddc4, 0x1a
+
+ .global UNK_020F9DDE
+UNK_020F9DDE: ; 0x020F9DDE
+ .incbin "baserom.nds", 0xfddde, 0x1e
+
+ .global UNK_020F9DFC
+UNK_020F9DFC: ; 0x020F9DFC
+ .incbin "baserom.nds", 0xfddfc, 0x1c
+
+ .global UNK_020F9E18
+UNK_020F9E18: ; 0x020F9E18
+ .incbin "baserom.nds", 0xfde18, 0x1c
+
+ .global UNK_020F9E34
+UNK_020F9E34: ; 0x020F9E34
+ .incbin "baserom.nds", 0xfde34, 0x1c
+
+ .global UNK_020F9E50
+UNK_020F9E50: ; 0x020F9E50
+ .incbin "baserom.nds", 0xfde50, 0x1c
+
+ .global UNK_020F9E6C
+UNK_020F9E6C: ; 0x020F9E6C
+ .incbin "baserom.nds", 0xfde6c, 0x1c
+
+ .global UNK_020F9E88
+UNK_020F9E88: ; 0x020F9E88
+ .incbin "baserom.nds", 0xfde88, 0x1c
+
+ .global UNK_020F9EA4
+UNK_020F9EA4: ; 0x020F9EA4
+ .incbin "baserom.nds", 0xfdea4, 0x1c
+
+ .global UNK_020F9EC0
+UNK_020F9EC0: ; 0x020F9EC0
+ .incbin "baserom.nds", 0xfdec0, 0x1c
+
+ .global UNK_020F9EDC
+UNK_020F9EDC: ; 0x020F9EDC
+ .incbin "baserom.nds", 0xfdedc, 0x1c
+
+ .global UNK_020F9EF8
+UNK_020F9EF8: ; 0x020F9EF8
+ .incbin "baserom.nds", 0xfdef8, 0x1c
+
+ .global UNK_020F9F14
+UNK_020F9F14: ; 0x020F9F14
+ .incbin "baserom.nds", 0xfdf14, 0x1c
+
+ .global UNK_020F9F30
+UNK_020F9F30: ; 0x020F9F30
+ .incbin "baserom.nds", 0xfdf30, 0x1c
+
+ .global UNK_020F9F4C
+UNK_020F9F4C: ; 0x020F9F4C
+ .incbin "baserom.nds", 0xfdf4c, 0x1c
+
+ .global UNK_020F9F68
+UNK_020F9F68: ; 0x020F9F68
+ .incbin "baserom.nds", 0xfdf68, 0x1c
+
+ .global UNK_020F9F84
+UNK_020F9F84: ; 0x020F9F84
+ .incbin "baserom.nds", 0xfdf84, 0x1c
+
+ .global UNK_020F9FA0
+UNK_020F9FA0: ; 0x020F9FA0
+ .incbin "baserom.nds", 0xfdfa0, 0x1c
+
+ .global UNK_020F9FBC
+UNK_020F9FBC: ; 0x020F9FBC
+ .incbin "baserom.nds", 0xfdfbc, 0x1c
+
+ .global UNK_020F9FD8
+UNK_020F9FD8: ; 0x020F9FD8
+ .incbin "baserom.nds", 0xfdfd8, 0x1c
+
+ .global UNK_020F9FF4
+UNK_020F9FF4: ; 0x020F9FF4
+ .incbin "baserom.nds", 0xfdff4, 0x1c
+
+ .global UNK_020FA010
+UNK_020FA010: ; 0x020FA010
+ .incbin "baserom.nds", 0xfe010, 0x1c
+
+ .global UNK_020FA02C
+UNK_020FA02C: ; 0x020FA02C
+ .incbin "baserom.nds", 0xfe02c, 0x1c
+
+ .global UNK_020FA048
+UNK_020FA048: ; 0x020FA048
+ .incbin "baserom.nds", 0xfe048, 0x1c
+
+ .global UNK_020FA064
+UNK_020FA064: ; 0x020FA064
+ .incbin "baserom.nds", 0xfe064, 0x3c
+
+ .global UNK_020FA0A0
+UNK_020FA0A0: ; 0x020FA0A0
+ .incbin "baserom.nds", 0xfe0a0, 0x20
+
+ .global UNK_020FA0C0
+UNK_020FA0C0: ; 0x020FA0C0
+ .incbin "baserom.nds", 0xfe0c0, 0x24
+
+ .global UNK_020FA0E4
+UNK_020FA0E4: ; 0x020FA0E4
+ .incbin "baserom.nds", 0xfe0e4, 0x24
+
+ .global UNK_020FA108
+UNK_020FA108: ; 0x020FA108
+ .incbin "baserom.nds", 0xfe108, 0x24
+
+ .global UNK_020FA12C
+UNK_020FA12C: ; 0x020FA12C
+ .incbin "baserom.nds", 0xfe12c, 0x28
+
+ .global UNK_020FA154
+UNK_020FA154: ; 0x020FA154
+ .incbin "baserom.nds", 0xfe154, 0x4
+
+ .global UNK_020FA158
+UNK_020FA158: ; 0x020FA158
+ .incbin "baserom.nds", 0xfe158, 0x24
+
+ .global UNK_020FA17C
+UNK_020FA17C: ; 0x020FA17C
+ .incbin "baserom.nds", 0xfe17c, 0x2
+
+ .global UNK_020FA17E
+UNK_020FA17E: ; 0x020FA17E
+ .incbin "baserom.nds", 0xfe17e, 0x26
+
+ .global UNK_020FA1A4
+UNK_020FA1A4: ; 0x020FA1A4
+ .incbin "baserom.nds", 0xfe1a4, 0x2
+
+ .global UNK_020FA1A6
+UNK_020FA1A6: ; 0x020FA1A6
+ .incbin "baserom.nds", 0xfe1a6, 0x2e
+
+ .global UNK_020FA1D4
+UNK_020FA1D4: ; 0x020FA1D4
+ .incbin "baserom.nds", 0xfe1d4, 0x4
+
+ .global UNK_020FA1D8
+UNK_020FA1D8: ; 0x020FA1D8
+ .incbin "baserom.nds", 0xfe1d8, 0x4
+
+ .global UNK_020FA1DC
+UNK_020FA1DC: ; 0x020FA1DC
+ .incbin "baserom.nds", 0xfe1dc, 0x48
+
+ .global UNK_020FA224
+UNK_020FA224: ; 0x020FA224
+ .incbin "baserom.nds", 0xfe224, 0x40
+
+ .global UNK_020FA264
+UNK_020FA264: ; 0x020FA264
+ .incbin "baserom.nds", 0xfe264, 0x1aa
+
+ .global UNK_020FA40E
+UNK_020FA40E: ; 0x020FA40E
+ .incbin "baserom.nds", 0xfe40e, 0x1ee
+
+ .global UNK_020FA5FC
+UNK_020FA5FC: ; 0x020FA5FC
+ .incbin "baserom.nds", 0xfe5fc, 0x10
+
+ .global UNK_020FA60C
+UNK_020FA60C: ; 0x020FA60C
+ .incbin "baserom.nds", 0xfe60c, 0x18
+
+ .global UNK_020FA624
+UNK_020FA624: ; 0x020FA624
+ .incbin "baserom.nds", 0xfe624, 0x10
+
+ .global UNK_020FA634
+UNK_020FA634: ; 0x020FA634
+ .incbin "baserom.nds", 0xfe634, 0x1c
+
+ .global UNK_020FA650
+UNK_020FA650: ; 0x020FA650
+ .incbin "baserom.nds", 0xfe650, 0x1c
+
+ .global UNK_020FA66C
+UNK_020FA66C: ; 0x020FA66C
+ .incbin "baserom.nds", 0xfe66c, 0x1c
+
+ .global UNK_020FA688
+UNK_020FA688: ; 0x020FA688
+ .incbin "baserom.nds", 0xfe688, 0x1c
+
+ .global UNK_020FA6A4
+UNK_020FA6A4: ; 0x020FA6A4
+ .incbin "baserom.nds", 0xfe6a4, 0x1c
+
+ .global UNK_020FA6C0
+UNK_020FA6C0: ; 0x020FA6C0
+ .incbin "baserom.nds", 0xfe6c0, 0x28
+
+ .global UNK_020FA6E8
+UNK_020FA6E8: ; 0x020FA6E8
+ .incbin "baserom.nds", 0xfe6e8, 0x10
+
+ .global UNK_020FA6F8
+UNK_020FA6F8: ; 0x020FA6F8
+ .incbin "baserom.nds", 0xfe6f8, 0x14
+
+ .global UNK_020FA70C
+UNK_020FA70C: ; 0x020FA70C
+ .incbin "baserom.nds", 0xfe70c, 0x14
+
+ .global UNK_020FA720
+UNK_020FA720: ; 0x020FA720
+ .incbin "baserom.nds", 0xfe720, 0x1c
+
+ .global UNK_020FA73C
+UNK_020FA73C: ; 0x020FA73C
+ .incbin "baserom.nds", 0xfe73c, 0x20
+
+ .global UNK_020FA75C
+UNK_020FA75C: ; 0x020FA75C
+ .incbin "baserom.nds", 0xfe75c, 0x8
+
+ .global UNK_020FA764
+UNK_020FA764: ; 0x020FA764
+ .incbin "baserom.nds", 0xfe764, 0x8
+
+ .global UNK_020FA76C
+UNK_020FA76C: ; 0x020FA76C
+ .incbin "baserom.nds", 0xfe76c, 0x8
+
+ .global UNK_020FA774
+UNK_020FA774: ; 0x020FA774
+ .incbin "baserom.nds", 0xfe774, 0x8
+
+ .global UNK_020FA77C
+UNK_020FA77C: ; 0x020FA77C
+ .incbin "baserom.nds", 0xfe77c, 0x8
+
+ .global UNK_020FA784
+UNK_020FA784: ; 0x020FA784
+ .incbin "baserom.nds", 0xfe784, 0xc08
+
+ .global UNK_020FB38C
+UNK_020FB38C: ; 0x020FB38C
+ .incbin "baserom.nds", 0xff38c, 0x8
+
+ .global UNK_020FB394
+UNK_020FB394: ; 0x020FB394
+ .incbin "baserom.nds", 0xff394, 0x18
+
+ .global UNK_020FB3AC
+UNK_020FB3AC: ; 0x020FB3AC
+ .incbin "baserom.nds", 0xff3ac, 0x20
+
+ .global UNK_020FB3CC
+UNK_020FB3CC: ; 0x020FB3CC
+ .incbin "baserom.nds", 0xff3cc, 0x30
+
+ .global UNK_020FB3FC
+UNK_020FB3FC: ; 0x020FB3FC
+ .incbin "baserom.nds", 0xff3fc, 0x30
+
+ .global UNK_020FB42C
+UNK_020FB42C: ; 0x020FB42C
+ .incbin "baserom.nds", 0xff42c, 0x40
+
+ .global UNK_020FB46C
+UNK_020FB46C: ; 0x020FB46C
+ .incbin "baserom.nds", 0xff46c, 0x40
+
+ .global UNK_020FB4AC
+UNK_020FB4AC: ; 0x020FB4AC
+ .incbin "baserom.nds", 0xff4ac, 0x120
+
+ .global UNK_020FB5CC
+UNK_020FB5CC: ; 0x020FB5CC
+ .incbin "baserom.nds", 0xff5cc, 0xc
+
+ .global UNK_020FB5D8
+UNK_020FB5D8: ; 0x020FB5D8
+ .incbin "baserom.nds", 0xff5d8, 0x12
+
+ .global UNK_020FB5EA
+UNK_020FB5EA: ; 0x020FB5EA
+ .incbin "baserom.nds", 0xff5ea, 0x12
+
+ .global UNK_020FB5FC
+UNK_020FB5FC: ; 0x020FB5FC
+ .incbin "baserom.nds", 0xff5fc, 0x10
+
+ .global UNK_020FB60C
+UNK_020FB60C: ; 0x020FB60C
+ .incbin "baserom.nds", 0xff60c, 0x2
+
+ .global UNK_020FB60E
+UNK_020FB60E: ; 0x020FB60E
+ .incbin "baserom.nds", 0xff60e, 0x12
+
+ .global UNK_020FB620
+UNK_020FB620: ; 0x020FB620
+ .incbin "baserom.nds", 0xff620, 0x12
+
+ .global UNK_020FB632
+UNK_020FB632: ; 0x020FB632
+ .incbin "baserom.nds", 0xff632, 0x12
+
+ .global UNK_020FB644
+UNK_020FB644: ; 0x020FB644
+ .incbin "baserom.nds", 0xff644, 0x8
+
+ .global UNK_020FB64C
+UNK_020FB64C: ; 0x020FB64C
+ .incbin "baserom.nds", 0xff64c, 0xa
+
+ .global UNK_020FB656
+UNK_020FB656: ; 0x020FB656
+ .incbin "baserom.nds", 0xff656, 0x12
+
+ .global UNK_020FB668
+UNK_020FB668: ; 0x020FB668
+ .incbin "baserom.nds", 0xff668, 0x12
+
+ .global UNK_020FB67A
+UNK_020FB67A: ; 0x020FB67A
+ .incbin "baserom.nds", 0xff67a, 0x12
+
+ .global UNK_020FB68C
+UNK_020FB68C: ; 0x020FB68C
+ .incbin "baserom.nds", 0xff68c, 0x12
+
+ .global UNK_020FB69E
+UNK_020FB69E: ; 0x020FB69E
+ .incbin "baserom.nds", 0xff69e, 0x12
+
+ .global UNK_020FB6B0
+UNK_020FB6B0: ; 0x020FB6B0
+ .incbin "baserom.nds", 0xff6b0, 0x12
+
+ .global UNK_020FB6C2
+UNK_020FB6C2: ; 0x020FB6C2
+ .incbin "baserom.nds", 0xff6c2, 0x12
+
+ .global UNK_020FB6D4
+UNK_020FB6D4: ; 0x020FB6D4
+ .incbin "baserom.nds", 0xff6d4, 0x12
+
+ .global UNK_020FB6E6
+UNK_020FB6E6: ; 0x020FB6E6
+ .incbin "baserom.nds", 0xff6e6, 0x12
+
+ .global UNK_020FB6F8
+UNK_020FB6F8: ; 0x020FB6F8
+ .incbin "baserom.nds", 0xff6f8, 0xc
+
+ .global UNK_020FB704
+UNK_020FB704: ; 0x020FB704
+ .incbin "baserom.nds", 0xff704, 0xc
+
+ .global UNK_020FB710
+UNK_020FB710: ; 0x020FB710
+ .incbin "baserom.nds", 0xff710, 0x18
+
+ .global UNK_020FB728
+UNK_020FB728: ; 0x020FB728
+ .incbin "baserom.nds", 0xff728, 0x18
+
+ .global UNK_020FB740
+UNK_020FB740: ; 0x020FB740
+ .incbin "baserom.nds", 0xff740, 0x24
+
+ .global UNK_020FB764
+UNK_020FB764: ; 0x020FB764
+ .incbin "baserom.nds", 0xff764, 0x24
+
+ .global UNK_020FB788
+UNK_020FB788: ; 0x020FB788
+ .incbin "baserom.nds", 0xff788, 0x4
+
+ .global UNK_020FB78C
+UNK_020FB78C: ; 0x020FB78C
+ .incbin "baserom.nds", 0xff78c, 0x2
+
+ .global UNK_020FB78E
+UNK_020FB78E: ; 0x020FB78E
+ .incbin "baserom.nds", 0xff78e, 0x2
+
+ .global UNK_020FB790
+UNK_020FB790: ; 0x020FB790
+ .incbin "baserom.nds", 0xff790, 0x2
+
+ .global UNK_020FB792
+UNK_020FB792: ; 0x020FB792
+ .incbin "baserom.nds", 0xff792, 0x3b6
+
+ .global UNK_020FBB48
+UNK_020FBB48: ; 0x020FBB48
+ .incbin "baserom.nds", 0xffb48, 0xc
+
+ .global UNK_020FBB54
+UNK_020FBB54: ; 0x020FBB54
+ .incbin "baserom.nds", 0xffb54, 0x3c
+
+ .global UNK_020FBB90
+UNK_020FBB90: ; 0x020FBB90
+ .incbin "baserom.nds", 0xffb90, 0x8
+
+ .global UNK_020FBB98
+UNK_020FBB98: ; 0x020FBB98
+ .incbin "baserom.nds", 0xffb98, 0x8
+
+ .global UNK_020FBBA0
+UNK_020FBBA0: ; 0x020FBBA0
+ .incbin "baserom.nds", 0xffba0, 0xc
+
+ .global UNK_020FBBAC
+UNK_020FBBAC: ; 0x020FBBAC
+ .incbin "baserom.nds", 0xffbac, 0xc
+
+ .global UNK_020FBBB8
+UNK_020FBBB8: ; 0x020FBBB8
+ .incbin "baserom.nds", 0xffbb8, 0x10
+
+ .global UNK_020FBBC8
+UNK_020FBBC8: ; 0x020FBBC8
+ .incbin "baserom.nds", 0xffbc8, 0x10
+
+ .global UNK_020FBBD8
+UNK_020FBBD8: ; 0x020FBBD8
+ .incbin "baserom.nds", 0xffbd8, 0x10
+
+ .global UNK_020FBBE8
+UNK_020FBBE8: ; 0x020FBBE8
+ .incbin "baserom.nds", 0xffbe8, 0x10
+
+ .global UNK_020FBBF8
+UNK_020FBBF8: ; 0x020FBBF8
+ .incbin "baserom.nds", 0xffbf8, 0x10
+
+ .global UNK_020FBC08
+UNK_020FBC08: ; 0x020FBC08
+ .incbin "baserom.nds", 0xffc08, 0x10
+
+ .global UNK_020FBC18
+UNK_020FBC18: ; 0x020FBC18
+ .incbin "baserom.nds", 0xffc18, 0x50
+
+ .global UNK_020FBC68
+UNK_020FBC68: ; 0x020FBC68
+ .incbin "baserom.nds", 0xffc68, 0x2
+
+ .global UNK_020FBC6A
+UNK_020FBC6A: ; 0x020FBC6A
+ .incbin "baserom.nds", 0xffc6a, 0x2
+
+ .global UNK_020FBC6C
+UNK_020FBC6C: ; 0x020FBC6C
+ .incbin "baserom.nds", 0xffc6c, 0x2
+
+ .global UNK_020FBC6E
+UNK_020FBC6E: ; 0x020FBC6E
+ .incbin "baserom.nds", 0xffc6e, 0x2
+
+ .global UNK_020FBC70
+UNK_020FBC70: ; 0x020FBC70
+ .incbin "baserom.nds", 0xffc70, 0x2
+
+ .global UNK_020FBC72
+UNK_020FBC72: ; 0x020FBC72
+ .incbin "baserom.nds", 0xffc72, 0x2
+
+ .global UNK_020FBC74
+UNK_020FBC74: ; 0x020FBC74
+ .incbin "baserom.nds", 0xffc74, 0x2
+
+ .global UNK_020FBC76
+UNK_020FBC76: ; 0x020FBC76
+ .incbin "baserom.nds", 0xffc76, 0x2
+
+ .global UNK_020FBC78
+UNK_020FBC78: ; 0x020FBC78
+ .incbin "baserom.nds", 0xffc78, 0x2
+
+ .global UNK_020FBC7A
+UNK_020FBC7A: ; 0x020FBC7A
+ .incbin "baserom.nds", 0xffc7a, 0x2
+
+ .global UNK_020FBC7C
+UNK_020FBC7C: ; 0x020FBC7C
+ .incbin "baserom.nds", 0xffc7c, 0x2
+
+ .global UNK_020FBC7E
+UNK_020FBC7E: ; 0x020FBC7E
+ .incbin "baserom.nds", 0xffc7e, 0x2
+
+ .global UNK_020FBC80
+UNK_020FBC80: ; 0x020FBC80
+ .incbin "baserom.nds", 0xffc80, 0x258
+
+ .global UNK_020FBED8
+UNK_020FBED8: ; 0x020FBED8
+ .incbin "baserom.nds", 0xffed8, 0xc0
+
+ .global UNK_020FBF98
+UNK_020FBF98: ; 0x020FBF98
+ .incbin "baserom.nds", 0xfff98, 0x84
+
+ .global UNK_020FC01C
+UNK_020FC01C: ; 0x020FC01C
+ .incbin "baserom.nds", 0x10001c, 0x510
+
+ .global UNK_020FC52C
+UNK_020FC52C: ; 0x020FC52C
+ .incbin "baserom.nds", 0x10052c, 0x510
+
+ .global UNK_020FCA3C
+UNK_020FCA3C: ; 0x020FCA3C
+ .incbin "baserom.nds", 0x100a3c, 0x6c
+
+ .global UNK_020FCAA8
+UNK_020FCAA8: ; 0x020FCAA8
+ .incbin "baserom.nds", 0x100aa8, 0x10
+
+ .global UNK_020FCAB8
+UNK_020FCAB8: ; 0x020FCAB8
+ .incbin "baserom.nds", 0x100ab8, 0x10
+
+ .global UNK_020FCAC8
+UNK_020FCAC8: ; 0x020FCAC8
+ .incbin "baserom.nds", 0x100ac8, 0x10
+
+ .global UNK_020FCAD8
+UNK_020FCAD8: ; 0x020FCAD8
+ .incbin "baserom.nds", 0x100ad8, 0x10
+
+ .global UNK_020FCAE8
+UNK_020FCAE8: ; 0x020FCAE8
+ .incbin "baserom.nds", 0x100ae8, 0x2
+
+ .global UNK_020FCAEA
+UNK_020FCAEA: ; 0x020FCAEA
+ .incbin "baserom.nds", 0x100aea, 0x2
+
+ .global UNK_020FCAEC
+UNK_020FCAEC: ; 0x020FCAEC
+ .incbin "baserom.nds", 0x100aec, 0x1
+
+ .global UNK_020FCAED
+UNK_020FCAED: ; 0x020FCAED
+ .incbin "baserom.nds", 0x100aed, 0x1
+
+ .global UNK_020FCAEE
+UNK_020FCAEE: ; 0x020FCAEE
+ .incbin "baserom.nds", 0x100aee, 0x2
+
+ .global UNK_020FCAF0
+UNK_020FCAF0: ; 0x020FCAF0
+ .incbin "baserom.nds", 0x100af0, 0x324
+
+ .global UNK_020FCE14
+UNK_020FCE14: ; 0x020FCE14
+ .incbin "baserom.nds", 0x100e14, 0x10
+
+ .global UNK_020FCE24
+UNK_020FCE24: ; 0x020FCE24
+ .incbin "baserom.nds", 0x100e24, 0x10
+
+ .global UNK_020FCE34
+UNK_020FCE34: ; 0x020FCE34
+ .incbin "baserom.nds", 0x100e34, 0x14
+
+ .global UNK_020FCE48
+UNK_020FCE48: ; 0x020FCE48
+ .incbin "baserom.nds", 0x100e48, 0x18
+
+ .global UNK_020FCE60
+UNK_020FCE60: ; 0x020FCE60
+ .incbin "baserom.nds", 0x100e60, 0x1c
+
+ .global UNK_020FCE7C
+UNK_020FCE7C: ; 0x020FCE7C
+ .incbin "baserom.nds", 0x100e7c, 0x20
+
+ .global UNK_020FCE9C
+UNK_020FCE9C: ; 0x020FCE9C
+ .incbin "baserom.nds", 0x100e9c, 0x20
+
+ .global UNK_020FCEBC
+UNK_020FCEBC: ; 0x020FCEBC
+ .incbin "baserom.nds", 0x100ebc, 0x28
+
+ .global UNK_020FCEE4
+UNK_020FCEE4: ; 0x020FCEE4
+ .incbin "baserom.nds", 0x100ee4, 0x50
+
+ .global UNK_020FCF34
+UNK_020FCF34: ; 0x020FCF34
+ .incbin "baserom.nds", 0x100f34, 0x50
+
+ .global UNK_020FCF84
+UNK_020FCF84: ; 0x020FCF84
+ .incbin "baserom.nds", 0x100f84, 0x54
+
+ .global UNK_020FCFD8
+UNK_020FCFD8: ; 0x020FCFD8
+ .incbin "baserom.nds", 0x100fd8, 0xa0
+
+ .global UNK_020FD078
+UNK_020FD078: ; 0x020FD078
+ .incbin "baserom.nds", 0x101078, 0xa0
+
+ .global UNK_020FD118
+UNK_020FD118: ; 0x020FD118
+ .incbin "baserom.nds", 0x101118, 0x8
+
+ .global UNK_020FD120
+UNK_020FD120: ; 0x020FD120
+ .incbin "baserom.nds", 0x101120, 0x1c
+
+ .global UNK_020FD13C
+UNK_020FD13C: ; 0x020FD13C
+ .incbin "baserom.nds", 0x10113c, 0x18
+
+ .global UNK_020FD154
+UNK_020FD154: ; 0x020FD154
+ .incbin "baserom.nds", 0x101154, 0x4
+
+ .global UNK_020FD158
+UNK_020FD158: ; 0x020FD158
+ .incbin "baserom.nds", 0x101158, 0x4
+
+ .global UNK_020FD15C
+UNK_020FD15C: ; 0x020FD15C
+ .incbin "baserom.nds", 0x10115c, 0x10
+
+ .global UNK_020FD16C
+UNK_020FD16C: ; 0x020FD16C
+ .incbin "baserom.nds", 0x10116c, 0x10
+
+ .global UNK_020FD17C
+UNK_020FD17C: ; 0x020FD17C
+ .incbin "baserom.nds", 0x10117c, 0x1
+
+ .global UNK_020FD17D
+UNK_020FD17D: ; 0x020FD17D
+ .incbin "baserom.nds", 0x10117d, 0x33
+
+ .global UNK_020FD1B0
+UNK_020FD1B0: ; 0x020FD1B0
+ .incbin "baserom.nds", 0x1011b0, 0x10
+
+ .global UNK_020FD1C0
+UNK_020FD1C0: ; 0x020FD1C0
+ .incbin "baserom.nds", 0x1011c0, 0x4
+
+ .global UNK_020FD1C4
+UNK_020FD1C4: ; 0x020FD1C4
+ .incbin "baserom.nds", 0x1011c4, 0x520
+
+ .global UNK_020FD6E4
+UNK_020FD6E4: ; 0x020FD6E4
+ .incbin "baserom.nds", 0x1016e4, 0x10
+
+ .global UNK_020FD6F4
+UNK_020FD6F4: ; 0x020FD6F4
+ .incbin "baserom.nds", 0x1016f4, 0x4
+
+ .global UNK_020FD6F8
+UNK_020FD6F8: ; 0x020FD6F8
+ .incbin "baserom.nds", 0x1016f8, 0x10
+
+ .global UNK_020FD708
+UNK_020FD708: ; 0x020FD708
+ .incbin "baserom.nds", 0x101708, 0x10
+
+ .global UNK_020FD718
+UNK_020FD718: ; 0x020FD718
+ .incbin "baserom.nds", 0x101718, 0x10
+
+ .global UNK_020FD728
+UNK_020FD728: ; 0x020FD728
+ .incbin "baserom.nds", 0x101728, 0x8
+
+ .global UNK_020FD730
+UNK_020FD730: ; 0x020FD730
+ .incbin "baserom.nds", 0x101730, 0x8
+
+ .global UNK_020FD738
+UNK_020FD738: ; 0x020FD738
+ .incbin "baserom.nds", 0x101738, 0x8
+
+ .global UNK_020FD740
+UNK_020FD740: ; 0x020FD740
+ .incbin "baserom.nds", 0x101740, 0xc
+
+ .global UNK_020FD74C
+UNK_020FD74C: ; 0x020FD74C
+ .incbin "baserom.nds", 0x10174c, 0x10
+
+ .global UNK_020FD75C
+UNK_020FD75C: ; 0x020FD75C
+ .incbin "baserom.nds", 0x10175c, 0x10
+
+ .global UNK_020FD76C
+UNK_020FD76C: ; 0x020FD76C
+ .incbin "baserom.nds", 0x10176c, 0x10
+
+ .global UNK_020FD77C
+UNK_020FD77C: ; 0x020FD77C
+ .incbin "baserom.nds", 0x10177c, 0x14
+
+ .global UNK_020FD790
+UNK_020FD790: ; 0x020FD790
+ .incbin "baserom.nds", 0x101790, 0x14
+
+ .global UNK_020FD7A4
+UNK_020FD7A4: ; 0x020FD7A4
+ .incbin "baserom.nds", 0x1017a4, 0x14
+
+ .global UNK_020FD7B8
+UNK_020FD7B8: ; 0x020FD7B8
+ .incbin "baserom.nds", 0x1017b8, 0x18
+
+ .global UNK_020FD7D0
+UNK_020FD7D0: ; 0x020FD7D0
+ .incbin "baserom.nds", 0x1017d0, 0x18
+
+ .global UNK_020FD7E8
+UNK_020FD7E8: ; 0x020FD7E8
+ .incbin "baserom.nds", 0x1017e8, 0x18
+
+ .global UNK_020FD800
+UNK_020FD800: ; 0x020FD800
+ .incbin "baserom.nds", 0x101800, 0x1c
+
+ .global UNK_020FD81C
+UNK_020FD81C: ; 0x020FD81C
+ .incbin "baserom.nds", 0x10181c, 0x20
+
+ .global UNK_020FD83C
+UNK_020FD83C: ; 0x020FD83C
+ .incbin "baserom.nds", 0x10183c, 0x24
+
+ .global UNK_020FD860
+UNK_020FD860: ; 0x020FD860
+ .incbin "baserom.nds", 0x101860, 0x34
+
+ .global UNK_020FD894
+UNK_020FD894: ; 0x020FD894
+ .incbin "baserom.nds", 0x101894, 0x34
+
+ .global UNK_020FD8C8
+UNK_020FD8C8: ; 0x020FD8C8
+ .incbin "baserom.nds", 0x1018c8, 0x1
+
+ .global UNK_020FD8C9
+UNK_020FD8C9: ; 0x020FD8C9
+ .incbin "baserom.nds", 0x1018c9, 0x1
+
+ .global UNK_020FD8CA
+UNK_020FD8CA: ; 0x020FD8CA
+ .incbin "baserom.nds", 0x1018ca, 0x2
+
+ .global UNK_020FD8CC
+UNK_020FD8CC: ; 0x020FD8CC
+ .incbin "baserom.nds", 0x1018cc, 0x4
+
+ .global UNK_020FD8D0
+UNK_020FD8D0: ; 0x020FD8D0
+ .incbin "baserom.nds", 0x1018d0, 0xdc
+
+ .global UNK_020FD9AC
+UNK_020FD9AC: ; 0x020FD9AC
+ .incbin "baserom.nds", 0x1019ac, 0xec
+
+ .global UNK_020FDA98
+UNK_020FDA98: ; 0x020FDA98
+ .incbin "baserom.nds", 0x101a98, 0x4
+
+ .global UNK_020FDA9C
+UNK_020FDA9C: ; 0x020FDA9C
+ .incbin "baserom.nds", 0x101a9c, 0x6
+
+ .global UNK_020FDAA2
+UNK_020FDAA2: ; 0x020FDAA2
+ .incbin "baserom.nds", 0x101aa2, 0xc
+
+ .global UNK_020FDAAE
+UNK_020FDAAE: ; 0x020FDAAE
+ .incbin "baserom.nds", 0x101aae, 0xe
+
+ .global UNK_020FDABC
+UNK_020FDABC: ; 0x020FDABC
+ .incbin "baserom.nds", 0x101abc, 0x10
+
+ .global UNK_020FDACC
+UNK_020FDACC: ; 0x020FDACC
+ .incbin "baserom.nds", 0x101acc, 0x1c
+
+ .global UNK_020FDAE8
+UNK_020FDAE8: ; 0x020FDAE8
+ .incbin "baserom.nds", 0x101ae8, 0x22
+
+ .global UNK_020FDB0A
+UNK_020FDB0A: ; 0x020FDB0A
+ .incbin "baserom.nds", 0x101b0a, 0x2e
+
+ .global UNK_020FDB38
+UNK_020FDB38: ; 0x020FDB38
+ .incbin "baserom.nds", 0x101b38, 0x30
+
+ .global UNK_020FDB68
+UNK_020FDB68: ; 0x020FDB68
+ .incbin "baserom.nds", 0x101b68, 0x32
+
+ .global UNK_020FDB9A
+UNK_020FDB9A: ; 0x020FDB9A
+ .incbin "baserom.nds", 0x101b9a, 0x34
+
+ .global UNK_020FDBCE
+UNK_020FDBCE: ; 0x020FDBCE
+ .incbin "baserom.nds", 0x101bce, 0x42
+
+ .global UNK_020FDC10
+UNK_020FDC10: ; 0x020FDC10
+ .incbin "baserom.nds", 0x101c10, 0x44
+
+ .global UNK_020FDC54
+UNK_020FDC54: ; 0x020FDC54
+ .incbin "baserom.nds", 0x101c54, 0x48
+
+ .global UNK_020FDC9C
+UNK_020FDC9C: ; 0x020FDC9C
+ .incbin "baserom.nds", 0x101c9c, 0x4e
+
+ .global UNK_020FDCEA
+UNK_020FDCEA: ; 0x020FDCEA
+ .incbin "baserom.nds", 0x101cea, 0x52
+
+ .global UNK_020FDD3C
+UNK_020FDD3C: ; 0x020FDD3C
+ .incbin "baserom.nds", 0x101d3c, 0x54
+
+ .global UNK_020FDD90
+UNK_020FDD90: ; 0x020FDD90
+ .incbin "baserom.nds", 0x101d90, 0x60
+
+ .global UNK_020FDDF0
+UNK_020FDDF0: ; 0x020FDDF0
+ .incbin "baserom.nds", 0x101df0, 0x6c
+
+ .global UNK_020FDE5C
+UNK_020FDE5C: ; 0x020FDE5C
+ .incbin "baserom.nds", 0x101e5c, 0x74
+
+ .global UNK_020FDED0
+UNK_020FDED0: ; 0x020FDED0
+ .incbin "baserom.nds", 0x101ed0, 0x78
+
+ .global UNK_020FDF48
+UNK_020FDF48: ; 0x020FDF48
+ .incbin "baserom.nds", 0x101f48, 0x88
+
+ .global UNK_020FDFD0
+UNK_020FDFD0: ; 0x020FDFD0
+ .incbin "baserom.nds", 0x101fd0, 0x8c
+
+ .global UNK_020FE05C
+UNK_020FE05C: ; 0x020FE05C
+ .incbin "baserom.nds", 0x10205c, 0x90
+
+ .global UNK_020FE0EC
+UNK_020FE0EC: ; 0x020FE0EC
+ .incbin "baserom.nds", 0x1020ec, 0x90
+
+ .global UNK_020FE17C
+UNK_020FE17C: ; 0x020FE17C
+ .incbin "baserom.nds", 0x10217c, 0x90
+
+ .global UNK_020FE20C
+UNK_020FE20C: ; 0x020FE20C
+ .incbin "baserom.nds", 0x10220c, 0x9a
+
+ .global UNK_020FE2A6
+UNK_020FE2A6: ; 0x020FE2A6
+ .incbin "baserom.nds", 0x1022a6, 0x9a
+
+ .global UNK_020FE340
+UNK_020FE340: ; 0x020FE340
+ .incbin "baserom.nds", 0x102340, 0xa0
+
+ .global UNK_020FE3E0
+UNK_020FE3E0: ; 0x020FE3E0
+ .incbin "baserom.nds", 0x1023e0, 0xa8
+
+ .global UNK_020FE488
+UNK_020FE488: ; 0x020FE488
+ .incbin "baserom.nds", 0x102488, 0xbc
+
+ .global UNK_020FE544
+UNK_020FE544: ; 0x020FE544
+ .incbin "baserom.nds", 0x102544, 0xce
+
+ .global UNK_020FE612
+UNK_020FE612: ; 0x020FE612
+ .incbin "baserom.nds", 0x102612, 0xd2
+
+ .global UNK_020FE6E4
+UNK_020FE6E4: ; 0x020FE6E4
+ .incbin "baserom.nds", 0x1026e4, 0xd4
+
+ .global UNK_020FE7B8
+UNK_020FE7B8: ; 0x020FE7B8
+ .incbin "baserom.nds", 0x1027b8, 0xea
+
+ .global UNK_020FE8A2
+UNK_020FE8A2: ; 0x020FE8A2
+ .incbin "baserom.nds", 0x1028a2, 0x116
+
+ .global UNK_020FE9B8
+UNK_020FE9B8: ; 0x020FE9B8
+ .incbin "baserom.nds", 0x1029b8, 0x1c0
+
+ .global UNK_020FEB78
+UNK_020FEB78: ; 0x020FEB78
+ .incbin "baserom.nds", 0x102b78, 0x1c0
+
+ .global UNK_020FED38
+UNK_020FED38: ; 0x020FED38
+ .incbin "baserom.nds", 0x102d38, 0x1d8
+
+ .global UNK_020FEF10
+UNK_020FEF10: ; 0x020FEF10
+ .incbin "baserom.nds", 0x102f10, 0x1e4
+
+ .global UNK_020FF0F4
+UNK_020FF0F4: ; 0x020FF0F4
+ .incbin "baserom.nds", 0x1030f4, 0x208
+
+ .global UNK_020FF2FC
+UNK_020FF2FC: ; 0x020FF2FC
+ .incbin "baserom.nds", 0x1032fc, 0x8
+
+ .global UNK_020FF304
+UNK_020FF304: ; 0x020FF304
+ .incbin "baserom.nds", 0x103304, 0x8
+
+ .global UNK_020FF30C
+UNK_020FF30C: ; 0x020FF30C
+ .incbin "baserom.nds", 0x10330c, 0x8
+
+ .global UNK_020FF314
+UNK_020FF314: ; 0x020FF314
+ .incbin "baserom.nds", 0x103314, 0x10
+
+ .global UNK_020FF324
+UNK_020FF324: ; 0x020FF324
+ .incbin "baserom.nds", 0x103324, 0x1c
+
+ .global UNK_020FF340
+UNK_020FF340: ; 0x020FF340
+ .incbin "baserom.nds", 0x103340, 0x38
+
+ .global UNK_020FF378
+UNK_020FF378: ; 0x020FF378
+ .incbin "baserom.nds", 0x103378, 0x8
+
+ .global UNK_020FF380
+UNK_020FF380: ; 0x020FF380
+ .incbin "baserom.nds", 0x103380, 0x10
+
+ .global UNK_020FF390
+UNK_020FF390: ; 0x020FF390
+ .incbin "baserom.nds", 0x103390, 0x1c
+
+ .global UNK_020FF3AC
+UNK_020FF3AC: ; 0x020FF3AC
+ .incbin "baserom.nds", 0x1033ac, 0x38
+
+ .global UNK_020FF3E4
+UNK_020FF3E4: ; 0x020FF3E4
+ .incbin "baserom.nds", 0x1033e4, 0x8
+
+ .global UNK_020FF3EC
+UNK_020FF3EC: ; 0x020FF3EC
+ .incbin "baserom.nds", 0x1033ec, 0x10
+
+ .global UNK_020FF3FC
+UNK_020FF3FC: ; 0x020FF3FC
+ .incbin "baserom.nds", 0x1033fc, 0x1c
+
+ .global UNK_020FF418
+UNK_020FF418: ; 0x020FF418
+ .incbin "baserom.nds", 0x103418, 0x28
+
+ .global UNK_020FF440
+UNK_020FF440: ; 0x020FF440
+ .incbin "baserom.nds", 0x103440, 0x8
+
+ .global UNK_020FF448
+UNK_020FF448: ; 0x020FF448
+ .incbin "baserom.nds", 0x103448, 0x10
+
+ .global UNK_020FF458
+UNK_020FF458: ; 0x020FF458
+ .incbin "baserom.nds", 0x103458, 0x1c
+
+ .global UNK_020FF474
+UNK_020FF474: ; 0x020FF474
+ .incbin "baserom.nds", 0x103474, 0x28
+
+ .global UNK_020FF49C
+UNK_020FF49C: ; 0x020FF49C
+ .incbin "baserom.nds", 0x10349c, 0x8
+
+ .global UNK_020FF4A4
+UNK_020FF4A4: ; 0x020FF4A4
+ .incbin "baserom.nds", 0x1034a4, 0x8
+
+ .global UNK_020FF4AC
+UNK_020FF4AC: ; 0x020FF4AC
+ .incbin "baserom.nds", 0x1034ac, 0x10
+
+ .global UNK_020FF4BC
+UNK_020FF4BC: ; 0x020FF4BC
+ .incbin "baserom.nds", 0x1034bc, 0x1c
+
+ .global UNK_020FF4D8
+UNK_020FF4D8: ; 0x020FF4D8
+ .incbin "baserom.nds", 0x1034d8, 0x28
+
+ .global UNK_020FF500
+UNK_020FF500: ; 0x020FF500
+ .incbin "baserom.nds", 0x103500, 0xc
+
+ .global UNK_020FF50C
+UNK_020FF50C: ; 0x020FF50C
+ .incbin "baserom.nds", 0x10350c, 0xc
+
+ .global UNK_020FF518
+UNK_020FF518: ; 0x020FF518
+ .incbin "baserom.nds", 0x103518, 0xc
+
+ .global UNK_020FF524
+UNK_020FF524: ; 0x020FF524
+ .incbin "baserom.nds", 0x103524, 0x10
+
+ .global UNK_020FF534
+UNK_020FF534: ; 0x020FF534
+ .incbin "baserom.nds", 0x103534, 0x20
+
+ .global UNK_020FF554
+UNK_020FF554: ; 0x020FF554
+ .incbin "baserom.nds", 0x103554, 0x10
+
+ .global UNK_020FF564
+UNK_020FF564: ; 0x020FF564
+ .incbin "baserom.nds", 0x103564, 0x8
+
+ .global UNK_020FF56C
+UNK_020FF56C: ; 0x020FF56C
+ .incbin "baserom.nds", 0x10356c, 0x4
+
+ .global UNK_020FF570
+UNK_020FF570: ; 0x020FF570
+ .incbin "baserom.nds", 0x103570, 0x2
+
+ .global UNK_020FF572
+UNK_020FF572: ; 0x020FF572
+ .incbin "baserom.nds", 0x103572, 0x1
+
+ .global UNK_020FF573
+UNK_020FF573: ; 0x020FF573
+ .incbin "baserom.nds", 0x103573, 0x1
+
+ .global UNK_020FF574
+UNK_020FF574: ; 0x020FF574
+ .incbin "baserom.nds", 0x103574, 0x4
+
+ .global UNK_020FF578
+UNK_020FF578: ; 0x020FF578
+ .incbin "baserom.nds", 0x103578, 0x8
+
+ .global UNK_020FF580
+UNK_020FF580: ; 0x020FF580
+ .incbin "baserom.nds", 0x103580, 0x10
+
+ .global UNK_020FF590
+UNK_020FF590: ; 0x020FF590
+ .incbin "baserom.nds", 0x103590, 0x8
+
+ .global UNK_020FF598
+UNK_020FF598: ; 0x020FF598
+ .incbin "baserom.nds", 0x103598, 0x20
+
+ .global UNK_020FF5B8
+UNK_020FF5B8: ; 0x020FF5B8
+ .incbin "baserom.nds", 0x1035b8, 0x4
+
+ .global UNK_020FF5BC
+UNK_020FF5BC: ; 0x020FF5BC
+ .incbin "baserom.nds", 0x1035bc, 0x8
+
+ .global UNK_020FF5C4
+UNK_020FF5C4: ; 0x020FF5C4
+ .incbin "baserom.nds", 0x1035c4, 0x10
+
+ .global UNK_020FF5D4
+UNK_020FF5D4: ; 0x020FF5D4
+ .incbin "baserom.nds", 0x1035d4, 0xb4
+
+ .global UNK_020FF688
+UNK_020FF688: ; 0x020FF688
+ .incbin "baserom.nds", 0x103688, 0x1
+
+ .global UNK_020FF689
+UNK_020FF689: ; 0x020FF689
+ .incbin "baserom.nds", 0x103689, 0xb
+
+ .global UNK_020FF694
+UNK_020FF694: ; 0x020FF694
+ .incbin "baserom.nds", 0x103694, 0x18
+
+ .global UNK_020FF6AC
+UNK_020FF6AC: ; 0x020FF6AC
+ .incbin "baserom.nds", 0x1036ac, 0x8
+
+ .global UNK_020FF6B4
+UNK_020FF6B4: ; 0x020FF6B4
+ .incbin "baserom.nds", 0x1036b4, 0x8
+
+ .global UNK_020FF6BC
+UNK_020FF6BC: ; 0x020FF6BC
+ .incbin "baserom.nds", 0x1036bc, 0x44
+
+ .global UNK_020FF700
+UNK_020FF700: ; 0x020FF700
+ .incbin "baserom.nds", 0x103700, 0x44
+
+ .global UNK_020FF744
+UNK_020FF744: ; 0x020FF744
+ .incbin "baserom.nds", 0x103744, 0x44
+
+ .global UNK_020FF788
+UNK_020FF788: ; 0x020FF788
+ .incbin "baserom.nds", 0x103788, 0x44
+
+ .global UNK_020FF7CC
+UNK_020FF7CC: ; 0x020FF7CC
+ .incbin "baserom.nds", 0x1037cc, 0x8
+
+ .global UNK_020FF7D4
+UNK_020FF7D4: ; 0x020FF7D4
+ .incbin "baserom.nds", 0x1037d4, 0x90
+
+ .global UNK_020FF864
+UNK_020FF864: ; 0x020FF864
+ .incbin "baserom.nds", 0x103864, 0x30
+
+ .global UNK_020FF894
+UNK_020FF894: ; 0x020FF894
+ .incbin "baserom.nds", 0x103894, 0x18
+
+ .global UNK_020FF8AC
+UNK_020FF8AC: ; 0x020FF8AC
+ .incbin "baserom.nds", 0x1038ac, 0x18
+
+ .global UNK_020FF8C4
+UNK_020FF8C4: ; 0x020FF8C4
+ .incbin "baserom.nds", 0x1038c4, 0xc
+
+ .global UNK_020FF8D0
+UNK_020FF8D0: ; 0x020FF8D0
+ .incbin "baserom.nds", 0x1038d0, 0x8
+
+ .global UNK_020FF8D8
+UNK_020FF8D8: ; 0x020FF8D8
+ .incbin "baserom.nds", 0x1038d8, 0x20
+
+ .global UNK_020FF8F8
+UNK_020FF8F8: ; 0x020FF8F8
+ .incbin "baserom.nds", 0x1038f8, 0x30
+
+ .global UNK_020FF928
+UNK_020FF928: ; 0x020FF928
+ .incbin "baserom.nds", 0x103928, 0x30
+
+ .global UNK_020FF958
+UNK_020FF958: ; 0x020FF958
+ .incbin "baserom.nds", 0x103958, 0x18
+
+ .global UNK_020FF970
+UNK_020FF970: ; 0x020FF970
+ .incbin "baserom.nds", 0x103970, 0x20
+
+ .global UNK_020FF990
+UNK_020FF990: ; 0x020FF990
+ .incbin "baserom.nds", 0x103990, 0x40
+
+ .global UNK_020FF9D0
+UNK_020FF9D0: ; 0x020FF9D0
+ .incbin "baserom.nds", 0x1039d0, 0x20
+
+ .global UNK_020FF9F0
+UNK_020FF9F0: ; 0x020FF9F0
+ .incbin "baserom.nds", 0x1039f0, 0x1
+
+ .global UNK_020FF9F1
+UNK_020FF9F1: ; 0x020FF9F1
+ .incbin "baserom.nds", 0x1039f1, 0x1
+
+ .global UNK_020FF9F2
+UNK_020FF9F2: ; 0x020FF9F2
+ .incbin "baserom.nds", 0x1039f2, 0x1
+
+ .global UNK_020FF9F3
+UNK_020FF9F3: ; 0x020FF9F3
+ .incbin "baserom.nds", 0x1039f3, 0x21
+
+ .global UNK_020FFA14
+UNK_020FFA14: ; 0x020FFA14
+ .incbin "baserom.nds", 0x103a14, 0x1
+
+ .global UNK_020FFA15
+UNK_020FFA15: ; 0x020FFA15
+ .incbin "baserom.nds", 0x103a15, 0x1
+
+ .global UNK_020FFA16
+UNK_020FFA16: ; 0x020FFA16
+ .incbin "baserom.nds", 0x103a16, 0x1
+
+ .global UNK_020FFA17
+UNK_020FFA17: ; 0x020FFA17
+ .incbin "baserom.nds", 0x103a17, 0x21
+
+ .global UNK_020FFA38
+UNK_020FFA38: ; 0x020FFA38
+ .incbin "baserom.nds", 0x103a38, 0x609
+
+ .global UNK_02100041
+UNK_02100041: ; 0x02100041
+ .incbin "baserom.nds", 0x104041, 0xe5
+
+ .global UNK_02100126
+UNK_02100126: ; 0x02100126
+ .incbin "baserom.nds", 0x104126, 0xe8
+
+ .global UNK_0210020E
+UNK_0210020E: ; 0x0210020E
+ .incbin "baserom.nds", 0x10420e, 0x1
+
+ .global UNK_0210020F
+UNK_0210020F: ; 0x0210020F
+ .incbin "baserom.nds", 0x10420f, 0xdf2
+
+ .global UNK_02101001
+UNK_02101001: ; 0x02101001
+ .incbin "baserom.nds", 0x105001, 0x1
+
+ .global UNK_02101002
+UNK_02101002: ; 0x02101002
+ .incbin "baserom.nds", 0x105002, 0xfff
+
+ .global UNK_02102001
+UNK_02102001: ; 0x02102001
+ .incbin "baserom.nds", 0x106001, 0x1000
+
+ .global UNK_02103001
+UNK_02103001: ; 0x02103001
+ .incbin "baserom.nds", 0x107001, 0xa37
+
+ .global FX_AtanTable_
+FX_AtanTable_: ; 0x02103A38
+ .incbin "baserom.nds", 0x107a38, 0x104
+
+ .global UNK_02103B3C
+UNK_02103B3C: ; 0x02103B3C
+ .incbin "baserom.nds", 0x107b3c, 0x10
+
+ .global UNK_02103B4C
+UNK_02103B4C: ; 0x02103B4C
+ .incbin "baserom.nds", 0x107b4c, 0x2
+
+ .global UNK_02103B4E
+UNK_02103B4E: ; 0x02103B4E
+ .incbin "baserom.nds", 0x107b4e, 0x2
+
+ .global UNK_02103B50
+UNK_02103B50: ; 0x02103B50
+ .incbin "baserom.nds", 0x107b50, 0x5c
+
+ .global UNK_02103BAC
+UNK_02103BAC: ; 0x02103BAC
+ .incbin "baserom.nds", 0x107bac, 0x100
+
+ .global UNK_02103CAC
+UNK_02103CAC: ; 0x02103CAC
+ .incbin "baserom.nds", 0x107cac, 0x2d4
diff --git a/arm9/data/rom2_3.s b/arm9/data/rom2_3.s
index 14ce7502..a86431af 100644
--- a/arm9/data/rom2_3.s
+++ b/arm9/data/rom2_3.s
@@ -6,7 +6,1368 @@
.section .rodata
/* 0x02103FE4 */
- .incbin "baserom.nds", 0x107FE4, 0x790
+
+ .global UNK_02103FE4
+UNK_02103FE4: ; 0x02103FE4
+ .incbin "baserom.nds", 0x107fe4, 0x4
+
+ .global UNK_02103FE8
+UNK_02103FE8: ; 0x02103FE8
+ .incbin "baserom.nds", 0x107fe8, 0xc
+
+ .global UNK_02103FF4
+UNK_02103FF4: ; 0x02103FF4
+ .incbin "baserom.nds", 0x107ff4, 0x10
+
+ .global UNK_02104004
+UNK_02104004: ; 0x02104004
+ .incbin "baserom.nds", 0x108004, 0x8
+
+ .global UNK_0210400C
+UNK_0210400C: ; 0x0210400C
+ .incbin "baserom.nds", 0x10800c, 0x3c
+
+ .global UNK_02104048
+UNK_02104048: ; 0x02104048
+ .incbin "baserom.nds", 0x108048, 0x3c
+
+ .global UNK_02104084
+UNK_02104084: ; 0x02104084
+ .incbin "baserom.nds", 0x108084, 0x8
+
+ .global UNK_0210408C
+UNK_0210408C: ; 0x0210408C
+ .incbin "baserom.nds", 0x10808c, 0x3c
+
+ .global UNK_021040C8
+UNK_021040C8: ; 0x021040C8
+ .incbin "baserom.nds", 0x1080c8, 0x8
+
+ .global UNK_021040D0
+UNK_021040D0: ; 0x021040D0
+ .incbin "baserom.nds", 0x1080d0, 0x3c
+
+ .global UNK_0210410C
+UNK_0210410C: ; 0x0210410C
+ .incbin "baserom.nds", 0x10810c, 0x3c
+
+ .global UNK_02104148
+UNK_02104148: ; 0x02104148
+ .incbin "baserom.nds", 0x108148, 0x8
+
+ .global UNK_02104150
+UNK_02104150: ; 0x02104150
+ .incbin "baserom.nds", 0x108150, 0x3c
+
+ .global UNK_0210418C
+UNK_0210418C: ; 0x0210418C
+ .incbin "baserom.nds", 0x10818c, 0x3c
+
+ .global UNK_021041C8
+UNK_021041C8: ; 0x021041C8
+ .incbin "baserom.nds", 0x1081c8, 0x8
+
+ .global UNK_021041D0
+UNK_021041D0: ; 0x021041D0
+ .incbin "baserom.nds", 0x1081d0, 0x3c
+
+ .global UNK_0210420C
+UNK_0210420C: ; 0x0210420C
+ .incbin "baserom.nds", 0x10820c, 0x80
+
+ .global UNK_0210428C
+UNK_0210428C: ; 0x0210428C
+ .incbin "baserom.nds", 0x10828c, 0x80
+
+ .global UNK_0210430C
+UNK_0210430C: ; 0x0210430C
+ .incbin "baserom.nds", 0x10830c, 0x100
+
+ .global UNK_0210440C
+UNK_0210440C: ; 0x0210440C
+ .incbin "baserom.nds", 0x10840c, 0x28
+
+ .global UNK_02104434
+UNK_02104434: ; 0x02104434
+ .incbin "baserom.nds", 0x108434, 0x5
+
+ .global UNK_02104439
+UNK_02104439: ; 0x02104439
+ .incbin "baserom.nds", 0x108439, 0x10b
+
+ .global UNK_02104544
+UNK_02104544: ; 0x02104544
+ .incbin "baserom.nds", 0x108544, 0x200
+
+ .global UNK_02104744
+UNK_02104744: ; 0x02104744
+ .incbin "baserom.nds", 0x108744, 0x10
+
+ .global UNK_02104754
+UNK_02104754: ; 0x02104754
+ .incbin "baserom.nds", 0x108754, 0x10
+
+ .global UNK_02104764
+UNK_02104764: ; 0x02104764
+ .incbin "baserom.nds", 0x108764, 0x10
.section .data
- .incbin "baserom.nds", 0x108780, 0x20ac
+ ; 0x02104780
+ .global UNK_02104780
+UNK_02104780: ; 0x02104780
+ .incbin "baserom.nds", 0x108780, 0x1c
+
+ .global UNK_0210479C
+UNK_0210479C: ; 0x0210479C
+ .incbin "baserom.nds", 0x10879c, 0xc
+
+ .global UNK_021047A8
+UNK_021047A8: ; 0x021047A8
+ .incbin "baserom.nds", 0x1087a8, 0x10
+
+ .global UNK_021047B8
+UNK_021047B8: ; 0x021047B8
+ .incbin "baserom.nds", 0x1087b8, 0x10
+
+ .global UNK_021047C8
+UNK_021047C8: ; 0x021047C8
+ .incbin "baserom.nds", 0x1087c8, 0x14
+
+ .global UNK_021047DC
+UNK_021047DC: ; 0x021047DC
+ .incbin "baserom.nds", 0x1087dc, 0x14
+
+ .global UNK_021047F0
+UNK_021047F0: ; 0x021047F0
+ .incbin "baserom.nds", 0x1087f0, 0x14
+
+ .global UNK_02104804
+UNK_02104804: ; 0x02104804
+ .incbin "baserom.nds", 0x108804, 0x14
+
+ .global UNK_02104818
+UNK_02104818: ; 0x02104818
+ .incbin "baserom.nds", 0x108818, 0x14
+
+ .global UNK_0210482C
+UNK_0210482C: ; 0x0210482C
+ .incbin "baserom.nds", 0x10882c, 0x14
+
+ .global UNK_02104840
+UNK_02104840: ; 0x02104840
+ .incbin "baserom.nds", 0x108840, 0x14
+
+ .global UNK_02104854
+UNK_02104854: ; 0x02104854
+ .incbin "baserom.nds", 0x108854, 0x14
+
+ .global UNK_02104868
+UNK_02104868: ; 0x02104868
+ .incbin "baserom.nds", 0x108868, 0x14
+
+ .global UNK_0210487C
+UNK_0210487C: ; 0x0210487C
+ .incbin "baserom.nds", 0x10887c, 0x14
+
+ .global UNK_02104890
+UNK_02104890: ; 0x02104890
+ .incbin "baserom.nds", 0x108890, 0x14
+
+ .global UNK_021048A4
+UNK_021048A4: ; 0x021048A4
+ .incbin "baserom.nds", 0x1088a4, 0x14
+
+ .global UNK_021048B8
+UNK_021048B8: ; 0x021048B8
+ .incbin "baserom.nds", 0x1088b8, 0x14
+
+ .global UNK_021048CC
+UNK_021048CC: ; 0x021048CC
+ .incbin "baserom.nds", 0x1088cc, 0x14
+
+ .global UNK_021048E0
+UNK_021048E0: ; 0x021048E0
+ .incbin "baserom.nds", 0x1088e0, 0x14
+
+ .global UNK_021048F4
+UNK_021048F4: ; 0x021048F4
+ .incbin "baserom.nds", 0x1088f4, 0x14
+
+ .global UNK_02104908
+UNK_02104908: ; 0x02104908
+ .incbin "baserom.nds", 0x108908, 0x14
+
+ .global UNK_0210491C
+UNK_0210491C: ; 0x0210491C
+ .incbin "baserom.nds", 0x10891c, 0x14
+
+ .global UNK_02104930
+UNK_02104930: ; 0x02104930
+ .incbin "baserom.nds", 0x108930, 0x14
+
+ .global UNK_02104944
+UNK_02104944: ; 0x02104944
+ .incbin "baserom.nds", 0x108944, 0x14
+
+ .global UNK_02104958
+UNK_02104958: ; 0x02104958
+ .incbin "baserom.nds", 0x108958, 0x18
+
+ .global UNK_02104970
+UNK_02104970: ; 0x02104970
+ .incbin "baserom.nds", 0x108970, 0x18
+
+ .global UNK_02104988
+UNK_02104988: ; 0x02104988
+ .incbin "baserom.nds", 0x108988, 0x18
+
+ .global UNK_021049A0
+UNK_021049A0: ; 0x021049A0
+ .incbin "baserom.nds", 0x1089a0, 0x18
+
+ .global UNK_021049B8
+UNK_021049B8: ; 0x021049B8
+ .incbin "baserom.nds", 0x1089b8, 0x18
+
+ .global UNK_021049D0
+UNK_021049D0: ; 0x021049D0
+ .incbin "baserom.nds", 0x1089d0, 0x18
+
+ .global UNK_021049E8
+UNK_021049E8: ; 0x021049E8
+ .incbin "baserom.nds", 0x1089e8, 0x18
+
+ .global UNK_02104A00
+UNK_02104A00: ; 0x02104A00
+ .incbin "baserom.nds", 0x108a00, 0x18
+
+ .global UNK_02104A18
+UNK_02104A18: ; 0x02104A18
+ .incbin "baserom.nds", 0x108a18, 0x18
+
+ .global UNK_02104A30
+UNK_02104A30: ; 0x02104A30
+ .incbin "baserom.nds", 0x108a30, 0x18
+
+ .global UNK_02104A48
+UNK_02104A48: ; 0x02104A48
+ .incbin "baserom.nds", 0x108a48, 0x18
+
+ .global UNK_02104A60
+UNK_02104A60: ; 0x02104A60
+ .incbin "baserom.nds", 0x108a60, 0x18
+
+ .global UNK_02104A78
+UNK_02104A78: ; 0x02104A78
+ .incbin "baserom.nds", 0x108a78, 0x18
+
+ .global UNK_02104A90
+UNK_02104A90: ; 0x02104A90
+ .incbin "baserom.nds", 0x108a90, 0x18
+
+ .global UNK_02104AA8
+UNK_02104AA8: ; 0x02104AA8
+ .incbin "baserom.nds", 0x108aa8, 0x18
+
+ .global UNK_02104AC0
+UNK_02104AC0: ; 0x02104AC0
+ .incbin "baserom.nds", 0x108ac0, 0x18
+
+ .global UNK_02104AD8
+UNK_02104AD8: ; 0x02104AD8
+ .incbin "baserom.nds", 0x108ad8, 0x18
+
+ .global UNK_02104AF0
+UNK_02104AF0: ; 0x02104AF0
+ .incbin "baserom.nds", 0x108af0, 0x18
+
+ .global UNK_02104B08
+UNK_02104B08: ; 0x02104B08
+ .incbin "baserom.nds", 0x108b08, 0x18
+
+ .global UNK_02104B20
+UNK_02104B20: ; 0x02104B20
+ .incbin "baserom.nds", 0x108b20, 0x18
+
+ .global UNK_02104B38
+UNK_02104B38: ; 0x02104B38
+ .incbin "baserom.nds", 0x108b38, 0x18
+
+ .global UNK_02104B50
+UNK_02104B50: ; 0x02104B50
+ .incbin "baserom.nds", 0x108b50, 0x18
+
+ .global UNK_02104B68
+UNK_02104B68: ; 0x02104B68
+ .incbin "baserom.nds", 0x108b68, 0x18
+
+ .global UNK_02104B80
+UNK_02104B80: ; 0x02104B80
+ .incbin "baserom.nds", 0x108b80, 0x18
+
+ .global UNK_02104B98
+UNK_02104B98: ; 0x02104B98
+ .incbin "baserom.nds", 0x108b98, 0x18
+
+ .global UNK_02104BB0
+UNK_02104BB0: ; 0x02104BB0
+ .incbin "baserom.nds", 0x108bb0, 0x18
+
+ .global UNK_02104BC8
+UNK_02104BC8: ; 0x02104BC8
+ .incbin "baserom.nds", 0x108bc8, 0x18
+
+ .global UNK_02104BE0
+UNK_02104BE0: ; 0x02104BE0
+ .incbin "baserom.nds", 0x108be0, 0x18
+
+ .global UNK_02104BF8
+UNK_02104BF8: ; 0x02104BF8
+ .incbin "baserom.nds", 0x108bf8, 0x18
+
+ .global UNK_02104C10
+UNK_02104C10: ; 0x02104C10
+ .incbin "baserom.nds", 0x108c10, 0x18
+
+ .global UNK_02104C28
+UNK_02104C28: ; 0x02104C28
+ .incbin "baserom.nds", 0x108c28, 0x18
+
+ .global UNK_02104C40
+UNK_02104C40: ; 0x02104C40
+ .incbin "baserom.nds", 0x108c40, 0x18
+
+ .global UNK_02104C58
+UNK_02104C58: ; 0x02104C58
+ .incbin "baserom.nds", 0x108c58, 0x18
+
+ .global UNK_02104C70
+UNK_02104C70: ; 0x02104C70
+ .incbin "baserom.nds", 0x108c70, 0x18
+
+ .global UNK_02104C88
+UNK_02104C88: ; 0x02104C88
+ .incbin "baserom.nds", 0x108c88, 0x18
+
+ .global UNK_02104CA0
+UNK_02104CA0: ; 0x02104CA0
+ .incbin "baserom.nds", 0x108ca0, 0x18
+
+ .global UNK_02104CB8
+UNK_02104CB8: ; 0x02104CB8
+ .incbin "baserom.nds", 0x108cb8, 0x18
+
+ .global UNK_02104CD0
+UNK_02104CD0: ; 0x02104CD0
+ .incbin "baserom.nds", 0x108cd0, 0x18
+
+ .global UNK_02104CE8
+UNK_02104CE8: ; 0x02104CE8
+ .incbin "baserom.nds", 0x108ce8, 0x18
+
+ .global UNK_02104D00
+UNK_02104D00: ; 0x02104D00
+ .incbin "baserom.nds", 0x108d00, 0x18
+
+ .global UNK_02104D18
+UNK_02104D18: ; 0x02104D18
+ .incbin "baserom.nds", 0x108d18, 0x1c
+
+ .global UNK_02104D34
+UNK_02104D34: ; 0x02104D34
+ .incbin "baserom.nds", 0x108d34, 0x1c
+
+ .global UNK_02104D50
+UNK_02104D50: ; 0x02104D50
+ .incbin "baserom.nds", 0x108d50, 0x1c
+
+ .global UNK_02104D6C
+UNK_02104D6C: ; 0x02104D6C
+ .incbin "baserom.nds", 0x108d6c, 0x1c
+
+ .global UNK_02104D88
+UNK_02104D88: ; 0x02104D88
+ .incbin "baserom.nds", 0x108d88, 0x1c
+
+ .global UNK_02104DA4
+UNK_02104DA4: ; 0x02104DA4
+ .incbin "baserom.nds", 0x108da4, 0x1c
+
+ .global UNK_02104DC0
+UNK_02104DC0: ; 0x02104DC0
+ .incbin "baserom.nds", 0x108dc0, 0x1c
+
+ .global UNK_02104DDC
+UNK_02104DDC: ; 0x02104DDC
+ .incbin "baserom.nds", 0x108ddc, 0x1c
+
+ .global UNK_02104DF8
+UNK_02104DF8: ; 0x02104DF8
+ .incbin "baserom.nds", 0x108df8, 0x1c
+
+ .global UNK_02104E14
+UNK_02104E14: ; 0x02104E14
+ .incbin "baserom.nds", 0x108e14, 0x1c
+
+ .global UNK_02104E30
+UNK_02104E30: ; 0x02104E30
+ .incbin "baserom.nds", 0x108e30, 0x1c
+
+ .global UNK_02104E4C
+UNK_02104E4C: ; 0x02104E4C
+ .incbin "baserom.nds", 0x108e4c, 0x1c
+
+ .global UNK_02104E68
+UNK_02104E68: ; 0x02104E68
+ .incbin "baserom.nds", 0x108e68, 0x1c
+
+ .global UNK_02104E84
+UNK_02104E84: ; 0x02104E84
+ .incbin "baserom.nds", 0x108e84, 0x1c
+
+ .global UNK_02104EA0
+UNK_02104EA0: ; 0x02104EA0
+ .incbin "baserom.nds", 0x108ea0, 0x1c
+
+ .global UNK_02104EBC
+UNK_02104EBC: ; 0x02104EBC
+ .incbin "baserom.nds", 0x108ebc, 0x1c
+
+ .global UNK_02104ED8
+UNK_02104ED8: ; 0x02104ED8
+ .incbin "baserom.nds", 0x108ed8, 0x1c
+
+ .global UNK_02104EF4
+UNK_02104EF4: ; 0x02104EF4
+ .incbin "baserom.nds", 0x108ef4, 0x1c
+
+ .global UNK_02104F10
+UNK_02104F10: ; 0x02104F10
+ .incbin "baserom.nds", 0x108f10, 0x1c
+
+ .global UNK_02104F2C
+UNK_02104F2C: ; 0x02104F2C
+ .incbin "baserom.nds", 0x108f2c, 0x1c
+
+ .global UNK_02104F48
+UNK_02104F48: ; 0x02104F48
+ .incbin "baserom.nds", 0x108f48, 0x1c
+
+ .global UNK_02104F64
+UNK_02104F64: ; 0x02104F64
+ .incbin "baserom.nds", 0x108f64, 0x1c
+
+ .global UNK_02104F80
+UNK_02104F80: ; 0x02104F80
+ .incbin "baserom.nds", 0x108f80, 0x20
+
+ .global UNK_02104FA0
+UNK_02104FA0: ; 0x02104FA0
+ .incbin "baserom.nds", 0x108fa0, 0x20
+
+ .global UNK_02104FC0
+UNK_02104FC0: ; 0x02104FC0
+ .incbin "baserom.nds", 0x108fc0, 0x20
+
+ .global UNK_02104FE0
+UNK_02104FE0: ; 0x02104FE0
+ .incbin "baserom.nds", 0x108fe0, 0x20
+
+ .global UNK_02105000
+UNK_02105000: ; 0x02105000
+ .incbin "baserom.nds", 0x109000, 0x20
+
+ .global UNK_02105020
+UNK_02105020: ; 0x02105020
+ .incbin "baserom.nds", 0x109020, 0x20
+
+ .global UNK_02105040
+UNK_02105040: ; 0x02105040
+ .incbin "baserom.nds", 0x109040, 0x20
+
+ .global UNK_02105060
+UNK_02105060: ; 0x02105060
+ .incbin "baserom.nds", 0x109060, 0x20
+
+ .global UNK_02105080
+UNK_02105080: ; 0x02105080
+ .incbin "baserom.nds", 0x109080, 0x20
+
+ .global UNK_021050A0
+UNK_021050A0: ; 0x021050A0
+ .incbin "baserom.nds", 0x1090a0, 0x20
+
+ .global UNK_021050C0
+UNK_021050C0: ; 0x021050C0
+ .incbin "baserom.nds", 0x1090c0, 0x20
+
+ .global UNK_021050E0
+UNK_021050E0: ; 0x021050E0
+ .incbin "baserom.nds", 0x1090e0, 0x20
+
+ .global UNK_02105100
+UNK_02105100: ; 0x02105100
+ .incbin "baserom.nds", 0x109100, 0x20
+
+ .global UNK_02105120
+UNK_02105120: ; 0x02105120
+ .incbin "baserom.nds", 0x109120, 0x20
+
+ .global UNK_02105140
+UNK_02105140: ; 0x02105140
+ .incbin "baserom.nds", 0x109140, 0x20
+
+ .global UNK_02105160
+UNK_02105160: ; 0x02105160
+ .incbin "baserom.nds", 0x109160, 0x20
+
+ .global UNK_02105180
+UNK_02105180: ; 0x02105180
+ .incbin "baserom.nds", 0x109180, 0x20
+
+ .global UNK_021051A0
+UNK_021051A0: ; 0x021051A0
+ .incbin "baserom.nds", 0x1091a0, 0x20
+
+ .global UNK_021051C0
+UNK_021051C0: ; 0x021051C0
+ .incbin "baserom.nds", 0x1091c0, 0x20
+
+ .global UNK_021051E0
+UNK_021051E0: ; 0x021051E0
+ .incbin "baserom.nds", 0x1091e0, 0x20
+
+ .global UNK_02105200
+UNK_02105200: ; 0x02105200
+ .incbin "baserom.nds", 0x109200, 0x20
+
+ .global UNK_02105220
+UNK_02105220: ; 0x02105220
+ .incbin "baserom.nds", 0x109220, 0x20
+
+ .global UNK_02105240
+UNK_02105240: ; 0x02105240
+ .incbin "baserom.nds", 0x109240, 0x20
+
+ .global UNK_02105260
+UNK_02105260: ; 0x02105260
+ .incbin "baserom.nds", 0x109260, 0x20
+
+ .global UNK_02105280
+UNK_02105280: ; 0x02105280
+ .incbin "baserom.nds", 0x109280, 0x20
+
+ .global UNK_021052A0
+UNK_021052A0: ; 0x021052A0
+ .incbin "baserom.nds", 0x1092a0, 0x24
+
+ .global UNK_021052C4
+UNK_021052C4: ; 0x021052C4
+ .incbin "baserom.nds", 0x1092c4, 0x24
+
+ .global UNK_021052E8
+UNK_021052E8: ; 0x021052E8
+ .incbin "baserom.nds", 0x1092e8, 0x24
+
+ .global UNK_0210530C
+UNK_0210530C: ; 0x0210530C
+ .incbin "baserom.nds", 0x10930c, 0x24
+
+ .global UNK_02105330
+UNK_02105330: ; 0x02105330
+ .incbin "baserom.nds", 0x109330, 0x24
+
+ .global UNK_02105354
+UNK_02105354: ; 0x02105354
+ .incbin "baserom.nds", 0x109354, 0x24
+
+ .global UNK_02105378
+UNK_02105378: ; 0x02105378
+ .incbin "baserom.nds", 0x109378, 0x24
+
+ .global UNK_0210539C
+UNK_0210539C: ; 0x0210539C
+ .incbin "baserom.nds", 0x10939c, 0x24
+
+ .global UNK_021053C0
+UNK_021053C0: ; 0x021053C0
+ .incbin "baserom.nds", 0x1093c0, 0x24
+
+ .global UNK_021053E4
+UNK_021053E4: ; 0x021053E4
+ .incbin "baserom.nds", 0x1093e4, 0x24
+
+ .global UNK_02105408
+UNK_02105408: ; 0x02105408
+ .incbin "baserom.nds", 0x109408, 0x24
+
+ .global UNK_0210542C
+UNK_0210542C: ; 0x0210542C
+ .incbin "baserom.nds", 0x10942c, 0x28
+
+ .global UNK_02105454
+UNK_02105454: ; 0x02105454
+ .incbin "baserom.nds", 0x109454, 0x28
+
+ .global UNK_0210547C
+UNK_0210547C: ; 0x0210547C
+ .incbin "baserom.nds", 0x10947c, 0x28
+
+ .global UNK_021054A4
+UNK_021054A4: ; 0x021054A4
+ .incbin "baserom.nds", 0x1094a4, 0x28
+
+ .global UNK_021054CC
+UNK_021054CC: ; 0x021054CC
+ .incbin "baserom.nds", 0x1094cc, 0x28
+
+ .global UNK_021054F4
+UNK_021054F4: ; 0x021054F4
+ .incbin "baserom.nds", 0x1094f4, 0x28
+
+ .global UNK_0210551C
+UNK_0210551C: ; 0x0210551C
+ .incbin "baserom.nds", 0x10951c, 0x28
+
+ .global UNK_02105544
+UNK_02105544: ; 0x02105544
+ .incbin "baserom.nds", 0x109544, 0x28
+
+ .global UNK_0210556C
+UNK_0210556C: ; 0x0210556C
+ .incbin "baserom.nds", 0x10956c, 0x28
+
+ .global UNK_02105594
+UNK_02105594: ; 0x02105594
+ .incbin "baserom.nds", 0x109594, 0x28
+
+ .global UNK_021055BC
+UNK_021055BC: ; 0x021055BC
+ .incbin "baserom.nds", 0x1095bc, 0x2c
+
+ .global UNK_021055E8
+UNK_021055E8: ; 0x021055E8
+ .incbin "baserom.nds", 0x1095e8, 0x2c
+
+ .global UNK_02105614
+UNK_02105614: ; 0x02105614
+ .incbin "baserom.nds", 0x109614, 0x2c
+
+ .global UNK_02105640
+UNK_02105640: ; 0x02105640
+ .incbin "baserom.nds", 0x109640, 0x2c
+
+ .global UNK_0210566C
+UNK_0210566C: ; 0x0210566C
+ .incbin "baserom.nds", 0x10966c, 0x2c
+
+ .global UNK_02105698
+UNK_02105698: ; 0x02105698
+ .incbin "baserom.nds", 0x109698, 0x30
+
+ .global UNK_021056C8
+UNK_021056C8: ; 0x021056C8
+ .incbin "baserom.nds", 0x1096c8, 0x30
+
+ .global UNK_021056F8
+UNK_021056F8: ; 0x021056F8
+ .incbin "baserom.nds", 0x1096f8, 0x30
+
+ .global UNK_02105728
+UNK_02105728: ; 0x02105728
+ .incbin "baserom.nds", 0x109728, 0x34
+
+ .global UNK_0210575C
+UNK_0210575C: ; 0x0210575C
+ .incbin "baserom.nds", 0x10975c, 0x34
+
+ .global UNK_02105790
+UNK_02105790: ; 0x02105790
+ .incbin "baserom.nds", 0x109790, 0x34
+
+ .global UNK_021057C4
+UNK_021057C4: ; 0x021057C4
+ .incbin "baserom.nds", 0x1097c4, 0x34
+
+ .global UNK_021057F8
+UNK_021057F8: ; 0x021057F8
+ .incbin "baserom.nds", 0x1097f8, 0x38
+
+ .global UNK_02105830
+UNK_02105830: ; 0x02105830
+ .incbin "baserom.nds", 0x109830, 0x38
+
+ .global UNK_02105868
+UNK_02105868: ; 0x02105868
+ .incbin "baserom.nds", 0x109868, 0x38
+
+ .global UNK_021058A0
+UNK_021058A0: ; 0x021058A0
+ .incbin "baserom.nds", 0x1098a0, 0x248
+
+ .global UNK_02105AE8
+UNK_02105AE8: ; 0x02105AE8
+ .incbin "baserom.nds", 0x109ae8, 0x10
+
+ .global UNK_02105AF8
+UNK_02105AF8: ; 0x02105AF8
+ .incbin "baserom.nds", 0x109af8, 0x8
+
+ .global UNK_02105B00
+UNK_02105B00: ; 0x02105B00
+ .incbin "baserom.nds", 0x109b00, 0x8
+
+ .global UNK_02105B08
+UNK_02105B08: ; 0x02105B08
+ .incbin "baserom.nds", 0x109b08, 0x8
+
+ .global UNK_02105B10
+UNK_02105B10: ; 0x02105B10
+ .incbin "baserom.nds", 0x109b10, 0x8
+
+ .global UNK_02105B18
+UNK_02105B18: ; 0x02105B18
+ .incbin "baserom.nds", 0x109b18, 0x8
+
+ .global UNK_02105B20
+UNK_02105B20: ; 0x02105B20
+ .incbin "baserom.nds", 0x109b20, 0x8
+
+ .global UNK_02105B28
+UNK_02105B28: ; 0x02105B28
+ .incbin "baserom.nds", 0x109b28, 0x8
+
+ .global UNK_02105B30
+UNK_02105B30: ; 0x02105B30
+ .incbin "baserom.nds", 0x109b30, 0x8
+
+ .global UNK_02105B38
+UNK_02105B38: ; 0x02105B38
+ .incbin "baserom.nds", 0x109b38, 0x8
+
+ .global UNK_02105B40
+UNK_02105B40: ; 0x02105B40
+ .incbin "baserom.nds", 0x109b40, 0x8
+
+ .global UNK_02105B48
+UNK_02105B48: ; 0x02105B48
+ .incbin "baserom.nds", 0x109b48, 0x30
+
+ .global UNK_02105B78
+UNK_02105B78: ; 0x02105B78
+ .incbin "baserom.nds", 0x109b78, 0x30
+
+ .global UNK_02105BA8
+UNK_02105BA8: ; 0x02105BA8
+ .incbin "baserom.nds", 0x109ba8, 0x4
+
+ .global UNK_02105BAC
+UNK_02105BAC: ; 0x02105BAC
+ .incbin "baserom.nds", 0x109bac, 0x8
+
+ .global UNK_02105BB4
+UNK_02105BB4: ; 0x02105BB4
+ .incbin "baserom.nds", 0x109bb4, 0x4
+
+ .global UNK_02105BB8
+UNK_02105BB8: ; 0x02105BB8
+ .incbin "baserom.nds", 0x109bb8, 0x4
+
+ .global UNK_02105BBC
+UNK_02105BBC: ; 0x02105BBC
+ .incbin "baserom.nds", 0x109bbc, 0x18
+
+ .global UNK_02105BD4
+UNK_02105BD4: ; 0x02105BD4
+ .incbin "baserom.nds", 0x109bd4, 0xa0
+
+ .global UNK_02105C74
+UNK_02105C74: ; 0x02105C74
+ .incbin "baserom.nds", 0x109c74, 0x64
+
+ .global UNK_02105CD8
+UNK_02105CD8: ; 0x02105CD8
+ .incbin "baserom.nds", 0x109cd8, 0x7c
+
+ .global UNK_02105D54
+UNK_02105D54: ; 0x02105D54
+ .incbin "baserom.nds", 0x109d54, 0x4
+
+ .global UNK_02105D58
+UNK_02105D58: ; 0x02105D58
+ .incbin "baserom.nds", 0x109d58, 0x4
+
+ .global UNK_02105D5C
+UNK_02105D5C: ; 0x02105D5C
+ .incbin "baserom.nds", 0x109d5c, 0x8
+
+ .global UNK_02105D64
+UNK_02105D64: ; 0x02105D64
+ .incbin "baserom.nds", 0x109d64, 0x1
+
+ .global UNK_02105D65
+UNK_02105D65: ; 0x02105D65
+ .incbin "baserom.nds", 0x109d65, 0x7
+
+ .global UNK_02105D6C
+UNK_02105D6C: ; 0x02105D6C
+ .incbin "baserom.nds", 0x109d6c, 0x1
+
+ .global UNK_02105D6D
+UNK_02105D6D: ; 0x02105D6D
+ .incbin "baserom.nds", 0x109d6d, 0x7
+
+ .global UNK_02105D74
+UNK_02105D74: ; 0x02105D74
+ .incbin "baserom.nds", 0x109d74, 0x14
+
+ .global UNK_02105D88
+UNK_02105D88: ; 0x02105D88
+ .incbin "baserom.nds", 0x109d88, 0x10
+
+ .global UNK_02105D98
+UNK_02105D98: ; 0x02105D98
+ .incbin "baserom.nds", 0x109d98, 0x10
+
+ .global UNK_02105DA8
+UNK_02105DA8: ; 0x02105DA8
+ .incbin "baserom.nds", 0x109da8, 0x10
+
+ .global UNK_02105DB8
+UNK_02105DB8: ; 0x02105DB8
+ .incbin "baserom.nds", 0x109db8, 0x4
+
+ .global UNK_02105DBC
+UNK_02105DBC: ; 0x02105DBC
+ .incbin "baserom.nds", 0x109dbc, 0x10
+
+ .global UNK_02105DCC
+UNK_02105DCC: ; 0x02105DCC
+ .incbin "baserom.nds", 0x109dcc, 0x10
+
+ .global UNK_02105DDC
+UNK_02105DDC: ; 0x02105DDC
+ .incbin "baserom.nds", 0x109ddc, 0x10
+
+ .global UNK_02105DEC
+UNK_02105DEC: ; 0x02105DEC
+ .incbin "baserom.nds", 0x109dec, 0x8
+
+ .global UNK_02105DF4
+UNK_02105DF4: ; 0x02105DF4
+ .incbin "baserom.nds", 0x109df4, 0x1c
+
+ .global UNK_02105E10
+UNK_02105E10: ; 0x02105E10
+ .incbin "baserom.nds", 0x109e10, 0x4c
+
+ .global UNK_02105E5C
+UNK_02105E5C: ; 0x02105E5C
+ .incbin "baserom.nds", 0x109e5c, 0x8
+
+ .global UNK_02105E64
+UNK_02105E64: ; 0x02105E64
+ .incbin "baserom.nds", 0x109e64, 0x10
+
+ .global UNK_02105E74
+UNK_02105E74: ; 0x02105E74
+ .incbin "baserom.nds", 0x109e74, 0xc
+
+ .global UNK_02105E80
+UNK_02105E80: ; 0x02105E80
+ .incbin "baserom.nds", 0x109e80, 0x14
+
+ .global UNK_02105E94
+UNK_02105E94: ; 0x02105E94
+ .incbin "baserom.nds", 0x109e94, 0x1c
+
+ .global UNK_02105EB0
+UNK_02105EB0: ; 0x02105EB0
+ .incbin "baserom.nds", 0x109eb0, 0x18
+
+ .global UNK_02105EC8
+UNK_02105EC8: ; 0x02105EC8
+ .incbin "baserom.nds", 0x109ec8, 0x8
+
+ .global UNK_02105ED0
+UNK_02105ED0: ; 0x02105ED0
+ .incbin "baserom.nds", 0x109ed0, 0x8
+
+ .global UNK_02105ED8
+UNK_02105ED8: ; 0x02105ED8
+ .incbin "baserom.nds", 0x109ed8, 0x1c
+
+ .global UNK_02105EF4
+UNK_02105EF4: ; 0x02105EF4
+ .incbin "baserom.nds", 0x109ef4, 0x1c
+
+ .global UNK_02105F10
+UNK_02105F10: ; 0x02105F10
+ .incbin "baserom.nds", 0x109f10, 0x1c
+
+ .global UNK_02105F2C
+UNK_02105F2C: ; 0x02105F2C
+ .incbin "baserom.nds", 0x109f2c, 0x1c
+
+ .global UNK_02105F48
+UNK_02105F48: ; 0x02105F48
+ .incbin "baserom.nds", 0x109f48, 0x1c
+
+ .global UNK_02105F64
+UNK_02105F64: ; 0x02105F64
+ .incbin "baserom.nds", 0x109f64, 0x1c
+
+ .global UNK_02105F80
+UNK_02105F80: ; 0x02105F80
+ .incbin "baserom.nds", 0x109f80, 0x1c
+
+ .global UNK_02105F9C
+UNK_02105F9C: ; 0x02105F9C
+ .incbin "baserom.nds", 0x109f9c, 0xc
+
+ .global UNK_02105FA8
+UNK_02105FA8: ; 0x02105FA8
+ .incbin "baserom.nds", 0x109fa8, 0x14
+
+ .global UNK_02105FBC
+UNK_02105FBC: ; 0x02105FBC
+ .incbin "baserom.nds", 0x109fbc, 0xc
+
+ .global UNK_02105FC8
+UNK_02105FC8: ; 0x02105FC8
+ .incbin "baserom.nds", 0x109fc8, 0x1c
+
+ .global UNK_02105FE4
+UNK_02105FE4: ; 0x02105FE4
+ .incbin "baserom.nds", 0x109fe4, 0x14
+
+ .global UNK_02105FF8
+UNK_02105FF8: ; 0x02105FF8
+ .incbin "baserom.nds", 0x109ff8, 0x18
+
+ .global UNK_02106010
+UNK_02106010: ; 0x02106010
+ .incbin "baserom.nds", 0x10a010, 0x18
+
+ .global UNK_02106028
+UNK_02106028: ; 0x02106028
+ .incbin "baserom.nds", 0x10a028, 0x18
+
+ .global UNK_02106040
+UNK_02106040: ; 0x02106040
+ .incbin "baserom.nds", 0x10a040, 0x18
+
+ .global UNK_02106058
+UNK_02106058: ; 0x02106058
+ .incbin "baserom.nds", 0x10a058, 0x14
+
+ .global UNK_0210606C
+UNK_0210606C: ; 0x0210606C
+ .incbin "baserom.nds", 0x10a06c, 0x64
+
+ .global UNK_021060D0
+UNK_021060D0: ; 0x021060D0
+ .incbin "baserom.nds", 0x10a0d0, 0x14
+
+ .global UNK_021060E4
+UNK_021060E4: ; 0x021060E4
+ .incbin "baserom.nds", 0x10a0e4, 0x14
+
+ .global UNK_021060F8
+UNK_021060F8: ; 0x021060F8
+ .incbin "baserom.nds", 0x10a0f8, 0x14
+
+ .global UNK_0210610C
+UNK_0210610C: ; 0x0210610C
+ .incbin "baserom.nds", 0x10a10c, 0x18
+
+ .global UNK_02106124
+UNK_02106124: ; 0x02106124
+ .incbin "baserom.nds", 0x10a124, 0x18
+
+ .global UNK_0210613C
+UNK_0210613C: ; 0x0210613C
+ .incbin "baserom.nds", 0x10a13c, 0xc
+
+ .global UNK_02106148
+UNK_02106148: ; 0x02106148
+ .incbin "baserom.nds", 0x10a148, 0xc
+
+ .global UNK_02106154
+UNK_02106154: ; 0x02106154
+ .incbin "baserom.nds", 0x10a154, 0x4
+
+ .global UNK_02106158
+UNK_02106158: ; 0x02106158
+ .incbin "baserom.nds", 0x10a158, 0x8
+
+ .global UNK_02106160
+UNK_02106160: ; 0x02106160
+ .incbin "baserom.nds", 0x10a160, 0x8
+
+ .global UNK_02106168
+UNK_02106168: ; 0x02106168
+ .incbin "baserom.nds", 0x10a168, 0x8
+
+ .global UNK_02106170
+UNK_02106170: ; 0x02106170
+ .incbin "baserom.nds", 0x10a170, 0x1c
+
+ .global UNK_0210618C
+UNK_0210618C: ; 0x0210618C
+ .incbin "baserom.nds", 0x10a18c, 0x10
+
+ .global UNK_0210619C
+UNK_0210619C: ; 0x0210619C
+ .incbin "baserom.nds", 0x10a19c, 0x24
+
+ .global UNK_021061C0
+UNK_021061C0: ; 0x021061C0
+ .incbin "baserom.nds", 0x10a1c0, 0x4
+
+ .global UNK_021061C4
+UNK_021061C4: ; 0x021061C4
+ .incbin "baserom.nds", 0x10a1c4, 0x18
+
+ .global UNK_021061DC
+UNK_021061DC: ; 0x021061DC
+ .incbin "baserom.nds", 0x10a1dc, 0x18
+
+ .global UNK_021061F4
+UNK_021061F4: ; 0x021061F4
+ .incbin "baserom.nds", 0x10a1f4, 0x18
+
+ .global UNK_0210620C
+UNK_0210620C: ; 0x0210620C
+ .incbin "baserom.nds", 0x10a20c, 0xc
+
+ .global UNK_02106218
+UNK_02106218: ; 0x02106218
+ .incbin "baserom.nds", 0x10a218, 0x4
+
+ .global UNK_0210621C
+UNK_0210621C: ; 0x0210621C
+ .incbin "baserom.nds", 0x10a21c, 0x8
+
+ .global UNK_02106224
+UNK_02106224: ; 0x02106224
+ .incbin "baserom.nds", 0x10a224, 0xc
+
+ .global UNK_02106230
+UNK_02106230: ; 0x02106230
+ .incbin "baserom.nds", 0x10a230, 0xc
+
+ .global UNK_0210623C
+UNK_0210623C: ; 0x0210623C
+ .incbin "baserom.nds", 0x10a23c, 0x4
+
+ .global UNK_02106240
+UNK_02106240: ; 0x02106240
+ .incbin "baserom.nds", 0x10a240, 0x4
+
+ .global UNK_02106244
+UNK_02106244: ; 0x02106244
+ .incbin "baserom.nds", 0x10a244, 0x4
+
+ .global UNK_02106248
+UNK_02106248: ; 0x02106248
+ .incbin "baserom.nds", 0x10a248, 0x4
+
+ .global UNK_0210624C
+UNK_0210624C: ; 0x0210624C
+ .incbin "baserom.nds", 0x10a24c, 0x8
+
+ .global UNK_02106254
+UNK_02106254: ; 0x02106254
+ .incbin "baserom.nds", 0x10a254, 0xc
+
+ .global UNK_02106260
+UNK_02106260: ; 0x02106260
+ .incbin "baserom.nds", 0x10a260, 0xc
+
+ .global UNK_0210626C
+UNK_0210626C: ; 0x0210626C
+ .incbin "baserom.nds", 0x10a26c, 0xc
+
+ .global UNK_02106278
+UNK_02106278: ; 0x02106278
+ .incbin "baserom.nds", 0x10a278, 0x18
+
+ .global UNK_02106290
+UNK_02106290: ; 0x02106290
+ .incbin "baserom.nds", 0x10a290, 0x8
+
+ .global UNK_02106298
+UNK_02106298: ; 0x02106298
+ .incbin "baserom.nds", 0x10a298, 0x8
+
+ .global UNK_021062A0
+UNK_021062A0: ; 0x021062A0
+ .incbin "baserom.nds", 0x10a2a0, 0x4
+
+ .global UNK_021062A4
+UNK_021062A4: ; 0x021062A4
+ .incbin "baserom.nds", 0x10a2a4, 0x4
+
+ .global UNK_021062A8
+UNK_021062A8: ; 0x021062A8
+ .incbin "baserom.nds", 0x10a2a8, 0x4
+
+ .global UNK_021062AC
+UNK_021062AC: ; 0x021062AC
+ .incbin "baserom.nds", 0x10a2ac, 0x40
+
+ .global UNK_021062EC
+UNK_021062EC: ; 0x021062EC
+ .incbin "baserom.nds", 0x10a2ec, 0x40
+
+ .global UNK_0210632C
+UNK_0210632C: ; 0x0210632C
+ .incbin "baserom.nds", 0x10a32c, 0x100
+
+ .global UNK_0210642C
+UNK_0210642C: ; 0x0210642C
+ .incbin "baserom.nds", 0x10a42c, 0x1
+
+ .global UNK_0210642D
+UNK_0210642D: ; 0x0210642D
+ .incbin "baserom.nds", 0x10a42d, 0x3f
+
+ .global UNK_0210646C
+UNK_0210646C: ; 0x0210646C
+ .incbin "baserom.nds", 0x10a46c, 0x4
+
+ .global UNK_02106470
+UNK_02106470: ; 0x02106470
+ .incbin "baserom.nds", 0x10a470, 0x20
+
+ .global UNK_02106490
+UNK_02106490: ; 0x02106490
+ .incbin "baserom.nds", 0x10a490, 0x8
+
+ .global UNK_02106498
+UNK_02106498: ; 0x02106498
+ .incbin "baserom.nds", 0x10a498, 0x10
+
+ .global UNK_021064A8
+UNK_021064A8: ; 0x021064A8
+ .incbin "baserom.nds", 0x10a4a8, 0x10
+
+ .global UNK_021064B8
+UNK_021064B8: ; 0x021064B8
+ .incbin "baserom.nds", 0x10a4b8, 0x4
+
+ .global UNK_021064BC
+UNK_021064BC: ; 0x021064BC
+ .incbin "baserom.nds", 0x10a4bc, 0x4
+
+ .global UNK_021064C0
+UNK_021064C0: ; 0x021064C0
+ .incbin "baserom.nds", 0x10a4c0, 0x4
+
+ .global UNK_021064C4
+UNK_021064C4: ; 0x021064C4
+ .incbin "baserom.nds", 0x10a4c4, 0x4
+
+ .global UNK_021064C8
+UNK_021064C8: ; 0x021064C8
+ .incbin "baserom.nds", 0x10a4c8, 0x8
+
+ .global UNK_021064D0
+UNK_021064D0: ; 0x021064D0
+ .incbin "baserom.nds", 0x10a4d0, 0x14
+
+ .global UNK_021064E4
+UNK_021064E4: ; 0x021064E4
+ .incbin "baserom.nds", 0x10a4e4, 0x18
+
+ .global UNK_021064FC
+UNK_021064FC: ; 0x021064FC
+ .incbin "baserom.nds", 0x10a4fc, 0x18
+
+ .global UNK_02106514
+UNK_02106514: ; 0x02106514
+ .incbin "baserom.nds", 0x10a514, 0x18
+
+ .global UNK_0210652C
+UNK_0210652C: ; 0x0210652C
+ .incbin "baserom.nds", 0x10a52c, 0x18
+
+ .global UNK_02106544
+UNK_02106544: ; 0x02106544
+ .incbin "baserom.nds", 0x10a544, 0x18
+
+ .global UNK_0210655C
+UNK_0210655C: ; 0x0210655C
+ .incbin "baserom.nds", 0x10a55c, 0x14
+
+ .global UNK_02106570
+UNK_02106570: ; 0x02106570
+ .incbin "baserom.nds", 0x10a570, 0x4
+
+ .global UNK_02106574
+UNK_02106574: ; 0x02106574
+ .incbin "baserom.nds", 0x10a574, 0x4
+
+ .global UNK_02106578
+UNK_02106578: ; 0x02106578
+ .incbin "baserom.nds", 0x10a578, 0x18
+
+ .global UNK_02106590
+UNK_02106590: ; 0x02106590
+ .incbin "baserom.nds", 0x10a590, 0x4
+
+ .global UNK_02106594
+UNK_02106594: ; 0x02106594
+ .incbin "baserom.nds", 0x10a594, 0x4
+
+ .global UNK_02106598
+UNK_02106598: ; 0x02106598
+ .incbin "baserom.nds", 0x10a598, 0x4
+
+ .global UNK_0210659C
+UNK_0210659C: ; 0x0210659C
+ .incbin "baserom.nds", 0x10a59c, 0x4
+
+ .global UNK_021065A0
+UNK_021065A0: ; 0x021065A0
+ .incbin "baserom.nds", 0x10a5a0, 0x4
+
+ .global UNK_021065A4
+UNK_021065A4: ; 0x021065A4
+ .incbin "baserom.nds", 0x10a5a4, 0x4
+
+ .global UNK_021065A8
+UNK_021065A8: ; 0x021065A8
+ .incbin "baserom.nds", 0x10a5a8, 0x4
+
+ .global UNK_021065AC
+UNK_021065AC: ; 0x021065AC
+ .incbin "baserom.nds", 0x10a5ac, 0x4
+
+ .global UNK_021065B0
+UNK_021065B0: ; 0x021065B0
+ .incbin "baserom.nds", 0x10a5b0, 0x4
+
+ .global UNK_021065B4
+UNK_021065B4: ; 0x021065B4
+ .incbin "baserom.nds", 0x10a5b4, 0x4
+
+ .global UNK_021065B8
+UNK_021065B8: ; 0x021065B8
+ .incbin "baserom.nds", 0x10a5b8, 0x4
+
+ .global UNK_021065BC
+UNK_021065BC: ; 0x021065BC
+ .incbin "baserom.nds", 0x10a5bc, 0x4c
+
+ .global UNK_02106608
+UNK_02106608: ; 0x02106608
+ .incbin "baserom.nds", 0x10a608, 0xc
+
+ .global UNK_02106614
+UNK_02106614: ; 0x02106614
+ .incbin "baserom.nds", 0x10a614, 0xc
+
+ .global UNK_02106620
+UNK_02106620: ; 0x02106620
+ .incbin "baserom.nds", 0x10a620, 0x10
+
+ .global UNK_02106630
+UNK_02106630: ; 0x02106630
+ .incbin "baserom.nds", 0x10a630, 0x4
+
+ .global UNK_02106634
+UNK_02106634: ; 0x02106634
+ .incbin "baserom.nds", 0x10a634, 0x4
+
+ .global UNK_02106638
+UNK_02106638: ; 0x02106638
+ .incbin "baserom.nds", 0x10a638, 0x4
+
+ .global UNK_0210663C
+UNK_0210663C: ; 0x0210663C
+ .incbin "baserom.nds", 0x10a63c, 0x4
+
+ .global UNK_02106640
+UNK_02106640: ; 0x02106640
+ .incbin "baserom.nds", 0x10a640, 0x10
+
+ .global UNK_02106650
+UNK_02106650: ; 0x02106650
+ .incbin "baserom.nds", 0x10a650, 0x10
+
+ .global UNK_02106660
+UNK_02106660: ; 0x02106660
+ .incbin "baserom.nds", 0x10a660, 0x40
+
+ .global UNK_021066A0
+UNK_021066A0: ; 0x021066A0
+ .incbin "baserom.nds", 0x10a6a0, 0x4
+
+ .global UNK_021066A4
+UNK_021066A4: ; 0x021066A4
+ .incbin "baserom.nds", 0x10a6a4, 0x8
+
+ .global UNK_021066AC
+UNK_021066AC: ; 0x021066AC
+ .incbin "baserom.nds", 0x10a6ac, 0x24
+
+ .global UNK_021066D0
+UNK_021066D0: ; 0x021066D0
+ .incbin "baserom.nds", 0x10a6d0, 0xc
+
+ .global UNK_021066DC
+UNK_021066DC: ; 0x021066DC
+ .incbin "baserom.nds", 0x10a6dc, 0xc
+
+ .global UNK_021066E8
+UNK_021066E8: ; 0x021066E8
+ .incbin "baserom.nds", 0x10a6e8, 0x4
+
+ .global UNK_021066EC
+UNK_021066EC: ; 0x021066EC
+ .incbin "baserom.nds", 0x10a6ec, 0x8
+
+ .global UNK_021066F4
+UNK_021066F4: ; 0x021066F4
+ .incbin "baserom.nds", 0x10a6f4, 0x24
+
+ .global UNK_02106718
+UNK_02106718: ; 0x02106718
+ .incbin "baserom.nds", 0x10a718, 0xc
+
+ .global UNK_02106724
+UNK_02106724: ; 0x02106724
+ .incbin "baserom.nds", 0x10a724, 0xc
+
+ .global UNK_02106730
+UNK_02106730: ; 0x02106730
+ .incbin "baserom.nds", 0x10a730, 0x80
+
+ .global UNK_021067B0
+UNK_021067B0: ; 0x021067B0
+ .incbin "baserom.nds", 0x10a7b0, 0x20
+
+ .global UNK_021067D0
+UNK_021067D0: ; 0x021067D0
+ .incbin "baserom.nds", 0x10a7d0, 0x20
+
+ .global UNK_021067F0
+UNK_021067F0: ; 0x021067F0
+ .incbin "baserom.nds", 0x10a7f0, 0x20
+
+ .global UNK_02106810
+UNK_02106810: ; 0x02106810
+ .incbin "baserom.nds", 0x10a810, 0x4
+
+ .global UNK_02106814
+UNK_02106814: ; 0x02106814
+ .incbin "baserom.nds", 0x10a814, 0x4
+
+ .global OSi_IrqCallbackInfoIndex
+OSi_IrqCallbackInfoIndex: ; 0x02106818
+ .incbin "baserom.nds", 0x10A818, 0x10
+ .global OSi_ConsoleTypeCache
+OSi_ConsoleTypeCache: ; 0x02106828
+ .incbin "baserom.nds", 0x10A828, 0x4
diff --git a/arm9/data/rom2_4.s b/arm9/data/rom2_4.s
index c543924a..5fb7a3d6 100644
--- a/arm9/data/rom2_4.s
+++ b/arm9/data/rom2_4.s
@@ -6,4 +6,308 @@
.section .data
/* 0x0210683C */
- .incbin "baserom.nds", 0x10a83C, 0x764
+ .global Unk_0210683C
+Unk_0210683C: ; 0x0210683C
+ .incbin "baserom.nds", 0x10A83C, 0x4
+
+ .global Unk_02106840
+Unk_02106840: ; 0x02106840
+ .incbin "baserom.nds", 0x10A840, 0xC0
+
+ .global Unk_02106900
+Unk_02106900: ; 0x02106900
+ .incbin "baserom.nds", 0x10A900, 0x100
+
+ .global Unk_02106A00
+Unk_02106A00: ; 0x02106A00
+ .incbin "baserom.nds", 0x10AA00, 0x4
+
+ .global Unk_02106A04
+Unk_02106A04: ; 0x02106A04
+ .incbin "baserom.nds", 0x10aa04, 0x18
+
+ .global UNK_02106A1C
+UNK_02106A1C: ; 0x02106A1C
+ .incbin "baserom.nds", 0x10aa1c, 0x4
+
+ .global UNK_02106A20
+UNK_02106A20: ; 0x02106A20
+ .incbin "baserom.nds", 0x10aa20, 0x30
+
+ .global UNK_02106A50
+UNK_02106A50: ; 0x02106A50
+ .incbin "baserom.nds", 0x10aa50, 0x4
+
+ .global UNK_02106A54
+UNK_02106A54: ; 0x02106A54
+ .incbin "baserom.nds", 0x10aa54, 0x4
+
+ .global UNK_02106A58
+UNK_02106A58: ; 0x02106A58
+ .incbin "baserom.nds", 0x10aa58, 0x4c
+
+ .global UNK_02106AA4
+UNK_02106AA4: ; 0x02106AA4
+ .incbin "baserom.nds", 0x10aaa4, 0x4c
+
+ .global UNK_02106AF0
+UNK_02106AF0: ; 0x02106AF0
+ .incbin "baserom.nds", 0x10aaf0, 0x4c
+
+ .global UNK_02106B3C
+UNK_02106B3C: ; 0x02106B3C
+ .incbin "baserom.nds", 0x10ab3c, 0x38
+
+ .global UNK_02106B74
+UNK_02106B74: ; 0x02106B74
+ .incbin "baserom.nds", 0x10ab74, 0x4
+
+ .global UNK_02106B78
+UNK_02106B78: ; 0x02106B78
+ .incbin "baserom.nds", 0x10ab78, 0x4
+
+ .global UNK_02106B7C
+UNK_02106B7C: ; 0x02106B7C
+ .incbin "baserom.nds", 0x10ab7c, 0x8
+
+ .global UNK_02106B84
+UNK_02106B84: ; 0x02106B84
+ .incbin "baserom.nds", 0x10ab84, 0x4
+
+ .global UNK_02106B88
+UNK_02106B88: ; 0x02106B88
+ .incbin "baserom.nds", 0x10ab88, 0x4
+
+ .global UNK_02106B8C
+UNK_02106B8C: ; 0x02106B8C
+ .incbin "baserom.nds", 0x10ab8c, 0x8
+
+ .global UNK_02106B94
+UNK_02106B94: ; 0x02106B94
+ .incbin "baserom.nds", 0x10ab94, 0x8
+
+ .global UNK_02106B9C
+UNK_02106B9C: ; 0x02106B9C
+ .incbin "baserom.nds", 0x10ab9c, 0x10
+
+ .global UNK_02106BAC
+UNK_02106BAC: ; 0x02106BAC
+ .incbin "baserom.nds", 0x10abac, 0x20
+
+ .global UNK_02106BCC
+UNK_02106BCC: ; 0x02106BCC
+ .incbin "baserom.nds", 0x10abcc, 0xc0
+
+ .global UNK_02106C8C
+UNK_02106C8C: ; 0x02106C8C
+ .incbin "baserom.nds", 0x10ac8c, 0xc
+
+ .global UNK_02106C98
+UNK_02106C98: ; 0x02106C98
+ .incbin "baserom.nds", 0x10ac98, 0xc
+
+ .global UNK_02106CA4
+UNK_02106CA4: ; 0x02106CA4
+ .incbin "baserom.nds", 0x10aca4, 0xc
+
+ .global UNK_02106CB0
+UNK_02106CB0: ; 0x02106CB0
+ .incbin "baserom.nds", 0x10acb0, 0x10
+
+ .global UNK_02106CC0
+UNK_02106CC0: ; 0x02106CC0
+ .incbin "baserom.nds", 0x10acc0, 0x58
+
+ .global UNK_02106D18
+UNK_02106D18: ; 0x02106D18
+ .incbin "baserom.nds", 0x10ad18, 0x88
+
+ .global UNK_02106DA0
+UNK_02106DA0: ; 0x02106DA0
+ .incbin "baserom.nds", 0x10ada0, 0x8
+
+ .global UNK_02106DA8
+UNK_02106DA8: ; 0x02106DA8
+ .incbin "baserom.nds", 0x10ada8, 0x8
+
+ .global UNK_02106DB0
+UNK_02106DB0: ; 0x02106DB0
+ .incbin "baserom.nds", 0x10adb0, 0x8
+
+ .global UNK_02106DB8
+UNK_02106DB8: ; 0x02106DB8
+ .incbin "baserom.nds", 0x10adb8, 0x4
+
+ .global UNK_02106DBC
+UNK_02106DBC: ; 0x02106DBC
+ .incbin "baserom.nds", 0x10adbc, 0x4
+
+ .global UNK_02106DC0
+UNK_02106DC0: ; 0x02106DC0
+ .incbin "baserom.nds", 0x10adc0, 0x8
+
+ .global UNK_02106DC8
+UNK_02106DC8: ; 0x02106DC8
+ .incbin "baserom.nds", 0x10adc8, 0x8
+
+ .global UNK_02106DD0
+UNK_02106DD0: ; 0x02106DD0
+ .incbin "baserom.nds", 0x10add0, 0x4
+
+ .global UNK_02106DD4
+UNK_02106DD4: ; 0x02106DD4
+ .incbin "baserom.nds", 0x10add4, 0x4
+
+ .global UNK_02106DD8
+UNK_02106DD8: ; 0x02106DD8
+ .incbin "baserom.nds", 0x10add8, 0x4
+
+ .global UNK_02106DDC
+UNK_02106DDC: ; 0x02106DDC
+ .incbin "baserom.nds", 0x10addc, 0x4
+
+ .global UNK_02106DE0
+UNK_02106DE0: ; 0x02106DE0
+ .incbin "baserom.nds", 0x10ade0, 0x4
+
+ .global UNK_02106DE4
+UNK_02106DE4: ; 0x02106DE4
+ .incbin "baserom.nds", 0x10ade4, 0xc
+
+ .global UNK_02106DF0
+UNK_02106DF0: ; 0x02106DF0
+ .incbin "baserom.nds", 0x10adf0, 0xc
+
+ .global UNK_02106DFC
+UNK_02106DFC: ; 0x02106DFC
+ .incbin "baserom.nds", 0x10adfc, 0xc
+
+ .global UNK_02106E08
+UNK_02106E08: ; 0x02106E08
+ .incbin "baserom.nds", 0x10ae08, 0x8
+
+ .global UNK_02106E10
+UNK_02106E10: ; 0x02106E10
+ .incbin "baserom.nds", 0x10ae10, 0x8
+
+ .global UNK_02106E18
+UNK_02106E18: ; 0x02106E18
+ .incbin "baserom.nds", 0x10ae18, 0xc
+
+ .global UNK_02106E24
+UNK_02106E24: ; 0x02106E24
+ .incbin "baserom.nds", 0x10ae24, 0xc
+
+ .global UNK_02106E30
+UNK_02106E30: ; 0x02106E30
+ .incbin "baserom.nds", 0x10ae30, 0x8
+
+ .global UNK_02106E38
+UNK_02106E38: ; 0x02106E38
+ .incbin "baserom.nds", 0x10ae38, 0x8
+
+ .global UNK_02106E40
+UNK_02106E40: ; 0x02106E40
+ .incbin "baserom.nds", 0x10ae40, 0x4
+
+ .global UNK_02106E44
+UNK_02106E44: ; 0x02106E44
+ .incbin "baserom.nds", 0x10ae44, 0x4
+
+ .global UNK_02106E48
+UNK_02106E48: ; 0x02106E48
+ .incbin "baserom.nds", 0x10ae48, 0x40
+
+ .global UNK_02106E88
+UNK_02106E88: ; 0x02106E88
+ .incbin "baserom.nds", 0x10ae88, 0x30
+
+ .global UNK_02106EB8
+UNK_02106EB8: ; 0x02106EB8
+ .incbin "baserom.nds", 0x10aeb8, 0x28
+
+ .global UNK_02106EE0
+UNK_02106EE0: ; 0x02106EE0
+ .incbin "baserom.nds", 0x10aee0, 0x18
+
+ .global UNK_02106EF8
+UNK_02106EF8: ; 0x02106EF8
+ .incbin "baserom.nds", 0x10aef8, 0x10
+
+ .global UNK_02106F08
+UNK_02106F08: ; 0x02106F08
+ .incbin "baserom.nds", 0x10af08, 0x8
+
+ .global UNK_02106F10
+UNK_02106F10: ; 0x02106F10
+ .incbin "baserom.nds", 0x10af10, 0x8
+
+ .global UNK_02106F18
+UNK_02106F18: ; 0x02106F18
+ .incbin "baserom.nds", 0x10af18, 0x8
+
+ .global UNK_02106F20
+UNK_02106F20: ; 0x02106F20
+ .incbin "baserom.nds", 0x10af20, 0x8
+
+ .global UNK_02106F28
+UNK_02106F28: ; 0x02106F28
+ .incbin "baserom.nds", 0x10af28, 0x4
+
+ .global UNK_02106F2C
+UNK_02106F2C: ; 0x02106F2C
+ .incbin "baserom.nds", 0x10af2c, 0x4
+
+ .global UNK_02106F30
+UNK_02106F30: ; 0x02106F30
+ .incbin "baserom.nds", 0x10af30, 0x4
+
+ .global UNK_02106F34
+UNK_02106F34: ; 0x02106F34
+ .incbin "baserom.nds", 0x10af34, 0x4
+
+ .global UNK_02106F38
+UNK_02106F38: ; 0x02106F38
+ .incbin "baserom.nds", 0x10af38, 0x4
+
+ .global UNK_02106F3C
+UNK_02106F3C: ; 0x02106F3C
+ .incbin "baserom.nds", 0x10af3c, 0x4
+
+ .global UNK_02106F40
+UNK_02106F40: ; 0x02106F40
+ .incbin "baserom.nds", 0x10af40, 0x4
+
+ .global UNK_02106F44
+UNK_02106F44: ; 0x02106F44
+ .incbin "baserom.nds", 0x10af44, 0x4
+
+ .global UNK_02106F48
+UNK_02106F48: ; 0x02106F48
+ .incbin "baserom.nds", 0x10af48, 0x4
+
+ .global UNK_02106F4C
+UNK_02106F4C: ; 0x02106F4C
+ .incbin "baserom.nds", 0x10af4c, 0x4
+
+ .global UNK_02106F50
+UNK_02106F50: ; 0x02106F50
+ .incbin "baserom.nds", 0x10af50, 0x4
+
+ .global UNK_02106F54
+UNK_02106F54: ; 0x02106F54
+ .incbin "baserom.nds", 0x10af54, 0x4
+
+ .global UNK_02106F58
+UNK_02106F58: ; 0x02106F58
+ .incbin "baserom.nds", 0x10af58, 0x4
+
+ .global UNK_02106F5C
+UNK_02106F5C: ; 0x02106F5C
+ .incbin "baserom.nds", 0x10af5c, 0x28
+
+ .global SDK_OVERLAY_DIGEST
+SDK_OVERLAY_DIGEST: ; 0x02106F84
+ .global SDK_OVERLAY_DIGEST_END
+SDK_OVERLAY_DIGEST_END:
+ .incbin "baserom.nds", 0x10af84, 0x1C
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 508f71de..e418ef78 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -28,6 +28,9 @@
.extern DGT_Hash1GetDigest_R
.extern DGT_Hash1Reset
.extern DGT_Hash1SetSource
+.extern DGT_Hash2GetDigest
+.extern DGT_Hash2Reset
+.extern DGT_Hash2SetSource
.extern DGTi_hash2_arm4_small
.extern ErrorHandling
.extern FS_CloseFile
@@ -165,6 +168,8 @@
.extern FUN_02006930
.extern FUN_02006BB0
.extern FUN_02006C08
+.extern FUN_02006C30
+.extern FUN_02006C5C
.extern FUN_02006C98
.extern FUN_02006D98
.extern FUN_02006ED4
@@ -180,6 +185,8 @@
.extern FUN_02007E68
.extern FUN_02007E98
.extern FUN_02007F20
+.extern FUN_02008010
+.extern FUN_02008030
.extern FUN_020080D0
.extern FUN_020081C4
.extern FUN_02008AA4
@@ -352,7 +359,9 @@
.extern FUN_0200E3A0
.extern FUN_0200E3BC
.extern FUN_02011B20
+.extern FUN_02012400
.extern FUN_02012420
+.extern FUN_02012530
.extern FUN_0201259C
.extern FUN_020125D4
.extern FUN_0201265C
@@ -465,6 +474,7 @@
.extern FUN_020191A4
.extern FUN_020191D0
.extern FUN_02019220
+.extern FUN_02019270
.extern FUN_02019548
.extern FUN_02019570
.extern FUN_0201958C
@@ -537,6 +547,7 @@
.extern FUN_0201EB70
.extern FUN_0201EB8C
.extern FUN_0201EBA4
+.extern FUN_0201EC58
.extern FUN_0201EC68
.extern FUN_0201EC88
.extern FUN_0201EC94
@@ -565,6 +576,7 @@
.extern FUN_0202022C
.extern FUN_02020248
.extern FUN_02020310
+.extern FUN_02020334
.extern FUN_02020354
.extern FUN_02020388
.extern FUN_02020398
@@ -584,6 +596,8 @@
.extern FUN_02021A74
.extern FUN_02021CE0
.extern FUN_02021D3C
+.extern FUN_02021D5C
+.extern FUN_02021D9C
.extern FUN_02021E28
.extern FUN_02021EF0
.extern FUN_02021F2C
@@ -1119,7 +1133,7 @@
.extern FUN_02036D94
.extern FUN_02036DD4
.extern FUN_02037024
-.extern FUN_02037350
+.extern LoadOverlay_MODULE_05
.extern FUN_02037394
.extern FUN_0203739C
.extern FUN_020373AC
@@ -2224,6 +2238,7 @@
.extern FUN_020672BC
.extern FUN_02067830
.extern FUN_02068678
+.extern FUN_020687C0
.extern FUN_02068854
.extern FUN_020689E0
.extern FUN_02068AAC
@@ -2506,6 +2521,7 @@
.extern FUN_020AEB70
.extern FUN_020AEC7C
.extern FUN_020AEC98
+.extern FUN_020AEDF4
.extern FUN_020AEE40
.extern FUN_020AEEB8
.extern FUN_020AEF1C
@@ -2542,6 +2558,7 @@
.extern FUN_020B19C4
.extern FUN_020B19DC
.extern FUN_020B1A14
+.extern FUN_020B1A1C
.extern FUN_020B1A24
.extern FUN_020B1EA4
.extern FUN_020B1EC4
@@ -2634,6 +2651,39 @@
.extern FUN_020C1F54
.extern FUN_020C1FA4
.extern FUN_020C1FF0
+.extern FUN_02013EA8
+.extern FUN_02013EC4
+.extern FUN_0200A06C
+.extern FUN_0200BC14
+.extern FUN_02014518
+.extern FUN_0200D7A0
+.extern FUN_0202008C
+.extern FUN_0200B10C
+.extern FUN_0200B430
+.extern FUN_0200B468
+.extern FUN_02029584
+.extern FUN_02029960
+.extern FUN_02085224
+.extern FUN_02085274
+.extern FUN_02085310
+.extern FUN_020345A8
+.extern FUN_020345DC
+.extern FUN_020345F0
+.extern FUN_02079C40
+.extern FUN_02014564
+.extern FUN_02014588
+.extern FUN_02020198
+.extern FUN_02079B60
+.extern FUN_020881D0
+.extern FUN_02088320
+.extern FUN_02088360
+.extern FUN_02088484
+.extern FUN_02088490
+.extern FUN_02088660
+.extern FUN_02088694
+.extern FUN_02013ED8
+.extern FUN_02013EE0
+.extern FUN_0201EC58
.extern FUN_020C20DC
.extern FUN_020C2104
.extern FUN_020C217C
@@ -2650,530 +2700,567 @@
.extern FUN_020C3674
.extern FUN_020C36A8
.extern FUN_020C3910
+.extern FUN_02020C14
.extern FUN_020C3980
.extern FUN_020C39CC
.extern FUN_020C6034
.extern FUN_020C605C
+.extern FUN_02037790
+.extern FUN_0204BF94
+.extern FUN_0204BF9C
+.extern FUN_0204BFB0
+.extern FUN_0204C080
+.extern FUN_0204C0A4
+.extern FUN_020252B8
+.extern FUN_0204BF58
+.extern FUN_0204BFF0
+.extern FUN_0204C02C
+.extern FUN_0204C064
+.extern FUN_0202F0DC
+.extern FUN_02032BD0
+.extern FUN_02032C0C
+.extern FUN_02032C28
+.extern FUN_02034984
+.extern FUN_0204C158
+.extern FUN_0204C174
+.extern MOD06_022457A8
+.extern MOD06_022457CC
+.extern MOD06_022457F8
+.extern MOD06_02245824
+.extern MOD06_0224582C
+.extern MOD20_02253F6C
+.extern MOD20_02254420
+.extern MOD20_02254460
+.extern MOD20_02254488
+.extern MOD20_022542C0
+.extern MOD05_021EC464
+.extern MOD05_021ED9B4
+.extern MOD05_021EC7B4
+.extern MOD20_02253A04
+.extern MOD20_02253FAC
+.extern MOD20_02253FB4
+.extern MOD20_02252BB8
.extern MOD05_021D74E0
-.extern FUN_021D7660
-.extern FUN_021D76AC
-.extern FUN_021D77C4
-.extern FUN_021D77E0
-.extern FUN_021D7800
-.extern FUN_021D78FC
-.extern FUN_021D79B4
-.extern FUN_021D7A7C
-.extern FUN_021D7B14
-.extern FUN_021D7B48
-.extern FUN_021D7B6C
-.extern FUN_021D7B70
-.extern FUN_021D7BBC
-.extern FUN_021D7BC0
-.extern FUN_021D7C30
-.extern FUN_021D7C4C
-.extern FUN_021D7CA4
-.extern FUN_021D7D68
-.extern FUN_021D7DA8
-.extern FUN_021D7DEC
-.extern FUN_021D7E18
-.extern FUN_021D7F20
-.extern FUN_021D7F8C
-.extern FUN_021D8018
-.extern FUN_021D8044
-.extern FUN_021D8058
-.extern FUN_021D8164
-.extern FUN_021D82BC
-.extern FUN_021D8320
-.extern FUN_021D836C
-.extern FUN_021D83A8
-.extern FUN_021D83C0
-.extern FUN_021D83F0
-.extern FUN_021D844C
-.extern FUN_021D8494
-.extern FUN_021D8558
-.extern FUN_021D8590
-.extern FUN_021D85A0
-.extern FUN_021D85B4
-.extern FUN_021D85FC
-.extern FUN_021D8624
-.extern FUN_021D865C
-.extern FUN_021D868C
-.extern FUN_021D872C
-.extern FUN_021D8730
-.extern FUN_021D8758
-.extern FUN_021D87D0
-.extern FUN_021D8818
-.extern FUN_021D8820
-.extern FUN_021D8860
-.extern FUN_021D88E4
-.extern FUN_021D8910
-.extern FUN_021D8944
-.extern FUN_021D89CC
-.extern FUN_021D8A54
-.extern FUN_021D8A7C
-.extern FUN_021D8B64
-.extern FUN_021D8BF0
-.extern FUN_021D8C08
-.extern FUN_021D8C24
-.extern FUN_021D8C58
-.extern FUN_021D8C6C
-.extern FUN_021D8CC8
-.extern FUN_021D8CF0
-.extern FUN_021D8D04
-.extern FUN_021D8F08
-.extern FUN_021D917C
-.extern FUN_021D959C
-.extern FUN_021D967C
-.extern FUN_021D96F4
-.extern FUN_021D9708
-.extern FUN_021D971C
-.extern FUN_021D9820
-.extern FUN_021D99F8
-.extern FUN_021D9C2C
-.extern FUN_021D9F78
-.extern FUN_021DA2F4
-.extern FUN_021DA334
-.extern FUN_021DA388
-.extern FUN_021DA3DC
-.extern FUN_021DA464
-.extern FUN_021DA4EC
-.extern FUN_021DA54C
-.extern FUN_021DA58C
-.extern FUN_021DA5B8
-.extern FUN_021DA5C8
-.extern FUN_021DA5D0
-.extern FUN_021DA5D8
-.extern FUN_021DA7B4
-.extern FUN_021DAAA4
-.extern FUN_021DAB68
-.extern FUN_021DAC70
-.extern FUN_021DAE40
-.extern FUN_021DAED4
-.extern FUN_021DAF28
-.extern FUN_021DAF78
-.extern FUN_021DAF98
-.extern FUN_021DB030
-.extern FUN_021DB7E8
-.extern FUN_021DB858
-.extern FUN_021DC174
-.extern FUN_021DCA84
-.extern FUN_021DD6F0
-.extern FUN_021DD718
-.extern FUN_021DD968
-.extern FUN_021DDB08
-.extern FUN_021DDBBC
-.extern FUN_021DDC1C
-.extern FUN_021DDCE8
-.extern FUN_021DDD7C
-.extern FUN_021DDDCC
-.extern FUN_021DDE7C
-.extern FUN_021DDEE0
-.extern FUN_021DF95C
-.extern FUN_021DF978
-.extern FUN_021DFA40
-.extern FUN_021DFAF8
-.extern FUN_021DFB20
-.extern FUN_021DFD18
-.extern FUN_021DFDBC
-.extern FUN_021DFE64
-.extern FUN_021DFF74
-.extern FUN_021E0200
-.extern FUN_021E0374
-.extern FUN_021E1374
-.extern FUN_021E1858
-.extern FUN_021E1994
-.extern FUN_021E1BF8
-.extern FUN_021E1C4C
-.extern FUN_021E1C54
-.extern FUN_021E1ECC
-.extern FUN_021E1F34
-.extern FUN_021E1F58
-.extern FUN_021E1F60
-.extern FUN_021E242C
-.extern FUN_021E2454
-.extern FUN_021E2464
-.extern FUN_021E2578
-.extern FUN_021E2608
-.extern FUN_021E26CC
-.extern FUN_021E27E8
-.extern FUN_021E288C
-.extern FUN_021E28A0
-.extern FUN_021E2950
-.extern FUN_021E29B4
-.extern FUN_021E29C8
-.extern FUN_021E2A70
-.extern FUN_021E2AD4
-.extern FUN_021E2B80
-.extern FUN_021E2B9C
-.extern FUN_021E2BB8
-.extern FUN_021E2BD0
-.extern FUN_021E2C24
-.extern FUN_021E2C58
-.extern FUN_021E2CBC
-.extern FUN_021E32F0
-.extern FUN_021E331C
-.extern FUN_021E3424
-.extern FUN_021E3444
-.extern FUN_021E495C
-.extern FUN_021E4C54
-.extern FUN_021E4C60
-.extern FUN_021E4DE4
-.extern FUN_021E5614
-.extern FUN_021E57D4
-.extern FUN_021E5970
-.extern FUN_021E5B30
-.extern FUN_021E5FD8
-.extern FUN_021E5FE0
-.extern FUN_021E6410
-.extern FUN_021E643C
-.extern FUN_021E6990
-.extern FUN_021E69BC
-.extern FUN_021E6BF4
-.extern FUN_021E7030
-.extern FUN_021E70F0
-.extern FUN_021E7138
-.extern FUN_021E7184
-.extern FUN_021E71E8
-.extern FUN_021E7750
-.extern FUN_021E799C
-.extern FUN_021E7AC0
-.extern FUN_021E7EA0
-.extern FUN_021E7EB0
-.extern FUN_021E7EC4
-.extern FUN_021E7EC8
-.extern FUN_021E7ED0
-.extern FUN_021E7ED8
-.extern FUN_021E7FBC
-.extern FUN_021E8128
-.extern FUN_021E8130
-.extern FUN_021E8140
-.extern FUN_021E8144
-.extern FUN_021E8148
-.extern FUN_021E8158
-.extern FUN_021E81BC
-.extern FUN_021E84F4
-.extern FUN_021E856C
-.extern FUN_021E8588
-.extern FUN_021E85E4
-.extern FUN_021E85FC
-.extern FUN_021EA530
-.extern FUN_021EACF8
-.extern FUN_021EADD8
-.extern FUN_021EADF8
-.extern FUN_021EAE18
-.extern FUN_021EAE38
-.extern FUN_021EAE90
-.extern FUN_021EB044
-.extern FUN_021EB0FC
-.extern FUN_021EC57C
-.extern FUN_021EC71C
-.extern FUN_021EC854
-.extern FUN_021EC864
-.extern FUN_021ECD64
-.extern FUN_021ECF14
-.extern FUN_021ED0CC
-.extern FUN_021ED49C
-.extern FUN_021ED4E0
-.extern FUN_021ED52C
-.extern FUN_021ED5C4
-.extern FUN_021ED5EC
-.extern FUN_021ED644
-.extern FUN_021ED940
-.extern FUN_021EDA48
-.extern FUN_021EDBC8
-.extern FUN_021EF5E0
-.extern FUN_021EF604
-.extern FUN_021EF620
-.extern FUN_021EF654
-.extern FUN_021EF824
-.extern FUN_021EF844
-.extern FUN_021EF8C8
-.extern FUN_021EF8DC
-.extern FUN_021EFA9C
-.extern FUN_021F02C4
-.extern FUN_021F1D8C
-.extern FUN_021F1DC8
-.extern FUN_021F1DFC
-.extern FUN_021F1EC0
-.extern FUN_021F1F78
-.extern FUN_021F2094
-.extern FUN_021F20D8
-.extern FUN_021F20F8
-.extern FUN_021F2AF4
-.extern FUN_021F2E0C
-.extern FUN_021F2E28
-.extern FUN_021F2F48
-.extern FUN_021F2F6C
-.extern FUN_021F3A18
-.extern FUN_021F3AB4
-.extern FUN_021F3B4C
-.extern FUN_021F3B7C
-.extern FUN_021F3DA4
-.extern FUN_021F44D8
-.extern FUN_021F4520
-.extern FUN_021F4568
-.extern FUN_021F4594
-.extern FUN_021F45E8
-.extern FUN_021F4608
-.extern FUN_021F4BD0
-.extern FUN_021F4C88
-.extern FUN_021F4D80
-.extern FUN_021F4DC8
-.extern FUN_021F4E7C
-.extern FUN_021F57EC
-.extern FUN_021F5C44
-.extern FUN_021F61DC
-.extern FUN_021F61E8
-.extern FUN_02211E60
-.extern FUN_02213B08
-.extern FUN_02213D80
-.extern FUN_02213DBC
-.extern FUN_02213E24
-.extern FUN_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_0222ED34
-.extern FUN_0222EDBC
-.extern FUN_0222F440
-.extern FUN_0222F480
-.extern FUN_0222F7E0
-.extern FUN_0222F990
-.extern FUN_022300D4
-.extern FUN_022300DC
-.extern FUN_022300E4
-.extern FUN_022300E8
-.extern FUN_022300F4
-.extern FUN_02230100
-.extern FUN_0223010C
-.extern FUN_02230118
-.extern FUN_02230124
-.extern FUN_02230F3C
-.extern FUN_02230F70
-.extern FUN_02230F80
-.extern FUN_02231344
-.extern FUN_02231350
-.extern FUN_0223135C
-.extern FUN_02231368
-.extern FUN_02231374
-.extern FUN_02239944
-.extern FUN_02239AAC
-.extern FUN_0223CACC
-.extern FUN_0223CB08
-.extern FUN_0223CCDC
-.extern FUN_0223CD7C
-.extern FUN_0223D3D0
-.extern FUN_0223D638
-.extern FUN_0223D648
-.extern FUN_0223DFB4
-.extern FUN_0223E060
-.extern FUN_0223E118
-.extern FUN_0223E154
-.extern FUN_0223E1A4
-.extern FUN_0223E1E0
-.extern FUN_0223E2AC
-.extern FUN_0223E4A8
-.extern FUN_0223E4D4
-.extern FUN_0223E554
-.extern FUN_0223E6B8
-.extern FUN_0223E734
-.extern FUN_0223E7FC
-.extern FUN_0223EB8C
-.extern FUN_0223EF7C
-.extern FUN_0223F4D8
-.extern FUN_0223F4F4
-.extern FUN_0223F8D8
-.extern FUN_0223FCE8
-.extern FUN_02240790
-.extern FUN_022407CC
-.extern FUN_022407DC
-.extern FUN_022407F8
-.extern FUN_02240834
-.extern FUN_02240844
-.extern FUN_0224089C
-.extern FUN_022408FC
-.extern FUN_022411F4
-.extern FUN_02241230
-.extern FUN_02241914
-.extern FUN_02242A38
-.extern FUN_02242BE0
-.extern FUN_0224312C
-.extern FUN_022432E4
-.extern FUN_0224339C
-.extern FUN_022433A8
-.extern FUN_022433B0
-.extern FUN_022433B8
-.extern FUN_022433F8
-.extern FUN_02243408
-.extern FUN_02243428
-.extern FUN_02243448
-.extern FUN_0224345C
-.extern FUN_022434AC
-.extern FUN_022434BC
-.extern FUN_022434D0
-.extern FUN_02243694
-.extern FUN_022436C8
-.extern FUN_022436E8
-.extern FUN_02243780
-.extern FUN_02243838
-.extern FUN_022438DC
-.extern FUN_022438E0
-.extern FUN_022438FC
-.extern FUN_02243920
-.extern FUN_022439F8
-.extern FUN_02243AD8
-.extern FUN_02243BA8
-.extern FUN_02243C5C
-.extern FUN_02243D3C
-.extern FUN_02243DA0
-.extern FUN_02243DB8
-.extern FUN_02243DC0
-.extern FUN_02243DC4
-.extern FUN_02243DD8
-.extern FUN_02243DE0
-.extern FUN_02243E34
-.extern FUN_02243E74
-.extern FUN_02243F18
-.extern FUN_02243F50
-.extern FUN_02243F9C
-.extern FUN_02244210
-.extern FUN_02244558
-.extern FUN_02244660
-.extern FUN_022446BC
-.extern FUN_022446E0
-.extern FUN_022446FC
-.extern FUN_02244758
-.extern FUN_02244770
-.extern FUN_02244824
-.extern FUN_0224484C
-.extern FUN_02244D1C
-.extern FUN_02244D20
-.extern FUN_02244D3C
-.extern FUN_02244D40
-.extern FUN_02244D58
-.extern FUN_02244D98
-.extern FUN_02244DA0
-.extern FUN_02244DB0
-.extern FUN_02244DBC
-.extern FUN_02244DC4
-.extern FUN_02244EF8
-.extern FUN_02244F18
-.extern FUN_02244F24
-.extern FUN_02244F2C
-.extern FUN_02245088
-.extern FUN_02245114
-.extern FUN_02245190
-.extern FUN_02245198
-.extern FUN_022451F0
-.extern FUN_0224525C
-.extern FUN_022452A4
-.extern FUN_02245324
-.extern FUN_02245340
-.extern FUN_02245358
-.extern FUN_0224566C
-.extern FUN_022456E8
-.extern FUN_02245844
-.extern FUN_02245910
-.extern FUN_02245F1C
-.extern FUN_02245F4C
-.extern FUN_02245FA0
-.extern FUN_022461A4
-.extern FUN_022461B8
-.extern FUN_0224666C
-.extern FUN_022466A0
-.extern FUN_022466AC
-.extern FUN_02246F1C
-.extern FUN_02247294
-.extern FUN_022472AC
-.extern FUN_02247544
-.extern FUN_02247614
-.extern FUN_02247728
-.extern FUN_02247808
-.extern FUN_02247970
-.extern FUN_02247A34
-.extern FUN_022483BC
-.extern FUN_022483E0
-.extern FUN_022483EC
-.extern FUN_02248724
-.extern FUN_0224884C
-.extern FUN_022488CC
-.extern FUN_022488EC
-.extern FUN_022488F4
-.extern FUN_022488FC
-.extern FUN_0224891C
-.extern FUN_02248B54
-.extern FUN_02248B58
-.extern FUN_02248B5C
-.extern FUN_02248B60
-.extern FUN_02248B6C
-.extern FUN_02248CC0
-.extern FUN_02248CD0
-.extern FUN_02248DF8
-.extern FUN_02248F70
-.extern FUN_02248FE0
-.extern FUN_02249038
-.extern FUN_022490A0
-.extern FUN_022491FC
-.extern FUN_022494C8
-.extern FUN_02249508
-.extern FUN_02249668
-.extern FUN_022497E8
-.extern FUN_02249E6C
-.extern FUN_02249E78
-.extern FUN_02249E84
-.extern FUN_02249E90
-.extern FUN_0224A310
-.extern FUN_0224A528
-.extern FUN_0224A7C8
-.extern FUN_0224ABAC
-.extern FUN_0224B124
-.extern FUN_0224B2C4
-.extern FUN_0224B568
-.extern FUN_0224B818
-.extern FUN_0224B86C
-.extern FUN_0224B9E0
-.extern FUN_0224BBEC
-.extern FUN_0224BD90
-.extern FUN_0224C038
-.extern FUN_0224C27C
-.extern FUN_0224C520
-.extern FUN_0224C678
-.extern FUN_0224C6E8
-.extern FUN_0224C6F4
-.extern FUN_0224C700
-.extern FUN_0224C8C8
-.extern FUN_0224CA2C
-.extern FUN_0224CA54
-.extern FUN_0224CA58
-.extern FUN_0224CA88
-.extern FUN_0224CA94
-.extern FUN_0224CAA0
-.extern FUN_0224CAB4
-.extern FUN_0224CB30
-.extern FUN_0224CBB0
-.extern FUN_0224CC24
-.extern FUN_0224CECC
-.extern FUN_0224D14C
-.extern FUN_0224D2E0
-.extern FUN_0224D3E8
-.extern FUN_0224D70C
-.extern FUN_0224D76C
-.extern FUN_0224D79C
-.extern FUN_0224DCB8
-.extern FUN_0224DD94
-.extern FUN_0224DDB8
-.extern FUN_0224E554
-.extern FUN_0224E764
-.extern FUN_0224E7C4
-.extern FUN_0224F12C
-.extern FUN_02252534
-.extern FUN_02252538
-.extern FUN_022567E0
+.extern MOD04_021D7660
+.extern MOD04_021D76AC
+.extern MOD04_021D77C4
+.extern MOD04_021D77E0
+.extern MOD04_021D7800
+.extern MOD04_021D78FC
+.extern MOD04_021D79B4
+.extern MOD04_021D7A7C
+.extern MOD04_021D7B14
+.extern MOD04_021D7B48
+.extern MOD04_021D7B6C
+.extern MOD04_021D7B70
+.extern MOD04_021D7BBC
+.extern MOD04_021D7BC0
+.extern MOD04_021D7C30
+.extern MOD04_021D7C4C
+.extern MOD05_021D7CA4
+.extern MOD04_021D7D68
+.extern MOD04_021D7DA8
+.extern MOD04_021D7DEC
+.extern MOD04_021D7E18
+.extern MOD04_021D7F20
+.extern MOD04_021D7F8C
+.extern MOD04_021D8018
+.extern MOD04_021D8044
+.extern MOD04_021D8058
+.extern MOD05_021D8164
+.extern MOD04_021D82BC
+.extern MOD05_021D8320
+.extern MOD04_021D836C
+.extern MOD04_021D83A8
+.extern MOD04_021D83C0
+.extern MOD04_021D83F0
+.extern MOD54_021D844C
+.extern MOD04_021D8494
+.extern MOD04_021D8558
+.extern MOD04_021D8590
+.extern MOD04_021D85A0
+.extern MOD04_021D85B4
+.extern MOD05_021D85FC
+.extern MOD04_021D8624
+.extern MOD04_021D865C
+.extern MOD04_021D868C
+.extern MOD04_021D872C
+.extern MOD04_021D8730
+.extern MOD05_021D8758
+.extern MOD04_021D87D0
+.extern MOD04_021D8818
+.extern MOD05_021D8820
+.extern MOD04_021D8860
+.extern MOD54_021D88E4
+.extern MOD04_021D8910
+.extern MOD04_021D8944
+.extern MOD54_021D89CC
+.extern MOD04_021D8A54
+.extern MOD04_021D8A7C
+.extern MOD53_021D8B64
+.extern MOD04_021D8BF0
+.extern MOD04_021D8C08
+.extern MOD54_021D8C24
+.extern MOD04_021D8C58
+.extern MOD04_021D8C6C
+.extern MOD04_021D8CC8
+.extern MOD04_021D8CF0
+.extern MOD04_021D8D04
+.extern MOD04_021D8F08
+.extern MOD53_021D917C
+.extern MOD05_021D959C
+.extern MOD05_021D967C
+.extern MOD05_021D96F4
+.extern MOD05_021D9708
+.extern MOD05_021D971C
+.extern MOD05_021D9820
+.extern MOD05_021D99F8
+.extern MOD04_021D9C2C
+.extern MOD04_021D9F78
+.extern MOD04_021DA2F4
+.extern MOD04_021DA334
+.extern MOD04_021DA388
+.extern MOD04_021DA3DC
+.extern MOD05_021DA464
+.extern MOD05_021DA4EC
+.extern MOD05_021DA54C
+.extern MOD05_021DA58C
+.extern MOD05_021DA5B8
+.extern MOD05_021DA5C8
+.extern MOD05_021DA5D0
+.extern MOD05_021DA5D8
+.extern MOD05_021DA7B4
+.extern MOD05_021DAAA4
+.extern MOD04_021DAB68
+.extern MOD05_021DAC70
+.extern MOD05_021DAE40
+.extern MOD05_021DAED4
+.extern MOD05_021DAF28
+.extern MOD05_021DAF78
+.extern MOD05_021DAF98
+.extern MOD05_021DB030
+.extern MOD17_021DB7E8
+.extern MOD17_021DB858
+.extern MOD05_021DC174
+.extern MOD04_021DCA84
+.extern MOD04_021DD6F0
+.extern MOD04_021DD718
+.extern MOD04_021DD968
+.extern MOD04_021DDB08
+.extern MOD04_021DDBBC
+.extern MOD04_021DDC1C
+.extern MOD04_021DDCE8
+.extern MOD04_021DDD7C
+.extern MOD04_021DDDCC
+.extern MOD04_021DDE7C
+.extern MOD04_021DDEE0
+.extern MOD04_021DF95C
+.extern MOD04_021DF978
+.extern MOD04_021DFA40
+.extern MOD04_021DFAF8
+.extern MOD04_021DFB20
+.extern MOD04_021DFD18
+.extern MOD04_021DFDBC
+.extern MOD04_021DFE64
+.extern MOD04_021DFF74
+.extern MOD04_021E0200
+.extern MOD04_021E0374
+.extern MOD05_021E1374
+.extern MOD05_021E1858
+.extern MOD05_021E1994
+.extern MOD05_021E1BF8
+.extern MOD05_021E1C4C
+.extern MOD05_021E1C54
+.extern MOD05_021E1ECC
+.extern MOD05_021E1F34
+.extern MOD05_021E1F58
+.extern MOD05_021E1F60
+.extern MOD04_021E242C
+.extern MOD04_021E2454
+.extern MOD05_021E2464
+.extern MOD04_021E2578
+.extern MOD05_021E2608
+.extern MOD05_021E26CC
+.extern MOD05_021E27E8
+.extern MOD05_021E288C
+.extern MOD05_021E28A0
+.extern MOD05_021E2950
+.extern MOD05_021E29B4
+.extern MOD05_021E29C8
+.extern MOD05_021E2A70
+.extern MOD05_021E2AD4
+.extern MOD05_021E2B80
+.extern MOD05_021E2B9C
+.extern MOD05_021E2BB8
+.extern MOD05_021E2BD0
+.extern MOD05_021E2C24
+.extern MOD05_021E2C58
+.extern MOD05_021E2CBC
+.extern MOD05_021E32F0
+.extern MOD05_021E331C
+.extern MOD05_021E3424
+.extern MOD05_021E3444
+.extern MOD05_021E495C
+.extern MOD05_021E4C54
+.extern MOD05_021E4C60
+.extern MOD05_021E4DE4
+.extern MOD05_021E5614
+.extern MOD05_021E57D4
+.extern MOD05_021E5970
+.extern MOD05_021E5B30
+.extern MOD05_021E5FD8
+.extern MOD05_021E5FE0
+.extern MOD05_021E6410
+.extern MOD05_021E643C
+.extern MOD05_021E6990
+.extern MOD05_021E69BC
+.extern MOD05_021E6BF4
+.extern MOD05_021E7030
+.extern MOD05_021E70F0
+.extern MOD05_021E7138
+.extern MOD05_021E7184
+.extern MOD05_021E71E8
+.extern MOD05_021E7750
+.extern MOD05_021E799C
+.extern MOD05_021E7AC0
+.extern MOD05_021E7EA0
+.extern MOD05_021E7EB0
+.extern MOD05_021E7EC4
+.extern MOD05_021E7EC8
+.extern MOD05_021E7ED0
+.extern MOD05_021E7ED8
+.extern MOD05_021E7FBC
+.extern MOD05_021E8128
+.extern MOD05_021E8130
+.extern MOD05_021E8140
+.extern MOD05_021E8144
+.extern MOD05_021E8148
+.extern MOD05_021E8158
+.extern MOD05_021E81BC
+.extern MOD05_021E84F4
+.extern MOD05_021E856C
+.extern MOD05_021E8588
+.extern MOD05_021E85E4
+.extern MOD05_021E85FC
+.extern MOD04_021EA530
+.extern MOD04_021EACF8
+.extern MOD04_021EADD8
+.extern MOD04_021EADF8
+.extern MOD04_021EAE18
+.extern MOD04_021EAE38
+.extern MOD04_021EAE90
+.extern MOD04_021EB044
+.extern MOD04_021EB0FC
+.extern MOD05_021EC57C
+.extern MOD05_021EC71C
+.extern MOD05_021EC854
+.extern MOD05_021EC864
+.extern MOD05_021ECD64
+.extern MOD05_021ECF14
+.extern MOD05_021ED0CC
+.extern MOD05_021ED49C
+.extern MOD05_021ED4E0
+.extern MOD05_021ED52C
+.extern MOD05_021ED5C4
+.extern MOD05_021ED5EC
+.extern MOD05_021ED644
+.extern MOD05_021ED940
+.extern MOD05_021EDA48
+.extern MOD05_021EDBC8
+.extern MOD05_021EF5E0
+.extern MOD05_021EF604
+.extern MOD05_021EF620
+.extern MOD05_021EF654
+.extern MOD05_021EF824
+.extern MOD05_021EF844
+.extern MOD05_021EF8C8
+.extern MOD05_021EF8DC
+.extern MOD05_021EFA9C
+.extern MOD05_021F02C4
+.extern MOD05_021F1D8C
+.extern MOD05_021F1DC8
+.extern MOD05_021F1DFC
+.extern MOD05_021F1EC0
+.extern MOD05_021F1F78
+.extern MOD05_021F2094
+.extern MOD05_021F20D8
+.extern MOD05_021F20F8
+.extern MOD05_021F2AF4
+.extern MOD05_021F2E0C
+.extern MOD05_021F2E28
+.extern MOD05_021F2F48
+.extern MOD05_021F2F6C
+.extern MOD05_021F3A18
+.extern MOD05_021F3AB4
+.extern MOD05_021F3B4C
+.extern MOD05_021F3B7C
+.extern MOD05_021F3DA4
+.extern MOD05_021F44D8
+.extern MOD05_021F4520
+.extern MOD05_021F4568
+.extern MOD05_021F4594
+.extern MOD05_021F45E8
+.extern MOD05_021F4608
+.extern MOD05_021F4BD0
+.extern MOD05_021F4C88
+.extern MOD05_021F4D80
+.extern MOD05_021F4DC8
+.extern MOD05_021F4E7C
+.extern MOD05_021F57EC
+.extern MOD05_021F5C44
+.extern MOD05_021F61DC
+.extern MOD05_021F61E8
+.extern MOD07_02211E60
+.extern MOD79_02213B08
+.extern MOD79_02213D80
+.extern MOD79_02213DBC
+.extern MOD79_02213E24
+.extern MOD11_0222D5C0
+.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 MOD62_022300E4
+.extern MOD11_022300E8
+.extern MOD11_022300F4
+.extern MOD11_02230100
+.extern MOD11_0223010C
+.extern MOD11_02230118
+.extern MOD11_02230124
+.extern MOD62_02230F3C
+.extern MOD62_02230F70
+.extern MOD62_02230F80
+.extern MOD11_02231344
+.extern MOD11_02231350
+.extern MOD11_0223135C
+.extern MOD11_02231368
+.extern MOD11_02231374
+.extern MOD06_02239944
+.extern MOD06_02239AAC
+.extern MOD18_0223CACC
+.extern MOD18_0223CB08
+.extern MOD06_0223CCDC
+.extern MOD06_0223CD7C
+.extern MOD06_0223D3D0
+.extern MOD18_0223D638
+.extern MOD18_0223D648
+.extern MOD06_0223DFB4
+.extern MOD18_0223E060
+.extern MOD18_0223E118
+.extern MOD18_0223E154
+.extern MOD18_0223E1A4
+.extern MOD18_0223E1E0
+.extern MOD18_0223E2AC
+.extern MOD18_0223E4A8
+.extern MOD18_0223E4D4
+.extern MOD18_0223E554
+.extern MOD18_0223E6B8
+.extern MOD12_0223E734
+.extern MOD18_0223E7FC
+.extern MOD18_0223EB8C
+.extern MOD18_0223EF7C
+.extern MOD18_0223F4D8
+.extern MOD18_0223F4F4
+.extern MOD18_0223F8D8
+.extern MOD18_0223FCE8
+.extern MOD06_02240790
+.extern MOD06_022407CC
+.extern MOD06_022407DC
+.extern MOD06_022407F8
+.extern MOD06_02240834
+.extern MOD06_02240844
+.extern MOD18_0224089C
+.extern MOD18_022408FC
+.extern MOD06_022411F4
+.extern MOD06_02241230
+.extern MOD06_02241914
+.extern MOD06_02242A38
+.extern MOD06_02242BE0
+.extern MOD06_0224312C
+.extern MOD06_022432E4
+.extern MOD06_0224339C
+.extern MOD06_022433A8
+.extern MOD06_022433B0
+.extern MOD06_022433B8
+.extern MOD06_022433F8
+.extern MOD06_02243408
+.extern MOD06_02243428
+.extern MOD06_02243448
+.extern MOD06_0224345C
+.extern MOD06_022434AC
+.extern MOD06_022434BC
+.extern MOD06_022434D0
+.extern MOD06_02243694
+.extern MOD06_022436C8
+.extern MOD06_022436E8
+.extern MOD06_02243780
+.extern MOD06_02243838
+.extern MOD06_022438DC
+.extern MOD06_022438E0
+.extern MOD06_022438FC
+.extern MOD06_02243920
+.extern MOD06_022439F8
+.extern MOD06_02243AD8
+.extern MOD06_02243BA8
+.extern MOD06_02243C5C
+.extern MOD06_02243D3C
+.extern MOD06_02243DA0
+.extern MOD06_02243DB8
+.extern MOD06_02243DC0
+.extern MOD06_02243DC4
+.extern MOD06_02243DD8
+.extern MOD06_02243DE0
+.extern MOD06_02243E34
+.extern MOD06_02243E74
+.extern MOD06_02243F18
+.extern MOD06_02243F50
+.extern MOD06_02243F9C
+.extern MOD06_02244210
+.extern MOD06_02244558
+.extern MOD06_02244660
+.extern MOD06_022446BC
+.extern MOD06_022446E0
+.extern MOD06_022446FC
+.extern MOD06_02244758
+.extern MOD06_02244770
+.extern MOD18_02244824
+.extern MOD18_0224484C
+.extern MOD18_02244D1C
+.extern MOD18_02244D20
+.extern MOD18_02244D3C
+.extern MOD18_02244D40
+.extern MOD18_02244D58
+.extern MOD18_02244D98
+.extern MOD18_02244DA0
+.extern MOD06_02244DB0
+.extern MOD06_02244DBC
+.extern MOD06_02244DC4
+.extern MOD06_02244EF8
+.extern MOD06_02244F18
+.extern MOD06_02244F24
+.extern MOD06_02244F2C
+.extern MOD06_02245088
+.extern MOD06_02245114
+.extern MOD06_02245190
+.extern MOD06_02245198
+.extern MOD06_022451F0
+.extern MOD06_0224525C
+.extern MOD18_022452A4
+.extern MOD18_02245324
+.extern MOD06_02245340
+.extern MOD18_02245358
+.extern MOD18_0224566C
+.extern MOD06_022456E8
+.extern MOD06_02245844
+.extern MOD06_02245910
+.extern MOD18_02245F1C
+.extern MOD18_02245F4C
+.extern MOD06_02245FA0
+.extern MOD18_022461A4
+.extern MOD18_022461B8
+.extern MOD06_0224666C
+.extern MOD06_022466A0
+.extern MOD06_022466AC
+.extern MOD18_02246F1C
+.extern MOD18_02247294
+.extern MOD18_022472AC
+.extern MOD06_02247544
+.extern MOD18_02247614
+.extern MOD18_02247728
+.extern MOD06_02247808
+.extern MOD18_02247970
+.extern MOD18_02247A34
+.extern MOD06_022483BC
+.extern MOD06_022483E0
+.extern MOD06_022483EC
+.extern MOD06_02248724
+.extern MOD06_0224884C
+.extern MOD06_022488CC
+.extern MOD06_022488EC
+.extern MOD06_022488F4
+.extern MOD06_022488FC
+.extern MOD06_0224891C
+.extern MOD06_02248B54
+.extern MOD06_02248B58
+.extern MOD06_02248B5C
+.extern MOD06_02248B60
+.extern MOD06_02248B6C
+.extern MOD06_02248CC0
+.extern MOD06_02248CD0
+.extern MOD18_02248DF8
+.extern MOD06_02248F70
+.extern MOD06_02248FE0
+.extern MOD06_02249038
+.extern MOD06_022490A0
+.extern MOD06_022491FC
+.extern MOD18_022494C8
+.extern MOD06_02249508
+.extern MOD06_02249668
+.extern MOD06_022497E8
+.extern MOD06_02249E6C
+.extern MOD06_02249E78
+.extern MOD06_02249E84
+.extern MOD06_02249E90
+.extern MOD06_0224A310
+.extern MOD06_0224A528
+.extern MOD06_0224A7C8
+.extern MOD06_0224ABAC
+.extern MOD06_0224B124
+.extern MOD06_0224B2C4
+.extern MOD06_0224B568
+.extern MOD06_0224B818
+.extern MOD06_0224B86C
+.extern MOD06_0224B9E0
+.extern MOD06_0224BBEC
+.extern MOD06_0224BD90
+.extern MOD06_0224C038
+.extern MOD06_0224C27C
+.extern MOD06_0224C520
+.extern MOD06_0224C678
+.extern MOD06_0224C6E8
+.extern MOD06_0224C6F4
+.extern MOD06_0224C700
+.extern MOD06_0224C8C8
+.extern MOD18_0224CA2C
+.extern MOD18_0224CA54
+.extern MOD06_0224CA58
+.extern MOD06_0224CA88
+.extern MOD11_0224CA94
+.extern MOD18_0224CAA0
+.extern MOD18_0224CAB4
+.extern MOD06_0224CB30
+.extern MOD06_0224CBB0
+.extern MOD06_0224CC24
+.extern MOD06_0224CECC
+.extern MOD06_0224D14C
+.extern MOD06_0224D2E0
+.extern MOD06_0224D3E8
+.extern MOD06_0224D70C
+.extern MOD06_0224D76C
+.extern MOD06_0224D79C
+.extern MOD18_0224DCB8
+.extern MOD18_0224DD94
+.extern MOD18_0224DDB8
+.extern MOD06_0224E554
+.extern MOD06_0224E764
+.extern MOD06_0224E7C4
+.extern MOD06_0224F12C
+.extern MOD20_02252534
+.extern MOD20_02252538
+.extern MOD11_022567E0
.extern FX_Atan2
.extern FX_AtanTable_
.extern FX_Div
@@ -3203,6 +3290,19 @@
.extern G2x_SetBGyAffine_
.extern G2x_SetBlendAlpha_
.extern G2x_SetBlendBrightness_
+.extern G3B_Begin
+.extern G3B_Color
+.extern G3B_End
+.extern G3B_LightColor
+.extern G3B_LightVector
+.extern G3B_LoadMtx44
+.extern G3B_MaterialColorDiffAmb
+.extern G3B_MaterialColorSpecEmi
+.extern G3B_Normal
+.extern G3B_PolygonAttr
+.extern G3B_PopMtx
+.extern G3B_PushMtx
+.extern G3B_Vtx
.extern G3X_GetBoxTestResult
.extern G3X_GetClipMtx
.extern G3X_GetVectorMtx
@@ -3211,6 +3311,8 @@
.extern G3X_ResetMtxStack
.extern G3X_SetClearColor
.extern G3X_SetFog
+.extern G3_BeginMakeDL
+.extern G3_EndMakeDL
.extern G3_LoadMtx43
.extern G3_MultMtx33
.extern G3_MultMtx43
@@ -3322,14 +3424,11 @@
.extern MATH_MD5GetHash
.extern MATH_MD5Init
.extern MATH_MD5Update
-.extern MATH_SHA1GetHash
-.extern MATH_SHA1Init
-.extern MATH_SHA1Update
.extern MATHi_CRC16InitTable
.extern MATHi_CRC16InitTableRev
.extern MATHi_CRC32InitTableRev
.extern MATHi_CRC8InitTable
-.extern MATHi_CalcHMAC
+.extern DGTi_Hash2CalcHmac
.extern MIC_DoSamplingAsync
.extern MIC_GetLastSamplingAddress
.extern MIC_Init
@@ -3349,6 +3448,7 @@
.extern MI_HBlankDmaCopy16
.extern MI_HBlankDmaCopy32
.extern MI_Init
+.extern MI_SendGXCommand
.extern MI_SendGXCommandAsync
.extern MI_SendGXCommandAsyncFast
.extern MI_SetWramBank
@@ -3385,12 +3485,16 @@
.extern MTX_MultVec43
.extern MTX_Rot22_
.extern MTX_RotX33_
+.extern MTX_RotX44_
.extern MTX_RotY33_
+.extern MTX_RotY44_
.extern MTX_RotZ33_
+.extern MTX_RotZ44_
.extern MTX_Scale43_
.extern MTX_ScaleApply22
.extern MTX_ScaleApply33
.extern MTX_ScaleApply43
+.extern MTX_TransApply44
.extern NitroMain
.extern OS_AllocFromArenaHi
.extern OS_AllocFromArenaLo
@@ -3685,6 +3789,7 @@
.extern VEC_Add
.extern VEC_CrossProduct
.extern VEC_DotProduct
+.extern VEC_Fx16Add
.extern VEC_Fx16CrossProduct
.extern VEC_Fx16DotProduct
.extern VEC_Fx16Normalize
@@ -3819,9 +3924,9 @@
.extern wcslen
.extern FUN_0200CA98
.extern FUN_020C5D8C
-.extern FUN_021D7A20
-.extern FUN_021D7A28
-.extern FUN_021E8648
+.extern MOD05_021D7A20
+.extern MOD05_021D7A28
+.extern MOD05_021E8648
.extern GX_GetBankForBGExtPltt
.extern GX_GetBankForBGExtPltt_2
.extern GX_GetBankForSubOBJ
@@ -4261,40 +4366,40 @@
.extern FUN_020BBC34
.extern FUN_020BC094
.extern FUN_020BC4C8
-.extern FUN_0223BA04
-.extern FUN_0223BE70
-.extern FUN_0223C08C
-.extern FUN_0223CDB8
-.extern FUN_0223D8F4
-.extern FUN_0223DC98
-.extern FUN_0223DCB4
-.extern FUN_0223DCD0
-.extern FUN_0223E2C4
-.extern FUN_0223E2DC
-.extern FUN_02242404
-.extern FUN_022426AC
-.extern FUN_02249B7C
-.extern FUN_0224A130
-.extern FUN_0224A6B8
-.extern FUN_0224A6FC
-.extern FUN_0224A8D4
-.extern FUN_0224AA40
-.extern FUN_0224ADF8
-.extern FUN_0224AEE8
-.extern FUN_0224AF68
-.extern FUN_0224ED94
-.extern FUN_0224EDA8
-.extern FUN_0224F0BC
-.extern FUN_0224F0D0
-.extern FUN_02252440
-.extern FUN_02252448
-.extern FUN_022524BC
-.extern FUN_022524D0
-.extern FUN_022524DC
-.extern FUN_022524F4
-.extern FUN_02252504
-.extern FUN_02254A68
-.extern FUN_02254AB8
+.extern MOD06_0223BA04
+.extern MOD06_0223BE70
+.extern MOD06_0223C08C
+.extern MOD06_0223CDB8
+.extern MOD18_0223D8F4
+.extern MOD18_0223DC98
+.extern MOD18_0223DCB4
+.extern MOD18_0223DCD0
+.extern MOD18_0223E2C4
+.extern MOD18_0223E2DC
+.extern MOD06_02242404
+.extern MOD06_022426AC
+.extern MOD06_02249B7C
+.extern MOD06_0224A130
+.extern MOD06_0224A6B8
+.extern MOD06_0224A6FC
+.extern MOD06_0224A8D4
+.extern MOD06_0224AA40
+.extern MOD06_0224ADF8
+.extern MOD06_0224AEE8
+.extern MOD06_0224AF68
+.extern MOD06_0224ED94
+.extern MOD06_0224EDA8
+.extern MOD06_0224F0BC
+.extern MOD06_0224F0D0
+.extern MOD19_02252440
+.extern MOD20_02252448
+.extern MOD20_022524BC
+.extern MOD20_022524D0
+.extern MOD20_022524DC
+.extern MOD19_022524F4
+.extern MOD19_02252504
+.extern MOD51_02254A68
+.extern MOD51_02254AB8
.extern FX_Atan
.extern G3X_SetEdgeColorTable
.extern G3X_SetFogTable
@@ -4336,7 +4441,7 @@
.extern FUN_02055648
.extern FUN_02058544
.extern FUN_02061208
-.extern FUN_0223BD14
+.extern MOD06_0223BD14
.extern FUN_02001328
.extern FUN_020021EC
.extern FUN_020090FC
@@ -4516,83 +4621,83 @@
.extern FUN_02089368
.extern FUN_02089394
.extern FUN_020BC02C
-.extern FUN_021D80E4
-.extern FUN_021D9320
-.extern FUN_021D94B4
-.extern FUN_021D9510
-.extern FUN_021DA03C
-.extern FUN_021DA080
-.extern FUN_021DA0DC
-.extern FUN_021DA0E0
-.extern FUN_021DA0E8
-.extern FUN_021DA118
-.extern FUN_021DA138
-.extern FUN_021DA1A0
-.extern FUN_021DA1A4
-.extern FUN_021DA1A8
-.extern FUN_021DA20C
-.extern FUN_021DA4BC
-.extern FUN_021DB44C
-.extern FUN_021DB4B0
-.extern FUN_021DB52C
-.extern FUN_021DB53C
-.extern FUN_021DBA40
-.extern FUN_021DBA78
-.extern FUN_021DBAA0
-.extern FUN_021E4BE8
-.extern FUN_021E4C00
-.extern FUN_021E4C08
-.extern FUN_021E4C20
-.extern FUN_021E4C24
-.extern FUN_021E4C6C
-.extern FUN_021E4DC4
-.extern FUN_021E4E90
-.extern FUN_021E4EE4
-.extern FUN_021E4EFC
-.extern FUN_021E506C
-.extern FUN_021E5078
-.extern FUN_021E5094
-.extern FUN_021E50A0
-.extern FUN_021E50AC
-.extern FUN_021E50C8
-.extern FUN_021E50D4
-.extern FUN_021E5114
-.extern FUN_021E5198
-.extern FUN_021E51EC
-.extern FUN_021E5224
-.extern FUN_021E5260
-.extern FUN_021E5294
-.extern FUN_021E7C80
-.extern FUN_021E7E9C
-.extern FUN_021E7EC0
-.extern FUN_021E7ECC
-.extern FUN_021E7EEC
-.extern FUN_021E8698
-.extern FUN_021F0514
-.extern FUN_021F1C1C
-.extern FUN_021F1C30
-.extern FUN_021F1E64
-.extern FUN_021F220C
-.extern FUN_021F51D0
-.extern FUN_021F522C
-.extern FUN_021F5268
-.extern FUN_021F52C8
-.extern FUN_021F531C
-.extern FUN_021F5348
-.extern FUN_021F5358
-.extern FUN_021F5384
-.extern FUN_021F53BC
-.extern FUN_021F53F8
-.extern FUN_021F5400
-.extern FUN_021F5424
-.extern FUN_021F5430
-.extern FUN_021F54CC
-.extern FUN_021F54D0
-.extern FUN_021F54D8
-.extern FUN_021F61F4
-.extern FUN_021F6234
-.extern FUN_021F6240
-.extern FUN_021F6254
+.extern MOD05_021D80E4
+.extern MOD05_021D9320
+.extern MOD05_021D94B4
+.extern MOD05_021D9510
+.extern MOD05_021DA03C
+.extern MOD05_021DA080
+.extern MOD05_021DA0DC
+.extern MOD05_021DA0E0
+.extern MOD05_021DA0E8
+.extern MOD05_021DA118
+.extern MOD05_021DA138
+.extern MOD05_021DA1A0
+.extern MOD05_021DA1A4
+.extern MOD05_021DA1A8
+.extern MOD05_021DA20C
+.extern MOD05_021DA4BC
+.extern MOD05_021DB44C
+.extern MOD05_021DB4B0
+.extern MOD05_021DB52C
+.extern MOD05_021DB53C
+.extern MOD05_021DBA40
+.extern MOD05_021DBA78
+.extern MOD05_021DBAA0
+.extern MOD05_021E4BE8
+.extern MOD05_021E4C00
+.extern MOD05_021E4C08
+.extern MOD05_021E4C20
+.extern MOD05_021E4C24
+.extern MOD05_021E4C6C
+.extern MOD05_021E4DC4
+.extern MOD05_021E4E90
+.extern MOD05_021E4EE4
+.extern MOD05_021E4EFC
+.extern MOD05_021E506C
+.extern MOD05_021E5078
+.extern MOD05_021E5094
+.extern MOD05_021E50A0
+.extern MOD05_021E50AC
+.extern MOD05_021E50C8
+.extern MOD05_021E50D4
+.extern MOD05_021E5114
+.extern MOD05_021E5198
+.extern MOD05_021E51EC
+.extern MOD05_021E5224
+.extern MOD05_021E5260
+.extern MOD05_021E5294
+.extern MOD05_021E7C80
+.extern MOD05_021E7E9C
+.extern MOD05_021E7EC0
+.extern MOD05_021E7ECC
+.extern MOD05_021E7EEC
+.extern MOD05_021E8698
+.extern MOD05_021F0514
+.extern MOD05_021F1C1C
+.extern MOD05_021F1C30
+.extern MOD05_021F1E64
+.extern MOD05_021F220C
+.extern MOD05_021F51D0
+.extern MOD05_021F522C
+.extern MOD05_021F5268
+.extern MOD05_021F52C8
+.extern MOD05_021F531C
+.extern MOD05_021F5348
+.extern MOD05_021F5358
+.extern MOD05_021F5384
+.extern MOD05_021F53BC
+.extern MOD05_021F53F8
+.extern MOD05_021F5400
+.extern MOD05_021F5424
+.extern MOD05_021F5430
+.extern MOD05_021F54CC
+.extern MOD05_021F54D0
+.extern MOD05_021F54D8
+.extern MOD05_021F61F4
+.extern MOD05_021F6234
+.extern MOD05_021F6240
+.extern MOD05_021F6254
.extern FUN_020031B8
.extern FUN_02003204
.extern FUN_020039E8
@@ -4657,14 +4762,14 @@
.extern FUN_02069FB0
.extern FUN_02085FF4
.extern FUN_02086018
-.extern FUN_02230078
-.extern FUN_02230080
-.extern FUN_022300CC
-.extern FUN_022312D0
-.extern FUN_02231504
-.extern FUN_02231534
-.extern FUN_02231678
-.extern FUN_02233560
+.extern MOD11_02230078
+.extern MOD11_02230080
+.extern MOD11_022300CC
+.extern MOD11_022312D0
+.extern MOD11_02231504
+.extern MOD11_02231534
+.extern MOD11_02231678
+.extern MOD12_02233560
.extern FX_Modf
.extern FUN_02002F40
.extern FUN_0200B144
@@ -4709,36 +4814,36 @@
.extern FUN_0207C2D0
.extern FUN_02083114
.extern FUN_0208315C
-.extern FUN_0222FF68
-.extern FUN_0222FF74
-.extern FUN_0222FF78
-.extern FUN_0222FF88
-.extern FUN_02230014
-.extern FUN_02230188
-.extern FUN_02230214
-.extern FUN_02230218
-.extern FUN_02230260
-.extern FUN_02230290
-.extern FUN_022302BC
-.extern FUN_02230370
-.extern FUN_02230E44
-.extern FUN_02230E54
-.extern FUN_02231238
-.extern FUN_0224C474
-.extern FUN_0225D3EC
-.extern FUN_0225D45C
-.extern FUN_0225D484
-.extern FUN_0225D508
-.extern FUN_0225D5DC
-.extern FUN_0225D648
-.extern FUN_0225D6A4
-.extern FUN_0225D714
-.extern FUN_0225D73C
-.extern FUN_0225D7B8
-.extern FUN_0225D800
-.extern FUN_0225D80C
-.extern FUN_0225D820
-.extern FUN_0225D824
+.extern MOD11_0222FF68
+.extern MOD11_0222FF74
+.extern MOD11_0222FF78
+.extern MOD11_0222FF88
+.extern MOD11_02230014
+.extern MOD11_02230188
+.extern MOD11_02230214
+.extern MOD11_02230218
+.extern MOD11_02230260
+.extern MOD11_02230290
+.extern MOD11_022302BC
+.extern MOD11_02230370
+.extern MOD11_02230E44
+.extern MOD11_02230E54
+.extern MOD11_02231238
+.extern MOD11_0224C474
+.extern MOD11_0225D3EC
+.extern MOD11_0225D45C
+.extern MOD11_0225D484
+.extern MOD11_0225D508
+.extern MOD11_0225D5DC
+.extern MOD11_0225D648
+.extern MOD11_0225D6A4
+.extern MOD11_0225D714
+.extern MOD11_0225D73C
+.extern MOD11_0225D7B8
+.extern MOD11_0225D800
+.extern MOD11_0225D80C
+.extern MOD11_0225D820
+.extern MOD11_0225D824
.extern FUN_02002BD4
.extern FUN_02002BE4
.extern FUN_02002BF4
@@ -4847,30 +4952,30 @@
.extern FUN_020799E8
.extern FUN_02079A24
.extern FUN_02087B78
-.extern FUN_021EEF0C
-.extern FUN_021EEF68
-.extern FUN_021EEF84
-.extern FUN_021EEF98
-.extern FUN_021EEF9C
-.extern FUN_021EFBF4
-.extern FUN_021EFD8C
-.extern FUN_021F45A4
-.extern FUN_021F4698
-.extern FUN_021F4A30
-.extern FUN_02211E7C
-.extern FUN_02211F5C
-.extern FUN_02212024
-.extern FUN_02212048
-.extern FUN_02212384
-.extern FUN_022123A0
-.extern FUN_022123B0
-.extern FUN_022156C0
-.extern FUN_0221590C
-.extern FUN_02215918
-.extern FUN_0221594C
-.extern FUN_02215988
-.extern FUN_02215A44
-.extern FUN_022186F0
+.extern MOD16_021EEF0C
+.extern MOD05_021EEF68
+.extern MOD16_021EEF84
+.extern MOD16_021EEF98
+.extern MOD05_021EEF9C
+.extern MOD16_021EFBF4
+.extern MOD16_021EFD8C
+.extern MOD16_021F45A4
+.extern MOD16_021F4698
+.extern MOD16_021F4A30
+.extern MOD08_02211E7C
+.extern MOD08_02211F5C
+.extern MOD08_02212024
+.extern MOD08_02212048
+.extern MOD08_02212384
+.extern MOD08_022123A0
+.extern MOD08_022123B0
+.extern MOD08_022156C0
+.extern MOD08_0221590C
+.extern MOD08_02215918
+.extern MOD08_0221594C
+.extern MOD08_02215988
+.extern MOD08_02215A44
+.extern MOD09_022186F0
.extern FX_ModS32
.extern MOD08_02228218
.extern MOD08_02228524
@@ -4929,19 +5034,19 @@
.extern FUN_0208336C
.extern FUN_020833D4
.extern FUN_02083404
-.extern FUN_021DD4F4
-.extern FUN_021DD518
-.extern FUN_021DD540
-.extern FUN_021DD58C
-.extern FUN_021DD594
-.extern FUN_021DD59C
-.extern FUN_021DD604
-.extern FUN_021DD60C
-.extern FUN_021DD620
-.extern FUN_021DD678
-.extern FUN_021DD6B8
-.extern FUN_021DD6CC
-.extern FUN_02211FF0
+.extern MOD17_021DD4F4
+.extern MOD17_021DD518
+.extern MOD17_021DD540
+.extern MOD17_021DD58C
+.extern MOD17_021DD594
+.extern MOD17_021DD59C
+.extern MOD17_021DD604
+.extern MOD05_021DD60C
+.extern MOD17_021DD620
+.extern MOD17_021DD678
+.extern MOD17_021DD6B8
+.extern MOD17_021DD6CC
+.extern MOD08_02211FF0
.extern FUN_0202E49C
.extern MOD08_02228574
.extern MOD08_0222A6C8
@@ -5025,11 +5130,11 @@
.extern FS_LoadArchiveTables
.extern FS_UnloadArchive
.extern FS_ReleaseArchiveName
-.extern FUN_021EB9A4
-.extern FUN_021EB9D8
-.extern FUN_021EBAE8
-.extern FUN_021EBB80
-.extern FUN_021EBC60
+.extern MOD04_021EB9A4
+.extern MOD04_021EB9D8
+.extern MOD04_021EBAE8
+.extern MOD04_021EBB80
+.extern MOD04_021EBC60
.extern FUN_020051EC
.extern FUN_02006D18
.extern FUN_020081A8
@@ -5409,7 +5514,6 @@
.extern FUN_02006C88
.extern FUN_02020A6C
.extern FUN_02012690
-.extern MOD20_02252978
.extern FUN_02020BF4
.extern FUN_02020BFC
.extern FUN_020893F0
@@ -5417,6 +5521,8 @@
.extern FUN_02069B60
.extern FUN_02089444
.extern FUN_0208946C
+.extern MOD20_02252978
+.extern MOD20_02253AA4
.extern MOD20_02252B68
.extern MOD20_02252C08
.extern MOD20_02253794
@@ -5530,6 +5636,375 @@
.extern FUN_02083298
.extern FUN_02083A34
.extern FUN_02083A7C
+.extern FUN_020254F0
+.extern FUN_020254F8
+.extern FUN_0202EF70
+.extern FUN_02052CF0
+.extern FUN_02015E3C
+.extern FUN_020226FC
+.extern FUN_020227DC
+.extern FUN_020237A0
+.extern FUN_020237CC
+.extern FUN_020237FC
+.extern FUN_02023840
+.extern FUN_020238A4
+.extern FUN_020239B8
+.extern FUN_02023A14
+.extern FUN_02024F9C
+.extern FUN_020250C4
+.extern FUN_020377E0
+.extern FUN_0206007C
+.extern FUN_0201CD38
+.extern FUN_020294A8
+.extern FUN_0202EEB0
+.extern MOD08_02217E80
+.extern MOD08_02217ECC
+.extern MOD08_02217F08
+.extern MOD08_0222A02C
+.extern FUN_0200C6D8
+.extern FUN_02029CA4
+.extern FUN_02029CF4
+.extern FUN_02029CF8
+.extern FUN_02029D40
+.extern FUN_02029D84
+.extern FUN_02085D9C
+.extern FUN_02085FAC
+.extern FUN_02031370
+.extern FUN_02016B44
+.extern FUN_02017BD0
+.extern FUN_0201ED5C
+.extern FUN_0201EE2C
+.extern FUN_0201EFB4
+.extern FUN_0201F05C
+.extern FUN_0200A064
+.extern FUN_0200C918
+.extern FUN_02031388
+.extern FUN_02052F8C
+.extern FUN_02083D48
+.extern FUN_02026FE0
+.extern FUN_02027D7C
+.extern FUN_0202888C
+.extern FUN_020288AC
+.extern FUN_020013C8
+.extern FUN_02001538
+.extern FUN_02004828
+.extern FUN_0200DC24
+.extern FUN_0201291C
+.extern FUN_020281E8
+.extern FUN_0202858C
+.extern FUN_020285D0
+.extern FUN_0202DB14
+.extern FUN_0202DBA4
+.extern FUN_02032FDC
+.extern FUN_0203300C
+.extern FUN_02033128
+.extern FUN_02033138
+.extern FUN_02033154
+.extern FUN_02033180
+.extern FUN_020331C4
+.extern FUN_020331E8
+.extern FUN_02033208
+.extern FUN_0203323C
+.extern FUN_02033250
+.extern FUN_0203346C
+.extern FUN_020334DC
+.extern FUN_02088858
+.extern FUN_02088868
+.extern FUN_02006874
+.extern FUN_0200AF88
+.extern FUN_0200AFBC
+.extern FUN_02013840
+.extern FUN_02013EFC
+.extern FUN_02013F00
+.extern FUN_0201C78C
+.extern FUN_02024648
+.extern FUN_02024674
+.extern FUN_020247A4
+.extern FUN_02024828
+.extern FUN_0202489C
+.extern FUN_0202490C
+.extern FUN_02024930
+.extern FUN_02024970
+.extern FUN_02024CC4
+.extern FUN_02025E20
+.extern FUN_02025FFC
+.extern FUN_020260EC
+.extern FUN_0202A398
+.extern FUN_0202B5D8
+.extern FUN_0202B9EC
+.extern FUN_02031258
+.extern FUN_02046948
+.extern FUN_0204E178
+.extern FUN_02050E10
+.extern FUN_02050E2C
+.extern FUN_020556C8
+.extern FUN_0205E49C
+.extern FUN_0206EA54
+.extern FUN_02085410
+.extern FUN_02085414
+.extern FUN_02087A38
+.extern FUN_0202B1F0
+.extern FUN_0202B250
+.extern FUN_0202B29C
+.extern FUN_0202B31C
+.extern FUN_020124B4
+.extern FUN_020166A8
+.extern FUN_020166B8
+.extern FUN_0202945C
+.extern FUN_0202E288
+.extern FUN_0206AA84
+.extern FUN_0206B8A4
+.extern FUN_02083B84
+.extern FUN_02083D10
+.extern FUN_0200904C
+.extern FUN_02013F04
+.extern FUN_0201CBEC
+.extern FUN_02027E30
+.extern FUN_02027E94
+.extern FUN_02029520
+.extern FUN_0202A878
+.extern FUN_02060FAC
+.extern FUN_020842D0
+.extern FUN_020842D8
+.extern FUN_02001354
+.extern FUN_0200145C
+.extern FUN_02001464
+.extern FUN_02001DDC
+.extern FUN_02001E60
+.extern FUN_020021CC
+.extern FUN_02018878
+.extern FUN_020209A8
+.extern FUN_020209F4
+.extern FUN_0205D51C
+.extern FUN_0206E164
+.extern FUN_0206E3F8
+.extern FUN_0206E51C
+.extern FUN_0206E5B4
+.extern FUN_0206EB0C
+.extern FUN_0206EBC4
+.extern FUN_0206EBCC
+.extern FUN_0206EE20
+.extern FUN_0206EF10
+.extern FUN_0206F18C
+.extern FUN_0206F19C
+.extern FUN_02085284
+.extern MOD05_021F54E0
+.extern MOD06_0224C24C
+.extern MOD12_0223D1CC
+.extern MOD18_0223E4BC
+.extern MOD18_02247830
+.extern MOD04_021D80E0
+.extern MOD04_021D83D4
+.extern MOD04_021D8478
+.extern MOD04_021D8480
+.extern MOD04_021D853C
+.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
+.extern FUN_020282E8
+.extern FUN_020283C0
+.extern FUN_020283E8
+.extern FUN_02033918
+.extern FUN_02096D68
+.extern FUN_02096E24
+.extern FUN_0202B390
+.extern FUN_0202B3F8
+.extern FUN_0202BCF4
+.extern FUN_020328E4
+.extern FUN_020336C0
+.extern FUN_020336C8
+.extern FUN_020536C8
+.extern FUN_02053708
+.extern FUN_02066840
+.extern FUN_02084098
+.extern FUN_020048A0
+.extern FUN_020048BC
+.extern FUN_02014630
+.extern FUN_02024EF4
+.extern FUN_02004D60
+.extern FUN_020181EC
+.extern FUN_02024FD8
+.extern FUN_02024FE0
+.extern FUN_02025010
+.extern FUN_02025018
+.extern FUN_02025034
+.extern FUN_02025048
+.extern FUN_02025050
+.extern FUN_02025064
+.extern FUN_0202506C
+.extern FUN_0202508C
.extern SDK_OVERLAY_MODULE_00_ID
.extern SDK_OVERLAY_MODULE_01_ID
.extern SDK_OVERLAY_MODULE_02_ID
diff --git a/arm9/lib/include/CARD_backup.h b/arm9/lib/include/CARD_backup.h
new file mode 100644
index 00000000..de594beb
--- /dev/null
+++ b/arm9/lib/include/CARD_backup.h
@@ -0,0 +1,6 @@
+#ifndef NITRO_CARD_BACKUP_H_
+#define NITRO_CARD_BACKUP_H_
+
+BOOL CARD_TryWaitBackupAsync(void);
+
+#endif //NITRO_CARD_BACKUP_H_
diff --git a/arm9/lib/include/CTRDG_common.h b/arm9/lib/include/CTRDG_common.h
new file mode 100644
index 00000000..c83602b8
--- /dev/null
+++ b/arm9/lib/include/CTRDG_common.h
@@ -0,0 +1,6 @@
+#ifndef NITRO_CTRDG_COMMON_H_
+#define NITRO_CTRDG_COMMON_H_
+
+BOOL CTRDG_IsPulledOut(void);
+
+#endif //NITRO_CTRDG_COMMON_H_
diff --git a/arm9/lib/include/FS_overlay.h b/arm9/lib/include/FS_overlay.h
index 6025d04a..14c7ce66 100644
--- a/arm9/lib/include/FS_overlay.h
+++ b/arm9/lib/include/FS_overlay.h
@@ -1,6 +1,10 @@
#ifndef NITRO_FS_OVERLAY_H_
#define NITRO_FS_OVERLAY_H_
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
#include "nitro.h"
#include "MI_exMemory.h"
#include "FS_file.h"
@@ -8,7 +12,10 @@
typedef u32 FSOverlayID;
-typedef void (*FSOverlayInitFunc) (void);
+#define FS_EXTERN_OVERLAY(name) extern u32 SDK_OVERLAY_ ## name ## _ID[1]
+#define FS_OVERLAY_ID(name) ((u32)&(SDK_OVERLAY_ ## name ## _ID))
+
+typedef void (*FSOverlayInitFunc)(void);
typedef struct FSOverlayInfoHeader
{
@@ -19,8 +26,8 @@ typedef struct FSOverlayInfoHeader
FSOverlayInitFunc *sinit_init;
FSOverlayInitFunc *sinit_init_end;
u32 file_id;
- u32 compressed:24;
- u32 flag:8;
+ u32 compressed: 24;
+ u32 flag: 8;
} FSOverlayInfoHeader;
typedef struct FSOverlayInfo
@@ -30,26 +37,35 @@ typedef struct FSOverlayInfo
CARDRomRegion file_pos;
} FSOverlayInfo;
-static inline u8 *const FS_GetOverlayAddress(FSOverlayInfo * p_ovi)
+static inline u8 *const FS_GetOverlayAddress(FSOverlayInfo *p_ovi)
{
return p_ovi->header.ram_address;
}
-static inline u32 const FS_GetOverlayImageSize(FSOverlayInfo * p_ovi)
+static inline u32 const FS_GetOverlayImageSize(FSOverlayInfo *p_ovi)
{
return p_ovi->header.ram_size;
}
-static inline u32 const FS_GetOverlayTotalSize(FSOverlayInfo * p_ovi)
+static inline u32 const FS_GetOverlayTotalSize(FSOverlayInfo *p_ovi)
{
return p_ovi->header.ram_size + p_ovi->header.bss_size;
}
BOOL FS_LoadOverlayInfo(FSOverlayInfo *p_ovi, MIProcessor target, FSOverlayID id);
+
BOOL FS_LoadOverlay(MIProcessor target, FSOverlayID id);
+
BOOL FS_UnloadOverlay(MIProcessor target, FSOverlayID id);
+
BOOL FS_LoadOverlayImage(FSOverlayInfo *p_ovi);
+
void FS_StartOverlay(FSOverlayInfo *p_ovi);
+
BOOL FS_LoadOverlayImageAsync(FSOverlayInfo *p_ovi, FSFile *p_file);
+#if defined(__cplusplus)
+};
+#endif
+
#endif //NITRO_FS_OVERLAY_H_
diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h
index b8425b4e..21ce2ea0 100644
--- a/arm9/lib/include/OS_interrupt.h
+++ b/arm9/lib/include/OS_interrupt.h
@@ -19,11 +19,12 @@ typedef struct
typedef u32 OSIrqMask;
extern OSIrqFunction OS_IRQTable[];
-extern OSIrqCallbackInfo OSi_IrqCallbackInfo[7+1];
+extern OSIrqCallbackInfo OSi_IrqCallbackInfo[8];
void OS_InitIrqTable();
void OS_SetIrqFunction(OSIrqMask intrBit, OSIrqFunction function);
OSIrqFunction OS_GetIrqFunction(OSIrqMask intrBit);
void OSi_EnterDmaCallback(u32 dmaNo, void (*callback) (void *), void *arg);
+void OSi_EnterTimerCallback(u32 timerNo, void (*callback) (void *), void *arg);
#endif //POKEDIAMOND_OS_INTERRUPT_H
diff --git a/arm9/lib/include/OS_printf.h b/arm9/lib/include/OS_printf.h
index 7c02252b..7c2e09b4 100644
--- a/arm9/lib/include/OS_printf.h
+++ b/arm9/lib/include/OS_printf.h
@@ -5,4 +5,11 @@
#define OS_TPanic(...) OS_Terminate()
#define OS_TWarning(...) ((void)0)
+#include "types.h"
+
+s32 OS_SPrintf(s8 *buffer, const s8 *format, ...);
+s32 OS_VSPrintf(s8 *buffer, const s8 *format, void *args);
+s32 OS_SNPrintf(s8 *buffer, s32 bufsz, const s8 *format, ...);
+s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args);
+
#endif //NITRO_OS_PRINTF_H_
diff --git a/arm9/lib/include/PAD_pad.h b/arm9/lib/include/PAD_pad.h
new file mode 100644
index 00000000..0cb8a6f0
--- /dev/null
+++ b/arm9/lib/include/PAD_pad.h
@@ -0,0 +1,38 @@
+#ifndef NITRO_PAD_PAD_H_
+#define NITRO_PAD_PAD_H_
+
+
+//================================================================================
+// BUTTONS
+
+//---- masked value
+#define PAD_PLUS_KEY_MASK 0x00f0 // mask : cross keys
+#define PAD_BUTTON_MASK 0x2f0f // mask : buttons
+#define PAD_DEBUG_BUTTON_MASK 0x2000 // mask : debug button
+#define PAD_ALL_MASK 0x2fff // mask : all buttons
+#define PAD_RCNTPORT_MASK 0x2c00 // mask : factors ARM7 can read from RCNT register
+#define PAD_KEYPORT_MASK 0x03ff // mask : factors ARM7/9 can read from KEY register
+
+#define PAD_DETECT_FOLD_MASK 0x8000 // mask : folding
+
+//---- button and key
+#define PAD_BUTTON_A 0x0001 // A
+#define PAD_BUTTON_B 0x0002 // B
+#define PAD_BUTTON_SELECT 0x0004 // SELECT
+#define PAD_BUTTON_START 0x0008 // START
+#define PAD_KEY_RIGHT 0x0010 // RIGHT of cross key
+#define PAD_KEY_LEFT 0x0020 // LEFT of cross key
+#define PAD_KEY_UP 0x0040 // UP of cross key
+#define PAD_KEY_DOWN 0x0080 // DOWN of cross key
+#define PAD_BUTTON_R 0x0100 // R
+#define PAD_BUTTON_L 0x0200 // L
+#define PAD_BUTTON_X 0x0400 // X
+#define PAD_BUTTON_Y 0x0800 // Y
+#define PAD_BUTTON_DEBUG 0x2000 // Debug button
+
+static inline BOOL PAD_DetectFold(void)
+{
+ return (BOOL)((*(vu16 *)HW_BUTTON_XY_BUF & PAD_DETECT_FOLD_MASK) >> 15);
+}
+
+#endif //NITRO_PAD_PAD_H_
diff --git a/arm9/lib/include/SPI_pm.h b/arm9/lib/include/SPI_pm.h
new file mode 100644
index 00000000..b5063ed8
--- /dev/null
+++ b/arm9/lib/include/SPI_pm.h
@@ -0,0 +1,38 @@
+#ifndef NITRO_SPI_PM_H_
+#define NITRO_SPI_PM_H_
+
+ENUMS_ALWAYS_INT_ON
+
+#define PM_TRIGGER_KEY (1 << 0)
+#define PM_TRIGGER_RTC_ALARM (1 << 1)
+#define PM_TRIGGER_COVER_OPEN (1 << 2)
+#define PM_TRIGGER_CARD (1 << 3)
+#define PM_TRIGGER_CARTRIDGE (1 << 4)
+typedef u32 PMWakeUpTrigger;
+
+#define PM_PAD_LOGIC_OR (0 << REG_PAD_KEYCNT_LOGIC_SHIFT)
+#define PM_PAD_LOGIC_AND (1 << REG_PAD_KEYCNT_LOGIC_SHIFT)
+typedef u32 PMLogic;
+
+typedef enum
+{
+ PM_BACKLIGHT_OFF = 0,
+ PM_BACKLIGHT_ON = 1
+} PMBackLightSwitch;
+
+typedef enum
+{
+ PM_LCD_TOP = 0,
+ PM_LCD_BOTTOM = 1,
+ PM_LCD_ALL = 2
+}
+PMLCDTarget;
+
+void PM_GetBackLight(PMBackLightSwitch * top, PMBackLightSwitch * bottom);
+void PM_GoSleepMode(PMWakeUpTrigger trigger, PMLogic logic, u16 keyPattern);
+u32 PM_SetBackLight(PMLCDTarget target, PMBackLightSwitch status);
+void PM_ForceToPowerOff(void);
+
+ENUMS_ALWAYS_INT_RESET
+
+#endif //NITRO_SPI_PM_H_
diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h
index c4be4deb..5abc2693 100644
--- a/arm9/lib/include/gx.h
+++ b/arm9/lib/include/gx.h
@@ -22,7 +22,6 @@ void MIi_CpuClear32(u32, void *, u32);
//Todos before PR
//TODO: Add defines for GX commands, add structs/unions for HW registers
-//TODO: Add ARM_FUNC attributes
#define HW_REG_DIV_NUMER 0x04000290
#define HW_REG_DIV_DENOM 0x04000298
diff --git a/arm9/lib/include/registers.h b/arm9/lib/include/registers.h
index 45b36334..598ba3f9 100644
--- a/arm9/lib/include/registers.h
+++ b/arm9/lib/include/registers.h
@@ -7,49 +7,472 @@
#include "types.h"
-#define HW_REG_BASE 0x04000000
-#define REG_VCOUNT_OFFSET 0x006
-#define REG_VCOUNT_ADDR (HW_REG_BASE + REG_VCOUNT_OFFSET)
-#define reg_GX_VCOUNT (*(REGType16v *)REG_VCOUNT_ADDR)
-
-#define REG_KEYINPUT_OFFSET 0x130
-#define REG_KEYINPUT_ADDR (HW_REG_BASE + REG_KEYINPUT_OFFSET)
-#define reg_PAD_KEYINPUT (*(REGType16v *)REG_KEYINPUT_ADDR)
-
-#define REG_DIVCNT_OFFSET 0x280
-#define REG_DIVCNT_ADDR (HW_REG_BASE + REG_DIVCNT_OFFSET)
-#define reg_CP_DIVCNT (*(REGType16v *)REG_DIVCNT_ADDR)
-
-#define REG_DIV_NUMER_OFFSET 0x290
-#define REG_DIV_NUMER_ADDR (HW_REG_BASE + REG_DIV_NUMER_OFFSET)
-#define reg_CP_DIV_NUMER (*(REGType64v *)REG_DIV_NUMER_ADDR)
-
-#define REG_DIV_DENOM_OFFSET 0x298
-#define REG_DIV_DENOM_ADDR (HW_REG_BASE + REG_DIV_DENOM_OFFSET)
-#define reg_CP_DIV_DENOM (*(REGType64v *)REG_DIV_DENOM_ADDR)
-
-#define REG_DIV_RESULT_OFFSET 0x2A0
-#define REG_DIV_RESULT_ADDR (HW_REG_BASE + REG_DIV_RESULT_OFFSET)
-#define reg_CP_DIV_RESULT (*(REGType64v *)REG_DIV_RESULT_ADDR)
-
-#define REG_DIVREM_RESULT_OFFSET 0x2A8
-#define REG_DIVREM_RESULT_ADDR (HW_REG_BASE + REG_DIVREM_RESULT_OFFSET)
-#define reg_CP_DIVREM_RESULT (*(REGType64v *)REG_DIVREM_RESULT_ADDR)
-
-#define REG_SQRTCNT_OFFSET 0x2B0
-#define REG_SQRTCNT_ADDR (HW_REG_BASE + REG_SQRTCNT_OFFSET)
-#define reg_CP_SQRTCNT (*(REGType16v *)REG_SQRTCNT_ADDR)
-
-#define REG_SQRT_RESULT_OFFSET 0x2B4
-#define REG_SQRT_RESULT_ADDR (HW_REG_BASE + REG_SQRT_RESULT_OFFSET)
-#define reg_CP_SQRT_RESULT (*(REGType32v *)REG_SQRT_RESULT_ADDR)
-
-#define REG_SQRT_PARAM_OFFSET 0x2B8
-#define REG_SQRT_PARAM_ADDR (HW_REG_BASE + REG_SQRT_PARAM_OFFSET)
-#define reg_CP_SQRT_PARAM (*(REGType64v *)REG_SQRT_PARAM_ADDR)
-
-#define REG_GXSTAT_OFFSET 0x600
-#define REG_GXSTAT_ADDR (HW_REG_BASE + REG_GXSTAT_OFFSET)
-#define reg_G3X_GXSTAT (*(REGType32v *)REG_GXSTAT_ADDR)
+#define reg_GX_DISPCNT (*(REGType32v *)0x4000000)
+#define reg_GX_DISPSTAT (*(REGType16v *)0x4000004)
+#define reg_GX_VCOUNT (*(REGType16v *)0x4000006)
+
+#define reg_G2_BG0CNT (*(REGType16v *)0x4000008)
+#define reg_G2_BG1CNT (*(REGType16v *)0x400000a)
+#define reg_G2_BG2CNT (*(REGType16v *)0x400000c)
+#define reg_G2_BG3CNT (*(REGType16v *)0x400000e)
+#define reg_G2_BG0OFS (*(REGType32v *)0x4000010)
+#define reg_G2_BG0HOFS (*(REGType16v *)0x4000010)
+#define reg_G2_BG0VOFS (*(REGType16v *)0x4000012)
+#define reg_G2_BG1OFS (*(REGType32v *)0x4000014)
+#define reg_G2_BG1HOFS (*(REGType16v *)0x4000014)
+#define reg_G2_BG1VOFS (*(REGType16v *)0x4000016)
+#define reg_G2_BG2OFS (*(REGType32v *)0x4000018)
+#define reg_G2_BG2HOFS (*(REGType16v *)0x4000018)
+#define reg_G2_BG2VOFS (*(REGType16v *)0x400001a)
+#define reg_G2_BG3OFS (*(REGType32v *)0x400001c)
+#define reg_G2_BG3HOFS (*(REGType16v *)0x400001c)
+#define reg_G2_BG3VOFS (*(REGType16v *)0x400001e)
+#define reg_G2_BG2PA (*(REGType16v *)0x4000020)
+#define reg_G2_BG2PB (*(REGType16v *)0x4000022)
+#define reg_G2_BG2PC (*(REGType16v *)0x4000024)
+#define reg_G2_BG2PD (*(REGType16v *)0x4000026)
+#define reg_G2_BG2X (*(REGType32v *)0x4000028)
+#define reg_G2_BG2Y (*(REGType32v *)0x400002c)
+#define reg_G2_BG3PA (*(REGType16v *)0x4000030)
+#define reg_G2_BG3PB (*(REGType16v *)0x4000032)
+#define reg_G2_BG3PC (*(REGType16v *)0x4000034)
+#define reg_G2_BG3PD (*(REGType16v *)0x4000036)
+#define reg_G2_BG3X (*(REGType32v *)0x4000038)
+#define reg_G2_BG3Y (*(REGType32v *)0x400003c)
+#define reg_G2_WIN0H (*(REGType16v *)0x4000040)
+#define reg_G2_WIN1H (*(REGType16v *)0x4000042)
+#define reg_G2_WIN0V (*(REGType16v *)0x4000044)
+#define reg_G2_WIN1V (*(REGType16v *)0x4000046)
+#define reg_G2_WININ (*(REGType16v *)0x4000048)
+#define reg_G2_WINOUT (*(REGType16v *)0x400004a)
+#define reg_G2_MOSAIC (*(REGType16v *)0x400004c)
+#define reg_G2_BLDCNT (*(REGType16v *)0x4000050)
+#define reg_G2_BLDALPHA (*(REGType16v *)0x4000052)
+#define reg_G2_BLDY (*(REGType16v *)0x4000054)
+
+#define reg_G3X_DISP3DCNT (*(REGType16v *)0x4000060)
+
+#define reg_GX_DISPCAPCNT (*(REGType32v *)0x4000064)
+#define reg_GX_DISP_MMEM_FIFO (*(REGType32v *)0x4000068)
+#define reg_GX_DISP_MMEM_FIFO_L (*(REGType16v *)0x4000068)
+#define reg_GX_DISP_MMEM_FIFO_H (*(REGType16v *)0x400006a)
+#define reg_GX_MASTER_BRIGHT (*(REGType16v *)0x400006c)
+#define reg_GX_TVOUTCNT (*(REGType16v *)0x4000070)
+
+#define reg_MI_DMA0SAD (*(REGType32v *)0x40000b0)
+#define reg_MI_DMA0DAD (*(REGType32v *)0x40000b4)
+#define reg_MI_DMA0CNT (*(REGType32v *)0x40000b8)
+#define reg_MI_DMA1SAD (*(REGType32v *)0x40000bc)
+#define reg_MI_DMA1DAD (*(REGType32v *)0x40000c0)
+#define reg_MI_DMA1CNT (*(REGType32v *)0x40000c4)
+#define reg_MI_DMA2SAD (*(REGType32v *)0x40000c8)
+#define reg_MI_DMA2DAD (*(REGType32v *)0x40000cc)
+#define reg_MI_DMA2CNT (*(REGType32v *)0x40000d0)
+#define reg_MI_DMA3SAD (*(REGType32v *)0x40000d4)
+#define reg_MI_DMA3DAD (*(REGType32v *)0x40000d8)
+#define reg_MI_DMA3CNT (*(REGType32v *)0x40000dc)
+#define reg_MI_DMA0_CLR_DATA (*(REGType32v *)0x40000e0)
+#define reg_MI_DMA1_CLR_DATA (*(REGType32v *)0x40000e4)
+#define reg_MI_DMA2_CLR_DATA (*(REGType32v *)0x40000e8)
+#define reg_MI_DMA3_CLR_DATA (*(REGType32v *)0x40000ec)
+
+#define reg_OS_TM0CNT_L (*(REGType16v *)0x4000100)
+#define reg_OS_TM0CNT_H (*(REGType16v *)0x4000102)
+#define reg_OS_TM1CNT_L (*(REGType16v *)0x4000104)
+#define reg_OS_TM1CNT_H (*(REGType16v *)0x4000106)
+#define reg_OS_TM2CNT_L (*(REGType16v *)0x4000108)
+#define reg_OS_TM2CNT_H (*(REGType16v *)0x400010a)
+#define reg_OS_TM3CNT_L (*(REGType16v *)0x400010c)
+#define reg_OS_TM3CNT_H (*(REGType16v *)0x400010e)
+
+#define reg_EXI_SIODATA32 (*(REGType32v *)0x4000120)
+#define reg_EXI_SIOCNT (*(REGType16v *)0x4000128)
+#define reg_EXI_SIOSEL (*(REGType32v *)0x400012c)
+
+#define reg_PAD_KEYINPUT (*(REGType16v *)0x4000130)
+#define reg_PAD_KEYCNT (*(REGType16v *)0x4000132)
+
+#define reg_PXI_SUBPINTF (*(REGType16v *)0x4000180)
+#define reg_PXI_SUBP_FIFO_CNT (*(REGType16v *)0x4000184)
+#define reg_PXI_SEND_FIFO (*(REGType32v *)0x4000188)
+
+#define reg_MI_MCCNT0 (*(REGType16v *)0x40001a0)
+#define reg_MI_MCD0 (*(REGType16v *)0x40001a2)
+#define reg_MI_MCCNT1 (*(REGType32v *)0x40001a4)
+#define reg_MI_MCCMD0 (*(REGType32v *)0x40001a8)
+#define reg_MI_MCCMD1 (*(REGType32v *)0x40001ac)
+#define reg_MI_EXMEMCNT (*(REGType16v *)0x4000204)
+
+#define reg_OS_IME (*(REGType16v *)0x4000208)
+#define reg_OS_IE (*(REGType32v *)0x4000210)
+#define reg_OS_IF (*(REGType32v *)0x4000214)
+#define reg_OS_PAUSE (*(REGType16v *)0x4000300)
+
+#define reg_GX_VRAMCNT (*(REGType32v *)0x4000240)
+#define reg_GX_VRAMCNT_A (*(REGType8v *)0x4000240)
+#define reg_GX_VRAMCNT_B (*(REGType8v *)0x4000241)
+#define reg_GX_VRAMCNT_C (*(REGType8v *)0x4000242)
+#define reg_GX_VRAMCNT_D (*(REGType8v *)0x4000243)
+#define reg_GX_WVRAMCNT (*(REGType32v *)0x4000244)
+#define reg_GX_VRAMCNT_E (*(REGType8v *)0x4000244)
+#define reg_GX_VRAMCNT_F (*(REGType8v *)0x4000245)
+#define reg_GX_VRAMCNT_G (*(REGType8v *)0x4000246)
+#define reg_GX_VRAMCNT_WRAM (*(REGType8v *)0x4000247)
+#define reg_GX_VRAM_HI_CNT (*(REGType16v *)0x4000248)
+#define reg_GX_VRAMCNT_H (*(REGType8v *)0x4000248)
+#define reg_GX_VRAMCNT_I (*(REGType8v *)0x4000249)
+
+#define reg_CP_DIVCNT (*(REGType16v *)0x4000280)
+#define reg_CP_DIV_NUMER (*(REGType64v *)0x4000290)
+#define reg_CP_DIV_NUMER_L (*(REGType32v *)0x4000290)
+#define reg_CP_DIV_NUMER_H (*(REGType32v *)0x4000294)
+#define reg_CP_DIV_DENOM (*(REGType64v *)0x4000298)
+#define reg_CP_DIV_DENOM_L (*(REGType32v *)0x4000298)
+#define reg_CP_DIV_DENOM_H (*(REGType32v *)0x400029c)
+#define reg_CP_DIV_RESULT (*(REGType64v *)0x40002A0)
+#define reg_CP_DIV_RESULT_L (*(REGType32v *)0x40002A0)
+#define reg_CP_DIV_RESULT_H (*(REGType32v *)0x40002A4)
+#define reg_CP_DIVREM_RESULT (*(REGType64v *)0x40002A8)
+#define reg_CP_DIVREM_RESULT_L (*(REGType32v *)0x40002A8)
+#define reg_CP_DIVREM_RESULT_H (*(REGType32v *)0x40002Ac)
+#define reg_CP_SQRTCNT (*(REGType16v *)0x40002B0)
+#define reg_CP_SQRT_RESULT (*(REGType32v *)0x40002B4)
+#define reg_CP_SQRT_PARAM (*(REGType64v *)0x40002B8)
+#define reg_CP_SQRT_PARAM_L (*(REGType32v *)0x40002B8)
+#define reg_CP_SQRT_PARAM_H (*(REGType32v *)0x40002Bc)
+
+#define reg_GX_POWCNT (*(REGType16v *)0x4000304)
+
+#define reg_G3X_RDLINES_COUNT (*(const REGType16v *)0x4000320)
+#define reg_G3X_EDGE_COLOR_0 (*(REGType32v *)0x4000330)
+#define reg_G3X_EDGE_COLOR_0_L (*(REGType16v *)0x4000330)
+#define reg_G3X_EDGE_COLOR_0_H (*(REGType16v *)0x4000332)
+#define reg_G3X_EDGE_COLOR_1 (*(REGType32v *)0x4000334)
+#define reg_G3X_EDGE_COLOR_1_L (*(REGType16v *)0x4000334)
+#define reg_G3X_EDGE_COLOR_1_H (*(REGType16v *)0x4000336)
+#define reg_G3X_EDGE_COLOR_2 (*(REGType32v *)0x4000338)
+#define reg_G3X_EDGE_COLOR_2_L (*(REGType16v *)0x4000338)
+#define reg_G3X_EDGE_COLOR_2_H (*(REGType16v *)0x400033a)
+#define reg_G3X_EDGE_COLOR_3 (*(REGType32v *)0x400033c)
+#define reg_G3X_EDGE_COLOR_3_L (*(REGType16v *)0x400033c)
+#define reg_G3X_EDGE_COLOR_3_H (*(REGType16v *)0x400033e)
+#define reg_G3X_ALPHA_TEST_REF (*(REGType16v *)0x4000340)
+#define reg_G3X_CLEAR_COLOR (*(REGType32v *)0x4000350)
+#define reg_G3X_CLEAR_DEPTH (*(REGType16v *)0x4000354)
+#define reg_G3X_CLRIMAGE_OFFSET (*(REGType16v *)0x4000356)
+#define reg_G3X_FOG_COLOR (*(REGType32v *)0x4000358)
+#define reg_G3X_FOG_OFFSET (*(REGType16v *)0x400035c)
+#define reg_G3X_FOG_TABLE_0 (*(REGType32v *)0x4000360)
+#define reg_G3X_FOG_TABLE_0_L (*(REGType16v *)0x4000360)
+#define reg_G3X_FOG_TABLE_0_H (*(REGType16v *)0x4000362)
+#define reg_G3X_FOG_TABLE_1 (*(REGType32v *)0x4000364)
+#define reg_G3X_FOG_TABLE_1_L (*(REGType16v *)0x4000364)
+#define reg_G3X_FOG_TABLE_1_H (*(REGType16v *)0x4000366)
+#define reg_G3X_FOG_TABLE_2 (*(REGType32v *)0x4000368)
+#define reg_G3X_FOG_TABLE_2_L (*(REGType16v *)0x4000368)
+#define reg_G3X_FOG_TABLE_2_H (*(REGType16v *)0x400036a)
+#define reg_G3X_FOG_TABLE_3 (*(REGType32v *)0x400036c)
+#define reg_G3X_FOG_TABLE_3_L (*(REGType16v *)0x400036c)
+#define reg_G3X_FOG_TABLE_3_H (*(REGType16v *)0x400036e)
+#define reg_G3X_FOG_TABLE_4 (*(REGType32v *)0x4000370)
+#define reg_G3X_FOG_TABLE_4_L (*(REGType16v *)0x4000370)
+#define reg_G3X_FOG_TABLE_4_H (*(REGType16v *)0x4000372)
+#define reg_G3X_FOG_TABLE_5 (*(REGType32v *)0x4000374)
+#define reg_G3X_FOG_TABLE_5_L (*(REGType16v *)0x4000374)
+#define reg_G3X_FOG_TABLE_5_H (*(REGType16v *)0x4000376)
+#define reg_G3X_FOG_TABLE_6 (*(REGType32v *)0x4000378)
+#define reg_G3X_FOG_TABLE_6_L (*(REGType16v *)0x4000378)
+#define reg_G3X_FOG_TABLE_6_H (*(REGType16v *)0x400037a)
+#define reg_G3X_FOG_TABLE_7 (*(REGType32v *)0x400037c)
+#define reg_G3X_FOG_TABLE_7_L (*(REGType16v *)0x400037c)
+#define reg_G3X_FOG_TABLE_7_H (*(REGType16v *)0x400037e)
+#define reg_G3X_TOON_TABLE_0 (*(REGType32v *)0x4000380)
+#define reg_G3X_TOON_TABLE_0_L (*(REGType16v *)0x4000380)
+#define reg_G3X_TOON_TABLE_0_H (*(REGType16v *)0x4000382)
+#define reg_G3X_TOON_TABLE_1 (*(REGType32v *)0x4000384)
+#define reg_G3X_TOON_TABLE_1_L (*(REGType16v *)0x4000384)
+#define reg_G3X_TOON_TABLE_1_H (*(REGType16v *)0x4000386)
+#define reg_G3X_TOON_TABLE_2 (*(REGType32v *)0x4000388)
+#define reg_G3X_TOON_TABLE_2_L (*(REGType16v *)0x4000388)
+#define reg_G3X_TOON_TABLE_2_H (*(REGType16v *)0x400038a)
+#define reg_G3X_TOON_TABLE_3 (*(REGType32v *)0x400038c)
+#define reg_G3X_TOON_TABLE_3_L (*(REGType16v *)0x400038c)
+#define reg_G3X_TOON_TABLE_3_H (*(REGType16v *)0x400038e)
+#define reg_G3X_TOON_TABLE_4 (*(REGType32v *)0x4000390)
+#define reg_G3X_TOON_TABLE_4_L (*(REGType16v *)0x4000390)
+#define reg_G3X_TOON_TABLE_4_H (*(REGType16v *)0x4000392)
+#define reg_G3X_TOON_TABLE_5 (*(REGType32v *)0x4000394)
+#define reg_G3X_TOON_TABLE_5_L (*(REGType16v *)0x4000394)
+#define reg_G3X_TOON_TABLE_5_H (*(REGType16v *)0x4000396)
+#define reg_G3X_TOON_TABLE_7 (*(REGType32v *)0x400039c)
+#define reg_G3X_TOON_TABLE_7_L (*(REGType16v *)0x400039c)
+#define reg_G3X_TOON_TABLE_7_H (*(REGType16v *)0x400039e)
+#define reg_G3X_TOON_TABLE_8 (*(REGType32v *)0x40003a0)
+#define reg_G3X_TOON_TABLE_8_L (*(REGType16v *)0x40003a0)
+#define reg_G3X_TOON_TABLE_8_H (*(REGType16v *)0x40003a2)
+#define reg_G3X_TOON_TABLE_9 (*(REGType32v *)0x40003a4)
+#define reg_G3X_TOON_TABLE_9_L (*(REGType16v *)0x40003a4)
+#define reg_G3X_TOON_TABLE_9_H (*(REGType16v *)0x40003a6)
+#define reg_G3X_TOON_TABLE_10 (*(REGType32v *)0x40003a8)
+#define reg_G3X_TOON_TABLE_10_L (*(REGType16v *)0x40003a8)
+#define reg_G3X_TOON_TABLE_10_H (*(REGType16v *)0x40003aa)
+#define reg_G3X_TOON_TABLE_11 (*(REGType32v *)0x40003ac)
+#define reg_G3X_TOON_TABLE_11_L (*(REGType16v *)0x40003ac)
+#define reg_G3X_TOON_TABLE_11_H (*(REGType16v *)0x40003ae)
+#define reg_G3X_TOON_TABLE_12 (*(REGType32v *)0x40003b0)
+#define reg_G3X_TOON_TABLE_12_L (*(REGType16v *)0x40003b0)
+#define reg_G3X_TOON_TABLE_12_H (*(REGType16v *)0x40003b2)
+#define reg_G3X_TOON_TABLE_13 (*(REGType32v *)0x40003b4)
+#define reg_G3X_TOON_TABLE_13_L (*(REGType16v *)0x40003b4)
+#define reg_G3X_TOON_TABLE_13_H (*(REGType16v *)0x40003b6)
+#define reg_G3X_TOON_TABLE_14 (*(REGType32v *)0x40003b8)
+#define reg_G3X_TOON_TABLE_14_L (*(REGType16v *)0x40003b8)
+#define reg_G3X_TOON_TABLE_14_H (*(REGType16v *)0x40003ba)
+#define reg_G3X_TOON_TABLE_15 (*(REGType32v *)0x40003bc)
+#define reg_G3X_TOON_TABLE_15_L (*(REGType16v *)0x40003bc)
+#define reg_G3X_TOON_TABLE_15_H (*(REGType16v *)0x40003be)
+#define reg_G3X_GXFIFO (*(REGType32v *)0x4000400)
+
+#define reg_G3_MTX_MODE (*(REGType32v *)0x4000440)
+#define reg_G3_MTX_PUSH (*(REGType32v *)0x4000444)
+#define reg_G3_MTX_POP (*(REGType32v *)0x4000448)
+#define reg_G3_MTX_STORE (*(REGType32v *)0x400044c)
+#define reg_G3_MTX_RESTORE (*(REGType32v *)0x4000450)
+#define reg_G3_MTX_IDENTITY (*(REGType32v *)0x4000454)
+#define reg_G3_MTX_LOAD_4x4 (*(REGType32v *)0x4000458)
+#define reg_G3_MTX_LOAD_4x3 (*(REGType32v *)0x400045c)
+#define reg_G3_MTX_MULT_4x4 (*(REGType32v *)0x4000460)
+#define reg_G3_MTX_MULT_4x3 (*(REGType32v *)0x4000464)
+#define reg_G3_MTX_MULT_3x3 (*(REGType32v *)0x4000468)
+#define reg_G3_MTX_SCALE (*(REGType32v *)0x400046c)
+#define reg_G3_MTX_TRANS (*(REGType32v *)0x4000470)
+#define reg_G3_COLOR (*(REGType32v *)0x4000480)
+#define reg_G3_NORMAL (*(REGType32v *)0x4000484)
+#define reg_G3_TEXCOORD (*(REGType32v *)0x4000488)
+#define reg_G3_VTX_16 (*(REGType32v *)0x400048c)
+#define reg_G3_VTX_10 (*(REGType32v *)0x4000490)
+#define reg_G3_VTX_XY (*(REGType32v *)0x4000494)
+#define reg_G3_VTX_XZ (*(REGType32v *)0x4000498)
+#define reg_G3_VTX_YZ (*(REGType32v *)0x400049c)
+#define reg_G3_VTX_DIFF (*(REGType32v *)0x40004a0)
+#define reg_G3_POLYGON_ATTR (*(REGType32v *)0x40004a4)
+#define reg_G3_TEXIMAGE_PARAM (*(REGType32v *)0x40004a8)
+#define reg_G3_TEXPLTT_BASE (*(REGType32v *)0x40004ac)
+#define reg_G3_DIF_AMB (*(REGType32v *)0x40004c0)
+#define reg_G3_SPE_EMI (*(REGType32v *)0x40004c4)
+#define reg_G3_LIGHT_VECTOR (*(REGType32v *)0x40004c8)
+#define reg_G3_LIGHT_COLOR (*(REGType32v *)0x40004cc)
+#define reg_G3_SHININESS (*(REGType32v *)0x40004d0)
+#define reg_G3_BEGIN_VTXS (*(REGType32v *)0x4000500)
+#define reg_G3_END_VTXS (*(REGType32v *)0x4000504)
+#define reg_G3_SWAP_BUFFERS (*(REGType32v *)0x4000540)
+#define reg_G3_VIEWPORT (*(REGType32v *)0x4000580)
+#define reg_G3_BOX_TEST (*(REGType32v *)0x40005c0)
+#define reg_G3_POS_TEST (*(REGType32v *)0x40005c4)
+#define reg_G3_VEC_TEST (*(REGType32v *)0x40005c8)
+
+#define reg_G3X_GXSTAT (*(REGType32v *)0x4000600)
+#define reg_G3X_LISTRAM_COUNT (*(REGType16v *)0x4000604)
+#define reg_G3X_VTXRAM_COUNT (*(REGType16v *)0x4000606)
+#define reg_G3X_DISP_1DOT_DEPTH (*(REGType16v *)0x4000610)
+#define reg_G3X_POS_RESULT_X (*(const REGType32v *)0x4000620)
+#define reg_G3X_POS_RESULT_Y (*(const REGType32v *)0x4000624)
+#define reg_G3X_POS_RESULT_Z (*(const REGType32v *)0x4000628)
+#define reg_G3X_POS_RESULT_W (*(const REGType32v *)0x400062c)
+#define reg_G3X_VEC_RESULT_X (*(const REGType16v *)0x4000630)
+#define reg_G3X_VEC_RESULT_Y (*(const REGType16v *)0x4000632)
+#define reg_G3X_VEC_RESULT_Z (*(const REGType16v *)0x4000634)
+#define reg_G3X_CLIPMTX_RESULT_0 (*(const REGType32v *)0x4000640)
+#define reg_G3X_CLIPMTX_RESULT_1 (*(const REGType32v *)0x4000644)
+#define reg_G3X_CLIPMTX_RESULT_2 (*(const REGType32v *)0x4000648)
+#define reg_G3X_CLIPMTX_RESULT_3 (*(const REGType32v *)0x400064c)
+#define reg_G3X_CLIPMTX_RESULT_4 (*(const REGType32v *)0x4000650)
+#define reg_G3X_CLIPMTX_RESULT_5 (*(const REGType32v *)0x4000654)
+#define reg_G3X_CLIPMTX_RESULT_6 (*(const REGType32v *)0x4000658)
+#define reg_G3X_CLIPMTX_RESULT_7 (*(const REGType32v *)0x400065c)
+#define reg_G3X_CLIPMTX_RESULT_8 (*(const REGType32v *)0x4000660)
+#define reg_G3X_CLIPMTX_RESULT_9 (*(const REGType32v *)0x4000664)
+#define reg_G3X_CLIPMTX_RESULT_10 (*(const REGType32v *)0x4000668)
+#define reg_G3X_CLIPMTX_RESULT_11 (*(const REGType32v *)0x400066c)
+#define reg_G3X_CLIPMTX_RESULT_12 (*(const REGType32v *)0x4000670)
+#define reg_G3X_CLIPMTX_RESULT_13 (*(const REGType32v *)0x4000674)
+#define reg_G3X_CLIPMTX_RESULT_14 (*(const REGType32v *)0x4000678)
+#define reg_G3X_CLIPMTX_RESULT_15 (*(const REGType32v *)0x400067c)
+#define reg_G3X_VECMTX_RESULT_0 (*(const REGType32v *)0x4000680)
+#define reg_G3X_VECMTX_RESULT_1 (*(const REGType32v *)0x4000684)
+#define reg_G3X_VECMTX_RESULT_2 (*(const REGType32v *)0x4000688)
+#define reg_G3X_VECMTX_RESULT_3 (*(const REGType32v *)0x400068c)
+#define reg_G3X_VECMTX_RESULT_4 (*(const REGType32v *)0x4000690)
+#define reg_G3X_VECMTX_RESULT_5 (*(const REGType32v *)0x4000694)
+#define reg_G3X_VECMTX_RESULT_6 (*(const REGType32v *)0x4000698)
+#define reg_G3X_VECMTX_RESULT_7 (*(const REGType32v *)0x400069c)
+#define reg_G3X_VECMTX_RESULT_8 (*(const REGType32v *)0x40006a0)
+
+#define reg_GXS_DB_DISPCNT (*(REGType32v *)0x4001000)
+
+#define reg_G2S_DB_BG0CNT (*(REGType16v *)0x4001008)
+#define reg_G2S_DB_BG1CNT (*(REGType16v *)0x400100a)
+#define reg_G2S_DB_BG2CNT (*(REGType16v *)0x400100c)
+#define reg_G2S_DB_BG3CNT (*(REGType16v *)0x400100e)
+#define reg_G2S_DB_BG0OFS (*(REGType32v *)0x4001010)
+#define reg_G2S_DB_BG0HOFS (*(REGType16v *)0x4001010)
+#define reg_G2S_DB_BG0VOFS (*(REGType16v *)0x4001012)
+#define reg_G2S_DB_BG1OFS (*(REGType32v *)0x4001014)
+#define reg_G2S_DB_BG1HOFS (*(REGType16v *)0x4001014)
+#define reg_G2S_DB_BG1VOFS (*(REGType16v *)0x4001016)
+#define reg_G2S_DB_BG2OFS (*(REGType32v *)0x4001018)
+#define reg_G2S_DB_BG2HOFS (*(REGType16v *)0x4001018)
+#define reg_G2S_DB_BG2VOFS (*(REGType16v *)0x400101a)
+#define reg_G2S_DB_BG3OFS (*(REGType32v *)0x400101c)
+#define reg_G2S_DB_BG3HOFS (*(REGType16v *)0x400101c)
+#define reg_G2S_DB_BG3VOFS (*(REGType16v *)0x400101e)
+#define reg_G2S_DB_BG2PA (*(REGType16v *)0x4001020)
+#define reg_G2S_DB_BG2PB (*(REGType16v *)0x4001022)
+#define reg_G2S_DB_BG2PC (*(REGType16v *)0x4001024)
+#define reg_G2S_DB_BG2PD (*(REGType16v *)0x4001026)
+#define reg_G2S_DB_BG2X (*(REGType32v *)0x4001028)
+#define reg_G2S_DB_BG2Y (*(REGType32v *)0x400102c)
+#define reg_G2S_DB_BG3PA (*(REGType16v *)0x4001030)
+#define reg_G2S_DB_BG3PB (*(REGType16v *)0x4001032)
+#define reg_G2S_DB_BG3PC (*(REGType16v *)0x4001034)
+#define reg_G2S_DB_BG3PD (*(REGType16v *)0x4001036)
+#define reg_G2S_DB_BG3X (*(REGType32v *)0x4001038)
+#define reg_G2S_DB_BG3Y (*(REGType32v *)0x400103c)
+#define reg_G2S_DB_WIN0H (*(REGType16v *)0x4001040)
+#define reg_G2S_DB_WIN1H (*(REGType16v *)0x4001042)
+#define reg_G2S_DB_WIN0V (*(REGType16v *)0x4001044)
+#define reg_G2S_DB_WIN1V (*(REGType16v *)0x4001046)
+#define reg_G2S_DB_WININ (*(REGType16v *)0x4001048)
+#define reg_G2S_DB_WINOUT (*(REGType16v *)0x400104a)
+#define reg_G2S_DB_MOSAIC (*(REGType16v *)0x400104c)
+#define reg_G2S_DB_BLDCNT (*(REGType16v *)0x4001050)
+#define reg_G2S_DB_BLDALPHA (*(REGType16v *)0x4001052)
+#define reg_G2S_DB_BLDY (*(REGType16v *)0x4001054)
+
+#define reg_GXS_DB_MASTER_BRIGHT (*(REGType16v *)0x400106c)
+
+#define reg_PXI_RECV_FIFO (*(REGType32v *)0x4100000)
+
+#define reg_MI_MCD1 (*(REGType32v *)0x4100010)
+
+#define REG_PAD_KEYINPUT_L_SHIFT 9
+#define REG_PAD_KEYINPUT_L_SIZE 1
+#define REG_PAD_KEYINPUT_L_MASK 0x0200
+
+#define REG_PAD_KEYINPUT_R_SHIFT 8
+#define REG_PAD_KEYINPUT_R_SIZE 1
+#define REG_PAD_KEYINPUT_R_MASK 0x0100
+
+#define REG_PAD_KEYINPUT_DOWN_SHIFT 7
+#define REG_PAD_KEYINPUT_DOWN_SIZE 1
+#define REG_PAD_KEYINPUT_DOWN_MASK 0x0080
+
+#define REG_PAD_KEYINPUT_UP_SHIFT 6
+#define REG_PAD_KEYINPUT_UP_SIZE 1
+#define REG_PAD_KEYINPUT_UP_MASK 0x0040
+
+#define REG_PAD_KEYINPUT_LEFT_SHIFT 5
+#define REG_PAD_KEYINPUT_LEFT_SIZE 1
+#define REG_PAD_KEYINPUT_LEFT_MASK 0x0020
+
+#define REG_PAD_KEYINPUT_RIGHT_SHIFT 4
+#define REG_PAD_KEYINPUT_RIGHT_SIZE 1
+#define REG_PAD_KEYINPUT_RIGHT_MASK 0x0010
+
+#define REG_PAD_KEYINPUT_START_SHIFT 3
+#define REG_PAD_KEYINPUT_START_SIZE 1
+#define REG_PAD_KEYINPUT_START_MASK 0x0008
+
+#define REG_PAD_KEYINPUT_SEL_SHIFT 2
+#define REG_PAD_KEYINPUT_SEL_SIZE 1
+#define REG_PAD_KEYINPUT_SEL_MASK 0x0004
+
+#define REG_PAD_KEYINPUT_B_SHIFT 1
+#define REG_PAD_KEYINPUT_B_SIZE 1
+#define REG_PAD_KEYINPUT_B_MASK 0x0002
+
+#define REG_PAD_KEYINPUT_A_SHIFT 0
+#define REG_PAD_KEYINPUT_A_SIZE 1
+#define REG_PAD_KEYINPUT_A_MASK 0x0001
+
+#ifndef SDK_ASM
+#define REG_PAD_KEYINPUT_FIELD( l, r, down, up, left, right, start, sel, b, a ) \
+ (u16)( \
+ ((u32)(l) << REG_PAD_KEYINPUT_L_SHIFT) | \
+ ((u32)(r) << REG_PAD_KEYINPUT_R_SHIFT) | \
+ ((u32)(down) << REG_PAD_KEYINPUT_DOWN_SHIFT) | \
+ ((u32)(up) << REG_PAD_KEYINPUT_UP_SHIFT) | \
+ ((u32)(left) << REG_PAD_KEYINPUT_LEFT_SHIFT) | \
+ ((u32)(right) << REG_PAD_KEYINPUT_RIGHT_SHIFT) | \
+ ((u32)(start) << REG_PAD_KEYINPUT_START_SHIFT) | \
+ ((u32)(sel) << REG_PAD_KEYINPUT_SEL_SHIFT) | \
+ ((u32)(b) << REG_PAD_KEYINPUT_B_SHIFT) | \
+ ((u32)(a) << REG_PAD_KEYINPUT_A_SHIFT))
+#endif
+
+#define REG_PAD_KEYCNT_LOGIC_SHIFT 15
+#define REG_PAD_KEYCNT_LOGIC_SIZE 1
+#define REG_PAD_KEYCNT_LOGIC_MASK 0x8000
+
+#define REG_PAD_KEYCNT_INTR_SHIFT 14
+#define REG_PAD_KEYCNT_INTR_SIZE 1
+#define REG_PAD_KEYCNT_INTR_MASK 0x4000
+
+#define REG_PAD_KEYCNT_L_SHIFT 9
+#define REG_PAD_KEYCNT_L_SIZE 1
+#define REG_PAD_KEYCNT_L_MASK 0x0200
+
+#define REG_PAD_KEYCNT_R_SHIFT 8
+#define REG_PAD_KEYCNT_R_SIZE 1
+#define REG_PAD_KEYCNT_R_MASK 0x0100
+
+#define REG_PAD_KEYCNT_DOWN_SHIFT 7
+#define REG_PAD_KEYCNT_DOWN_SIZE 1
+#define REG_PAD_KEYCNT_DOWN_MASK 0x0080
+
+#define REG_PAD_KEYCNT_UP_SHIFT 6
+#define REG_PAD_KEYCNT_UP_SIZE 1
+#define REG_PAD_KEYCNT_UP_MASK 0x0040
+
+#define REG_PAD_KEYCNT_LEFT_SHIFT 5
+#define REG_PAD_KEYCNT_LEFT_SIZE 1
+#define REG_PAD_KEYCNT_LEFT_MASK 0x0020
+
+#define REG_PAD_KEYCNT_RIGHT_SHIFT 4
+#define REG_PAD_KEYCNT_RIGHT_SIZE 1
+#define REG_PAD_KEYCNT_RIGHT_MASK 0x0010
+
+#define REG_PAD_KEYCNT_START_SHIFT 3
+#define REG_PAD_KEYCNT_START_SIZE 1
+#define REG_PAD_KEYCNT_START_MASK 0x0008
+
+#define REG_PAD_KEYCNT_SEL_SHIFT 2
+#define REG_PAD_KEYCNT_SEL_SIZE 1
+#define REG_PAD_KEYCNT_SEL_MASK 0x0004
+
+#define REG_PAD_KEYCNT_B_SHIFT 1
+#define REG_PAD_KEYCNT_B_SIZE 1
+#define REG_PAD_KEYCNT_B_MASK 0x0002
+
+#define REG_PAD_KEYCNT_A_SHIFT 0
+#define REG_PAD_KEYCNT_A_SIZE 1
+#define REG_PAD_KEYCNT_A_MASK 0x0001
+
+#ifndef SDK_ASM
+#define REG_PAD_KEYCNT_FIELD( logic, intr, l, r, down, up, left, right, start, sel, b, a ) \
+ (u16)( \
+ ((u32)(logic) << REG_PAD_KEYCNT_LOGIC_SHIFT) | \
+ ((u32)(intr) << REG_PAD_KEYCNT_INTR_SHIFT) | \
+ ((u32)(l) << REG_PAD_KEYCNT_L_SHIFT) | \
+ ((u32)(r) << REG_PAD_KEYCNT_R_SHIFT) | \
+ ((u32)(down) << REG_PAD_KEYCNT_DOWN_SHIFT) | \
+ ((u32)(up) << REG_PAD_KEYCNT_UP_SHIFT) | \
+ ((u32)(left) << REG_PAD_KEYCNT_LEFT_SHIFT) | \
+ ((u32)(right) << REG_PAD_KEYCNT_RIGHT_SHIFT) | \
+ ((u32)(start) << REG_PAD_KEYCNT_START_SHIFT) | \
+ ((u32)(sel) << REG_PAD_KEYCNT_SEL_SHIFT) | \
+ ((u32)(b) << REG_PAD_KEYCNT_B_SHIFT) | \
+ ((u32)(a) << REG_PAD_KEYCNT_A_SHIFT))
+#endif
#endif //POKEDIAMOND_REGISTERS_H
diff --git a/arm9/lib/src/FS_rom.c b/arm9/lib/src/FS_rom.c
index 32f66c10..4160e3b1 100644
--- a/arm9/lib/src/FS_rom.c
+++ b/arm9/lib/src/FS_rom.c
@@ -7,7 +7,11 @@
#include "MB_mb.h"
#include "OS_printf.h"
-u32 fsi_default_dma_no;
+static u32 fsi_default_dma_no;
+s32 fsi_card_lock_id;
+CARDRomRegion fsi_ovt9;
+CARDRomRegion fsi_ovt7;
+FSArchive fsi_arc_rom;
ARM_FUNC void FSi_OnRomReadDone(void * p_arc)
{
diff --git a/arm9/lib/src/FX_cp.c b/arm9/lib/src/FX_cp.c
index 08443dc8..3b6e6c96 100644
--- a/arm9/lib/src/FX_cp.c
+++ b/arm9/lib/src/FX_cp.c
@@ -55,16 +55,16 @@ ARM_FUNC void FX_DivAsync(fx32 numerator, fx32 denominator){
ARM_FUNC fx32 FX_DivS32(fx32 numerator, fx32 denominator){
reg_CP_DIVCNT = 0x0;
- *(REGType32 *)REG_DIV_NUMER_ADDR = (u32)numerator; //32bit write for some reason
+ *(REGType32v *)&reg_CP_DIV_NUMER = (u32)numerator; //32bit write for some reason
reg_CP_DIV_DENOM = (u32)denominator;
while (reg_CP_DIVCNT & 0x8000);
- return *(REGType32 *)REG_DIV_RESULT_ADDR;
+ return *(REGType32v *)&reg_CP_DIV_RESULT;
}
ARM_FUNC fx32 FX_ModS32(fx32 num, fx32 mod){
reg_CP_DIVCNT = 0x0;
- *(REGType32 *)REG_DIV_NUMER_ADDR = (u32)num; //32bit write for some reason
+ *(REGType32v *)&reg_CP_DIV_NUMER = (u32)num; //32bit write for some reason
reg_CP_DIV_DENOM = (u32)mod;
while (reg_CP_DIVCNT & 0x8000);
- return *(REGType32 *)REG_DIVREM_RESULT_ADDR;
+ return *(REGType32v *)&reg_CP_DIVREM_RESULT;
}
diff --git a/arm9/lib/src/OS_interrupt.c b/arm9/lib/src/OS_interrupt.c
index f7a6d005..1fb43821 100644
--- a/arm9/lib/src/OS_interrupt.c
+++ b/arm9/lib/src/OS_interrupt.c
@@ -77,3 +77,13 @@ ARM_FUNC void OSi_EnterDmaCallback(u32 dmaNo, void (*callback) (void *), void *a
OSi_IrqCallbackInfo[dmaNo].enable = OS_EnableIrqMask(mask) & mask;
}
+
+ARM_FUNC void OSi_EnterTimerCallback(u32 timerNo, void (*callback) (void *), void *arg)
+{
+ OSIrqMask mask = 1UL << (timerNo + 3);
+ OSi_IrqCallbackInfo[timerNo + 4].func = callback;
+ OSi_IrqCallbackInfo[timerNo + 4].arg = arg;
+
+ (void)OS_EnableIrqMask(mask);
+ OSi_IrqCallbackInfo[timerNo + 4].enable = TRUE;
+}
diff --git a/arm9/lib/src/OS_printf.c b/arm9/lib/src/OS_printf.c
new file mode 100644
index 00000000..ba484df8
--- /dev/null
+++ b/arm9/lib/src/OS_printf.c
@@ -0,0 +1,1248 @@
+#include "global.h"
+#include "OS_printf.h"
+
+struct printfStr
+{
+ s32 spaceLeft;
+ s8 *stringEnd;
+ s8 *stringStart;
+};
+
+void string_put_char(struct printfStr *dest, s8 value);
+void string_fill_char(struct printfStr *dest, s8 value, s32 count);
+void string_put_string(struct printfStr *dest, const s8 *src, s32 count);
+
+
+#ifndef NONMATCHING
+// c definition is at the bottom of the file
+u64 _ll_udiv(u64 a, u64 b);
+
+ARM_FUNC asm s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args)
+{
+ stmdb sp!, {r4-r11,lr}
+ sub sp, sp, #0x64
+ mov r9, r2
+ str r1, [sp, #0x54]
+ str r0, [sp, #0x5c]
+ str r0, [sp, #0x58]
+ ldrsb r0, [r9, #0x0]
+ str r1, [sp, #0x0]
+ mov r11, r3
+ cmp r0, #0x0
+ beq _020CAD18
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ mov r0, #0x0
+ str r0, [sp, #0x4]
+ mov r0, #0x20
+ str r0, [sp, #0x1c]
+ mov r0, #0x30
+ str r0, [sp, #0x20]
+ mvn r0, #0x0
+ str r0, [sp, #0x8]
+ mov r0, #0x57
+ str r0, [sp, #0x10]
+ mov r0, #0x8
+ str r0, [sp, #0x14]
+ mov r0, #0x37
+ str r0, [sp, #0x18]
+ mov r0, #0x10
+ str r0, [sp, #0x24]
+ mov r0, #0x1
+ str r0, [sp, #0x28]
+ mov r0, #0x2b
+ str r0, [sp, #0x34]
+ mov r0, #0x2d
+ str r0, [sp, #0x30]
+ mov r0, #0x2
+ str r0, [sp, #0x2c]
+_020CA530:
+ ldrsb r1, [r9, #0x0]
+ and r0, r1, #0xff
+ eor r0, r0, #0x20
+ sub r0, r0, #0xa1
+ cmp r0, #0x3c
+ bhs _020CA56C
+ add r0, sp, #0x54
+ bl string_put_char
+ ldrsb r1, [r9, #0x1]!
+ cmp r1, #0x0
+ beq _020CAD0C
+ add r0, sp, #0x54
+ add r9, r9, #0x1
+ bl string_put_char
+ b _020CAD0C
+_020CA56C:
+ cmp r1, #0x25
+ beq _020CA584
+ add r0, sp, #0x54
+ add r9, r9, #0x1
+ bl string_put_char
+ b _020CAD0C
+_020CA584:
+ ldr r6, [sp, #0x4]
+ ldr r5, [sp, #0x8]
+ ldr r2, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ mov r10, r6
+ mov r3, r9
+_020CA59C:
+ ldrsb r4, [r9, #0x1]!
+ cmp r4, #0x20
+ bgt _020CA5B4
+ cmp r4, #0x20
+ beq _020CA5F4
+ b _020CA60C
+_020CA5B4:
+ cmp r4, #0x30
+ bgt _020CA60C
+ cmp r4, #0x2b
+ blt _020CA60C
+ cmp r4, #0x2b
+ beq _020CA5E0
+ cmp r4, #0x2d
+ beq _020CA5FC
+ cmp r4, #0x30
+ beq _020CA604
+ b _020CA60C
+_020CA5E0:
+ ldrsb r1, [r9, #-0x1]
+ cmp r1, #0x20
+ bne _020CA60C
+ orr r6, r6, #0x2
+ b _020CA59C
+_020CA5F4:
+ orr r6, r6, #0x1
+ b _020CA59C
+_020CA5FC:
+ orr r6, r6, #0x8
+ b _020CA59C
+_020CA604:
+ orr r6, r6, #0x10
+ b _020CA59C
+_020CA60C:
+ cmp r4, #0x2a
+ bne _020CA640
+ add r11, r11, #0x4
+ ldr r10, [r11, #-0x4]
+ add r9, r9, #0x1
+ cmp r10, #0x0
+ rsblt r10, r10, #0x0
+ orrlt r6, r6, #0x8
+ b _020CA654
+_020CA630:
+ ldrsb r4, [r9], #0x1
+ mov r1, #0xa
+ mla r1, r10, r1, r4
+ sub r10, r1, #0x30
+_020CA640:
+ ldrsb r1, [r9, #0x0]
+ cmp r1, #0x30
+ blt _020CA654
+ cmp r1, #0x39
+ ble _020CA630
+_020CA654:
+ ldrsb r1, [r9, #0x0]
+ cmp r1, #0x2e
+ bne _020CA6AC
+ ldrsb r1, [r9, #0x1]!
+ ldr r5, [sp, #0x4]
+ cmp r1, #0x2a
+ bne _020CA698
+ add r11, r11, #0x4
+ ldr r5, [r11, #-0x4]
+ add r9, r9, #0x1
+ cmp r5, #0x0
+ ldrlt r5, [sp, #0x8]
+ b _020CA6AC
+_020CA688:
+ ldrsb r4, [r9], #0x1
+ mov r1, #0xa
+ mla r1, r5, r1, r4
+ sub r5, r1, #0x30
+_020CA698:
+ ldrsb r1, [r9, #0x0]
+ cmp r1, #0x30
+ blt _020CA6AC
+ cmp r1, #0x39
+ ble _020CA688
+_020CA6AC:
+ ldrsb r1, [r9, #0x0]
+ cmp r1, #0x68
+ beq _020CA6C4
+ cmp r1, #0x6c
+ beq _020CA6DC
+ b _020CA6F0
+_020CA6C4: // h
+ ldrsb r1, [r9, #0x1]!
+ cmp r1, #0x68
+ orrne r6, r6, #0x40
+ addeq r9, r9, #0x1
+ orreq r6, r6, #0x100
+ b _020CA6F0
+_020CA6DC: // l
+ ldrsb r1, [r9, #0x1]!
+ cmp r1, #0x6c
+ orrne r6, r6, #0x20
+ addeq r9, r9, #0x1
+ orreq r6, r6, #0x80
+_020CA6F0:
+ ldrsb r1, [r9, #0x0]
+ cmp r1, #0x69
+ bgt _020CA740
+ cmp r1, #0x63
+ blt _020CA720
+ cmp r1, #0x63
+ beq _020CA7B4
+ cmp r1, #0x64
+ beq _020CA96C
+ cmp r1, #0x69
+ beq _020CA96C
+ b _020CA950
+_020CA720:
+ cmp r1, #0x25
+ bgt _020CA734
+ cmp r1, #0x25
+ beq _020CA934
+ b _020CA950
+_020CA734:
+ cmp r1, #0x58
+ beq _020CA7A0
+ b _020CA950
+_020CA740:
+ cmp r1, #0x6e
+ bgt _020CA754
+ cmp r1, #0x6e
+ beq _020CA8DC
+ b _020CA950
+_020CA754:
+ sub r1, r1, #0x6f
+ cmp r1, #0x9
+ addls pc, pc, r1, lsl #0x2
+ b _020CA950
+_020CA764:
+ b _020CA78C
+ b _020CA7A8
+ b _020CA950
+ b _020CA950
+ b _020CA828
+ b _020CA950
+ b _020CA798
+ b _020CA950
+ b _020CA950
+ b _020CA964
+_020CA78C:
+ ldr r2, [sp, #0x14]
+ orr r6, r6, #0x1000
+ b _020CA96C
+_020CA798:
+ orr r6, r6, #0x1000
+ b _020CA96C
+_020CA7A0:
+ ldr r0, [sp, #0x18]
+ b _020CA964
+_020CA7A8:
+ orr r6, r6, #0x4
+ ldr r5, [sp, #0x14]
+ b _020CA964
+_020CA7B4:
+ cmp r5, #0x0
+ bge _020CA950
+ ands r0, r6, #0x8
+ add r11, r11, #0x4
+ ldr r4, [r11, #-0x4]
+ beq _020CA7F0
+ mov r0, r4, lsl #0x18
+ mov r1, r0, asr #0x18
+ add r0, sp, #0x54
+ bl string_put_char
+ ldr r1, [sp, #0x1c]
+ sub r2, r10, #0x1
+ add r0, sp, #0x54
+ bl string_fill_char
+ b _020CA820
+_020CA7F0:
+ ands r0, r6, #0x10
+ ldrne r0, [sp, #0x20]
+ sub r2, r10, #0x1
+ ldreq r0, [sp, #0x1c]
+ mov r0, r0, lsl #0x18
+ mov r1, r0, asr #0x18
+ add r0, sp, #0x54
+ bl string_fill_char
+ mov r0, r4, lsl #0x18
+ mov r1, r0, asr #0x18
+ add r0, sp, #0x54
+ bl string_put_char
+_020CA820:
+ add r9, r9, #0x1
+ b _020CAD0C
+_020CA828:
+ add r11, r11, #0x4
+ cmp r5, #0x0
+ ldr r7, [sp, #0x4]
+ ldr r4, [r11, #-0x4]
+ bge _020CA860
+ ldrsb r0, [r4]
+ cmp r0, #0x0
+ beq _020CA874
+_020CA848:
+ add r7, r7, #0x1
+ ldrsb r0, [r4, r7]
+ cmp r0, #0x0
+ bne _020CA848
+ b _020CA874
+_020CA85C:
+ add r7, r7, #0x1
+_020CA860:
+ cmp r7, r5
+ bge _020CA874
+ ldrsb r0, [r4, r7]
+ cmp r0, #0x0
+ bne _020CA85C
+_020CA874:
+ ands r0, r6, #0x8
+ sub r10, r10, r7
+ beq _020CA8A4
+ mov r1, r4
+ mov r2, r7
+ add r0, sp, #0x54
+ bl string_put_string
+ ldr r1, [sp, #0x1C]
+ mov r2, r10
+ add r0, sp, #0x54
+ bl string_fill_char
+ b _020CA8D4
+_020CA8A4:
+ ands r0, r6, #0x10
+ ldrne r0, [sp, #0x20]
+ mov r2, r10
+ ldreq r0, [sp, #0x1C]
+ mov r0, r0, lsl #0x18
+ mov r1, r0, asr #0x18
+ add r0, sp, #0x54
+ bl string_fill_char
+ mov r1, r4
+ mov r2, r7
+ add r0, sp, #0x54
+ bl string_put_string
+_020CA8D4:
+ add r9, r9, #0x1
+ b _020CAD0C
+_020CA8DC:
+ ands r0, r6, #0x100
+ ldr r1, [sp, #0x58]
+ ldr r0, [sp, #0x5c]
+ sub r2, r1, r0
+ bne _020CA92C
+ ands r0, r6, #0x40
+ addne r11, r11, #0x4
+ ldrne r0, [r11, #-0x4]
+ strneh r2, [r0, #0x0]
+ bne _020CA92C
+ ands r0, r6, #0x80
+ addeq r11, r11, #0x4
+ ldreq r0, [r11, #-0x4]
+ streq r2, [r0, #0x0]
+ beq _020CA92C
+ add r11, r11, #0x4
+ ldr r0, [r11, #-0x4]
+ mov r1, r2, asr #0x1f
+ str r2, [r0, #0x0]
+ str r1, [r0, #0x4]
+_020CA92C:
+ add r9, r9, #0x1
+ b _020CAD0C
+_020CA934:
+ add r0, r3, #0x1
+ cmp r0, r9
+ bne _020CA950
+ add r0, sp, #0x54
+ add r9, r9, #0x1
+ bl string_put_char
+ b _020CAD0C
+_020CA950:
+ add r0, sp, #0x54
+ mov r1, r3
+ sub r2, r9, r3
+ bl string_put_string
+ b _020CAD0C
+_020CA964:
+ ldr r2, [sp, #0x24]
+ orr r6, r6, #0x1000
+_020CA96C:
+ ands r1, r6, #0x8
+ bicne r6, r6, #0x10
+ cmp r5, #0x0
+ bicge r6, r6, #0x10
+ ldrlt r5, [sp, #0x28]
+ ldr r7, [sp, #0x4]
+ ands r1, r6, #0x1000
+ beq _020CAA20
+ ands r1, r6, #0x100
+ addne r11, r11, #0x4
+ ldrneb r4, [r11, #-0x4]
+ movne r1, #0x0
+ bne _020CA9D0
+ ands r1, r6, #0x40
+ addne r11, r11, #0x4
+ ldrneh r4, [r11, #-0x4]
+ movne r1, #0x0
+ bne _020CA9D0
+ ands r1, r6, #0x80
+ addne r11, r11, #0x8
+ ldrne r1, [r11, #-0x4]
+ ldrne r4, [r11, #-0x8]
+ addeq r11, r11, #0x4
+ ldreq r4, [r11, #-0x4]
+ moveq r1, #0x0
+_020CA9D0:
+ bic r6, r6, #0x3
+ ands r3, r6, #0x4
+ beq _020CAAD8
+ cmp r2, #0x10
+ bne _020CAA0C
+ mov r3, #0x0
+ cmp r1, r3
+ cmpeq r4, r3
+ beq _020CAAD8
+ ldr r3, [sp, #0x20]
+ ldr r7, [sp, #0x2c]
+ strb r3, [sp, #0x39]
+ add r3, r0, #0x21
+ strb r3, [sp, #0x38]
+ b _020CAAD8
+_020CAA0C:
+ cmp r2, #0x8
+ ldreq r3, [sp, #0x20]
+ ldreq r7, [sp, #0x28]
+ streqb r3, [sp, #0x38]
+ b _020CAAD8
+_020CAA20:
+ ands r1, r6, #0x100
+ addne r11, r11, #0x4
+ ldrnesb r4, [r11, #-0x4]
+ movne r1, r4, asr #0x1f
+ bne _020CAA64
+ ands r1, r6, #0x40
+ addne r11, r11, #0x4
+ ldrnesh r4, [r11, #-0x4]
+ movne r1, r4, asr #0x1f
+ bne _020CAA64
+ ands r1, r6, #0x80
+ addne r11, r11, #0x8
+ ldrne r4, [r11, #-0x8]
+ ldrne r1, [r11, #-0x4]
+ addeq r11, r11, #0x4
+ ldreq r4, [r11, #-0x4]
+ moveq r1, r4, asr #0x1f
+_020CAA64:
+ mov r3, #0x0
+ and r8, r3, #0x0
+ cmp r8, r3
+ and r8, r1, #0x80000000
+ cmpeq r8, r3
+ beq _020CAAA0
+ ldr r7, [sp, #0x30]
+ mvn r4, r4
+ strb r7, [sp, #0x38]
+ mvn r7, r1
+ mov r1, #0x1
+ adds r4, r4, r1
+ adc r1, r7, r3
+ ldr r7, [sp, #0x28]
+ b _020CAAD8
+_020CAAA0:
+ cmp r1, r3
+ cmpeq r4, r3
+ bne _020CAAB4
+ cmp r5, #0x0
+ beq _020CAAD8
+_020CAAB4:
+ ands r3, r6, #0x2
+ ldrne r3, [sp, #0x34]
+ ldrne r7, [sp, #0x28]
+ strneb r3, [sp, #0x38]
+ bne _020CAAD8
+ ands r3, r6, #0x1
+ ldrne r3, [sp, #0x1c]
+ ldrne r7, [sp, #0x28]
+ strneb r3, [sp, #0x38]
+_020CAAD8:
+ cmp r2, #0x8
+ ldr r8, [sp, #0x4]
+ beq _020CAAF8
+ cmp r2, #0xa
+ beq _020CAB40
+ cmp r2, #0x10
+ beq _020CABDC
+ b _020CAC28
+_020CAAF8:
+ mov r0, #0x0
+ cmp r1, r0
+ cmpeq r4, r0
+ beq _020CAC28
+_020CAB08:
+ and r0, r4, #0x7
+ add r3, r0, #0x30
+ add r0, sp, #0x3a
+ strb r3, [r0, r8]
+ mov r4, r4, lsr #0x3
+ mov r2, #0x0
+ mov r0, r1, lsr #0x3
+ orr r4, r4, r1, lsl #0x1d
+ cmp r0, r2
+ cmpeq r4, r2
+ mov r1, r0
+ add r8, r8, #0x1
+ bne _020CAB08
+ b _020CAC28
+_020CAB40:
+ mov r0, #0x0
+ cmp r0, r0
+ cmpeq r1, r0
+ bne _020CAB8C
+ cmp r4, #0x0
+ beq _020CAC28
+_020CAB58:
+ ldr r0, =0xCCCCCCCD
+ umull r1, r0, r4, r0
+ movs r0, r0, lsr #0x3
+ mov r1, #0xa
+ mul r1, r0, r1
+ sub r1, r4, r1
+ mov r4, r0
+ add r1, r1, #0x30
+ add r0, sp, #0x3a
+ strb r1, [r0, r8]
+ add r8, r8, #0x1
+ bne _020CAB58
+ b _020CAC28
+_020CAB8C:
+ cmp r1, r0
+ cmpeq r4, r0
+ beq _020CAC28
+_020CAB98:
+ ldr r2, [sp, #0xc]
+ ldr r3, [sp, #0x4]
+ mov r0, r4
+ bl _ll_udiv
+ mov r3, #0xa
+ umull r3, r12, r0, r3
+ subs r3, r4, r3
+ mov r2, #0x0
+ add r4, r3, #0x30
+ add r3, sp, #0x3a
+ strb r4, [r3, r8]
+ cmp r1, r2
+ cmpeq r0, r2
+ mov r4, r0
+ add r8, r8, #0x1
+ bne _020CAB98
+ b _020CAC28
+_020CABDC:
+ mov r2, #0x0
+ cmp r1, r2
+ cmpeq r4, r2
+ beq _020CAC28
+_020CABEC:
+ and r3, r4, #0xf
+ cmp r3, #0xa
+ mov r4, r4, lsr #0x4
+ addlt r3, r3, #0x30
+ mov r2, r1, lsr #0x4
+ orr r4, r4, r1, lsl #0x1c
+ mov r1, r2
+ addge r3, r3, r0
+ add r2, sp, #0x3a
+ strb r3, [r2, r8]
+ mov r2, #0x0
+ cmp r1, r2
+ add r8, r8, #0x1
+ cmpeq r4, r2
+ bne _020CABEC
+_020CAC28:
+ cmp r7, #0x0
+ ble _020CAC4C
+ ldrsb r0, [sp, #0x38]
+ cmp r0, #0x30
+ ldreq r1, [sp, #0x20]
+ addeq r0, sp, #0x3a
+ streqb r1, [r0, r8]
+ ldreq r7, [sp, #0x4]
+ addeq r8, r8, #0x1
+_020CAC4C:
+ sub r5, r5, r8
+ ands r0, r6, #0x10
+ beq _020CAC68
+ sub r0, r10, r8
+ sub r0, r0, r7
+ cmp r5, r0
+ movlt r5, r0
+_020CAC68:
+ cmp r5, #0x0
+ subgt r10, r10, r5
+ add r0, r7, r8
+ ands r6, r6, #0x8
+ sub r10, r10, r0
+ bne _020CAC90
+ ldr r1, [sp, #0x1c]
+ add r0, sp, #0x54
+ mov r2, r10
+ bl string_fill_char
+_020CAC90:
+ cmp r7, #0x0
+ ble _020CACB8
+ add r0, sp, #0x38
+ add r4, r0, r7
+_020CACA0:
+ ldrsb r1, [r4, #-0x1]!
+ sub r7, r7, #0x1
+ add r0, sp, #0x54
+ bl string_put_char
+_020CACB0:
+ cmp r7, #0x0
+ bgt _020CACA0
+_020CACB8:
+ ldr r1, [sp, #0x20]
+ mov r2, r5
+ add r0, sp, #0x54
+ bl string_fill_char
+ cmp r8, #0x0
+ ble _020CACF0
+ add r0, sp, #0x3A
+ add r4, r0, r8
+_020CACD8:
+ ldrsb r1, [r4, #-0x1]!
+ sub r8, r8, #0x1
+ add r0, sp, #0x54
+ bl string_put_char
+ cmp r8, #0x0
+ bgt _020CACD8
+_020CACF0:
+ cmp r6, #0x0
+ beq _020CAD08
+ ldr r1, [sp, #0x1C]
+ mov r2, r10
+ add r0, sp, #0x54
+ bl string_fill_char
+_020CAD08:
+ add r9, r9, #0x1
+_020CAD0C:
+ ldrsb r0, [r9, #0x0]
+ cmp r0, #0x0
+ bne _020CA530
+_020CAD18:
+ ldr r0, [sp, #0x54]
+ cmp r0, #0x0
+ ldrne r0, [sp, #0x58]
+ movne r1, #0x0
+ strneb r1, [r0, #0x0]
+ bne _020CAD48
+ ldr r0, [sp, #0x0]
+ cmp r0, #0x0
+ ldrne r1, [sp, #0x5c]
+ movne r2, #0x0
+ addne r0, r1, r0
+ strneb r2, [r0, #-0x1]
+_020CAD48:
+ ldr r1, [sp, #0x58]
+ ldr r0, [sp, #0x5c]
+ sub r0, r1, r0
+ add sp, sp, #0x64
+ ldmia sp!, {r4-r11,lr}
+ bx lr
+}
+#endif
+
+ARM_FUNC void string_put_char(struct printfStr *dest, s8 value)
+{
+ if (dest->spaceLeft != 0)
+ {
+ dest->stringEnd[0] = value;
+ dest->spaceLeft--;
+ }
+ dest->stringEnd++;
+}
+
+ARM_FUNC void string_fill_char(struct printfStr *dest, s8 value, s32 count)
+{
+ if (count <= 0)
+ return;
+
+ u32 written = 0;
+ u32 spaceLeft = (u32)dest->spaceLeft;
+ u32 toWrite = spaceLeft > (u32)count ? count : spaceLeft;
+
+ while (written < toWrite)
+ {
+ dest->stringEnd[written] = value;
+ written++;
+ }
+
+ dest->spaceLeft -= toWrite;
+ dest->stringEnd += count; // this is wrong but matching...
+}
+
+ARM_FUNC void string_put_string(struct printfStr *dest, const s8 *src, s32 count)
+{
+ if (count <= 0)
+ return;
+
+ u32 written = 0;
+ u32 spaceLeft = (u32)dest->spaceLeft;
+ u32 toWrite = spaceLeft > (u32)count ? count : spaceLeft;
+
+ while (written < toWrite)
+ {
+ dest->stringEnd[written] = src[written];
+ written++;
+ }
+
+ dest->spaceLeft -= toWrite;
+ dest->stringEnd += count; // this is wrong but matching...
+}
+
+ARM_FUNC s32 OS_SPrintf(s8 *buffer, const s8 *format, ...)
+{
+ void *args = (void *)((u32 *)((u32)&format & ~0x3) + 1); // hack since mwccarm doesn't have <stdarg.h> apparently
+ return OS_VSPrintf(buffer, format, args);
+}
+
+ARM_FUNC s32 OS_VSPrintf(s8 *buffer, const s8 *format, void *args)
+{
+ return OS_VSNPrintf(buffer, 0x7FFFFFFF, format, args);
+}
+
+ARM_FUNC s32 OS_SNPrintf(s8 *buffer, s32 bufsz, const s8 *format, ...)
+{
+ void *args = (void *)((u32 *)((u32)&format & ~0x3) + 1); // hack since mwccarm doesn't have <stdarg.h> apparently
+ return OS_VSNPrintf(buffer, bufsz, format, args);
+}
+
+#ifdef NONMATCHING
+
+struct Unk
+{
+ s32 unk00;
+ s32 unk04;
+ s32 unk08;
+ s32 unk0C;
+ s32 unk10;
+ s32 unk14;
+ s32 unk18;
+ s32 unk1C;
+ s32 unk20;
+ s32 unk24;
+ s32 unk28;
+ s32 unk2C;
+ s32 unk30;
+ s32 unk34;
+ s8 unk38;
+ s8 unk39;
+ s8 unk3A;
+ // not sure about this struct's size or even if it's a single struct
+};
+
+#define va_arg(list, ty) *(ty *)((u32 *)(list = (void *)((u32 *)(list) + 1)) - 1)
+#define va_arg_64(list, sgn) *((sgn##64 *)(list = (void *)((sgn##64 *)(list) + 1)) - 1)
+
+ARM_FUNC s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args)
+{
+ struct printfStr str;
+ struct Unk unk;
+ str.spaceLeft = bufsz;
+ str.stringStart = buffer;
+ str.stringEnd = buffer;
+
+ if (*format != 0)
+ {
+ // these assignments are likely wrong
+ unk.unk04 = 0;
+ unk.unk0C = 10;
+ unk.unk1C = 32;
+ unk.unk20 = 48;
+ unk.unk08 = 0;
+ unk.unk10 = 87;
+ unk.unk14 = 8;
+ unk.unk18 = 55;
+ unk.unk24 = 16;
+ unk.unk28 = 1;
+ unk.unk34 = 43;
+ unk.unk30 = 45;
+ unk.unk2C = 2;
+
+
+ do
+ {
+ s8 c = *format;
+ u32 x = (u8)c;
+
+ // matches:
+ // binary range (hex range) [dec range]
+ // 1000 0001-1001 1111 (0x81-0x9F) [129-159]
+ // 1110 0000-1111 1100 (0xE0-0xFC) [224-252]
+ if ((x ^ 0x20) - 0xa1 < 0x3c)
+ {
+ string_put_char(&str, c);
+ c = *(++format);
+ if (c != 0)
+ {
+ format++;
+ string_put_char(&str, c);
+ }
+ }
+ else if (c != '%')
+ {
+ format++;
+ string_put_char(&str, c);
+ }
+ else
+ {
+ s32 flags = unk.unk04;
+ s32 r5 = unk.unk08;
+ s32 r2 = unk.unk0C;
+ s32 r0 = unk.unk10;
+ s32 r10 = flags;
+ const s8 *r3 = format;
+ s8 r4;
+ while (1)
+ {
+ r4 = *(++format);
+ switch (r4)
+ {
+ case '+':
+ c = *(format - 1);
+ if (c == ' ')
+ goto post_padding;
+ flags |= 0x2;
+ break;
+ case ' ':
+ flags |= 0x1;
+ break;
+ case '-':
+ flags |= 0x8;
+ break;
+ case '0':
+ flags |= 0x10;
+ break;
+ default:
+ goto post_padding;
+ }
+ }
+ post_padding:
+ if (r4 == '*')
+ {
+ u32 v = va_arg(args, u32);
+ format++;
+ if (v < 0)
+ {
+ r10 = -r10;
+ flags |= 0x8;
+ }
+ }
+ else
+ {
+ for (c = *format; c >= '0' && c <= '9'; c = *format)
+ {
+ s8 d = *(format++);
+ r10 = (r10 * 10 + d) - '0';
+ }
+ }
+
+ c = *format;
+ if (c == '.')
+ {
+ c = *(++format);
+ r5 = unk.unk04;
+ if (c == '*')
+ {
+ u32 v = va_arg(args, u32);
+ format++;
+ if (v < 0)
+ {
+ r5 = unk.unk08;
+ }
+ }
+ for (c = *format; c >= '0' && c <= '9'; c = *format)
+ {
+ s8 d = *(format++);
+ r5 = (r5 * 10 + d) - '0';
+ }
+ }
+
+ c = *format;
+ switch (c)
+ {
+ case 'h':
+ c = *format++;
+ if (c != 'h')
+ {
+ flags |= 0x40;
+ format++;
+ flags |= 0x100;
+ }
+ break;
+ case 'l':
+ c = *format++;
+ if (c != 'l')
+ {
+ flags |= 0x20;
+ format++;
+ flags |= 0x80;
+ }
+ break;
+ }
+
+ c = *format;
+ switch (c)
+ {
+ case 'o':
+ r2 = unk.unk14;
+ flags |= 0x1000;
+ break;
+ case 'u':
+ flags |= 0x1000;
+ break;
+ case 'X':
+ r0 = unk.unk18;
+ goto case_x;
+ case 'p':
+ flags |= 0x4;
+ r5 = unk.unk14;
+ case 'c':
+ if ((s32)r5 < 0)
+ {
+ r0 = flags & 0x8;
+ u32 v = va_arg(args, u32);
+ if (r0)
+ {
+ string_put_char(&str, (s8)v);
+ string_fill_char(&str, (s8)unk.unk1C, r10 - 1);
+ }
+ else
+ {
+ r0 = flags & 0x10;
+ if (r0)
+ r0 = unk.unk20;
+ else
+ r0 = unk.unk1C;
+ string_fill_char(&str, (s8)r0, r10 - 1);
+ string_put_char(&str, (s8)v);
+ }
+ format++;
+ }
+ break;
+ case 's':
+ {
+ s8 *v = *(((s8 **)args)++);
+ s32 count = unk.unk04;
+ if (r5 < 0)
+ {
+ while (v[count] != 0)
+ {
+ count++;
+ }
+ }
+ else
+ {
+ while (count < r5 && v[count] != 0)
+ {
+ count++;
+ }
+ }
+ r0 = flags & 0x8;
+ r10 = r10 - count;
+ if (r0)
+ {
+ string_put_string(&str, v, count);
+ string_fill_char(&str, (s8)unk.unk1C, r10);
+ }
+ else
+ {
+ r0 = flags & 0x10;
+ if (r0)
+ r0 = unk.unk20;
+ else
+ r0 = unk.unk1C;
+ string_fill_char(&str, (s8)r0, r10 - 1);
+ string_put_string(&str, v, count);
+ }
+ format++;
+ break;
+ }
+ case 'n':
+ {
+ r0 = flags & 0x100;
+ s32 count = str.stringEnd - str.stringStart;
+ if (!r0)
+ {
+ if (flags & 0x40)
+ {
+ s16 *v = va_arg(args, s16 *);
+ *v = (s16)count;
+ }
+ else if (flags & 0x80)
+ {
+ s64 *v = va_arg(args, s64 *);
+ *v = count;
+ }
+ else
+ {
+ s64 *v = va_arg(args, s64 *);
+ *v = count;
+ }
+ }
+ format++;
+ }
+ case '%':
+ if (r3 + 1 == format)
+ {
+ format++;
+ string_put_char(&str, c);
+ break;
+ }
+ else
+ {
+ string_put_string(&str, r3, format - r3);
+ break;
+ }
+ case 'x':
+ case_x:
+ r2 = unk.unk24;
+ flags |= 0x1000;
+ case 'd':
+ case 'i':
+ if (flags & 0x8)
+ {
+ flags = flags & ~0x10;
+ }
+ if (r5 >= 0)
+ {
+ flags = flags & ~0x10;
+ }
+ else
+ {
+ r5 = unk.unk28;
+ }
+ s32 r7 = unk.unk04;
+ u64 value;
+ if (flags & 0x1000)
+ {
+ if (flags & 0x100)
+ {
+ value = va_arg(args, u8);
+ }
+ else if (flags & 0x40)
+ {
+ value = va_arg(args, u16);
+ }
+ else if (flags & 0x80)
+ {
+ value = va_arg_64(args, u);
+ }
+ else
+ {
+ value = va_arg(args, u32);
+ }
+ flags = flags & ~0x3;
+ if (flags & 0x4)
+ {
+ if (r2 == 0x10)
+ {
+ if (value != 0)
+ {
+ s32 something = unk.unk20;
+ s32 somethingElse = unk.unk2C;
+ unk.unk39 = (s8)something;
+ unk.unk38 = (s8)(something + 0x21);
+ // 0x21 could be 'a'-'A'+1
+ }
+ }
+ else
+ {
+ if (r2 == 0x8)
+ {
+ s32 something = unk.unk20;
+ r7 = unk.unk28;
+ unk.unk38 = (s8)(something);
+ }
+ }
+ }
+ }
+ else
+ {
+ if (flags & 0x100)
+ {
+ s32 x = (s32)va_arg(args, s8);
+ value = (u64)x;
+ }
+ else if (flags & 0x40)
+ {
+ s32 x = (s32)va_arg(args, s16);
+ value = (u64)x;
+ }
+ else if (flags & 0x80)
+ {
+ s64 dWord = va_arg_64(args, s);
+ value = (u64)dWord;
+ }
+ else
+ {
+ s32 x = va_arg(args, s32);
+ value = (u64)value;
+ }
+
+ if (value & 0x8000000000000000)
+ {
+ unk.unk38 = (s8)unk.unk30;
+ value = ~value + 1;
+ r7 = unk.unk28;
+ }
+ else
+ {
+ if (value || r5)
+ {
+ if (flags & 0x2)
+ {
+ r7 = unk.unk28;
+ unk.unk38 = (s8)unk.unk34;
+ }
+ else if (flags & 0x1)
+ {
+ r7 = unk.unk28;
+ unk.unk38 = (s8)unk.unk1C;
+ }
+ }
+ }
+ s32 r8 = flags;
+ switch (r2)
+ {
+ case 8:
+ while (value != 0)
+ {
+ u32 octDig = ((u32)value & 0x7) + '0';
+ s8 *p = &unk.unk3A;
+ p[r8] = (s8)octDig;
+ value = value >> 3;
+ r8++;
+ }
+ break;
+ case 10:
+ if (value >> 32 == 0)
+ {
+ u32 v = (u32)value;
+ while (v)
+ {
+ u32 div10 = v / 10;
+ u32 dig = v - div10;
+ v = div10;
+ s8 *p = &unk.unk3A;
+ p[r8] = (s8)dig;
+ r8++;
+ }
+ }
+ else
+ {
+ while (value)
+ {
+ u64 div10 = value / 10;
+ u32 dig = (u32)(value - div10);
+ value = div10;
+ s8 *p = &unk.unk3A;
+ p[r8] = (s8)dig;
+ r8++;
+ }
+ }
+ break;
+ case 16:
+ while (value != 0)
+ {
+ u32 hexDig = ((u32)value & 0xf);
+ value = value >> 4;
+ if (hexDig < 10)
+ hexDig = hexDig + '0';
+ else
+ hexDig = hexDig + r0;
+ s8 *p = &unk.unk3A;
+ p[r8] = (s8)hexDig;
+ r8++;
+ }
+ break;
+ }
+ if (r7 > 0)
+ {
+ if (unk.unk38 == '0')
+ {
+ s8 *p = &unk.unk3A;
+ p[r8] = (s8)unk.unk20;
+ r7 = flags;
+ r8++;
+ }
+ r5 = r5 - r8;
+ if (flags & 0x10)
+ {
+ if (r5 < r10 - r8 - r7)
+ {
+ r5 = r10 - r8 - r7;
+ }
+ }
+ if (r5 > 0)
+ {
+ r10 = r10 - r5;
+ }
+
+ r10 = r10 - (r7 + r8);
+ flags = flags & 0x8;
+ if (!flags)
+ {
+ string_fill_char(&str, (s8)unk.unk1C, r10);
+ }
+ s8 *x = &unk.unk38 + r7;
+ while (r7 > 0)
+ {
+ s8 ch = *(x--);
+ r7--;
+ string_put_char(&str, ch);
+ }
+ string_fill_char(&str, (s8)unk.unk20, r5);
+ x = &unk.unk3A + r8;
+ while (r8 > 0)
+ {
+ s8 ch = *(x--);
+ r8--;
+ string_put_char(&str, ch);
+ }
+ if (flags)
+ {
+ string_fill_char(&str, (s8)unk.unk1C, r10);
+ }
+ }
+ }
+ format++;
+ break;
+ }
+ if (str.spaceLeft != 0)
+ {
+ *str.stringEnd = 0;
+ }
+ else if (unk.unk00 != 0)
+ {
+ *(str.stringStart + unk.unk00 - 1) = 0;
+ }
+ }
+ } while (*format != 0);
+ }
+
+ if (str.spaceLeft != 0)
+ {
+ *str.stringEnd = 0;
+ }
+ else if (unk.unk00 != 0)
+ {
+ str.stringStart[unk.unk00] = 0;
+ }
+ return str.stringEnd - str.stringStart;
+}
+
+#endif
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/00/asm/module_00_dummy.s b/arm9/modules/00/asm/module_00_dummy.s
index e8a42167..8b137891 100644
--- a/arm9/modules/00/asm/module_00_dummy.s
+++ b/arm9/modules/00/asm/module_00_dummy.s
@@ -1,2 +1 @@
- .section .data
- .space 32
+
diff --git a/arm9/modules/01/src/module_01.c b/arm9/modules/01/src/module_01.c
deleted file mode 100644
index ae2e9d1f..00000000
--- a/arm9/modules/01/src/module_01.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "global.h"
-
-u32 UNK_021D7500[8];
-
-THUMB_FUNC void MOD01_021D74E0(void)
-{
- UNK_021D7500[1]++;
-}
-
-THUMB_FUNC void (*UNK_021D74F0[4])(void) = {
- MOD01_021D74E0
-};
diff --git a/arm9/modules/01/src/module_01.cpp b/arm9/modules/01/src/module_01.cpp
new file mode 100644
index 00000000..9da5f8d5
--- /dev/null
+++ b/arm9/modules/01/src/module_01.cpp
@@ -0,0 +1,11 @@
+#include "global.h"
+#include "FS_overlay.h"
+
+class Unk021D7500 {
+ u32 unk0;
+ u32 unk4;
+public:
+ THUMB_FUNC Unk021D7500() { unk4++; }
+};
+
+static Unk021D7500 UNK_021D7500;
diff --git a/arm9/modules/02/asm/module_02_dummy.s b/arm9/modules/02/asm/module_02_dummy.s
index e8a42167..8b137891 100644
--- a/arm9/modules/02/asm/module_02_dummy.s
+++ b/arm9/modules/02/asm/module_02_dummy.s
@@ -1,2 +1 @@
- .section .data
- .space 32
+
diff --git a/arm9/modules/03/asm/module_03_dummy.s b/arm9/modules/03/asm/module_03_dummy.s
index e8a42167..8b137891 100644
--- a/arm9/modules/03/asm/module_03_dummy.s
+++ b/arm9/modules/03/asm/module_03_dummy.s
@@ -1,2 +1 @@
- .section .data
- .space 32
+
diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s
index 8d1d699b..eb42dcb1 100644
--- a/arm9/modules/04/asm/arm_04.s
+++ b/arm9/modules/04/asm/arm_04.s
@@ -3,8 +3,8 @@
.section .text
.balign 4, 0
- arm_func_start FUN_021D8D18
-FUN_021D8D18: ; 0x021D8D18
+ arm_func_start MOD04_021D8D18
+MOD04_021D8D18: ; 0x021D8D18
stmdb sp!, {r4, lr}
ldr r2, _021D8D58 ; =0x02210468
ldr r1, _021D8D5C ; =0x000013D8
@@ -25,8 +25,8 @@ FUN_021D8D18: ; 0x021D8D18
_021D8D58: .word 0x02210468
_021D8D5C: .word 0x000013D8
- arm_func_start FUN_021D8D60
-FUN_021D8D60: ; 0x021D8D60
+ arm_func_start MOD04_021D8D60
+MOD04_021D8D60: ; 0x021D8D60
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x98
ldr r4, _021D8EE0 ; =0x0221046C
@@ -45,7 +45,7 @@ FUN_021D8D60: ; 0x021D8D60
ldr r1, _021D8EE8 ; =0x0220BF04
ldr r2, _021D8EE4 ; =0x0220BEF8
mov r0, r5
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
beq _021D8E18
add sp, sp, #0x98
@@ -58,7 +58,7 @@ _021D8DC0:
ldr r1, _021D8EE8 ; =0x0220BF04
ldr r2, _021D8EEC ; =0x0220BF0C
mov r0, r5
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x98
movne r0, #8
@@ -69,7 +69,7 @@ _021D8DC0:
ldr r1, _021D8EF0 ; =0x0220BF14
mov r0, r5
mov r2, r6
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x98
movne r0, #8
@@ -77,7 +77,7 @@ _021D8DC0:
_021D8E18:
ldr r1, _021D8EE0 ; =0x0221046C
add r0, sp, #0
- bl FUN_021D9F78
+ bl MOD04_021D9F78
cmp r0, #0
addeq sp, sp, #0x98
moveq r0, #5
@@ -86,7 +86,7 @@ _021D8E18:
add r1, sp, #0
ldr r2, [r0]
mov r0, r5
- bl FUN_021D9C2C
+ bl MOD04_021D9C2C
cmp r0, #0
addeq sp, sp, #0x98
moveq r0, #8
@@ -101,7 +101,7 @@ _021D8E18:
ldr r1, _021D8F00 ; =0x0220BF20
ldr r2, _021D8EFC ; =0x0220BF1C
mov r0, r5
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x98
movne r0, #8
@@ -118,7 +118,7 @@ _021D8E94:
mov r0, r5
mov r2, r4
mov r3, r3, lsl #1
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x98
movne r0, #8
@@ -139,8 +139,8 @@ _021D8EFC: .word 0x0220BF1C
_021D8F00: .word 0x0220BF20
_021D8F04: .word 0x0220BF28
- arm_func_start FUN_021D8F08
-FUN_021D8F08: ; 0x021D8F08
+ arm_func_start MOD04_021D8F08
+MOD04_021D8F08: ; 0x021D8F08
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r0, _021D91BC ; =0x02210468
@@ -150,11 +150,11 @@ FUN_021D8F08: ; 0x021D8F08
add r0, r0, #0x1000
ldr r0, [r0, #0x314]
ldr r1, _021D91C0 ; =0x0220BF34
- bl FUN_021DA388
+ bl MOD04_021DA388
str r0, [sp]
cmp r0, #0
beq _021D8F40
- bl FUN_021DCA84
+ bl MOD04_021DCA84
_021D8F40:
ldr r0, _021D91BC ; =0x02210468
mov r2, #0
@@ -165,7 +165,7 @@ _021D8F40:
add r0, r1, #0x1000
ldr r0, [r0, #0x314]
ldr r1, _021D91C8 ; =0x0220BF3C
- bl FUN_021DA388
+ bl MOD04_021DA388
bl atol
ldr r1, _021D91C4 ; =0x021D74A8
ldr r1, [r1]
@@ -200,7 +200,7 @@ _021D8FC8:
ldr r0, [r0, #0x314]
add r2, r3, r2
mov r3, #4
- bl FUN_021DA334
+ bl MOD04_021DA334
cmp r0, #0
bgt _021D9014
ldr r0, _021D91BC ; =0x02210468
@@ -266,7 +266,7 @@ _021D9014:
add r0, r2, #0x1000
ldr r0, [r0, #0x314]
add r2, r2, r5
- bl FUN_021DA334
+ bl MOD04_021DA334
ldr r0, _021D91BC ; =0x02210468
ldr r2, _021D91EC ; =0x0000101F
ldr r3, [r0]
@@ -275,7 +275,7 @@ _021D9014:
add r2, r3, r2
ldr r0, [r0, #0x314]
mov r3, #0x33
- bl FUN_021DA334
+ bl MOD04_021DA334
ldr r0, _021D91BC ; =0x02210468
ldr r2, _021D91F4 ; =0x0000117F
ldr r3, [r0]
@@ -284,7 +284,7 @@ _021D9014:
add r2, r3, r2
ldr r0, [r0, #0x314]
mov r3, #9
- bl FUN_021DA334
+ bl MOD04_021DA334
ldr r0, _021D91BC ; =0x02210468
ldr r2, _021D91FC ; =0x00001010
ldr r3, [r0]
@@ -293,7 +293,7 @@ _021D9014:
add r2, r3, r2
ldr r0, [r0, #0x314]
mov r3, #0xf
- bl FUN_021DA334
+ bl MOD04_021DA334
ldr r0, _021D91BC ; =0x02210468
ldr r2, _021D9204 ; =0x00001188
ldr r3, [r0]
@@ -302,7 +302,7 @@ _021D9014:
add r2, r3, r2
ldr r0, [r0, #0x314]
mov r3, #0x41
- bl FUN_021DA2F4
+ bl MOD04_021DA2F4
ldr r0, _021D91BC ; =0x02210468
mov r1, #0
ldr r0, [r0]
@@ -342,8 +342,8 @@ _021D9204: .word 0x00001188
_021D9208: .word 0x0220BF7C
_021D920C: .word 0x02210464
- arm_func_start FUN_021D9210
-FUN_021D9210: ; 0x021D9210
+ arm_func_start MOD04_021D9210
+MOD04_021D9210: ; 0x021D9210
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r0, _021D93F4 ; =0x02210468
@@ -353,7 +353,7 @@ FUN_021D9210: ; 0x021D9210
ldr r0, [r2, #0x314]
ldr r5, [r2, #0x20c]
ldr r4, [r2, #0x210]
- bl FUN_021DA3DC
+ bl MOD04_021DA3DC
cmp r0, #1
beq _021D9260
ldr r0, _021D93F4 ; =0x02210468
@@ -365,7 +365,7 @@ FUN_021D9210: ; 0x021D9210
mov r0, #0xe
ldmia sp!, {r4, r5, pc}
_021D9260:
- bl FUN_021D8F08
+ bl MOD04_021D8F08
cmp r0, #0
addne sp, sp, #4
movne r0, #0xe
@@ -485,8 +485,8 @@ _021D940C: .word 0x0220BF98
_021D9410: .word 0x00004E88
_021D9414: .word 0x00004E8C
- arm_func_start FUN_021D9418
-FUN_021D9418: ; 0x021D9418
+ arm_func_start MOD04_021D9418
+MOD04_021D9418: ; 0x021D9418
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14
mov sb, #0
@@ -528,7 +528,7 @@ _021D9470:
cmp r0, #7
bne _021D94C0
mov r0, #0x14
- bl FUN_021D8D18
+ bl MOD04_021D8D18
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021D94C0:
@@ -537,19 +537,19 @@ _021D94C0:
cmp r0, #2
bne _021D94E0
mov r0, #9
- bl FUN_021D8D18
+ bl MOD04_021D8D18
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021D94E0:
cmp r0, #3
bne _021D94F8
mov r0, #0xb
- bl FUN_021D8D18
+ bl MOD04_021D8D18
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021D94F8:
mov r0, #0xd
- bl FUN_021D8D18
+ bl MOD04_021D8D18
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021D9508:
@@ -558,7 +558,7 @@ _021D9508:
str r0, [sp]
b _021D9598
_021D9518:
- bl FUN_021D9210
+ bl MOD04_021D9210
cmp r0, #0x10
beq _021D9544
cmp r0, #0x11
@@ -566,14 +566,14 @@ _021D9518:
cmp r0, #0x15
bne _021D9578
mov r0, #0x15
- bl FUN_021D8D18
+ bl MOD04_021D8D18
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021D9544:
cmp sb, #2
ble _021D955C
mov r0, #0x10
- bl FUN_021D8D18
+ bl MOD04_021D8D18
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021D955C:
@@ -582,13 +582,13 @@ _021D955C:
str r0, [sp]
b _021D9598
_021D956C:
- bl FUN_021D8D18
+ bl MOD04_021D8D18
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021D9578:
cmp sb, #2
blt _021D958C
- bl FUN_021D8D18
+ bl MOD04_021D8D18
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021D958C:
@@ -627,7 +627,7 @@ _021D95D4:
add r0, r1, r0
bl OS_UnlockMutex
mov r0, #0x14
- bl FUN_021D8D18
+ bl MOD04_021D8D18
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021D961C:
@@ -651,12 +651,12 @@ _021D965C:
ldr r0, [r5]
add r0, r0, #0x1000
ldr r0, [r0, #0x314]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r0, [r5]
add r0, r0, r4
bl OS_LockMutex
ldr r0, [sp]
- bl FUN_021D96EC
+ bl MOD04_021D96EC
ldr r1, [r5]
add r1, r1, #0x1000
str r0, [r1, #4]
@@ -678,8 +678,8 @@ _021D96C0:
bl OS_UnlockMutex
b _021D9448
- arm_func_start FUN_021D96CC
-FUN_021D96CC: ; 0x021D96CC
+ arm_func_start MOD04_021D96CC
+MOD04_021D96CC: ; 0x021D96CC
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
@@ -690,8 +690,8 @@ _021D96E0: .word 0x000013D8
_021D96E4: .word 0x00001B34
_021D96E8: .word 0x00004E84
- arm_func_start FUN_021D96EC
-FUN_021D96EC: ; 0x021D96EC
+ arm_func_start MOD04_021D96EC
+MOD04_021D96EC: ; 0x021D96EC
stmdb sp!, {r4, lr}
ldr r1, _021D97E0 ; =0x0220BEB4
mov r4, r0
@@ -711,7 +711,7 @@ FUN_021D96EC: ; 0x021D96EC
ldr r2, [r0, #0x210]
str r2, [r1, #0x10]
ldr r0, [r0, #0x314]
- bl FUN_021DB608
+ bl MOD04_021DB608
cmp r0, #0
movne r0, #4
ldmneia sp!, {r4, pc}
@@ -727,7 +727,7 @@ _021D9758:
ldr r0, [r0, #0x314]
add r1, r3, #0x1200
add r2, r3, r2
- bl FUN_021D8D60
+ bl MOD04_021D8D60
ldr r2, _021D97E8 ; =0x02210468
ldr r1, [r2]
add r1, r1, #0x1000
@@ -739,7 +739,7 @@ _021D9758:
movne r0, #4
ldmneia sp!, {r4, pc}
ldr r0, [r0, #0x314]
- bl FUN_021DB570
+ bl MOD04_021DB570
cmp r0, #0
movne r0, #4
ldmneia sp!, {r4, pc}
@@ -751,7 +751,7 @@ _021D9758:
sub r1, r0, #1
add r0, r2, #0x1000
ldr r0, [r0, #0x314]
- bl FUN_021DB4A4
+ bl MOD04_021DB4A4
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
@@ -762,8 +762,8 @@ _021D97EC: .word 0x0221046C
_021D97F0: .word 0x000011CC
_021D97F4: .word 0x021D3498
- arm_func_start FUN_021D97F8
-FUN_021D97F8: ; 0x021D97F8
+ arm_func_start MOD04_021D97F8
+MOD04_021D97F8: ; 0x021D97F8
stmdb sp!, {r4, lr}
ldr r1, _021D9874 ; =0x02210468
mov r4, r0
@@ -806,8 +806,8 @@ _021D9880: .word 0x00007530
_021D9884: .word 0x00005206
_021D9888: .word 0x00004E84
- arm_func_start FUN_021D988C
-FUN_021D988C: ; 0x021D988C
+ arm_func_start MOD04_021D988C
+MOD04_021D988C: ; 0x021D988C
stmdb sp!, {r4, lr}
ldr r0, _021D98D4 ; =0x02210468
ldr r1, [r0]
@@ -830,8 +830,8 @@ FUN_021D988C: ; 0x021D988C
_021D98D4: .word 0x02210468
_021D98D8: .word 0x000013D8
- arm_func_start FUN_021D98DC
-FUN_021D98DC: ; 0x021D98DC
+ arm_func_start MOD04_021D98DC
+MOD04_021D98DC: ; 0x021D98DC
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021D9914 ; =0x02210468
@@ -850,8 +850,8 @@ FUN_021D98DC: ; 0x021D98DC
_021D9914: .word 0x02210468
_021D9918: .word 0x00001318
- arm_func_start FUN_021D991C
-FUN_021D991C: ; 0x021D991C
+ arm_func_start MOD04_021D991C
+MOD04_021D991C: ; 0x021D991C
stmdb sp!, {r4, lr}
ldr r0, _021D996C ; =0x02210468
ldr r0, [r0]
@@ -862,7 +862,7 @@ FUN_021D991C: ; 0x021D991C
ldr r4, [r1, #0x210]
cmp r0, #0
beq _021D9948
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
_021D9948:
ldr r1, _021D996C ; =0x02210468
ldr r0, _021D9970 ; =0x0220BFC4
@@ -877,8 +877,8 @@ _021D9948:
_021D996C: .word 0x02210468
_021D9970: .word 0x0220BFC4
- arm_func_start FUN_021D9974
-FUN_021D9974: ; 0x021D9974
+ arm_func_start MOD04_021D9974
+MOD04_021D9974: ; 0x021D9974
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021D9A0C ; =0x02210468
@@ -904,7 +904,7 @@ FUN_021D9974: ; 0x021D9974
ldr r0, [r0, #0x314]
cmp r0, #0
beq _021D99DC
- bl FUN_021DB440
+ bl MOD04_021DB440
_021D99DC:
ldr r0, _021D9A0C ; =0x02210468
ldr r1, [r0]
@@ -923,8 +923,8 @@ _021D9A0C: .word 0x02210468
_021D9A10: .word 0x000013D8
_021D9A14: .word 0x00001318
- arm_func_start FUN_021D9A18
-FUN_021D9A18: ; 0x021D9A18
+ arm_func_start MOD04_021D9A18
+MOD04_021D9A18: ; 0x021D9A18
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr r1, _021D9ABC ; =0x02210468
@@ -953,7 +953,7 @@ _021D9A74:
ldr r0, _021D9AC4 ; =0x00001318
ldr lr, [r2]
mov r3, #0x1000
- ldr r1, _021D9AC8 ; =FUN_021D9418
+ ldr r1, _021D9AC8 ; =MOD04_021D9418
str r3, [sp]
mov ip, #0x10
add r0, lr, r0
@@ -971,10 +971,10 @@ _021D9A74:
_021D9ABC: .word 0x02210468
_021D9AC0: .word 0x000013D8
_021D9AC4: .word 0x00001318
-_021D9AC8: .word FUN_021D9418
+_021D9AC8: .word MOD04_021D9418
- arm_func_start FUN_021D9ACC
-FUN_021D9ACC: ; 0x021D9ACC
+ arm_func_start MOD04_021D9ACC
+MOD04_021D9ACC: ; 0x021D9ACC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r2, _021D9BFC ; =0x02210468
@@ -1034,7 +1034,7 @@ _021D9B7C:
ldr r1, [r1]
add r1, r1, #0x1000
strb r2, [r1, #0x20b]
- bl FUN_021D96EC
+ bl MOD04_021D96EC
ldr r2, _021D9BFC ; =0x02210468
ldr r1, [r2]
add r1, r1, #0x1000
@@ -1048,7 +1048,7 @@ _021D9B7C:
ldr r0, _021D9C18 ; =0x02210460
mov r1, #0
str r1, [r0]
- bl FUN_021D9A18
+ bl MOD04_021D9A18
mov r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
@@ -1062,16 +1062,16 @@ _021D9C10: .word 0x00004E84
_021D9C14: .word 0x000011CC
_021D9C18: .word 0x02210460
- arm_func_start FUN_021D9C1C
-FUN_021D9C1C: ; 0x021D9C1C
+ arm_func_start MOD04_021D9C1C
+MOD04_021D9C1C: ; 0x021D9C1C
ldr r1, _021D9C28 ; =0x0220BEB4
str r0, [r1]
bx lr
.align 2, 0
_021D9C28: .word 0x0220BEB4
- arm_func_start FUN_021D9C2C
-FUN_021D9C2C: ; 0x021D9C2C
+ arm_func_start MOD04_021D9C2C
+MOD04_021D9C2C: ; 0x021D9C2C
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x28
mov r4, r2
@@ -1090,7 +1090,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F34 ; =0x0220BFF0
mov r0, r6
add r2, sp, #4
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1101,7 +1101,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F38 ; =0x0220BFF8
mov r0, r6
mov r2, r5
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1112,7 +1112,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F3C ; =0x0220C000
mov r0, r6
add r2, r5, #0xe
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1123,7 +1123,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F40 ; =0x0220C008
mov r0, r6
add r2, r5, #0x41
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1134,7 +1134,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F44 ; =0x0220C010
mov r0, r6
add r2, r5, #0x6f
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1145,7 +1145,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F48 ; =0x0220C018
mov r0, r6
add r2, r5, #0x15
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1156,7 +1156,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F4C ; =0x0220C020
mov r0, r6
add r2, r5, #0x1a
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1167,7 +1167,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F50 ; =0x0220C028
mov r0, r6
add r2, r5, #0x1d
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1178,7 +1178,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F54 ; =0x0220C030
mov r0, r6
add r2, r5, #0x1f
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1189,7 +1189,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F58 ; =0x0220C038
mov r0, r6
add r2, r5, #0x2c
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1200,7 +1200,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F5C ; =0x0220C040
mov r0, r6
add r2, r5, #0x2f
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1211,7 +1211,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F60 ; =0x0220C048
mov r0, r6
add r2, r5, #0x34
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1223,7 +1223,7 @@ FUN_021D9C2C: ; 0x021D9C2C
mov r0, r6
add r2, r5, #0x7e
mov r3, r3, lsl #1
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1236,7 +1236,7 @@ FUN_021D9C2C: ; 0x021D9C2C
ldr r1, _021D9F68 ; =0x0220C058
mov r0, r6
add r2, r5, #0x4e
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1252,7 +1252,7 @@ _021D9ED0:
ldr r1, _021D9F70 ; =0x0220C078
add r2, sp, #4
mov r0, r6
- bl FUN_021DAC98
+ bl MOD04_021DAC98
cmp r0, #0
addne sp, sp, #0x28
movne r0, #0
@@ -1260,7 +1260,7 @@ _021D9ED0:
ldr r1, _021D9F74 ; =0x0220C084
mov r0, r6
add r2, r5, #0x15
- bl FUN_021DAC98
+ bl MOD04_021DAC98
cmp r0, #0
moveq r0, #1
movne r0, #0
@@ -1286,8 +1286,8 @@ _021D9F6C: .word 0x0220C060
_021D9F70: .word 0x0220C078
_021D9F74: .word 0x0220C084
- arm_func_start FUN_021D9F78
-FUN_021D9F78: ; 0x021D9F78
+ arm_func_start MOD04_021D9F78
+MOD04_021D9F78: ; 0x021D9F78
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x8c
mov r6, r1
@@ -1435,7 +1435,7 @@ _021DA180:
cmp r6, #6
add r7, r7, #2
blt _021DA180
- bl FUN_021EBAB8
+ bl MOD04_021EBAB8
mov r3, r0
ldr r2, _021DA234 ; =0x0220C0D4
add r0, r4, #0x6f
@@ -1456,7 +1456,7 @@ _021DA180:
_021DA1E8:
mov r0, r5
add r1, r4, #0x72
- bl FUN_021EE5F4
+ bl MOD04_021EE5F4
mov r0, r5
add r1, r4, #0x4e
mov r2, #0x20
@@ -1476,8 +1476,8 @@ _021DA22C: .word 0x0220C0AC
_021DA230: .word 0x0220C0B8
_021DA234: .word 0x0220C0D4
- arm_func_start FUN_021DA238
-FUN_021DA238: ; 0x021DA238
+ arm_func_start MOD04_021DA238
+MOD04_021DA238: ; 0x021DA238
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
mov r4, r0
@@ -1485,12 +1485,12 @@ FUN_021DA238: ; 0x021DA238
bl FUN_02095EC8
add r1, sp, #0
mov r0, r4
- bl FUN_021D9F78
+ bl MOD04_021D9F78
add sp, sp, #0x18
ldmia sp!, {r4, pc}
- arm_func_start FUN_021DA260
-FUN_021DA260: ; 0x021DA260
+ arm_func_start MOD04_021DA260
+MOD04_021DA260: ; 0x021DA260
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
add r0, r0, #0x1000
@@ -1533,12 +1533,12 @@ _021DA2D8:
_021DA2EC: .word 0x0220C110
_021DA2F0: .word 0x0220C12C
- arm_func_start FUN_021DA2F4
-FUN_021DA2F4: ; 0x021DA2F4
+ arm_func_start MOD04_021DA2F4
+MOD04_021DA2F4: ; 0x021DA2F4
stmdb sp!, {r4, r5, r6, lr}
mov r6, r2
mov r5, r3
- bl FUN_021DA388
+ bl MOD04_021DA388
movs r4, r0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
@@ -1552,12 +1552,12 @@ FUN_021DA2F4: ; 0x021DA2F4
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021DA334
-FUN_021DA334: ; 0x021DA334
+ arm_func_start MOD04_021DA334
+MOD04_021DA334: ; 0x021DA334
stmdb sp!, {r4, r5, r6, lr}
mov r6, r2
mov r5, r3
- bl FUN_021DA388
+ bl MOD04_021DA388
movs r4, r0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
@@ -1566,7 +1566,7 @@ FUN_021DA334: ; 0x021DA334
mov r0, r4
mov r2, r6
mov r3, r5
- bl FUN_021DD36C
+ bl MOD04_021DD36C
mvn r1, #0
cmp r0, r1
ldmeqia sp!, {r4, r5, r6, pc}
@@ -1576,8 +1576,8 @@ FUN_021DA334: ; 0x021DA334
strb r1, [r6, r0]
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021DA388
-FUN_021DA388: ; 0x021DA388
+ arm_func_start MOD04_021DA388
+MOD04_021DA388: ; 0x021DA388
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
@@ -1602,8 +1602,8 @@ _021DA3D4:
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021DA3DC
-FUN_021DA3DC: ; 0x021DA3DC
+ arm_func_start MOD04_021DA3DC
+MOD04_021DA3DC: ; 0x021DA3DC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14
ldr r2, _021DA668 ; =0x00001A34
@@ -1648,7 +1648,7 @@ FUN_021DA3DC: ; 0x021DA3DC
mov r0, fp
mov r3, r8
strb r5, [r8, #3]
- bl FUN_021DA68C
+ bl MOD04_021DA68C
cmp r0, #1
addne sp, sp, #0x14
strneb r7, [r8, #3]
@@ -1699,7 +1699,7 @@ _021DA4FC:
strb r6, [r5]
add r1, sp, #8
mov r3, r8
- bl FUN_021DA68C
+ bl MOD04_021DA68C
cmp r0, #1
strneb sl, [r7]
addne sp, sp, #0x14
@@ -1752,7 +1752,7 @@ _021DA5F4:
add r1, sp, #8
mov r3, sb
strneb r5, [r6]
- bl FUN_021DA68C
+ bl MOD04_021DA68C
cmp r0, #1
beq _021DA634
strb r7, [sl]
@@ -1787,8 +1787,8 @@ _021DA680: .word 0x0220C168
_021DA684: .word 0x0220C16C
_021DA688: .word 0x0220C170
- arm_func_start FUN_021DA68C
-FUN_021DA68C: ; 0x021DA68C
+ arm_func_start MOD04_021DA68C
+MOD04_021DA68C: ; 0x021DA68C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r8, r1
ldr r4, [r8, #8]
@@ -1881,8 +1881,8 @@ _021DA7DC: .word 0x0220C194
_021DA7E0: .word 0x0220C1B4
_021DA7E4: .word 0x0220C1D0
- arm_func_start FUN_021DA7E8
-FUN_021DA7E8: ; 0x021DA7E8
+ arm_func_start MOD04_021DA7E8
+MOD04_021DA7E8: ; 0x021DA7E8
stmdb sp!, {r4, r5, r6, lr}
mov r6, r1
mov r5, r0
@@ -1978,8 +1978,8 @@ _021DA944: .word 0x000001BB
_021DA948: .word 0x0220C200
_021DA94C: .word 0x0220C204
- arm_func_start FUN_021DA950
-FUN_021DA950: ; 0x021DA950
+ arm_func_start MOD04_021DA950
+MOD04_021DA950: ; 0x021DA950
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
add r0, r0, #0x1000
@@ -2030,8 +2030,8 @@ FUN_021DA950: ; 0x021DA950
_021DAA08: .word 0x0220C208
_021DAA0C: .word 0x0220C218
- arm_func_start FUN_021DAA10
-FUN_021DAA10: ; 0x021DAA10
+ arm_func_start MOD04_021DAA10
+MOD04_021DAA10: ; 0x021DAA10
stmdb sp!, {r4, lr}
mov r4, r1
ldr r1, [r4]
@@ -2051,8 +2051,8 @@ _021DAA38:
.align 2, 0
_021DAA4C: .word 0x0220C218
- arm_func_start FUN_021DAA50
-FUN_021DAA50: ; 0x021DAA50
+ arm_func_start MOD04_021DAA50
+MOD04_021DAA50: ; 0x021DAA50
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r5, r2
@@ -2083,14 +2083,14 @@ FUN_021DAA50: ; 0x021DAA50
.align 2, 0
_021DAABC: .word 0x0220C22C
- arm_func_start FUN_021DAAC0
-FUN_021DAAC0: ; 0x021DAAC0
+ arm_func_start MOD04_021DAAC0
+MOD04_021DAAC0: ; 0x021DAAC0
ands r1, r0, #0x8000
bicne r0, r0, #0x8000
bx lr
- arm_func_start FUN_021DAACC
-FUN_021DAACC: ; 0x021DAACC
+ arm_func_start MOD04_021DAACC
+MOD04_021DAACC: ; 0x021DAACC
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r2, _021DAB60 ; =0x000019F4
@@ -2109,7 +2109,7 @@ FUN_021DAACC: ; 0x021DAACC
mov r0, r7
mov r1, r4
add r2, r2, #1
- bl FUN_021DA950
+ bl MOD04_021DA950
cmp r0, #0
addeq sp, sp, #4
moveq r0, #1
@@ -2133,8 +2133,8 @@ _021DAB34:
_021DAB60: .word 0x000019F4
_021DAB64: .word 0x0220C240
- arm_func_start FUN_021DAB68
-FUN_021DAB68: ; 0x021DAB68
+ arm_func_start MOD04_021DAB68
+MOD04_021DAB68: ; 0x021DAB68
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov sl, r0
@@ -2156,7 +2156,7 @@ FUN_021DAB68: ; 0x021DAB68
mov r1, r7
mov r3, r2
str fp, [r5, #0x9f0]
- bl FUN_021DD4FC
+ bl MOD04_021DD4FC
mov r5, r0
mov r0, r6
bl strlen
@@ -2175,7 +2175,7 @@ FUN_021DAB68: ; 0x021DAB68
mov r0, sl
mov r1, r4
add r2, r2, #1
- bl FUN_021DA950
+ bl MOD04_021DA950
cmp r0, #0
addeq sp, sp, #4
moveq r0, #1
@@ -2196,7 +2196,7 @@ _021DAC28:
mov r0, r8
sub r3, r3, r2
sub r3, r3, #1
- bl FUN_021DD4FC
+ bl MOD04_021DD4FC
cmp r0, #0
addlt sp, sp, #4
movlt r0, #1
@@ -2214,8 +2214,8 @@ _021DAC8C: .word 0x000019F4
_021DAC90: .word 0x0220C244
_021DAC94: .word 0x0220C248
- arm_func_start FUN_021DAC98
-FUN_021DAC98: ; 0x021DAC98
+ arm_func_start MOD04_021DAC98
+MOD04_021DAC98: ; 0x021DAC98
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov r6, r2
@@ -2244,7 +2244,7 @@ FUN_021DAC98: ; 0x021DAC98
mov r0, r8
mov r1, r5
add r2, r2, #1
- bl FUN_021DA950
+ bl MOD04_021DA950
cmp r0, #0
addeq sp, sp, #4
moveq r0, #1
@@ -2279,8 +2279,8 @@ _021DAD7C: .word 0x000019F4
_021DAD80: .word 0x0220C250
_021DAD84: .word 0x0220C148
- arm_func_start FUN_021DAD88
-FUN_021DAD88: ; 0x021DAD88
+ arm_func_start MOD04_021DAD88
+MOD04_021DAD88: ; 0x021DAD88
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
mov r7, r0
@@ -2308,7 +2308,7 @@ FUN_021DAD88: ; 0x021DAD88
add r2, r1, #0x400
add r1, r7, r0
mov r0, r7
- bl FUN_021DAA50
+ bl MOD04_021DAA50
cmp r0, #1
addne sp, sp, #8
movne r0, #1
@@ -2332,8 +2332,8 @@ _021DAE40: .word 0x000019F4
_021DAE44: .word 0x0220C25C
_021DAE48: .word 0x0220C2B0
- arm_func_start FUN_021DAE4C
-FUN_021DAE4C: ; 0x021DAE4C
+ arm_func_start MOD04_021DAE4C
+MOD04_021DAE4C: ; 0x021DAE4C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r5, r0
@@ -2344,15 +2344,15 @@ FUN_021DAE4C: ; 0x021DAE4C
ldr r1, _021DAF00 ; =0x00001A34
mov r2, #0x20
add r1, r5, r1
- bl FUN_021DA260
+ bl MOD04_021DA260
ldr r1, _021DAF04 ; =0x00001A04
mov r0, r5
add r1, r5, r1
- bl FUN_021DAA10
+ bl MOD04_021DAA10
ldr r1, _021DAF08 ; =0x000019F4
mov r0, r5
add r1, r5, r1
- bl FUN_021DAA10
+ bl MOD04_021DAA10
add r0, r5, #0x1000
ldr r1, [r0, #0x9c8]
cmp r1, #0
@@ -2389,8 +2389,8 @@ _021DAF0C: .word 0x0220C2D0
_021DAF10: .word 0x0220C2E8
_021DAF14: .word 0x00001C10
- arm_func_start FUN_021DAF18
-FUN_021DAF18: ; 0x021DAF18
+ arm_func_start MOD04_021DAF18
+MOD04_021DAF18: ; 0x021DAF18
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
mov sl, r0
@@ -2406,9 +2406,9 @@ FUN_021DAF18: ; 0x021DAF18
add r7, sl, r2
mov r5, #0
ldrle fp, _021DB230 ; =0x0000EA60
- bl FUN_021DB35C
+ bl MOD04_021DB35C
mov r0, sl
- bl FUN_021DB348
+ bl MOD04_021DB348
movs r4, r0
addeq r0, sl, #0x1000
moveq r1, #2
@@ -2424,7 +2424,7 @@ FUN_021DAF18: ; 0x021DAF18
mov r1, #0
mov r2, #0x830
bl MI_CpuFill8
- ldr r1, _021DB234 ; =FUN_021DAAC0
+ ldr r1, _021DB234 ; =MOD04_021DAAC0
add r0, sl, #0x1000
str r1, [r6, #0x810]
ldr r1, [r0, #0x124]
@@ -2467,7 +2467,7 @@ _021DB004:
ble _021DB20C
bl FUN_0209BF4C
mov r0, sl
- bl FUN_021DB3B8
+ bl MOD04_021DB3B8
cmp r0, #0
addeq r0, sl, #0x1000
moveq r1, #7
@@ -2535,7 +2535,7 @@ _021DB088:
b _021DB150
_021DB144:
mov r0, sl
- bl FUN_021DB248
+ bl MOD04_021DB248
mov r5, r0
_021DB150:
ldr r0, [sp, #8]
@@ -2572,7 +2572,7 @@ _021DB188:
strhi r1, [r0, #0x20]
bhi _021DB20C
mov r0, sl
- bl FUN_021DB3B8
+ bl MOD04_021DB3B8
cmp r0, #0
bne _021DB088
add r0, sl, #0x1000
@@ -2601,14 +2601,14 @@ _021DB224: .word 0x00001134
_021DB228: .word 0x00001198
_021DB22C: .word 0x00001A04
_021DB230: .word 0x0000EA60
-_021DB234: .word FUN_021DAAC0
+_021DB234: .word MOD04_021DAAC0
_021DB238: .word 0x0220C0E4
_021DB23C: .word 0x021C8F04
_021DB240: .word 0x00001A14
_021DB244: .word 0x000082EA
- arm_func_start FUN_021DB248
-FUN_021DB248: ; 0x021DB248
+ arm_func_start MOD04_021DB248
+MOD04_021DB248: ; 0x021DB248
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r5, r0
@@ -2675,8 +2675,8 @@ _021DB33C: .word 0x00001A14
_021DB340: .word 0x0220C300
_021DB344: .word 0x0220C164
- arm_func_start FUN_021DB348
-FUN_021DB348: ; 0x021DB348
+ arm_func_start MOD04_021DB348
+MOD04_021DB348: ; 0x021DB348
ldr ip, _021DB358 ; =0x0209AB80
add r0, r0, #0x1000
ldr r0, [r0, #0x124]
@@ -2684,8 +2684,8 @@ FUN_021DB348: ; 0x021DB348
.align 2, 0
_021DB358: .word 0x0209AB80
- arm_func_start FUN_021DB35C
-FUN_021DB35C: ; 0x021DB35C
+ arm_func_start MOD04_021DB35C
+MOD04_021DB35C: ; 0x021DB35C
stmdb sp!, {r4, lr}
ldr r1, _021DB3AC ; =0x00001134
mov r4, r0
@@ -2711,8 +2711,8 @@ _021DB3AC: .word 0x00001134
_021DB3B0: .word 0x00000B68
_021DB3B4: .word 0x000005EA
- arm_func_start FUN_021DB3B8
-FUN_021DB3B8: ; 0x021DB3B8
+ arm_func_start MOD04_021DB3B8
+MOD04_021DB3B8: ; 0x021DB3B8
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x1000
@@ -2751,8 +2751,8 @@ _021DB41C:
_021DB438: .word 0x000019D0
_021DB43C: .word 0x00001BF4
- arm_func_start FUN_021DB440
-FUN_021DB440: ; 0x021DB440
+ arm_func_start MOD04_021DB440
+MOD04_021DB440: ; 0x021DB440
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x1000
@@ -2780,8 +2780,8 @@ FUN_021DB440: ; 0x021DB440
_021DB49C: .word 0x00001BF4
_021DB4A0: .word 0x00001B34
- arm_func_start FUN_021DB4A4
-FUN_021DB4A4: ; 0x021DB4A4
+ arm_func_start MOD04_021DB4A4
+MOD04_021DB4A4: ; 0x021DB4A4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
ldr r3, _021DB55C ; =0x00001BF4
@@ -2818,7 +2818,7 @@ _021DB524:
ldr r0, _021DB568 ; =0x00001B34
mov r1, #0x1000
str r1, [sp]
- ldr r1, _021DB56C ; =FUN_021DAF18
+ ldr r1, _021DB56C ; =MOD04_021DAF18
mov r2, r5
add r0, r5, r0
add r3, r5, #0x1000
@@ -2834,16 +2834,16 @@ _021DB55C: .word 0x00001BF4
_021DB560: .word 0x00001A14
_021DB564: .word 0x02210480
_021DB568: .word 0x00001B34
-_021DB56C: .word FUN_021DAF18
+_021DB56C: .word MOD04_021DAF18
- arm_func_start FUN_021DB570
-FUN_021DB570: ; 0x021DB570
+ arm_func_start MOD04_021DB570
+MOD04_021DB570: ; 0x021DB570
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r1, _021DB5F4 ; =0x0220C314
ldr r2, _021DB5F8 ; =0x0220C320
mov r4, r0
- bl FUN_021DAC98
+ bl MOD04_021DAC98
cmp r0, #0
addne sp, sp, #8
movne r0, #1
@@ -2863,7 +2863,7 @@ FUN_021DB570: ; 0x021DB570
ldr r1, _021DB604 ; =0x0220C32C
add r2, sp, #0
mov r0, r4
- bl FUN_021DAC98
+ bl MOD04_021DAC98
cmp r0, #0
addne sp, sp, #8
movne r0, #1
@@ -2879,8 +2879,8 @@ _021DB5FC: .word 0x0220C148
_021DB600: .word 0x0220C328
_021DB604: .word 0x0220C32C
- arm_func_start FUN_021DB608
-FUN_021DB608: ; 0x021DB608
+ arm_func_start MOD04_021DB608
+MOD04_021DB608: ; 0x021DB608
stmdb sp!, {r4, r5, r6, lr}
mov r5, r1
ldr r2, _021DB714 ; =0x00001C10
@@ -2923,7 +2923,7 @@ FUN_021DB608: ; 0x021DB608
ldr r2, [r2, #0xc]
mov r0, r6
add r1, r6, r1
- bl FUN_021DAA50
+ bl MOD04_021DAA50
cmp r0, #0
addeq r1, r6, #0x1000
moveq r0, #1
@@ -2931,14 +2931,14 @@ FUN_021DB608: ; 0x021DB608
ldmeqia sp!, {r4, r5, r6, pc}
ldr r1, [r5]
mov r0, r6
- bl FUN_021DA7E8
+ bl MOD04_021DA7E8
cmp r0, #0
addeq r1, r6, #0x1000
moveq r0, #1
streq r0, [r1, #0x20]
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
- bl FUN_021DAD88
+ bl MOD04_021DAD88
add r1, r6, #0x1000
str r0, [r1, #0x20]
ldr r0, [r1, #0x20]
@@ -2957,8 +2957,8 @@ _021DB724: .word 0x0220C354
_021DB728: .word 0x000005EA
_021DB72C: .word 0x00001A04
- arm_func_start FUN_021DB730
-FUN_021DB730: ; 0x021DB730
+ arm_func_start MOD04_021DB730
+MOD04_021DB730: ; 0x021DB730
stmdb sp!, {r4, lr}
ldr r2, _021DB770 ; =0x02210484
ldr r1, _021DB774 ; =0x000011DC
@@ -2979,8 +2979,8 @@ FUN_021DB730: ; 0x021DB730
_021DB770: .word 0x02210484
_021DB774: .word 0x000011DC
- arm_func_start FUN_021DB778
-FUN_021DB778: ; 0x021DB778
+ arm_func_start MOD04_021DB778
+MOD04_021DB778: ; 0x021DB778
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x2d4
ldr r5, _021DC670 ; =0x02210484
@@ -3046,25 +3046,25 @@ _021DB830:
str r0, [r1, #4]
ldr r0, [r4]
ldr r1, _021DC678 ; =0x02210494
- bl FUN_021DB608
+ bl MOD04_021DB608
cmp r0, #0
beq _021DB89C
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #1
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DB89C:
ldr r0, [r4]
- bl FUN_021DB570
+ bl MOD04_021DB570
cmp r0, #0
beq _021DB8C4
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #1
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DB8C4:
ldr r0, _021DC684 ; =0x021D3498
@@ -3072,7 +3072,7 @@ _021DB8C4:
bl OS_GetThreadPriority
sub r1, r0, #1
ldr r0, [r4]
- bl FUN_021DB4A4
+ bl MOD04_021DB4A4
ldr r1, [r4]
add r0, r1, #0x1000
ldr r0, [r0, #0xba0]
@@ -3099,25 +3099,25 @@ _021DB91C:
_021DB930:
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #3
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DB948:
ldr r1, [sp, #0x1c]
- bl FUN_021DA3DC
+ bl MOD04_021DA3DC
cmp r0, #1
beq _021DB970
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #2
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DB970:
ldr r0, [r4]
ldr r1, _021DC68C ; =0x0220C418
- bl FUN_021DA388
+ bl MOD04_021DA388
bl atol
mov sl, r0
ldr r0, _021DC690 ; =0x021D74A8
@@ -3125,7 +3125,7 @@ _021DB970:
cmp r0, #0x22
bne _021DB9A0
mov r0, #2
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DB9A0:
cmp sl, #0xc8
@@ -3144,7 +3144,7 @@ _021DB9A0:
mvn r2, #5
str r2, [r0, #4]
ldr r0, [r1]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r2, _021DC678 ; =0x02210494
ldr r0, _021DC69C ; =0x0220BEB4
ldr r3, _021DC67C ; =0x00004E20
@@ -3166,33 +3166,33 @@ _021DB9A0:
ldr r0, _021DC674 ; =0x02210490
ldr r1, _021DC678 ; =0x02210494
ldr r0, [r0]
- bl FUN_021DB608
+ bl MOD04_021DB608
cmp r0, #0
beq _021DBA5C
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #1
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBA5C:
add r0, sp, #0x240
- bl FUN_021DA238
+ bl MOD04_021DA238
cmp r0, #0
beq _021DBA88
ldr r0, _021DC674 ; =0x02210490
add r1, sp, #0x240
ldr r0, [r0]
mov r2, #1
- bl FUN_021D9C2C
+ bl MOD04_021D9C2C
cmp r0, #0
bne _021DBAA0
_021DBA88:
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #8
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBAA0:
ldr r0, _021DC674 ; =0x02210490
@@ -3200,7 +3200,7 @@ _021DBAA0:
ldr r0, [r0]
ldr r2, _021DC6A8 ; =0x0220C44C
mov r3, #7
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
bne _021DBAF8
ldr r0, _021DC670 ; =0x02210484
@@ -3214,15 +3214,15 @@ _021DBAA0:
ldr r0, [r1]
ldr r1, _021DC6AC ; =0x0220C454
mov r2, r4
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
beq _021DBB10
_021DBAF8:
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #8
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBB10:
ldr r1, _021DC670 ; =0x02210484
@@ -3239,14 +3239,14 @@ _021DBB10:
add r0, r0, #0x1000
str r2, [r0, #0x118]
ldr r0, [r1]
- bl FUN_021DB570
+ bl MOD04_021DB570
cmp r0, #0
beq _021DBB6C
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #1
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBB6C:
ldr r0, _021DC684 ; =0x021D3498
@@ -3255,7 +3255,7 @@ _021DBB6C:
ldr r2, _021DC674 ; =0x02210490
sub r1, r0, #1
ldr r0, [r2]
- bl FUN_021DB4A4
+ bl MOD04_021DB4A4
ldr r0, _021DC674 ; =0x02210490
ldr r1, [r0]
add r0, r1, #0x1000
@@ -3284,14 +3284,14 @@ _021DBBD0:
_021DBBE4:
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #3
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBBFC:
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #7
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBC0C:
ldr r0, [r4]
@@ -3299,9 +3299,9 @@ _021DBC0C:
ldr fp, [r1, #0xa04]
cmp fp, #0
bne _021DBC30
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #2
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBC30:
mov r0, fp
@@ -3320,9 +3320,9 @@ _021DBC30:
bne _021DBC80
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #4
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBC80:
mov r0, fp
@@ -3335,13 +3335,13 @@ _021DBC80:
_021DBC9C:
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #0xa
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBCB4:
ldr r0, [r4]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
add r0, sp, #0x68
bl FUN_02095EC8
ldr r2, [sp, #0x68]
@@ -3367,18 +3367,18 @@ _021DBCB4:
str fp, [r2, #0x40]
ldr r3, [r3, #0x10c]
str r3, [r2, #0x44]
- bl FUN_021D9ACC
+ bl MOD04_021D9ACC
cmp r0, #0
beq _021DBD38
mov r0, #5
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBD38:
- bl FUN_021D98DC
- bl FUN_021D988C
+ bl MOD04_021D98DC
+ bl MOD04_021D988C
cmp r0, #0x15
beq _021DBDE8
- bl FUN_021D988C
+ bl MOD04_021D988C
cmp r0, #9
bne _021DBD6C
ldr r0, _021DC670 ; =0x02210484
@@ -3389,7 +3389,7 @@ _021DBD38:
b _021DBDD8
_021DBD6C:
add r0, sp, #0x7c
- bl FUN_021D97F8
+ bl MOD04_021D97F8
ldr r0, _021DC6BC ; =0x02210488
ldr r0, [r0]
cmp r0, #1
@@ -3398,7 +3398,7 @@ _021DBD6C:
ldr r0, _021DC6C0 ; =0xFFFFA4FA
cmp r1, r0
beq _021DBDA0
- bl FUN_021D988C
+ bl MOD04_021D988C
cmp r0, #0xb
bne _021DBDC4
_021DBDA0:
@@ -3407,9 +3407,9 @@ _021DBDA0:
ldr r0, [r0]
add r0, r0, #0x1000
str r1, [r0, #4]
- bl FUN_021D991C
+ bl MOD04_021D991C
mov r0, #0xb
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBDC4:
ldr r0, _021DC670 ; =0x02210484
@@ -3418,12 +3418,12 @@ _021DBDC4:
add r0, r0, #0x1000
str r1, [r0, #4]
_021DBDD8:
- bl FUN_021D991C
+ bl MOD04_021D991C
mov r0, #6
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBDE8:
- bl FUN_021D991C
+ bl MOD04_021D991C
_021DBDEC:
cmp sl, #0xc8
bne _021DBE14
@@ -3433,7 +3433,7 @@ _021DBDEC:
mov r0, #0xb
add r1, r1, #0x1000
str r2, [r1, #4]
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBE14:
ldr r0, [r5]
@@ -3460,39 +3460,39 @@ _021DBE14:
ldr r1, _021DC678 ; =0x02210494
strne r6, [r0, #0x14]
ldr r0, [r4]
- bl FUN_021DB608
+ bl MOD04_021DB608
cmp r0, #0
beq _021DBE98
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #1
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBE98:
add r0, sp, #0x240
- bl FUN_021DA238
+ bl MOD04_021DA238
cmp r0, #0
beq _021DBEC0
ldr r0, [r4]
add r1, sp, #0x240
mov r2, r6
- bl FUN_021D9C2C
+ bl MOD04_021D9C2C
cmp r0, #0
bne _021DBED8
_021DBEC0:
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #8
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBED8:
ldr r0, [r4]
ldr r1, _021DC6A4 ; =0x0220C444
ldr r2, _021DC6C8 ; =0x0220C484
ldr r3, [sp, #0x30]
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
bne _021DBF24
ldr r0, [r5]
@@ -3504,15 +3504,15 @@ _021DBED8:
ldr r0, [r4]
ldr r1, _021DC6CC ; =0x0220C48C
mov r2, sl
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
beq _021DBF3C
_021DBF24:
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #8
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBF3C:
ldr r1, [r5]
@@ -3526,14 +3526,14 @@ _021DBF3C:
ldr r0, [sp, #0x38]
str r0, [r1, #0x114]
ldr r0, [r4]
- bl FUN_021DB570
+ bl MOD04_021DB570
cmp r0, #0
beq _021DBF8C
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #1
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DBF8C:
ldr r0, _021DC684 ; =0x021D3498
@@ -3541,7 +3541,7 @@ _021DBF8C:
bl OS_GetThreadPriority
sub r1, r0, #1
ldr r0, [r4]
- bl FUN_021DB4A4
+ bl MOD04_021DB4A4
ldr r1, [r4]
add r0, r1, #0x1000
ldr r0, [r0, #0xba0]
@@ -3562,7 +3562,7 @@ _021DBFC4:
beq _021DC058
b _021DC040
_021DBFEC:
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r0, _021DC6BC ; =0x02210488
ldr r0, [r0]
cmp r0, #1
@@ -3573,11 +3573,11 @@ _021DBFEC:
mov r0, #0xb
add r1, r1, #0x1000
str r2, [r1, #4]
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC020:
mov r0, #3
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC02C:
ldr r0, _021DC670 ; =0x02210484
@@ -3588,25 +3588,25 @@ _021DC02C:
_021DC040:
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #3
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC058:
ldr r1, [sp, #0x3c]
- bl FUN_021DA3DC
+ bl MOD04_021DA3DC
cmp r0, #1
beq _021DC080
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #2
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC080:
ldr r0, [r4]
ldr r1, _021DC68C ; =0x0220C418
- bl FUN_021DA388
+ bl MOD04_021DA388
bl atol
mov sl, r0
ldr r0, _021DC690 ; =0x021D74A8
@@ -3615,16 +3615,16 @@ _021DC080:
bne _021DC0BC
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #2
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC0BC:
cmp sl, #0xc8
beq _021DC118
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r0, _021DC6BC ; =0x02210488
ldr r0, [r0]
cmp r0, #1
@@ -3638,25 +3638,25 @@ _021DC0BC:
mov r0, #0xb
add r1, r1, #0x1000
str r2, [r1, #4]
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC10C:
mov r0, #2
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC118:
ldr r0, [r4]
ldr r1, _021DC6D4 ; =0x0220C494
ldr r3, [sp, #0x40]
add r2, sp, #0x64
- bl FUN_021DA334
+ bl MOD04_021DA334
cmp r0, #0
bgt _021DC14C
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #9
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC14C:
add r0, sp, #0x64
@@ -3667,9 +3667,9 @@ _021DC14C:
bne _021DC17C
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #9
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC17C:
ldr r1, _021DC6BC ; =0x02210488
@@ -3684,53 +3684,53 @@ _021DC17C:
mov r0, #0xb
add r1, r1, #0x1000
str r2, [r1, #4]
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC1B4:
cmp r0, #0x64
blt _021DC1D4
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #6
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC1D4:
ldr r2, [sp, #0x44]
ldr r0, [r4]
ldr r1, _021DC6D8 ; =0x0220C4A0
mov r3, r2
- bl FUN_021DA334
+ bl MOD04_021DA334
mov fp, r0
cmp fp, #0
bgt _021DC20C
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #9
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC20C:
ldr r2, [sp, #0x48]
ldr r0, [r4]
ldr r1, _021DC6DC ; =0x0220C4A4
mov r3, r2
- bl FUN_021DA334
+ bl MOD04_021DA334
str r0, [sp, #4]
cmp r0, #0
bgt _021DC244
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #9
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC244:
ldr r2, [sp, #0x4c]
ldr r0, [r4]
ldr r1, _021DC6E0 ; =0x0220C4AC
mov r3, r2
- bl FUN_021DA334
+ bl MOD04_021DA334
mov sl, r0
ldr r0, _021DC6E4 ; =0x0220C3CC
add r1, fp, #1
@@ -3740,9 +3740,9 @@ _021DC244:
bne _021DC28C
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #4
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC28C:
ldr r1, [sp, #4]
@@ -3753,9 +3753,9 @@ _021DC28C:
bne _021DC2BC
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #4
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC2BC:
cmp sl, #0
@@ -3768,23 +3768,23 @@ _021DC2BC:
bne _021DC2F4
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #4
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC2F4:
ldr r0, [r4]
ldr r1, _021DC6D8 ; =0x0220C4A0
ldr r2, [sp]
add r3, fp, #1
- bl FUN_021DA334
+ bl MOD04_021DA334
cmp r0, #0
bge _021DC328
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #9
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC328:
ldr r1, [sp, #4]
@@ -3795,14 +3795,14 @@ _021DC328:
ldr r0, [r4]
ldr r1, _021DC6DC ; =0x0220C4A4
mov r2, r7
- bl FUN_021DA334
+ bl MOD04_021DA334
cmp r0, #0
bge _021DC36C
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #9
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC36C:
ldr r1, [sp, #0x54]
@@ -3814,14 +3814,14 @@ _021DC36C:
ldr r1, _021DC6E0 ; =0x0220C4AC
ldr r2, [sp, #8]
add r3, sl, #1
- bl FUN_021DA334
+ bl MOD04_021DA334
cmp r0, #0
bge _021DC3B4
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #9
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC3B4:
ldr r2, [sp, #0x58]
@@ -3835,9 +3835,9 @@ _021DC3B4:
bne _021DC3F0
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #9
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC3F0:
mov r1, #0x3e8
@@ -3847,7 +3847,7 @@ _021DC3F0:
movgt fp, r0
_021DC404:
ldr r0, [r4]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r0, [r5]
ldr r1, _021DC678 ; =0x02210494
add r2, r0, #0x1000
@@ -3865,37 +3865,37 @@ _021DC404:
ldr r2, _021DC6F4 ; =0x0001D4C0
str r2, [r0, #0x18]
ldr r0, [r4]
- bl FUN_021DB608
+ bl MOD04_021DB608
cmp r0, #0
beq _021DC474
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #1
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC474:
ldr r0, [r4]
mov r1, r7
- bl FUN_021DAACC
+ bl MOD04_021DAACC
cmp r0, #0
beq _021DC4A0
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #8
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC4A0:
ldr r0, [r4]
- bl FUN_021DB570
+ bl MOD04_021DB570
cmp r0, #0
beq _021DC4C8
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #1
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC4C8:
ldr r0, _021DC684 ; =0x021D3498
@@ -3903,7 +3903,7 @@ _021DC4C8:
bl OS_GetThreadPriority
sub r1, r0, #1
ldr r0, [r4]
- bl FUN_021DB4A4
+ bl MOD04_021DB4A4
ldr r1, [r4]
add r0, r1, #0x1000
ldr r0, [r0, #0xba0]
@@ -3930,20 +3930,20 @@ _021DC520:
_021DC534:
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #3
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC54C:
mov r1, r6
- bl FUN_021DA3DC
+ bl MOD04_021DA3DC
cmp r0, #1
beq _021DC574
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #2
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC574:
ldr r0, [r4]
@@ -3951,9 +3951,9 @@ _021DC574:
ldr sl, [r1, #0xa04]
cmp sl, #0
bne _021DC598
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #2
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC598:
mov r0, sl
@@ -3972,9 +3972,9 @@ _021DC598:
bne _021DC5E8
ldr r0, _021DC674 ; =0x02210490
ldr r0, [r0]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, #4
- bl FUN_021DB730
+ bl MOD04_021DB730
b _021DC614
_021DC5E8:
mov r0, sl
@@ -3984,7 +3984,7 @@ _021DC5E8:
mov r1, sl
bl strncpy
ldr r0, [r4]
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
mov r0, fp
bl OS_Sleep
b _021DB830
@@ -4054,8 +4054,8 @@ _021DC6FC: .word 0x0220C4B4
_021DC700: .word 0x0220C4C0
_021DC704: .word 0x0220C4CC
- arm_func_start FUN_021DC708
-FUN_021DC708: ; 0x021DC708
+ arm_func_start MOD04_021DC708
+MOD04_021DC708: ; 0x021DC708
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr r0, _021DC788 ; =0x02210484
@@ -4075,7 +4075,7 @@ _021DC740:
ldr r0, _021DC78C ; =0x0000111C
ldr r2, [r1]
mov r3, #0x1000
- ldr r1, _021DC790 ; =FUN_021DB778
+ ldr r1, _021DC790 ; =MOD04_021DB778
str r3, [sp]
mov ip, #0x10
add r0, r2, r0
@@ -4092,10 +4092,10 @@ _021DC740:
.align 2, 0
_021DC788: .word 0x02210484
_021DC78C: .word 0x0000111C
-_021DC790: .word FUN_021DB778
+_021DC790: .word MOD04_021DB778
- arm_func_start FUN_021DC794
-FUN_021DC794: ; 0x021DC794
+ arm_func_start MOD04_021DC794
+MOD04_021DC794: ; 0x021DC794
ldr r0, _021DC7A8 ; =0x02210484
ldr r0, [r0]
add r0, r0, #0x1000
@@ -4104,8 +4104,8 @@ FUN_021DC794: ; 0x021DC794
.align 2, 0
_021DC7A8: .word 0x02210484
- arm_func_start FUN_021DC7AC
-FUN_021DC7AC: ; 0x021DC7AC
+ arm_func_start MOD04_021DC7AC
+MOD04_021DC7AC: ; 0x021DC7AC
stmdb sp!, {r4, lr}
ldr r1, _021DC7E8 ; =0x02210484
ldr r0, _021DC7EC ; =0x000011DC
@@ -4125,8 +4125,8 @@ FUN_021DC7AC: ; 0x021DC7AC
_021DC7E8: .word 0x02210484
_021DC7EC: .word 0x000011DC
- arm_func_start FUN_021DC7F0
-FUN_021DC7F0: ; 0x021DC7F0
+ arm_func_start MOD04_021DC7F0
+MOD04_021DC7F0: ; 0x021DC7F0
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DC864 ; =0x02210484
@@ -4138,9 +4138,9 @@ FUN_021DC7F0: ; 0x021DC7F0
ldr r0, [r0]
cmp r0, #0
beq _021DC820
- bl FUN_021DB440
+ bl MOD04_021DB440
_021DC820:
- bl FUN_021D9974
+ bl MOD04_021D9974
ldr r0, _021DC864 ; =0x02210484
ldr r1, [r0]
add r0, r1, #0x1000
@@ -4163,8 +4163,8 @@ _021DC864: .word 0x02210484
_021DC868: .word 0x02210490
_021DC86C: .word 0x0000111C
- arm_func_start FUN_021DC870
-FUN_021DC870: ; 0x021DC870
+ arm_func_start MOD04_021DC870
+MOD04_021DC870: ; 0x021DC870
stmdb sp!, {r4, lr}
ldr r1, _021DC958 ; =0x02210484
ldr r0, _021DC95C ; =0x02210490
@@ -4174,7 +4174,7 @@ FUN_021DC870: ; 0x021DC870
cmp r0, #0
ldr r4, [r1, #0x10c]
beq _021DC8B8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r1, _021DC95C ; =0x02210490
ldr r0, _021DC960 ; =0x0220C4D8
ldr r1, [r1]
@@ -4184,7 +4184,7 @@ FUN_021DC870: ; 0x021DC870
mov r1, #0
str r1, [r0]
_021DC8B8:
- bl FUN_021D991C
+ bl MOD04_021D991C
ldr r0, _021DC958 ; =0x02210484
ldr r0, [r0]
cmp r0, #0
@@ -4234,8 +4234,8 @@ _021DC964: .word 0x0220C3B0
_021DC968: .word 0x0220C464
_021DC96C: .word 0x0220C4E8
- arm_func_start FUN_021DC970
-FUN_021DC970: ; 0x021DC970
+ arm_func_start MOD04_021DC970
+MOD04_021DC970: ; 0x021DC970
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r1, _021DCA5C ; =0x02210484
@@ -4291,7 +4291,7 @@ FUN_021DC970: ; 0x021DC970
add r0, r2, r0
str r3, [r1]
bl OS_InitMutex
- bl FUN_021DC708
+ bl MOD04_021DC708
mov r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
@@ -4307,8 +4307,8 @@ _021DCA78: .word 0x00001C10
_021DCA7C: .word 0x000011DC
_021DCA80: .word 0x0221048C
- arm_func_start FUN_021DCA84
-FUN_021DCA84: ; 0x021DCA84
+ arm_func_start MOD04_021DCA84
+MOD04_021DCA84: ; 0x021DCA84
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x40
mov r6, r0
@@ -4459,8 +4459,8 @@ _021DCCBC: .word 0x0220C550
_021DCCC0: .word 0x022104FC
_021DCCC4: .word 0x022104F8
- arm_func_start FUN_021DCCC8
-FUN_021DCCC8: ; 0x021DCCC8
+ arm_func_start MOD04_021DCCC8
+MOD04_021DCCC8: ; 0x021DCCC8
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r0, _021DCED4 ; =0x02210504
@@ -4468,31 +4468,31 @@ FUN_021DCCC8: ; 0x021DCCC8
ldr r0, [r0]
add r4, r0, #8
mov r0, r4
- bl FUN_021DA3DC
+ bl MOD04_021DA3DC
cmp r0, #0
bne _021DCD08
ldr r1, _021DCED8 ; =0xFFFF9DF3
mov r0, #0x10
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, pc}
_021DCD08:
ldr r1, _021DCEDC ; =0x0220C5A0
mov r0, r4
- bl FUN_021DA388
+ bl MOD04_021DA388
cmp r0, #0
beq _021DCD20
- bl FUN_021DCA84
+ bl MOD04_021DCA84
_021DCD20:
ldr r1, _021DCEE0 ; =0x0220C5A8
mov r0, r4
- bl FUN_021DA388
+ bl MOD04_021DA388
cmp r0, #0
bne _021DCD4C
ldr r1, _021DCED8 ; =0xFFFF9DF3
mov r0, #0x10
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, pc}
@@ -4505,7 +4505,7 @@ _021DCD4C:
bne _021DCD7C
ldr r1, _021DCED8 ; =0xFFFF9DF3
mov r0, #0x10
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, pc}
@@ -4515,7 +4515,7 @@ _021DCD7C:
ldr r1, _021DCEE8 ; =0xFFFF9E58
mov r0, #0x10
sub r1, r1, r2
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, pc}
@@ -4524,12 +4524,12 @@ _021DCDA0:
add r2, sp, #0
mov r0, r4
mov r3, #4
- bl FUN_021DA334
+ bl MOD04_021DA334
cmp r0, #0
bgt _021DCDD4
ldr r1, _021DCED8 ; =0xFFFF9DF3
mov r0, #0x10
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, pc}
@@ -4543,7 +4543,7 @@ _021DCDD4:
bne _021DCE08
ldr r1, _021DCED8 ; =0xFFFF9DF3
mov r0, #0x10
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, pc}
@@ -4553,7 +4553,7 @@ _021DCE08:
ldr r1, _021DCEF0 ; =0xFFFFA240
mov r0, #0x10
sub r1, r1, r2
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, pc}
@@ -4566,7 +4566,7 @@ _021DCE2C:
ldr r2, [r2, #0xc18]
mov r3, #0x40
add r2, r2, #4
- bl FUN_021DA334
+ bl MOD04_021DA334
ldr r0, _021DCED4 ; =0x02210504
ldr r1, _021DCEF8 ; =0x0220C5C8
ldr r2, [r0]
@@ -4575,12 +4575,12 @@ _021DCE2C:
ldr r2, [r2, #0xc18]
mov r3, #0x12c
add r2, r2, #0x45
- bl FUN_021DA334
+ bl MOD04_021DA334
ldr r1, _021DCEFC ; =0x0220C5D8
add r2, sp, #0
mov r0, r4
mov r3, #1
- bl FUN_021DA334
+ bl MOD04_021DA334
ldrsb r0, [sp]
cmp r0, #0x59
bne _021DCEB0
@@ -4615,8 +4615,8 @@ _021DCEF4: .word 0x0220C5C0
_021DCEF8: .word 0x0220C5C8
_021DCEFC: .word 0x0220C5D8
- arm_func_start FUN_021DCF00
-FUN_021DCF00: ; 0x021DCF00
+ arm_func_start MOD04_021DCF00
+MOD04_021DCF00: ; 0x021DCF00
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DCFF0 ; =0x02210504
@@ -4644,13 +4644,13 @@ FUN_021DCF00: ; 0x021DCF00
beq _021DCFB0
cmp r0, #8
bne _021DCFC4
- bl FUN_021DCCC8
+ bl MOD04_021DCCC8
cmp r0, #0
bne _021DCF94
ldr r0, _021DCFF0 ; =0x02210504
ldr r0, [r0]
add r0, r0, #8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
add sp, sp, #4
mov r0, #4
ldmfd sp!, {pc}
@@ -4658,22 +4658,22 @@ _021DCF94:
ldr r0, _021DCFF0 ; =0x02210504
ldr r0, [r0]
add r0, r0, #8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
add sp, sp, #4
mov r0, #3
ldmfd sp!, {pc}
_021DCFB0:
add r0, r1, #8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
add sp, sp, #4
mov r0, #5
ldmfd sp!, {pc}
_021DCFC4:
add r0, r1, #8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r1, _021DCFF8 ; =0xFFFFA1DB
mov r0, #0x11
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #4
mov r0, #4
ldmfd sp!, {pc}
@@ -4686,8 +4686,8 @@ _021DCFF0: .word 0x02210504
_021DCFF4: .word 0x00001B3C
_021DCFF8: .word 0xFFFFA1DB
- arm_func_start FUN_021DCFFC
-FUN_021DCFFC: ; 0x021DCFFC
+ arm_func_start MOD04_021DCFFC
+MOD04_021DCFFC: ; 0x021DCFFC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xb4
ldr r2, _021DD244 ; =0x02210504
@@ -4736,18 +4736,18 @@ _021DD058:
add r1, sp, #0
add r0, r4, #8
str r2, [sp, #0x18]
- bl FUN_021DB608
+ bl MOD04_021DB608
cmp r0, #0
beq _021DD0DC
ldr r1, _021DD258 ; =0xFFFFA1DC
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #0xb4
mov r0, #0
ldmia sp!, {r4, r5, pc}
_021DD0DC:
add r0, sp, #0x1c
- bl FUN_021DA238
+ bl MOD04_021DA238
cmp r0, #0
beq _021DD10C
ldr r0, _021DD244 ; =0x02210504
@@ -4755,17 +4755,17 @@ _021DD0DC:
ldr r0, [r0]
mov r2, #0
add r0, r0, #8
- bl FUN_021D9C2C
+ bl MOD04_021D9C2C
cmp r0, #0
bne _021DD134
_021DD10C:
ldr r0, _021DD244 ; =0x02210504
ldr r0, [r0]
add r0, r0, #8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r1, _021DD258 ; =0xFFFFA1DC
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #0xb4
mov r0, #0
ldmia sp!, {r4, r5, pc}
@@ -4776,7 +4776,7 @@ _021DD134:
ldr r2, _021DD260 ; =0x0220C60C
add r0, r0, #8
mov r3, #6
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
bne _021DD17C
ldr r0, _021DD244 ; =0x02210504
@@ -4785,17 +4785,17 @@ _021DD134:
mov r2, r5
add r0, r0, #8
mov r3, #4
- bl FUN_021DAB68
+ bl MOD04_021DAB68
cmp r0, #0
beq _021DD1A4
_021DD17C:
ldr r0, _021DD244 ; =0x02210504
ldr r0, [r0]
add r0, r0, #8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r1, _021DD258 ; =0xFFFFA1DC
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #0xb4
mov r0, #0
ldmia sp!, {r4, r5, pc}
@@ -4803,16 +4803,16 @@ _021DD1A4:
ldr r0, _021DD244 ; =0x02210504
ldr r0, [r0]
add r0, r0, #8
- bl FUN_021DB570
+ bl MOD04_021DB570
cmp r0, #0
beq _021DD1E4
ldr r0, _021DD244 ; =0x02210504
ldr r0, [r0]
add r0, r0, #8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r1, _021DD258 ; =0xFFFFA1DC
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #0xb4
mov r0, #0
ldmia sp!, {r4, r5, pc}
@@ -4824,7 +4824,7 @@ _021DD1E4:
ldr r2, [r1]
sub r1, r0, #1
add r0, r2, #8
- bl FUN_021DB4A4
+ bl MOD04_021DB4A4
ldr r0, _021DD244 ; =0x02210504
ldr r1, [r0]
add r0, r1, #0x1000
@@ -4834,10 +4834,10 @@ _021DD1E4:
movne r0, #1
ldmneia sp!, {r4, r5, pc}
add r0, r1, #8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r1, _021DD258 ; =0xFFFFA1DC
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
mov r0, #0
add sp, sp, #0xb4
ldmia sp!, {r4, r5, pc}
@@ -4853,8 +4853,8 @@ _021DD260: .word 0x0220C60C
_021DD264: .word 0x0220C614
_021DD268: .word 0x021D3498
- arm_func_start FUN_021DD26C
-FUN_021DD26C: ; 0x021DD26C
+ arm_func_start MOD04_021DD26C
+MOD04_021DD26C: ; 0x021DD26C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DD2BC ; =0x02210504
@@ -4863,7 +4863,7 @@ FUN_021DD26C: ; 0x021DD26C
addeq sp, sp, #4
ldmeqia sp!, {pc}
add r0, r0, #8
- bl FUN_021DAE4C
+ bl MOD04_021DAE4C
ldr r1, _021DD2BC ; =0x02210504
ldr r0, _021DD2C0 ; =0x0220C618
ldr r1, [r1]
@@ -4879,8 +4879,8 @@ FUN_021DD26C: ; 0x021DD26C
_021DD2BC: .word 0x02210504
_021DD2C0: .word 0x0220C618
- arm_func_start FUN_021DD2C4
-FUN_021DD2C4: ; 0x021DD2C4
+ arm_func_start MOD04_021DD2C4
+MOD04_021DD2C4: ; 0x021DD2C4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r2, _021DD35C ; =0x02210504
@@ -4891,7 +4891,7 @@ FUN_021DD2C4: ; 0x021DD2C4
beq _021DD2FC
ldr r1, _021DD360 ; =0xFFFFA1DC
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, pc}
@@ -4905,7 +4905,7 @@ _021DD2FC:
bne _021DD330
ldr r1, _021DD360 ; =0xFFFFA1DC
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, pc}
@@ -4927,8 +4927,8 @@ _021DD360: .word 0xFFFFA1DC
_021DD364: .word 0x0220C628
_021DD368: .word 0x00001C1C
- arm_func_start FUN_021DD36C
-FUN_021DD36C: ; 0x021DD36C
+ arm_func_start MOD04_021DD36C
+MOD04_021DD36C: ; 0x021DD36C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
ands r4, r1, #3
@@ -5039,8 +5039,8 @@ _021DD4F0:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, pc}
- arm_func_start FUN_021DD4FC
-FUN_021DD4FC: ; 0x021DD4FC
+ arm_func_start MOD04_021DD4FC
+MOD04_021DD4FC: ; 0x021DD4FC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
ldr r4, _021DD69C ; =0xAAAAAAAB
@@ -5157,8 +5157,8 @@ _021DD6A4: .word 0x2AAAAAAB
_021DD6A8: .word 0x00000006
_021DD6AC: .word 0x0220C638
- arm_func_start FUN_021DD6B0
-FUN_021DD6B0: ; 0x021DD6B0
+ arm_func_start MOD04_021DD6B0
+MOD04_021DD6B0: ; 0x021DD6B0
ldr r3, _021DD6CC ; =0x02210508
ldr r2, [r3]
cmp r2, #9
@@ -5170,8 +5170,8 @@ FUN_021DD6B0: ; 0x021DD6B0
_021DD6CC: .word 0x02210508
_021DD6D0: .word 0x0221050C
- arm_func_start FUN_021DD6D4
-FUN_021DD6D4: ; 0x021DD6D4
+ arm_func_start MOD04_021DD6D4
+MOD04_021DD6D4: ; 0x021DD6D4
ldr r0, _021DD6EC ; =0x02210508
ldr r0, [r0]
cmp r0, #0
@@ -5181,8 +5181,8 @@ FUN_021DD6D4: ; 0x021DD6D4
.align 2, 0
_021DD6EC: .word 0x02210508
- arm_func_start FUN_021DD6F0
-FUN_021DD6F0: ; 0x021DD6F0
+ arm_func_start MOD04_021DD6F0
+MOD04_021DD6F0: ; 0x021DD6F0
ldr r1, _021DD710 ; =0x02210508
ldr r0, [r1]
cmp r0, #9
@@ -5195,8 +5195,8 @@ FUN_021DD6F0: ; 0x021DD6F0
_021DD710: .word 0x02210508
_021DD714: .word 0x0221050C
- arm_func_start FUN_021DD718
-FUN_021DD718: ; 0x021DD718
+ arm_func_start MOD04_021DD718
+MOD04_021DD718: ; 0x021DD718
cmp r0, #0
ldrne r2, _021DD800 ; =0x0221050C
ldrne r2, [r2]
@@ -5270,8 +5270,8 @@ _021DD7F4:
_021DD800: .word 0x0221050C
_021DD804: .word 0x02210508
- arm_func_start FUN_021DD808
-FUN_021DD808: ; 0x021DD808
+ arm_func_start MOD04_021DD808
+MOD04_021DD808: ; 0x021DD808
cmp r0, #0
ldrne r1, _021DD824 ; =0x0221050C
ldrne r1, [r1]
@@ -5283,38 +5283,38 @@ FUN_021DD808: ; 0x021DD808
_021DD824: .word 0x0221050C
_021DD828: .word 0x02210508
- arm_func_start FUN_021DD82C
-FUN_021DD82C: ; 0x021DD82C
- ldr ip, _021DD840 ; =FUN_021DD904
+ arm_func_start MOD04_021DD82C
+MOD04_021DD82C: ; 0x021DD82C
+ ldr ip, _021DD840 ; =MOD04_021DD904
mov r1, r0
mov r0, #5
mov r2, #0
bx ip
.align 2, 0
-_021DD840: .word FUN_021DD904
+_021DD840: .word MOD04_021DD904
- arm_func_start FUN_021DD844
-FUN_021DD844: ; 0x021DD844
- ldr ip, _021DD85C ; =FUN_021DD8E8
+ arm_func_start MOD04_021DD844
+MOD04_021DD844: ; 0x021DD844
+ ldr ip, _021DD85C ; =MOD04_021DD8E8
mov r2, r1
mov r1, r0
mov r3, r2
mov r0, #5
bx ip
.align 2, 0
-_021DD85C: .word FUN_021DD8E8
+_021DD85C: .word MOD04_021DD8E8
- arm_func_start FUN_021DD860
-FUN_021DD860: ; 0x021DD860
- ldr ip, _021DD870 ; =FUN_021DD944
+ arm_func_start MOD04_021DD860
+MOD04_021DD860: ; 0x021DD860
+ ldr ip, _021DD870 ; =MOD04_021DD944
mov r1, r0
mov r0, #5
bx ip
.align 2, 0
-_021DD870: .word FUN_021DD944
+_021DD870: .word MOD04_021DD944
- arm_func_start FUN_021DD874
-FUN_021DD874: ; 0x021DD874
+ arm_func_start MOD04_021DD874
+MOD04_021DD874: ; 0x021DD874
stmdb sp!, {r4, r5, r6, r7, r8, lr}
ldr ip, _021DD8E0 ; =0x02210514
mov r4, r2
@@ -5347,18 +5347,18 @@ _021DD8D8:
_021DD8E0: .word 0x02210514
_021DD8E4: .word 0x02210510
- arm_func_start FUN_021DD8E8
-FUN_021DD8E8: ; 0x021DD8E8
+ arm_func_start MOD04_021DD8E8
+MOD04_021DD8E8: ; 0x021DD8E8
stmdb sp!, {lr}
sub sp, sp, #4
mov ip, #0x20
str ip, [sp]
- bl FUN_021DD874
+ bl MOD04_021DD874
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021DD904
-FUN_021DD904: ; 0x021DD904
+ arm_func_start MOD04_021DD904
+MOD04_021DD904: ; 0x021DD904
stmdb sp!, {lr}
sub sp, sp, #4
ldr r3, _021DD920 ; =0x02210510
@@ -5369,8 +5369,8 @@ FUN_021DD904: ; 0x021DD904
.align 2, 0
_021DD920: .word 0x02210510
- arm_func_start FUN_021DD924
-FUN_021DD924: ; 0x021DD924
+ arm_func_start MOD04_021DD924
+MOD04_021DD924: ; 0x021DD924
stmdb sp!, {lr}
sub sp, sp, #4
ldr r3, _021DD940 ; =0x02210514
@@ -5381,8 +5381,8 @@ FUN_021DD924: ; 0x021DD924
.align 2, 0
_021DD940: .word 0x02210514
- arm_func_start FUN_021DD944
-FUN_021DD944: ; 0x021DD944
+ arm_func_start MOD04_021DD944
+MOD04_021DD944: ; 0x021DD944
stmdb sp!, {lr}
sub sp, sp, #4
ldr r3, _021DD964 ; =0x02210514
@@ -5394,8 +5394,8 @@ FUN_021DD944: ; 0x021DD944
.align 2, 0
_021DD964: .word 0x02210514
- arm_func_start FUN_021DD968
-FUN_021DD968: ; 0x021DD968
+ arm_func_start MOD04_021DD968
+MOD04_021DD968: ; 0x021DD968
ldr r3, _021DD97C ; =0x02210514
ldr r2, _021DD980 ; =0x02210510
str r0, [r3]
@@ -5405,23 +5405,23 @@ FUN_021DD968: ; 0x021DD968
_021DD97C: .word 0x02210514
_021DD980: .word 0x02210510
- arm_func_start FUN_021DD984
-FUN_021DD984: ; 0x021DD984
+ arm_func_start MOD04_021DD984
+MOD04_021DD984: ; 0x021DD984
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021DDCE8
- bl FUN_021DDB14
+ bl MOD04_021DDCE8
+ bl MOD04_021DDB14
cmp r0, #0
beq _021DD9CC
- bl FUN_021EBAB8
+ bl MOD04_021EBAB8
mov r2, r0
cmp r2, #0x63
ldr r1, _021DD9D8 ; =0xFFFF2D10
movhi r2, #0x63
mov r0, #8
sub r1, r1, r2
- bl FUN_021DD6B0
- bl FUN_021DDBBC
+ bl MOD04_021DD6B0
+ bl MOD04_021DDBBC
add sp, sp, #4
mov r0, #1
ldmfd sp!, {pc}
@@ -5432,8 +5432,8 @@ _021DD9CC:
.align 2, 0
_021DD9D8: .word 0xFFFF2D10
- arm_func_start FUN_021DD9DC
-FUN_021DD9DC: ; 0x021DD9DC
+ arm_func_start MOD04_021DD9DC
+MOD04_021DD9DC: ; 0x021DD9DC
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x18
mov r1, #0
@@ -5442,12 +5442,12 @@ FUN_021DD9DC: ; 0x021DD9DC
bl MI_CpuFill8
mov r0, #0xff
str r0, [r4, #4]
- bl FUN_021DDC1C
+ bl MOD04_021DDC1C
cmp r0, #4
addne sp, sp, #0x18
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
- bl FUN_021EBAB8
+ bl MOD04_021EBAB8
str r0, [r4]
bl OS_DisableInterrupts
mov r6, r0
@@ -5497,7 +5497,7 @@ _021DDAB0:
mov r2, #0x10
bl MI_CpuFill8
add r0, sp, #2
- bl FUN_021EBA28
+ bl MOD04_021EBA28
cmp r0, #1
bne _021DDAFC
ldrb r1, [sp, #8]
@@ -5514,15 +5514,15 @@ _021DDAFC:
add sp, sp, #0x18
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021DDB08
-FUN_021DDB08: ; 0x021DDB08
+ arm_func_start MOD04_021DDB08
+MOD04_021DDB08: ; 0x021DDB08
ldr ip, _021DDB10 ; =0x020A8B28
bx ip
.align 2, 0
_021DDB10: .word 0x020A8B28
- arm_func_start FUN_021DDB14
-FUN_021DDB14: ; 0x021DDB14
+ arm_func_start MOD04_021DDB14
+MOD04_021DDB14: ; 0x021DDB14
ldr r0, _021DDB3C ; =0x02210518
ldr r0, [r0]
cmp r0, #0
@@ -5537,8 +5537,8 @@ _021DDB34:
.align 2, 0
_021DDB3C: .word 0x02210518
- arm_func_start FUN_021DDB40
-FUN_021DDB40: ; 0x021DDB40
+ arm_func_start MOD04_021DDB40
+MOD04_021DDB40: ; 0x021DDB40
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DDBB8 ; =0x02210518
@@ -5560,7 +5560,7 @@ FUN_021DDB40: ; 0x021DDB40
ldmeqia sp!, {pc}
mov r0, #5
strh r0, [r2, #4]
- bl FUN_021EB9D8
+ bl MOD04_021EB9D8
cmp r0, #0
ldrne r0, _021DDBB8 ; =0x02210518
movne r1, #0
@@ -5572,8 +5572,8 @@ FUN_021DDB40: ; 0x021DDB40
.align 2, 0
_021DDBB8: .word 0x02210518
- arm_func_start FUN_021DDBBC
-FUN_021DDBBC: ; 0x021DDBBC
+ arm_func_start MOD04_021DDBBC
+MOD04_021DDBBC: ; 0x021DDBBC
stmdb sp!, {r4, lr}
ldr r0, _021DDC18 ; =0x02210518
ldr r1, [r0]
@@ -5584,14 +5584,14 @@ FUN_021DDBBC: ; 0x021DDBBC
moveq r1, #0
streq r1, [r0]
ldmeqia sp!, {r4, pc}
- bl FUN_021EB9D8
+ bl MOD04_021EB9D8
cmp r0, #0
bne _021DDC08
mov r4, #0xa
_021DDBF4:
mov r0, r4
bl OS_Sleep
- bl FUN_021EB9D8
+ bl MOD04_021EB9D8
cmp r0, #0
beq _021DDBF4
_021DDC08:
@@ -5602,8 +5602,8 @@ _021DDC08:
.align 2, 0
_021DDC18: .word 0x02210518
- arm_func_start FUN_021DDC1C
-FUN_021DDC1C: ; 0x021DDC1C
+ arm_func_start MOD04_021DDC1C
+MOD04_021DDC1C: ; 0x021DDC1C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DDCE4 ; =0x02210518
@@ -5616,7 +5616,7 @@ FUN_021DDC1C: ; 0x021DDC1C
cmp r0, #1
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021EBAE8
+ bl MOD04_021EBAE8
mov r1, r0
cmp r1, #5
bne _021DDC80
@@ -5637,7 +5637,7 @@ _021DDC80:
blt _021DDCB8
sub r1, r1, #0x2bc
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
ldr r1, _021DDCE4 ; =0x02210518
mov r0, #8
ldr r1, [r1]
@@ -5646,7 +5646,7 @@ _021DDC80:
ldmfd sp!, {pc}
_021DDCB8:
mov r0, #5
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
ldr r1, _021DDCE4 ; =0x02210518
mov r0, #7
ldr r1, [r1]
@@ -5660,8 +5660,8 @@ _021DDCD8:
.align 2, 0
_021DDCE4: .word 0x02210518
- arm_func_start FUN_021DDCE8
-FUN_021DDCE8: ; 0x021DDCE8
+ arm_func_start MOD04_021DDCE8
+MOD04_021DDCE8: ; 0x021DDCE8
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DDD78 ; =0x02210518
@@ -5672,7 +5672,7 @@ FUN_021DDCE8: ; 0x021DDCE8
ldrh r0, [r1, #4]
cmp r0, #2
bne _021DDD28
- bl FUN_021EBB80
+ bl MOD04_021EBB80
ldr r1, _021DDD78 ; =0x02210518
add sp, sp, #4
ldr r1, [r1]
@@ -5702,8 +5702,8 @@ _021DDD28:
.align 2, 0
_021DDD78: .word 0x02210518
- arm_func_start FUN_021DDD7C
-FUN_021DDD7C: ; 0x021DDD7C
+ arm_func_start MOD04_021DDD7C
+MOD04_021DDD7C: ; 0x021DDD7C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DDDC8 ; =0x02210518
@@ -5719,15 +5719,15 @@ FUN_021DDD7C: ; 0x021DDD7C
ldmeqia sp!, {pc}
mov r0, #3
strh r0, [r1, #4]
- bl FUN_021DDC1C
+ bl MOD04_021DDC1C
mov r0, #1
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021DDDC8: .word 0x02210518
- arm_func_start FUN_021DDDCC
-FUN_021DDDCC: ; 0x021DDDCC
+ arm_func_start MOD04_021DDDCC
+MOD04_021DDDCC: ; 0x021DDDCC
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr r0, _021DDE70 ; =0x02210518
@@ -5743,9 +5743,9 @@ FUN_021DDDCC: ; 0x021DDDCC
mov r2, #0xc
bl MI_CpuFill8
ldr r0, _021DDE70 ; =0x02210518
- ldr r3, _021DDE74 ; =FUN_021DD944
+ ldr r3, _021DDE74 ; =MOD04_021DD944
ldr lr, [r0]
- ldr r2, _021DDE78 ; =FUN_021DD904
+ ldr r2, _021DDE78 ; =MOD04_021DD904
ldrh ip, [lr, #8]
add r0, sp, #0
mov r1, #2
@@ -5755,28 +5755,28 @@ FUN_021DDDCC: ; 0x021DDDCC
str r3, [sp]
str r2, [sp, #4]
strh r1, [lr, #4]
- bl FUN_021EBC60
+ bl MOD04_021EBC60
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {pc}
mov r0, #9
mvn r1, #5
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #0xc
ldmfd sp!, {pc}
_021DDE5C:
mov r0, #9
mvn r1, #3
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #0xc
ldmfd sp!, {pc}
.align 2, 0
_021DDE70: .word 0x02210518
-_021DDE74: .word FUN_021DD944
-_021DDE78: .word FUN_021DD904
+_021DDE74: .word MOD04_021DD944
+_021DDE78: .word MOD04_021DD904
- arm_func_start FUN_021DDE7C
-FUN_021DDE7C: ; 0x021DDE7C
+ arm_func_start MOD04_021DDE7C
+MOD04_021DDE7C: ; 0x021DDE7C
stmdb sp!, {lr}
sub sp, sp, #4
cmp r0, #0
@@ -5789,17 +5789,17 @@ FUN_021DDE7C: ; 0x021DDE7C
ldmfd sp!, {pc}
_021DDEA4:
ldr r0, _021DDED4 ; =0x0220D280
- bl FUN_021D9C1C
+ bl MOD04_021D9C1C
add sp, sp, #4
ldmfd sp!, {pc}
_021DDEB4:
ldr r0, _021DDED8 ; =0x0220D2A8
- bl FUN_021D9C1C
+ bl MOD04_021D9C1C
add sp, sp, #4
ldmfd sp!, {pc}
_021DDEC4:
ldr r0, _021DDEDC ; =0x0220D2CC
- bl FUN_021D9C1C
+ bl MOD04_021D9C1C
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
@@ -5807,8 +5807,8 @@ _021DDED4: .word 0x0220D280
_021DDED8: .word 0x0220D2A8
_021DDEDC: .word 0x0220D2CC
- arm_func_start FUN_021DDEE0
-FUN_021DDEE0: ; 0x021DDEE0
+ arm_func_start MOD04_021DDEE0
+MOD04_021DDEE0: ; 0x021DDEE0
stmdb sp!, {r4, r5, r6, lr}
ldr r2, _021DDF3C ; =0x02210518
mov r6, r0
@@ -5828,22 +5828,22 @@ FUN_021DDEE0: ; 0x021DDEE0
ldr r1, _021DDF3C ; =0x02210518
strh r0, [r6, #6]
str r6, [r1]
- bl FUN_021DDE7C
+ bl MOD04_021DDE7C
mov r0, r4
bl FUN_020A374C
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021DDF3C: .word 0x02210518
- arm_func_start FUN_021DDF40
-FUN_021DDF40: ; 0x021DDF40
- ldr ip, _021DDF48 ; =FUN_021D9974
+ arm_func_start MOD04_021DDF40
+MOD04_021DDF40: ; 0x021DDF40
+ ldr ip, _021DDF48 ; =MOD04_021D9974
bx ip
.align 2, 0
-_021DDF48: .word FUN_021D9974
+_021DDF48: .word MOD04_021D9974
- arm_func_start FUN_021DDF4C
-FUN_021DDF4C: ; 0x021DDF4C
+ arm_func_start MOD04_021DDF4C
+MOD04_021DDF4C: ; 0x021DDF4C
stmdb sp!, {lr}
sub sp, sp, #0x1c4
ldr r0, _021DE054 ; =0x0221051C
@@ -5858,7 +5858,7 @@ FUN_021DDF4C: ; 0x021DDF4C
addeq sp, sp, #0x1c4
moveq r0, #1
ldmeqia sp!, {pc}
- bl FUN_021D988C
+ bl MOD04_021D988C
cmp r0, #0
beq _021DDFA4
cmp r0, #0x14
@@ -5871,12 +5871,12 @@ _021DDFA4:
mov r0, #2
ldmfd sp!, {pc}
_021DDFB0:
- bl FUN_021D991C
+ bl MOD04_021D991C
ldr r0, _021DE054 ; =0x0221051C
ldr r2, _021DE058 ; =0x00001E1C
ldr r1, [r0]
mov r0, #4
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r0, _021DE054 ; =0x0221051C
mov r1, #0
str r1, [r0]
@@ -5884,12 +5884,12 @@ _021DDFB0:
mov r0, #3
ldmfd sp!, {pc}
_021DDFE0:
- bl FUN_021D991C
+ bl MOD04_021D991C
ldr r0, _021DE054 ; =0x0221051C
ldr r2, _021DE058 ; =0x00001E1C
ldr r1, [r0]
mov r0, #4
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r0, _021DE054 ; =0x0221051C
mov r1, #0
str r1, [r0]
@@ -5898,19 +5898,19 @@ _021DDFE0:
ldmfd sp!, {pc}
_021DE010:
add r0, sp, #0
- bl FUN_021D97F8
- bl FUN_021D991C
+ bl MOD04_021D97F8
+ bl MOD04_021D991C
ldr r0, _021DE054 ; =0x0221051C
ldr r2, _021DE058 ; =0x00001E1C
ldr r1, [r0]
mov r0, #4
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r1, [sp]
ldr r2, _021DE054 ; =0x0221051C
mov r3, #0
mov r0, #2
str r3, [r2]
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
mov r0, #4
add sp, sp, #0x1c4
ldmfd sp!, {pc}
@@ -5918,8 +5918,8 @@ _021DE010:
_021DE054: .word 0x0221051C
_021DE058: .word 0x00001E1C
- arm_func_start FUN_021DE05C
-FUN_021DE05C: ; 0x021DE05C
+ arm_func_start MOD04_021DE05C
+MOD04_021DE05C: ; 0x021DE05C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DE130 ; =0x0221051C
@@ -5930,14 +5930,14 @@ FUN_021DE05C: ; 0x021DE05C
_021DE078:
ldr r1, _021DE134 ; =0x00001E1C
mov r0, #4
- bl FUN_021DD944
+ bl MOD04_021DD944
ldr r1, _021DE130 ; =0x0221051C
cmp r0, #0
str r0, [r1]
bne _021DE0AC
ldr r1, _021DE138 ; =0xFFFFB17C
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #4
mov r0, #0
ldmfd sp!, {pc}
@@ -5953,9 +5953,9 @@ _021DE0AC:
mov r2, #9
bl MI_CpuCopy8
ldr r1, _021DE130 ; =0x0221051C
- ldr r2, _021DE144 ; =FUN_021DD944
+ ldr r2, _021DE144 ; =MOD04_021DD944
ldr r0, [r1]
- ldr r3, _021DE148 ; =FUN_021DD904
+ ldr r3, _021DE148 ; =MOD04_021DD904
add r0, r0, #0x1000
str r2, [r0, #0xc50]
ldr r0, [r1]
@@ -5964,14 +5964,14 @@ _021DE0AC:
str r3, [r0, #0xc54]
ldr r1, [r1]
add r0, r1, r2
- bl FUN_021D9ACC
+ bl MOD04_021D9ACC
cmp r0, #0
addeq sp, sp, #4
moveq r0, #1
ldmeqia sp!, {pc}
ldr r1, _021DE138 ; =0xFFFFB17C
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
mov r0, #0
add sp, sp, #4
ldmfd sp!, {pc}
@@ -5981,32 +5981,32 @@ _021DE134: .word 0x00001E1C
_021DE138: .word 0xFFFFB17C
_021DE13C: .word 0x00001C44
_021DE140: .word 0x0220D2EC
-_021DE144: .word FUN_021DD944
-_021DE148: .word FUN_021DD904
+_021DE144: .word MOD04_021DD944
+_021DE148: .word MOD04_021DD904
_021DE14C: .word 0x00001C10
- arm_func_start FUN_021DE150
-FUN_021DE150: ; 0x021DE150
+ arm_func_start MOD04_021DE150
+MOD04_021DE150: ; 0x021DE150
stmdb sp!, {r4, lr}
- bl FUN_021DCF00
+ bl MOD04_021DCF00
mov r4, r0
sub r0, r4, #3
cmp r0, #2
bhi _021DE16C
- bl FUN_021DD26C
+ bl MOD04_021DD26C
_021DE16C:
mov r0, r4
ldmia sp!, {r4, pc}
- arm_func_start FUN_021DE174
-FUN_021DE174: ; 0x021DE174
+ arm_func_start MOD04_021DE174
+MOD04_021DE174: ; 0x021DE174
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r4, r1
- ldr r0, _021DE1EC ; =FUN_021DD944
- ldr r1, _021DE1F0 ; =FUN_021DD904
- bl FUN_021DD2C4
+ ldr r0, _021DE1EC ; =MOD04_021DD944
+ ldr r1, _021DE1F0 ; =MOD04_021DD904
+ bl MOD04_021DD2C4
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -6017,28 +6017,28 @@ FUN_021DE174: ; 0x021DE174
bne _021DE1C0
ldr r0, _021DE1F4 ; =0x0220D2F0
mov r1, r4
- bl FUN_021DCFFC
+ bl MOD04_021DCFFC
b _021DE1CC
_021DE1C0:
mov r0, r5
mov r1, r4
- bl FUN_021DCFFC
+ bl MOD04_021DCFFC
_021DE1CC:
cmp r0, #0
addne sp, sp, #4
movne r0, #1
ldmneia sp!, {r4, r5, pc}
- bl FUN_021DD26C
+ bl MOD04_021DD26C
mov r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
-_021DE1EC: .word FUN_021DD944
-_021DE1F0: .word FUN_021DD904
+_021DE1EC: .word MOD04_021DD944
+_021DE1F0: .word MOD04_021DD904
_021DE1F4: .word 0x0220D2F0
- arm_func_start FUN_021DE1F8
-FUN_021DE1F8: ; 0x021DE1F8
+ arm_func_start MOD04_021DE1F8
+MOD04_021DE1F8: ; 0x021DE1F8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r2, _021DE2C4 ; =0x022104F8
@@ -6099,56 +6099,59 @@ _021DE2C4: .word 0x022104F8
_021DE2C8: .word 0x022104FC
_021DE2CC: .word 0xBC19137F
- arm_func_start FUN_021DE2D0
-FUN_021DE2D0: ; 0x021DE2D0
+ arm_func_start MOD04_021DE2D0
+MOD04_021DE2D0: ; 0x021DE2D0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r4, r1
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
addne sp, sp, #4
movne r0, #0
ldmneia sp!, {r4, r5, pc}
mov r0, r5
mov r1, r4
- bl FUN_02207330
+ bl MOD04_02207330
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021DE308
-FUN_021DE308: ; 0x021DE308
+ arm_func_start MOD04_021DE308
+MOD04_021DE308: ; 0x021DE308
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
addne sp, sp, #4
movne r0, #0
ldmneia sp!, {pc}
- bl FUN_02207158
+ 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
mov r4, r2
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r1, r5
mov r2, r4
- bl FUN_0220733C
+ bl MOD04_0220733C
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021DE364
-FUN_021DE364: ; 0x021DE364
+ arm_func_start MOD04_021DE364
+MOD04_021DE364: ; 0x021DE364
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
mov r4, r2
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
@@ -6160,39 +6163,39 @@ FUN_021DE364: ; 0x021DE364
mov r0, r6
mov r1, r5
mov r2, r4
- bl FUN_022074EC
+ bl MOD04_022074EC
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021DE3AC
-FUN_021DE3AC: ; 0x021DE3AC
+ arm_func_start MOD04_021DE3AC
+MOD04_021DE3AC: ; 0x021DE3AC
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, pc}
mov r0, r4
- bl FUN_022077A8
+ bl MOD04_022077A8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021DE3D0
-FUN_021DE3D0: ; 0x021DE3D0
+ arm_func_start MOD04_021DE3D0
+MOD04_021DE3D0: ; 0x021DE3D0
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
mov r4, r2
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r1, r5
mov r2, r4
- bl FUN_022069DC
+ bl MOD04_022069DC
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021DE404
-FUN_021DE404: ; 0x021DE404
+ arm_func_start MOD04_021DE404
+MOD04_021DE404: ; 0x021DE404
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, _021DE454 ; =0x02210520
@@ -6206,34 +6209,34 @@ FUN_021DE404: ; 0x021DE404
ldr r0, [r0, #0x48]
cmp r0, #0
bne _021DE440
- bl FUN_021DE730
+ bl MOD04_021DE730
b _021DE448
_021DE440:
- ldr r0, _021DE458 ; =FUN_021DE730
- bl FUN_02206E6C
+ ldr r0, _021DE458 ; =MOD04_021DE730
+ bl MOD04_02206E6C
_021DE448:
mov r0, #1
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021DE454: .word 0x02210520
-_021DE458: .word FUN_021DE730
+_021DE458: .word MOD04_021DE730
- arm_func_start FUN_021DE45C
-FUN_021DE45C: ; 0x021DE45C
+ arm_func_start MOD04_021DE45C
+MOD04_021DE45C: ; 0x021DE45C
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
mov r5, r1
mov r4, r2
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
addne sp, sp, #8
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
mov r0, #0xa80
mov r1, #0x20
- bl FUN_021DE884
+ bl MOD04_021DE884
ldr r2, _021DE568 ; =0x02210520
mov r1, #0
str r0, [r2]
@@ -6259,12 +6262,12 @@ FUN_021DE45C: ; 0x021DE45C
ldr r0, _021DE56C ; =0x0220D2F8
ldr r1, [r1]
add r1, r1, #0x4c
- bl FUN_021DE174
+ bl MOD04_021DE174
cmp r0, #0
bne _021DE520
ldr r0, _021DE568 ; =0x02210520
ldr r0, [r0]
- bl FUN_021DE86C
+ bl MOD04_021DE86C
ldr r1, _021DE568 ; =0x02210520
mov r0, #0
str r0, [r1]
@@ -6274,7 +6277,7 @@ _021DE520:
ldr r0, _021DE568 ; =0x02210520
mov r2, #0x800
ldr r0, [r0]
- ldr r1, _021DE570 ; =FUN_021DE574
+ ldr r1, _021DE570 ; =MOD04_021DE574
add r0, r0, #0x9c0
mov r3, r0
str r2, [sp]
@@ -6292,10 +6295,10 @@ _021DE520:
.align 2, 0
_021DE568: .word 0x02210520
_021DE56C: .word 0x0220D2F8
-_021DE570: .word FUN_021DE574
+_021DE570: .word MOD04_021DE574
- arm_func_start FUN_021DE574
-FUN_021DE574: ; 0x021DE574
+ arm_func_start MOD04_021DE574
+MOD04_021DE574: ; 0x021DE574
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x2a4
mov r7, #0
@@ -6303,7 +6306,7 @@ FUN_021DE574: ; 0x021DE574
mvn r5, #0
mov r4, #0x64
_021DE58C:
- bl FUN_021DE150
+ bl MOD04_021DE150
cmp r0, #3
bne _021DE6AC
ldr r0, _021DE718 ; =0x02210520
@@ -6319,7 +6322,7 @@ _021DE58C:
mov r0, #0
mov r1, #8
mvn r2, #0
- bl FUN_021DE774
+ bl MOD04_021DE774
add sp, sp, #0x2a4
ldmia sp!, {r4, r5, r6, r7, pc}
_021DE5D8:
@@ -6336,35 +6339,35 @@ _021DE5D8:
add r2, sp, #0x110
add r0, r4, #0x91
mov r3, #0x190
- bl FUN_021DD4FC
+ bl MOD04_021DD4FC
cmp r0, #0
bge _021DE630
mov r0, #0
mov r1, #8
mvn r2, #0
- bl FUN_021DE774
+ bl MOD04_021DE774
add sp, sp, #0x2a4
ldmia sp!, {r4, r5, r6, r7, pc}
_021DE630:
ldr r0, _021DE718 ; =0x02210520
- ldr r4, _021DE724 ; =FUN_021DE774
+ ldr r4, _021DE724 ; =MOD04_021DE774
ldr r2, [r0]
- ldr r0, _021DE728 ; =FUN_021DE884
+ ldr r0, _021DE728 ; =MOD04_021DE884
add r1, r2, #8
str r1, [sp]
add r1, r2, #0x28
str r1, [sp, #4]
- ldr r1, _021DE72C ; =FUN_021DE86C
+ ldr r1, _021DE72C ; =MOD04_021DE86C
add r2, sp, #0x10
add r3, sp, #0x110
str r4, [sp, #8]
- bl FUN_02206EFC
+ bl MOD04_02206EFC
cmp r0, #0
bne _021DE684
mov r0, #0
mov r1, #8
mvn r2, #0
- bl FUN_021DE774
+ bl MOD04_021DE774
add sp, sp, #0x2a4
ldmia sp!, {r4, r5, r6, r7, pc}
_021DE684:
@@ -6375,17 +6378,17 @@ _021DE684:
mov r1, r0
mvn r2, #0
str r4, [r3, #0x48]
- bl FUN_021DE774
+ bl MOD04_021DE774
add sp, sp, #0x2a4
ldmia sp!, {r4, r5, r6, r7, pc}
_021DE6AC:
cmp r0, #4
bne _021DE6EC
add r0, sp, #0xc
- bl FUN_021DD808
+ bl MOD04_021DD808
ldr r1, [sp, #0xc]
mov r0, #0xe
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
ldr r1, _021DE718 ; =0x02210520
mov r0, #0
ldr r2, [r1]
@@ -6401,26 +6404,26 @@ _021DE6EC:
mov r0, r7
mov r1, r6
mov r2, r5
- bl FUN_021DE774
+ bl MOD04_021DE774
_021DE704:
mov r0, r4
bl OS_Sleep
b _021DE58C
- arm_func_start FUN_021DE710
-FUN_021DE710: ; 0x021DE710
+ arm_func_start MOD04_021DE710
+MOD04_021DE710: ; 0x021DE710
add sp, sp, #0x2a4
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
_021DE718: .word 0x02210520
_021DE71C: .word 0x0220D300
_021DE720: .word 0x0220D314
-_021DE724: .word FUN_021DE774
-_021DE728: .word FUN_021DE884
-_021DE72C: .word FUN_021DE86C
+_021DE724: .word MOD04_021DE774
+_021DE728: .word MOD04_021DE884
+_021DE72C: .word MOD04_021DE86C
- arm_func_start FUN_021DE730
-FUN_021DE730: ; 0x021DE730
+ arm_func_start MOD04_021DE730
+MOD04_021DE730: ; 0x021DE730
stmdb sp!, {r4, lr}
ldr r0, _021DE770 ; =0x02210520
ldr r0, [r0]
@@ -6429,7 +6432,7 @@ FUN_021DE730: ; 0x021DE730
ldr r0, _021DE770 ; =0x02210520
ldr r0, [r0]
ldr r4, [r0, #4]
- bl FUN_021DE86C
+ bl MOD04_021DE86C
ldr r0, _021DE770 ; =0x02210520
mov r1, #0
str r1, [r0]
@@ -6440,8 +6443,8 @@ FUN_021DE730: ; 0x021DE730
.align 2, 0
_021DE770: .word 0x02210520
- arm_func_start FUN_021DE774
-FUN_021DE774: ; 0x021DE774
+ arm_func_start MOD04_021DE774
+MOD04_021DE774: ; 0x021DE774
stmdb sp!, {r4, r5, r6, lr}
movs r5, r1
mov r6, r0
@@ -6469,7 +6472,7 @@ _021DE7A8: ; jump table
_021DE7CC:
ldr r1, _021DE858 ; =0xFFFF86E7
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
b _021DE834
_021DE7DC:
bl OS_Terminate
@@ -6477,18 +6480,18 @@ _021DE7DC:
_021DE7E4:
ldr r1, _021DE85C ; =0xFFFF86D4
mov r0, #0xf
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
b _021DE834
_021DE7F4:
ldr r1, _021DE860 ; =0xFFFF86CA
mov r0, #0xe
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
b _021DE834
_021DE804:
ldr r1, _021DE864 ; =0xFFFF86E8
mov r0, #0xe
sub r1, r1, r4
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
b _021DE834
_021DE818:
bl OS_Terminate
@@ -6496,7 +6499,7 @@ _021DE818:
_021DE820:
ldr r1, _021DE868 ; =0xFFFF86DF
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
b _021DE834
_021DE830:
bl OS_Terminate
@@ -6517,28 +6520,28 @@ _021DE860: .word 0xFFFF86CA
_021DE864: .word 0xFFFF86E8
_021DE868: .word 0xFFFF86DF
- arm_func_start FUN_021DE86C
-FUN_021DE86C: ; 0x021DE86C
- ldr ip, _021DE880 ; =FUN_021DD904
+ arm_func_start MOD04_021DE86C
+MOD04_021DE86C: ; 0x021DE86C
+ ldr ip, _021DE880 ; =MOD04_021DD904
mov r1, r0
mov r0, #6
mov r2, #0
bx ip
.align 2, 0
-_021DE880: .word FUN_021DD904
+_021DE880: .word MOD04_021DD904
- arm_func_start FUN_021DE884
-FUN_021DE884: ; 0x021DE884
- ldr ip, _021DE898 ; =FUN_021DD924
+ arm_func_start MOD04_021DE884
+MOD04_021DE884: ; 0x021DE884
+ ldr ip, _021DE898 ; =MOD04_021DD924
mov r2, r1
mov r1, r0
mov r0, #6
bx ip
.align 2, 0
-_021DE898: .word FUN_021DD924
+_021DE898: .word MOD04_021DD924
- arm_func_start FUN_021DE89C
-FUN_021DE89C: ; 0x021DE89C
+ arm_func_start MOD04_021DE89C
+MOD04_021DE89C: ; 0x021DE89C
ldrh r1, [r0]
mov r2, #0
cmp r1, #0
@@ -6553,8 +6556,8 @@ _021DE8C0:
mov r0, r2
bx lr
- arm_func_start FUN_021DE8C8
-FUN_021DE8C8: ; 0x021DE8C8
+ arm_func_start MOD04_021DE8C8
+MOD04_021DE8C8: ; 0x021DE8C8
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r2, _021DE9E4 ; =0x02210524
@@ -6633,8 +6636,8 @@ _021DE9E8: .word 0x6C078965
_021DE9EC: .word 0x5D588B65
_021DE9F0: .word 0x00269EC3
- arm_func_start FUN_021DE9F4
-FUN_021DE9F4: ; 0x021DE9F4
+ arm_func_start MOD04_021DE9F4
+MOD04_021DE9F4: ; 0x021DE9F4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r4, r1
@@ -6710,8 +6713,8 @@ _021DEAE8:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021DEB0C
-FUN_021DEB0C: ; 0x021DEB0C
+ arm_func_start MOD04_021DEB0C
+MOD04_021DEB0C: ; 0x021DEB0C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r5, r2
@@ -6725,14 +6728,14 @@ FUN_021DEB0C: ; 0x021DEB0C
mov r0, r7
mov r1, r6
mov r3, r4
- bl FUN_021DEB54
+ bl MOD04_021DEB54
mov r0, r5
bl strlen
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021DEB54
-FUN_021DEB54: ; 0x021DEB54
+ arm_func_start MOD04_021DEB54
+MOD04_021DEB54: ; 0x021DEB54
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
str r0, [sp]
@@ -6750,17 +6753,17 @@ FUN_021DEB54: ; 0x021DEB54
.align 2, 0
_021DEB8C: .word 0x0220D328
- arm_func_start FUN_021DEB90
-FUN_021DEB90: ; 0x021DEB90
+ arm_func_start MOD04_021DEB90
+MOD04_021DEB90: ; 0x021DEB90
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021FD43C
- bl FUN_021EFB28
+ bl MOD04_021FD43C
+ bl MOD04_021EFB28
ldr r2, _021DEBCC ; =0x02210540
ldr r1, _021DEBD0 ; =0xFFFE8515
str r0, [r2]
mov r0, #9
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
ldr r0, _021DEBD4 ; =0x0221053C
mov r1, #0
ldr r0, [r0]
@@ -6772,22 +6775,22 @@ _021DEBCC: .word 0x02210540
_021DEBD0: .word 0xFFFE8515
_021DEBD4: .word 0x0221053C
- arm_func_start FUN_021DEBD8
-FUN_021DEBD8: ; 0x021DEBD8
- ldr ip, _021DEBE0 ; =FUN_021EAC1C
+ arm_func_start MOD04_021DEBD8
+MOD04_021DEBD8: ; 0x021DEBD8
+ ldr ip, _021DEBE0 ; =MOD04_021EAC1C
bx ip
.align 2, 0
-_021DEBE0: .word FUN_021EAC1C
+_021DEBE0: .word MOD04_021EAC1C
- arm_func_start FUN_021DEBE4
-FUN_021DEBE4: ; 0x021DEBE4
+ arm_func_start MOD04_021DEBE4
+MOD04_021DEBE4: ; 0x021DEBE4
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
mov r7, #0
mov fp, r0
mov sb, r1
mov sl, r7
- bl FUN_021E852C
+ bl MOD04_021E852C
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -6814,7 +6817,7 @@ _021DEC48:
cmp r4, #0
bne _021DED00
mov r0, fp
- bl FUN_021FD3C4
+ bl MOD04_021FD3C4
movs r7, r0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -6827,7 +6830,7 @@ _021DEC48:
ands r0, r1, r0
mov r0, r8
moveq r5, #0
- bl FUN_021EA9D8
+ bl MOD04_021EA9D8
ldr r0, _021DEF54 ; =0x0221053C
ldr r1, [r0]
ldrb r0, [r1, #0x369]
@@ -6845,7 +6848,7 @@ _021DECBC:
mov sl, #1
_021DECC0:
mov r0, r8
- bl FUN_021DF56C
+ bl MOD04_021DF56C
ldr r1, _021DEF54 ; =0x0221053C
ldrb r7, [r7]
ldr r2, _021DEF58 ; =0x02210544
@@ -6878,16 +6881,16 @@ _021DED00:
cmp r4, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- bl FUN_021E85D4
+ bl MOD04_021E85D4
mov r0, r7
- bl FUN_021E8A50
+ bl MOD04_021E8A50
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021DED58:
mov r0, r4
mov r1, r6
mov r2, r7
- bl FUN_021E8A74
+ bl MOD04_021E8A74
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -6895,7 +6898,7 @@ _021DED58:
beq _021DED90
mov r0, r4
mov r1, r6
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021DED90:
@@ -6928,7 +6931,7 @@ _021DEDBC:
ldrb r1, [r0, #0x361]
add r0, r1, #1
add r1, r1, #3
- bl FUN_021E8830
+ bl MOD04_021E8830
_021DEE04:
ldr r0, _021DEF54 ; =0x0221053C
ldr r1, [r0]
@@ -6938,7 +6941,7 @@ _021DEE04:
ldrb r0, [r1, #0x2d]
cmp r0, #0
bne _021DEE2C
- bl FUN_021E85D4
+ bl MOD04_021E85D4
b _021DEE68
_021DEE2C:
ldrb r0, [r1, #0x361]
@@ -6947,7 +6950,7 @@ _021DEE2C:
ldr r1, _021DEF5C ; =0x0220D334
mov r0, #1
mov r2, #0
- bl FUN_021E1E30
+ bl MOD04_021E1E30
b _021DEE68
_021DEE4C:
ldrb r0, [r1, #0x361]
@@ -6956,7 +6959,7 @@ _021DEE4C:
ldr r1, _021DEF5C ; =0x0220D334
mov r0, #1
mov r2, #0
- bl FUN_021E1E30
+ bl MOD04_021E1E30
_021DEE68:
ldr r0, _021DEF54 ; =0x0221053C
ldr r1, [r0]
@@ -6973,7 +6976,7 @@ _021DEE88:
strb r1, [r2, #0x36a]
ldr r0, [r0]
ldr r0, [r0, #0x364]
- bl FUN_02202308
+ bl MOD04_02202308
_021DEEA4:
ldr r0, _021DEF54 ; =0x0221053C
ldr r6, [r0]
@@ -6986,7 +6989,7 @@ _021DEEA4:
moveq r5, #1
mov r0, r7
movne r5, #0
- bl FUN_021E1F18
+ bl MOD04_021E1F18
str r0, [sp]
ldr r1, [r6, #0x94]
ldr r0, _021DEF54 ; =0x0221053C
@@ -7013,10 +7016,10 @@ _021DEF24:
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- bl FUN_02200D6C
- bl FUN_021E8DC0
+ bl MOD04_02200D6C
+ bl MOD04_021E8DC0
mov r0, #3
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
@@ -7026,15 +7029,15 @@ _021DEF54: .word 0x0221053C
_021DEF58: .word 0x02210544
_021DEF5C: .word 0x0220D334
- arm_func_start FUN_021DEF60
-FUN_021DEF60: ; 0x021DEF60
- ldr ip, _021DEF68 ; =FUN_021EAC5C
+ arm_func_start MOD04_021DEF60
+MOD04_021DEF60: ; 0x021DEF60
+ ldr ip, _021DEF68 ; =MOD04_021EAC5C
bx ip
.align 2, 0
-_021DEF68: .word FUN_021EAC5C
+_021DEF68: .word MOD04_021EAC5C
- arm_func_start FUN_021DEF6C
-FUN_021DEF6C: ; 0x021DEF6C
+ arm_func_start MOD04_021DEF6C
+MOD04_021DEF6C: ; 0x021DEF6C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
add r4, sp, #0
@@ -7054,7 +7057,7 @@ FUN_021DEF6C: ; 0x021DEF6C
strb r3, [r4, #0xb]
ldr r4, [r5, #8]
mov r6, r0
- bl FUN_021E2068
+ bl MOD04_021E2068
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
@@ -7120,7 +7123,7 @@ _021DF0A8:
add r2, r4, r0
ldr r1, [r5]
mov r0, r6
- bl FUN_021E8EF4
+ bl MOD04_021E8EF4
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
@@ -7128,8 +7131,8 @@ _021DF0C8: .word 0x0220D338
_021DF0CC: .word 0x0220D340
_021DF0D0: .word 0x0221053C
- arm_func_start FUN_021DF0D4
-FUN_021DF0D4: ; 0x021DF0D4
+ arm_func_start MOD04_021DF0D4
+MOD04_021DF0D4: ; 0x021DF0D4
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, [r1, #4]
@@ -7146,7 +7149,7 @@ FUN_021DF0D4: ; 0x021DF0D4
addeq sp, sp, #4
ldmeqia sp!, {pc}
mov r0, #3
- bl FUN_021DF414
+ bl MOD04_021DF414
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
@@ -7154,8 +7157,8 @@ _021DF120: .word 0x00000603
_021DF124: .word 0x00000901
_021DF128: .word 0x00000B01
- arm_func_start FUN_021DF12C
-FUN_021DF12C: ; 0x021DF12C
+ arm_func_start MOD04_021DF12C
+MOD04_021DF12C: ; 0x021DF12C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
movs r7, r0
@@ -7170,15 +7173,15 @@ FUN_021DF12C: ; 0x021DF12C
ldr r0, [r0, #0x4f4]
cmp r0, #0
bne _021DF1D8
- bl FUN_021E8DC0
+ bl MOD04_021E8DC0
mov r0, #3
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
b _021DF1D8
_021DF174:
cmp r7, #0
bne _021DF1D8
mov r0, #6
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
ldr r1, _021DF2AC ; =0x0221053C
mov r0, #0
ldr r3, [r1]
@@ -7209,11 +7212,11 @@ _021DF1D8:
ldrb r1, [r2, #0x361]
add r0, r2, r0
add r1, r1, #1
- bl FUN_021DF530
+ bl MOD04_021DF530
ldr r1, _021DF2AC ; =0x0221053C
ldr r1, [r1]
str r0, [r1, #0x644]
- bl FUN_021E8780
+ bl MOD04_021E8780
ldr r0, _021DF2AC ; =0x0221053C
ldr r1, [r0]
ldrb r0, [r1, #0x369]
@@ -7256,15 +7259,15 @@ _021DF26C:
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
mov r0, #3
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
_021DF2AC: .word 0x0221053C
_021DF2B0: .word 0x00000624
- arm_func_start FUN_021DF2B4
-FUN_021DF2B4: ; 0x021DF2B4
+ arm_func_start MOD04_021DF2B4
+MOD04_021DF2B4: ; 0x021DF2B4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r2, _021DF300 ; =0x0221053C
@@ -7274,7 +7277,7 @@ FUN_021DF2B4: ; 0x021DF2B4
ldr r0, [r0, #0x28]
cmp r0, #4
beq _021DF2DC
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
_021DF2DC:
ldr r1, _021DF300 ; =0x0221053C
mov r0, r5
@@ -7288,8 +7291,8 @@ _021DF2DC:
.align 2, 0
_021DF300: .word 0x0221053C
- arm_func_start FUN_021DF304
-FUN_021DF304: ; 0x021DF304
+ arm_func_start MOD04_021DF304
+MOD04_021DF304: ; 0x021DF304
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r5, r0
@@ -7299,12 +7302,12 @@ FUN_021DF304: ; 0x021DF304
mov r0, #3
ldr r1, [r1]
str r4, [r1, #0x64]
- bl FUN_021DF5CC
- bl FUN_021E1ED4
+ bl MOD04_021DF5CC
+ bl MOD04_021E1ED4
b _021DF33C
_021DF334:
mov r0, #0
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
_021DF33C:
ldr r0, _021DF36C ; =0x0221053C
ldr r0, [r0]
@@ -7321,8 +7324,8 @@ _021DF33C:
.align 2, 0
_021DF36C: .word 0x0221053C
- arm_func_start FUN_021DF370
-FUN_021DF370: ; 0x021DF370
+ arm_func_start MOD04_021DF370
+MOD04_021DF370: ; 0x021DF370
stmdb sp!, {r4, lr}
movs r4, r0
moveq r0, #0
@@ -7368,15 +7371,15 @@ _021DF3F4:
beq _021DF408
ldr r1, _021DF410 ; =0xFFFEFA48
add r1, r2, r1
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
_021DF408:
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_021DF410: .word 0xFFFEFA48
- arm_func_start FUN_021DF414
-FUN_021DF414: ; 0x021DF414
+ arm_func_start MOD04_021DF414
+MOD04_021DF414: ; 0x021DF414
stmdb sp!, {r4, r5, r6, lr}
movs r6, r0
moveq r0, #0
@@ -7424,7 +7427,7 @@ _021DF4A0:
mov r0, r4
add r5, r5, r1
mov r1, r5
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
b _021DF508
_021DF4B8:
ldr r1, [r1, #0x9c]
@@ -7434,14 +7437,14 @@ _021DF4B8:
bge _021DF508
mov r0, r4
mov r1, r5
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
b _021DF508
_021DF4DC:
ldr r1, _021DF524 ; =0xFFFEC398
mov r0, r4
add r5, r5, r1
mov r1, r5
- bl FUN_021E8E08
+ bl MOD04_021E8E08
b _021DF508
_021DF4F4:
ldr r0, _021DF528 ; =0xFFFEEAA8
@@ -7453,7 +7456,7 @@ _021DF500:
_021DF508:
mov r0, r4
mov r1, r5
- bl FUN_021E2114
+ bl MOD04_021E2114
mov r0, r6
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
@@ -7463,8 +7466,8 @@ _021DF524: .word 0xFFFEC398
_021DF528: .word 0xFFFEEAA8
_021DF52C: .word 0xFFFE9C88
- arm_func_start FUN_021DF530
-FUN_021DF530: ; 0x021DF530
+ arm_func_start MOD04_021DF530
+MOD04_021DF530: ; 0x021DF530
stmdb sp!, {lr}
sub sp, sp, #4
mov lr, #0
@@ -7483,13 +7486,13 @@ _021DF560:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021DF56C
-FUN_021DF56C: ; 0x021DF56C
+ arm_func_start MOD04_021DF56C
+MOD04_021DF56C: ; 0x021DF56C
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r0
add r0, sp, #0
- bl FUN_021E874C
+ bl MOD04_021E874C
mov r1, r0
cmp r1, #0
mov r0, #0
@@ -7508,12 +7511,12 @@ _021DF5B0:
addeq sp, sp, #8
moveq r0, #0
ldmeqia sp!, {r4, pc}
- bl FUN_021E8830
+ bl MOD04_021E8830
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021DF5CC
-FUN_021DF5CC: ; 0x021DF5CC
+ arm_func_start MOD04_021DF5CC
+MOD04_021DF5CC: ; 0x021DF5CC
ldr r1, _021DF5E8 ; =0x0221053C
ldr r3, [r1]
ldr r2, [r3, #0x24]
@@ -7524,12 +7527,12 @@ FUN_021DF5CC: ; 0x021DF5CC
.align 2, 0
_021DF5E8: .word 0x0221053C
- arm_func_start FUN_021DF5EC
-FUN_021DF5EC: ; 0x021DF5EC
+ arm_func_start MOD04_021DF5EC
+MOD04_021DF5EC: ; 0x021DF5EC
bx lr
- arm_func_start FUN_021DF5F0
-FUN_021DF5F0: ; 0x021DF5F0
+ arm_func_start MOD04_021DF5F0
+MOD04_021DF5F0: ; 0x021DF5F0
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, #0
@@ -7538,7 +7541,7 @@ _021DF600:
ldr r0, [r4, r5, lsl #2]
cmp r0, #0
beq _021DF620
- bl FUN_021FD3C4
+ bl MOD04_021FD3C4
ldrb r0, [r0, #1]
cmp r6, r0
moveq r0, #1
@@ -7552,16 +7555,16 @@ _021DF620:
.align 2, 0
_021DF634: .word 0x02210544
- arm_func_start FUN_021DF638
-FUN_021DF638: ; 0x021DF638
+ arm_func_start MOD04_021DF638
+MOD04_021DF638: ; 0x021DF638
ldr r1, _021DF644 ; =0x022105C4
add r0, r1, r0, lsl #3
bx lr
.align 2, 0
_021DF644: .word 0x022105C4
- arm_func_start FUN_021DF648
-FUN_021DF648: ; 0x021DF648
+ arm_func_start MOD04_021DF648
+MOD04_021DF648: ; 0x021DF648
stmdb sp!, {lr}
sub sp, sp, #4
cmp r1, #0
@@ -7587,24 +7590,24 @@ _021DF684:
ldr r0, [r0]
add r0, r0, ip
ldrb r0, [r0, #0x624]
- bl FUN_021DF760
- bl FUN_021DF730
- bl FUN_021DF6BC
+ bl MOD04_021DF760
+ bl MOD04_021DF730
+ bl MOD04_021DF6BC
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021DF6B8: .word 0x0221053C
- arm_func_start FUN_021DF6BC
-FUN_021DF6BC: ; 0x021DF6BC
+ arm_func_start MOD04_021DF6BC
+MOD04_021DF6BC: ; 0x021DF6BC
ldr r1, _021DF6C8 ; =0x02210544
add r0, r1, r0, lsl #2
bx lr
.align 2, 0
_021DF6C8: .word 0x02210544
- arm_func_start FUN_021DF6CC
-FUN_021DF6CC: ; 0x021DF6CC
+ arm_func_start MOD04_021DF6CC
+MOD04_021DF6CC: ; 0x021DF6CC
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, _021DF6FC ; =0x02210544
@@ -7621,8 +7624,8 @@ FUN_021DF6CC: ; 0x021DF6CC
_021DF6FC: .word 0x02210544
_021DF700: .word 0x022105C4
- arm_func_start FUN_021DF704
-FUN_021DF704: ; 0x021DF704
+ arm_func_start MOD04_021DF704
+MOD04_021DF704: ; 0x021DF704
ldr r2, _021DF72C ; =0x02210544
mov r0, #0
_021DF70C:
@@ -7637,26 +7640,26 @@ _021DF70C:
.align 2, 0
_021DF72C: .word 0x02210544
- arm_func_start FUN_021DF730
-FUN_021DF730: ; 0x021DF730
+ arm_func_start MOD04_021DF730
+MOD04_021DF730: ; 0x021DF730
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021FD3C4
+ bl MOD04_021FD3C4
ldrb r0, [r0]
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021DF748
-FUN_021DF748: ; 0x021DF748
+ arm_func_start MOD04_021DF748
+MOD04_021DF748: ; 0x021DF748
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021FD3C4
+ bl MOD04_021FD3C4
ldrb r0, [r0, #1]
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021DF760
-FUN_021DF760: ; 0x021DF760
+ arm_func_start MOD04_021DF760
+MOD04_021DF760: ; 0x021DF760
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _021DF7BC ; =0x0221053C
mov r6, r0
@@ -7670,7 +7673,7 @@ _021DF784:
ldr r0, [r4, r5, lsl #2]
cmp r0, #0
beq _021DF7A8
- bl FUN_021FD3C4
+ bl MOD04_021FD3C4
ldrb r0, [r0, #1]
cmp r6, r0
ldreq r0, _021DF7C0 ; =0x02210544
@@ -7686,8 +7689,8 @@ _021DF7A8:
_021DF7BC: .word 0x0221053C
_021DF7C0: .word 0x02210544
- arm_func_start FUN_021DF7C4
-FUN_021DF7C4: ; 0x021DF7C4
+ arm_func_start MOD04_021DF7C4
+MOD04_021DF7C4: ; 0x021DF7C4
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r0, _021DF87C ; =0x0221053C
@@ -7698,7 +7701,7 @@ FUN_021DF7C4: ; 0x021DF7C4
movne r0, #0
ldmneia sp!, {r4, pc}
mov r0, #0x4000
- bl FUN_021DE8C8
+ bl MOD04_021DE8C8
add r0, r0, #0xc000
mov r1, r0, lsl #0x10
ldr r3, _021DF87C ; =0x0221053C
@@ -7706,42 +7709,42 @@ FUN_021DF7C4: ; 0x021DF7C4
mov r2, r0
mov r1, r1, lsr #0x10
ldr r4, [r3]
- bl FUN_021FFEB0
- ldr r1, _021DF880 ; =FUN_021DEB90
+ bl MOD04_021FFEB0
+ ldr r1, _021DF880 ; =MOD04_021DEB90
ldr r2, _021DF87C ; =0x0221053C
str r1, [sp]
mov r1, r0
ldr r0, [r2]
ldr r2, [r4, #0x14]
ldr r3, [r4, #0x18]
- bl FUN_021FD71C
+ bl MOD04_021FD71C
mov r4, r0
- bl FUN_021DF370
+ bl MOD04_021DF370
cmp r0, #0
addne sp, sp, #8
movne r0, r4
ldmneia sp!, {r4, pc}
ldr r0, _021DF87C ; =0x0221053C
- ldr r1, _021DF884 ; =FUN_021E9204
+ ldr r1, _021DF884 ; =MOD04_021E9204
ldr r0, [r0]
ldr r0, [r0]
- bl FUN_021FD6C8
+ bl MOD04_021FD6C8
ldr r0, _021DF87C ; =0x0221053C
- ldr r1, _021DF888 ; =FUN_021E9464
+ ldr r1, _021DF888 ; =MOD04_021E9464
ldr r0, [r0]
ldr r0, [r0]
- bl FUN_021FD434
+ bl MOD04_021FD434
mov r0, r4
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
_021DF87C: .word 0x0221053C
-_021DF880: .word FUN_021DEB90
-_021DF884: .word FUN_021E9204
-_021DF888: .word FUN_021E9464
+_021DF880: .word MOD04_021DEB90
+_021DF884: .word MOD04_021E9204
+_021DF888: .word MOD04_021E9464
- arm_func_start FUN_021DF88C
-FUN_021DF88C: ; 0x021DF88C
+ arm_func_start MOD04_021DF88C
+MOD04_021DF88C: ; 0x021DF88C
ldr r0, _021DF8A4 ; =0x0221053C
ldr r0, [r0]
cmp r0, #0
@@ -7751,8 +7754,8 @@ FUN_021DF88C: ; 0x021DF88C
.align 2, 0
_021DF8A4: .word 0x0221053C
- arm_func_start FUN_021DF8A8
-FUN_021DF8A8: ; 0x021DF8A8
+ arm_func_start MOD04_021DF8A8
+MOD04_021DF8A8: ; 0x021DF8A8
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, _021DF8F0 ; =0x0221053C
@@ -7768,14 +7771,14 @@ FUN_021DF8A8: ; 0x021DF8A8
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {pc}
- bl FUN_021DF5F0
+ bl MOD04_021DF5F0
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021DF8F0: .word 0x0221053C
- arm_func_start FUN_021DF8F4
-FUN_021DF8F4: ; 0x021DF8F4
+ arm_func_start MOD04_021DF8F4
+MOD04_021DF8F4: ; 0x021DF8F4
stmdb sp!, {lr}
sub sp, sp, #4
ldr r2, _021DF954 ; =0x0221053C
@@ -7795,19 +7798,19 @@ FUN_021DF8F4: ; 0x021DF8F4
cmp r1, #3
bne _021DF948
_021DF93C:
- bl FUN_021E86A4
+ bl MOD04_021E86A4
add sp, sp, #4
ldmfd sp!, {pc}
_021DF948:
- bl FUN_021E874C
+ bl MOD04_021E874C
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021DF954: .word 0x0221053C
_021DF958: .word 0x00000624
- arm_func_start FUN_021DF95C
-FUN_021DF95C: ; 0x021DF95C
+ arm_func_start MOD04_021DF95C
+MOD04_021DF95C: ; 0x021DF95C
ldr r0, _021DF974 ; =0x0221053C
ldr r0, [r0]
cmp r0, #0
@@ -7817,8 +7820,8 @@ FUN_021DF95C: ; 0x021DF95C
.align 2, 0
_021DF974: .word 0x0221053C
- arm_func_start FUN_021DF978
-FUN_021DF978: ; 0x021DF978
+ arm_func_start MOD04_021DF978
+MOD04_021DF978: ; 0x021DF978
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DF9D0 ; =0x0221053C
@@ -7834,27 +7837,27 @@ FUN_021DF978: ; 0x021DF978
cmp r0, #3
bne _021DF9C0
_021DF9B0:
- bl FUN_021E87D8
+ bl MOD04_021E87D8
add sp, sp, #4
add r0, r0, #1
ldmfd sp!, {pc}
_021DF9C0:
- bl FUN_021E8804
+ bl MOD04_021E8804
add r0, r0, #1
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021DF9D0: .word 0x0221053C
- arm_func_start FUN_021DF9D4
-FUN_021DF9D4: ; 0x021DF9D4
+ arm_func_start MOD04_021DF9D4
+MOD04_021DF9D4: ; 0x021DF9D4
stmdb sp!, {r4, lr}
ldr r1, _021DFA3C ; =0x0221053C
mov r4, r0
ldr r0, [r1]
cmp r0, #0
beq _021DFA14
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
bne _021DFA14
ldr r0, _021DFA3C ; =0x0221053C
@@ -7869,25 +7872,25 @@ _021DFA14:
ldmia sp!, {r4, pc}
_021DFA1C:
mov r0, r4
- bl FUN_021DF760
+ bl MOD04_021DF760
cmp r0, #0
mvneq r0, #1
ldmeqia sp!, {r4, pc}
- bl FUN_021FD488
+ bl MOD04_021FD488
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
_021DFA3C: .word 0x0221053C
- arm_func_start FUN_021DFA40
-FUN_021DFA40: ; 0x021DFA40
+ arm_func_start MOD04_021DFA40
+MOD04_021DFA40: ; 0x021DFA40
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021DFAF0 ; =0x0221053C
ldr r0, [r0]
cmp r0, #0
beq _021DFA80
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
bne _021DFA80
ldr r0, _021DFAF0 ; =0x0221053C
@@ -7908,10 +7911,10 @@ _021DFA8C:
ldr r1, _021DFAF4 ; =0x0220D334
mov r0, #1
mov r2, #0
- bl FUN_021E1E30
- bl FUN_02200D6C
+ bl MOD04_021E1E30
+ bl MOD04_02200D6C
mov r0, #3
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
add sp, sp, #4
mov r0, #1
ldmfd sp!, {pc}
@@ -7921,7 +7924,7 @@ _021DFAC0:
strb r1, [r2, #0x2d]
ldr r0, [r0]
ldr r0, [r0]
- bl FUN_021FD45C
+ bl MOD04_021FD45C
ldr r1, _021DFAF0 ; =0x0221053C
mov r0, #0
ldr r1, [r1]
@@ -7932,8 +7935,8 @@ _021DFAC0:
_021DFAF0: .word 0x0221053C
_021DFAF4: .word 0x0220D334
- arm_func_start FUN_021DFAF8
-FUN_021DFAF8: ; 0x021DFAF8
+ arm_func_start MOD04_021DFAF8
+MOD04_021DFAF8: ; 0x021DFAF8
ldr r2, _021DFB1C ; =0x0221053C
ldr r3, [r2]
cmp r3, #0
@@ -7946,8 +7949,8 @@ FUN_021DFAF8: ; 0x021DFAF8
.align 2, 0
_021DFB1C: .word 0x0221053C
- arm_func_start FUN_021DFB20
-FUN_021DFB20: ; 0x021DFB20
+ arm_func_start MOD04_021DFB20
+MOD04_021DFB20: ; 0x021DFB20
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x224
mvn ip, #0
@@ -7956,7 +7959,7 @@ FUN_021DFB20: ; 0x021DFB20
mov r4, r2
mov r5, r3
str ip, [sp, #8]
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
bne _021DFB60
ldr r0, _021DFD04 ; =0x0221053C
@@ -7969,23 +7972,23 @@ _021DFB60:
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
_021DFB6C:
- bl FUN_021DF6CC
+ bl MOD04_021DF6CC
ldr r1, _021DFD04 ; =0x0221053C
mov r0, #5
ldr r2, [r1]
str r6, [r2, #0x88]
ldr r1, [r1]
str r4, [r1, #0x8c]
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
mov r0, r7
- bl FUN_021E1F84
+ bl MOD04_021E1F84
movs r4, r0
beq _021DFBB8
ldr r0, _021DFD04 ; =0x0221053C
mov r1, r4
ldr r0, [r0]
add r0, r0, #0x1c
- bl FUN_021F05F4
+ bl MOD04_021F05F4
cmp r0, #0
bne _021DFBC0
_021DFBB8:
@@ -7997,13 +8000,13 @@ _021DFBC0:
ldr r0, [r0]
mov r1, r4
add r0, r0, #0x1c
- bl FUN_021F0664
+ bl MOD04_021F0664
ldr r0, _021DFD04 ; =0x0221053C
ldr r1, [sp, #8]
ldr r0, [r0]
add r2, sp, #0x10
add r0, r0, #0x1c
- bl FUN_021F06E4
+ bl MOD04_021F06E4
ldr r0, [sp, #0x14]
cmp r0, #6
movne r5, #0xb
@@ -8014,7 +8017,7 @@ _021DFBC0:
add r2, sp, #0x18
mov r3, #0x2f
strb r6, [sp, #0xc]
- bl FUN_021DE9F4
+ bl MOD04_021DE9F4
add r0, sp, #0xc
mov r1, #0
mov r2, #0xa
@@ -8024,7 +8027,7 @@ _021DFBC0:
add r1, sp, #0xc
add r2, sp, #0x18
mov r3, #0x2f
- bl FUN_021DE9F4
+ bl MOD04_021DE9F4
add r0, sp, #0xc
mov r1, #0
mov r2, #0xa
@@ -8034,19 +8037,19 @@ _021DFBC0:
moveq r5, #0xd
beq _021DFC8C
ldr r6, [sp, #0x238]
- ldr r1, _021DFD10 ; =FUN_021DF12C
+ ldr r1, _021DFD10 ; =MOD04_021DF12C
mov r0, r4
mov r3, r5
mov r2, #0
str r6, [sp]
- bl FUN_021E9FD0
+ bl MOD04_021E9FD0
add sp, sp, #0x224
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
_021DFC8C:
mov r0, r5
mov r1, #0
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
ldr r0, _021DFD04 ; =0x0221053C
mov r1, #0
ldr r4, [r0]
@@ -8066,11 +8069,11 @@ _021DFC8C:
cmp r0, #5
bne _021DFCF8
mov r0, #3
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
ldr r1, _021DFD14 ; =0x0220D334
mov r0, #1
mov r2, #0
- bl FUN_021E1E30
+ bl MOD04_021E1E30
_021DFCF8:
mov r0, #1
add sp, sp, #0x224
@@ -8079,18 +8082,18 @@ _021DFCF8:
_021DFD04: .word 0x0221053C
_021DFD08: .word 0x0220D344
_021DFD0C: .word 0x0220D348
-_021DFD10: .word FUN_021DF12C
+_021DFD10: .word MOD04_021DF12C
_021DFD14: .word 0x0220D334
- arm_func_start FUN_021DFD18
-FUN_021DFD18: ; 0x021DFD18
+ arm_func_start MOD04_021DFD18
+MOD04_021DFD18: ; 0x021DFD18
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
bne _021DFD50
ldr r0, _021DFDB4 ; =0x0221053C
@@ -8103,7 +8106,7 @@ _021DFD50:
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
_021DFD5C:
- bl FUN_021DF6CC
+ bl MOD04_021DF6CC
ldr r1, _021DFDB4 ; =0x0221053C
mov r2, #0
ldr r3, [r1]
@@ -8113,30 +8116,30 @@ _021DFD5C:
str r5, [r3, #0x8c]
ldr r1, [r1]
strb r2, [r1, #0x2c]
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
sub r0, r7, #1
ldr r5, [sp, #0x18]
- ldr r1, _021DFDB8 ; =FUN_021DF12C
+ ldr r1, _021DFDB8 ; =MOD04_021DF12C
mov r3, r4
and r0, r0, #0xff
mov r2, #0
str r5, [sp]
- bl FUN_021EA138
+ bl MOD04_021EA138
mov r0, #1
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
_021DFDB4: .word 0x0221053C
-_021DFDB8: .word FUN_021DF12C
+_021DFDB8: .word MOD04_021DF12C
- arm_func_start FUN_021DFDBC
-FUN_021DFDBC: ; 0x021DFDBC
+ arm_func_start MOD04_021DFDBC
+MOD04_021DFDBC: ; 0x021DFDBC
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
mov r6, r1
mov r5, r2
mov r4, r3
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
bne _021DFDF8
ldr r0, _021DFE5C ; =0x0221053C
@@ -8155,7 +8158,7 @@ _021DFE04:
ldr r1, [r0]
mov r0, #4
str r5, [r1, #0x7c]
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
ldr r0, _021DFE5C ; =0x0221053C
ldr r1, [sp, #0x20]
ldr r3, [r0]
@@ -8164,28 +8167,28 @@ _021DFE04:
str r1, [sp, #4]
ldr r4, [sp, #0x28]
str r0, [sp, #8]
- ldr r2, _021DFE60 ; =FUN_021DF2B4
+ ldr r2, _021DFE60 ; =MOD04_021DF2B4
add r0, r3, #0xe0
add r1, r3, #0x1e0
mov r3, #0
str r4, [sp, #0xc]
- bl FUN_021E2174
+ bl MOD04_021E2174
mov r0, #1
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021DFE5C: .word 0x0221053C
-_021DFE60: .word FUN_021DF2B4
+_021DFE60: .word MOD04_021DF2B4
- arm_func_start FUN_021DFE64
-FUN_021DFE64: ; 0x021DFE64
+ arm_func_start MOD04_021DFE64
+MOD04_021DFE64: ; 0x021DFE64
stmdb sp!, {r4, r5, r6, lr}
movs r4, r0
mov r6, r2
mov r5, r3
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
bne _021DFE9C
ldr r0, _021DFF6C ; =0x0221053C
@@ -8215,12 +8218,12 @@ _021DFECC:
mov r2, #0x34
bl MIi_CpuClear16
mov r0, r4
- bl FUN_021DE89C
+ bl MOD04_021DE89C
cmp r0, #0x19
movhi r5, #0x19
bhi _021DFF00
mov r0, r4
- bl FUN_021DE89C
+ bl MOD04_021DE89C
mov r5, r0
_021DFF00:
ldr r1, _021DFF6C ; =0x0221053C
@@ -8235,35 +8238,35 @@ _021DFF18:
ldr r0, [r0]
add r0, r0, r5, lsl #1
strh r1, [r0, #0x2e]
- bl FUN_021DDC1C
+ bl MOD04_021DDC1C
cmp r0, #4
beq _021DFF4C
ldr r1, _021DFF70 ; =0xFFFF1596
mov r0, #2
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_021DFF4C:
mov r0, #1
- bl FUN_021DF5CC
+ bl MOD04_021DF5CC
ldr r0, _021DFF6C ; =0x0221053C
ldr r0, [r0]
ldr r0, [r0, #0x68]
- bl FUN_021EE898
+ bl MOD04_021EE898
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021DFF6C: .word 0x0221053C
_021DFF70: .word 0xFFFF1596
- arm_func_start FUN_021DFF74
-FUN_021DFF74: ; 0x021DFF74
+ arm_func_start MOD04_021DFF74
+MOD04_021DFF74: ; 0x021DFF74
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021DD984
+ bl MOD04_021DD984
cmp r0, #0
beq _021DFF8C
- bl FUN_021DF5EC
+ bl MOD04_021DF5EC
_021DFF8C:
ldr r0, _021E01E4 ; =0x0221053C
ldr r0, [r0]
@@ -8274,7 +8277,7 @@ _021DFF8C:
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
@@ -8293,7 +8296,7 @@ _021DFFD8: ; jump table
b _021E013C ; case 5
b _021E014C ; case 6
_021DFFF4:
- bl FUN_021EE6A0
+ bl MOD04_021EE6A0
cmp r0, #1
beq _021E0014
cmp r0, #2
@@ -8307,87 +8310,87 @@ _021E0014:
ldr r0, [r0]
ldr r1, [r0, #0xa0]
add r0, r0, #0x1c
- bl FUN_021F0F94
- bl FUN_021DF414
+ bl MOD04_021F0F94
+ bl MOD04_021DF414
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
ldr r0, _021E01E4 ; =0x0221053C
mov r1, #0
ldr r0, [r0]
- ldr r2, _021E01E8 ; =FUN_021DF0D4
+ ldr r2, _021E01E8 ; =MOD04_021DF0D4
mov r3, r1
add r0, r0, #0x1c
- bl FUN_021F0EB0
- bl FUN_021DF414
+ bl MOD04_021F0EB0
+ bl MOD04_021DF414
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
ldr r0, _021E01E4 ; =0x0221053C
- ldr r2, _021E01EC ; =FUN_021DEF6C
+ ldr r2, _021E01EC ; =MOD04_021DEF6C
ldr r0, [r0]
mov r1, #3
add r0, r0, #0x1c
mov r3, #0
- bl FUN_021F0EB0
- bl FUN_021DF414
+ bl MOD04_021F0EB0
+ bl MOD04_021DF414
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
ldr r0, _021E01E4 ; =0x0221053C
- ldr r2, _021E01F0 ; =FUN_021E20C8
+ ldr r2, _021E01F0 ; =MOD04_021E20C8
ldr r0, [r0]
mov r1, #1
add r0, r0, #0x1c
mov r3, #0
- bl FUN_021F0EB0
- bl FUN_021DF414
+ bl MOD04_021F0EB0
+ bl MOD04_021DF414
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
ldr r0, _021E01E4 ; =0x0221053C
- ldr r2, _021E01F4 ; =FUN_021E1FE4
+ ldr r2, _021E01F4 ; =MOD04_021E1FE4
ldr r0, [r0]
mov r1, #2
add r0, r0, #0x1c
mov r3, #0
- bl FUN_021F0EB0
- bl FUN_021DF414
+ bl MOD04_021F0EB0
+ bl MOD04_021DF414
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
mov r0, #2
- bl FUN_021DF5CC
- bl FUN_021E1034
+ bl MOD04_021DF5CC
+ bl MOD04_021E1034
b _021E0194
_021E00FC:
ldr r1, _021E01F8 ; =0xFFFFB172
mov r0, #3
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
add sp, sp, #4
ldmfd sp!, {pc}
_021E0110:
ldr r1, _021E01FC ; =0xFFFFB17B
mov r0, #4
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
add sp, sp, #4
ldmfd sp!, {pc}
_021E0124:
- bl FUN_021E0F1C
+ bl MOD04_021E0F1C
b _021E0194
_021E012C:
- bl FUN_021E2228
+ bl MOD04_021E2228
mov r0, #0
- bl FUN_021E9568
+ bl MOD04_021E9568
b _021E0194
_021E013C:
mov r0, #1
- bl FUN_021E9568
- bl FUN_021E2228
+ bl MOD04_021E9568
+ bl MOD04_021E2228
b _021E0194
_021E014C:
- bl FUN_021EAA64
- bl FUN_021E2228
+ bl MOD04_021EAA64
+ bl MOD04_021E2228
ldr r0, _021E01E4 ; =0x0221053C
ldr r1, [r0]
ldrb r0, [r1, #0x369]
@@ -8398,14 +8401,14 @@ _021E014C:
bne _021E0180
_021E0174:
mov r0, #1
- bl FUN_021E9568
+ bl MOD04_021E9568
b _021E0194
_021E0180:
ldr r0, [r1]
cmp r0, #0
beq _021E0194
mov r0, #0
- bl FUN_021E9568
+ bl MOD04_021E9568
_021E0194:
ldr r0, _021E01E4 ; =0x0221053C
ldr r1, [r0]
@@ -8416,7 +8419,7 @@ _021E0194:
ldr r0, [r1, #0x364]
cmp r0, #0
beq _021E01CC
- bl FUN_02202280
+ bl MOD04_02202280
ldr r0, _021E01E4 ; =0x0221053C
mov r1, #0
ldr r0, [r0]
@@ -8430,15 +8433,15 @@ _021E01CC:
ldmfd sp!, {pc}
.align 2, 0
_021E01E4: .word 0x0221053C
-_021E01E8: .word FUN_021DF0D4
-_021E01EC: .word FUN_021DEF6C
-_021E01F0: .word FUN_021E20C8
-_021E01F4: .word FUN_021E1FE4
+_021E01E8: .word MOD04_021DF0D4
+_021E01EC: .word MOD04_021DEF6C
+_021E01F0: .word MOD04_021E20C8
+_021E01F4: .word MOD04_021E1FE4
_021E01F8: .word 0xFFFFB172
_021E01FC: .word 0xFFFFB17B
- arm_func_start FUN_021E0200
-FUN_021E0200: ; 0x021E0200
+ arm_func_start MOD04_021E0200
+MOD04_021E0200: ; 0x021E0200
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021E0370 ; =0x0221053C
@@ -8449,7 +8452,7 @@ FUN_021E0200: ; 0x021E0200
ldr r0, [r0, #0x364]
cmp r0, #0
beq _021E023C
- bl FUN_02202280
+ bl MOD04_02202280
ldr r0, _021E0370 ; =0x0221053C
mov r1, #0
ldr r0, [r0]
@@ -8463,14 +8466,14 @@ _021E023C:
ldr r0, [r0, #0x438]
cmp r0, #0
beq _021E0270
- bl FUN_02203E80
+ bl MOD04_02203E80
ldr r0, _021E0370 ; =0x0221053C
mov r1, #0
ldr r0, [r0]
str r1, [r0, #0x438]
_021E0270:
- bl FUN_02200D6C
- bl FUN_021FBE7C
+ bl MOD04_02200D6C
+ bl MOD04_021FBE7C
ldr r0, _021E0370 ; =0x0221053C
ldr ip, [r0]
ldr r0, [ip, #0x1c]
@@ -8480,51 +8483,51 @@ _021E0270:
mov r2, r1
mov r3, r1
add r0, ip, #0x1c
- bl FUN_021F0EB0
+ bl MOD04_021F0EB0
ldr r0, _021E0370 ; =0x0221053C
mov r2, #0
ldr r0, [r0]
mov r3, r2
add r0, r0, #0x1c
mov r1, #3
- bl FUN_021F0EB0
+ bl MOD04_021F0EB0
ldr r0, _021E0370 ; =0x0221053C
mov r2, #0
ldr r0, [r0]
mov r3, r2
add r0, r0, #0x1c
mov r1, #1
- bl FUN_021F0EB0
+ bl MOD04_021F0EB0
ldr r0, _021E0370 ; =0x0221053C
mov r2, #0
ldr r0, [r0]
mov r1, #2
add r0, r0, #0x1c
mov r3, r2
- bl FUN_021F0EB0
+ bl MOD04_021F0EB0
ldr r0, _021E0370 ; =0x0221053C
ldr r0, [r0]
add r0, r0, #0x1c
- bl FUN_021F0F18
+ bl MOD04_021F0F18
ldr r0, _021E0370 ; =0x0221053C
ldr r0, [r0]
add r0, r0, #0x1c
- bl FUN_021F0F64
+ bl MOD04_021F0F64
mov r1, #0
ldr r0, _021E0370 ; =0x0221053C
ldr r0, [r0]
str r1, [r0, #0x1c]
_021E0324:
- bl FUN_021E0E48
- bl FUN_021E1D90
- bl FUN_021E854C
- bl FUN_021EA9C4
+ bl MOD04_021E0E48
+ bl MOD04_021E1D90
+ bl MOD04_021E854C
+ bl MOD04_021EA9C4
ldr r0, _021E0370 ; =0x0221053C
ldr r0, [r0]
ldr r0, [r0]
cmp r0, #0
beq _021E035C
- bl FUN_021FD704
+ bl MOD04_021FD704
ldr r0, _021E0370 ; =0x0221053C
mov r1, #0
ldr r0, [r0]
@@ -8538,8 +8541,8 @@ _021E035C:
.align 2, 0
_021E0370: .word 0x0221053C
- arm_func_start FUN_021E0374
-FUN_021E0374: ; 0x021E0374
+ arm_func_start MOD04_021E0374
+MOD04_021E0374: ; 0x021E0374
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
ldr ip, _021E05D8 ; =0x0221053C
@@ -8547,22 +8550,22 @@ FUN_021E0374: ; 0x021E0374
mov r5, r2
mov r4, r3
str r0, [ip]
- bl FUN_021DD6F0
+ bl MOD04_021DD6F0
ldr r0, _021E05D8 ; =0x0221053C
mov r2, #0
ldr r1, [r0]
- ldr r3, _021E05DC ; =FUN_021E8F80
+ ldr r3, _021E05DC ; =MOD04_021E8F80
str r2, [r1]
ldr r1, [r0]
- ldr r2, _021E05E0 ; =FUN_021DEF60
+ ldr r2, _021E05E0 ; =MOD04_021DEF60
str r3, [r1, #4]
ldr r1, [r0]
ldr ip, [sp, #0x24]
str r2, [r1, #8]
cmp ip, #0
ldr r2, [r0]
- ldr r3, _021E05E4 ; =FUN_021DEBE4
- ldr r1, _021E05E8 ; =FUN_021DEBD8
+ ldr r3, _021E05E4 ; =MOD04_021DEBE4
+ ldr r1, _021E05E8 ; =MOD04_021DEBD8
str r3, [r2, #0xc]
ldr r0, [r0]
ldr r3, [sp, #0x28]
@@ -8617,12 +8620,12 @@ FUN_021E0374: ; 0x021E0374
str r0, [r2, #0x90]
ldr r1, [r1]
str r0, [r1, #0x94]
- bl FUN_021DF6CC
+ bl MOD04_021DF6CC
ldr r0, _021E05D8 ; =0x0221053C
mov r3, r5
ldr r2, [r0]
ldr r1, [r6, #0x24]
- ldr r0, _021E05F4 ; =FUN_021DF304
+ ldr r0, _021E05F4 ; =MOD04_021DF304
str r1, [sp]
add r1, r2, #0x2e
str r1, [sp, #4]
@@ -8632,7 +8635,7 @@ FUN_021E0374: ; 0x021E0374
mov r1, r6
add r2, r2, #0x1c
str r5, [sp, #0xc]
- bl FUN_021E1074
+ bl MOD04_021E1074
ldr r0, _021E05D8 ; =0x0221053C
ldr r2, [sp, #0x30]
ldr r5, [r0]
@@ -8641,7 +8644,7 @@ FUN_021E0374: ; 0x021E0374
add r0, r5, #0x2f8
add r1, r5, #0x1c
add r2, r5, #0x2e
- bl FUN_021E234C
+ bl MOD04_021E234C
ldr r0, _021E05D8 ; =0x0221053C
ldr r1, _021E05EC ; =0x02210F94
ldr r2, [r0]
@@ -8655,12 +8658,12 @@ FUN_021E0374: ; 0x021E0374
add r0, r2, #0x354
add r1, r2, #0x1c
add r3, r2, #4
- bl FUN_021EA368
+ bl MOD04_021EA368
ldr r1, _021E05D8 ; =0x0221053C
ldr r0, _021E05F8 ; =0x000007D8
ldr r1, [r1]
add r0, r1, r0
- bl FUN_021EACB4
+ bl MOD04_021EACB4
mov r0, r4
bl strlen
cmp r0, #0x100
@@ -8697,17 +8700,17 @@ _021E05B4:
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021E05D8: .word 0x0221053C
-_021E05DC: .word FUN_021E8F80
-_021E05E0: .word FUN_021DEF60
-_021E05E4: .word FUN_021DEBE4
-_021E05E8: .word FUN_021DEBD8
+_021E05DC: .word MOD04_021E8F80
+_021E05E0: .word MOD04_021DEF60
+_021E05E4: .word MOD04_021DEBE4
+_021E05E8: .word MOD04_021DEBD8
_021E05EC: .word 0x02210F94
_021E05F0: .word 0x02211094
-_021E05F4: .word FUN_021DF304
+_021E05F4: .word MOD04_021DF304
_021E05F8: .word 0x000007D8
- arm_func_start FUN_021E05FC
-FUN_021E05FC: ; 0x021E05FC
+ arm_func_start MOD04_021E05FC
+MOD04_021E05FC: ; 0x021E05FC
ldr r0, _021E0624 ; =0x022106C8
ldr r0, [r0]
cmp r0, #0
@@ -8722,8 +8725,8 @@ _021E061C:
.align 2, 0
_021E0624: .word 0x022106C8
- arm_func_start FUN_021E0628
-FUN_021E0628: ; 0x021E0628
+ arm_func_start MOD04_021E0628
+MOD04_021E0628: ; 0x021E0628
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x4c
mov r4, r1
@@ -8748,15 +8751,15 @@ FUN_021E0628: ; 0x021E0628
ldr r1, _021E07D0 ; =0x00000705
add r2, sp, #8
mov r0, r5
- bl FUN_021F0B30
- bl FUN_021E0DB0
+ bl MOD04_021F0B30
+ bl MOD04_021E0DB0
cmp r0, #0
addne sp, sp, #0x4c
ldmneia sp!, {r4, r5, pc}
ldr r0, _021E07CC ; =0x022106C8
mov r3, #4
ldr r1, [r0]
- ldr r0, _021E07D4 ; =FUN_021E0628
+ ldr r0, _021E07D4 ; =MOD04_021E0628
str r3, [r1, #4]
mov r2, #0
str r0, [sp]
@@ -8764,16 +8767,16 @@ FUN_021E0628: ; 0x021E0628
ldr r1, [r4, #4]
mov r0, r5
mov r3, r2
- bl FUN_021F0B9C
- bl FUN_021E0DB0
+ bl MOD04_021F0B9C
+ bl MOD04_021E0DB0
add sp, sp, #0x4c
cmp r0, #0
ldmia sp!, {r4, r5, pc}
_021E06DC:
- bl FUN_021F0D54
- ldr r0, _021E07D8 ; =FUN_021E0C80
+ bl MOD04_021F0D54
+ ldr r0, _021E07D8 ; =MOD04_021E0C80
mov r1, #0
- bl FUN_021E0A00
+ bl MOD04_021E0A00
ldr r0, _021E07CC ; =0x022106C8
mov r1, #1
ldr r0, [r0]
@@ -8807,7 +8810,7 @@ _021E0704:
add r1, r1, #0x3c
bl FUN_02096EC0
mov r0, r5
- bl FUN_021F0D54
+ bl MOD04_021F0D54
ldr r0, _021E07CC ; =0x022106C8
ldr r1, _021E07DC ; =0x022106C4
ldr r4, [r0]
@@ -8820,35 +8823,35 @@ _021E0704:
add sp, sp, #0x4c
ldmia sp!, {r4, r5, pc}
_021E079C:
- ldr r0, _021E07D4 ; =FUN_021E0628
+ ldr r0, _021E07D4 ; =MOD04_021E0628
mov r2, #0
str r0, [sp]
str r2, [sp, #4]
ldr r1, [r4, #4]
mov r0, r5
mov r3, r2
- bl FUN_021F0B9C
- bl FUN_021E0DB0
+ bl MOD04_021F0B9C
+ bl MOD04_021E0DB0
cmp r0, #0
add sp, sp, #0x4c
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021E07CC: .word 0x022106C8
_021E07D0: .word 0x00000705
-_021E07D4: .word FUN_021E0628
-_021E07D8: .word FUN_021E0C80
+_021E07D4: .word MOD04_021E0628
+_021E07D8: .word MOD04_021E0C80
_021E07DC: .word 0x022106C4
_021E07E0: .word 0x022106CC
- arm_func_start FUN_021E07E4
-FUN_021E07E4: ; 0x021E07E4
+ arm_func_start MOD04_021E07E4
+MOD04_021E07E4: ; 0x021E07E4
stmdb sp!, {lr}
sub sp, sp, #0x3d4
- bl FUN_021D988C
+ bl MOD04_021D988C
cmp r0, #0x15
bne _021E08BC
add r0, sp, #0
- bl FUN_021D97F8
+ bl MOD04_021D97F8
ldr r0, _021E09DC ; =0x022106C8
add r1, sp, #0x4a
ldr r0, [r0]
@@ -8860,13 +8863,13 @@ FUN_021E07E4: ; 0x021E07E4
add r1, r1, #0x77
add r0, r0, #0x148
bl strcpy
- bl FUN_021D991C
+ bl MOD04_021D991C
ldr r1, _021E09DC ; =0x022106C8
mov r0, #0
ldr r1, [r1]
mov r2, r0
ldr r1, [r1, #0x24]
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r0, _021E09DC ; =0x022106C8
mov r2, #0
ldr r1, [r0]
@@ -8889,16 +8892,16 @@ FUN_021E07E4: ; 0x021E07E4
ldmfd sp!, {pc}
_021E0898:
ldr r0, _021E09DC ; =0x022106C8
- ldr r2, _021E09E8 ; =FUN_021E0C98
+ ldr r2, _021E09E8 ; =MOD04_021E0C98
ldr r1, [r0]
mov r3, #3
add r0, r1, #0x48
add r1, r1, #0x148
- bl FUN_021E0BE0
+ bl MOD04_021E0BE0
add sp, sp, #0x3d4
ldmfd sp!, {pc}
_021E08BC:
- bl FUN_021D988C
+ bl MOD04_021D988C
cmp r0, #0
addeq sp, sp, #0x3d4
ldmeqia sp!, {pc}
@@ -8920,25 +8923,25 @@ _021E08BC:
cmpeq r0, r2
bls _021E0958
add r0, sp, #0x1c4
- bl FUN_021D97F8
- bl FUN_021D991C
+ bl MOD04_021D97F8
+ bl MOD04_021D991C
ldr r1, _021E09DC ; =0x022106C8
mov r0, #0
ldr r1, [r1]
mov r2, r0
ldr r1, [r1, #0x24]
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r0, _021E09DC ; =0x022106C8
mov r2, #0
ldr r1, [r0]
mov r0, #2
str r2, [r1, #0x24]
ldr r1, [sp, #0x1c4]
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
add sp, sp, #0x3d4
ldmfd sp!, {pc}
_021E0958:
- bl FUN_021D991C
+ bl MOD04_021D991C
add r0, sp, #0x388
mov r1, #0
mov r2, #0x48
@@ -8946,7 +8949,7 @@ _021E0958:
ldr r0, _021E09DC ; =0x022106C8
ldr r0, [r0]
ldr r0, [r0, #0x10]
- bl FUN_021DE89C
+ bl MOD04_021DE89C
ldr r1, _021E09DC ; =0x022106C8
mov r2, r0, lsl #1
ldr r1, [r1]
@@ -8960,30 +8963,30 @@ _021E0958:
add r0, sp, #0x3bc
add r1, r2, r1
bl strcpy
- ldr r2, _021E09F8 ; =FUN_021DD944
+ ldr r2, _021E09F8 ; =MOD04_021DD944
ldr r0, _021E09DC ; =0x022106C8
str r2, [sp, #0x3c8]
- ldr r2, _021E09FC ; =FUN_021DD904
+ ldr r2, _021E09FC ; =MOD04_021DD904
ldr r1, [r0]
str r2, [sp, #0x3cc]
ldr r1, [r1, #0x24]
add r0, sp, #0x388
- bl FUN_021D9ACC
+ bl MOD04_021D9ACC
add sp, sp, #0x3d4
ldmfd sp!, {pc}
.align 2, 0
_021E09DC: .word 0x022106C8
_021E09E0: .word 0x022106C4
_021E09E4: .word 0x022106CC
-_021E09E8: .word FUN_021E0C98
+_021E09E8: .word MOD04_021E0C98
_021E09EC: .word 0x000082EA
_021E09F0: .word 0x00002710
_021E09F4: .word 0x00000251
-_021E09F8: .word FUN_021DD944
-_021E09FC: .word FUN_021DD904
+_021E09F8: .word MOD04_021DD944
+_021E09FC: .word MOD04_021DD904
- arm_func_start FUN_021E0A00
-FUN_021E0A00: ; 0x021E0A00
+ arm_func_start MOD04_021E0A00
+MOD04_021E0A00: ; 0x021E0A00
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x4c
mov r5, r0
@@ -9063,7 +9066,7 @@ _021E0B1C:
ldr r0, _021E0BB8 ; =0x022106C8
ldr r0, [r0]
ldr r0, [r0, #0x10]
- bl FUN_021DE89C
+ bl MOD04_021DE89C
ldr r1, _021E0BB8 ; =0x022106C8
mov r2, r0, lsl #1
ldr r1, [r1]
@@ -9077,14 +9080,14 @@ _021E0B1C:
add r0, sp, #0x34
add r1, r2, r1
bl strcpy
- ldr r4, _021E0BD4 ; =FUN_021DD944
- ldr r3, _021E0BD8 ; =FUN_021DD904
+ ldr r4, _021E0BD4 ; =MOD04_021DD944
+ ldr r3, _021E0BD8 ; =MOD04_021DD904
ldr r1, _021E0BDC ; =0x00001C10
mov r0, #0
mov r2, #4
str r4, [sp, #0x40]
str r3, [sp, #0x44]
- bl FUN_021DD924
+ bl MOD04_021DD924
ldr r1, _021E0BB8 ; =0x022106C8
mov r4, r0
ldr r0, [r1]
@@ -9096,7 +9099,7 @@ _021E0B1C:
str r1, [r2, #0x2c]
mov r1, r4
add r0, sp, #0
- bl FUN_021D9ACC
+ bl MOD04_021D9ACC
add sp, sp, #0x4c
ldmia sp!, {r4, r5, pc}
.align 2, 0
@@ -9107,12 +9110,12 @@ _021E0BC4: .word 0x6C078965
_021E0BC8: .word 0x5D588B65
_021E0BCC: .word 0x00269EC3
_021E0BD0: .word 0x00000251
-_021E0BD4: .word FUN_021DD944
-_021E0BD8: .word FUN_021DD904
+_021E0BD4: .word MOD04_021DD944
+_021E0BD8: .word MOD04_021DD904
_021E0BDC: .word 0x00001C10
- arm_func_start FUN_021E0BE0
-FUN_021E0BE0: ; 0x021E0BE0
+ arm_func_start MOD04_021E0BE0
+MOD04_021E0BE0: ; 0x021E0BE0
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
ldr r4, _021E0C7C ; =0x022106C8
@@ -9144,8 +9147,8 @@ FUN_021E0BE0: ; 0x021E0BE0
ldr r0, [r2]
add r1, r2, #0x48
add r2, r2, #0x148
- bl FUN_021F0D8C
- bl FUN_021E0DB0
+ bl MOD04_021F0D8C
+ bl MOD04_021E0DB0
cmp r0, #0
ldreq r0, _021E0C7C ; =0x022106C8
ldreq r0, [r0]
@@ -9155,18 +9158,18 @@ FUN_021E0BE0: ; 0x021E0BE0
.align 2, 0
_021E0C7C: .word 0x022106C8
- arm_func_start FUN_021E0C80
-FUN_021E0C80: ; 0x021E0C80
- ldr ip, _021E0C90 ; =FUN_021E0BE0
- ldr r2, _021E0C94 ; =FUN_021E0C98
+ arm_func_start MOD04_021E0C80
+MOD04_021E0C80: ; 0x021E0C80
+ ldr ip, _021E0C90 ; =MOD04_021E0BE0
+ ldr r2, _021E0C94 ; =MOD04_021E0C98
mov r3, #2
bx ip
.align 2, 0
-_021E0C90: .word FUN_021E0BE0
-_021E0C94: .word FUN_021E0C98
+_021E0C90: .word MOD04_021E0BE0
+_021E0C94: .word MOD04_021E0C98
- arm_func_start FUN_021E0C98
-FUN_021E0C98: ; 0x021E0C98
+ arm_func_start MOD04_021E0C98
+MOD04_021E0C98: ; 0x021E0C98
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r3, _021E0DA0 ; =0x022106C8
@@ -9190,8 +9193,8 @@ FUN_021E0C98: ; 0x021E0C98
mov r3, #5
mov r0, #1
str r3, [ip, #4]
- bl FUN_021E1E30
- bl FUN_021E0DB0
+ bl MOD04_021E1E30
+ bl MOD04_021E0DB0
cmp r0, #0
addne sp, sp, #8
ldmneia sp!, {r4, pc}
@@ -9202,48 +9205,48 @@ FUN_021E0C98: ; 0x021E0C98
ldr r2, [r3, #0x18]
ldr r3, [r3, #0x14]
blx r3
- bl FUN_021DF7C4
+ bl MOD04_021DF7C4
cmp r0, #0
addne sp, sp, #8
ldmneia sp!, {r4, pc}
ldr r0, [r4, #4]
- bl FUN_021EA1E0
+ bl MOD04_021EA1E0
add sp, sp, #8
cmp r0, #0
ldmia sp!, {r4, pc}
_021E0D48:
ldr r1, _021E0DA8 ; =0xFFFF15A0
mov r0, #6
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
add sp, sp, #8
ldmia sp!, {r4, pc}
_021E0D5C:
cmp r1, #3
addne sp, sp, #8
ldmneia sp!, {r4, pc}
- ldr r1, _021E0DAC ; =FUN_021E0628
+ ldr r1, _021E0DAC ; =MOD04_021E0628
mov r3, r2
str r1, [sp]
str r2, [sp, #4]
ldr r1, [r4, #4]
- bl FUN_021F0B9C
- bl FUN_021E0DB0
+ bl MOD04_021F0B9C
+ bl MOD04_021E0DB0
add sp, sp, #8
cmp r0, #0
ldmia sp!, {r4, pc}
_021E0D90:
mov r0, r1
- bl FUN_021E0DB0
+ bl MOD04_021E0DB0
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
_021E0DA0: .word 0x022106C8
_021E0DA4: .word 0x0220D34C
_021E0DA8: .word 0xFFFF15A0
-_021E0DAC: .word FUN_021E0628
+_021E0DAC: .word MOD04_021E0628
- arm_func_start FUN_021E0DB0
-FUN_021E0DB0: ; 0x021E0DB0
+ arm_func_start MOD04_021E0DB0
+MOD04_021E0DB0: ; 0x021E0DB0
stmdb sp!, {r4, lr}
movs r4, r0
moveq r0, #0
@@ -9275,14 +9278,14 @@ _021E0E04:
_021E0E0C:
ldr r1, _021E0E20 ; =0xFFFF11B8
add r1, r2, r1
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_021E0E20: .word 0xFFFF11B8
- arm_func_start FUN_021E0E24
-FUN_021E0E24: ; 0x021E0E24
+ arm_func_start MOD04_021E0E24
+MOD04_021E0E24: ; 0x021E0E24
ldr r0, _021E0E44 ; =0x022106C8
ldr r2, [r0]
cmp r2, #0
@@ -9294,8 +9297,8 @@ FUN_021E0E24: ; 0x021E0E24
.align 2, 0
_021E0E44: .word 0x022106C8
- arm_func_start FUN_021E0E48
-FUN_021E0E48: ; 0x021E0E48
+ arm_func_start MOD04_021E0E48
+MOD04_021E0E48: ; 0x021E0E48
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021E0EA8 ; =0x022106C8
@@ -9303,14 +9306,14 @@ FUN_021E0E48: ; 0x021E0E48
ldr r0, [r0, #0x24]
cmp r0, #0
beq _021E0E94
- bl FUN_021D9974
- bl FUN_021D991C
+ bl MOD04_021D9974
+ bl MOD04_021D991C
ldr r1, _021E0EA8 ; =0x022106C8
mov r0, #0
ldr r1, [r1]
mov r2, r0
ldr r1, [r1, #0x24]
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r0, _021E0EA8 ; =0x022106C8
mov r1, #0
ldr r0, [r0]
@@ -9324,8 +9327,8 @@ _021E0E94:
.align 2, 0
_021E0EA8: .word 0x022106C8
- arm_func_start FUN_021E0EAC
-FUN_021E0EAC: ; 0x021E0EAC
+ arm_func_start MOD04_021E0EAC
+MOD04_021E0EAC: ; 0x021E0EAC
stmdb sp!, {r4, lr}
ldr r2, _021E0EFC ; =0x022106C8
mov r4, r0
@@ -9334,7 +9337,7 @@ FUN_021E0EAC: ; 0x021E0EAC
ldmeqia sp!, {r4, pc}
cmp r4, #0
ldmeqia sp!, {r4, pc}
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
ldr r0, _021E0EFC ; =0x022106C8
ldr r0, [r0]
ldr r3, [r0, #0x14]
@@ -9345,13 +9348,13 @@ FUN_021E0EAC: ; 0x021E0EAC
mov r1, #0
blx r3
_021E0EF4:
- bl FUN_021E0E24
+ bl MOD04_021E0E24
ldmia sp!, {r4, pc}
.align 2, 0
_021E0EFC: .word 0x022106C8
- arm_func_start FUN_021E0F00
-FUN_021E0F00: ; 0x021E0F00
+ arm_func_start MOD04_021E0F00
+MOD04_021E0F00: ; 0x021E0F00
ldr r0, _021E0F18 ; =0x022106C8
ldr r0, [r0]
cmp r0, #0
@@ -9361,8 +9364,8 @@ FUN_021E0F00: ; 0x021E0F00
.align 2, 0
_021E0F18: .word 0x022106C8
- arm_func_start FUN_021E0F1C
-FUN_021E0F1C: ; 0x021E0F1C
+ arm_func_start MOD04_021E0F1C
+MOD04_021E0F1C: ; 0x021E0F1C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021E1024 ; =0x022106C8
@@ -9370,7 +9373,7 @@ FUN_021E0F1C: ; 0x021E0F1C
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
@@ -9388,7 +9391,7 @@ _021E0F60: ; jump table
b _021E0F84 ; case 4
b _021E101C ; case 5
_021E0F78:
- bl FUN_021E07E4
+ bl MOD04_021E07E4
add sp, sp, #4
ldmfd sp!, {pc}
_021E0F84:
@@ -9398,7 +9401,7 @@ _021E0F84:
ldr r1, [r0]
cmp r1, #0
beq _021E0FA0
- bl FUN_021F0F18
+ bl MOD04_021F0F18
_021E0FA0:
ldr r0, _021E1024 ; =0x022106C8
ldr r0, [r0]
@@ -9426,7 +9429,7 @@ _021E0FA0:
ldmlsia sp!, {pc}
ldr r1, _021E1030 ; =0xFFFF1172
mov r0, #6
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
ldr r0, _021E1024 ; =0x022106C8
mov r1, #0
ldr r0, [r0]
@@ -9440,13 +9443,13 @@ _021E1028: .word 0x000082EA
_021E102C: .word 0x0000EA60
_021E1030: .word 0xFFFF1172
- arm_func_start FUN_021E1034
-FUN_021E1034: ; 0x021E1034
+ arm_func_start MOD04_021E1034
+MOD04_021E1034: ; 0x021E1034
stmdb sp!, {lr}
sub sp, sp, #4
- ldr r0, _021E106C ; =FUN_021E0C80
+ ldr r0, _021E106C ; =MOD04_021E0C80
mov r1, #0
- bl FUN_021E0A00
+ bl MOD04_021E0A00
ldr r0, _021E1070 ; =0x022106C8
mov r3, #1
ldr r2, [r0]
@@ -9457,11 +9460,11 @@ FUN_021E1034: ; 0x021E1034
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
-_021E106C: .word FUN_021E0C80
+_021E106C: .word MOD04_021E0C80
_021E1070: .word 0x022106C8
- arm_func_start FUN_021E1074
-FUN_021E1074: ; 0x021E1074
+ arm_func_start MOD04_021E1074
+MOD04_021E1074: ; 0x021E1074
stmdb sp!, {r4, r5, r6, lr}
ldr ip, _021E10F4 ; =0x022106C8
mov r6, r1
@@ -9497,8 +9500,8 @@ FUN_021E1074: ; 0x021E1074
.align 2, 0
_021E10F4: .word 0x022106C8
- arm_func_start FUN_021E10F8
-FUN_021E10F8: ; 0x021E10F8
+ arm_func_start MOD04_021E10F8
+MOD04_021E10F8: ; 0x021E10F8
ldr r0, _021E1108 ; =0x022106D0
ldr r0, [r0]
ldr r0, [r0, #0x20]
@@ -9506,8 +9509,8 @@ FUN_021E10F8: ; 0x021E10F8
.align 2, 0
_021E1108: .word 0x022106D0
- arm_func_start FUN_021E110C
-FUN_021E110C: ; 0x021E110C
+ arm_func_start MOD04_021E110C
+MOD04_021E110C: ; 0x021E110C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x24
mov sl, r1
@@ -9534,7 +9537,7 @@ _021E115C:
bl FUN_02097484
cmp r0, #1
bne _021E11C8
- bl FUN_021E0F00
+ bl MOD04_021E0F00
ldr r1, [r4]
add r2, sp, #8
ldr r1, [r1, #0x18]
@@ -9578,7 +9581,7 @@ _021E11F8:
streq fp, [sp]
beq _021E125C
ldr r6, [sl, #4]
- bl FUN_021E0F00
+ bl MOD04_021E0F00
ldr r1, [r4]
ldr r1, [r1, #0x18]
add r1, r1, r7
@@ -9608,11 +9611,11 @@ _021E1274:
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
ldr r0, [r2, #0x18]
ldr r2, [sl, #4]
- bl FUN_021E17F0
+ bl MOD04_021E17F0
ldr r1, [sp]
cmp r1, #0
beq _021E129C
- bl FUN_021E1DA4
+ bl MOD04_021E1DA4
_021E129C:
ldr r0, _021E12B4 ; =0x022106D0
mov r1, #1
@@ -9623,8 +9626,8 @@ _021E129C:
.align 2, 0
_021E12B4: .word 0x022106D0
- arm_func_start FUN_021E12B8
-FUN_021E12B8: ; 0x021E12B8
+ arm_func_start MOD04_021E12B8
+MOD04_021E12B8: ; 0x021E12B8
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x1c
mov sb, r1
@@ -9650,7 +9653,7 @@ _021E1304:
bl FUN_02097484
cmp r0, #1
bne _021E136C
- bl FUN_021E0F00
+ bl MOD04_021E0F00
ldr r1, [r4]
add r2, sp, #4
ldr r1, [r1, #0x18]
@@ -9663,7 +9666,7 @@ _021E1304:
bne _021E13CC
ldr r1, [sb, #4]
mov r0, sl
- bl FUN_021F0944
+ bl MOD04_021F0944
ldr r0, [r4]
ldr r1, [sb, #4]
ldr r0, [r0, #0x18]
@@ -9686,7 +9689,7 @@ _021E136C:
bne _021E13CC
_021E139C:
ldr r6, [sb, #4]
- bl FUN_021E0F00
+ bl MOD04_021E0F00
ldr r1, [r4]
ldr r1, [r1, #0x18]
add r1, r1, r7
@@ -9695,7 +9698,7 @@ _021E139C:
bne _021E13CC
mov r0, sl
mov r1, r6
- bl FUN_021F0944
+ bl MOD04_021F0944
mov fp, r5
_021E13CC:
ldr r1, [r4]
@@ -9708,20 +9711,20 @@ _021E13E4:
cmp fp, #0
beq _021E13FC
ldr r0, [sb, #4]
- bl FUN_021E17BC
+ bl MOD04_021E17BC
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021E13FC:
ldr r1, [sb, #4]
mov r0, sl
- bl FUN_021F0864
+ bl MOD04_021F0864
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_021E1410: .word 0x022106D0
- arm_func_start FUN_021E1414
-FUN_021E1414: ; 0x021E1414
+ arm_func_start MOD04_021E1414
+MOD04_021E1414: ; 0x021E1414
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov sb, r1
@@ -9761,7 +9764,7 @@ _021E1498:
ldr r0, [r0, #0x18]
ldr r2, [r1, r4]
mov r1, r8
- bl FUN_021E1900
+ bl MOD04_021E1900
cmp r0, #0
beq _021E14E8
ldr r0, _021E1670 ; =0x022106D0
@@ -9794,14 +9797,14 @@ _021E1514:
mov r0, sl
ldr r1, [r1, r7]
mov r2, fp
- bl FUN_021F0664
- bl FUN_021E1678
+ bl MOD04_021F0664
+ bl MOD04_021E1678
ldr r0, [sp]
cmp r0, r4
bne _021E1548
ldr r0, [sb, #0xc]
ldr r0, [r0, r7]
- bl FUN_021E17BC
+ bl MOD04_021E17BC
b _021E15B0
_021E1548:
ldr r0, _021E1670 ; =0x022106D0
@@ -9817,7 +9820,7 @@ _021E1548:
add r0, r0, r6
bl FUN_02097414
mov r0, r8
- bl FUN_021E1DA4
+ bl MOD04_021E1DA4
ldr r0, _021E1670 ; =0x022106D0
mov r2, #1
ldr r4, [r0]
@@ -9855,7 +9858,7 @@ _021E15FC:
ldr r0, [sb]
cmp r0, #0
beq _021E1618
- bl FUN_021E1678
+ bl MOD04_021E1678
add sp, sp, #4
cmp r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -9887,8 +9890,8 @@ _021E1648:
_021E1670: .word 0x022106D0
_021E1674: .word 0x00000601
- arm_func_start FUN_021E1678
-FUN_021E1678: ; 0x021E1678
+ arm_func_start MOD04_021E1678
+MOD04_021E1678: ; 0x021E1678
stmdb sp!, {r4, lr}
movs r4, r0
moveq r0, #0
@@ -9920,14 +9923,14 @@ _021E16CC:
_021E16D4:
ldr r1, _021E16E8 ; =0xFFFEEAA8
add r1, r2, r1
- bl FUN_021E2114
+ bl MOD04_021E2114
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_021E16E8: .word 0xFFFEEAA8
- arm_func_start FUN_021E16EC
-FUN_021E16EC: ; 0x021E16EC
+ arm_func_start MOD04_021E16EC
+MOD04_021E16EC: ; 0x021E16EC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r2, _021E17B8 ; =0x022106D0
@@ -9938,7 +9941,7 @@ FUN_021E16EC: ; 0x021E16EC
str r3, [sp]
cmp r2, #0
beq _021E1720
- bl FUN_021E05FC
+ bl MOD04_021E05FC
cmp r0, #0
bne _021E172C
_021E1720:
@@ -9946,7 +9949,7 @@ _021E1720:
mov r0, #0
ldmia sp!, {r4, r5, pc}
_021E172C:
- bl FUN_021E0F00
+ bl MOD04_021E0F00
mov r1, r5
bl FUN_02096DA0
mov r5, r0
@@ -9957,7 +9960,7 @@ _021E172C:
ldr r0, [r0]
mov r1, r5
ldr r0, [r0, #4]
- bl FUN_021F0664
+ bl MOD04_021F0664
cmp r0, #0
addne sp, sp, #4
movne r0, #0
@@ -9978,7 +9981,7 @@ _021E1790:
mov r2, r4
ldr r0, [r0]
ldr r0, [r0, #4]
- bl FUN_021F06E4
+ bl MOD04_021F06E4
cmp r0, #0
movne r0, #0
moveq r0, #1
@@ -9987,25 +9990,25 @@ _021E1790:
.align 2, 0
_021E17B8: .word 0x022106D0
- arm_func_start FUN_021E17BC
-FUN_021E17BC: ; 0x021E17BC
+ arm_func_start MOD04_021E17BC
+MOD04_021E17BC: ; 0x021E17BC
stmdb sp!, {r4, lr}
ldr r2, _021E17E8 ; =0x022106D0
mov r1, r0
ldr r0, [r2]
ldr r2, _021E17EC ; =0x0220D350
ldr r0, [r0, #4]
- bl FUN_021F09B0
+ bl MOD04_021F09B0
mov r4, r0
- bl FUN_021E1678
+ bl MOD04_021E1678
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_021E17E8: .word 0x022106D0
_021E17EC: .word 0x0220D350
- arm_func_start FUN_021E17F0
-FUN_021E17F0: ; 0x021E17F0
+ arm_func_start MOD04_021E17F0
+MOD04_021E17F0: ; 0x021E17F0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
mov sl, r1
@@ -10022,7 +10025,7 @@ FUN_021E17F0: ; 0x021E17F0
str r0, [sp, #8]
_021E1828:
mov r0, r8
- bl FUN_021E1F84
+ bl MOD04_021E1F84
movs sb, r0
beq _021E18DC
ldr r0, [sp]
@@ -10035,7 +10038,7 @@ _021E1828:
mla r4, r7, r0, fp
_021E1858:
mov r0, r7
- bl FUN_021E1F84
+ bl MOD04_021E1F84
cmp sb, r0
bne _021E18CC
mov r0, r6
@@ -10060,7 +10063,7 @@ _021E18AC:
mov r0, fp
mov r1, r7
mov r2, r8
- bl FUN_021E19B8
+ bl MOD04_021E19B8
ldr r0, _021E18FC ; =0x022106D0
ldr r1, [r0]
ldr r0, [sp, #8]
@@ -10083,8 +10086,8 @@ _021E18F0:
.align 2, 0
_021E18FC: .word 0x022106D0
- arm_func_start FUN_021E1900
-FUN_021E1900: ; 0x021E1900
+ arm_func_start MOD04_021E1900
+MOD04_021E1900: ; 0x021E1900
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r6, r1
@@ -10095,7 +10098,7 @@ FUN_021E1900: ; 0x021E1900
ble _021E19A8
_021E1920:
mov r0, r4
- bl FUN_021E1F84
+ bl MOD04_021E1F84
cmp r0, #0
beq _021E199C
cmp r0, r5
@@ -10113,13 +10116,13 @@ _021E1920:
mov r0, r7
mov r1, r4
mov r2, r6
- bl FUN_021E19B8
+ bl MOD04_021E19B8
b _021E1984
_021E1974:
mov r0, r7
mov r1, r6
mov r2, r4
- bl FUN_021E19B8
+ bl MOD04_021E19B8
_021E1984:
ldr r1, _021E19B4 ; =0x022106D0
mov r0, #1
@@ -10138,8 +10141,8 @@ _021E19A8:
.align 2, 0
_021E19B4: .word 0x022106D0
- arm_func_start FUN_021E19B8
-FUN_021E19B8: ; 0x021E19B8
+ arm_func_start MOD04_021E19B8
+MOD04_021E19B8: ; 0x021E19B8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r3, _021E1A1C ; =0x022106D0
@@ -10168,8 +10171,8 @@ FUN_021E19B8: ; 0x021E19B8
.align 2, 0
_021E1A1C: .word 0x022106D0
- arm_func_start FUN_021E1A20
-FUN_021E1A20: ; 0x021E1A20
+ arm_func_start MOD04_021E1A20
+MOD04_021E1A20: ; 0x021E1A20
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, _021E1A5C ; =0x022106D0
@@ -10188,8 +10191,8 @@ FUN_021E1A20: ; 0x021E1A20
.align 2, 0
_021E1A5C: .word 0x022106D0
- arm_func_start FUN_021E1A60
-FUN_021E1A60: ; 0x021E1A60
+ arm_func_start MOD04_021E1A60
+MOD04_021E1A60: ; 0x021E1A60
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x24c
ldr r2, _021E1CC4 ; =0x022106D0
@@ -10201,8 +10204,8 @@ FUN_021E1A60: ; 0x021E1A60
bne _021E1B8C
ldr r0, [r2, #4]
add r1, sp, #0x18
- bl FUN_021F0828
- bl FUN_021E1678
+ bl MOD04_021F0828
+ bl MOD04_021E1678
ldr r0, [sp, #0x18]
mov fp, #0
str fp, [sp, #0x1c]
@@ -10216,14 +10219,14 @@ _021E1AB4:
ldr r1, [sp, #0x1c]
ldr r0, [r0, #4]
add r2, sp, #0x38
- bl FUN_021F06E4
- bl FUN_021E1678
+ bl MOD04_021F06E4
+ bl MOD04_021E1678
mov r4, fp
cmp r5, #0
ble _021E1B30
_021E1AD8:
mov r0, r4
- bl FUN_021E1F84
+ bl MOD04_021E1F84
ldr r1, [sp, #0x38]
cmp r1, r0
bne _021E1B24
@@ -10251,8 +10254,8 @@ _021E1B30:
ldr r0, [r8]
ldr r1, [sp, #0x38]
ldr r0, [r0, #4]
- bl FUN_021F0580
- bl FUN_021E1678
+ bl MOD04_021F0580
+ bl MOD04_021E1678
ldr r1, [sp, #0x18]
ldr r0, [sp, #0x1c]
sub r1, r1, #1
@@ -10282,37 +10285,37 @@ _021E1B8C:
mov r8, #0xc
mvn sb, #0
_021E1BB0:
- bl FUN_021E1F84
+ bl MOD04_021E1F84
movs r7, r0
beq _021E1C08
ldr r1, [sl]
mov r0, r6
ldrb r1, [r1, #0x1c]
mov r2, r7
- bl FUN_021E1900
+ bl MOD04_021E1900
cmp r0, #0
bne _021E1C9C
ldr r0, [sl]
mov r1, r7
ldr r0, [r0, #4]
mov r2, r4
- bl FUN_021F0664
- bl FUN_021E1678
+ bl MOD04_021F0664
+ bl MOD04_021E1678
ldr r0, [sp, #0x1c]
cmp r0, sb
bne _021E1C9C
mov r0, r7
- bl FUN_021E17BC
+ bl MOD04_021E17BC
b _021E1C9C
_021E1C08:
- bl FUN_021E0F00
+ bl MOD04_021E0F00
ldr r1, [sl]
ldrb r2, [r1, #0x1c]
mla r1, r2, r8, r6
bl FUN_02096DA0
cmp r0, sb
bne _021E1C9C
- bl FUN_021E0F00
+ bl MOD04_021E0F00
ldr r2, _021E1CC4 ; =0x022106D0
mov r1, #0xc
ldr r3, [r2]
@@ -10327,7 +10330,7 @@ _021E1C08:
str r1, [sp]
str r2, [sp, #4]
str r1, [sp, #8]
- ldr r0, _021E1CC8 ; =FUN_021E1414
+ ldr r0, _021E1CC8 ; =MOD04_021E1414
str r1, [sp, #0xc]
str r0, [sp, #0x10]
ldrb r0, [r4, #0x1c]
@@ -10335,7 +10338,7 @@ _021E1C08:
mov r3, r1
str r0, [sp, #0x14]
ldr r0, [r4, #4]
- bl FUN_021F0C84
+ bl MOD04_021F0C84
ldr r0, _021E1CC4 ; =0x022106D0
mov r1, #2
ldr r0, [r0]
@@ -10355,10 +10358,10 @@ _021E1C9C:
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_021E1CC4: .word 0x022106D0
-_021E1CC8: .word FUN_021E1414
+_021E1CC8: .word MOD04_021E1414
- arm_func_start FUN_021E1CCC
-FUN_021E1CCC: ; 0x021E1CCC
+ arm_func_start MOD04_021E1CCC
+MOD04_021E1CCC: ; 0x021E1CCC
ldr r0, _021E1CF8 ; =0x022106D0
ldr r1, [r0]
cmp r1, #0
@@ -10373,8 +10376,8 @@ FUN_021E1CCC: ; 0x021E1CCC
.align 2, 0
_021E1CF8: .word 0x022106D0
- arm_func_start FUN_021E1CFC
-FUN_021E1CFC: ; 0x021E1CFC
+ arm_func_start MOD04_021E1CFC
+MOD04_021E1CFC: ; 0x021E1CFC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r0, _021E1D88 ; =0x022106D0
@@ -10400,7 +10403,7 @@ FUN_021E1CFC: ; 0x021E1CFC
str r1, [r4, #8]
ldr r0, [r0]
ldr r0, [r0, #4]
- bl FUN_021F0F18
+ bl MOD04_021F0F18
mov r5, r0
bl OS_GetTick
ldr r2, _021E1D88 ; =0x022106D0
@@ -10415,8 +10418,8 @@ _021E1D7C:
_021E1D88: .word 0x022106D0
_021E1D8C: .word 0x000082EA
- arm_func_start FUN_021E1D90
-FUN_021E1D90: ; 0x021E1D90
+ arm_func_start MOD04_021E1D90
+MOD04_021E1D90: ; 0x021E1D90
ldr r0, _021E1DA0 ; =0x022106D0
mov r1, #0
str r1, [r0]
@@ -10424,8 +10427,8 @@ FUN_021E1D90: ; 0x021E1D90
.align 2, 0
_021E1DA0: .word 0x022106D0
- arm_func_start FUN_021E1DA4
-FUN_021E1DA4: ; 0x021E1DA4
+ arm_func_start MOD04_021E1DA4
+MOD04_021E1DA4: ; 0x021E1DA4
stmdb sp!, {r4, lr}
sub sp, sp, #0x210
ldr r1, _021E1E2C ; =0x022106D0
@@ -10450,7 +10453,7 @@ _021E1DD8:
mov r0, #0xc
mla r0, r4, r0, r1
add r1, sp, #0x108
- bl FUN_021E26B8
+ bl MOD04_021E26B8
ldr r2, _021E1E2C ; =0x022106D0
mov r1, r0
ldr r0, [r2]
@@ -10464,8 +10467,8 @@ _021E1DD8:
.align 2, 0
_021E1E2C: .word 0x022106D0
- arm_func_start FUN_021E1E30
-FUN_021E1E30: ; 0x021E1E30
+ arm_func_start MOD04_021E1E30
+MOD04_021E1E30: ; 0x021E1E30
stmdb sp!, {r4, r5, r6, lr}
ldr r3, _021E1ED0 ; =0x022106D0
mov r6, r0
@@ -10474,7 +10477,7 @@ FUN_021E1E30: ; 0x021E1E30
mov r4, r2
cmp r0, #0
beq _021E1E5C
- bl FUN_021E05FC
+ bl MOD04_021E05FC
cmp r0, #0
bne _021E1E64
_021E1E5C:
@@ -10506,13 +10509,13 @@ _021E1E64:
mov r3, r4
ldr r0, [r0]
ldr r0, [r0, #4]
- bl FUN_021F034C
+ bl MOD04_021F034C
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021E1ED0: .word 0x022106D0
- arm_func_start FUN_021E1ED4
-FUN_021E1ED4: ; 0x021E1ED4
+ arm_func_start MOD04_021E1ED4
+MOD04_021E1ED4: ; 0x021E1ED4
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021E1F14 ; =0x022106D0
@@ -10532,8 +10535,8 @@ FUN_021E1ED4: ; 0x021E1ED4
.align 2, 0
_021E1F14: .word 0x022106D0
- arm_func_start FUN_021E1F18
-FUN_021E1F18: ; 0x021E1F18
+ arm_func_start MOD04_021E1F18
+MOD04_021E1F18: ; 0x021E1F18
stmdb sp!, {r4, r5, r6, lr}
ldr r4, _021E1F80 ; =0x022106D0
mov r6, r0
@@ -10552,7 +10555,7 @@ _021E1F40:
ble _021E1F78
_021E1F50:
mov r0, r5
- bl FUN_021E1F84
+ bl MOD04_021E1F84
cmp r6, r0
moveq r0, r5
ldmeqia sp!, {r4, r5, r6, pc}
@@ -10567,8 +10570,8 @@ _021E1F78:
.align 2, 0
_021E1F80: .word 0x022106D0
- arm_func_start FUN_021E1F84
-FUN_021E1F84: ; 0x021E1F84
+ arm_func_start MOD04_021E1F84
+MOD04_021E1F84: ; 0x021E1F84
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r1, _021E1FE0 ; =0x022106D0
@@ -10579,7 +10582,7 @@ FUN_021E1F84: ; 0x021E1F84
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, pc}
- bl FUN_021E0F00
+ bl MOD04_021E0F00
mov r1, #0xc
mla r1, r5, r1, r4
bl FUN_02096DA0
@@ -10596,8 +10599,8 @@ _021E1FD4:
.align 2, 0
_021E1FE0: .word 0x022106D0
- arm_func_start FUN_021E1FE4
-FUN_021E1FE4: ; 0x021E1FE4
+ arm_func_start MOD04_021E1FE4
+MOD04_021E1FE4: ; 0x021E1FE4
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x210
ldr r2, _021E2064 ; =0x022106D0
@@ -10609,7 +10612,7 @@ FUN_021E1FE4: ; 0x021E1FE4
addeq sp, sp, #0x210
ldmeqia sp!, {r4, r5, r6, pc}
ldr r0, [r5]
- bl FUN_021E1F18
+ bl MOD04_021E1F18
mov r4, r0
mvn r0, #0
cmp r4, r0
@@ -10618,7 +10621,7 @@ FUN_021E1FE4: ; 0x021E1FE4
ldr r1, [r5, #8]
add r2, sp, #0
mov r0, r6
- bl FUN_021F06E4
+ bl MOD04_021F06E4
ldr r0, _021E2064 ; =0x022106D0
ldr r1, [sp, #4]
ldr r0, [r0]
@@ -10633,8 +10636,8 @@ FUN_021E1FE4: ; 0x021E1FE4
.align 2, 0
_021E2064: .word 0x022106D0
- arm_func_start FUN_021E2068
-FUN_021E2068: ; 0x021E2068
+ arm_func_start MOD04_021E2068
+MOD04_021E2068: ; 0x021E2068
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r4, r1
@@ -10646,23 +10649,23 @@ FUN_021E2068: ; 0x021E2068
addne sp, sp, #0xc
movne r0, #0
ldmneia sp!, {r4, r5, pc}
- ldr r0, _021E20C4 ; =FUN_021E110C
+ ldr r0, _021E20C4 ; =MOD04_021E110C
mov r2, #0
str r0, [sp]
str r2, [sp, #4]
ldr r1, [r4]
mov r0, r5
mov r3, r2
- bl FUN_021F0B9C
+ bl MOD04_021F0B9C
mov r0, #1
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021E20C0: .word 0x0220D354
-_021E20C4: .word FUN_021E110C
+_021E20C4: .word MOD04_021E110C
- arm_func_start FUN_021E20C8
-FUN_021E20C8: ; 0x021E20C8
+ arm_func_start MOD04_021E20C8
+MOD04_021E20C8: ; 0x021E20C8
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr r2, _021E210C ; =0x022106D0
@@ -10671,21 +10674,21 @@ FUN_021E20C8: ; 0x021E20C8
cmp r2, #0
addeq sp, sp, #0xc
ldmeqia sp!, {pc}
- ldr r3, _021E2110 ; =FUN_021E12B8
+ ldr r3, _021E2110 ; =MOD04_021E12B8
mov r2, #0
str r3, [sp]
str r2, [sp, #4]
ldr r1, [r1]
mov r3, r2
- bl FUN_021F0B9C
+ bl MOD04_021F0B9C
add sp, sp, #0xc
ldmfd sp!, {pc}
.align 2, 0
_021E210C: .word 0x022106D0
-_021E2110: .word FUN_021E12B8
+_021E2110: .word MOD04_021E12B8
- arm_func_start FUN_021E2114
-FUN_021E2114: ; 0x021E2114
+ arm_func_start MOD04_021E2114
+MOD04_021E2114: ; 0x021E2114
stmdb sp!, {r4, lr}
ldr r2, _021E2170 ; =0x022106D0
mov r4, r0
@@ -10694,7 +10697,7 @@ FUN_021E2114: ; 0x021E2114
ldmeqia sp!, {r4, pc}
cmp r4, #0
ldmeqia sp!, {r4, pc}
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
ldr r0, _021E2170 ; =0x022106D0
ldr r3, [r0]
ldr r0, [r3]
@@ -10708,13 +10711,13 @@ FUN_021E2114: ; 0x021E2114
mov r0, r4
blx r3
_021E2168:
- bl FUN_021E1CCC
+ bl MOD04_021E1CCC
ldmia sp!, {r4, pc}
.align 2, 0
_021E2170: .word 0x022106D0
- arm_func_start FUN_021E2174
-FUN_021E2174: ; 0x021E2174
+ arm_func_start MOD04_021E2174
+MOD04_021E2174: ; 0x021E2174
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r0, _021E2224 ; =0x022106D0
@@ -10762,8 +10765,8 @@ FUN_021E2174: ; 0x021E2174
.align 2, 0
_021E2224: .word 0x022106D0
- arm_func_start FUN_021E2228
-FUN_021E2228: ; 0x021E2228
+ arm_func_start MOD04_021E2228
+MOD04_021E2228: ; 0x021E2228
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021E2348 ; =0x022106D0
@@ -10775,18 +10778,18 @@ FUN_021E2228: ; 0x021E2228
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
- bl FUN_021E10F8
+ bl MOD04_021E10F8
cmp r0, #0
bne _021E227C
- bl FUN_021FBE5C
+ bl MOD04_021FBE5C
cmp r0, #0
beq _021E2280
_021E227C:
- bl FUN_021FBD00
+ bl MOD04_021FBD00
_021E2280:
ldr r0, _021E2348 ; =0x022106D0
ldr r0, [r0]
@@ -10796,7 +10799,7 @@ _021E2280:
ldr r0, [r0]
cmp r0, #0
beq _021E231C
- bl FUN_021E1CFC
+ bl MOD04_021E1CFC
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
@@ -10814,7 +10817,7 @@ _021E2280:
cmp r2, #1
bhi _021E22EC
ldr r1, [r3, #0x14]
- bl FUN_021E1A60
+ bl MOD04_021E1A60
_021E22EC:
ldr r0, _021E2348 ; =0x022106D0
ldr r3, [r0]
@@ -10837,14 +10840,14 @@ _021E231C:
ldmloia sp!, {pc}
mov r0, #0
strb r0, [r1, #0x1f]
- bl FUN_021E1A20
+ bl MOD04_021E1A20
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021E2348: .word 0x022106D0
- arm_func_start FUN_021E234C
-FUN_021E234C: ; 0x021E234C
+ arm_func_start MOD04_021E234C
+MOD04_021E234C: ; 0x021E234C
stmdb sp!, {r4, lr}
ldr lr, _021E2428 ; =0x022106D0
mov ip, #0
@@ -10903,8 +10906,8 @@ FUN_021E234C: ; 0x021E234C
.align 2, 0
_021E2428: .word 0x022106D0
- arm_func_start FUN_021E242C
-FUN_021E242C: ; 0x021E242C
+ arm_func_start MOD04_021E242C
+MOD04_021E242C: ; 0x021E242C
ldr r2, _021E2450 ; =0x022106D0
ldr r3, [r2]
cmp r3, #0
@@ -10917,8 +10920,8 @@ FUN_021E242C: ; 0x021E242C
.align 2, 0
_021E2450: .word 0x022106D0
- arm_func_start FUN_021E2454
-FUN_021E2454: ; 0x021E2454
+ arm_func_start MOD04_021E2454
+MOD04_021E2454: ; 0x021E2454
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x104
ldr r2, _021E24DC ; =0x022106D0
@@ -10927,7 +10930,7 @@ FUN_021E2454: ; 0x021E2454
mov r4, r1
cmp r0, #0
beq _021E2480
- bl FUN_021E05FC
+ bl MOD04_021E05FC
cmp r0, #0
bne _021E248C
_021E2480:
@@ -10939,7 +10942,7 @@ _021E248C:
mov r0, r5
mov r1, r4
mov r3, #0xff
- bl FUN_021DD4FC
+ bl MOD04_021DD4FC
mvn r3, #0
cmp r0, r3
addeq sp, sp, #0x104
@@ -10949,7 +10952,7 @@ _021E248C:
mov r1, #0
strb r1, [r2, r0]
mov r0, r3
- bl FUN_021E1E30
+ bl MOD04_021E1E30
cmp r0, #0
moveq r0, #1
movne r0, #0
@@ -10958,14 +10961,14 @@ _021E248C:
.align 2, 0
_021E24DC: .word 0x022106D0
- arm_func_start FUN_021E24E0
-FUN_021E24E0: ; 0x021E24E0
+ arm_func_start MOD04_021E24E0
+MOD04_021E24E0: ; 0x021E24E0
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x100
mov r6, r3
add r3, sp, #0
ldr r4, [sp, #0x110]
- bl FUN_021E259C
+ bl MOD04_021E259C
movs r5, r0
mvneq r1, #0
addeq sp, sp, #0x100
@@ -10977,7 +10980,7 @@ FUN_021E24E0: ; 0x021E24E0
mov r1, r0
add r0, sp, #0
mov r3, r2
- bl FUN_021DD36C
+ bl MOD04_021DD36C
str r0, [r4]
cmp r6, #0
beq _021E2544
@@ -10996,32 +10999,32 @@ _021E2550:
add r0, sp, #0
mov r2, r6
mov r3, r4
- bl FUN_021DD36C
+ bl MOD04_021DD36C
mov r0, r5
add sp, sp, #0x100
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E2578
-FUN_021E2578: ; 0x021E2578
+ arm_func_start MOD04_021E2578
+MOD04_021E2578: ; 0x021E2578
stmdb sp!, {lr}
sub sp, sp, #4
mov r3, r1
mov r1, #0
str r2, [sp]
mov r2, r1
- bl FUN_021E24E0
+ bl MOD04_021E24E0
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021E259C
-FUN_021E259C: ; 0x021E259C
+ arm_func_start MOD04_021E259C
+MOD04_021E259C: ; 0x021E259C
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x218
mov r6, r1
add r1, sp, #4
mov r4, r2
mov r5, r3
- bl FUN_021E16EC
+ bl MOD04_021E16EC
cmp r0, #0
beq _021E268C
ldr r0, [sp, #8]
@@ -11033,7 +11036,7 @@ FUN_021E259C: ; 0x021E259C
add r1, sp, #0
add r2, sp, #0xc
mov r3, #0x2f
- bl FUN_021DE9F4
+ bl MOD04_021DE9F4
cmp r0, #0
movle r0, #0
strleb r0, [r6]
@@ -11050,7 +11053,7 @@ _021E260C:
add r1, sp, #0
add r2, sp, #0xc
mov r3, #0x2f
- bl FUN_021DE9F4
+ bl MOD04_021DE9F4
cmp r0, #0
movle r0, #0
strleb r0, [r4]
@@ -11093,18 +11096,18 @@ _021E268C:
_021E26B0: .word 0x0220D38C
_021E26B4: .word 0x0220D390
- arm_func_start FUN_021E26B8
-FUN_021E26B8: ; 0x021E26B8
- ldr ip, _021E26CC ; =FUN_021E259C
+ arm_func_start MOD04_021E26B8
+MOD04_021E26B8: ; 0x021E26B8
+ ldr ip, _021E26CC ; =MOD04_021E259C
mov r3, r1
mov r1, #0
mov r2, r1
bx ip
.align 2, 0
-_021E26CC: .word FUN_021E259C
+_021E26CC: .word MOD04_021E259C
- arm_func_start FUN_021E26D0
-FUN_021E26D0: ; 0x021E26D0
+ arm_func_start MOD04_021E26D0
+MOD04_021E26D0: ; 0x021E26D0
ldr r1, _021E26E0 ; =0x022106D8
ldr r1, [r1]
str r0, [r1, #0x1a0]
@@ -11112,51 +11115,51 @@ FUN_021E26D0: ; 0x021E26D0
.align 2, 0
_021E26E0: .word 0x022106D8
- arm_func_start FUN_021E26E4
-FUN_021E26E4: ; 0x021E26E4
+ arm_func_start MOD04_021E26E4
+MOD04_021E26E4: ; 0x021E26E4
ldr r0, _021E26F0 ; =0x022106D8
ldr r0, [r0]
bx lr
.align 2, 0
_021E26F0: .word 0x022106D8
- arm_func_start FUN_021E26F4
-FUN_021E26F4: ; 0x021E26F4
+ arm_func_start MOD04_021E26F4
+MOD04_021E26F4: ; 0x021E26F4
ldr r1, _021E2700 ; =0x022106D8
str r0, [r1]
bx lr
.align 2, 0
_021E2700: .word 0x022106D8
- arm_func_start FUN_021E2704
-FUN_021E2704: ; 0x021E2704
+ arm_func_start MOD04_021E2704
+MOD04_021E2704: ; 0x021E2704
stmdb sp!, {lr}
sub sp, sp, #4
cmp r0, #0
addne sp, sp, #4
movne r0, #1
ldmneia sp!, {pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
beq _021E273C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x17d]
add r1, r1, #1
strb r1, [r0, #0x17d]
_021E273C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
beq _021E275C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x17d]
cmp r0, #5
blo _021E2774
_021E275C:
ldr r1, _021E2780 ; =0xFFFEAE6C
mov r0, #6
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #4
mov r0, #0
ldmfd sp!, {pc}
@@ -11167,18 +11170,18 @@ _021E2774:
.align 2, 0
_021E2780: .word 0xFFFEAE6C
- arm_func_start FUN_021E2784
-FUN_021E2784: ; 0x021E2784
+ arm_func_start MOD04_021E2784
+MOD04_021E2784: ; 0x021E2784
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x20
mov r5, r0
mov r6, r2
mov r4, r3
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #6
beq _021E27BC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xb
addne sp, sp, #0x20
@@ -11191,21 +11194,21 @@ _021E27BC:
bne _021E29B8
mov r0, #0
str r0, [r4, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x14]
add r1, r1, #1
strb r1, [r0, #0x14]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r4]
ldrb r5, [r0, #0x14]
cmp r1, #0
beq _021E2950
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6, #4]
add r0, r0, r5, lsl #2
str r1, [r0, #0x210]
ldrh r4, [r6, #2]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r2, r4, asr #8
mov r1, r4, lsl #8
add r0, r0, r5, lsl #1
@@ -11214,41 +11217,41 @@ _021E27BC:
orr r1, r2, r1
add r0, r0, #0x200
strh r1, [r0, #0x90]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x180]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x184]
str r1, [r0, #0x188]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xb
bne _021E2878
mov r0, #0xc
- bl FUN_021E26D0
+ bl MOD04_021E26D0
b _021E2880
_021E2878:
mov r0, #7
- bl FUN_021E26D0
+ bl MOD04_021E26D0
_021E2880:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0xc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r3, [r0, #0x200]
ldr r2, _021E2B58 ; =0x0220D394
add r0, sp, #0x10
mov r1, #0xc
bl OS_SNPrintf
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r6, r5, lsl #2
mov r2, r0
ldr r0, [r1, #0x210]
@@ -11256,9 +11259,9 @@ _021E2880:
add r1, r1, #0x200
ldrh r1, [r1, #0x90]
mov r2, #0
- bl FUN_021FFEB0
+ bl MOD04_021FFEB0
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mvn r1, #0
str r1, [sp]
ldr r3, _021E2B5C ; =0x00001388
@@ -11271,20 +11274,20 @@ _021E2880:
ldr r0, [r4, #4]
add r3, sp, #0x10
ldr r0, [r0]
- bl FUN_021FD52C
+ bl MOD04_021FD52C
cmp r0, #1
bne _021E2928
- bl FUN_021E36B0
+ bl MOD04_021E36B0
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_021E2928:
cmp r0, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r5, lsl #2
ldr r0, [r0, #0xf4]
- bl FUN_021E59D4
+ bl MOD04_021E59D4
add sp, sp, #0x20
cmp r0, #0
ldmia sp!, {r4, r5, r6, pc}
@@ -11292,12 +11295,12 @@ _021E2950:
cmp r6, #0
beq _021E2994
sub r4, r5, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6, #4]
add r0, r0, r4, lsl #2
str r1, [r0, #0x210]
ldrh r5, [r6, #2]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r2, r5, asr #8
mov r1, r5, lsl #8
add r0, r0, r4, lsl #1
@@ -11307,13 +11310,13 @@ _021E2950:
add r0, r0, #0x200
strh r1, [r0, #0x90]
_021E2994:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x18c]
mov r0, #7
str r1, [r4, #0x190]
- bl FUN_021E26D0
+ bl MOD04_021E26D0
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_021E29B8:
@@ -11322,7 +11325,7 @@ _021E29B8:
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r5
- bl FUN_021E3754
+ bl MOD04_021E3754
mov r6, r0
cmp r6, #2
beq _021E29E8
@@ -11343,17 +11346,17 @@ _021E29E8:
_021E2A10:
mov r0, #0
str r0, [r4, #8]
- bl FUN_021E2704
+ bl MOD04_021E2704
cmp r0, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0xf4]
- bl FUN_021E5908
+ bl MOD04_021E5908
add sp, sp, #0x20
cmp r0, #0
ldmia sp!, {r4, r5, r6, pc}
@@ -11362,13 +11365,13 @@ _021E2A50:
mov r0, r4
add r1, r1, #1
strb r1, [r4, #1]
- bl FUN_021E7A44
- bl FUN_021E37A4
+ bl MOD04_021E7A44
+ bl MOD04_021E37A4
add sp, sp, #0x20
cmp r0, #0
ldmia sp!, {r4, r5, r6, pc}
_021E2A74:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
bl OS_GetTick
str r0, [r5, #0x184]
@@ -11378,7 +11381,7 @@ _021E2A74:
cmp r6, #2
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x17c]
cmp r0, #1
addlo sp, sp, #0x20
@@ -11386,46 +11389,46 @@ _021E2A74:
_021E2AB0:
mov r0, #0
str r0, [r4, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
beq _021E2AD8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
bne _021E2AF0
_021E2AD8:
mov r0, #1
- bl FUN_021E2704
+ bl MOD04_021E2704
cmp r0, #0
bne _021E2B04
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
_021E2AF0:
mov r0, #0
- bl FUN_021E2704
+ bl MOD04_021E2704
cmp r0, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, pc}
_021E2B04:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x180]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x184]
str r1, [r0, #0x188]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r0, #1
add r0, r4, r0, lsl #2
ldr r0, [r0, #0xf4]
- bl FUN_021E59D4
+ bl MOD04_021E59D4
cmp r0, #0
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
@@ -11433,29 +11436,29 @@ _021E2B04:
_021E2B58: .word 0x0220D394
_021E2B5C: .word 0x00001388
- arm_func_start FUN_021E2B60
-FUN_021E2B60: ; 0x021E2B60
+ arm_func_start MOD04_021E2B60
+MOD04_021E2B60: ; 0x021E2B60
bx lr
- arm_func_start FUN_021E2B64
-FUN_021E2B64: ; 0x021E2B64
+ arm_func_start MOD04_021E2B64
+MOD04_021E2B64: ; 0x021E2B64
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x9c
mov sl, r0
mov sb, r1
mov r8, #0
- bl FUN_021DF88C
+ bl MOD04_021DF88C
cmp r0, #5
beq _021E2BB8
- bl FUN_021DF88C
+ bl MOD04_021DF88C
cmp r0, #6
addne sp, sp, #0x9c
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
beq _021E2BB8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
addne sp, sp, #0x9c
@@ -11497,7 +11500,7 @@ _021E2BD8:
ldrh r3, [sp, #0x12]
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
- bl FUN_021E6730
+ bl MOD04_021E6730
cmp r0, #0
addeq sp, sp, #0x9c
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -11512,85 +11515,85 @@ _021E2BD8:
.align 2, 0
_021E2C74: .word 0x0220D398
- arm_func_start FUN_021E2C78
-FUN_021E2C78: ; 0x021E2C78
+ arm_func_start MOD04_021E2C78
+MOD04_021E2C78: ; 0x021E2C78
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #1
bne _021E2C9C
mov r0, #6
- bl FUN_021E26D0
+ bl MOD04_021E26D0
b _021E2CBC
_021E2C9C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #6
beq _021E2CBC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xb
ldmneia sp!, {r4, pc}
_021E2CBC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x180]
cmp r4, r0
bne _021E2CE0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x17c]
add r1, r1, #1
strb r1, [r0, #0x17c]
b _021E2CF4
_021E2CE0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r4, [r0, #0x180]
_021E2CF4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r2, #0
str r2, [r0, #0x184]
str r2, [r0, #0x188]
mov r1, r4
mov r0, #1
- bl FUN_021E7B04
- bl FUN_021E37A4
+ bl MOD04_021E7B04
+ bl MOD04_021E37A4
cmp r0, #0
ldmneia sp!, {r4, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0xff
strb r1, [r0, #0x3cc]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021E2D2C
-FUN_021E2D2C: ; 0x021E2D2C
+ arm_func_start MOD04_021E2D2C
+MOD04_021E2D2C: ; 0x021E2D2C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r4, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [r0, #0x1c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
strh r4, [r0, #0x1a]
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021E2D54
-FUN_021E2D54: ; 0x021E2D54
- ldr ip, _021E2D5C ; =FUN_021E3800
+ arm_func_start MOD04_021E2D54
+MOD04_021E2D54: ; 0x021E2D54
+ ldr ip, _021E2D5C ; =MOD04_021E3800
bx ip
.align 2, 0
-_021E2D5C: .word FUN_021E3800
+_021E2D5C: .word MOD04_021E3800
- arm_func_start FUN_021E2D60
-FUN_021E2D60: ; 0x021E2D60
+ arm_func_start MOD04_021E2D60
+MOD04_021E2D60: ; 0x021E2D60
mov r0, #0
bx lr
- arm_func_start FUN_021E2D68
-FUN_021E2D68: ; 0x021E2D68
+ arm_func_start MOD04_021E2D68
+MOD04_021E2D68: ; 0x021E2D68
stmdb sp!, {r4, r5, r6, lr}
mov r6, r1
cmp r0, #0
@@ -11602,25 +11605,25 @@ FUN_021E2D68: ; 0x021E2D68
_021E2D88:
mov r0, r6
mov r1, #8
- bl FUN_02202254
+ bl MOD04_02202254
mov r0, r6
mov r1, #0xa
- bl FUN_02202254
+ bl MOD04_02202254
mov r0, r6
mov r1, #0x32
- bl FUN_02202254
+ bl MOD04_02202254
mov r0, r6
mov r1, #0x33
- bl FUN_02202254
+ bl MOD04_02202254
mov r0, r6
mov r1, #0x34
- bl FUN_02202254
+ bl MOD04_02202254
mov r0, r6
mov r1, #0x35
- bl FUN_02202254
+ bl MOD04_02202254
mov r0, r6
mov r1, #0x36
- bl FUN_02202254
+ bl MOD04_02202254
ldr r4, _021E2E0C ; =0x02210704
mov r5, #0
_021E2DE4:
@@ -11628,7 +11631,7 @@ _021E2DE4:
cmp r1, #0
beq _021E2DF8
mov r0, r6
- bl FUN_02202254
+ bl MOD04_02202254
_021E2DF8:
add r5, r5, #1
cmp r5, #0x9a
@@ -11638,16 +11641,16 @@ _021E2DF8:
.align 2, 0
_021E2E0C: .word 0x02210704
- arm_func_start FUN_021E2E10
-FUN_021E2E10: ; 0x021E2E10
+ arm_func_start MOD04_021E2E10
+MOD04_021E2E10: ; 0x021E2E10
bx lr
- arm_func_start FUN_021E2E14
-FUN_021E2E14: ; 0x021E2E14
+ arm_func_start MOD04_021E2E14
+MOD04_021E2E14: ; 0x021E2E14
bx lr
- arm_func_start FUN_021E2E18
-FUN_021E2E18: ; 0x021E2E18
+ arm_func_start MOD04_021E2E18
+MOD04_021E2E18: ; 0x021E2E18
stmdb sp!, {r4, lr}
mov r4, r1
cmp r0, #0x32
@@ -11674,44 +11677,44 @@ _021E2E64: ; jump table
b _021E2ED8 ; case 2
b _021E2EE8 ; case 3
_021E2E74:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x14]
mov r0, r4
- bl FUN_02202220
+ bl MOD04_02202220
ldmia sp!, {r4, pc}
_021E2E88:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x16]
mov r0, r4
- bl FUN_02202220
+ bl MOD04_02202220
ldmia sp!, {r4, pc}
_021E2E9C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x200]
mov r0, r4
- bl FUN_02202220
+ bl MOD04_02202220
ldmia sp!, {r4, pc}
_021E2EB0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x15]
mov r0, r4
- bl FUN_02202220
+ bl MOD04_02202220
ldmia sp!, {r4, pc}
_021E2EC4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x20]
mov r0, r4
- bl FUN_02202220
+ bl MOD04_02202220
ldmia sp!, {r4, pc}
_021E2ED8:
mov r0, r4
mov r1, #3
- bl FUN_02202220
+ bl MOD04_02202220
ldmia sp!, {r4, pc}
_021E2EE8:
mov r0, r4
mov r1, #1
- bl FUN_02202220
+ bl MOD04_02202220
ldmia sp!, {r4, pc}
_021E2EF8:
subs r1, r0, #0x64
@@ -11731,76 +11734,76 @@ _021E2EF8:
ldr r1, _021E2F64 ; =0x0221070C
mov r0, r4
ldr r1, [r1, r2]
- bl FUN_022021C0
+ bl MOD04_022021C0
ldmia sp!, {r4, pc}
_021E2F44:
ldr r1, _021E2F64 ; =0x0221070C
mov r0, r4
ldr r1, [r1, r2]
ldr r1, [r1]
- bl FUN_02202220
+ bl MOD04_02202220
ldmia sp!, {r4, pc}
.align 2, 0
_021E2F5C: .word 0x02210704
_021E2F60: .word 0x02210705
_021E2F64: .word 0x0221070C
- arm_func_start FUN_021E2F68
-FUN_021E2F68: ; 0x021E2F68
+ arm_func_start MOD04_021E2F68
+MOD04_021E2F68: ; 0x021E2F68
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x1c
mov r8, #0
mov r7, r8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #1
addle sp, sp, #0x1c
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov sb, r8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
ble _021E2FF8
ldr r4, _021E30D8 ; =0x0220BAC4
ldr r6, _021E30DC ; =0x0220D3A0
mvn r5, #0
_021E2FB4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
mov r1, sb
- bl FUN_02203BF4
+ bl MOD04_02203BF4
mov r1, r6
mov r2, r5
- bl FUN_0220394C
+ bl MOD04_0220394C
cmp r0, r8
movgt r8, r0
ldr r0, [r4, sb, lsl #2]
add sb, sb, #1
add r7, r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp sb, r0
blt _021E2FB4
_021E2FF8:
mov r0, #0x64
- bl FUN_021DE8C8
+ bl MOD04_021DE8C8
mov sb, r0
mov r6, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
ble _021E3090
add r5, sp, #0
mov fp, r6
mov r4, #0x64
_021E3028:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
sub r0, r0, #1
cmp r6, r0
beq _021E3090
@@ -11819,45 +11822,45 @@ _021E3028:
cmp sb, r0
blo _021E3090
add r6, r6, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r6, r0
blt _021E3028
_021E3090:
mvn r0, #0x80000000
cmp r8, r0
addlt r8, r8, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
mov r1, r6
- bl FUN_02203BF4
+ bl MOD04_02203BF4
ldr r1, _021E30DC ; =0x0220D3A0
mov r2, r8
- bl FUN_02203A48
- bl FUN_021E26E4
+ bl MOD04_02203A48
+ bl MOD04_021E26E4
mov r1, #0
ldr r0, [r0, #0xe4]
ldr r2, _021E30DC ; =0x0220D3A0
mov r3, r1
- bl FUN_02203BD4
+ bl MOD04_02203BD4
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_021E30D8: .word 0x0220BAC4
_021E30DC: .word 0x0220D3A0
- arm_func_start FUN_021E30E0
-FUN_021E30E0: ; 0x021E30E0
+ arm_func_start MOD04_021E30E0
+MOD04_021E30E0: ; 0x021E30E0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
mov r1, #0
str r1, [sp, #4]
str r0, [sp]
mov r8, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
ble _021E3268
mov r0, #0x80
@@ -11866,42 +11869,42 @@ FUN_021E30E0: ; 0x021E30E0
str r0, [sp, #8]
mov fp, #0x100
_021E3120:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
mov r1, r8
- bl FUN_02203BF4
+ bl MOD04_02203BF4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E31BC
ldr r1, _021E32D4 ; =0x0220D3AC
mov r0, r6
mov r2, r5
- bl FUN_0220394C
+ bl MOD04_0220394C
mov sb, r0
mov sl, r5
mov r7, r4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E31B4
_021E3170:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r7, lsl #2
ldr r0, [r0, #0xf4]
cmp sb, r0
bne _021E31A0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
mov r1, r6
- bl FUN_02203C50
+ bl MOD04_02203C50
mov sl, r4
sub r8, r8, #1
b _021E31B4
_021E31A0:
add r7, r7, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r7, r0
ble _021E3170
@@ -11909,13 +11912,13 @@ _021E31B4:
cmp sl, #0
bne _021E3250
_021E31BC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x474]
cmp r0, #0
beq _021E3238
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x478]
ldr r2, [r7, #0x474]
mov r0, r8
@@ -11927,56 +11930,56 @@ _021E31BC:
cmp r7, r0
movgt r7, r0
mov r0, fp
- bl FUN_021DE8C8
+ bl MOD04_021DE8C8
orr r2, r0, r7, lsl #8
ldr r1, _021E32DC ; =0x0220D3A0
mov r0, r6
- bl FUN_02203A48
+ bl MOD04_02203A48
b _021E3250
_021E321C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
mov r1, r6
- bl FUN_02203C50
+ bl MOD04_02203C50
str r4, [sp, #4]
sub r8, r8, #1
b _021E3250
_021E3238:
ldr r0, [sp, #8]
- bl FUN_021DE8C8
+ bl MOD04_021DE8C8
mov r2, r0
ldr r1, _021E32DC ; =0x0220D3A0
mov r0, r6
- bl FUN_02203A48
+ bl MOD04_02203A48
_021E3250:
add r8, r8, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r8, r0
blt _021E3120
_021E3268:
ldr r0, [sp]
cmp r0, #0
beq _021E32A0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
beq _021E32A0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
ldr r0, [r0, #0xe4]
ldr r2, _021E32DC ; =0x0220D3A0
mov r3, r1
- bl FUN_02203BD4
+ bl MOD04_02203BD4
_021E32A0:
ldr r0, [sp, #4]
cmp r0, #0
beq _021E32C8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
addeq sp, sp, #0xc
moveq r0, #0
@@ -11990,12 +11993,12 @@ _021E32D4: .word 0x0220D3AC
_021E32D8: .word 0x007FFFFF
_021E32DC: .word 0x0220D3A0
- arm_func_start FUN_021E32E0
-FUN_021E32E0: ; 0x021E32E0
+ arm_func_start MOD04_021E32E0
+MOD04_021E32E0: ; 0x021E32E0
bx lr
- arm_func_start FUN_021E32E4
-FUN_021E32E4: ; 0x021E32E4
+ arm_func_start MOD04_021E32E4
+MOD04_021E32E4: ; 0x021E32E4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r6, r0
@@ -12008,34 +12011,34 @@ FUN_021E32E4: ; 0x021E32E4
ldmia sp!, {r4, r5, r6, r7, pc}
_021E330C:
mov r0, r2
- bl FUN_021E32E0
+ bl MOD04_021E32E0
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
_021E331C:
mov r5, #0
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
ble _021E336C
_021E332C:
mov r0, r6
mov r1, r5
- bl FUN_02203BF4
+ bl MOD04_02203BF4
mov r4, r0
- bl FUN_021E3F98
+ bl MOD04_021E3F98
cmp r0, #0
bne _021E3358
mov r0, r6
mov r1, r4
- bl FUN_02203C50
+ bl MOD04_02203C50
sub r5, r5, #1
_021E3358:
mov r0, r6
add r5, r5, #1
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r5, r0
blt _021E332C
_021E336C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #2
beq _021E3394
@@ -12048,64 +12051,64 @@ _021E336C:
_021E3394:
mov r0, r6
mov r5, #0
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
ble _021E3424
_021E33A8:
mov r0, r6
mov r1, r5
- bl FUN_02203BF4
+ bl MOD04_02203BF4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1c]
cmp r0, #0
beq _021E3410
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
mov r0, r4
- bl FUN_02203908
+ bl MOD04_02203908
ldr r1, [r7, #0x1c]
cmp r1, r0
bne _021E3410
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrh r0, [r0, #0x1a]
cmp r0, #0
beq _021E3410
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
mov r0, r4
- bl FUN_022038E4
+ bl MOD04_022038E4
ldrh r1, [r7, #0x1a]
cmp r1, r0
beq _021E3424
_021E3410:
mov r0, r6
add r5, r5, #1
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r5, r0
blt _021E33A8
_021E3424:
mov r0, r6
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r5, r0
bge _021E3464
mov r0, #3
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x204]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
- bl FUN_021E7E5C
- bl FUN_021E38E8
+ bl MOD04_021E7E5C
+ bl MOD04_021E38E8
add sp, sp, #4
cmp r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
_021E3464:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #2
str r1, [r0, #0xe8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0xec]
@@ -12114,31 +12117,31 @@ _021E3464:
ldmia sp!, {r4, r5, r6, r7, pc}
_021E348C:
mov r0, #1
- bl FUN_021E30E0
- bl FUN_021E2F68
+ bl MOD04_021E30E0
+ bl MOD04_021E2F68
mov r0, r6
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
beq _021E34E0
mov r0, #0
mov r1, r0
- bl FUN_021E6038
- bl FUN_021E61EC
+ bl MOD04_021E6038
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {r4, r5, r6, r7, pc}
mov r0, #4
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0xe8]
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
_021E34E0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #2
str r1, [r0, #0xe8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0xec]
@@ -12147,25 +12150,25 @@ _021E34E0:
ldmia sp!, {r4, r5, r6, r7, pc}
_021E3508:
mov r0, r6
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
beq _021E3580
mov r4, #0
_021E351C:
mov r0, r6
mov r1, r4
- bl FUN_02203BF4
+ bl MOD04_02203BF4
mov r5, r0
- bl FUN_02203908
+ bl MOD04_02203908
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1b8]
cmp r7, r0
bne _021E3564
mov r0, r5
- bl FUN_022038E4
+ bl MOD04_022038E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
ldrh r0, [r0, #0xb4]
cmp r7, r0
@@ -12173,84 +12176,84 @@ _021E351C:
_021E3564:
mov r0, r6
mov r1, r5
- bl FUN_02203C50
+ bl MOD04_02203C50
mov r0, r6
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
bne _021E351C
_021E3580:
mov r0, r6
- bl FUN_02203BE4
+ bl MOD04_02203BE4
cmp r0, #0
beq _021E3684
mov r0, r6
mov r1, #0
- bl FUN_02203BF4
+ bl MOD04_02203BF4
ldr r1, _021E36AC ; =0x0220D3AC
mov r2, #0
- bl FUN_0220394C
+ bl MOD04_0220394C
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E3650
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
cmp r4, r0
bne _021E3650
mov r0, #0
- bl FUN_021E30E0
+ bl MOD04_021E30E0
cmp r0, #0
beq _021E3604
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E3650
- bl FUN_021E5824
- bl FUN_021E61EC
+ bl MOD04_021E5824
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E3650
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
_021E3604:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
- bl FUN_021E5BF0
- bl FUN_021E61EC
+ bl MOD04_021E5BF0
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {r4, r5, r6, r7, pc}
mov r0, #4
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r1, r0
mov r0, #0
ldr r2, [r1, #0xf4]
mov r1, r0
- bl FUN_021E5D30
- bl FUN_021E61EC
+ bl MOD04_021E5D30
+ bl MOD04_021E61EC
add sp, sp, #4
cmp r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
_021E3650:
mov r0, #6
- bl FUN_021E26D0
+ bl MOD04_021E26D0
mov r0, r6
mov r1, #0
- bl FUN_02203BF4
+ bl MOD04_02203BF4
mov r2, r0
mov r0, #0
mov r1, r0
- bl FUN_021E7B04
- bl FUN_021E37A4
+ bl MOD04_021E7B04
+ bl MOD04_021E37A4
add sp, sp, #4
cmp r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
_021E3684:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #2
str r1, [r0, #0xe8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0xec]
@@ -12260,8 +12263,8 @@ _021E3684:
.align 2, 0
_021E36AC: .word 0x0220D3AC
- arm_func_start FUN_021E36B0
-FUN_021E36B0: ; 0x021E36B0
+ arm_func_start MOD04_021E36B0
+MOD04_021E36B0: ; 0x021E36B0
stmdb sp!, {r4, lr}
movs r4, r0
moveq r0, #0
@@ -12307,15 +12310,15 @@ _021E3734:
beq _021E3748
ldr r1, _021E3750 ; =0xFFFEAC28
add r1, r2, r1
- bl FUN_021E8E08
+ bl MOD04_021E8E08
_021E3748:
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_021E3750: .word 0xFFFEAC28
- arm_func_start FUN_021E3754
-FUN_021E3754: ; 0x021E3754
+ arm_func_start MOD04_021E3754
+MOD04_021E3754: ; 0x021E3754
stmdb sp!, {r4, lr}
movs r4, r0
moveq r0, #0
@@ -12335,15 +12338,15 @@ _021E3788:
movs r0, #6
beq _021E3798
ldr r1, _021E37A0 ; =0xFFFEB007
- bl FUN_021E8E08
+ bl MOD04_021E8E08
_021E3798:
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_021E37A0: .word 0xFFFEB007
- arm_func_start FUN_021E37A4
-FUN_021E37A4: ; 0x021E37A4
+ arm_func_start MOD04_021E37A4
+MOD04_021E37A4: ; 0x021E37A4
stmdb sp!, {r4, lr}
movs r4, r0
moveq r0, #0
@@ -12366,14 +12369,14 @@ _021E37E0:
_021E37E8:
ldr r1, _021E37FC ; =0xFFFEB010
add r1, r2, r1
- bl FUN_021E8E08
+ bl MOD04_021E8E08
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_021E37FC: .word 0xFFFEB010
- arm_func_start FUN_021E3800
-FUN_021E3800: ; 0x021E3800
+ arm_func_start MOD04_021E3800
+MOD04_021E3800: ; 0x021E3800
stmdb sp!, {r4, r5, r6, lr}
movs r6, r0
moveq r0, #0
@@ -12408,7 +12411,7 @@ _021E3864:
mov r4, #6
mvn r5, #0x13
_021E386C:
- bl FUN_021DF88C
+ bl MOD04_021DF88C
cmp r0, #2
beq _021E388C
cmp r0, #4
@@ -12419,25 +12422,25 @@ _021E386C:
_021E388C:
mov r0, r4
sub r1, r5, #0xfa00
- bl FUN_021E0EAC
+ bl MOD04_021E0EAC
b _021E38D4
_021E389C:
ldr r1, _021E38DC ; =0xFFFEDEF0
mov r0, r4
add r1, r5, r1
- bl FUN_021E2114
+ bl MOD04_021E2114
b _021E38D4
_021E38B0:
ldr r1, _021E38E0 ; =0xFFFEB7E0
mov r0, r4
add r1, r5, r1
- bl FUN_021E8E08
+ bl MOD04_021E8E08
b _021E38D4
_021E38C4:
ldr r1, _021E38E4 ; =0xFFFE90D0
mov r0, r4
add r1, r5, r1
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
_021E38D4:
mov r0, r6
ldmia sp!, {r4, r5, r6, pc}
@@ -12446,8 +12449,8 @@ _021E38DC: .word 0xFFFEDEF0
_021E38E0: .word 0xFFFEB7E0
_021E38E4: .word 0xFFFE90D0
- arm_func_start FUN_021E38E8
-FUN_021E38E8: ; 0x021E38E8
+ arm_func_start MOD04_021E38E8
+MOD04_021E38E8: ; 0x021E38E8
stmdb sp!, {r4, lr}
movs r4, r0
moveq r0, #0
@@ -12489,14 +12492,14 @@ _021E395C:
_021E3964:
ldr r1, _021E3978 ; =0xFFFEB3F8
add r1, r2, r1
- bl FUN_021E8E08
+ bl MOD04_021E8E08
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_021E3978: .word 0xFFFEB3F8
- arm_func_start FUN_021E397C
-FUN_021E397C: ; 0x021E397C
+ arm_func_start MOD04_021E397C
+MOD04_021E397C: ; 0x021E397C
stmdb sp!, {r4, lr}
movs r4, r0
moveq r0, #0
@@ -12528,14 +12531,14 @@ _021E39D0:
_021E39D8:
ldr r1, _021E39EC ; =0xFFFEC398
add r1, r2, r1
- bl FUN_021E8E08
+ bl MOD04_021E8E08
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_021E39EC: .word 0xFFFEC398
- arm_func_start FUN_021E39F0
-FUN_021E39F0: ; 0x021E39F0
+ arm_func_start MOD04_021E39F0
+MOD04_021E39F0: ; 0x021E39F0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #8
ldr r0, _021E3E1C ; =0x022106D4
@@ -12547,22 +12550,22 @@ FUN_021E39F0: ; 0x021E39F0
cmp r0, #0
addeq sp, sp, #8
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
addeq sp, sp, #8
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
addeq sp, sp, #8
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0x13
bne _021E3C58
mov r0, #0
- bl FUN_021E3EC4
+ bl MOD04_021E3EC4
ldr r1, _021E3E1C ; =0x022106D4
ldr r5, [r1]
ldr r1, [r5, #8]
@@ -12571,19 +12574,19 @@ FUN_021E39F0: ; 0x021E39F0
ldr r1, [r5, #0xc]
cmp r1, r0
bne _021E3AB8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
strb r0, [r4, #0x16]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0xd]
mov r0, #0
sub r1, r1, #1
strb r1, [r4, #0x1a4]
- bl FUN_021E51C0
+ bl MOD04_021E51C0
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E3AB8:
@@ -12592,16 +12595,16 @@ _021E3AB8:
str r1, [r5, #0x1c]
mov r0, #0
str r0, [r5, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E3B0C
mov r0, #3
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r1, #2
str r1, [r0, #0xe8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0xec]
@@ -12610,11 +12613,11 @@ _021E3AB8:
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E3B0C:
mov r0, #4
- bl FUN_021E26D0
+ bl MOD04_021E26D0
mov r1, #0
mov r2, r1
mov r0, #1
- bl FUN_021E5D30
+ bl MOD04_021E5D30
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E3B2C:
@@ -12639,15 +12642,15 @@ _021E3B2C:
cmp r4, #5
bls _021E3B98
mov r0, #1
- bl FUN_021E3E28
- bl FUN_021E4B40
+ bl MOD04_021E3E28
+ bl MOD04_021E4B40
mov r0, #1
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E3B98:
mov r7, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E3C3C
@@ -12656,7 +12659,7 @@ _021E3B98:
mov r4, #0x11
mov r6, r7
_021E3BBC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r7
ldrb r0, [r0, #0x2d0]
ldr r1, [r8]
@@ -12664,11 +12667,11 @@ _021E3BBC:
ldr r1, [r1, #8]
ands r0, r1, r0
bne _021E3C28
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sl, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sb, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [sp]
str r5, [sp, #4]
add r0, r0, r7, lsl #1
@@ -12678,14 +12681,14 @@ _021E3BBC:
ldr r1, [r1, #0xf4]
ldr r2, [r2, #0x24]
mov r0, r4
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #8
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E3C28:
add r7, r7, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r7, r0
ble _021E3BBC
@@ -12698,11 +12701,11 @@ _021E3C3C:
strb r0, [r1, #2]
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E3C58:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #4
beq _021E3C7C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #3
addne sp, sp, #8
@@ -12710,7 +12713,7 @@ _021E3C58:
_021E3C7C:
ldr r0, _021E3E1C ; =0x022106D4
ldr r4, [r0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r4, #1]
ldrb r2, [r0, #0xd]
sub r0, r1, #1
@@ -12761,33 +12764,33 @@ _021E3CF0:
addlo sp, sp, #8
ldmloia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E3D48:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
cmp r0, #0
beq _021E3D74
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
- bl FUN_021E5BF0
- bl FUN_021E61EC
+ bl MOD04_021E5BF0
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #8
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E3D74:
mov r0, #0x13
- bl FUN_021E26D0
+ bl MOD04_021E26D0
mov r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E3DF8
mov r6, #0
mov r5, #0x11
_021E3D98:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r8, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r6, [sp]
str r6, [sp, #4]
add r0, r0, r4, lsl #1
@@ -12797,13 +12800,13 @@ _021E3D98:
ldr r1, [r1, #0xf4]
ldr r2, [r2, #0x24]
mov r0, r5
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #8
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
add r4, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r4, r0
ble _021E3D98
@@ -12822,8 +12825,8 @@ _021E3E1C: .word 0x022106D4
_021E3E20: .word 0x000082EA
_021E3E24: .word 0x00001770
- arm_func_start FUN_021E3E28
-FUN_021E3E28: ; 0x021E3E28
+ arm_func_start MOD04_021E3E28
+MOD04_021E3E28: ; 0x021E3E28
stmdb sp!, {r4, lr}
ldr r1, _021E3E98 ; =0x022106D4
mov r4, r0
@@ -12855,43 +12858,43 @@ FUN_021E3E28: ; 0x021E3E28
.align 2, 0
_021E3E98: .word 0x022106D4
- arm_func_start FUN_021E3E9C
-FUN_021E3E9C: ; 0x021E3E9C
+ arm_func_start MOD04_021E3E9C
+MOD04_021E3E9C: ; 0x021E3E9C
stmdb sp!, {r4, lr}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1ad]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1f8]
str r1, [r4, #0x1fc]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021E3EC4
-FUN_021E3EC4: ; 0x021E3EC4
+ arm_func_start MOD04_021E3EC4
+MOD04_021E3EC4: ; 0x021E3EC4
stmdb sp!, {r4, r5, r6, lr}
cmp r0, #0
mov r6, #0
beq _021E3EE4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x2f0]
bic r0, r0, #1
ldmia sp!, {r4, r5, r6, pc}
_021E3EE4:
mov r5, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E3F20
mov r4, r5
_021E3EFC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r5
ldrb r0, [r0, #0x2d0]
add r5, r5, #1
orr r6, r6, r4, lsl r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r5, r0
ble _021E3EFC
@@ -12899,32 +12902,32 @@ _021E3F20:
mov r0, r6
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E3F28
-FUN_021E3F28: ; 0x021E3F28
+ arm_func_start MOD04_021E3F28
+MOD04_021E3F28: ; 0x021E3F28
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
cmp r1, #0
moveq r4, #1
mov r5, r0
movne r4, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r4, r0
bgt _021E3F8C
_021E3F50:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
ldr r0, [r0, #0xf4]
cmp r5, r0
bne _021E3F78
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4
add sp, sp, #4
ldrb r0, [r0, #0x2d0]
ldmia sp!, {r4, r5, pc}
_021E3F78:
add r4, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r4, r0
ble _021E3F50
@@ -12933,41 +12936,41 @@ _021E3F8C:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021E3F98
-FUN_021E3F98: ; 0x021E3F98
+ arm_func_start MOD04_021E3F98
+MOD04_021E3F98: ; 0x021E3F98
stmdb sp!, {r4, lr}
ldr r1, _021E405C ; =0x0220D3B4
mvn r2, #0
mov r4, r0
- bl FUN_0220394C
+ bl MOD04_0220394C
mvn r2, #0
cmp r0, r2
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldr r1, _021E4060 ; =0x0220D3C0
mov r0, r4
- bl FUN_0220394C
+ bl MOD04_0220394C
mvn r2, #0
cmp r0, r2
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldr r1, _021E4064 ; =0x0220D3CC
mov r0, r4
- bl FUN_0220394C
+ bl MOD04_0220394C
mvn r2, #0
cmp r0, r2
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldr r1, _021E4068 ; =0x0220D3D8
mov r0, r4
- bl FUN_0220394C
+ bl MOD04_0220394C
mvn r1, #0
cmp r0, r1
bne _021E4028
ldr r1, _021E4068 ; =0x0220D3D8
mov r0, r4
mov r2, #0
- bl FUN_0220394C
+ bl MOD04_0220394C
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
@@ -12975,7 +12978,7 @@ _021E4028:
ldr r1, _021E406C ; =0x0220D3E4
mov r0, r4
mvn r2, #0
- bl FUN_0220394C
+ bl MOD04_0220394C
mvn r1, #0
cmp r0, r1
moveq r0, #0
@@ -12983,7 +12986,7 @@ _021E4028:
ldr r1, _021E4070 ; =0x0220D3AC
mov r0, r4
mov r2, #0
- bl FUN_0220394C
+ bl MOD04_0220394C
ldmia sp!, {r4, pc}
.align 2, 0
_021E405C: .word 0x0220D3B4
@@ -12993,27 +12996,27 @@ _021E4068: .word 0x0220D3D8
_021E406C: .word 0x0220D3E4
_021E4070: .word 0x0220D3AC
- arm_func_start FUN_021E4074
-FUN_021E4074: ; 0x021E4074
+ arm_func_start MOD04_021E4074
+MOD04_021E4074: ; 0x021E4074
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x2fc]
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, pc}
mov r4, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x344]
cmp r0, #0
ble _021E40E8
_021E40AC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4
ldrb r0, [r0, #0x304]
- bl FUN_021E1F84
+ bl MOD04_021E1F84
cmp r0, #0
ble _021E40D4
cmp r0, r5
@@ -13022,7 +13025,7 @@ _021E40AC:
ldmeqia sp!, {r4, r5, pc}
_021E40D4:
add r4, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x344]
cmp r4, r0
blt _021E40AC
@@ -13031,30 +13034,30 @@ _021E40E8:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021E40F4
-FUN_021E40F4: ; 0x021E40F4
+ arm_func_start MOD04_021E40F4
+MOD04_021E40F4: ; 0x021E40F4
stmdb sp!, {r4, r5, r6, lr}
mov r6, #0
mov r4, r6
_021E4100:
mov r5, r4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
cmp r0, #0
blt _021E413C
_021E4114:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r5
ldrb r0, [r0, #0x2d0]
cmp r6, r0
beq _021E413C
add r5, r5, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
cmp r5, r0
ble _021E4114
_021E413C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
cmp r5, r0
bgt _021E415C
@@ -13066,8 +13069,8 @@ _021E415C:
mov r0, r6
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E4164
-FUN_021E4164: ; 0x021E4164
+ arm_func_start MOD04_021E4164
+MOD04_021E4164: ; 0x021E4164
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r6, _021E41BC ; =0x02210704
@@ -13080,7 +13083,7 @@ _021E417C:
beq _021E4194
mov r0, r5
mov r2, r4
- bl FUN_021DD904
+ bl MOD04_021DD904
_021E4194:
add r7, r7, #1
cmp r7, #0x9a
@@ -13096,19 +13099,19 @@ _021E4194:
_021E41BC: .word 0x02210704
_021E41C0: .word 0x00000738
- arm_func_start FUN_021E41C4
-FUN_021E41C4: ; 0x021E41C4
+ arm_func_start MOD04_021E41C4
+MOD04_021E41C4: ; 0x021E41C4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #8
beq _021E41FC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xe
beq _021E41FC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xf
bne _021E4240
@@ -13116,7 +13119,7 @@ _021E41FC:
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x1e8]
ldr r0, [r0, #0x1ec]
subs r3, r4, r1
@@ -13135,7 +13138,7 @@ _021E4240:
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
_021E424C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #8
beq _021E4270
@@ -13149,10 +13152,10 @@ _021E4270:
cmp r5, #0
cmpeq r4, r0
bls _021E43CC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
mov r1, #0xe
- bl FUN_021E4604
+ bl MOD04_021E4604
cmp r0, #0
bne _021E43CC
add sp, sp, #4
@@ -13163,29 +13166,29 @@ _021E42A4:
cmp r5, #0
cmpeq r4, r0
bls _021E43CC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x1ac]
add r1, r1, #1
strb r1, [r0, #0x1ac]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1ac]
cmp r0, #5
bls _021E4330
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1d8]
- bl FUN_021E4A00
+ bl MOD04_021E4A00
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E4324
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1ac]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1e8]
@@ -13193,51 +13196,51 @@ _021E42A4:
b _021E43CC
_021E4324:
mov r0, #2
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
b _021E43CC
_021E4330:
mov r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E43CC
mov r5, #0xd
mov r6, r4
_021E434C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4
ldrb r0, [r0, #0x2d0]
ldr r1, [r7, #0x1d8]
mov r0, r6,lsl r0
ands r0, r1, r0
bne _021E4394
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
ldr r0, [r0, #0xf4]
mov r1, r5
- bl FUN_021E4604
+ bl MOD04_021E4604
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, pc}
_021E4394:
add r4, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r4, r0
ble _021E434C
b _021E43CC
_021E43AC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
ldrh r0, [r0, #0xb2]
cmp r5, r0, asr #31
cmpeq r4, r0
bls _021E43CC
mov r0, #2
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
_021E43CC:
mov r0, #1
add sp, sp, #4
@@ -13246,13 +13249,13 @@ _021E43CC:
_021E43D8: .word 0x000082EA
_021E43DC: .word 0x00001770
- arm_func_start FUN_021E43E0
-FUN_021E43E0: ; 0x021E43E0
+ arm_func_start MOD04_021E43E0
+MOD04_021E43E0: ; 0x021E43E0
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
mov r4, r2
- bl FUN_021DF88C
+ bl MOD04_021DF88C
cmp r0, #6
movne r0, #1
ldmneia sp!, {r4, r5, r6, pc}
@@ -13264,31 +13267,31 @@ FUN_021E43E0: ; 0x021E43E0
beq _021E45E0
b _021E45F8
_021E441C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #8
beq _021E443C
mov r0, #8
- bl FUN_021E26D0
+ bl MOD04_021E26D0
mov r0, r4
- bl FUN_021E4B78
+ bl MOD04_021E4B78
_021E443C:
mov r0, r6
mov r1, #0xe
- bl FUN_021E4604
+ bl MOD04_021E4604
cmp r0, #0
bne _021E45F8
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
_021E4458:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xe
bne _021E45C4
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x1e8]
ldr r0, [r0, #0x1ec]
subs r3, r4, r1
@@ -13305,7 +13308,7 @@ _021E4458:
orr r2, r2, r1, lsl #31
cmpeq r2, #0x12c
bls _021E4524
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x1e8]
ldr r0, [r0, #0x1ec]
subs r3, r4, r1
@@ -13323,82 +13326,82 @@ _021E4458:
mvn r2, #0
adds r5, r3, r0
adc r4, r2, r1, lsr #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
ldrh r0, [r0, #0xb2]
cmp r4, r0, asr #31
cmpeq r5, r0
bls _021E4524
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
strh r5, [r0, #0xb2]
_021E4524:
mov r0, r6
mov r1, #0
- bl FUN_021E3F28
+ bl MOD04_021E3F28
mov r4, r0
cmp r4, #0xff
beq _021E4550
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r2, [r0, #0x1d8]
mov r1, #1
orr r1, r2, r1, lsl r4
str r1, [r0, #0x1d8]
_021E4550:
mov r0, #1
- bl FUN_021E3EC4
+ bl MOD04_021E3EC4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1d8]
cmp r4, r0
bne _021E45F8
mov r5, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E45B8
mov r4, #0xf
_021E4584:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r5, lsl #2
ldr r0, [r0, #0xf4]
mov r1, r4
- bl FUN_021E4604
+ bl MOD04_021E4604
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
add r5, r5, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r5, r0
ble _021E4584
_021E45B8:
mov r0, #0xf
- bl FUN_021E26D0
+ bl MOD04_021E26D0
b _021E45F8
_021E45C4:
mov r0, r6
mov r1, #0xf
- bl FUN_021E4604
+ bl MOD04_021E4604
cmp r0, #0
bne _021E45F8
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
_021E45E0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #8
bne _021E45F8
mov r0, #2
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
_021E45F8:
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021E4600: .word 0x000082EA
- arm_func_start FUN_021E4604
-FUN_021E4604: ; 0x021E4604
+ arm_func_start MOD04_021E4604
+MOD04_021E4604: ; 0x021E4604
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
mov r5, r1
@@ -13406,7 +13409,7 @@ FUN_021E4604: ; 0x021E4604
mov r6, r0
movne r4, #0
bne _021E4630
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
mov r4, #1
str r0, [sp, #8]
@@ -13418,13 +13421,13 @@ _021E4630:
mov r1, r6
mov r3, r2
str r4, [sp, #4]
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #0x10
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1e8]
@@ -13433,19 +13436,19 @@ _021E4630:
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E4684
-FUN_021E4684: ; 0x021E4684
+ arm_func_start MOD04_021E4684
+MOD04_021E4684: ; 0x021E4684
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #9
beq _021E46BC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0x10
beq _021E46BC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0x11
bne _021E4700
@@ -13453,7 +13456,7 @@ _021E46BC:
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x1e0]
ldr r0, [r0, #0x1e4]
subs r3, r4, r1
@@ -13472,7 +13475,7 @@ _021E4700:
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
_021E470C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #9
beq _021E4730
@@ -13486,82 +13489,82 @@ _021E4730:
cmp r5, #0
cmpeq r4, r0
bls _021E48FC
- bl FUN_021DF88C
+ bl MOD04_021DF88C
cmp r0, #5
bne _021E477C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1ad]
cmp r0, #5
blo _021E477C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
- bl FUN_021E5908
+ bl MOD04_021E5908
cmp r0, #0
bne _021E48FC
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
_021E477C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x1ad]
add r1, r1, #1
strb r1, [r0, #0x1ad]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x2d0]
mov r1, #3
- bl FUN_021E4910
+ bl MOD04_021E4910
b _021E48FC
_021E47A0:
ldr r0, _021E490C ; =0x00001770
cmp r5, #0
cmpeq r4, r0
bls _021E48FC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x1ab]
add r1, r1, #1
strb r1, [r0, #0x1ab]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1ab]
cmp r0, #5
bls _021E4870
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E47F0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E4800
_021E47F0:
- bl FUN_021E4B40
+ bl MOD04_021E4B40
mov r0, #1
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
b _021E48FC
_021E4800:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1d4]
- bl FUN_021E4A00
+ bl MOD04_021E4A00
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E4850
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1ab]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1e0]
str r1, [r4, #0x1e4]
b _021E48FC
_021E4850:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
- bl FUN_021E59D4
+ bl MOD04_021E59D4
cmp r0, #0
bne _021E48FC
add sp, sp, #4
@@ -13569,43 +13572,43 @@ _021E4850:
ldmia sp!, {r4, r5, r6, r7, pc}
_021E4870:
mov r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E48FC
mov r5, #2
mov r6, r4
_021E488C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4
ldrb r0, [r0, #0x2d0]
ldr r1, [r7, #0x1d4]
mov r0, r6,lsl r0
ands r0, r1, r0
bne _021E48C4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4
ldrb r0, [r0, #0x2d0]
mov r1, r5
- bl FUN_021E4910
+ bl MOD04_021E4910
_021E48C4:
add r4, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r4, r0
ble _021E488C
b _021E48FC
_021E48DC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
ldrh r0, [r0, #0xb0]
cmp r5, r0, asr #31
cmpeq r4, r0
bls _021E48FC
mov r0, #4
- bl FUN_021E51C0
+ bl MOD04_021E51C0
_021E48FC:
mov r0, #1
add sp, sp, #4
@@ -13614,8 +13617,8 @@ _021E48FC:
_021E4908: .word 0x000082EA
_021E490C: .word 0x00001770
- arm_func_start FUN_021E4910
-FUN_021E4910: ; 0x021E4910
+ arm_func_start MOD04_021E4910
+MOD04_021E4910: ; 0x021E4910
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r4, r1
@@ -13626,9 +13629,9 @@ FUN_021E4910: ; 0x021E4910
beq _021E49AC
b _021E49D0
_021E4934:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r6, r0
ldrb r0, [r0, #0x2d0]
@@ -13638,12 +13641,12 @@ _021E4934:
streqb r0, [sp]
movne r0, #0
strneb r0, [sp]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blo _021E49D0
_021E4974:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r6
ldrb r0, [r0, #0x2d0]
cmp r5, r0
@@ -13652,17 +13655,17 @@ _021E4974:
beq _021E49D0
add r0, r6, #1
and r6, r0, #0xff
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r6, r0
bls _021E4974
b _021E49D0
_021E49AC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
ldrh r0, [r0, #0xb0]
strb r0, [sp]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
ldrh r0, [r0, #0xb0]
mov r0, r0, asr #8
@@ -13672,8 +13675,8 @@ _021E49D0:
mov r0, r4
mov r1, r5
mov r3, #4
- bl FUN_021EAF20
- bl FUN_021E26E4
+ bl MOD04_021EAF20
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1e0]
@@ -13681,15 +13684,15 @@ _021E49D0:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E4A00
-FUN_021E4A00: ; 0x021E4A00
+ arm_func_start MOD04_021E4A00
+MOD04_021E4A00: ; 0x021E4A00
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x108
mov sb, #0
mov sl, r0
mov r8, sb
mov r7, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E4A8C
@@ -13697,27 +13700,27 @@ FUN_021E4A00: ; 0x021E4A00
add r5, sp, #0x88
mov r6, r7
_021E4A34:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r7
ldrb r0, [r0, #0x2d0]
mov r0, r6,lsl r0
ands r0, sl, r0
beq _021E4A64
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r7, lsl #2
ldr r0, [r0, #0xf4]
str r0, [r5, r8, lsl #2]
add r8, r8, #1
b _021E4A78
_021E4A64:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r7, lsl #2
ldr r0, [r0, #0xf4]
str r0, [r4, sb, lsl #2]
add sb, sb, #1
_021E4A78:
add r7, r7, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r7, r0
ble _021E4A34
@@ -13736,8 +13739,8 @@ _021E4AA8:
mov r0, r6
mov r2, r4
mov r3, r4
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #0x108
movne r0, #0
@@ -13746,7 +13749,7 @@ _021E4AA8:
cmp sl, r8
blt _021E4AA8
_021E4AE4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #2
strb r1, [r0, #0x1a8]
cmp sb, #0
@@ -13757,180 +13760,180 @@ _021E4AE4:
_021E4B04:
ldr r0, [r5, r6, lsl #2]
mov r1, r4
- bl FUN_021E3F28
+ bl MOD04_021E3F28
cmp r0, #0xff
beq _021E4B1C
- bl FUN_021DF9D4
+ bl MOD04_021DF9D4
_021E4B1C:
add r6, r6, #1
cmp r6, sb
blt _021E4B04
_021E4B28:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a8]
mov r0, #1
add sp, sp, #0x108
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- arm_func_start FUN_021E4B40
-FUN_021E4B40: ; 0x021E4B40
+ arm_func_start MOD04_021E4B40
+MOD04_021E4B40: ; 0x021E4B40
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #2
strb r1, [r0, #0x1a8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD45C
- bl FUN_021E26E4
+ bl MOD04_021FD45C
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a8]
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021E4B78
-FUN_021E4B78: ; 0x021E4B78
+ arm_func_start MOD04_021E4B78
+MOD04_021E4B78: ; 0x021E4B78
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [r0, #0x20c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0xd]
mov r0, r5
add r1, r1, #1
- bl FUN_021DF648
+ bl MOD04_021DF648
movs r4, r0
beq _021E4BD4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #2
strb r1, [r0, #0x1a8]
ldr r0, [r4]
- bl FUN_021FD488
- bl FUN_021E26E4
+ bl MOD04_021FD488
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a8]
add sp, sp, #4
mov r0, #1
ldmia sp!, {r4, r5, pc}
_021E4BD4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0xd]
mov r0, r5
add r1, r1, #1
- bl FUN_021E89EC
+ bl MOD04_021E89EC
mov r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021E4BF4
-FUN_021E4BF4: ; 0x021E4BF4
+ arm_func_start MOD04_021E4BF4
+MOD04_021E4BF4: ; 0x021E4BF4
stmdb sp!, {r4, lr}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x208]
cmp r0, #0
beq _021E4CA4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E4C64
mov r0, #3
- bl FUN_021E26D0
+ bl MOD04_021E26D0
mov r0, #0
- bl FUN_021E7E5C
+ bl MOD04_021E7E5C
mov r4, r0
- bl FUN_021E38E8
+ bl MOD04_021E38E8
cmp r0, #0
beq _021E4CAC
mov r0, r4
ldmia sp!, {r4, pc}
_021E4C64:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E4CAC
mov r0, #4
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
ldr r0, [r0, #0x208]
mov r1, #0
- bl FUN_021E6038
+ bl MOD04_021E6038
mov r4, r0
- bl FUN_021E61EC
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E4CAC
mov r0, r4
ldmia sp!, {r4, pc}
_021E4CA4:
mov r0, #1
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
_021E4CAC:
mov r0, #0
ldmia sp!, {r4, pc}
- arm_func_start FUN_021E4CB4
-FUN_021E4CB4: ; 0x021E4CB4
+ arm_func_start MOD04_021E4CB4
+MOD04_021E4CB4: ; 0x021E4CB4
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021E4B40
+ bl MOD04_021E4B40
mov r0, #1
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021E4CF8
-FUN_021E4CF8: ; 0x021E4CF8
+ arm_func_start MOD04_021E4CF8
+MOD04_021E4CF8: ; 0x021E4CF8
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
movs r4, r0
bne _021E4D14
- bl FUN_021E4ED4
+ bl MOD04_021E4ED4
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
_021E4D14:
- bl FUN_021E8174
- bl FUN_021E26E4
+ bl MOD04_021E8174
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
beq _021E4D38
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E4D94
_021E4D38:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
cmp r0, #0
moveq r6, #1
movne r6, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
- bl FUN_021E1F18
+ bl MOD04_021E1F18
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r4, [sp]
ldr r1, [r0, #0x468]
mov r0, #0
@@ -13943,7 +13946,7 @@ _021E4D38:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
_021E4D94:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E4DC8
@@ -13951,13 +13954,13 @@ _021E4D94:
addne sp, sp, #8
ldmneia sp!, {r4, r5, r6, pc}
mov r0, #0
- bl FUN_021E7E5C
- bl FUN_021E38E8
+ bl MOD04_021E7E5C
+ bl MOD04_021E38E8
add sp, sp, #8
cmp r0, #0
ldmia sp!, {r4, r5, r6, pc}
_021E4DC8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
addne sp, sp, #8
@@ -13968,40 +13971,40 @@ _021E4DC8:
mov r0, #0
mov r1, r0
mov r2, r0
- bl FUN_021E5D30
+ bl MOD04_021E5D30
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E4E00
-FUN_021E4E00: ; 0x021E4E00
+ arm_func_start MOD04_021E4E00
+MOD04_021E4E00: ; 0x021E4E00
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
mov r4, #0
str r4, [sp, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x17]
cmp r0, #0
beq _021E4EC8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20]
cmp r0, #0
beq _021E4EC8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r5, #0x20]
ldr r0, [r0, #0x200]
cmp r1, r0
beq _021E4EC8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r2, sp, #8
mov r1, #1
str r2, [sp]
@@ -14016,12 +14019,12 @@ FUN_021E4E00: ; 0x021E4E00
ldrh r3, [r3, #0xa4]
ldr r2, [r2, #0x24]
mov r0, #0xc
- bl FUN_021E7884
+ bl MOD04_021E7884
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20]
_021E4EC8:
@@ -14029,42 +14032,42 @@ _021E4EC8:
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021E4ED4
-FUN_021E4ED4: ; 0x021E4ED4
+ arm_func_start MOD04_021E4ED4
+MOD04_021E4ED4: ; 0x021E4ED4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
ldr r1, _021E4F90 ; =0x0220D3F0
mov r0, #1
mov r2, #0
- bl FUN_021E1E30
- bl FUN_021E397C
+ bl MOD04_021E1E30
+ bl MOD04_021E397C
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E8034
- bl FUN_021E26E4
+ bl MOD04_021E8034
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
cmp r0, #0
movne r6, #1
bne _021E4F28
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
moveq r6, #1
movne r6, #0
_021E4F28:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
cmp r0, #0
moveq r7, #1
movne r7, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
- bl FUN_021E1F18
+ bl MOD04_021E1F18
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r4, [sp]
ldr r1, [r0, #0x468]
mov r2, r7
@@ -14074,7 +14077,7 @@ _021E4F28:
mov r0, #0
mov r1, #1
blx ip
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a9]
add sp, sp, #0xc
@@ -14082,133 +14085,133 @@ _021E4F28:
.align 2, 0
_021E4F90: .word 0x0220D3F0
- arm_func_start FUN_021E4F94
-FUN_021E4F94: ; 0x021E4F94
+ arm_func_start MOD04_021E4F94
+MOD04_021E4F94: ; 0x021E4F94
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #2
bne _021E4FC4
- bl FUN_021E4ED4
+ bl MOD04_021E4ED4
add sp, sp, #4
ldmfd sp!, {pc}
_021E4FC4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x1a9]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E5038
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x1a9]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E5010
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD45C
+ bl MOD04_021FD45C
b _021E502C
_021E5010:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
- bl FUN_021E5BF0
- bl FUN_021E61EC
+ bl MOD04_021E5BF0
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
_021E502C:
- bl FUN_021E4ED4
+ bl MOD04_021E4ED4
add sp, sp, #4
ldmfd sp!, {pc}
_021E5038:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #4
beq _021E5098
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #5
beq _021E5098
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #6
beq _021E5098
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #7
beq _021E5098
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xb
beq _021E5098
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xc
bne _021E50D8
_021E5098:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
cmp r0, #0
beq _021E50C4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
- bl FUN_021E5BF0
- bl FUN_021E61EC
+ bl MOD04_021E5BF0
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
_021E50C4:
- bl FUN_021E4E00
- bl FUN_021E61EC
+ bl MOD04_021E4E00
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
_021E50D8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
cmp r0, #0
beq _021E5100
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
- bl FUN_022006B4
- bl FUN_021E26E4
+ bl MOD04_022006B4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x19c]
_021E5100:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E512C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x1a9]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD45C
+ bl MOD04_021FD45C
_021E512C:
- bl FUN_021E4ED4
+ bl MOD04_021E4ED4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021E5138
-FUN_021E5138: ; 0x021E5138
+ arm_func_start MOD04_021E5138
+MOD04_021E5138: ; 0x021E5138
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a6]
cmp r0, #0
beq _021E5168
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #4
moveq r0, #1
@@ -14219,15 +14222,15 @@ _021E5168:
bls _021E51B8
_021E5174:
ldr r0, [r6, r4, lsl #2]
- bl FUN_021E4074
+ bl MOD04_021E4074
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a6]
cmp r0, #0
beq _021E51AC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #1
moveq r0, #1
@@ -14240,8 +14243,8 @@ _021E51B8:
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E51C0
-FUN_021E51C0: ; 0x021E51C0
+ arm_func_start MOD04_021E51C0
+MOD04_021E51C0: ; 0x021E51C0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x20
cmp r0, #4
@@ -14256,47 +14259,47 @@ _021E51DC: ; jump table
b _021E569C ; case 3
b _021E56BC ; case 4
_021E51F0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
ldrb r1, [r6, #0x1a4]
sub r0, r0, #1
cmp r1, r0
bge _021E52B0
mov r0, #0xd
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a4]
add r0, r0, #1
add r0, r5, r0, lsl #2
ldr r0, [r0, #0xf4]
str r0, [sp, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a4]
add r0, r0, #1
str r0, [sp, #0xc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a4]
add r0, r0, #1
add r0, r5, r0
ldrb r0, [r0, #0x2d0]
str r0, [sp, #0x10]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a4]
add r0, r0, #1
add r0, r5, r0, lsl #2
ldr r0, [r0, #0x24]
str r0, [sp, #0x14]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a4]
mov r5, #5
add r0, r0, #1
@@ -14305,92 +14308,92 @@ _021E51F0:
str r0, [sp, #0x18]
b _021E54FC
_021E52B0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, r4
strb r1, [r0, #0x17]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, r4
str r1, [r0, #0x20]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202308
- bl FUN_021E26E4
+ bl MOD04_02202308
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E52F0
mov r0, r5
- bl FUN_021E26D0
+ bl MOD04_021E26D0
b _021E5314
_021E52F0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E530C
mov r0, #4
- bl FUN_021E26D0
+ bl MOD04_021E26D0
b _021E5314
_021E530C:
mov r0, #0xa
- bl FUN_021E26D0
+ bl MOD04_021E26D0
_021E5314:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
beq _021E534C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r6, #0xd]
ldrb r0, [r0, #0x16]
cmp r1, r0
bne _021E53FC
_021E534C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
bne _021E5384
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r6, r0, lsl #2
ldr r0, [r0, #0xf4]
str r0, [r7, #0x20c]
b _021E53A4
_021E5384:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x200]
str r0, [r6, #0xf4]
_021E53A4:
mov r0, #0x10
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1d4]
mov r7, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E54EC
mov r6, #2
_021E53D0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r7
ldrb r0, [r0, #0x2d0]
mov r1, r6
- bl FUN_021E4910
+ bl MOD04_021E4910
add r7, r7, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r7, r0
ble _021E53D0
@@ -14398,54 +14401,54 @@ _021E53D0:
_021E53FC:
mov r0, #0
str r0, [sp, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
str r0, [sp, #0xc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r6, r0
ldrb r0, [r0, #0x2d0]
str r0, [sp, #0x10]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E5460
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #2
str r1, [r0, #0xe8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
bl OS_GetTick
str r0, [r6, #0xec]
str r1, [r6, #0xf0]
b _021E54EC
_021E5460:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E54EC
mov r1, #0
mov r2, r1
mov r0, #1
- bl FUN_021E5D30
- bl FUN_021E26E4
+ bl MOD04_021E5D30
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a6]
cmp r0, #0
bne _021E54EC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #2
blo _021E54EC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r8, r0
mov r0, #0
- bl FUN_021E3EC4
+ bl MOD04_021E3EC4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
mov r1, #1
ldr r2, [r8, #0x1dc]
@@ -14455,29 +14458,29 @@ _021E5460:
and r0, r6, r0
cmp r2, r0
beq _021E54EC
- bl FUN_021E4CB4
+ bl MOD04_021E4CB4
b _021E57E8
_021E54EC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
movne r4, #1
_021E54FC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0x10
beq _021E57E8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sl, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sb, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r8, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, sp, #8
str r1, [sp]
str r5, [sp, #4]
@@ -14492,27 +14495,27 @@ _021E54FC:
ldr r1, [r5, #0xf4]
ldr r2, [r2, #0x24]
mov r0, #8
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x3cd]
b _021E57E8
_021E5594:
mov r0, #1
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E55D0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0xf4]
@@ -14522,39 +14525,39 @@ _021E55D0:
b _021E57E8
_021E55D8:
mov r0, #1
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E5600
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E5620
_021E5600:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x17]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x200]
str r0, [r5, #0x20]
_021E5620:
- bl FUN_021E3E9C
- bl FUN_021E26E4
+ bl MOD04_021E3E9C
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
bls _021E57E8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r8, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r3, r8, #0xf4
ldrb r2, [r0, #0xd]
mov r1, #1
@@ -14566,43 +14569,43 @@ _021E5620:
ldr r1, [r7, #0xf4]
ldr r2, [r6, #0x24]
ldrh r3, [r5, #0xa4]
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E57E8
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E569C:
mov r0, #1
- bl FUN_021E26D0
- bl FUN_021E3E9C
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E3E9C
+ bl MOD04_021E26E4
mov r1, r4
str r1, [r0, #0x20c]
mov r4, #1
b _021E57E8
_021E56BC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
beq _021E56DC
ldr r1, _021E581C ; =0x0220D3F0
mov r0, #2
mov r2, r4
- bl FUN_021E1E30
+ bl MOD04_021E1E30
_021E56DC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
cmp r0, #0
moveq r7, #1
movne r7, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
- bl FUN_021E1F18
+ bl MOD04_021E1F18
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [sp]
ldr r1, [r0, #0x468]
mov r0, #0
@@ -14612,36 +14615,36 @@ _021E56DC:
mov r1, r0
mov r3, r0
blx r5
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E5750
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E5758
_021E5750:
- bl FUN_021E8034
+ bl MOD04_021E8034
b _021E57DC
_021E5758:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
cmp r0, #0
beq _021E5780
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203E80
- bl FUN_021E26E4
+ bl MOD04_02203E80
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0xe4]
_021E5780:
- bl FUN_02200D6C
- bl FUN_021E26E4
+ bl MOD04_02200D6C
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
bne _021E57C8
- bl FUN_021E85D4
- bl FUN_021E397C
+ bl MOD04_021E85D4
+ bl MOD04_021E397C
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
@@ -14651,57 +14654,57 @@ _021E5780:
moveq r1, #1
streqb r1, [r0, #1]
mov r0, #0xa
- bl FUN_021E26D0
+ bl MOD04_021E26D0
b _021E57D0
_021E57C8:
mov r0, #1
- bl FUN_021E26D0
+ bl MOD04_021E26D0
_021E57D0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20c]
_021E57DC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a9]
_021E57E8:
cmp r4, #0
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
addeq sp, sp, #0x20
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203C04
+ bl MOD04_02203C04
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_021E581C: .word 0x0220D3F0
_021E5820: .word 0x022106DC
- arm_func_start FUN_021E5824
-FUN_021E5824: ; 0x021E5824
+ arm_func_start MOD04_021E5824
+MOD04_021E5824: ; 0x021E5824
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0xc
mov r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E58BC
mov r5, #0xa
_021E5844:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sb, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r8, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r6, #0x348
str r1, [sp]
ldr ip, [r0, #0x348]
@@ -14714,88 +14717,88 @@ _021E5844:
ldr r1, [r1, #0xf4]
ldr r2, [r2, #0x24]
mov r0, r5
- bl FUN_021E7884
+ bl MOD04_021E7884
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc}
add r4, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r4, r0
ble _021E5844
_021E58BC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x1a8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD45C
- bl FUN_021E26E4
+ bl MOD04_021FD45C
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a8]
mov r0, r1
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_021E5908
-FUN_021E5908: ; 0x021E5908
+ arm_func_start MOD04_021E5908
+MOD04_021E5908: ; 0x021E5908
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E5950
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E5938
- bl FUN_021E4B40
+ bl MOD04_021E4B40
_021E5938:
ldr r1, _021E59D0 ; =0xFFFEC5D2
mov r0, #6
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, pc}
_021E5950:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
strb r0, [r5, #0x14]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x208]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
cmp r0, #0
beq _021E5998
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
- bl FUN_022006B4
- bl FUN_021E26E4
+ bl MOD04_022006B4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x19c]
_021E5998:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E59B0
- bl FUN_021E4CB4
+ bl MOD04_021E4CB4
b _021E59C4
_021E59B0:
mov r0, #4
- bl FUN_021E26D0
+ bl MOD04_021E26D0
mov r0, #0
- bl FUN_021E5C44
+ bl MOD04_021E5C44
mov r4, r0
_021E59C4:
mov r0, r4
@@ -14804,17 +14807,17 @@ _021E59C4:
.align 2, 0
_021E59D0: .word 0xFFFEC5D2
- arm_func_start FUN_021E59D4
-FUN_021E59D4: ; 0x021E59D4
+ arm_func_start MOD04_021E59D4
+MOD04_021E59D4: ; 0x021E59D4
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x17]
cmp r0, #0
beq _021E5A0C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r4, #0x20]
ldr r0, [r0, #0x200]
cmp r1, r0
@@ -14825,142 +14828,142 @@ _021E5A0C:
_021E5A10:
cmp r4, #0
beq _021E5A3C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202308
+ bl MOD04_02202308
_021E5A3C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0x1f
bhs _021E5A6C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
mov r1, #0
add r0, r0, #1
add r0, r6, r0, lsl #2
str r1, [r0, #0xf4]
_021E5A6C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0xff
strb r1, [r0, #0x3cc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
cmp r0, #0
beq _021E5AA0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
- bl FUN_022006B4
- bl FUN_021E26E4
+ bl MOD04_022006B4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x19c]
_021E5AA0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
strb r0, [r6, #0x14]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x204]
cmp r4, #0
bne _021E5AE0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
beq _021E5BE8
- bl FUN_021E4CB4
+ bl MOD04_021E4CB4
b _021E5BE8
_021E5AE0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E5B1C
mov r0, #3
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r1, #2
str r1, [r0, #0xe8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0xec]
str r1, [r4, #0xf0]
b _021E5BE8
_021E5B1C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E5B48
mov r0, #4
- bl FUN_021E26D0
+ bl MOD04_021E26D0
mov r1, #0
mov r2, r1
mov r0, #1
- bl FUN_021E5D30
+ bl MOD04_021E5D30
b _021E5BE8
_021E5B48:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
bne _021E5BE8
mov r0, #0xe
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1d8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x100
mov r2, #0
mov r0, r5
strh r2, [r1, #0xb2]
- bl FUN_021E4B78
+ bl MOD04_021E4B78
mov r5, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E5BD0
mov r4, #0xd
_021E5B9C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r5, lsl #2
ldr r0, [r0, #0xf4]
mov r1, r4
- bl FUN_021E4604
+ bl MOD04_021E4604
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
add r5, r5, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r5, r0
ble _021E5B9C
_021E5BD0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
bne _021E5BE8
mov r0, #2
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
_021E5BE8:
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E5BF0
-FUN_021E5BF0: ; 0x021E5BF0
+ arm_func_start MOD04_021E5BF0
+MOD04_021E5BF0: ; 0x021E5BF0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
@@ -14968,71 +14971,71 @@ FUN_021E5BF0: ; 0x021E5BF0
ldr r2, [r4, #0x24]
mov r1, r5
mov r0, #5
- bl FUN_021E7884
+ bl MOD04_021E7884
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x204]
mov r0, r4
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021E5C44
-FUN_021E5C44: ; 0x021E5C44
+ arm_func_start MOD04_021E5C44
+MOD04_021E5C44: ; 0x021E5C44
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x208]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x204]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a7]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1cc]
str r1, [r4, #0x1d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E5CC0
mov r0, #3
- bl FUN_021E26D0
+ bl MOD04_021E26D0
mov r0, #0
- bl FUN_021E7E5C
- bl FUN_021E38E8
+ bl MOD04_021E7E5C
+ bl MOD04_021E38E8
cmp r0, #0
beq _021E5D20
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, pc}
_021E5CC0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E5CF8
mov r0, #0
mov r1, r0
mov r2, r5
- bl FUN_021E5D30
- bl FUN_021E61EC
+ bl MOD04_021E5D30
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E5D20
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, pc}
_021E5CF8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E5D20
ldr r1, _021E5D2C ; =0xFFFEC5E6
mov r0, #6
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, pc}
@@ -15043,22 +15046,22 @@ _021E5D20:
.align 2, 0
_021E5D2C: .word 0xFFFEC5E6
- arm_func_start FUN_021E5D30
-FUN_021E5D30: ; 0x021E5D30
+ arm_func_start MOD04_021E5D30
+MOD04_021E5D30: ; 0x021E5D30
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x23c
movs r4, r1
str r0, [sp]
str r2, [sp, #4]
beq _021E5D58
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a5]
str r0, [sp, #0xc]
b _021E5D90
_021E5D58:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x344]
ldrb r1, [r5, #0x1a5]
sub r0, r0, #1
@@ -15066,7 +15069,7 @@ _021E5D58:
movge r0, #0
strge r0, [sp, #0xc]
bge _021E5D90
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a5]
add r0, r0, #1
str r0, [sp, #0xc]
@@ -15087,36 +15090,36 @@ _021E5DB4:
cmp sb, #0
beq _021E5DFC
_021E5DC8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x1a5]
add r1, r1, #1
strb r1, [r0, #0x1a5]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r6, #0x1a5]
ldr r0, [r0, #0x344]
cmp r1, r0
blt _021E5DFC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
strb r8, [r0, #0x1a5]
_021E5DFC:
cmp sb, #0
beq _021E5E50
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x1a5]
ldr r0, [sp, #0xc]
cmp r0, r1
bne _021E5E50
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, _021E6028 ; =0x00000BB8
str r1, [r0, #0x1c8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1cc]
str r1, [r4, #0x1d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1bc]
add sp, sp, #0x23c
@@ -15124,13 +15127,13 @@ _021E5DFC:
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021E5E50:
mov sb, r7
- bl FUN_021E0F00
+ bl MOD04_021E0F00
mov fp, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sl, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, r0
ldrb r2, [r1, #0x1a5]
ldr r3, [sl, #0x2fc]
@@ -15145,11 +15148,11 @@ _021E5E50:
mvn r0, #0
cmp sl, r0
beq _021E5DB4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov fp, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r2, [r6, #0x2fc]
ldrb r1, [r0, #0x1a5]
mov r0, #0xc
@@ -15160,37 +15163,37 @@ _021E5E50:
cmp r0, #0
beq _021E5DB4
mov r6, r7
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E5F1C
_021E5EF4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r6, lsl #2
ldr r0, [r0, #0xf4]
cmp sl, r0
beq _021E5F1C
add r6, r6, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r6, r0
ble _021E5EF4
_021E5F1C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r6, r0
ble _021E5DB4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0]
mov r1, sl
add r2, sp, #0x18
- bl FUN_021F0664
+ bl MOD04_021F0664
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0]
ldr r1, [sp, #0x18]
add r2, sp, #0x28
- bl FUN_021F06E4
+ bl MOD04_021F06E4
orrs r0, r6, r0
bne _021E5DB4
ldr r0, [sp, #0x2c]
@@ -15200,19 +15203,19 @@ _021E5F1C:
add r1, sp, #0x1c
add r2, sp, #0x30
mov r3, r5
- bl FUN_021DE9F4
+ bl MOD04_021DE9F4
mov r6, r0
ldr r0, _021E6030 ; =0x0220D3F8
add r1, sp, #0x12
add r2, sp, #0x30
mov r3, r5
- bl FUN_021DE9F4
+ bl MOD04_021DE9F4
mov fp, r0
ldr r0, _021E6034 ; =0x0220D3FC
add r1, sp, #0x10
add r2, sp, #0x30
mov r3, r5
- bl FUN_021DE9F4
+ bl MOD04_021DE9F4
cmp r6, #0
ble _021E5DB4
cmp fp, #0
@@ -15230,7 +15233,7 @@ _021E5F1C:
mov r2, r4
bl strtoul
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x16]
cmp r6, r0
bne _021E5DB4
@@ -15240,7 +15243,7 @@ _021E5F1C:
streq r0, [sp]
ldr r1, [sp]
mov r0, sl
- bl FUN_021E6038
+ bl MOD04_021E6038
add sp, sp, #0x23c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
@@ -15249,109 +15252,109 @@ _021E602C: .word 0x0220D3F4
_021E6030: .word 0x0220D3F8
_021E6034: .word 0x0220D3FC
- arm_func_start FUN_021E6038
-FUN_021E6038: ; 0x021E6038
+ arm_func_start MOD04_021E6038
+MOD04_021E6038: ; 0x021E6038
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
mov r5, r0
cmp r1, #0
bne _021E606C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1c]
cmp r0, #0
bne _021E60A0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrh r0, [r0, #0x1a]
cmp r0, #0
bne _021E60A0
_021E606C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
str r1, [r0, #0x1bc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1c0]
str r1, [r4, #0x1c4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [r0, #0xf4]
add sp, sp, #0x14
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
_021E60A0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E6124
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
mov r1, #0
- bl FUN_02203BF4
+ bl MOD04_02203BF4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
ldr r1, _021E61E4 ; =0x0220D3AC
mov r0, r6
mov r2, #0
- bl FUN_0220394C
+ bl MOD04_0220394C
str r0, [r4, #0xf4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
mov r0, r6
- bl FUN_02203908
+ bl MOD04_02203908
str r0, [r4, #0x24]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
mov r0, r6
- bl FUN_022038E4
+ bl MOD04_022038E4
strh r0, [r4, #0xa4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
mov r4, #1
str r0, [r6, #0x204]
b _021E6160
_021E6124:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E613C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [r0, #0xf4]
_021E613C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [r0, #0x204]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1c]
str r0, [sp, #0xc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrh r0, [r0, #0x1a]
mov r4, #3
str r0, [sp, #0x10]
_021E6160:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, _021E61E8 ; =0x00001770
str r1, [r0, #0x1c8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
bl OS_GetTick
str r0, [r6, #0x1cc]
str r1, [r6, #0x1d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1bc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x208]
cmp r0, #0
movne r7, #0xb
moveq r7, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
str r0, [sp, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r2, sp, #8
str r2, [sp]
mov r3, r0
@@ -15360,31 +15363,31 @@ _021E6160:
ldr r2, [r6, #0x24]
mov r1, r5
mov r0, r7
- bl FUN_021E7884
+ bl MOD04_021E7884
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
_021E61E4: .word 0x0220D3AC
_021E61E8: .word 0x00001770
- arm_func_start FUN_021E61EC
-FUN_021E61EC: ; 0x021E61EC
+ arm_func_start MOD04_021E61EC
+MOD04_021E61EC: ; 0x021E61EC
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E6210
mov r0, r4
- bl FUN_021E38E8
+ bl MOD04_021E38E8
ldmia sp!, {r4, pc}
_021E6210:
mov r0, r4
- bl FUN_021E397C
+ bl MOD04_021E397C
ldmia sp!, {r4, pc}
- arm_func_start FUN_021E621C
-FUN_021E621C: ; 0x021E621C
+ arm_func_start MOD04_021E621C
+MOD04_021E621C: ; 0x021E621C
stmdb sp!, {r4, r5, r6, lr}
mov r5, r1
ldr r1, [r5]
@@ -15392,101 +15395,101 @@ FUN_021E621C: ; 0x021E621C
add r4, r1, #2
cmp r4, #2
bls _021E6250
- bl FUN_021E26E4
+ bl MOD04_021E26E4
sub r2, r4, #2
add r1, r0, #0x350
add r0, r5, #4
mov r2, r2, lsl #2
bl MIi_CpuCopy32
_021E6250:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
sub r1, r4, #1
str r1, [r0, #0x348]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r6, [r0, #0x34c]
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E6268
-FUN_021E6268: ; 0x021E6268
+ arm_func_start MOD04_021E6268
+MOD04_021E6268: ; 0x021E6268
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x14
mov r6, r0
mov r5, r1
mov r4, r2
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x17]
cmp r0, #0
beq _021E62A4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20]
cmp r6, r0
addeq sp, sp, #0x14
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
_021E62A4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x17]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r6, [r0, #0x20]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1bc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1c8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202308
- bl FUN_021E26E4
+ bl MOD04_02202308
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x204]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
add r0, r0, #1
add r0, r7, r0, lsl #2
str r6, [r0, #0xf4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
add r0, r0, #1
add r0, r7, r0, lsl #2
str r5, [r0, #0x24]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
add r0, r0, #1
add r0, r7, r0, lsl #1
strh r4, [r0, #0xa4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [r0, #0x1b8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
strh r4, [r0, #0xb4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E40F4
+ bl MOD04_021E40F4
ldrb r1, [r4, #0x14]
add r1, r1, #1
add r1, r5, r1
strb r0, [r1, #0x2d0]
str r6, [sp, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
mov r7, #1
add r0, r0, #1
add r0, r4, r0
ldrb r0, [r0, #0x2d0]
str r0, [sp, #0xc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
cmp r0, #1
blt _021E6414
@@ -15494,11 +15497,11 @@ _021E62A4:
mov r5, #2
mov r4, #7
_021E63B8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sb, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r8, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r6, [sp]
str r5, [sp, #4]
add r0, r0, r7, lsl #1
@@ -15508,30 +15511,30 @@ _021E63B8:
ldr r1, [r1, #0xf4]
ldr r2, [r2, #0x24]
mov r0, r4
- bl FUN_021E7884
+ bl MOD04_021E7884
cmp r0, #0
addne sp, sp, #0x14
ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc}
add r7, r7, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
cmp r7, r0
ble _021E63B8
_021E6414:
mov r0, #1
- bl FUN_021E3E28
+ bl MOD04_021E3E28
mov r0, #0
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_021E6428
-FUN_021E6428: ; 0x021E6428
+ arm_func_start MOD04_021E6428
+MOD04_021E6428: ; 0x021E6428
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r7, r0
mov r6, r1
mov r5, r2
mov r8, r3
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E6490
@@ -15541,86 +15544,86 @@ FUN_021E6428: ; 0x021E6428
beq _021E6670
b _021E6724
_021E6460:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0]
mov r1, r7
- bl FUN_021F05F4
+ bl MOD04_021F05F4
cmp r0, #0
moveq r4, #0xff
beq _021E6724
mov r0, r7
- bl FUN_021E4074
+ bl MOD04_021E4074
cmp r0, #0
moveq r4, #3
beq _021E6724
_021E6490:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r8, r0
bne _021E64F8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a9]
cmp r0, #0
bne _021E64F8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r4, #0x14]
ldrb r0, [r0, #0x16]
cmp r1, r0
beq _021E64F8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x17]
cmp r0, #0
beq _021E655C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r4, #0x20]
ldr r0, [r0, #0x200]
cmp r1, r0
bne _021E655C
_021E64F8:
mov r4, #3
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E6724
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
ldr r0, [r0, #0xb4]
cmp r0, #0
bne _021E6724
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x17]
cmp r0, #0
beq _021E6724
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r5, #0x20]
ldr r0, [r0, #0x200]
cmp r1, r0
bne _021E6724
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202308
+ bl MOD04_02202308
b _021E6724
_021E655C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #3
beq _021E657C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #4
bne _021E65AC
_021E657C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1c]
cmp r0, #0
bne _021E659C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrh r0, [r0, #0x1a]
cmp r0, #0
beq _021E65AC
@@ -15633,22 +15636,22 @@ _021E65AC:
mov r4, #4
b _021E6724
_021E65B4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
cmp r0, #0
beq _021E6668
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
cmp r7, r0
bne _021E6610
ldr r0, [sp, #0x18]
cmp r0, #0
bne _021E6600
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x200]
cmp r0, r7
bge _021E6608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x208]
cmp r7, r0
beq _021E6608
@@ -15662,19 +15665,19 @@ _021E6610:
ldr r0, [sp, #0x18]
cmp r0, #0
bne _021E663C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x200]
cmp r0, r7
bge _021E6660
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x208]
cmp r0, #0
bne _021E6660
_021E663C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
- bl FUN_021E5BF0
- bl FUN_021E61EC
+ bl MOD04_021E5BF0
+ bl MOD04_021E61EC
cmp r0, #0
movne r0, #0xff
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -15687,18 +15690,18 @@ _021E6668:
mov r4, #2
b _021E6724
_021E6670:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0]
mov r1, r7
- bl FUN_021F05F4
+ bl MOD04_021F05F4
cmp r0, #0
moveq r4, #0xff
beq _021E6724
cmp r8, #3
bne _021E66B0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r4, #0x14]
ldrb r0, [r0, #0x16]
cmp r1, r0
@@ -15716,15 +15719,15 @@ _021E66B8:
moveq r4, #0x13
beq _021E6724
_021E66D8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xa
bne _021E6718
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1c]
cmp r0, #0
bne _021E6708
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrh r0, [r0, #0x1a]
cmp r0, #0
beq _021E6718
@@ -15744,8 +15747,8 @@ _021E6724:
.align 2, 0
_021E672C: .word 0x022106DC
- arm_func_start FUN_021E6730
-FUN_021E6730: ; 0x021E6730
+ arm_func_start MOD04_021E6730
+MOD04_021E6730: ; 0x021E6730
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x118
mov sb, r0
@@ -15755,10 +15758,10 @@ FUN_021E6730: ; 0x021E6730
ldr r6, [sp, #0x138]
ldr r5, [sp, #0x13c]
mov r4, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
beq _021E6770
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0
bne _021E677C
@@ -15767,18 +15770,18 @@ _021E6770:
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E677C:
- bl FUN_021DF88C
+ bl MOD04_021DF88C
cmp r0, #5
bne _021E67AC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #1
bne _021E67AC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
cmp r8, r0
bne _021E67AC
- bl FUN_021E3E9C
+ bl MOD04_021E3E9C
_021E67AC:
cmp sb, #0x40
bgt _021E684C
@@ -15825,7 +15828,7 @@ _021E684C:
cmp sb, #0x41
b _021E7608
_021E6854:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
ldrne r0, [r6, #8]
@@ -15840,89 +15843,89 @@ _021E6854:
mov r0, r8
mov r1, r7
mov r2, sl
- bl FUN_021E6428
+ bl MOD04_021E6428
mov r5, r0
cmp r5, #2
bne _021E6994
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1dc]
mov r0, r8
mov r1, r7
mov r2, sl
- bl FUN_021E6268
- bl FUN_021E61EC
+ bl MOD04_021E6268
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #0x118
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
bne _021E6918
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x46c]
cmp r0, #0
beq _021E6918
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
mov r0, r8
- bl FUN_021E1F18
+ bl MOD04_021E1F18
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x470]
ldr r2, [r6, #0x46c]
mov r0, r4
blx r2
_021E6918:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
mov r4, #1
str r0, [sp, #0x14]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
cmp r0, #1
blt _021E6960
add r6, sp, #0x14
_021E693C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
ldr r0, [r0, #0xf4]
str r0, [r6, r4, lsl #2]
add r4, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
cmp r4, r0
ble _021E693C
_021E6960:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x1c]
add r0, sp, #0x14
str r1, [r0, r4, lsl #2]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrh r2, [r0, #0x1a]
add r3, r4, #1
add r1, sp, #0x14
mov r0, #0xb
str r2, [r1, r3, lsl #2]
add r4, r4, #2
- bl FUN_021E26D0
+ bl MOD04_021E26D0
b _021E69E0
_021E6994:
cmp r5, #3
bne _021E69E0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x16]
cmp r0, #0
beq _021E69E0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r6, #0x14]
ldrb r0, [r0, #0x16]
cmp r1, r0
bne _021E69E0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
moveq r0, #0x10
@@ -15938,76 +15941,76 @@ _021E69E0:
mov r2, r7
mov r3, sl
str r4, [sp, #4]
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E7608
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E6A20:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #4
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
cmp r8, r0
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x208]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a7]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1c8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1bc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6]
add r1, r6, r1, lsl #2
ldr r1, [r1, #4]
str r1, [r0, #0x24]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6]
add r1, r6, r1, lsl #2
ldr r1, [r1, #8]
strh r1, [r0, #0xa4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6]
add r1, r6, r1, lsl #2
ldr r1, [r1, #4]
str r1, [r0, #0x1b8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6]
add r0, r0, #0x100
add r1, r6, r1, lsl #2
ldr r1, [r1, #8]
strh r1, [r0, #0xb4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E6B4C
ldr r1, [r6]
add r0, r6, #4
- bl FUN_021E5138
+ bl MOD04_021E5138
cmp r0, #0
beq _021E6B08
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E6B4C
mov r0, r8
mov r1, r6
- bl FUN_021E621C
+ bl MOD04_021E621C
b _021E6B4C
_021E6B08:
mov r0, r8
- bl FUN_021E5BF0
- bl FUN_021E61EC
+ bl MOD04_021E5BF0
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #0x118
movne r0, #0
@@ -16015,43 +16018,43 @@ _021E6B08:
mov r0, #0
mov r1, r0
mov r2, r8
- bl FUN_021E5D30
- bl FUN_021E61EC
+ bl MOD04_021E5D30
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E7608
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E6B4C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E6BD0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E6B90
mov r0, r8
mov r1, r6
- bl FUN_021E621C
- bl FUN_021E5824
- bl FUN_021E61EC
+ bl MOD04_021E621C
+ bl MOD04_021E5824
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #0x118
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E6B90:
mov r0, #6
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
mov r1, #0
- bl FUN_02203BF4
+ bl MOD04_02203BF4
mov r2, r0
mov r0, #0
mov r1, r0
- bl FUN_021E7B04
- bl FUN_021E37A4
+ bl MOD04_021E7B04
+ bl MOD04_021E37A4
cmp r0, #0
beq _021E7608
add sp, sp, #0x118
@@ -16059,21 +16062,21 @@ _021E6B90:
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E6BD0:
mov r0, #5
- bl FUN_021E26D0
+ bl MOD04_021E26D0
mov r0, r8
- bl FUN_021E7E5C
- bl FUN_021E38E8
+ bl MOD04_021E7E5C
+ bl MOD04_021E38E8
cmp r0, #0
beq _021E7608
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E6BF8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #4
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
cmp r8, r0
bne _021E7608
@@ -16084,121 +16087,121 @@ _021E6BF8:
bne _021E6C44
mov r0, #0xd
mov r1, #0
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E6C44:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
- bl FUN_021E5C44
+ bl MOD04_021E5C44
add sp, sp, #0x118
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E6C58:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #4
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
cmp r8, r0
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1cc]
str r1, [r4, #0x1d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x208]
cmp r0, #0
beq _021E6CAC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a7]
cmp r0, #0x10
blo _021E6CBC
_021E6CAC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E6D00
_021E6CBC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
str r1, [r0, #0x1bc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1c0]
str r1, [r4, #0x1c4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
beq _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x1a7]
add r1, r1, #1
strb r1, [r0, #0x1a7]
b _021E7608
_021E6D00:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x208]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a7]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E6D54
mov r0, #3
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r1, #1
str r1, [r0, #0xe8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0xec]
str r1, [r4, #0xf0]
b _021E7608
_021E6D54:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E7608
mov r1, #0
mov r2, r1
mov r0, #1
- bl FUN_021E5D30
+ bl MOD04_021E5D30
b _021E7608
_021E6D78:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x17]
cmp r0, #0
beq _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20]
cmp r8, r0
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
bne _021E6DD8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
bne _021E6DD8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf8]
cmp r8, r0
bne _021E6DD8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD45C
+ bl MOD04_021FD45C
_021E6DD8:
mov r0, r8
- bl FUN_021E59D4
+ bl MOD04_021E59D4
cmp r0, #0
bne _021E7608
add sp, sp, #0x118
@@ -16209,43 +16212,43 @@ _021E6DF4:
ldr r4, [r6]
mov r0, r0, lsl #0x10
mov r5, r0, lsr #0x10
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #1
bne _021E6E20
mov r0, #6
- bl FUN_021E26D0
+ bl MOD04_021E26D0
b _021E6E50
_021E6E20:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #6
beq _021E6E40
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xb
bne _021E7608
_021E6E40:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20]
cmp r8, r0
bne _021E7608
_021E6E50:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0xff
strb r1, [r0, #0x3cc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r0, #1
add r0, r6, r0, lsl #2
ldr r0, [r0, #0xf4]
cmp r8, r0
beq _021E6E9C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r0, #1
add r0, r6, r0, lsl #2
@@ -16258,31 +16261,31 @@ _021E6E9C:
orr r0, r1, r0
str r4, [sp, #0x10]
strh r0, [sp, #0xe]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x194]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD43C
+ bl MOD04_021FD43C
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r3, r0, #0x194
mov r1, r4
mov r0, #0
add r2, sp, #0xc
- bl FUN_021E2784
- bl FUN_021E26E4
+ bl MOD04_021E2784
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x18c]
str r1, [r0, #0x190]
b _021E7608
_021E6F04:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #1
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
cmp r8, r0
bne _021E7608
@@ -16290,16 +16293,16 @@ _021E6F04:
str r0, [sp, #8]
ldr r0, [r6, #4]
and r4, r0, #0xff
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E6F98
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a6]
cmp r0, #0
bne _021E6F98
ldr r0, [sp, #8]
- bl FUN_021E4074
+ bl MOD04_021E4074
str r0, [sp, #0x14]
add r0, sp, #0x14
str r0, [sp]
@@ -16309,52 +16312,52 @@ _021E6F04:
mov r3, sl
mov r0, #0x20
str r5, [sp, #4]
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #0x118
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E6F98:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
ldr r1, [sp, #8]
add r0, r0, #1
add r0, r5, r0, lsl #2
str r1, [r0, #0xf4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
add r0, r0, #1
add r0, r5, r0
strb r4, [r0, #0x2d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202308
- bl FUN_021E26E4
+ bl MOD04_02202308
+ bl MOD04_021E26E4
ldr r0, [r0, #0x46c]
cmp r0, #0
beq _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
ldr r0, [sp, #8]
- bl FUN_021E1F18
+ bl MOD04_021E1F18
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x470]
ldr r2, [r5, #0x46c]
mov r0, r4
blx r2
b _021E7608
_021E701C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #1
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
cmp r8, r0
bne _021E7608
@@ -16364,36 +16367,36 @@ _021E701C:
bne _021E7084
ldr r5, [r6, #4]
ldr r4, [r6, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r5, r0
strb r4, [r0, #0x2d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r2, [r0, #0x200]
add r1, r4, r5, lsl #2
mov r0, #3
str r2, [r1, #0xf4]
- bl FUN_021E51C0
+ bl MOD04_021E51C0
b _021E7608
_021E7084:
ldr r0, [r6, #8]
ldr r4, [r6, #4]
and r5, r0, #0xff
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
ldr r1, [sp, #8]
ldr r0, [r0, #0xf4]
cmp r1, r0
bne _021E7104
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
sub r0, r0, #1
cmp r4, r0
bne _021E7104
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, sp, #8
str r1, [sp]
mov r1, #1
@@ -16402,60 +16405,60 @@ _021E7084:
ldr r2, [r4, #0x24]
mov r1, r8
mov r0, #9
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E7608
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E7104:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [sp, #8]
add r0, r0, r4, lsl #2
str r1, [r0, #0xf4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r4, r0
strb r5, [r0, #0x2d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6, #0xc]
add r0, r0, r4, lsl #2
str r1, [r0, #0x24]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6, #0x10]
add r0, r0, r4, lsl #1
strh r1, [r0, #0xa4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6, #0xc]
str r1, [r0, #0x1b8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x100
ldr r2, [r6, #0x10]
mov r0, #5
strh r2, [r1, #0xb4]
- bl FUN_021E26D0
+ bl MOD04_021E26D0
ldr r0, [sp, #8]
- bl FUN_021E7E5C
- bl FUN_021E38E8
+ bl MOD04_021E7E5C
+ bl MOD04_021E38E8
cmp r0, #0
addne sp, sp, #0x118
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1c8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1bc]
b _021E7608
_021E719C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xd
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a4]
ldr r1, [r6]
add r0, r0, #1
@@ -16463,105 +16466,105 @@ _021E719C:
ldr r0, [r0, #0xf4]
cmp r1, r0
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x1a4]
add r1, r1, #1
strb r1, [r0, #0x1a4]
mov r0, #0
- bl FUN_021E51C0
+ bl MOD04_021E51C0
b _021E7608
_021E71F0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #1
beq _021E7210
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0x12
bne _021E7608
_021E7210:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E7234
ldr r1, [r6]
add r0, r6, #4
- bl FUN_021E5138
+ bl MOD04_021E5138
cmp r0, #0
beq _021E7250
_021E7234:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6, #4]
str r1, [r0, #0x208]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a7]
b _021E725C
_021E7250:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x208]
_021E725C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E7280
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD45C
+ bl MOD04_021FD45C
b _021E7608
_021E7280:
- bl FUN_021E4BF4
+ bl MOD04_021E4BF4
cmp r0, #0
beq _021E7608
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E7298:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
cmp r8, r0
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E72C8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E72E4
_021E72C8:
mov r0, r8
- bl FUN_021E5908
+ bl MOD04_021E5908
cmp r0, #0
bne _021E7608
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E72E4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r8, [r0, #0x20c]
- bl FUN_021E4B40
+ bl MOD04_021E4B40
mov r0, #0
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
b _021E7608
_021E730C:
ldr r2, [r6]
mov r0, r8
mov r1, sb
- bl FUN_021E43E0
+ bl MOD04_021E43E0
cmp r0, #0
bne _021E7608
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E7330:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
cmp r8, r0
addne sp, sp, #0x118
@@ -16574,10 +16577,10 @@ _021E7330:
_021E7358:
ldr r0, [r6, r7, lsl #2]
mov r1, r4
- bl FUN_021E3F28
+ bl MOD04_021E3F28
cmp r0, #0xff
beq _021E7370
- bl FUN_021DF9D4
+ bl MOD04_021DF9D4
_021E7370:
add r7, r7, #1
cmp r7, r5
@@ -16620,21 +16623,21 @@ _021E73E8:
mov r3, sl
mov r0, #0x12
str r4, [sp, #4]
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E7608
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E7424:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0x13
bne _021E7608
mov r0, r8
mov r1, #0
- bl FUN_021E3F28
+ bl MOD04_021E3F28
cmp r0, #0xff
beq _021E7608
ldr r1, _021E7614 ; =0x022106D4
@@ -16654,26 +16657,26 @@ _021E7424:
_021E7480:
mov r0, #0xc
mov r1, #0
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #0x118
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E7498:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E7608
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a6]
cmp r0, #0
bne _021E7608
mov r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E7608
_021E74CC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
ldr r0, [r0, #0xf4]
cmp r8, r0
@@ -16681,41 +16684,41 @@ _021E74CC:
ldr r0, [r6]
cmp r0, #0
bne _021E7554
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xb
beq _021E750C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xc
bne _021E7524
_021E750C:
- bl FUN_021E4E00
- bl FUN_021E61EC
+ bl MOD04_021E4E00
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #0x118
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E7524:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
cmp r0, #0
beq _021E754C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
- bl FUN_022006B4
- bl FUN_021E26E4
+ bl MOD04_022006B4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x19c]
_021E754C:
- bl FUN_021E4CB4
+ bl MOD04_021E4CB4
b _021E7608
_021E7554:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
mov r0, r8
mov r1, #0
- bl FUN_021E3F28
+ bl MOD04_021E3F28
ldr r2, [r4, #0x1dc]
mov r1, #1
orr r0, r2, r1, lsl r0
@@ -16723,19 +16726,19 @@ _021E7554:
b _021E7608
_021E757C:
add r4, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r4, r0
ble _021E74CC
b _021E7608
_021E7594:
mov r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E7608
_021E75A8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
ldr r0, [r0, #0xf4]
cmp r8, r0
@@ -16747,8 +16750,8 @@ _021E75A8:
mov r3, sl
mov r0, #0x41
str r4, [sp, #4]
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E7608
add sp, sp, #0x118
@@ -16756,7 +16759,7 @@ _021E75A8:
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021E75F4:
add r4, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r4, r0
ble _021E75A8
@@ -16768,8 +16771,8 @@ _021E7608:
_021E7614: .word 0x022106D4
_021E7618: .word 0x000082EA
- arm_func_start FUN_021E761C
-FUN_021E761C: ; 0x021E761C
+ arm_func_start MOD04_021E761C
+MOD04_021E761C: ; 0x021E761C
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov sb, r1
@@ -16816,8 +16819,8 @@ _021E767C:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_021E76C8
-FUN_021E76C8: ; 0x021E76C8
+ arm_func_start MOD04_021E76C8
+MOD04_021E76C8: ; 0x021E76C8
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x208
mov r7, r0
@@ -16854,7 +16857,7 @@ _021E7748:
add r2, sp, #8
mov r0, r7
mov r1, r5
- bl FUN_021F02B8
+ bl MOD04_021F02B8
add sp, sp, #0x208
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
@@ -16862,8 +16865,8 @@ _021E7760: .word 0x0220D410
_021E7764: .word 0x0220D400
_021E7768: .word 0x0220D408
- arm_func_start FUN_021E776C
-FUN_021E776C: ; 0x021E776C
+ arm_func_start MOD04_021E776C
+MOD04_021E776C: ; 0x021E776C
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x9c
mov r5, r0
@@ -16899,24 +16902,24 @@ _021E77AC:
str r1, [sp, #8]
strb r5, [sp, #0xc]
strb r0, [sp, #0xd]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrh r0, [r0, #0x1a]
strh r0, [sp, #0xe]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1c]
str r0, [sp, #0x10]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x200]
mov r6, #0
str r0, [sp, #0x14]
mov r4, r6
_021E781C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
mov r0, r8
mov r1, r4
mov r2, r4
- bl FUN_021FFEB0
+ bl MOD04_021FFEB0
mov r1, r0
ldrb r0, [sp, #0xd]
mov r2, r7
@@ -16924,7 +16927,7 @@ _021E781C:
add r0, r0, #0x14
str r0, [sp]
ldr r0, [r5, #0xe4]
- bl FUN_02203CC4
+ bl MOD04_02203CC4
cmp r0, #0
addeq sp, sp, #0x9c
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
@@ -16939,8 +16942,8 @@ _021E781C:
.align 2, 0
_021E7880: .word 0x0220D398
- arm_func_start FUN_021E7884
-FUN_021E7884: ; 0x021E7884
+ arm_func_start MOD04_021E7884
+MOD04_021E7884: ; 0x021E7884
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x224
mov fp, r0
@@ -16950,15 +16953,15 @@ FUN_021E7884: ; 0x021E7884
ldr sl, [sp, #0x248]
ldr sb, [sp, #0x24c]
mov r8, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E78E0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
beq _021E78D8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a6]
cmp r0, #0
beq _021E7900
@@ -16971,7 +16974,7 @@ _021E78E0:
mov r0, fp
mov r3, sl
str sb, [sp]
- bl FUN_021E776C
+ bl MOD04_021E776C
mov r4, r0
b _021E79A0
_021E7900:
@@ -17010,12 +17013,12 @@ _021E7978:
add r0, sp, #0x20
mov r1, #0
strb r1, [r0, r8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0]
ldr r2, [sp, #4]
add r3, sp, #0x20
mov r1, fp
- bl FUN_021E76C8
+ bl MOD04_021E76C8
mov r4, r0
_021E79A0:
cmp fp, #2
@@ -17027,21 +17030,21 @@ _021E79A0:
cmp r0, #1
bhi _021E7A30
_021E79C0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
strb fp, [r0, #0x3cc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x300
ldr r0, [sp, #0xc]
strh r0, [r1, #0xce]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [sp, #8]
str r1, [r0, #0x3d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [sp, #4]
str r1, [r0, #0x454]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str sb, [r0, #0x458]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
bl OS_GetTick
str r0, [r5, #0x45c]
@@ -17050,7 +17053,7 @@ _021E79C0:
beq _021E7A30
cmp sb, #0
beq _021E7A30
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x3d4
mov r0, sl
mov r2, sb, lsl #2
@@ -17063,45 +17066,45 @@ _021E7A30:
_021E7A3C: .word 0x0220D394
_021E7A40: .word 0x0220D414
- arm_func_start FUN_021E7A44
-FUN_021E7A44: ; 0x021E7A44
+ arm_func_start MOD04_021E7A44
+MOD04_021E7A44: ; 0x021E7A44
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
mov r7, r0
ldrb r0, [r7]
cmp r0, #0
bne _021E7A9C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
mov r1, #0
ldr r0, [r7, #4]
mov r2, r1
- bl FUN_021FFEB0
+ bl MOD04_021FFEB0
mov r1, r0
ldrh r2, [r7, #2]
ldr r0, [r4, #0xe4]
ldr r3, [r7, #8]
- bl FUN_02203C7C
- bl FUN_021E38E8
+ bl MOD04_02203C7C
+ bl MOD04_021E38E8
cmp r0, #0
addne sp, sp, #0xc
movne r0, #2
ldmneia sp!, {r4, r5, r6, r7, pc}
_021E7A9C:
- ldr r5, _021E7AFC ; =FUN_021E2784
- ldr r4, _021E7B00 ; =FUN_021E2B60
+ ldr r5, _021E7AFC ; =MOD04_021E2784
+ ldr r4, _021E7B00 ; =MOD04_021E2B60
mov r6, #0
_021E7AA8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD43C
+ bl MOD04_021FD43C
str r5, [sp]
str r7, [sp, #4]
ldrb r2, [r7]
ldr r1, [r7, #8]
mov r3, r4
- bl FUN_022006EC
+ bl MOD04_022006EC
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
@@ -17114,24 +17117,24 @@ _021E7AA8:
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
-_021E7AFC: .word FUN_021E2784
-_021E7B00: .word FUN_021E2B60
+_021E7AFC: .word MOD04_021E2784
+_021E7B00: .word MOD04_021E2B60
- arm_func_start FUN_021E7B04
-FUN_021E7B04: ; 0x021E7B04
+ arm_func_start MOD04_021E7B04
+MOD04_021E7B04: ; 0x021E7B04
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x14
mov r4, r0
mov r8, r1
mov r7, r2
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r4, #0
ldrb r6, [r0, #0x14]
mov r4, #0
bne _021E7D48
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x100
ldr r2, [r5, #0x200]
ldr r0, _021E7DEC ; =0x0000FFFF
@@ -17139,28 +17142,28 @@ FUN_021E7B04: ; 0x021E7B04
and r2, r2, r0
mov r0, r7
orr r8, r2, r1, lsl #16
- bl FUN_022038C4
+ bl MOD04_022038C4
cmp r0, #0
beq _021E7BC0
mov r0, r7
- bl FUN_02203908
+ bl MOD04_02203908
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203BCC
+ bl MOD04_02203BCC
cmp r5, r0
movne r5, #1
bne _021E7C48
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
mov r0, r7
- bl FUN_022038BC
+ bl MOD04_022038BC
add r1, r5, r6, lsl #2
str r0, [r1, #0x210]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
mov r0, r7
- bl FUN_02203898
+ bl MOD04_02203898
add r1, r5, r6, lsl #1
add r1, r1, #0x200
strh r0, [r1, #0x90]
@@ -17190,16 +17193,16 @@ _021E7C08:
mov r5, #1
b _021E7C48
_021E7C10:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
mov r0, r7
- bl FUN_02203908
+ bl MOD04_02203908
add r1, r5, r6, lsl #2
str r0, [r1, #0x210]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
mov r0, r7
- bl FUN_022038E4
+ bl MOD04_022038E4
add r1, r5, r6, lsl #1
add r1, r1, #0x200
strh r0, [r1, #0x90]
@@ -17207,30 +17210,30 @@ _021E7C10:
_021E7C48:
cmp r5, #0
beq _021E7C74
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
mov r0, #0x10000
- bl FUN_021DE8C8
+ bl MOD04_021DE8C8
add r1, r6, #0x100
strh r0, [r1, #0x7e]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r8, [r0, #0x19c]
b _021E7D00
_021E7C74:
bl FUN_0209A60C
str r0, [sp, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD454
+ bl MOD04_021FD454
str r0, [sp, #0xc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sb, r0
mov r0, r7
- bl FUN_02203908
+ bl MOD04_02203908
mov r8, r0
mov r0, r7
- bl FUN_022038E4
+ bl MOD04_022038E4
add r1, sb, r6, lsl #2
add r6, sp, #8
mov r3, r0
@@ -17240,75 +17243,75 @@ _021E7C74:
ldr r1, [r1, #0xf4]
mov r2, r8
mov r0, #6
- bl FUN_021E7884
+ bl MOD04_021E7884
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
cmp r6, #0
strb r1, [r0, #0x3cd]
addne sp, sp, #0x14
movne r0, #2
ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x19c]
_021E7D00:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x194]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x195]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
mov r0, r7
- bl FUN_022038E4
+ bl MOD04_022038E4
add r1, r6, #0x100
strh r0, [r1, #0x96]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
mov r0, r7
- bl FUN_02203908
+ bl MOD04_02203908
str r0, [r6, #0x198]
b _021E7D88
_021E7D48:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x194]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, r4
strb r1, [r0, #0x195]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
mov r1, r4
strh r1, [r0, #0x96]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, r4
str r1, [r0, #0x198]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r8, [r0, #0x19c]
mov r5, #1
_021E7D88:
cmp r5, #0
beq _021E7DA4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x194
- bl FUN_021E7A44
+ bl MOD04_021E7A44
mov r4, r0
b _021E7DE0
_021E7DA4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD43C
+ bl MOD04_021FD43C
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r3, r0, #0x194
mov r0, #0
mov r1, r5
mov r2, r0
- bl FUN_021E2784
- bl FUN_021E26E4
+ bl MOD04_021E2784
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x18c]
str r1, [r0, #0x190]
@@ -17320,8 +17323,8 @@ _021E7DE0:
_021E7DEC: .word 0x0000FFFF
_021E7DF0: .word 0x0000A8C0
- arm_func_start FUN_021E7DF4
-FUN_021E7DF4: ; 0x021E7DF4
+ arm_func_start MOD04_021E7DF4
+MOD04_021E7DF4: ; 0x021E7DF4
stmdb sp!, {lr}
sub sp, sp, #0x24
mov lr, #3
@@ -17350,8 +17353,8 @@ _021E7E50: .word 0x0220D3D8
_021E7E54: .word 0x0220D418
_021E7E58: .word 0x0220D3E4
- arm_func_start FUN_021E7E5C
-FUN_021E7E5C: ; 0x021E7E5C
+ arm_func_start MOD04_021E7E5C
+MOD04_021E7E5C: ; 0x021E7E5C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x1b0
mov r7, #8
@@ -17370,11 +17373,11 @@ FUN_021E7E5C: ; 0x021E7E5C
strb r1, [sp, #0x112]
mov r5, r0
mov r4, #7
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E7EC4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E7EF4
@@ -17393,7 +17396,7 @@ _021E7ED4:
cmp r3, #0x9a
blt _021E7ED4
_021E7EF4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #5
addls pc, pc, r0, lsl #2
@@ -17406,20 +17409,20 @@ _021E7F08: ; jump table
b _021E7F8C ; case 4
b _021E7F8C ; case 5
_021E7F20:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x208]
cmp r0, #0
bne _021E7F84
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r6, #0x200]
ldrb r2, [r5, #0x16]
ldrb r3, [r0, #0x15]
add r0, sp, #0xc
- bl FUN_021E7DF4
+ bl MOD04_021E7DF4
ldr r0, _021E8024 ; =0x022106E0
ldr r5, [r0]
cmp r5, #0
@@ -17432,7 +17435,7 @@ _021E7F20:
bl OS_SNPrintf
b _021E7FAC
_021E7F84:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r5, [r0, #0x208]
_021E7F8C:
ldr r2, _021E802C ; =0x0220D47C
@@ -17441,12 +17444,12 @@ _021E7F8C:
mov r1, #0x100
str r5, [sp]
bl OS_SNPrintf
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [r0, #0x204]
_021E7FAC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203C04
+ bl MOD04_02203C04
mov sl, #0
add sb, sp, #0xc
add r5, sp, #0x10c
@@ -17454,7 +17457,7 @@ _021E7FAC:
mov r8, #6
mov r7, #1
_021E7FD0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r4, [sp]
str sb, [sp, #4]
str r8, [sp, #8]
@@ -17462,7 +17465,7 @@ _021E7FD0:
mov r1, r7
mov r2, r6
mov r3, r5
- bl FUN_02203D1C
+ bl MOD04_02203D1C
cmp r0, #0
addeq sp, sp, #0x1b0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
@@ -17481,41 +17484,41 @@ _021E8028: .word 0x0220D470
_021E802C: .word 0x0220D47C
_021E8030: .word 0x0220D3AC
- arm_func_start FUN_021E8034
-FUN_021E8034: ; 0x021E8034
+ arm_func_start MOD04_021E8034
+MOD04_021E8034: ; 0x021E8034
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
cmp r0, #0
beq _021E8074
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203E80
- bl FUN_021E26E4
+ bl MOD04_02203E80
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0xe4]
_021E8074:
- bl FUN_02200D6C
+ bl MOD04_02200D6C
mov r0, #0
- bl FUN_021E26D0
+ bl MOD04_021E26D0
ldr r0, _021E80C0 ; =0x022106E0
ldr r1, [r0]
cmp r1, #0
beq _021E80A8
mov r0, #4
mov r2, #0
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r0, _021E80C0 ; =0x022106E0
mov r1, #0
str r1, [r0]
_021E80A8:
- bl FUN_021E4164
- bl FUN_021E26E4
+ bl MOD04_021E4164
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x18]
add sp, sp, #4
@@ -17523,8 +17526,8 @@ _021E80A8:
.align 2, 0
_021E80C0: .word 0x022106E0
- arm_func_start FUN_021E80C4
-FUN_021E80C4: ; 0x021E80C4
+ arm_func_start MOD04_021E80C4
+MOD04_021E80C4: ; 0x021E80C4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
@@ -17532,36 +17535,36 @@ FUN_021E80C4: ; 0x021E80C4
mov r6, r1
mov r5, r2
mov r4, r3
- bl FUN_021E8174
- bl FUN_021E26E4
+ bl MOD04_021E8174
+ bl MOD04_021E26E4
strb r7, [r0, #0x15]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
strb r6, [r0, #0x16]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [r0, #0x464]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r4, [r0, #0x468]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17d]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x2d0]
mov r0, #0x32
ldr r1, _021E8160 ; =0x0220D3AC
- bl FUN_0220277C
+ bl MOD04_0220277C
mov r0, #0x33
ldr r1, _021E8164 ; =0x0220D3CC
- bl FUN_0220277C
+ bl MOD04_0220277C
mov r0, #0x34
ldr r1, _021E8168 ; =0x0220D3D8
- bl FUN_0220277C
+ bl MOD04_0220277C
mov r0, #0x35
ldr r1, _021E816C ; =0x0220D3E4
- bl FUN_0220277C
+ bl MOD04_0220277C
mov r0, #0x36
ldr r1, _021E8170 ; =0x0220D3A0
- bl FUN_0220277C
+ bl MOD04_0220277C
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
@@ -17571,287 +17574,287 @@ _021E8168: .word 0x0220D3D8
_021E816C: .word 0x0220D3E4
_021E8170: .word 0x0220D3A0
- arm_func_start FUN_021E8174
-FUN_021E8174: ; 0x021E8174
+ arm_func_start MOD04_021E8174
+MOD04_021E8174: ; 0x021E8174
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0xc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
mov r0, #0x10000
- bl FUN_021DE8C8
+ bl MOD04_021DE8C8
add r1, r5, #0x100
strh r0, [r1, #0x7e]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x180]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x184]
str r1, [r0, #0x188]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x18c]
str r1, [r0, #0x190]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a9]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1aa]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1ab]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1ac]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a7]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
add r0, r0, #0x100
strh r1, [r0, #0xb2]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
add r0, r0, #0x100
strh r1, [r0, #0xb4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1b8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1e0]
str r1, [r0, #0x1e4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1f0]
str r1, [r0, #0x1f4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x3cc
mov r0, #0
mov r2, #0x98
bl MIi_CpuClear32
cmp r4, #2
bne _021E82F0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
strb r0, [r4, #0x14]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E82CC
mov r0, #1
- bl FUN_021E26D0
+ bl MOD04_021E26D0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021E82CC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
addne sp, sp, #4
ldmneia sp!, {r4, r5, pc}
mov r0, #0xa
- bl FUN_021E26D0
+ bl MOD04_021E26D0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021E82F0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0xd]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0xe]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x14]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x17]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0xe8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a5]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
add r0, r0, #0x100
strh r1, [r0, #0xb0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1bc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1c0]
str r1, [r0, #0x1c4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1c8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1cc]
str r1, [r0, #0x1d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1d4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x204]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x208]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x2f0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x24
mov r0, #0
mov r2, #0x80
bl MIi_CpuClear32
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0xa4
mov r0, #0
mov r2, #0x40
bl MIi_CpuClear16
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0xf4
mov r0, #0
mov r2, #0x80
bl MIi_CpuClear32
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x194
mov r0, #0
mov r2, #0xc
bl MIi_CpuClear32
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x210
mov r0, #0
mov r2, #0x80
bl MIi_CpuClear32
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x290
mov r0, #0
mov r2, #0x40
bl MIi_CpuClear16
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x2d0
mov r1, #0
mov r2, #0x20
bl MI_CpuFill8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, #0x348
mov r0, #0
mov r2, #0x84
bl MIi_CpuClear32
cmp r4, #1
bne _021E84A8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E8484
mov r0, #3
- bl FUN_021E26D0
+ bl MOD04_021E26D0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021E8484:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
addne sp, sp, #4
ldmneia sp!, {r4, r5, pc}
mov r0, #4
- bl FUN_021E26D0
+ bl MOD04_021E26D0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021E84A8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x15]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x16]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x18]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1a6]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1ae]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1ad]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1f8]
str r1, [r0, #0x1fc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x46c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x470]
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021E852C
-FUN_021E852C: ; 0x021E852C
+ arm_func_start MOD04_021E852C
+MOD04_021E852C: ; 0x021E852C
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
moveq r0, #1
movne r0, #0
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021E854C
-FUN_021E854C: ; 0x021E854C
+ arm_func_start MOD04_021E854C
+MOD04_021E854C: ; 0x021E854C
stmdb sp!, {lr}
sub sp, sp, #4
mov r0, #0
- bl FUN_021E26F4
+ bl MOD04_021E26F4
ldr r0, _021E85C8 ; =0x022106E0
ldr r1, [r0]
cmp r1, #0
beq _021E8584
mov r0, #4
mov r2, #0
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r0, _021E85C8 ; =0x022106E0
mov r1, #0
str r1, [r0]
_021E8584:
- bl FUN_021E4164
+ bl MOD04_021E4164
ldr r0, _021E85CC ; =0x022106D4
ldr r1, [r0]
cmp r1, #0
beq _021E85B0
mov r0, #4
mov r2, #0
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r0, _021E85CC ; =0x022106D4
mov r1, #0
str r1, [r0]
@@ -17867,17 +17870,17 @@ _021E85C8: .word 0x022106E0
_021E85CC: .word 0x022106D4
_021E85D0: .word 0x022106DC
- arm_func_start FUN_021E85D4
-FUN_021E85D4: ; 0x021E85D4
+ arm_func_start MOD04_021E85D4
+MOD04_021E85D4: ; 0x021E85D4
stmdb sp!, {lr}
sub sp, sp, #0x2c
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
addne sp, sp, #0x2c
movne r0, #0
ldmneia sp!, {pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x16]
ldr r2, _021E8694 ; =0x0220D394
add r0, sp, #0
@@ -17888,8 +17891,8 @@ FUN_021E85D4: ; 0x021E85D4
add r1, sp, #0
add r2, sp, #0xc
mov r3, #0x2f
- bl FUN_021DEB54
- bl FUN_021E26E4
+ bl MOD04_021DEB54
+ bl MOD04_021E26E4
ldrb r2, [r0, #0xd]
add r0, sp, #0
mov r1, #0xc
@@ -17900,7 +17903,7 @@ FUN_021E85D4: ; 0x021E85D4
add r1, sp, #0
add r2, sp, #0xc
mov r3, #0x2f
- bl FUN_021DEB0C
+ bl MOD04_021DEB0C
ldr r2, _021E8694 ; =0x0220D394
add r0, sp, #0
mov r1, #0xc
@@ -17910,11 +17913,11 @@ FUN_021E85D4: ; 0x021E85D4
add r1, sp, #0
add r2, sp, #0xc
mov r3, #0x2f
- bl FUN_021DEB0C
+ bl MOD04_021DEB0C
mov r0, #6
add r1, sp, #0xc
mov r2, #0
- bl FUN_021E1E30
+ bl MOD04_021E1E30
add sp, sp, #0x2c
ldmfd sp!, {pc}
.align 2, 0
@@ -17923,11 +17926,11 @@ _021E8698: .word 0x0220D484
_021E869C: .word 0x0220D488
_021E86A0: .word 0x0220D3F4
- arm_func_start FUN_021E86A4
-FUN_021E86A4: ; 0x021E86A4
+ arm_func_start MOD04_021E86A4
+MOD04_021E86A4: ; 0x021E86A4
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
@@ -17936,65 +17939,65 @@ FUN_021E86A4: ; 0x021E86A4
mov r2, #0x20
bl MI_CpuFill8
mov r6, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xe]
cmp r0, #0
blt _021E8730
ldr r5, _021E8748 ; =0x022106E4
mov r4, #1
_021E86E8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r8, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r6
ldrb r0, [r0, #0x2d0]
ldr r1, [r8, #0x2f0]
mov r0, r4,lsl r0
ands r0, r1, r0
beq _021E8730
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r6
ldrb r0, [r0, #0x2d0]
add r6, r6, #1
strb r0, [r5], #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xe]
cmp r6, r0
ble _021E86E8
_021E8730:
ldr r0, _021E8748 ; =0x022106E4
str r0, [r7]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xe]
add r0, r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_021E8748: .word 0x022106E4
- arm_func_start FUN_021E874C
-FUN_021E874C: ; 0x021E874C
+ arm_func_start MOD04_021E874C
+MOD04_021E874C: ; 0x021E874C
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x2d0
str r0, [r4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r0, #1
ldmia sp!, {r4, pc}
- arm_func_start FUN_021E8780
-FUN_021E8780: ; 0x021E8780
+ arm_func_start MOD04_021E8780
+MOD04_021E8780: ; 0x021E8780
stmdb sp!, {r4, r5, r6, lr}
mvn r6, #0
mov r5, #0
mov r4, #1
_021E8790:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, r4,lsl r5
ldr r0, [r0, #0x2f0]
add r5, r5, #1
@@ -18005,60 +18008,60 @@ _021E8790:
mvn r0, #0
cmp r6, r0
bne _021E87CC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0xe]
ldmia sp!, {r4, r5, r6, pc}
_021E87CC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
strb r6, [r0, #0xe]
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E87D8
-FUN_021E87D8: ; 0x021E87D8
+ arm_func_start MOD04_021E87D8
+MOD04_021E87D8: ; 0x021E87D8
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xe]
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021E8804
-FUN_021E8804: ; 0x021E8804
+ arm_func_start MOD04_021E8804
+MOD04_021E8804: ; 0x021E8804
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021E8830
-FUN_021E8830: ; 0x021E8830
+ arm_func_start MOD04_021E8830
+MOD04_021E8830: ; 0x021E8830
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov sb, r0
mov r8, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, sb, lsl #2
ldr fp, [r0, #0xf4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, sb
ldrb r0, [r0, #0x2d0]
mov r1, #1
@@ -18066,7 +18069,7 @@ FUN_021E8830: ; 0x021E8830
mvn r0, r1, lsl r0
and r0, r2, r0
str r0, [r4, #0x2f0]
- bl FUN_021E8780
+ bl MOD04_021E8780
sub r0, r8, #1
cmp sb, r0
bge _021E8970
@@ -18078,46 +18081,46 @@ FUN_021E8830: ; 0x021E8830
_021E88AC:
add r4, sb, r7
add r5, r4, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sl, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r5, lsl #2
ldr r1, [r0, #0x24]
add r0, sl, r4, lsl #2
str r1, [r0, #0x24]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sl, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r5, lsl #1
ldrh r1, [r0, #0xa4]
add r0, sl, r4, lsl #1
strh r1, [r0, #0xa4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sl, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, sl, r4, lsl #2
add r0, r0, r5, lsl #2
ldr r0, [r0, #0xf4]
str r0, [r1, #0xf4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sl, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, sl, r4, lsl #2
add r0, r0, r5, lsl #2
ldr r0, [r0, #0x210]
str r0, [r1, #0x210]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sl, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, sl, r4, lsl #1
add r1, r1, #0x200
add r0, r0, r5, lsl #1
add r0, r0, #0x200
ldrh r0, [r0, #0x90]
strh r0, [r1, #0x90]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sl, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r0, r5
add r0, sl, r4
ldrb r1, [r1, #0x2d0]
@@ -18129,28 +18132,28 @@ _021E8970:
cmp r8, #0
ble _021E89E0
sub r4, r8, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
mov r1, #0
str r1, [r0, #0x24]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #1
mov r1, #0
strh r1, [r0, #0xa4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
mov r1, #0
str r1, [r0, #0xf4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
mov r1, #0
str r1, [r0, #0x210]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #1
add r0, r0, #0x200
mov r1, #0
strh r1, [r0, #0x90]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4
mov r1, #0
strb r1, [r0, #0x2d0]
@@ -18159,12 +18162,12 @@ _021E89E0:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_021E89EC
-FUN_021E89EC: ; 0x021E89EC
+ arm_func_start MOD04_021E89EC
+MOD04_021E89EC: ; 0x021E89EC
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
@@ -18172,14 +18175,14 @@ FUN_021E89EC: ; 0x021E89EC
mov r4, #0
ble _021E8A48
_021E8A14:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r4, lsl #2
ldr r0, [r0, #0xf4]
cmp r6, r0
bne _021E8A3C
mov r0, r4
mov r1, r5
- bl FUN_021E8830
+ bl MOD04_021E8830
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_021E8A3C:
@@ -18190,30 +18193,30 @@ _021E8A48:
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E8A50
-FUN_021E8A50: ; 0x021E8A50
+ arm_func_start MOD04_021E8A50
+MOD04_021E8A50: ; 0x021E8A50
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a8]
cmp r0, #2
ldmeqia sp!, {r4, pc}
mov r0, r4
- bl FUN_021E59D4
+ bl MOD04_021E59D4
ldmia sp!, {r4, pc}
- arm_func_start FUN_021E8A74
-FUN_021E8A74: ; 0x021E8A74
+ arm_func_start MOD04_021E8A74
+MOD04_021E8A74: ; 0x021E8A74
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r4, r1
- bl FUN_021DF88C
+ bl MOD04_021DF88C
cmp r0, #5
addne sp, sp, #4
movne r0, #0
ldmneia sp!, {r4, r5, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
addeq sp, sp, #4
@@ -18224,23 +18227,23 @@ FUN_021E8A74: ; 0x021E8A74
ldr r1, _021E8C00 ; =0xFFFEC780
mov r0, r5
add r1, r4, r1
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #4
mov r0, #1
ldmia sp!, {r4, r5, pc}
_021E8AD4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x2d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a9]
cmp r0, #1
beq _021E8B10
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a8]
cmp r0, #1
beq _021E8B10
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a8]
cmp r0, #2
bne _021E8B1C
@@ -18249,57 +18252,57 @@ _021E8B10:
mov r0, #1
ldmia sp!, {r4, r5, pc}
_021E8B1C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
cmp r0, #0
beq _021E8B44
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x19c]
- bl FUN_022006B4
- bl FUN_021E26E4
+ bl MOD04_022006B4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x19c]
_021E8B44:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
beq _021E8B84
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a8]
cmp r0, #0
bne _021E8BF4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #3
strb r1, [r0, #0x1a8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD45C
+ bl MOD04_021FD45C
b _021E8BF4
_021E8B84:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E8BA4
ldr r1, _021E8C04 ; =0xFFFEC5D2
mov r0, #6
- bl FUN_021E8E08
+ bl MOD04_021E8E08
b _021E8BF4
_021E8BA4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x208]
cmp r0, #0
beq _021E8BBC
- bl FUN_021E4BF4
+ bl MOD04_021E4BF4
b _021E8BF4
_021E8BBC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #1
bne _021E8BEC
mov r0, #0x12
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
str r0, [r4, #0x1f0]
@@ -18307,7 +18310,7 @@ _021E8BBC:
b _021E8BF4
_021E8BEC:
mov r0, #1
- bl FUN_021E4CF8
+ bl MOD04_021E4CF8
_021E8BF4:
mov r0, #1
add sp, sp, #4
@@ -18316,8 +18319,8 @@ _021E8BF4:
_021E8C00: .word 0xFFFEC780
_021E8C04: .word 0xFFFEC5D2
- arm_func_start FUN_021E8C08
-FUN_021E8C08: ; 0x021E8C08
+ arm_func_start MOD04_021E8C08
+MOD04_021E8C08: ; 0x021E8C08
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
mov r4, r2
@@ -18329,59 +18332,59 @@ FUN_021E8C08: ; 0x021E8C08
beq _021E8DA4
ldmia sp!, {r4, r5, r6, pc}
_021E8C30:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #1
bne _021E8CCC
ldrb r0, [r4]
cmp r0, #1
bne _021E8C58
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x20c]
_021E8C58:
ldrb r6, [r4, #1]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r4, #2]
add r0, r0, r6
strb r1, [r0, #0x2d0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x200]
add r0, r4, r6, lsl #2
str r1, [r0, #0xf4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E8CA4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #1
bne _021E8CB8
_021E8CA4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
strb r0, [r4, #0x16]
_021E8CB8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1ad]
mov r0, #9
- bl FUN_021E26D0
+ bl MOD04_021E26D0
_021E8CCC:
mov r0, r5
mov r1, #3
- bl FUN_021E4910
+ bl MOD04_021E4910
ldmia sp!, {r4, r5, r6, pc}
_021E8CDC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0x10
bne _021E8D94
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r2, [r0, #0x1d4]
mov r1, #1
orr r1, r2, r1, lsl r5
@@ -18389,116 +18392,116 @@ _021E8CDC:
ldrb r1, [r4]
ldrb r0, [r4, #1]
orr r4, r1, r0, lsl #8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
ldrh r0, [r0, #0xb0]
cmp r4, r0
ble _021E8D2C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
strh r4, [r0, #0xb0]
_021E8D2C:
mov r0, #0
- bl FUN_021E3EC4
+ bl MOD04_021E3EC4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1d4]
cmp r4, r0
ldmneia sp!, {r4, r5, r6, pc}
mov r5, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #1
blt _021E8D88
mov r4, #4
_021E8D60:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, r5
ldrb r0, [r0, #0x2d0]
mov r1, r4
- bl FUN_021E4910
+ bl MOD04_021E4910
add r5, r5, #1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r5, r0
ble _021E8D60
_021E8D88:
mov r0, #0x11
- bl FUN_021E26D0
+ bl MOD04_021E26D0
ldmia sp!, {r4, r5, r6, pc}
_021E8D94:
mov r0, r5
mov r1, #4
- bl FUN_021E4910
+ bl MOD04_021E4910
ldmia sp!, {r4, r5, r6, pc}
_021E8DA4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #9
ldmneia sp!, {r4, r5, r6, pc}
mov r0, #4
- bl FUN_021E51C0
+ bl MOD04_021E51C0
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021E8DC0
-FUN_021E8DC0: ; 0x021E8DC0
+ arm_func_start MOD04_021E8DC0
+MOD04_021E8DC0: ; 0x021E8DC0
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x14]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x16]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202308
+ bl MOD04_02202308
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021E8E08
-FUN_021E8E08: ; 0x021E8E08
+ arm_func_start MOD04_021E8E08
+MOD04_021E8E08: ; 0x021E8E08
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
addeq sp, sp, #8
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
cmp r4, #0
addeq sp, sp, #8
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
- bl FUN_021E4B40
+ bl MOD04_021E4B40
mov r0, r4
mov r1, r5
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
ldr r1, _021E8EC8 ; =0x0220D3F0
mov r0, #1
mov r2, #0
- bl FUN_021E1E30
- bl FUN_021E26E4
+ bl MOD04_021E1E30
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
moveq r7, #1
movne r7, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
cmp r0, #0
moveq r8, #1
movne r8, #0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x20c]
- bl FUN_021E1F18
+ bl MOD04_021E1F18
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [sp]
ldr r1, [r0, #0x468]
mov r0, r4
@@ -18508,27 +18511,27 @@ FUN_021E8E08: ; 0x021E8E08
mov r3, r7
mov r1, #0
blx r4
- bl FUN_021E8034
+ bl MOD04_021E8034
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_021E8EC8: .word 0x0220D3F0
- arm_func_start FUN_021E8ECC
-FUN_021E8ECC: ; 0x021E8ECC
+ arm_func_start MOD04_021E8ECC
+MOD04_021E8ECC: ; 0x021E8ECC
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0xff
strb r1, [r0, #0x3cc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x3cd]
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021E8EF4
-FUN_021E8EF4: ; 0x021E8EF4
+ arm_func_start MOD04_021E8EF4
+MOD04_021E8EF4: ; 0x021E8EF4
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x21c
mov fp, r2
@@ -18544,7 +18547,7 @@ _021E8F20:
mov r0, sb
mov r1, r8
mov r2, sl
- bl FUN_021E761C
+ bl MOD04_021E761C
cmp r0, r4
beq _021E8F58
mov r0, sb
@@ -18563,25 +18566,25 @@ _021E8F58:
mov r2, #0
ldr r1, [sp, #8]
mov r3, r2
- bl FUN_021E6730
+ bl MOD04_021E6730
add sp, sp, #0x21c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_021E8F80
-FUN_021E8F80: ; 0x021E8F80
+ arm_func_start MOD04_021E8F80
+MOD04_021E8F80: ; 0x021E8F80
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x1c
mov r6, r0
mov r4, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
addeq sp, sp, #0x1c
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #7
beq _021E8FC4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xc
addne sp, sp, #0x1c
@@ -18594,42 +18597,42 @@ _021E8FC4:
ldmeqia sp!, {r4, r5, r6, r7, pc}
cmp r4, #6
bne _021E9114
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0xc]
add r1, r1, #1
strb r1, [r0, #0xc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xc]
cmp r0, #5
bls _021E9030
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0xc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0xf4]
- bl FUN_021E59D4
+ bl MOD04_021E59D4
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9030:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r3, [r0, #0x200]
ldr r2, _021E91F8 ; =0x0220D394
add r0, sp, #0x10
mov r1, #0xc
bl OS_SNPrintf
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r2, [r6, #0x14]
ldrb r1, [r0, #0x14]
add r0, r7, r2, lsl #2
@@ -18638,9 +18641,9 @@ _021E9030:
ldrh r1, [r1, #0x90]
ldr r0, [r0, #0x210]
mov r2, #0
- bl FUN_021FFEB0
+ bl MOD04_021FFEB0
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mvn r1, #0
str r1, [sp]
ldr r3, _021E91FC ; =0x00001388
@@ -18653,57 +18656,57 @@ _021E9030:
ldr r0, [r4, #4]
add r3, sp, #0x10
ldr r0, [r0]
- bl FUN_021FD52C
+ bl MOD04_021FD52C
cmp r0, #1
bne _021E90E0
- bl FUN_021E36B0
+ bl MOD04_021E36B0
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, pc}
_021E90E0:
cmp r0, #0
addeq sp, sp, #0x1c
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x14]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0xf4]
- bl FUN_021E59D4
+ bl MOD04_021E59D4
add sp, sp, #0x1c
cmp r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9114:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r0, #1
add r0, r4, r0, lsl #2
ldr r0, [r0, #0xf4]
- bl FUN_021E59D4
+ bl MOD04_021E59D4
add sp, sp, #0x1c
cmp r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9140:
- bl FUN_021DF704
+ bl MOD04_021DF704
mov r5, r0
mvn r1, #0
cmp r5, r1
bne _021E9168
ldr r1, _021E9200 ; =0xFFFEABC4
mov r0, #6
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9168:
- bl FUN_021DF6BC
+ bl MOD04_021DF6BC
mov r4, r0
mov r0, r5
- bl FUN_021DF638
+ bl MOD04_021DF638
str r6, [r4]
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r2, [r0, #0xd]
mov r1, #0
add r2, r2, #1
@@ -18711,27 +18714,27 @@ _021E9168:
strb r5, [r4]
strh r1, [r4, #2]
str r1, [r4, #4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r2, [r0, #0xd]
mov r0, r6
mov r1, r4
add r2, r5, r2
ldrb r2, [r2, #0x2d0]
strb r2, [r4, #1]
- bl FUN_021FD3F8
- bl FUN_021E26E4
+ bl MOD04_021FD3F8
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xc
bne _021E91E8
mov r0, #0
- bl FUN_021E51C0
+ bl MOD04_021E51C0
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, pc}
_021E91E8:
mov r0, #1
- bl FUN_021E51C0
+ bl MOD04_021E51C0
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
@@ -18739,21 +18742,21 @@ _021E91F8: .word 0x0220D394
_021E91FC: .word 0x00001388
_021E9200: .word 0xFFFEABC4
- arm_func_start FUN_021E9204
-FUN_021E9204: ; 0x021E9204
+ arm_func_start MOD04_021E9204
+MOD04_021E9204: ; 0x021E9204
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov r8, r1
mov r7, r2
mov r6, r3
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
beq _021E9244
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #7
bne _021E9244
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a9]
cmp r0, #0
beq _021E925C
@@ -18761,35 +18764,35 @@ _021E9244:
ldr r1, _021E944C ; =0x0220D48C
mov r0, r8
mvn r2, #0
- bl FUN_021FD6B0
+ bl MOD04_021FD6B0
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_021E925C:
- bl FUN_021DF704
+ bl MOD04_021DF704
mov r5, r0
mvn r2, #0
cmp r5, r2
bne _021E9290
ldr r1, _021E9450 ; =0x0220D498
mov r0, r8
- bl FUN_021FD6B0
+ bl MOD04_021FD6B0
ldr r1, _021E9454 ; =0xFFFEABC4
mov r0, #6
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_021E9290:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x210]
cmp r7, r0
bne _021E92D4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r4, r0, lsl #1
add r0, r0, #0x200
@@ -18805,23 +18808,23 @@ _021E92D4:
mov r2, #0xa
bl strtoul
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sb, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, sb, r0, lsl #2
ldr r0, [r0, #0xf4]
cmp r4, r0
bne _021E934C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r4, r0, lsl #2
str r7, [r0, #0x210]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r4, r0, lsl #1
add r0, r0, #0x200
@@ -18831,28 +18834,28 @@ _021E934C:
ldr r1, _021E9458 ; =0x0220D4A4
mov r0, r8
mvn r2, #0
- bl FUN_021FD6B0
+ bl MOD04_021FD6B0
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_021E9364:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x18c]
str r1, [r0, #0x190]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #8]
mov r0, r8
- bl FUN_021FD6BC
+ bl MOD04_021FD6BC
cmp r0, #0
bne _021E93A0
ldr r1, _021E945C ; =0xFFFEC5E6
mov r0, #6
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_021E93A0:
- bl FUN_021E8ECC
- bl FUN_021E26E4
+ bl MOD04_021E8ECC
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
cmp r0, #0
bne _021E93D4
@@ -18861,25 +18864,25 @@ _021E93A0:
mov r4, r1, asr #1
cmp r4, r0
movge r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x100
strh r4, [r0, #0xb0]
_021E93D4:
mov r0, r5
- bl FUN_021DF6BC
+ bl MOD04_021DF6BC
mov r4, r0
mov r0, r5
- bl FUN_021DF638
+ bl MOD04_021DF638
str r8, [r4]
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0xd]
add r1, r1, #1
strb r1, [r0, #0xd]
strb r5, [r4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0xd]
mov r0, r8
mov r2, #0
@@ -18890,9 +18893,9 @@ _021E93D4:
strb r3, [r4, #1]
strh r2, [r4, #2]
str r2, [r4, #4]
- bl FUN_021FD3F8
+ bl MOD04_021FD3F8
mov r0, #2
- bl FUN_021E51C0
+ bl MOD04_021E51C0
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
@@ -18903,8 +18906,8 @@ _021E9458: .word 0x0220D4A4
_021E945C: .word 0xFFFEC5E6
_021E9460: .word 0x0000FFFF
- arm_func_start FUN_021E9464
-FUN_021E9464: ; 0x021E9464
+ arm_func_start MOD04_021E9464
+MOD04_021E9464: ; 0x021E9464
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
ldr r0, [sp, #0x18]
@@ -18943,16 +18946,16 @@ _021E94E4:
cmp r5, #0x5c
bne _021E9518
_021E94EC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
cmp r0, #0
beq _021E9558
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
ldr r2, [sp, #0x18]
add r3, sp, #0
mov r1, r4
- bl FUN_022011A8
+ bl MOD04_022011A8
b _021E9558
_021E9518:
ldr r1, _021E9564 ; =0x0220F018
@@ -18964,7 +18967,7 @@ _021E9518:
ldr r1, [sp, #0x18]
add r2, sp, #0
mov r0, r4
- bl FUN_021FFF78
+ bl MOD04_021FFF78
b _021E9558
_021E9544:
cmp r5, #0xfe
@@ -18979,47 +18982,47 @@ _021E9558:
.align 2, 0
_021E9564: .word 0x0220F018
- arm_func_start FUN_021E9568
-FUN_021E9568: ; 0x021E9568
+ arm_func_start MOD04_021E9568
+MOD04_021E9568: ; 0x021E9568
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
cmp r4, #0
bne _021E95E4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
cmp r0, #0
beq _021E95B8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202534
+ bl MOD04_02202534
_021E95B8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD6D4
+ bl MOD04_021FD6D4
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E95E4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xd
addls pc, pc, r0, lsl #2
@@ -19040,16 +19043,16 @@ _021E960C: ; jump table
b _021E9D04 ; case 12
b _021E9AEC ; case 13
_021E9644:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1c8]
cmp r0, #0
beq _021E9730
bl OS_GetTick
mov r6, r0
mov r7, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
ldr r1, [r5, #0x1cc]
ldr r0, [r5, #0x1d0]
@@ -19065,55 +19068,55 @@ _021E9644:
ldr r1, [r4, #0x1c8]
cmpeq r0, r1
bls _021E9730
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1c8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #3
bne _021E971C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x1aa]
add r1, r1, #1
strb r1, [r0, #0x1aa]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1aa]
cmp r0, #5
bls _021E96F8
ldr r1, _021E9EFC ; =0xFFFEC5D2
mov r0, #6
- bl FUN_021E8E08
+ bl MOD04_021E8E08
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E96F8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
mov r1, #0
- bl FUN_021E6038
- bl FUN_021E61EC
+ bl MOD04_021E6038
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E9730
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E971C:
mov r0, #0
- bl FUN_021E5C44
+ bl MOD04_021E5C44
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
_021E9730:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1bc]
cmp r0, #0
beq _021E9D04
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0xd]
ldr r0, _021E9F00 ; =0x00000BB8
mla r5, r1, r0, r0
bl OS_GetTick
mov r4, r0
mov r6, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x1c0]
ldr r0, [r0, #0x1c4]
subs r2, r4, r1
@@ -19127,31 +19130,31 @@ _021E9730:
cmp r1, #0
cmpeq r0, r5
blo _021E9D04
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
mov r1, #0
- bl FUN_021E6038
- bl FUN_021E61EC
+ bl MOD04_021E6038
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E9D04
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E97B8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe8]
cmp r0, #0
ble _021E9D04
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #3
bne _021E97EC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0xd]
ldr r0, _021E9F00 ; =0x00000BB8
mla r5, r1, r0, r0
b _021E9800
_021E97EC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe8]
cmp r0, #1
moveq r5, #0x3e8
@@ -19160,7 +19163,7 @@ _021E9800:
bl OS_GetTick
mov r4, r0
mov r6, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0xec]
ldr r0, [r0, #0xf0]
subs r3, r4, r1
@@ -19174,19 +19177,19 @@ _021E9800:
cmp r1, #0
cmpeq r0, r5
bls _021E9D04
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x204]
- bl FUN_021E7E5C
- bl FUN_021E38E8
+ bl MOD04_021E7E5C
+ bl MOD04_021E38E8
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0xe8]
b _021E9D04
_021E9870:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r2, [r0, #0x18c]
ldr r1, [r0, #0x190]
mov r0, #0
@@ -19196,7 +19199,7 @@ _021E9870:
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x18c]
ldr r0, [r0, #0x190]
subs r3, r4, r1
@@ -19211,26 +19214,26 @@ _021E9870:
cmp r1, #0
cmpeq r0, r2
bls _021E9D04
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x18c]
str r1, [r0, #0x190]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
- bl FUN_021E5908
+ bl MOD04_021E5908
cmp r0, #0
bne _021E9D04
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9900:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x3cc]
cmp r0, #6
bne _021E9D04
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x45c]
ldr r0, [r0, #0x460]
subs r3, r4, r1
@@ -19245,32 +19248,32 @@ _021E9900:
cmp r1, #0
cmpeq r0, r2
bls _021E9D04
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x3cd]
add r1, r1, #1
strb r1, [r0, #0x3cd]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x3cd]
cmp r0, #5
bls _021E9998
- bl FUN_021E8ECC
- bl FUN_021E26E4
+ bl MOD04_021E8ECC
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
- bl FUN_021E5908
+ bl MOD04_021E5908
cmp r0, #0
bne _021E9D04
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9998:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r4, #0x3d4
str r1, [sp]
add r3, r5, #0x300
@@ -19280,25 +19283,25 @@ _021E9998:
ldr r1, [r7, #0x454]
ldr r2, [r6, #0x3d0]
ldrh r3, [r3, #0xce]
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E9D04
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E99F8:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x3cc]
cmp r0, #2
bne _021E9D04
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
bne _021E9A60
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x45c]
ldr r0, [r0, #0x460]
subs r3, r4, r1
@@ -19314,14 +19317,14 @@ _021E99F8:
cmpeq r0, r2
bhi _021E9AB8
_021E9A60:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E9D04
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x45c]
ldr r0, [r0, #0x460]
subs r3, r4, r1
@@ -19337,28 +19340,28 @@ _021E9A60:
cmpeq r0, r2
bls _021E9D04
_021E9AB8:
- bl FUN_021E8ECC
- bl FUN_021E26E4
+ bl MOD04_021E8ECC
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r0, #1
add r0, r4, r0, lsl #2
ldr r0, [r0, #0xf4]
- bl FUN_021E59D4
+ bl MOD04_021E59D4
cmp r0, #0
bne _021E9D04
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9AEC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x3cc]
cmp r0, #8
bne _021E9D04
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x45c]
ldr r0, [r0, #0x460]
subs r3, r4, r1
@@ -19373,43 +19376,43 @@ _021E9AEC:
cmp r1, #0
cmpeq r0, r2
bls _021E9D04
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x3cd]
add r1, r1, #1
strb r1, [r0, #0x3cd]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x3cd]
cmp r0, #0
beq _021E9BAC
- bl FUN_021E8ECC
- bl FUN_021E26E4
+ bl MOD04_021E8ECC
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #2
bne _021E9BA4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
add r0, r4, r0, lsl #2
ldr r0, [r0, #0xf4]
- bl FUN_021E59D4
+ bl MOD04_021E59D4
cmp r0, #0
bne _021E9D04
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9BA4:
- bl FUN_021E4CB4
+ bl MOD04_021E4CB4
b _021E9D04
_021E9BAC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r1, r4, #0x3d4
str r1, [sp]
add r3, r5, #0x300
@@ -19419,20 +19422,20 @@ _021E9BAC:
ldr r1, [r7, #0x454]
ldr r2, [r6, #0x3d0]
ldrh r3, [r3, #0xce]
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
beq _021E9D04
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9C0C:
- bl FUN_021DF88C
+ bl MOD04_021DF88C
cmp r0, #5
bne _021E9D04
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x1f8]
ldr r0, [r0, #0x1fc]
subs r3, r4, r1
@@ -19447,23 +19450,23 @@ _021E9C0C:
cmp r1, #0
cmpeq r0, r2
bls _021E9D04
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1ad]
cmp r0, #5
blo _021E9C8C
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
- bl FUN_021E5908
+ bl MOD04_021E5908
cmp r0, #0
bne _021E9D04
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, pc}
_021E9C8C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [sp]
str r1, [sp, #4]
@@ -19471,16 +19474,16 @@ _021E9C8C:
ldr r1, [r5, #0xf4]
ldr r2, [r4, #0x24]
mov r0, #0x40
- bl FUN_021E7884
- bl FUN_021E61EC
+ bl MOD04_021E7884
+ bl MOD04_021E61EC
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r1, [r0, #0x1ad]
add r1, r1, #1
strb r1, [r0, #0x1ad]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
bl OS_GetTick
ldr r2, _021E9F14 ; =0xFF403B3A
@@ -19490,16 +19493,16 @@ _021E9C8C:
adc r0, r1, r3
str r0, [r4, #0x1fc]
_021E9D04:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xb
beq _021E9D24
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #6
bne _021E9DA0
_021E9D24:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r2, [r0, #0x184]
ldr r1, [r0, #0x188]
mov r0, #0
@@ -19509,7 +19512,7 @@ _021E9D24:
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x184]
ldr r0, [r0, #0x188]
subs r3, r4, r1
@@ -19524,42 +19527,42 @@ _021E9D24:
cmp r1, #0
cmpeq r0, r2
bls _021E9DA0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
add r3, r0, #0x194
mov r2, r1
mov r0, #1
- bl FUN_021E2784
+ bl MOD04_021E2784
_021E9DA0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
cmp r0, #0
beq _021E9DBC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
- bl FUN_02203C38
+ bl MOD04_02203C38
_021E9DBC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_021E9F1C
- bl FUN_02200468
- bl FUN_021E26E4
+ bl MOD04_021E9F1C
+ bl MOD04_02200468
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
cmp r0, #0
beq _021E9DEC
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD6D4
+ bl MOD04_021FD6D4
_021E9DEC:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0x12
bne _021E9E54
bl OS_GetTick
mov r4, r0
mov r5, r1
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [r0, #0x1f0]
ldr r0, [r0, #0x1f4]
subs r3, r4, r1
@@ -19574,47 +19577,47 @@ _021E9DEC:
cmp r1, #0
cmpeq r0, r2
bls _021E9E54
- bl FUN_021E4BF4
+ bl MOD04_021E4BF4
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
_021E9E54:
- bl FUN_021E4684
+ bl MOD04_021E4684
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E41C4
+ bl MOD04_021E41C4
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E39F0
- bl FUN_021E26E4
+ bl MOD04_021E39F0
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1ae]
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xa
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0xd]
strb r0, [r4, #0x16]
- bl FUN_021E85D4
- bl FUN_021E26E4
+ bl MOD04_021E85D4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1ae]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x47c]
cmp r0, #0
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x480]
ldr r1, [r4, #0x47c]
blx r1
@@ -19631,16 +19634,16 @@ _021E9F10: .word 0x00007530
_021E9F14: .word 0xFF403B3A
_021E9F18: .word 0x00002710
- arm_func_start FUN_021E9F1C
-FUN_021E9F1C: ; 0x021E9F1C
+ arm_func_start MOD04_021E9F1C
+MOD04_021E9F1C: ; 0x021E9F1C
stmdb sp!, {r4, lr}
movs r4, r0
ldmeqia sp!, {r4, pc}
- bl FUN_02202534
+ bl MOD04_02202534
ldr r0, [r4, #0xb4]
cmp r0, #0
ldmneia sp!, {r4, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x15]
cmp r0, #0
beq _021E9F5C
@@ -19650,7 +19653,7 @@ FUN_021E9F1C: ; 0x021E9F1C
beq _021E9FB0
ldmia sp!, {r4, pc}
_021E9F5C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xb
addls pc, pc, r0, lsl #2
@@ -19669,22 +19672,22 @@ _021E9F70: ; jump table
ldmia sp!, {r4, pc} ; case 10
b _021E9FA0 ; case 11
_021E9FA0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202308
+ bl MOD04_02202308
ldmia sp!, {r4, pc}
_021E9FB0:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x1a0]
cmp r0, #0xb
ldmneia sp!, {r4, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202308
+ bl MOD04_02202308
ldmia sp!, {r4, pc}
- arm_func_start FUN_021E9FD0
-FUN_021E9FD0: ; 0x021E9FD0
+ arm_func_start MOD04_021E9FD0
+MOD04_021E9FD0: ; 0x021E9FD0
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x18
mov r5, r2
@@ -19694,35 +19697,35 @@ FUN_021E9FD0: ; 0x021E9FD0
mov r3, r5
mov r0, #3
mov r1, #0
- bl FUN_021E80C4
- bl FUN_021E26E4
+ bl MOD04_021E80C4
+ bl MOD04_021E26E4
str r4, [r0, #0x46c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [sp, #0x28]
str r1, [r0, #0x470]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
strb r1, [r0, #0x17]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x200]
str r0, [r4, #0x20]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r6, [r0, #0xf4]
mov r0, #4
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
cmp r0, #0
bne _021EA0A4
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r5, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r2, r0
mov r0, #0x14
str r0, [sp]
@@ -19730,21 +19733,21 @@ FUN_021E9FD0: ; 0x021E9FD0
str r0, [sp, #4]
mov r3, #0
str r3, [sp, #8]
- ldr r0, _021EA130 ; =FUN_021E32E4
+ ldr r0, _021EA130 ; =MOD04_021E32E4
str r0, [sp, #0xc]
str r3, [sp, #0x10]
ldr r0, [r5, #0x2f4]
ldr r1, [r4, #0x2f4]
ldr r2, [r2, #0x2f8]
- bl FUN_02203EA4
+ bl MOD04_02203EA4
str r0, [r6, #0xe4]
_021EA0A4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xe4]
cmp r0, #0
bne _021EA0C8
mov r0, #5
- bl FUN_021E38E8
+ bl MOD04_021E38E8
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, pc}
@@ -19752,36 +19755,36 @@ _021EA0C8:
ldr r1, _021EA134 ; =0x0220D3F0
mov r0, #5
mov r2, #0
- bl FUN_021E1E30
- bl FUN_021E397C
+ bl MOD04_021E1E30
+ bl MOD04_021E397C
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
cmp r0, #0
bne _021EA110
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x200]
- bl FUN_021EA1E0
+ bl MOD04_021EA1E0
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, pc}
_021EA110:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0xf4]
mov r1, #0
- bl FUN_021E6038
- bl FUN_021E61EC
+ bl MOD04_021E6038
+ bl MOD04_021E61EC
cmp r0, #0
add sp, sp, #0x18
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
-_021EA130: .word FUN_021E32E4
+_021EA130: .word MOD04_021E32E4
_021EA134: .word 0x0220D3F0
- arm_func_start FUN_021EA138
-FUN_021EA138: ; 0x021EA138
+ arm_func_start MOD04_021EA138
+MOD04_021EA138: ; 0x021EA138
stmdb sp!, {r4, lr}
mov lr, r1
mov ip, r2
@@ -19790,96 +19793,96 @@ FUN_021EA138: ; 0x021EA138
mov r2, lr
mov r3, ip
mov r0, #2
- bl FUN_021E80C4
- bl FUN_021E26E4
+ bl MOD04_021E80C4
+ bl MOD04_021E26E4
str r4, [r0, #0x46c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [sp, #8]
str r1, [r0, #0x470]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x200]
str r0, [r4, #0xf4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #1
str r1, [r0, #0x2f0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r2, #0
strb r2, [r0, #0xe]
ldr r1, _021EA1DC ; =0x022106DC
mov r0, #0xa
strb r2, [r1, #1]
- bl FUN_021E26D0
- bl FUN_021E85D4
- bl FUN_021E397C
+ bl MOD04_021E26D0
+ bl MOD04_021E85D4
+ bl MOD04_021E397C
cmp r0, #0
ldmneia sp!, {r4, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
cmp r0, #0
ldmneia sp!, {r4, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x200]
- bl FUN_021EA1E0
+ bl MOD04_021EA1E0
ldmia sp!, {r4, pc}
.align 2, 0
_021EA1DC: .word 0x022106DC
- arm_func_start FUN_021EA1E0
-FUN_021EA1E0: ; 0x021EA1E0
+ arm_func_start MOD04_021EA1E0
+MOD04_021EA1E0: ; 0x021EA1E0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x2c
mov r4, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
cmp r0, #0
addne sp, sp, #0x2c
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r4, [r0, #0x200]
mov sl, #0
- ldr fp, _021EA344 ; =FUN_021E2E18
+ ldr fp, _021EA344 ; =MOD04_021E2E18
mov r4, sl
mov r5, #1
_021EA21C:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov sb, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD43C
+ bl MOD04_021FD43C
mov r8, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #4]
ldr r0, [r0]
- bl FUN_021FD454
+ bl MOD04_021FD454
mov r7, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r6, r0
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r3, [r0, #0x2f8]
mov r1, r8
str r3, [sp]
str r5, [sp, #4]
str r5, [sp, #8]
- ldr r3, _021EA348 ; =FUN_021E2E14
+ ldr r3, _021EA348 ; =MOD04_021E2E14
str fp, [sp, #0xc]
str r3, [sp, #0x10]
- ldr r3, _021EA34C ; =FUN_021E2E10
+ ldr r3, _021EA34C ; =MOD04_021E2E10
mov r2, r7
str r3, [sp, #0x14]
- ldr r3, _021EA350 ; =FUN_021E2D68
+ ldr r3, _021EA350 ; =MOD04_021E2D68
add r0, sb, #0x10
str r3, [sp, #0x18]
- ldr r3, _021EA354 ; =FUN_021E2D60
+ ldr r3, _021EA354 ; =MOD04_021E2D60
str r3, [sp, #0x1c]
- ldr r3, _021EA358 ; =FUN_021E2D54
+ ldr r3, _021EA358 ; =MOD04_021E2D54
str r3, [sp, #0x20]
str r4, [sp, #0x24]
ldr r3, [r6, #0x2f4]
- bl FUN_022025B0
+ bl MOD04_022025B0
movs r6, r0
beq _021EA2E4
cmp r6, #3
@@ -19888,7 +19891,7 @@ _021EA21C:
bne _021EA2D8
_021EA2C4:
mov r0, r6
- bl FUN_021E3800
+ bl MOD04_021E3800
add sp, sp, #0x2c
mov r0, r6
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -19897,152 +19900,152 @@ _021EA2D8:
cmp sl, #5
blt _021EA21C
_021EA2E4:
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strh r1, [r0, #0x1a]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- ldr r1, _021EA35C ; =FUN_021E2D2C
- bl FUN_02202568
- bl FUN_021E26E4
+ ldr r1, _021EA35C ; =MOD04_021E2D2C
+ bl MOD04_02202568
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- ldr r1, _021EA360 ; =FUN_021E2C78
- bl FUN_02202598
- bl FUN_021E26E4
+ ldr r1, _021EA360 ; =MOD04_021E2C78
+ bl MOD04_02202598
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- ldr r1, _021EA364 ; =FUN_021E2B64
- bl FUN_02202580
- bl FUN_021E26E4
+ ldr r1, _021EA364 ; =MOD04_021E2B64
+ bl MOD04_02202580
+ bl MOD04_021E26E4
ldr r0, [r0, #0x10]
- bl FUN_02202308
+ bl MOD04_02202308
mov r0, r6
add sp, sp, #0x2c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
-_021EA344: .word FUN_021E2E18
-_021EA348: .word FUN_021E2E14
-_021EA34C: .word FUN_021E2E10
-_021EA350: .word FUN_021E2D68
-_021EA354: .word FUN_021E2D60
-_021EA358: .word FUN_021E2D54
-_021EA35C: .word FUN_021E2D2C
-_021EA360: .word FUN_021E2C78
-_021EA364: .word FUN_021E2B64
-
- arm_func_start FUN_021EA368
-FUN_021EA368: ; 0x021EA368
+_021EA344: .word MOD04_021E2E18
+_021EA348: .word MOD04_021E2E14
+_021EA34C: .word MOD04_021E2E10
+_021EA350: .word MOD04_021E2D68
+_021EA354: .word MOD04_021E2D60
+_021EA358: .word MOD04_021E2D54
+_021EA35C: .word MOD04_021E2D2C
+_021EA360: .word MOD04_021E2C78
+_021EA364: .word MOD04_021E2B64
+
+ arm_func_start MOD04_021EA368
+MOD04_021EA368: ; 0x021EA368
stmdb sp!, {r4, r5, r6, lr}
mov r6, r1
mov r5, r2
mov r4, r3
- bl FUN_021E26F4
- bl FUN_021E26E4
+ bl MOD04_021E26F4
+ bl MOD04_021E26E4
str r6, [r0]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r5, [r0, #4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
str r4, [r0, #8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x10]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strh r1, [r0, #0x1a]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0xe4]
mov r0, r1
- bl FUN_021E26D0
- bl FUN_021E26E4
+ bl MOD04_021E26D0
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0xf]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x19]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
strb r1, [r0, #0x1af]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
add r0, r0, #0x100
strh r1, [r0, #0xb6]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x1dc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x200]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [sp, #0x10]
str r1, [r0, #0x2f4]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [sp, #0x14]
str r1, [r0, #0x2f8]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [sp, #0x18]
str r1, [r0, #0x2fc]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldr r1, [sp, #0x1c]
str r1, [r0, #0x300]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
add r0, r0, #0x304
mov r1, #0
mov r2, #0x40
bl MI_CpuFill8
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x344]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x464]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x468]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x474]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x478]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x47c]
- bl FUN_021E26E4
+ bl MOD04_021E26E4
mov r1, #0
str r1, [r0, #0x480]
- bl FUN_021E4164
+ bl MOD04_021E4164
ldr r1, _021EA4D0 ; =0x022106DC
mov r0, #0
strb r0, [r1]
strb r0, [r1, #1]
strh r0, [r1, #2]
- bl FUN_021E8174
+ bl MOD04_021E8174
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021EA4D0: .word 0x022106DC
- arm_func_start FUN_021EA4D4
-FUN_021EA4D4: ; 0x021EA4D4
+ arm_func_start MOD04_021EA4D4
+MOD04_021EA4D4: ; 0x021EA4D4
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
addne sp, sp, #4
movne r0, #0
ldmneia sp!, {pc}
- bl FUN_021E26E4
+ bl MOD04_021E26E4
cmp r0, #0
beq _021EA518
- bl FUN_021DF88C
+ bl MOD04_021DF88C
cmp r0, #5
bne _021EA518
- bl FUN_021E26E4
+ bl MOD04_021E26E4
ldrb r0, [r0, #0x1a9]
cmp r0, #0
beq _021EA524
@@ -20055,26 +20058,26 @@ _021EA524:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EA530
-FUN_021EA530: ; 0x021EA530
+ arm_func_start MOD04_021EA530
+MOD04_021EA530: ; 0x021EA530
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021EA4D4
+ bl MOD04_021EA4D4
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {pc}
- bl FUN_021E4F94
+ bl MOD04_021E4F94
mov r0, #1
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EA55C
-FUN_021EA55C: ; 0x021EA55C
+ arm_func_start MOD04_021EA55C
+MOD04_021EA55C: ; 0x021EA55C
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021DF760
- bl FUN_021FD444
+ bl MOD04_021DF760
+ bl MOD04_021FD444
ldr r1, _021EA584 ; =0xFFFFFDF9
add r0, r0, r1
cmp r0, #0
@@ -20084,13 +20087,13 @@ FUN_021EA55C: ; 0x021EA55C
.align 2, 0
_021EA584: .word 0xFFFFFDF9
- arm_func_start FUN_021EA588
-FUN_021EA588: ; 0x021EA588
+ arm_func_start MOD04_021EA588
+MOD04_021EA588: ; 0x021EA588
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r4, r1
- bl FUN_021EA9AC
+ bl MOD04_021EA9AC
ldrb r1, [r0, #0x1e]
strb r1, [r0, #0x1d]
ldrh r1, [r0, #0x22]
@@ -20104,12 +20107,12 @@ FUN_021EA588: ; 0x021EA588
_021EA5C4:
mov r0, r5
mov r2, r4
- bl FUN_021E8C08
+ bl MOD04_021E8C08
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EA5D8
-FUN_021EA5D8: ; 0x021EA5D8
+ arm_func_start MOD04_021EA5D8
+MOD04_021EA5D8: ; 0x021EA5D8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r3, _021EA6D0 ; =0x02210E3C
@@ -20119,7 +20122,7 @@ FUN_021EA5D8: ; 0x021EA5D8
mla r4, r7, r3, r4
mov r6, r1
mov r5, r2
- bl FUN_021EA974
+ bl MOD04_021EA974
cmp r0, #2
bne _021EA644
ldr r3, [r4, #0x10]
@@ -20129,7 +20132,7 @@ FUN_021EA5D8: ; 0x021EA5D8
ble _021EA630
ldr r1, _021EA6D4 ; =0xFFFE82AC
mov r0, #6
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
_021EA630:
@@ -20179,8 +20182,8 @@ _021EA694:
_021EA6D0: .word 0x02210E3C
_021EA6D4: .word 0xFFFE82AC
- arm_func_start FUN_021EA6D8
-FUN_021EA6D8: ; 0x021EA6D8
+ arm_func_start MOD04_021EA6D8
+MOD04_021EA6D8: ; 0x021EA6D8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
ldr r4, _021EA79C ; =0x02210E3C
@@ -20189,10 +20192,10 @@ FUN_021EA6D8: ; 0x021EA6D8
mov r7, r1
mla r5, r0, r3, r4
mov r6, r2
- bl FUN_021EA974
+ bl MOD04_021EA974
strb r0, [r5, #0x1e]
mov r0, r7
- bl FUN_021EAD6C
+ bl MOD04_021EAD6C
mov r4, r0
cmp r4, #4
addls pc, pc, r4, lsl #2
@@ -20238,13 +20241,13 @@ _021EA790:
.align 2, 0
_021EA79C: .word 0x02210E3C
- arm_func_start FUN_021EA7A0
-FUN_021EA7A0: ; 0x021EA7A0
+ arm_func_start MOD04_021EA7A0
+MOD04_021EA7A0: ; 0x021EA7A0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r1
mov r6, r2
- bl FUN_021DF748
+ bl MOD04_021DF748
ldr r1, _021EA854 ; =0x02210E3C
mov r4, r0
ldr r1, [r1]
@@ -20289,14 +20292,14 @@ _021EA818:
.align 2, 0
_021EA854: .word 0x02210E3C
- arm_func_start FUN_021EA858
-FUN_021EA858: ; 0x021EA858
+ arm_func_start MOD04_021EA858
+MOD04_021EA858: ; 0x021EA858
stmdb sp!, {r4, r5, r6, lr}
mov r6, r1
mov r5, r2
- bl FUN_021DF748
+ bl MOD04_021DF748
mov r4, r0
- bl FUN_021EA974
+ bl MOD04_021EA974
cmp r0, #4
addls pc, pc, r0, lsl #2
b _021EA934
@@ -20308,7 +20311,7 @@ _021EA87C: ; jump table
b _021EA8F8 ; case 4
_021EA890:
mov r0, r6
- bl FUN_021EAD6C
+ bl MOD04_021EAD6C
cmp r0, #2
ldmloia sp!, {r4, r5, r6, pc}
cmp r0, #4
@@ -20316,25 +20319,25 @@ _021EA890:
mov r0, r4
mov r1, r6
mov r2, r5
- bl FUN_021EA6D8
+ bl MOD04_021EA6D8
ldmia sp!, {r4, r5, r6, pc}
_021EA8BC:
mov r0, r4
mov r1, r6
mov r2, r5
- bl FUN_021EA6D8
+ bl MOD04_021EA6D8
ldmia sp!, {r4, r5, r6, pc}
_021EA8D0:
mov r0, r4
mov r1, r6
mov r2, r5
- bl FUN_021EA5D8
+ bl MOD04_021EA5D8
ldmia sp!, {r4, r5, r6, pc}
_021EA8E4:
mov r0, r4
mov r1, r6
mov r2, r5
- bl FUN_021EA588
+ bl MOD04_021EA588
ldmia sp!, {r4, r5, r6, pc}
_021EA8F8:
mov r0, #0x30
@@ -20355,27 +20358,27 @@ _021EA8F8:
_021EA934:
ldr r1, _021EA948 ; =0xFFFE82B6
mov r0, #6
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021EA944: .word 0x02210E3C
_021EA948: .word 0xFFFE82B6
- arm_func_start FUN_021EA94C
-FUN_021EA94C: ; 0x021EA94C
+ arm_func_start MOD04_021EA94C
+MOD04_021EA94C: ; 0x021EA94C
stmdb sp!, {r4, r5, r6, lr}
mov r6, r1
mov r5, r2
mov r4, r3
- bl FUN_021DF760
+ bl MOD04_021DF760
mov r1, r6
mov r2, r5
mov r3, r4
- bl FUN_021FD498
+ bl MOD04_021FD498
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021EA974
-FUN_021EA974: ; 0x021EA974
+ arm_func_start MOD04_021EA974
+MOD04_021EA974: ; 0x021EA974
ldr r2, _021EA98C ; =0x02210E3C
mov r1, #0x30
ldr r2, [r2]
@@ -20385,8 +20388,8 @@ FUN_021EA974: ; 0x021EA974
.align 2, 0
_021EA98C: .word 0x02210E3C
- arm_func_start FUN_021EA990
-FUN_021EA990: ; 0x021EA990
+ arm_func_start MOD04_021EA990
+MOD04_021EA990: ; 0x021EA990
ldr r2, _021EA9A8 ; =0x02210E3C
mov r1, #0x30
ldr r2, [r2]
@@ -20396,8 +20399,8 @@ FUN_021EA990: ; 0x021EA990
.align 2, 0
_021EA9A8: .word 0x02210E3C
- arm_func_start FUN_021EA9AC
-FUN_021EA9AC: ; 0x021EA9AC
+ arm_func_start MOD04_021EA9AC
+MOD04_021EA9AC: ; 0x021EA9AC
ldr r2, _021EA9C0 ; =0x02210E3C
mov r1, #0x30
ldr r2, [r2]
@@ -20406,8 +20409,8 @@ FUN_021EA9AC: ; 0x021EA9AC
.align 2, 0
_021EA9C0: .word 0x02210E3C
- arm_func_start FUN_021EA9C4
-FUN_021EA9C4: ; 0x021EA9C4
+ arm_func_start MOD04_021EA9C4
+MOD04_021EA9C4: ; 0x021EA9C4
ldr r0, _021EA9D4 ; =0x02210E3C
mov r1, #0
str r1, [r0]
@@ -20415,8 +20418,8 @@ FUN_021EA9C4: ; 0x021EA9C4
.align 2, 0
_021EA9D4: .word 0x02210E3C
- arm_func_start FUN_021EA9D8
-FUN_021EA9D8: ; 0x021EA9D8
+ arm_func_start MOD04_021EA9D8
+MOD04_021EA9D8: ; 0x021EA9D8
ldr r2, _021EAA60 ; =0x02210E3C
ldr r3, [r2]
cmp r3, #0
@@ -20454,8 +20457,8 @@ FUN_021EA9D8: ; 0x021EA9D8
.align 2, 0
_021EAA60: .word 0x02210E3C
- arm_func_start FUN_021EAA64
-FUN_021EAA64: ; 0x021EAA64
+ arm_func_start MOD04_021EAA64
+MOD04_021EAA64: ; 0x021EAA64
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
ldr r0, _021EAC14 ; =0x02210E3C
@@ -20464,7 +20467,7 @@ FUN_021EAA64: ; 0x021EAA64
addeq sp, sp, #0xc
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
add r0, sp, #8
- bl FUN_021DF8F4
+ bl MOD04_021DF8F4
mov sb, r0
cmp sb, #0
mov r8, #0
@@ -20478,11 +20481,11 @@ _021EAAAC:
ldr r0, [sp, #8]
ldrb r7, [r0, r8]
mov r0, r7
- bl FUN_021DF8A8
+ bl MOD04_021DF8A8
cmp r0, #0
beq _021EAB44
mov r0, r7
- bl FUN_021EA9AC
+ bl MOD04_021EA9AC
ldr r1, [r4]
mov r6, r0
ldr r0, [r1, #0x608]
@@ -20514,15 +20517,15 @@ _021EAAAC:
str r5, [r6, #0x24]
str sl, [r6, #0x28]
_021EAB44:
- bl FUN_021DF95C
+ bl MOD04_021DF95C
cmp r7, r0
beq _021EAC00
mov r0, r7
- bl FUN_021EA990
+ bl MOD04_021EA990
cmp r0, #1
bne _021EAC00
mov r0, r7
- bl FUN_021EA9AC
+ bl MOD04_021EA9AC
mov r5, r0
ldr r0, [r4]
ldr r2, [r5, #0x14]
@@ -20533,7 +20536,7 @@ _021EAB44:
cmp r0, r6
movle r6, r0
mov r0, r7
- bl FUN_021EA55C
+ bl MOD04_021EA55C
cmp r0, r6
blt _021EAC00
ldr r3, [r5]
@@ -20542,7 +20545,7 @@ _021EAB44:
mov r2, r6
add r1, r3, r1
mov r3, fp
- bl FUN_021EA94C
+ bl MOD04_021EA94C
ldr r0, [r5, #0xc]
add r0, r0, r6
str r0, [r5, #0xc]
@@ -20571,8 +20574,8 @@ _021EAC00:
_021EAC14: .word 0x02210E3C
_021EAC18: .word 0x000082EA
- arm_func_start FUN_021EAC1C
-FUN_021EAC1C: ; 0x021EAC1C
+ arm_func_start MOD04_021EAC1C
+MOD04_021EAC1C: ; 0x021EAC1C
stmdb sp!, {r4, lr}
ldr r2, _021EAC58 ; =0x02210E3C
mov r4, r1
@@ -20580,7 +20583,7 @@ FUN_021EAC1C: ; 0x021EAC1C
ldr r1, [r1, #0x60c]
cmp r1, #0
ldmeqia sp!, {r4, pc}
- bl FUN_021DF748
+ bl MOD04_021DF748
ldr r2, _021EAC58 ; =0x02210E3C
mov r1, r0
ldr r2, [r2]
@@ -20591,8 +20594,8 @@ FUN_021EAC1C: ; 0x021EAC1C
.align 2, 0
_021EAC58: .word 0x02210E3C
- arm_func_start FUN_021EAC5C
-FUN_021EAC5C: ; 0x021EAC5C
+ arm_func_start MOD04_021EAC5C
+MOD04_021EAC5C: ; 0x021EAC5C
stmdb sp!, {lr}
sub sp, sp, #4
ldr ip, _021EACB0 ; =0x02210E3C
@@ -20608,18 +20611,18 @@ FUN_021EAC5C: ; 0x021EAC5C
ldmeqia sp!, {pc}
cmp r3, #0
beq _021EACA4
- bl FUN_021EA858
+ bl MOD04_021EA858
add sp, sp, #4
ldmfd sp!, {pc}
_021EACA4:
- bl FUN_021EA7A0
+ bl MOD04_021EA7A0
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021EACB0: .word 0x02210E3C
- arm_func_start FUN_021EACB4
-FUN_021EACB4: ; 0x021EACB4
+ arm_func_start MOD04_021EACB4
+MOD04_021EACB4: ; 0x021EACB4
stmdb sp!, {lr}
sub sp, sp, #4
ldr r3, _021EACEC ; =0x02210E3C
@@ -20639,8 +20642,8 @@ _021EACEC: .word 0x02210E3C
_021EACF0: .word 0x00000614
_021EACF4: .word 0x000005B9
- arm_func_start FUN_021EACF8
-FUN_021EACF8: ; 0x021EACF8
+ arm_func_start MOD04_021EACF8
+MOD04_021EACF8: ; 0x021EACF8
stmdb sp!, {r4, lr}
ldr r2, _021EAD40 ; =0x02210E3C
ldr r3, [r2]
@@ -20662,8 +20665,8 @@ FUN_021EACF8: ; 0x021EACF8
.align 2, 0
_021EAD40: .word 0x02210E3C
- arm_func_start FUN_021EAD44
-FUN_021EAD44: ; 0x021EAD44
+ arm_func_start MOD04_021EAD44
+MOD04_021EAD44: ; 0x021EAD44
cmp r0, #2
beq _021EAD5C
cmp r0, #3
@@ -20677,8 +20680,8 @@ _021EAD64:
mov r0, #8
bx lr
- arm_func_start FUN_021EAD6C
-FUN_021EAD6C: ; 0x021EAD6C
+ arm_func_start MOD04_021EAD6C
+MOD04_021EAD6C: ; 0x021EAD6C
stmdb sp!, {lr}
sub sp, sp, #0xc
add r1, sp, #0
@@ -20696,8 +20699,8 @@ FUN_021EAD6C: ; 0x021EAD6C
.align 2, 0
_021EADA4: .word 0x0220D4BC
- arm_func_start FUN_021EADA8
-FUN_021EADA8: ; 0x021EADA8
+ arm_func_start MOD04_021EADA8
+MOD04_021EADA8: ; 0x021EADA8
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
@@ -20712,8 +20715,8 @@ FUN_021EADA8: ; 0x021EADA8
.align 2, 0
_021EADD4: .word 0x0220D4BC
- arm_func_start FUN_021EADD8
-FUN_021EADD8: ; 0x021EADD8
+ arm_func_start MOD04_021EADD8
+MOD04_021EADD8: ; 0x021EADD8
ldr r1, _021EADF4 ; =0x02210E3C
ldr r1, [r1]
cmp r1, #0
@@ -20724,8 +20727,8 @@ FUN_021EADD8: ; 0x021EADD8
.align 2, 0
_021EADF4: .word 0x02210E3C
- arm_func_start FUN_021EADF8
-FUN_021EADF8: ; 0x021EADF8
+ arm_func_start MOD04_021EADF8
+MOD04_021EADF8: ; 0x021EADF8
ldr r1, _021EAE14 ; =0x02210E3C
ldr r1, [r1]
cmp r1, #0
@@ -20736,8 +20739,8 @@ FUN_021EADF8: ; 0x021EADF8
.align 2, 0
_021EAE14: .word 0x02210E3C
- arm_func_start FUN_021EAE18
-FUN_021EAE18: ; 0x021EAE18
+ arm_func_start MOD04_021EAE18
+MOD04_021EAE18: ; 0x021EAE18
ldr r1, _021EAE34 ; =0x02210E3C
ldr r1, [r1]
cmp r1, #0
@@ -20748,17 +20751,17 @@ FUN_021EAE18: ; 0x021EAE18
.align 2, 0
_021EAE34: .word 0x02210E3C
- arm_func_start FUN_021EAE38
-FUN_021EAE38: ; 0x021EAE38
+ arm_func_start MOD04_021EAE38
+MOD04_021EAE38: ; 0x021EAE38
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
mov r6, r1
mov r5, r2
- bl FUN_021EA9AC
+ bl MOD04_021EA9AC
mov r4, r0
mov r0, r7
- bl FUN_021EA974
+ bl MOD04_021EA974
cmp r0, #2
addeq sp, sp, #4
moveq r0, #0
@@ -20773,18 +20776,18 @@ FUN_021EAE38: ; 0x021EAE38
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021EAE90
-FUN_021EAE90: ; 0x021EAE90
+ arm_func_start MOD04_021EAE90
+MOD04_021EAE90: ; 0x021EAE90
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
mov r6, r1
mov r4, r2
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
movne r0, #0
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r5
- bl FUN_021DF8A8
+ bl MOD04_021DF8A8
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
@@ -20799,7 +20802,7 @@ FUN_021EAE90: ; 0x021EAE90
mov r1, r6
mov r2, r4
mov r3, #0
- bl FUN_021EA94C
+ bl MOD04_021EA94C
ldr r0, _021EAF1C ; =0x02210E3C
ldr r0, [r0]
ldr r2, [r0, #0x600]
@@ -20814,8 +20817,8 @@ _021EAF14:
.align 2, 0
_021EAF1C: .word 0x02210E3C
- arm_func_start FUN_021EAF20
-FUN_021EAF20: ; 0x021EAF20
+ arm_func_start MOD04_021EAF20
+MOD04_021EAF20: ; 0x021EAF20
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0xc
mov r7, r1
@@ -20823,11 +20826,11 @@ FUN_021EAF20: ; 0x021EAF20
mov r0, r7
mov r6, r2
mov r5, r3
- bl FUN_021EA9AC
+ bl MOD04_021EA9AC
mov r4, r0
mov r0, r7
mov r1, r8
- bl FUN_021EB06C
+ bl MOD04_021EB06C
cmp r0, #0
addeq sp, sp, #0xc
moveq r0, #0
@@ -20841,12 +20844,12 @@ FUN_021EAF20: ; 0x021EAF20
mov r1, r8
mov r2, r5
str r5, [r4, #0x14]
- bl FUN_021EADA8
+ bl MOD04_021EADA8
add r1, sp, #0
mov r0, r7
mov r2, #8
mov r3, #1
- bl FUN_021EA94C
+ bl MOD04_021EA94C
ldr r0, _021EB040 ; =0x02210E3C
ldr r0, [r0]
add r0, r0, #0x600
@@ -20854,7 +20857,7 @@ FUN_021EAF20: ; 0x021EAF20
mov r0, r7
cmp r5, sb
movle sb, r5
- bl FUN_021EA55C
+ bl MOD04_021EA55C
cmp sb, r0
addgt sp, sp, #0xc
movgt r0, #1
@@ -20863,7 +20866,7 @@ FUN_021EAF20: ; 0x021EAF20
mov r1, r6
mov r2, sb
mov r3, #1
- bl FUN_021EA94C
+ bl MOD04_021EA94C
ldr r0, [r4, #0xc]
add r0, r0, sb
str r0, [r4, #0xc]
@@ -20892,8 +20895,8 @@ _021EB034:
.align 2, 0
_021EB040: .word 0x02210E3C
- arm_func_start FUN_021EB044
-FUN_021EB044: ; 0x021EB044
+ arm_func_start MOD04_021EB044
+MOD04_021EB044: ; 0x021EB044
stmdb sp!, {lr}
sub sp, sp, #4
mov ip, r1
@@ -20901,28 +20904,28 @@ FUN_021EB044: ; 0x021EB044
mov r1, r0
mov r2, ip
mov r0, #1
- bl FUN_021EAF20
+ bl MOD04_021EAF20
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EB06C
-FUN_021EB06C: ; 0x021EB06C
+ arm_func_start MOD04_021EB06C
+MOD04_021EB06C: ; 0x021EB06C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r0
mov r5, r1
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
bne _021EB0B0
cmp r5, #1
bne _021EB0A0
mov r0, r4
- bl FUN_021DF8A8
+ bl MOD04_021DF8A8
cmp r0, #0
beq _021EB0B0
_021EB0A0:
mov r0, r4
- bl FUN_021DF5F0
+ bl MOD04_021DF5F0
cmp r0, #0
bne _021EB0BC
_021EB0B0:
@@ -20931,32 +20934,32 @@ _021EB0B0:
ldmia sp!, {r4, r5, pc}
_021EB0BC:
mov r0, r4
- bl FUN_021EA990
+ bl MOD04_021EA990
cmp r0, #1
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, pc}
mov r0, r4
- bl FUN_021EA55C
+ bl MOD04_021EA55C
mov r4, r0
mov r0, r5
- bl FUN_021EAD44
+ bl MOD04_021EAD44
cmp r4, r0
movge r0, #1
movlt r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EB0FC
-FUN_021EB0FC: ; 0x021EB0FC
- ldr ip, _021EB108 ; =FUN_021EB06C
+ arm_func_start MOD04_021EB0FC
+MOD04_021EB0FC: ; 0x021EB0FC
+ ldr ip, _021EB108 ; =MOD04_021EB06C
mov r1, #1
bx ip
.align 2, 0
-_021EB108: .word FUN_021EB06C
+_021EB108: .word MOD04_021EB06C
- arm_func_start FUN_021EB10C
-FUN_021EB10C: ; 0x021EB10C
+ arm_func_start MOD04_021EB10C
+MOD04_021EB10C: ; 0x021EB10C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r0, _021EB178 ; =0x02210E40
@@ -20973,12 +20976,12 @@ _021EB12C:
beq _021EB14C
mov r0, r5
mov r2, r4
- bl FUN_021DD904
+ bl MOD04_021DD904
_021EB14C:
mov r0, r5
mov r1, r6
mov r2, r4
- bl FUN_021DD904
+ bl MOD04_021DD904
cmp r7, #0
bne _021EB12C
_021EB164:
@@ -20990,8 +20993,8 @@ _021EB164:
.align 2, 0
_021EB178: .word 0x02210E40
- arm_func_start FUN_021EB17C
-FUN_021EB17C: ; 0x021EB17C
+ arm_func_start MOD04_021EB17C
+MOD04_021EB17C: ; 0x021EB17C
stmdb sp!, {r4, lr}
ldr r1, _021EB1FC ; =0x02210E40
ldr r1, [r1]
@@ -21002,7 +21005,7 @@ FUN_021EB17C: ; 0x021EB17C
mov r0, #4
mov r2, #0
ldr r4, [r1, #0x18]
- bl FUN_021DD904
+ bl MOD04_021DD904
ldr r0, _021EB1FC ; =0x02210E40
str r4, [r0]
ldmia sp!, {r4, pc}
@@ -21020,7 +21023,7 @@ _021EB1C0:
mov r2, #0
str r3, [r1, #0x18]
mov r1, ip
- bl FUN_021DD904
+ bl MOD04_021DD904
ldmia sp!, {r4, pc}
_021EB1EC:
ldr r2, [r2, #0x18]
@@ -21030,13 +21033,13 @@ _021EB1EC:
.align 2, 0
_021EB1FC: .word 0x02210E40
- arm_func_start FUN_021EB200
-FUN_021EB200: ; 0x021EB200
+ arm_func_start MOD04_021EB200
+MOD04_021EB200: ; 0x021EB200
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #4
mov r1, #0x1c
- bl FUN_021DD944
+ bl MOD04_021DD944
movs ip, r0
moveq r0, #0
ldmeqia sp!, {r4, pc}
@@ -21057,8 +21060,8 @@ FUN_021EB200: ; 0x021EB200
.align 2, 0
_021EB258: .word 0x02210E40
- arm_func_start FUN_021EB25C
-FUN_021EB25C: ; 0x021EB25C
+ arm_func_start MOD04_021EB25C
+MOD04_021EB25C: ; 0x021EB25C
stmdb sp!, {r4, lr}
movs r4, r0
mov r0, #7
@@ -21155,7 +21158,7 @@ _021EB388:
ldr r2, _021EB3B4 ; =0xFFFFFC72
add r1, r1, r2
_021EB390:
- bl FUN_021DD6B0
+ bl MOD04_021DD6B0
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
@@ -21167,14 +21170,14 @@ _021EB3AC: .word 0xFFFFFC9A
_021EB3B0: .word 0xFFFFFC86
_021EB3B4: .word 0xFFFFFC72
- arm_func_start FUN_021EB3B8
-FUN_021EB3B8: ; 0x021EB3B8
+ arm_func_start MOD04_021EB3B8
+MOD04_021EB3B8: ; 0x021EB3B8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
mov r5, r0
mov r7, r1
mov r6, r2
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
addne sp, sp, #0x14
mvnne r0, #7
@@ -21186,11 +21189,11 @@ FUN_021EB3B8: ; 0x021EB3B8
str r7, [sp, #4]
str r2, [sp, #8]
str r1, [sp, #0xc]
- bl FUN_021EB200
+ bl MOD04_021EB200
movs r4, r0
bne _021EB430
mvn r0, #4
- bl FUN_021EB25C
+ bl MOD04_021EB25C
mov r0, #0
mov r1, r0
mov r3, r6
@@ -21200,31 +21203,31 @@ FUN_021EB3B8: ; 0x021EB3B8
mvn r0, #4
ldmia sp!, {r4, r5, r6, r7, pc}
_021EB430:
- ldr r2, _021EB47C ; =FUN_021EB480
+ ldr r2, _021EB47C ; =MOD04_021EB480
mov r0, r5
mov r3, r4
mov r1, #0
- bl FUN_02213D80
+ bl MOD79_02213D80
movs r5, r0
bpl _021EB46C
- bl FUN_021EB25C
+ bl MOD04_021EB25C
mov r0, #0
mov r1, r0
mov r2, r5
mov r3, r6
blx r7
mov r0, r4
- bl FUN_021EB17C
+ bl MOD04_021EB17C
_021EB46C:
mov r0, r5
str r5, [r4, #0x14]
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
-_021EB47C: .word FUN_021EB480
+_021EB47C: .word MOD04_021EB480
- arm_func_start FUN_021EB480
-FUN_021EB480: ; 0x021EB480
+ arm_func_start MOD04_021EB480
+MOD04_021EB480: ; 0x021EB480
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r6, [sp, #0x18]
@@ -21243,7 +21246,7 @@ FUN_021EB480: ; 0x021EB480
b _021EB4DC
_021EB4C0:
mov r0, r7
- bl FUN_021EB25C
+ bl MOD04_021EB25C
mov r0, #0
ldr r3, [r6]
mov r1, r0
@@ -21261,29 +21264,32 @@ _021EB4EC:
beq _021EB508
mov r0, #4
mov r2, #0
- bl FUN_021DD904
+ bl MOD04_021DD904
_021EB508:
mov r0, r6
- bl FUN_021EB17C
+ bl MOD04_021EB17C
cmp r4, #0
movne r0, #1
moveq r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021EB524
-FUN_021EB524: ; 0x021EB524
+ arm_func_start MOD04_021EB524
+MOD04_021EB524: ; 0x021EB524
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021DD6D4
+ bl MOD04_021DD6D4
cmp r0, #0
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,13 +21298,13 @@ FUN_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
str r1, [r0]
bne _021EB58C
- bl FUN_021EB10C
+ bl MOD04_021EB10C
_021EB58C:
mov r0, #1
add sp, sp, #4
@@ -21306,11 +21312,11 @@ _021EB58C:
.align 2, 0
_021EB598: .word 0x02210E44
- arm_func_start FUN_021EB59C
-FUN_021EB59C: ; 0x021EB59C
+ arm_func_start MOD04_021EB59C
+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]
@@ -21321,8 +21327,8 @@ FUN_021EB59C: ; 0x021EB59C
.align 2, 0
_021EB5C4: .word 0x02210E44
- arm_func_start FUN_021EB5C8
-FUN_021EB5C8: ; 0x021EB5C8
+ arm_func_start MOD04_021EB5C8
+MOD04_021EB5C8: ; 0x021EB5C8
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
ldr r1, _021EB660 ; =0x02210E48
ldr r0, _021EB664 ; =0x00000474
@@ -21368,20 +21374,20 @@ _021EB658:
_021EB660: .word 0x02210E48
_021EB664: .word 0x00000474
- arm_func_start FUN_021EB668
-FUN_021EB668: ; 0x021EB668
+ arm_func_start MOD04_021EB668
+MOD04_021EB668: ; 0x021EB668
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, _021EB6A0 ; =0x02210E54
mov r0, #8
ldr r1, [r1]
mov r2, #0xc
- bl FUN_021EB910
+ bl MOD04_021EB910
ldr r0, _021EB6A4 ; =0x02210E48
ldr r2, _021EB6A8 ; =0x00000D18
ldr r1, [r0]
mov r0, #0x10
- bl FUN_021EB910
+ bl MOD04_021EB910
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
@@ -21389,18 +21395,18 @@ _021EB6A0: .word 0x02210E54
_021EB6A4: .word 0x02210E48
_021EB6A8: .word 0x00000D18
- arm_func_start FUN_021EB6AC
-FUN_021EB6AC: ; 0x021EB6AC
+ arm_func_start MOD04_021EB6AC
+MOD04_021EB6AC: ; 0x021EB6AC
cmp r0, #2
subhi r0, r0, #3
andhi r0, r0, #0xff
bx lr
- arm_func_start FUN_021EB6BC
-FUN_021EB6BC: ; 0x021EB6BC
+ arm_func_start MOD04_021EB6BC
+MOD04_021EB6BC: ; 0x021EB6BC
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021EB6AC
+ bl MOD04_021EB6AC
ldr r1, _021EB6DC ; =0x02210E58
ldr r1, [r1]
strb r0, [r1, #0x17]
@@ -21409,8 +21415,8 @@ FUN_021EB6BC: ; 0x021EB6BC
.align 2, 0
_021EB6DC: .word 0x02210E58
- arm_func_start FUN_021EB6E0
-FUN_021EB6E0: ; 0x021EB6E0
+ arm_func_start MOD04_021EB6E0
+MOD04_021EB6E0: ; 0x021EB6E0
ldr r0, _021EB6F0 ; =0x02210E58
ldr r0, [r0]
ldr r0, [r0, #0xc]
@@ -21418,22 +21424,22 @@ FUN_021EB6E0: ; 0x021EB6E0
.align 2, 0
_021EB6F0: .word 0x02210E58
- arm_func_start FUN_021EB6F4
-FUN_021EB6F4: ; 0x021EB6F4
+ arm_func_start MOD04_021EB6F4
+MOD04_021EB6F4: ; 0x021EB6F4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r0, #1
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
str r5, [r4, #0xc]
- bl FUN_021EB720
+ bl MOD04_021EB720
strb r0, [r4, #0xa]
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EB720
-FUN_021EB720: ; 0x021EB720
+ arm_func_start MOD04_021EB720
+MOD04_021EB720: ; 0x021EB720
ldr r0, _021EB730 ; =0x02210E58
ldr r0, [r0]
ldrb r0, [r0, #9]
@@ -21441,15 +21447,15 @@ FUN_021EB720: ; 0x021EB720
.align 2, 0
_021EB730: .word 0x02210E58
- arm_func_start FUN_021EB734
-FUN_021EB734: ; 0x021EB734
+ arm_func_start MOD04_021EB734
+MOD04_021EB734: ; 0x021EB734
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r0, #1
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r5, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
strb r6, [r5, #9]
cmp r6, #0x10
@@ -21461,7 +21467,7 @@ FUN_021EB734: ; 0x021EB734
cmp r6, #7
ldmlsia sp!, {r4, r5, r6, pc}
ldrb r0, [r4, #0xd0d]
- bl FUN_021EB6AC
+ bl MOD04_021EB6AC
strb r0, [r5, #0x15]
ldrb r0, [r4, #0xd13]
add r0, r4, r0, lsl #2
@@ -21469,8 +21475,8 @@ FUN_021EB734: ; 0x021EB734
strb r0, [r5, #0x14]
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021EB798
-FUN_021EB798: ; 0x021EB798
+ arm_func_start MOD04_021EB798
+MOD04_021EB798: ; 0x021EB798
ands r1, r0, #1
ldrne r0, _021EB7EC ; =0x02210E58
ldrne r0, [r0]
@@ -21499,17 +21505,17 @@ _021EB7F4: .word 0x02210E50
_021EB7F8: .word 0x02210E54
_021EB7FC: .word 0x02210E48
- arm_func_start FUN_021EB800
-FUN_021EB800: ; 0x021EB800
+ arm_func_start MOD04_021EB800
+MOD04_021EB800: ; 0x021EB800
stmdb sp!, {r4, lr}
mov r0, #1
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
ldrb r0, [r4, #8]
ands r0, r0, #0x10
beq _021EB844
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
ldrb r3, [r4, #8]
mov r1, r0
ldr r2, _021EB90C ; =0x00000D18
@@ -21523,7 +21529,7 @@ _021EB844:
ands r0, r0, #8
beq _021EB878
mov r0, #8
- bl FUN_021EB798
+ bl MOD04_021EB798
ldrb r2, [r4, #8]
mov r1, r0
mov r0, #8
@@ -21537,7 +21543,7 @@ _021EB878:
ands r0, r0, #4
beq _021EB8AC
mov r0, #4
- bl FUN_021EB798
+ bl MOD04_021EB798
ldrb r2, [r4, #8]
mov r1, r0
mov r0, #4
@@ -21551,7 +21557,7 @@ _021EB8AC:
ands r0, r0, #2
beq _021EB8E0
mov r0, #2
- bl FUN_021EB798
+ bl MOD04_021EB798
ldrb r2, [r4, #8]
mov r1, r0
mov r0, #2
@@ -21575,14 +21581,14 @@ _021EB8E0:
.align 2, 0
_021EB90C: .word 0x00000D18
- arm_func_start FUN_021EB910
-FUN_021EB910: ; 0x021EB910
+ arm_func_start MOD04_021EB910
+MOD04_021EB910: ; 0x021EB910
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r0, #1
mov r5, r1
mov r4, r2
- bl FUN_021EB798
+ bl MOD04_021EB798
ldrb r2, [r0, #8]
ands r1, r2, r6
ldmeqia sp!, {r4, r5, r6, pc}
@@ -21596,14 +21602,14 @@ FUN_021EB910: ; 0x021EB910
blx r3
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021EB958
-FUN_021EB958: ; 0x021EB958
+ arm_func_start MOD04_021EB958
+MOD04_021EB958: ; 0x021EB958
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r0, #1
mov r4, r1
- bl FUN_021EB798
+ bl MOD04_021EB798
ldrb r1, [r0, #8]
ands r2, r1, r5
addne sp, sp, #4
@@ -21618,14 +21624,14 @@ FUN_021EB958: ; 0x021EB958
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EB9A4
-FUN_021EB9A4: ; 0x021EB9A4
+ arm_func_start MOD04_021EB9A4
+MOD04_021EB9A4: ; 0x021EB9A4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r0, #0x10
mov r4, r1
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r1, r0
mov r0, r4
add r1, r1, r5, lsl #8
@@ -21634,11 +21640,11 @@ FUN_021EB9A4: ; 0x021EB9A4
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EB9D8
-FUN_021EB9D8: ; 0x021EB9D8
+ arm_func_start MOD04_021EB9D8
+MOD04_021EB9D8: ; 0x021EB9D8
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021EB720
+ bl MOD04_021EB720
strb r0, [sp]
ldrb r0, [sp]
cmp r0, #0
@@ -21646,27 +21652,27 @@ FUN_021EB9D8: ; 0x021EB9D8
cmp r0, #0x12
bne _021EBA0C
_021EB9FC:
- bl FUN_021EB800
+ bl MOD04_021EB800
add sp, sp, #4
mov r0, #1
ldmfd sp!, {pc}
_021EBA0C:
add r0, sp, #0
- bl FUN_021ECB38
+ bl MOD04_021ECB38
ldrb r0, [sp]
- bl FUN_021EB734
+ bl MOD04_021EB734
mov r0, #0
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EBA28
-FUN_021EBA28: ; 0x021EBA28
+ arm_func_start MOD04_021EBA28
+MOD04_021EBA28: ; 0x021EBA28
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r0, #1
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r5, r0
- bl FUN_021EB720
+ bl MOD04_021EB720
cmp r0, #0xa
blo _021EBAB0
cmp r0, #0x10
@@ -21692,7 +21698,7 @@ FUN_021EBA28: ; 0x021EBA28
bl DC_InvalidateRange
mov r0, r4
add r1, r6, #6
- bl FUN_021EE5F4
+ bl MOD04_021EE5F4
_021EBAA8:
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
@@ -21700,11 +21706,11 @@ _021EBAB0:
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021EBAB8
-FUN_021EBAB8: ; 0x021EBAB8
+ arm_func_start MOD04_021EBAB8
+MOD04_021EBAB8: ; 0x021EBAB8
stmdb sp!, {r4, lr}
mov r4, #0xff
- bl FUN_021EB720
+ bl MOD04_021EB720
cmp r0, #0xa
blo _021EBADC
cmp r0, #0x10
@@ -21717,11 +21723,11 @@ _021EBADC:
.align 2, 0
_021EBAE4: .word 0x02210E58
- arm_func_start FUN_021EBAE8
-FUN_021EBAE8: ; 0x021EBAE8
+ arm_func_start MOD04_021EBAE8
+MOD04_021EBAE8: ; 0x021EBAE8
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021EB720
+ bl MOD04_021EB720
cmp r0, #1
addls sp, sp, #4
movls r0, #0
@@ -21754,19 +21760,19 @@ FUN_021EBAE8: ; 0x021EBAE8
addeq sp, sp, #4
moveq r0, #4
ldmeqia sp!, {pc}
- bl FUN_021ECD54
+ bl MOD04_021ECD54
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EBB80
-FUN_021EBB80: ; 0x021EBB80
+ arm_func_start MOD04_021EBB80
+MOD04_021EBB80: ; 0x021EBB80
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
- bl FUN_021EB720
+ bl MOD04_021EB720
mov r5, r0
cmp r5, #1
bne _021EBBA4
- bl FUN_021EDB44
+ bl MOD04_021EDB44
mov r5, r0
b _021EBC18
_021EBBA4:
@@ -21774,43 +21780,43 @@ _021EBBA4:
bhs _021EBBCC
bl OS_DisableInterrupts
mov r4, r0
- bl FUN_021EDA70
+ bl MOD04_021EDA70
mov r5, r0
- bl FUN_021EB734
+ bl MOD04_021EB734
mov r0, r4
bl OS_RestoreInterrupts
b _021EBC18
_021EBBCC:
cmp r5, #9
bhs _021EBBE0
- bl FUN_021ECA08
+ bl MOD04_021ECA08
mov r5, r0
b _021EBC18
_021EBBE0:
cmp r5, #0xa
bhs _021EBBF4
- bl FUN_021ED218
+ bl MOD04_021ED218
mov r5, r0
b _021EBC18
_021EBBF4:
cmp r5, #0x10
bhs _021EBC08
- bl FUN_021EDFBC
+ bl MOD04_021EDFBC
mov r5, r0
b _021EBC18
_021EBC08:
cmp r5, #0x11
bne _021EBC18
- bl FUN_021ECDA8
+ bl MOD04_021ECDA8
mov r5, r0
_021EBC18:
mov r0, r5
- bl FUN_021EB734
+ bl MOD04_021EB734
cmp r5, #0x10
bne _021EBC40
- bl FUN_021EB5C8
+ bl MOD04_021EB5C8
mov r4, r0
- bl FUN_021EB668
+ bl MOD04_021EB668
add sp, sp, #4
mov r0, r4
ldmia sp!, {r4, r5, pc}
@@ -21819,13 +21825,13 @@ _021EBC40:
addne sp, sp, #4
movne r0, #0
ldmneia sp!, {r4, r5, pc}
- bl FUN_021EB668
+ bl MOD04_021EB668
mvn r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EBC60
-FUN_021EBC60: ; 0x021EBC60
+ arm_func_start MOD04_021EBC60
+MOD04_021EBC60: ; 0x021EBC60
stmdb sp!, {r4, lr}
mov r4, r0
ldr r2, [r4]
@@ -21850,22 +21856,22 @@ FUN_021EBC60: ; 0x021EBC60
strb r2, [r3, #0x16]
mov r0, #0x10
strb r2, [r3, #8]
- bl FUN_021EB958
+ bl MOD04_021EB958
ldr r2, _021EBE10 ; =0x02210E48
mov r1, #0x2300
str r0, [r2]
mov r0, #2
- bl FUN_021EB958
+ bl MOD04_021EB958
ldr r2, _021EBE14 ; =0x02210E4C
mov r1, #0x58
str r0, [r2]
mov r0, #4
- bl FUN_021EB958
+ bl MOD04_021EB958
ldr r2, _021EBE18 ; =0x02210E50
mov r1, #0xc
str r0, [r2]
mov r0, #8
- bl FUN_021EB958
+ bl MOD04_021EB958
ldr r2, _021EBE1C ; =0x02210E54
ldr r1, _021EBE10 ; =0x02210E48
str r0, [r2]
@@ -21928,7 +21934,7 @@ FUN_021EBC60: ; 0x021EBC60
cmp r0, #4
blt _021EBE00
_021EBDF4:
- bl FUN_021EB800
+ bl MOD04_021EB800
mov r0, #0
ldmia sp!, {r4, pc}
_021EBE00:
@@ -21942,8 +21948,8 @@ _021EBE14: .word 0x02210E4C
_021EBE18: .word 0x02210E50
_021EBE1C: .word 0x02210E54
- arm_func_start FUN_021EBE20
-FUN_021EBE20: ; 0x021EBE20
+ arm_func_start MOD04_021EBE20
+MOD04_021EBE20: ; 0x021EBE20
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xcc
ldr r2, _021EBF1C ; =0x00000444
@@ -22012,8 +22018,8 @@ _021EBEF0:
.align 2, 0
_021EBF1C: .word 0x00000444
- arm_func_start FUN_021EBF20
-FUN_021EBF20: ; 0x021EBF20
+ arm_func_start MOD04_021EBF20
+MOD04_021EBF20: ; 0x021EBF20
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldrh r4, [r1, #2]
@@ -22049,8 +22055,8 @@ _021EBF84:
.align 2, 0
_021EBF9C: .word 0x00000444
- arm_func_start FUN_021EBFA0
-FUN_021EBFA0: ; 0x021EBFA0
+ arm_func_start MOD04_021EBFA0
+MOD04_021EBFA0: ; 0x021EBFA0
stmdb sp!, {lr}
sub sp, sp, #4
ldr lr, _021EC004 ; =0x0000046C
@@ -22079,8 +22085,8 @@ FUN_021EBFA0: ; 0x021EBFA0
.align 2, 0
_021EC004: .word 0x0000046C
- arm_func_start FUN_021EC008
-FUN_021EC008: ; 0x021EC008
+ arm_func_start MOD04_021EC008
+MOD04_021EC008: ; 0x021EC008
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r6, r3
ldrb r3, [r6, #0xd12]
@@ -22127,7 +22133,7 @@ _021EC0A0:
bne _021EC0D0
mov r3, r6
and r0, r0, #0xff
- bl FUN_021EBFA0
+ bl MOD04_021EBFA0
ldrb r0, [r6, #0xd12]
mov r4, #0xa
cmp r0, #0xa
@@ -22137,22 +22143,22 @@ _021EC0A0:
_021EC0D0:
mov r0, r4
mov r3, r6
- bl FUN_021EBF20
+ bl MOD04_021EBF20
_021EC0DC:
mov r0, r4
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_021EC0E4: .word 0x00000474
- arm_func_start FUN_021EC0E8
-FUN_021EC0E8: ; 0x021EC0E8
+ arm_func_start MOD04_021EC0E8
+MOD04_021EC0E8: ; 0x021EC0E8
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov r4, r0
ldrh r2, [r4, #0xa]
mov sl, r1
cmp r2, #0x20
bne _021EC10C
- bl FUN_021EC210
+ bl MOD04_021EC210
cmp r0, #0
ldmgtia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021EC10C:
@@ -22190,8 +22196,8 @@ _021EC174:
.align 2, 0
_021EC17C: .word 0x0000047C
- arm_func_start FUN_021EC180
-FUN_021EC180: ; 0x021EC180
+ arm_func_start MOD04_021EC180
+MOD04_021EC180: ; 0x021EC180
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov r6, r0
@@ -22200,7 +22206,7 @@ FUN_021EC180: ; 0x021EC180
mov r4, r2
cmp r3, #0x20
bne _021EC1B0
- bl FUN_021EC210
+ bl MOD04_021EC210
cmp r0, #0
addgt sp, sp, #4
ldmgtia sp!, {r4, r5, r6, r7, r8, sb, pc}
@@ -22233,13 +22239,13 @@ _021EC204:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_021EC210
-FUN_021EC210: ; 0x021EC210
+ arm_func_start MOD04_021EC210
+MOD04_021EC210: ; 0x021EC210
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
ldrb r0, [r4, #0xd0c]
mov r0, r0, lsl #0x1c
@@ -22255,7 +22261,7 @@ _021EC240:
cmp r0, #1
bne _021EC270
add r0, r5, #0xc
- bl FUN_021EE5C8
+ bl MOD04_021EE5C8
cmp r0, #1
addeq sp, sp, #4
moveq r0, #6
@@ -22275,7 +22281,7 @@ _021EC288:
cmp r0, #1
bne _021EC2B8
add r0, r5, #0xc
- bl FUN_021EE668
+ bl MOD04_021EE668
cmp r0, #1
addeq sp, sp, #4
moveq r0, #7
@@ -22285,20 +22291,20 @@ _021EC2B8:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EC2C4
-FUN_021EC2C4: ; 0x021EC2C4
+ arm_func_start MOD04_021EC2C4
+MOD04_021EC2C4: ; 0x021EC2C4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
mov r0, #0x10
mvn r6, #0
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
mov r0, #1
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r1, #1
strb r1, [r0, #0xb]
- bl FUN_021EB720
+ bl MOD04_021EB720
cmp r0, #3
beq _021EC314
cmp r0, #4
@@ -22317,7 +22323,7 @@ _021EC314:
bne _021EC33C
_021EC330:
ldrh r0, [r7, #0x36]
- bl FUN_021EDA3C
+ bl MOD04_021EDA3C
b _021EC418
_021EC33C:
cmp r1, #1
@@ -22326,18 +22332,18 @@ _021EC33C:
bne _021EC36C
_021EC34C:
ldrh r0, [r7, #0x36]
- bl FUN_021EDA3C
+ bl MOD04_021EDA3C
ldrb r1, [r4, #0xd10]
mov r0, r7
add r2, r4, #0x300
- bl FUN_021EC180
+ bl MOD04_021EC180
mov r6, r0
b _021EC418
_021EC36C:
ldrb r1, [r4, #0xd10]
mov r0, r7
add r2, r4, #0x300
- bl FUN_021EC180
+ bl MOD04_021EC180
mov r6, r0
b _021EC418
_021EC384:
@@ -22350,7 +22356,7 @@ _021EC384:
mov r1, r4
sub r2, r2, #1
and r5, r2, #0xff
- bl FUN_021EC0E8
+ bl MOD04_021EC0E8
movs r6, r0
bmi _021EC418
ldr r0, _021EC448 ; =0x00000447
@@ -22368,7 +22374,7 @@ _021EC3D0:
mov r0, r7
mov r1, #1
ldrb r5, [r4, #0xd11]
- bl FUN_021EC180
+ bl MOD04_021EC180
movs r6, r0
bmi _021EC418
ldrb r1, [r4, #0xd0f]
@@ -22387,20 +22393,20 @@ _021EC418:
mov r1, r7
mov r2, r5
mov r3, r4
- bl FUN_021EC008
+ bl MOD04_021EC008
mov r1, r4
- bl FUN_021EBE20
+ bl MOD04_021EBE20
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
_021EC448: .word 0x00000447
- arm_func_start FUN_021EC44C
-FUN_021EC44C: ; 0x021EC44C
+ arm_func_start MOD04_021EC44C
+MOD04_021EC44C: ; 0x021EC44C
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
ldrsh r1, [r4]
cmp r1, #5
bne _021EC4C4
@@ -22435,11 +22441,11 @@ _021EC4C4:
cmp r1, #7
ldmneia sp!, {r4, pc}
ldr r0, [r4, #4]
- bl FUN_021EC2C4
+ bl MOD04_021EC2C4
ldmia sp!, {r4, pc}
- arm_func_start FUN_021EC4D8
-FUN_021EC4D8: ; 0x021EC4D8
+ arm_func_start MOD04_021EC4D8
+MOD04_021EC4D8: ; 0x021EC4D8
stmdb sp!, {r4, lr}
mov r4, r2
cmp r1, #9
@@ -22493,7 +22499,7 @@ _021EC56C:
mov r0, #0xc0
mla r0, r2, r0, r1
add r1, r4, #2
- bl FUN_021EE5B8
+ bl MOD04_021EE5B8
b _021EC5B8
_021EC594:
mov r1, #2
@@ -22504,7 +22510,7 @@ _021EC594:
mov r0, #0xc0
mla r0, r2, r0, r1
add r1, r4, #2
- bl FUN_021EE640
+ bl MOD04_021EE640
_021EC5B8:
ldrb r0, [r4]
cmp r0, #0
@@ -22514,8 +22520,8 @@ _021EC5B8:
.align 2, 0
_021EC5CC: .word 0x0000047C
- arm_func_start FUN_021EC5D0
-FUN_021EC5D0: ; 0x021EC5D0
+ arm_func_start MOD04_021EC5D0
+MOD04_021EC5D0: ; 0x021EC5D0
ldrb r0, [r0, #0xd0b]
mov r0, r0, lsl #0x1c
mov r0, r0, lsr #0x1e
@@ -22524,8 +22530,8 @@ FUN_021EC5D0: ; 0x021EC5D0
movne r0, #0x80000
bx lr
- arm_func_start FUN_021EC5EC
-FUN_021EC5EC: ; 0x021EC5EC
+ arm_func_start MOD04_021EC5EC
+MOD04_021EC5EC: ; 0x021EC5EC
ldrb r0, [r0, #0xd0b]
mov r0, r0, lsl #0x1e
mov r0, r0, lsr #0x1e
@@ -22534,8 +22540,8 @@ FUN_021EC5EC: ; 0x021EC5EC
movne r0, #0x20000
bx lr
- arm_func_start FUN_021EC608
-FUN_021EC608: ; 0x021EC608
+ arm_func_start MOD04_021EC608
+MOD04_021EC608: ; 0x021EC608
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov sl, r0
@@ -22554,7 +22560,7 @@ FUN_021EC608: ; 0x021EC608
cmp r0, #0x20
bne _021EC66C
mov r0, sb
- bl FUN_021EC210
+ bl MOD04_021EC210
cmp r0, #0
str r0, [sp]
movle r0, #0
@@ -22565,7 +22571,7 @@ _021EC66C:
cmp r0, #8
bne _021EC690
mov r0, sb
- bl FUN_021ED12C
+ bl MOD04_021ED12C
cmp r0, #0
str r0, [sp]
moveq r0, #0
@@ -22654,8 +22660,8 @@ _021EC79C:
.align 2, 0
_021EC7AC: .word 0x00000D0C
- arm_func_start FUN_021EC7B0
-FUN_021EC7B0: ; 0x021EC7B0
+ arm_func_start MOD04_021EC7B0
+MOD04_021EC7B0: ; 0x021EC7B0
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
bl FUN_020A71F8
@@ -22666,7 +22672,7 @@ FUN_021EC7B0: ; 0x021EC7B0
cmp r0, #3
bne _021EC8BC
mov r0, r6
- bl FUN_021EC5EC
+ bl MOD04_021EC5EC
ldrb r1, [r6, #0xd15]
mov r4, r0
add r0, r1, #1
@@ -22719,7 +22725,7 @@ _021EC888:
streqb r0, [r6, #0xd0b]
_021EC898:
mov r0, r6
- bl FUN_021EC5D0
+ bl MOD04_021EC5D0
mov r2, r0
ldr r1, _021EC8E8 ; =0x00000CB8
mov r0, r5
@@ -22743,8 +22749,8 @@ _021EC8E0:
.align 2, 0
_021EC8E8: .word 0x00000CB8
- arm_func_start FUN_021EC8EC
-FUN_021EC8EC: ; 0x021EC8EC
+ arm_func_start MOD04_021EC8EC
+MOD04_021EC8EC: ; 0x021EC8EC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -22752,7 +22758,7 @@ FUN_021EC8EC: ; 0x021EC8EC
add r3, r5, #0x470
mov r1, #0xc0
mla r4, r2, r1, r3
- bl FUN_021EC608
+ bl MOD04_021EC608
ldr r1, _021ECA04 ; =0x00000CB8
strb r0, [r5, #0xd0d]
add r0, r5, r1
@@ -22763,7 +22769,7 @@ FUN_021EC8EC: ; 0x021EC8EC
ldrb r1, [r5, #0xd0d]
mov r0, r5
add r2, r5, r2
- bl FUN_021EC4D8
+ bl MOD04_021EC4D8
cmp r0, #0
beq _021EC9B0
ldrb r0, [r5, #0xd0b]
@@ -22821,31 +22827,31 @@ _021EC9EC:
.align 2, 0
_021ECA04: .word 0x00000CB8
- arm_func_start FUN_021ECA08
-FUN_021ECA08: ; 0x021ECA08
+ arm_func_start MOD04_021ECA08
+MOD04_021ECA08: ; 0x021ECA08
stmdb sp!, {r4, lr}
- bl FUN_021EB720
+ bl MOD04_021EB720
mov r4, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
cmp r4, #7
beq _021ECA30
cmp r4, #8
beq _021ECA3C
b _021ECA44
_021ECA30:
- bl FUN_021EC8EC
+ bl MOD04_021EC8EC
mov r4, r0
b _021ECA44
_021ECA3C:
- bl FUN_021EC7B0
+ bl MOD04_021EC7B0
mov r4, r0
_021ECA44:
mov r0, r4
ldmia sp!, {r4, pc}
- arm_func_start FUN_021ECA4C
-FUN_021ECA4C: ; 0x021ECA4C
+ arm_func_start MOD04_021ECA4C
+MOD04_021ECA4C: ; 0x021ECA4C
stmdb sp!, {lr}
sub sp, sp, #4
bl FUN_02099A94
@@ -22868,8 +22874,8 @@ _021ECA8C:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021ECA98
-FUN_021ECA98: ; 0x021ECA98
+ arm_func_start MOD04_021ECA98
+MOD04_021ECA98: ; 0x021ECA98
stmdb sp!, {lr}
sub sp, sp, #4
bl FUN_020A71F8
@@ -22911,7 +22917,7 @@ _021ECB10:
b _021ECB2C
_021ECB18:
mov r0, #0
- bl FUN_021EB6F4
+ bl MOD04_021EB6F4
add sp, sp, #4
mvn r0, #0
ldmfd sp!, {pc}
@@ -22920,14 +22926,14 @@ _021ECB2C:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021ECB38
-FUN_021ECB38: ; 0x021ECB38
+ arm_func_start MOD04_021ECB38
+MOD04_021ECB38: ; 0x021ECB38
stmdb sp!, {r4, lr}
mov r4, r0
ldrb r0, [r4]
cmp r0, #0xa
bhi _021ECB80
- bl FUN_021ECA98
+ bl MOD04_021ECA98
cmp r0, #1
moveq r0, #0
streqb r0, [r4]
@@ -22943,15 +22949,15 @@ FUN_021ECB38: ; 0x021ECB38
_021ECB80:
cmp r0, #0xe
bne _021ECB9C
- bl FUN_021DC7F0
- bl FUN_021DC870
+ bl MOD04_021DC7F0
+ bl MOD04_021DC870
mov r0, #0xc
strb r0, [r4]
b _021ECBB4
_021ECB9C:
cmp r0, #0x12
bhs _021ECBB4
- bl FUN_021ECA4C
+ bl MOD04_021ECA4C
cmp r0, #1
moveq r0, #0xa
streqb r0, [r4]
@@ -22959,8 +22965,8 @@ _021ECBB4:
mov r0, #0
ldmia sp!, {r4, pc}
- arm_func_start FUN_021ECBBC
-FUN_021ECBBC: ; 0x021ECBBC
+ arm_func_start MOD04_021ECBBC
+MOD04_021ECBBC: ; 0x021ECBBC
ldrb r1, [r0, #0x16]
cmp r1, #0xa
bhs _021ECC04
@@ -23041,8 +23047,8 @@ _021ECCE0: .word 0xFFFF30F8
_021ECCE4: .word 0xFFFF3094
_021ECCE8: .word 0xFFFF3030
- arm_func_start FUN_021ECCEC
-FUN_021ECCEC: ; 0x021ECCEC
+ arm_func_start MOD04_021ECCEC
+MOD04_021ECCEC: ; 0x021ECCEC
ldrb r0, [r0, #0xb]
cmp r0, #0
ldreq r0, _021ECD00 ; =0xFFFF3C4D
@@ -23052,13 +23058,13 @@ FUN_021ECCEC: ; 0x021ECCEC
_021ECD00: .word 0xFFFF3C4D
_021ECD04: .word 0xFFFF3865
- arm_func_start FUN_021ECD08
-FUN_021ECD08: ; 0x021ECD08
+ arm_func_start MOD04_021ECD08
+MOD04_021ECD08: ; 0x021ECD08
mvn r0, #5
bx lr
- arm_func_start FUN_021ECD10
-FUN_021ECD10: ; 0x021ECD10
+ arm_func_start MOD04_021ECD10
+MOD04_021ECD10: ; 0x021ECD10
cmp r0, #3
addls pc, pc, r0, lsl #2
b _021ECD4C
@@ -23083,49 +23089,49 @@ _021ECD4C:
mov r0, #0
bx lr
- arm_func_start FUN_021ECD54
-FUN_021ECD54: ; 0x021ECD54
+ arm_func_start MOD04_021ECD54
+MOD04_021ECD54: ; 0x021ECD54
stmdb sp!, {r4, lr}
mov r0, #1
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
- bl FUN_021EB6E0
+ bl MOD04_021EB6E0
cmp r0, #4
bge _021ECD78
- bl FUN_021ECD10
+ bl MOD04_021ECD10
ldmia sp!, {r4, pc}
_021ECD78:
cmp r0, #5
bge _021ECD88
- bl FUN_021ECD08
+ bl MOD04_021ECD08
ldmia sp!, {r4, pc}
_021ECD88:
cmp r0, #5
bne _021ECD9C
mov r0, r4
- bl FUN_021ECCEC
+ bl MOD04_021ECCEC
ldmia sp!, {r4, pc}
_021ECD9C:
mov r0, r4
- bl FUN_021ECBBC
+ bl MOD04_021ECBBC
ldmia sp!, {r4, pc}
- arm_func_start FUN_021ECDA8
-FUN_021ECDA8: ; 0x021ECDA8
+ arm_func_start MOD04_021ECDA8
+MOD04_021ECDA8: ; 0x021ECDA8
stmdb sp!, {lr}
sub sp, sp, #4
mov r0, #1
- bl FUN_021EB798
+ bl MOD04_021EB798
add r0, r0, #0xa
- bl FUN_021ECB38
+ bl MOD04_021ECB38
cmp r0, #1
moveq r0, #0x12
movne r0, #0x11
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021ECDD4
-FUN_021ECDD4: ; 0x021ECDD4
+ arm_func_start MOD04_021ECDD4
+MOD04_021ECDD4: ; 0x021ECDD4
ldrb r2, [r0, #0xd12]
mov r3, #0
mov ip, r3
@@ -23146,8 +23152,8 @@ _021ECE10:
mov r0, r3
bx lr
- arm_func_start FUN_021ECE18
-FUN_021ECE18: ; 0x021ECE18
+ arm_func_start MOD04_021ECE18
+MOD04_021ECE18: ; 0x021ECE18
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldrb r1, [r0, #0xd12]
@@ -23192,8 +23198,8 @@ _021ECEA0:
.align 2, 0
_021ECEAC: .word 0x00000447
- arm_func_start FUN_021ECEB0
-FUN_021ECEB0: ; 0x021ECEB0
+ arm_func_start MOD04_021ECEB0
+MOD04_021ECEB0: ; 0x021ECEB0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov r5, #0
mov r4, r0
@@ -23272,12 +23278,12 @@ _021ECFB0:
mov r0, r5
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- arm_func_start FUN_021ECFC8
-FUN_021ECFC8: ; 0x021ECFC8
+ arm_func_start MOD04_021ECFC8
+MOD04_021ECFC8: ; 0x021ECFC8
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
add r4, r6, #0x300
- bl FUN_021ECEB0
+ bl MOD04_021ECEB0
ldrb r1, [r6, #0xd0c]
mov r5, r0
mov r0, #0x24
@@ -23344,13 +23350,13 @@ _021ED0B4: .word 0x0220D4C0
_021ED0B8: .word 0x0220BADC
_021ED0BC: .word 0x0220BAEC
- arm_func_start FUN_021ED0C0
-FUN_021ED0C0: ; 0x021ED0C0
+ arm_func_start MOD04_021ED0C0
+MOD04_021ED0C0: ; 0x021ED0C0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
add r4, r5, #0x300
- bl FUN_021ECEB0
+ bl MOD04_021ECEB0
ldrb r1, [r5, #0xd0c]
mov r5, r0
mov r0, #0x24
@@ -23377,12 +23383,12 @@ _021ED11C:
.align 2, 0
_021ED128: .word 0x0220BAE4
- arm_func_start FUN_021ED12C
-FUN_021ED12C: ; 0x021ED12C
+ arm_func_start MOD04_021ED12C
+MOD04_021ED12C: ; 0x021ED12C
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
ldrb r0, [r0, #0xd0c]
mov r0, r0, lsl #0x1c
movs r0, r0, lsr #0x1c
@@ -23403,13 +23409,13 @@ _021ED170:
.align 2, 0
_021ED178: .word 0x0220BAE4
- arm_func_start FUN_021ED17C
-FUN_021ED17C: ; 0x021ED17C
+ arm_func_start MOD04_021ED17C
+MOD04_021ED17C: ; 0x021ED17C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
cmp r5, #0
beq _021ED1B0
@@ -23424,14 +23430,14 @@ _021ED1B0:
mov r2, #0x144
bl MIi_CpuClear32
mov r0, r4
- bl FUN_021ED0C0
+ bl MOD04_021ED0C0
strb r0, [r4, #0xd10]
b _021ED20C
_021ED1D0:
- bl FUN_021ECE18
+ bl MOD04_021ECE18
strb r0, [r4, #0xd10]
mov r0, r4
- bl FUN_021ECDD4
+ bl MOD04_021ECDD4
strb r0, [r4, #0xd0f]
b _021ED20C
_021ED1E8:
@@ -23442,19 +23448,19 @@ _021ED1E8:
mov r1, #0
mov r0, r4
strb r1, [r4, #0xd0f]
- bl FUN_021ECFC8
+ bl MOD04_021ECFC8
strb r0, [r4, #0xd10]
_021ED20C:
ldrb r0, [r4, #0xd10]
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021ED218
-FUN_021ED218: ; 0x021ED218
+ arm_func_start MOD04_021ED218
+MOD04_021ED218: ; 0x021ED218
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
mov r5, #9
bl FUN_020A71F8
@@ -23494,7 +23500,7 @@ _021ED2A4:
cmp r5, #5
bhi _021ED2F0
mov r0, r5
- bl FUN_021ED8D4
+ bl MOD04_021ED8D4
b _021ED2F0
_021ED2C0:
bl FUN_020A7820
@@ -23505,20 +23511,20 @@ _021ED2C8:
_021ED2D0:
bl FUN_020A722C
mov r0, #4
- bl FUN_021EB6F4
+ bl MOD04_021EB6F4
mov r5, #0x11
b _021ED2F0
_021ED2E4:
mov r0, #0
- bl FUN_021EB6F4
+ bl MOD04_021EB6F4
mov r5, #0x11
_021ED2F0:
mov r0, r5
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021ED2FC
-FUN_021ED2FC: ; 0x021ED2FC
+ arm_func_start MOD04_021ED2FC
+MOD04_021ED2FC: ; 0x021ED2FC
stmdb sp!, {lr}
sub sp, sp, #4
ldr ip, _021ED324 ; =0x0220BAF8
@@ -23532,8 +23538,8 @@ FUN_021ED2FC: ; 0x021ED2FC
.align 2, 0
_021ED324: .word 0x0220BAF8
- arm_func_start FUN_021ED328
-FUN_021ED328: ; 0x021ED328
+ arm_func_start MOD04_021ED328
+MOD04_021ED328: ; 0x021ED328
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0xd00
@@ -23541,11 +23547,11 @@ FUN_021ED328: ; 0x021ED328
cmp r0, #0
beq _021ED364
mov r0, #2
- bl FUN_021ED17C
+ bl MOD04_021ED17C
cmp r0, #0
beq _021ED364
mov r0, #0
- bl FUN_021ED9D0
+ bl MOD04_021ED9D0
strb r0, [r4, #0xd11]
mov r0, #5
ldmia sp!, {r4, pc}
@@ -23557,11 +23563,11 @@ _021ED364:
movhs r0, #6
ldmhsia sp!, {r4, pc}
mov r0, r4
- bl FUN_021ED798
+ bl MOD04_021ED798
ldmia sp!, {r4, pc}
- arm_func_start FUN_021ED388
-FUN_021ED388: ; 0x021ED388
+ arm_func_start MOD04_021ED388
+MOD04_021ED388: ; 0x021ED388
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r1
@@ -23591,11 +23597,11 @@ _021ED3D8:
cmp r2, #0
bne _021ED3FC
mov r0, #5
- bl FUN_021EB6F4
+ bl MOD04_021EB6F4
b _021ED404
_021ED3FC:
mov r0, #6
- bl FUN_021EB6F4
+ bl MOD04_021EB6F4
_021ED404:
add sp, sp, #4
mov r0, #0x11
@@ -23625,8 +23631,8 @@ _021ED448:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021ED468
-FUN_021ED468: ; 0x021ED468
+ arm_func_start MOD04_021ED468
+MOD04_021ED468: ; 0x021ED468
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r1
@@ -23648,12 +23654,12 @@ _021ED494:
beq _021ED4D4
_021ED4B0:
mov r0, #1
- bl FUN_021ED17C
+ bl MOD04_021ED17C
cmp r0, #0
movne r4, #4
bne _021ED524
mov r0, r5
- bl FUN_021ED328
+ bl MOD04_021ED328
mov r4, r0
b _021ED524
_021ED4D4:
@@ -23663,11 +23669,11 @@ _021ED4D4:
cmp r1, #1
movhs r4, #6
bhs _021ED524
- bl FUN_021ED798
+ bl MOD04_021ED798
mov r4, r0
b _021ED524
_021ED4F8:
- bl FUN_021ED328
+ bl MOD04_021ED328
mov r4, r0
b _021ED524
_021ED504:
@@ -23677,17 +23683,17 @@ _021ED504:
cmp r1, #1
movhs r4, #6
bhs _021ED524
- bl FUN_021ED798
+ bl MOD04_021ED798
mov r4, r0
_021ED524:
mov r0, r4
- bl FUN_021ED8D4
+ bl MOD04_021ED8D4
mov r0, r4
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021ED538
-FUN_021ED538: ; 0x021ED538
+ arm_func_start MOD04_021ED538
+MOD04_021ED538: ; 0x021ED538
stmdb sp!, {r4, lr}
mov r4, r0
bl OS_GetTick
@@ -23733,7 +23739,7 @@ _021ED598:
strb r1, [r4, #0xd15]
strb r0, [r4, #0xd0f]
ldrb r0, [r4, #0xd15]
- bl FUN_021ED9D0
+ bl MOD04_021ED9D0
strb r0, [r4, #0xd11]
_021ED5F0:
add r0, r4, #0xd00
@@ -23744,7 +23750,7 @@ _021ED5F0:
mov r0, r4
mov r1, #5
strb r2, [r4, #0xd15]
- bl FUN_021ED468
+ bl MOD04_021ED468
ldmia sp!, {r4, pc}
_021ED618:
bl OS_GetTick
@@ -23758,7 +23764,7 @@ _021ED618:
ldrsb r2, [r2, #0x11]
ldr r0, _021ED654 ; =0x020FF590
mov r3, #0x300000
- bl FUN_021ED2FC
+ bl MOD04_021ED2FC
_021ED648:
mov r0, #5
ldmia sp!, {r4, pc}
@@ -23766,8 +23772,8 @@ _021ED648:
_021ED650: .word 0x000082EA
_021ED654: .word 0x020FF590
- arm_func_start FUN_021ED658
-FUN_021ED658: ; 0x021ED658
+ arm_func_start MOD04_021ED658
+MOD04_021ED658: ; 0x021ED658
stmdb sp!, {r4, lr}
mov r4, r0
bl OS_GetTick
@@ -23824,7 +23830,7 @@ _021ED714:
mov r0, r4
mov r1, #4
strb r2, [r4, #0xd0f]
- bl FUN_021ED468
+ bl MOD04_021ED468
ldmia sp!, {r4, pc}
_021ED734:
bl OS_GetTick
@@ -23844,7 +23850,7 @@ _021ED734:
add r1, r1, ip
sub r2, r2, #1
mov r3, #0x300000
- bl FUN_021ED2FC
+ bl MOD04_021ED2FC
_021ED77C:
mov r0, #4
ldmia sp!, {r4, pc}
@@ -23855,8 +23861,8 @@ _021ED78C: .word 0x00000D0F
_021ED790: .word 0x00000474
_021ED794: .word 0x0000047C
- arm_func_start FUN_021ED798
-FUN_021ED798: ; 0x021ED798
+ arm_func_start MOD04_021ED798
+MOD04_021ED798: ; 0x021ED798
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #0
@@ -23870,14 +23876,14 @@ FUN_021ED798: ; 0x021ED798
and r1, r1, #0xf
orr r1, r2, r1, lsl #4
strb r1, [r4, #0xd0b]
- bl FUN_021ED17C
+ bl MOD04_021ED17C
mov r0, #1
strb r0, [r4, #0xd11]
mov r0, #3
ldmia sp!, {r4, pc}
- arm_func_start FUN_021ED7E0
-FUN_021ED7E0: ; 0x021ED7E0
+ arm_func_start MOD04_021ED7E0
+MOD04_021ED7E0: ; 0x021ED7E0
stmdb sp!, {r4, lr}
mov r4, r0
bl OS_GetTick
@@ -23903,7 +23909,7 @@ FUN_021ED7E0: ; 0x021ED7E0
blt _021ED84C
mov r0, r4
mov r1, #3
- bl FUN_021ED468
+ bl MOD04_021ED468
ldmia sp!, {r4, pc}
_021ED84C:
bl OS_GetTick
@@ -23914,7 +23920,7 @@ _021ED84C:
ldr r0, _021ED87C ; =0x020FF590
ldr r1, _021ED880 ; =0x020FF598
mov r3, #0x200000
- bl FUN_021ED2FC
+ bl MOD04_021ED2FC
_021ED870:
mov r0, #3
ldmia sp!, {r4, pc}
@@ -23923,8 +23929,8 @@ _021ED878: .word 0x000082EA
_021ED87C: .word 0x020FF590
_021ED880: .word 0x020FF598
- arm_func_start FUN_021ED884
-FUN_021ED884: ; 0x021ED884
+ arm_func_start MOD04_021ED884
+MOD04_021ED884: ; 0x021ED884
stmdb sp!, {r4, lr}
mov r4, r0
bl OS_GetTick
@@ -23940,20 +23946,20 @@ FUN_021ED884: ; 0x021ED884
ldr r0, _021ED8CC ; =0x020FF590
ldr r1, _021ED8D0 ; =0x020FF598
mov r3, #0x200000
- bl FUN_021ED2FC
+ bl MOD04_021ED2FC
mov r0, #3
ldmia sp!, {r4, pc}
.align 2, 0
_021ED8CC: .word 0x020FF590
_021ED8D0: .word 0x020FF598
- arm_func_start FUN_021ED8D4
-FUN_021ED8D4: ; 0x021ED8D4
+ arm_func_start MOD04_021ED8D4
+MOD04_021ED8D4: ; 0x021ED8D4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
cmp r5, #3
beq _021ED90C
@@ -23972,7 +23978,7 @@ _021ED90C:
ldr r0, _021ED9C0 ; =0x020FF590
ldr r1, _021ED9C4 ; =0x020FF598
mov r3, #0x200000
- bl FUN_021ED2FC
+ bl MOD04_021ED2FC
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021ED938:
@@ -23993,7 +23999,7 @@ _021ED938:
add r1, r1, ip
sub r2, r2, #1
mov r3, #0x300000
- bl FUN_021ED2FC
+ bl MOD04_021ED2FC
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021ED988:
@@ -24008,7 +24014,7 @@ _021ED988:
ldrsb r2, [r2, #0x11]
ldr r0, _021ED9C0 ; =0x020FF590
mov r3, #0x300000
- bl FUN_021ED2FC
+ bl MOD04_021ED2FC
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
@@ -24017,12 +24023,12 @@ _021ED9C4: .word 0x020FF598
_021ED9C8: .word 0x00000474
_021ED9CC: .word 0x0000047C
- arm_func_start FUN_021ED9D0
-FUN_021ED9D0: ; 0x021ED9D0
+ arm_func_start MOD04_021ED9D0
+MOD04_021ED9D0: ; 0x021ED9D0
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
add r0, r0, #0xd00
ldrh r2, [r0, #0x16]
cmp r2, #0
@@ -24049,12 +24055,12 @@ _021EDA24:
mvn r0, #0
ldmia sp!, {r4, pc}
- arm_func_start FUN_021EDA3C
-FUN_021EDA3C: ; 0x021EDA3C
+ arm_func_start MOD04_021EDA3C
+MOD04_021EDA3C: ; 0x021EDA3C
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
add r0, r0, #0xd00
cmp r4, #0xd
movhi r4, #0xd
@@ -24065,14 +24071,14 @@ FUN_021EDA3C: ; 0x021EDA3C
strh r1, [r0, #0x16]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021EDA70
-FUN_021EDA70: ; 0x021EDA70
+ arm_func_start MOD04_021EDA70
+MOD04_021EDA70: ; 0x021EDA70
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r5, r0
- bl FUN_021EB720
+ bl MOD04_021EB720
mov r4, r0
bl FUN_020A71F8
cmp r4, #2
@@ -24080,7 +24086,7 @@ FUN_021EDA70: ; 0x021EDA70
cmp r0, #3
bne _021EDAB0
mov r0, r5
- bl FUN_021ED884
+ bl MOD04_021ED884
mov r4, r0
b _021EDB38
_021EDAB0:
@@ -24088,7 +24094,7 @@ _021EDAB0:
bne _021EDACC
mov r0, r5
mov r1, r4
- bl FUN_021ED388
+ bl MOD04_021ED388
mov r4, r0
b _021EDB38
_021EDACC:
@@ -24099,42 +24105,42 @@ _021EDACC:
_021EDADC:
mov r0, r5
mov r1, r4
- bl FUN_021ED388
+ bl MOD04_021ED388
mov r4, r0
cmp r4, #7
beq _021EDB38
cmp r4, #3
bne _021EDB0C
mov r0, r5
- bl FUN_021ED7E0
+ bl MOD04_021ED7E0
mov r4, r0
b _021EDB38
_021EDB0C:
cmp r4, #4
bne _021EDB24
mov r0, r5
- bl FUN_021ED658
+ bl MOD04_021ED658
mov r4, r0
b _021EDB38
_021EDB24:
cmp r4, #5
bne _021EDB38
mov r0, r5
- bl FUN_021ED538
+ bl MOD04_021ED538
mov r4, r0
_021EDB38:
mov r0, r4
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EDB44
-FUN_021EDB44: ; 0x021EDB44
+ arm_func_start MOD04_021EDB44
+MOD04_021EDB44: ; 0x021EDB44
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
bl FUN_020A71F8
mov r4, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
cmp r4, #1
bne _021EDBB0
ldrb r1, [r0, #0xd0a]
@@ -24143,8 +24149,8 @@ FUN_021EDB44: ; 0x021EDB44
str r0, [sp, #4]
str r0, [sp, #8]
str r0, [sp, #0xc]
- bl FUN_021ED17C
- ldr r1, _021EDBC8 ; =FUN_021EC44C
+ bl MOD04_021ED17C
+ ldr r1, _021EDBC8 ; =MOD04_021EC44C
add r0, sp, #0
bl FUN_020A7BD4
cmp r0, #1
@@ -24153,7 +24159,7 @@ FUN_021EDB44: ; 0x021EDB44
blt _021EDBBC
_021EDB9C:
mov r0, #1
- bl FUN_021EB6F4
+ bl MOD04_021EB6F4
add sp, sp, #0x10
mov r0, #0x11
ldmia sp!, {r4, pc}
@@ -24166,10 +24172,10 @@ _021EDBBC:
add sp, sp, #0x10
ldmia sp!, {r4, pc}
.align 2, 0
-_021EDBC8: .word FUN_021EC44C
+_021EDBC8: .word MOD04_021EC44C
- arm_func_start FUN_021EDBCC
-FUN_021EDBCC: ; 0x021EDBCC
+ arm_func_start MOD04_021EDBCC
+MOD04_021EDBCC: ; 0x021EDBCC
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r0
@@ -24177,7 +24183,7 @@ FUN_021EDBCC: ; 0x021EDBCC
cmp r0, #6
addhs sp, sp, #8
ldmhsia sp!, {r4, pc}
- bl FUN_021EB6AC
+ bl MOD04_021EB6AC
add r4, r4, r0, lsl #8
ldrb r0, [r4, #0xc0]
ldrb r2, [r4, #0xc8]
@@ -24194,10 +24200,10 @@ FUN_021EDBCC: ; 0x021EDBCC
addeq sp, sp, #8
ldmeqia sp!, {r4, pc}
add r0, r4, #0xc8
- bl FUN_021EDCA8
+ bl MOD04_021EDCA8
str r0, [sp]
add r0, r4, #0xcc
- bl FUN_021EDCA8
+ bl MOD04_021EDCA8
str r0, [sp, #4]
add r0, sp, #0
add r1, sp, #4
@@ -24205,8 +24211,8 @@ FUN_021EDBCC: ; 0x021EDBCC
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021EDC54
-FUN_021EDC54: ; 0x021EDC54
+ arm_func_start MOD04_021EDC54
+MOD04_021EDC54: ; 0x021EDC54
rsb r0, r0, #0x20
cmp r0, #0
mvn r3, #0
@@ -24231,8 +24237,8 @@ _021EDC78:
orr r0, r1, r0
bx lr
- arm_func_start FUN_021EDCA8
-FUN_021EDCA8: ; 0x021EDCA8
+ arm_func_start MOD04_021EDCA8
+MOD04_021EDCA8: ; 0x021EDCA8
ldrb r1, [r0]
ldrb r2, [r0, #1]
mov r3, #0
@@ -24255,8 +24261,8 @@ FUN_021EDCA8: ; 0x021EDCA8
orr r0, r1, r0
bx lr
- arm_func_start FUN_021EDCFC
-FUN_021EDCFC: ; 0x021EDCFC
+ arm_func_start MOD04_021EDCFC
+MOD04_021EDCFC: ; 0x021EDCFC
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r4, r2
@@ -24272,7 +24278,7 @@ FUN_021EDCFC: ; 0x021EDCFC
ldrb r0, [r5, #0xd0d]
cmp r0, #6
ldmhsia sp!, {r4, r5, r6, pc}
- bl FUN_021EB6AC
+ bl MOD04_021EB6AC
add r5, r5, r0, lsl #8
ldrb r0, [r5, #0xc0]
cmp r0, #0
@@ -24280,19 +24286,19 @@ FUN_021EDCFC: ; 0x021EDCFC
mov r0, #0
str r0, [r4, #0xc]
add r0, r5, #0xc0
- bl FUN_021EDCA8
+ bl MOD04_021EDCA8
str r0, [r4, #0x10]
ldrb r0, [r5, #0xd0]
- bl FUN_021EDC54
+ bl MOD04_021EDC54
str r0, [r4, #0x14]
add r0, r5, #0xc4
- bl FUN_021EDCA8
+ bl MOD04_021EDCA8
str r0, [r4, #0x18]
add r0, r5, #0xc8
- bl FUN_021EDCA8
+ bl MOD04_021EDCA8
str r0, [r4, #0x1c]
add r0, r5, #0xcc
- bl FUN_021EDCA8
+ bl MOD04_021EDCA8
str r0, [r4, #0x20]
ldmia sp!, {r4, r5, r6, pc}
_021EDD94:
@@ -24308,8 +24314,8 @@ _021EDD94:
.align 2, 0
_021EDDB8: .word 0x0220BB2C
- arm_func_start FUN_021EDDBC
-FUN_021EDDBC: ; 0x021EDDBC
+ arm_func_start MOD04_021EDDBC
+MOD04_021EDDBC: ; 0x021EDDBC
stmdb sp!, {lr}
sub sp, sp, #4
bl FUN_02099A94
@@ -24332,35 +24338,35 @@ _021EDDFC:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EDE08
-FUN_021EDE08: ; 0x021EDE08
+ arm_func_start MOD04_021EDE08
+MOD04_021EDE08: ; 0x021EDE08
stmdb sp!, {lr}
sub sp, sp, #4
ldrb r0, [r0, #0xd0d]
- bl FUN_021EB6BC
+ bl MOD04_021EB6BC
mov r0, #0x10
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EDE24
-FUN_021EDE24: ; 0x021EDE24
+ arm_func_start MOD04_021EDE24
+MOD04_021EDE24: ; 0x021EDE24
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r0, #1
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
- bl FUN_021DC7AC
+ bl MOD04_021DC7AC
movs r5, r0
beq _021EDE88
ldrb r0, [r6, #0xd0d]
- bl FUN_021EB6AC
+ bl MOD04_021EB6AC
ldrb r1, [r4, #0x15]
cmp r1, r0
bne _021EDE60
- bl FUN_021DC794
+ bl MOD04_021DC794
str r0, [r4, #0x10]
_021EDE60:
- bl FUN_021DC870
+ bl MOD04_021DC870
cmp r5, #0xb
moveq r0, #0xf
ldmeqia sp!, {r4, r5, r6, pc}
@@ -24374,32 +24380,32 @@ _021EDE88:
mov r0, #0xe
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021EDE90
-FUN_021EDE90: ; 0x021EDE90
+ arm_func_start MOD04_021EDE90
+MOD04_021EDE90: ; 0x021EDE90
stmdb sp!, {lr}
sub sp, sp, #4
mov r0, #8
- bl FUN_021EB798
- bl FUN_021DC970
+ bl MOD04_021EB798
+ bl MOD04_021DC970
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0xe
ldmeqia sp!, {pc}
mov r0, #3
- bl FUN_021EB6F4
+ bl MOD04_021EB6F4
mov r0, #0x11
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EDEC8
-FUN_021EDEC8: ; 0x021EDEC8
+ arm_func_start MOD04_021EDEC8
+MOD04_021EDEC8: ; 0x021EDEC8
stmdb sp!, {r4, lr}
mov r4, r0
bl FUN_0209A60C
cmp r0, #0
beq _021EDF00
mov r0, r4
- bl FUN_021EDBCC
+ bl MOD04_021EDBCC
ldrb r0, [r4, #0xd0c]
mov r0, r0, lsl #0x1a
mov r0, r0, lsr #0x1e
@@ -24432,20 +24438,20 @@ _021EDF00:
.align 2, 0
_021EDF54: .word 0x01FF6210
- arm_func_start FUN_021EDF58
-FUN_021EDF58: ; 0x021EDF58
+ arm_func_start MOD04_021EDF58
+MOD04_021EDF58: ; 0x021EDF58
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r0, #1
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r5, r0
mov r0, #4
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
mov r0, r5
mov r1, r6
mov r2, r4
- bl FUN_021EDCFC
+ bl MOD04_021EDCFC
ldr r1, _021EDFB8 ; =0x021C8CC4
mov r2, #4
mov r0, r4
@@ -24455,20 +24461,20 @@ FUN_021EDF58: ; 0x021EDF58
moveq r0, #0xc
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, #2
- bl FUN_021EB6F4
+ bl MOD04_021EB6F4
mov r0, #0x11
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021EDFB8: .word 0x021C8CC4
- arm_func_start FUN_021EDFBC
-FUN_021EDFBC: ; 0x021EDFBC
+ arm_func_start MOD04_021EDFBC
+MOD04_021EDFBC: ; 0x021EDFBC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
- bl FUN_021EB720
+ bl MOD04_021EB720
mov r5, r0
mov r0, #0x10
- bl FUN_021EB798
+ bl MOD04_021EB798
mov r4, r0
bl FUN_020A71F8
cmp r0, #9
@@ -24486,30 +24492,30 @@ _021EDFF4: ; jump table
b _021EE048 ; case 5
_021EE00C:
mov r0, r4
- bl FUN_021EDF58
+ bl MOD04_021EDF58
mov r5, r0
b _021EE0B4
_021EE01C:
mov r0, r4
- bl FUN_021EDEC8
+ bl MOD04_021EDEC8
mov r5, r0
b _021EE0B4
_021EE02C:
- bl FUN_021EDE90
+ bl MOD04_021EDE90
mov r5, r0
b _021EE0B4
_021EE038:
mov r0, r4
- bl FUN_021EDE24
+ bl MOD04_021EDE24
mov r5, r0
b _021EE0B4
_021EE048:
mov r0, r4
- bl FUN_021EDE08
+ bl MOD04_021EDE08
mov r5, r0
b _021EE0B4
_021EE058:
- bl FUN_021EDDBC
+ bl MOD04_021EDDBC
mov r5, r0
b _021EE0B4
_021EE064:
@@ -24520,16 +24526,16 @@ _021EE064:
cmp r5, #0xf
bne _021EE0A0
mov r0, r4
- bl FUN_021EDE08
+ bl MOD04_021EDE08
mov r5, r0
b _021EE0B4
_021EE08C:
- bl FUN_021EDDBC
+ bl MOD04_021EDDBC
mov r5, r0
b _021EE0B4
_021EE098:
- bl FUN_021DC7F0
- bl FUN_021DC870
+ bl MOD04_021DC7F0
+ bl MOD04_021DC870
_021EE0A0:
ldrb r0, [r4, #0xd13]
mov r1, #2
@@ -24541,8 +24547,8 @@ _021EE0B4:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EE0C0
-FUN_021EE0C0: ; 0x021EE0C0
+ arm_func_start MOD04_021EE0C0
+MOD04_021EE0C0: ; 0x021EE0C0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x1c
mov r4, #3
@@ -24574,7 +24580,7 @@ _021EE120:
_021EE128:
add r0, r7, r6
ldrb r0, [sl, r0]
- bl FUN_021EE234
+ bl MOD04_021EE234
rsb r2, r6, #3
mov r1, #6
mul r1, r2, r1
@@ -24612,7 +24618,7 @@ _021EE1B0:
ldr r0, [sp]
add r0, r0, r4
ldrb r0, [sl, r0]
- bl FUN_021EE234
+ bl MOD04_021EE234
rsb r1, r4, #3
mul r2, r1, r6
orr r5, r5, r0, lsl r2
@@ -24646,8 +24652,8 @@ _021EE228:
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_021EE234
-FUN_021EE234: ; 0x021EE234
+ arm_func_start MOD04_021EE234
+MOD04_021EE234: ; 0x021EE234
cmp r0, #0x41
blo _021EE248
cmp r0, #0x5a
@@ -24680,8 +24686,8 @@ _021EE278:
rsb r0, r0, #0
bx lr
- arm_func_start FUN_021EE2A4
-FUN_021EE2A4: ; 0x021EE2A4
+ arm_func_start MOD04_021EE2A4
+MOD04_021EE2A4: ; 0x021EE2A4
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
mov r4, r1
@@ -24805,8 +24811,8 @@ _021EE460: .word 0x0220BB84
_021EE464: .word 0x0220D4E0
_021EE468: .word 0x0220BB94
- arm_func_start FUN_021EE46C
-FUN_021EE46C: ; 0x021EE46C
+ arm_func_start MOD04_021EE46C
+MOD04_021EE46C: ; 0x021EE46C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x6c
mov r5, r0
@@ -24827,8 +24833,8 @@ FUN_021EE46C: ; 0x021EE46C
add sp, sp, #0x6c
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EE4B8
-FUN_021EE4B8: ; 0x021EE4B8
+ arm_func_start MOD04_021EE4B8
+MOD04_021EE4B8: ; 0x021EE4B8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x1c
ldr lr, _021EE5AC ; =0x0220BBA4
@@ -24845,7 +24851,7 @@ _021EE4D0:
mov r1, r4
mov r2, #0x20
mov r3, #0x18
- bl FUN_021EE0C0
+ bl MOD04_021EE0C0
mov r3, #0
ldr r0, _021EE5B0 ; =0x0220D4E4
_021EE500:
@@ -24901,16 +24907,16 @@ _021EE5AC: .word 0x0220BBA4
_021EE5B0: .word 0x0220D4E4
_021EE5B4: .word 0x0220D4D8
- arm_func_start FUN_021EE5B8
-FUN_021EE5B8: ; 0x021EE5B8
- ldr ip, _021EE5C4 ; =FUN_021EE2A4
+ arm_func_start MOD04_021EE5B8
+MOD04_021EE5B8: ; 0x021EE5B8
+ ldr ip, _021EE5C4 ; =MOD04_021EE2A4
add r0, r0, #0xc
bx ip
.align 2, 0
-_021EE5C4: .word FUN_021EE2A4
+_021EE5C4: .word MOD04_021EE2A4
- arm_func_start FUN_021EE5C8
-FUN_021EE5C8: ; 0x021EE5C8
+ arm_func_start MOD04_021EE5C8
+MOD04_021EE5C8: ; 0x021EE5C8
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, _021EE5F0 ; =0x0220D540
@@ -24924,13 +24930,13 @@ FUN_021EE5C8: ; 0x021EE5C8
.align 2, 0
_021EE5F0: .word 0x0220D540
- arm_func_start FUN_021EE5F4
-FUN_021EE5F4: ; 0x021EE5F4
+ arm_func_start MOD04_021EE5F4
+MOD04_021EE5F4: ; 0x021EE5F4
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
mov r4, r1
add r1, sp, #0
- bl FUN_021EE4B8
+ bl MOD04_021EE4B8
ldr r1, _021EE63C ; =0x0220D54C
add r0, sp, #0
mov r2, #8
@@ -24947,25 +24953,25 @@ FUN_021EE5F4: ; 0x021EE5F4
.align 2, 0
_021EE63C: .word 0x0220D54C
- arm_func_start FUN_021EE640
-FUN_021EE640: ; 0x021EE640
+ arm_func_start MOD04_021EE640
+MOD04_021EE640: ; 0x021EE640
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
mov r4, r1
add r1, sp, #0
- bl FUN_021EE4B8
+ bl MOD04_021EE4B8
add r0, sp, #0
mov r1, r4
- bl FUN_021EE46C
+ bl MOD04_021EE46C
add sp, sp, #0x18
ldmia sp!, {r4, pc}
- arm_func_start FUN_021EE668
-FUN_021EE668: ; 0x021EE668
+ arm_func_start MOD04_021EE668
+MOD04_021EE668: ; 0x021EE668
stmdb sp!, {lr}
sub sp, sp, #0x1c
add r1, sp, #0
- bl FUN_021EE4B8
+ bl MOD04_021EE4B8
ldr r1, _021EE69C ; =0x0220D54C
add r0, sp, #0
mov r2, #8
@@ -24978,8 +24984,8 @@ FUN_021EE668: ; 0x021EE668
.align 2, 0
_021EE69C: .word 0x0220D54C
- arm_func_start FUN_021EE6A0
-FUN_021EE6A0: ; 0x021EE6A0
+ arm_func_start MOD04_021EE6A0
+MOD04_021EE6A0: ; 0x021EE6A0
stmdb sp!, {lr}
sub sp, sp, #0x5c
ldr r0, _021EE7D4 ; =0x02210EE0
@@ -24993,7 +24999,7 @@ FUN_021EE6A0: ; 0x021EE6A0
streq r0, [r1]
addeq sp, sp, #0x5c
ldmeqia sp!, {pc}
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
beq _021EE774
add r0, sp, #8
@@ -25005,17 +25011,17 @@ FUN_021EE6A0: ; 0x021EE6A0
ldr r0, [r0]
mov r2, #0x40
mov r3, #0
- bl FUN_021EFC40
+ bl MOD04_021EFC40
mov r1, r0
add r0, sp, #0x18
add r2, sp, #8
add r3, sp, #0x14
- bl FUN_021EE7DC
+ bl MOD04_021EE7DC
cmp r0, #0
bne _021EE774
ldr r0, _021EE7D4 ; =0x02210EE0
ldr r0, [r0]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
ldr r1, [sp, #0x14]
ands r0, r1, #1
ldrne r0, _021EE7D8 ; =0x02210E5C
@@ -25035,7 +25041,7 @@ _021EE764:
ldr r0, [r0]
ldmfd sp!, {pc}
_021EE774:
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r1, _021EE7D4 ; =0x02210EE0
ldr r2, [r1, #0x50]
add r2, r2, #0x7d0
@@ -25045,14 +25051,14 @@ _021EE774:
cmp r0, #1
bne _021EE7B4
ldr r0, [r1]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
ldr r1, _021EE7D8 ; =0x02210E5C
mov r0, #1
str r0, [r1]
add sp, sp, #0x5c
ldmfd sp!, {pc}
_021EE7B4:
- bl FUN_021EE990
+ bl MOD04_021EE990
ldr r0, _021EE7D4 ; =0x02210EE0
ldr r1, [r0, #0x54]
add r1, r1, #1
@@ -25065,8 +25071,8 @@ _021EE7C8:
_021EE7D4: .word 0x02210EE0
_021EE7D8: .word 0x02210E5C
- arm_func_start FUN_021EE7DC
-FUN_021EE7DC: ; 0x021EE7DC
+ arm_func_start MOD04_021EE7DC
+MOD04_021EE7DC: ; 0x021EE7DC
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
cmp r1, #7
@@ -25116,8 +25122,8 @@ _021EE88C: .word 0x02210EE8
_021EE890: .word 0x02210EE0
_021EE894: .word 0x0220D558
- arm_func_start FUN_021EE898
-FUN_021EE898: ; 0x021EE898
+ arm_func_start MOD04_021EE898
+MOD04_021EE898: ; 0x021EE898
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x44
mov r4, r0
@@ -25127,7 +25133,7 @@ FUN_021EE898: ; 0x021EE898
ldr r0, _021EE978 ; =0x02210EE0
mvn r1, #0
str r1, [r0]
- bl FUN_021F024C
+ bl MOD04_021F024C
ldr r0, _021EE97C ; =0x02210E60
ldrsb r5, [r0]
cmp r5, #0
@@ -25142,14 +25148,14 @@ _021EE8E0:
ldr r1, _021EE984 ; =0x00006CFC
ldr r2, _021EE988 ; =0x02210EE4
addeq r0, sp, #0
- bl FUN_021EE9E0
+ bl MOD04_021EE9E0
cmp r0, #0
addeq sp, sp, #0x44
ldmeqia sp!, {r4, r5, pc}
mov r0, #2
mov r1, r0
mov r2, #0
- bl FUN_021EFDB8
+ bl MOD04_021EFDB8
ldr r2, _021EE978 ; =0x02210EE0
mvn r1, #0
cmp r0, r1
@@ -25168,7 +25174,7 @@ _021EE8E0:
ldr r0, _021EE978 ; =0x02210EE0
add r1, r5, #6
str r1, [r0, #0x4c]
- bl FUN_021EE990
+ bl MOD04_021EE990
ldr r0, _021EE978 ; =0x02210EE0
mov r1, #0
str r1, [r0, #0x54]
@@ -25183,8 +25189,8 @@ _021EE984: .word 0x00006CFC
_021EE988: .word 0x02210EE4
_021EE98C: .word 0x02210EF1
- arm_func_start FUN_021EE990
-FUN_021EE990: ; 0x021EE990
+ arm_func_start MOD04_021EE990
+MOD04_021EE990: ; 0x021EE990
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr r1, _021EE9D4 ; =0x02210EE4
@@ -25196,8 +25202,8 @@ FUN_021EE990: ; 0x021EE990
ldr r2, [r1, #0x4c]
ldr r1, _021EE9DC ; =0x02210EEC
mov r3, #0
- bl FUN_021EFBD4
- bl FUN_021F025C
+ bl MOD04_021EFBD4
+ bl MOD04_021F025C
ldr r1, _021EE9D8 ; =0x02210EE0
str r0, [r1, #0x50]
add sp, sp, #0xc
@@ -25207,8 +25213,8 @@ _021EE9D4: .word 0x02210EE4
_021EE9D8: .word 0x02210EE0
_021EE9DC: .word 0x02210EEC
- arm_func_start FUN_021EE9E0
-FUN_021EE9E0: ; 0x021EE9E0
+ arm_func_start MOD04_021EE9E0
+MOD04_021EE9E0: ; 0x021EE9E0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r1, r1, lsl #0x10
@@ -25223,7 +25229,7 @@ FUN_021EE9E0: ; 0x021EE9E0
orr r1, r2, r1
strh r1, [r4, #2]
mov r5, r0
- bl FUN_021EFB38
+ bl MOD04_021EFB38
str r0, [r4, #4]
ldr r1, [r4, #4]
mvn r0, #0
@@ -25244,8 +25250,8 @@ _021EEA58:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EEA64
-FUN_021EEA64: ; 0x021EEA64
+ arm_func_start MOD04_021EEA64
+MOD04_021EEA64: ; 0x021EEA64
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
ldr r7, [sp, #0x2c]
@@ -25276,8 +25282,8 @@ _021EEAC4:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_021EEAD0
-FUN_021EEAD0: ; 0x021EEAD0
+ arm_func_start MOD04_021EEAD0
+MOD04_021EEAD0: ; 0x021EEAD0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov r8, r2
mov sl, r0
@@ -25303,26 +25309,26 @@ _021EEB20:
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- arm_func_start FUN_021EEB28
-FUN_021EEB28: ; 0x021EEB28
+ arm_func_start MOD04_021EEB28
+MOD04_021EEB28: ; 0x021EEB28
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
- bl FUN_021EF06C
+ bl MOD04_021EF06C
subs r4, r0, #1
addmi sp, sp, #4
ldmmiia sp!, {r4, r5, pc}
_021EEB44:
mov r0, r5
mov r1, r4
- bl FUN_021EED84
+ bl MOD04_021EED84
subs r4, r4, #1
bpl _021EEB44
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EEB60
-FUN_021EEB60: ; 0x021EEB60
+ arm_func_start MOD04_021EEB60
+MOD04_021EEB60: ; 0x021EEB60
stmdb sp!, {r4, r5, r6, r7, r8, lr}
movs r7, r1
mov r8, r0
@@ -25340,7 +25346,7 @@ _021EEB88:
_021EEB94:
mov r0, r8
mov r1, r5
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r1, r6
mov r4, r0
blx r7
@@ -25357,8 +25363,8 @@ _021EEBC8: .word 0x0220D580
_021EEBCC: .word 0x0220D584
_021EEBD0: .word 0x00000121
- arm_func_start FUN_021EEBD4
-FUN_021EEBD4: ; 0x021EEBD4
+ arm_func_start MOD04_021EEBD4
+MOD04_021EEBD4: ; 0x021EEBD4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r6, r1
@@ -25378,7 +25384,7 @@ _021EEC00:
_021EEC10:
mov r0, r7
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r1, r5
blx r6
subs r4, r4, #1
@@ -25389,8 +25395,8 @@ _021EEC10:
_021EEC34: .word 0x0220D580
_021EEC38: .word 0x0220D584
- arm_func_start FUN_021EEC3C
-FUN_021EEC3C: ; 0x021EEC3C
+ arm_func_start MOD04_021EEC3C
+MOD04_021EEC3C: ; 0x021EEC3C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov ip, #1
@@ -25412,7 +25418,7 @@ _021EEC78:
cmp r1, #0
beq _021EECB0
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
add r1, sp, #8
str r5, [sp]
str r1, [sp, #4]
@@ -25420,17 +25426,17 @@ _021EEC78:
ldr r3, [r7, #8]
mov r0, r6
sub r2, r8, r4
- bl FUN_021EEA64
+ bl MOD04_021EEA64
b _021EECD0
_021EECB0:
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
str r5, [sp]
mov r1, r0
ldr r3, [r7, #8]
mov r0, r6
sub r2, r8, r4
- bl FUN_021EEAD0
+ bl MOD04_021EEAD0
_021EECD0:
cmp r0, #0
beq _021EECFC
@@ -25448,8 +25454,8 @@ _021EECFC:
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
- arm_func_start FUN_021EED08
-FUN_021EED08: ; 0x021EED08
+ arm_func_start MOD04_021EED08
+MOD04_021EED08: ; 0x021EED08
ldr ip, _021EED24 ; =0x020E1888
mov r2, r0
mov r3, r1
@@ -25460,8 +25466,8 @@ FUN_021EED08: ; 0x021EED08
.align 2, 0
_021EED24: .word 0x020E1888
- arm_func_start FUN_021EED28
-FUN_021EED28: ; 0x021EED28
+ arm_func_start MOD04_021EED28
+MOD04_021EED28: ; 0x021EED28
stmdb sp!, {r4, r5, r6, lr}
movs r4, r2
mov r6, r0
@@ -25479,18 +25485,18 @@ _021EED48:
_021EED5C:
mov r0, r6
mov r1, r4
- bl FUN_021EF240
+ bl MOD04_021EF240
mov r0, r6
mov r1, r5
mov r2, r4
- bl FUN_021EF1B8
+ bl MOD04_021EF1B8
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021EED7C: .word 0x0220D590
_021EED80: .word 0x0220D584
- arm_func_start FUN_021EED84
-FUN_021EED84: ; 0x021EED84
+ arm_func_start MOD04_021EED84
+MOD04_021EED84: ; 0x021EED84
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r4, r1
@@ -25508,18 +25514,18 @@ _021EEDA4:
_021EEDB8:
mov r0, r5
mov r1, r4
- bl FUN_021EF240
+ bl MOD04_021EF240
mov r0, r5
mov r1, r4
- bl FUN_021EEDE0
+ bl MOD04_021EEDE0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021EEDD8: .word 0x0220D590
_021EEDDC: .word 0x0220D584
- arm_func_start FUN_021EEDE0
-FUN_021EEDE0: ; 0x021EEDE0
+ arm_func_start MOD04_021EEDE0
+MOD04_021EEDE0: ; 0x021EEDE0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r7, r1
@@ -25541,11 +25547,11 @@ _021EEE14:
bge _021EEE58
mov r0, r4
mov r1, r7
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r5, r0
mov r0, r4
add r1, r7, #1
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r1, r0
ldr r3, [r4, #8]
sub r0, r6, r7
@@ -25562,8 +25568,8 @@ _021EEE58:
_021EEE6C: .word 0x0220D590
_021EEE70: .word 0x0220D584
- arm_func_start FUN_021EEE74
-FUN_021EEE74: ; 0x021EEE74
+ arm_func_start MOD04_021EEE74
+MOD04_021EEE74: ; 0x021EEE74
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
movs r4, r2
@@ -25583,7 +25589,7 @@ _021EEEA0:
ldr r2, [r6]
ldr r3, [r6, #8]
mov r0, r5
- bl FUN_021EEA64
+ bl MOD04_021EEA64
ldr r2, [r6, #0x14]
ldr r1, [r6, #8]
sub r0, r0, r2
@@ -25591,15 +25597,15 @@ _021EEEA0:
mov r2, r0
mov r0, r6
mov r1, r5
- bl FUN_021EEEF0
+ bl MOD04_021EEEF0
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021EEEE8: .word 0x0220D5B0
_021EEEEC: .word 0x0220D584
- arm_func_start FUN_021EEEF0
-FUN_021EEEF0: ; 0x021EEEF0
+ arm_func_start MOD04_021EEEF0
+MOD04_021EEEF0: ; 0x021EEEF0
stmdb sp!, {r4, r5, r6, r7, r8, lr}
movs r4, r2
mov r6, r0
@@ -25620,7 +25626,7 @@ _021EEF24:
cmp r1, r0
bne _021EEF3C
mov r0, r6
- bl FUN_021EF1E4
+ bl MOD04_021EF1E4
_021EEF3C:
ldr r0, [r6]
add r0, r0, #1
@@ -25631,11 +25637,11 @@ _021EEF3C:
bge _021EEF8C
mov r0, r6
add r1, r4, #1
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r7, r0
mov r0, r6
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r1, r0
ldr r3, [r6, #8]
sub r0, r8, r4
@@ -25646,14 +25652,14 @@ _021EEF8C:
mov r0, r6
mov r1, r5
mov r2, r4
- bl FUN_021EF1B8
+ bl MOD04_021EF1B8
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_021EEFA0: .word 0x0220D5BC
_021EEFA4: .word 0x0220D584
- arm_func_start FUN_021EEFA8
-FUN_021EEFA8: ; 0x021EEFA8
+ arm_func_start MOD04_021EEFA8
+MOD04_021EEFA8: ; 0x021EEFA8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r5, r0
@@ -25671,15 +25677,15 @@ _021EEFD0:
ldr r2, [r5]
mov r0, r5
mov r1, r4
- bl FUN_021EEEF0
+ bl MOD04_021EEEF0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021EEFF4: .word 0x0220D5DC
_021EEFF8: .word 0x0220D584
- arm_func_start FUN_021EEFFC
-FUN_021EEFFC: ; 0x021EEFFC
+ arm_func_start MOD04_021EEFFC
+MOD04_021EEFFC: ; 0x021EEFFC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r4, r1
@@ -25714,13 +25720,13 @@ _021EF050:
_021EF064: .word 0x0220D590
_021EF068: .word 0x0220D584
- arm_func_start FUN_021EF06C
-FUN_021EF06C: ; 0x021EF06C
+ arm_func_start MOD04_021EF06C
+MOD04_021EF06C: ; 0x021EF06C
ldr r0, [r0]
bx lr
- arm_func_start FUN_021EF074
-FUN_021EF074: ; 0x021EF074
+ arm_func_start MOD04_021EF074
+MOD04_021EF074: ; 0x021EF074
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r5, r0
@@ -25738,31 +25744,31 @@ _021EF098:
_021EF0A8:
mov r0, r5
mov r1, r4
- bl FUN_021EF240
+ bl MOD04_021EF240
ldr r0, [r5]
add r4, r4, #1
cmp r4, r0
blt _021EF0A8
_021EF0C4:
ldr r0, [r5, #0x14]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, r5
- bl FUN_021DD82C
+ bl MOD04_021DD82C
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021EF0DC: .word 0x0220D5DC
_021EF0E0: .word 0x0220D584
- arm_func_start FUN_021EF0E4
-FUN_021EF0E4: ; 0x021EF0E4
+ arm_func_start MOD04_021EF0E4
+MOD04_021EF0E4: ; 0x021EF0E4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
mov r0, #0x18
mov r6, r1
mov r5, r2
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021EF11C
ldr r0, _021EF1A8 ; =0x0220D5DC
@@ -25792,7 +25798,7 @@ _021EF138:
beq _021EF198
ldr r0, [r4, #8]
mul r0, r1, r0
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r4, #0x14]
ldr r0, [r4, #0x14]
cmp r0, #0
@@ -25815,22 +25821,22 @@ _021EF1AC: .word 0x0220D584
_021EF1B0: .word 0x0220D5E4
_021EF1B4: .word 0x0220D5F0
- arm_func_start FUN_021EF1B8
-FUN_021EF1B8: ; 0x021EF1B8
+ arm_func_start MOD04_021EF1B8
+MOD04_021EF1B8: ; 0x021EF1B8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r1
mov r5, r0
mov r1, r2
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r2, [r5, #8]
mov r1, r4
bl memcpy
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EF1E4
-FUN_021EF1E4: ; 0x021EF1E4
+ arm_func_start MOD04_021EF1E4
+MOD04_021EF1E4: ; 0x021EF1E4
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #4]
@@ -25841,7 +25847,7 @@ FUN_021EF1E4: ; 0x021EF1E4
ldr r1, [r4, #8]
ldr r0, [r4, #0x14]
mul r1, r2, r1
- bl FUN_021DD844
+ bl MOD04_021DD844
str r0, [r4, #0x14]
ldr r0, [r4, #0x14]
cmp r0, #0
@@ -25856,20 +25862,20 @@ FUN_021EF1E4: ; 0x021EF1E4
_021EF238: .word 0x0220D5F0
_021EF23C: .word 0x0220D584
- arm_func_start FUN_021EF240
-FUN_021EF240: ; 0x021EF240
+ arm_func_start MOD04_021EF240
+MOD04_021EF240: ; 0x021EF240
stmdb sp!, {r4, lr}
mov r4, r0
ldr r2, [r4, #0x10]
cmp r2, #0
ldmeqia sp!, {r4, pc}
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r1, [r4, #0x10]
blx r1
ldmia sp!, {r4, pc}
- arm_func_start FUN_021EF264
-FUN_021EF264: ; 0x021EF264
+ arm_func_start MOD04_021EF264
+MOD04_021EF264: ; 0x021EF264
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r6, r1
@@ -25891,7 +25897,7 @@ _021EF2A0:
mov r1, r6
ldr r0, [r0, r4, lsl #2]
mov r2, r5
- bl FUN_021EEB60
+ bl MOD04_021EEB60
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {r4, r5, r6, r7, pc}
@@ -25907,8 +25913,8 @@ _021EF2D0:
_021EF2DC: .word 0x0220D5FC
_021EF2E0: .word 0x0220D600
- arm_func_start FUN_021EF2E4
-FUN_021EF2E4: ; 0x021EF2E4
+ arm_func_start MOD04_021EF2E4
+MOD04_021EF2E4: ; 0x021EF2E4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r6, r1
@@ -25931,7 +25937,7 @@ _021EF324:
mov r1, r6
ldr r0, [r0, r4, lsl #2]
mov r2, r5
- bl FUN_021EEBD4
+ bl MOD04_021EEBD4
ldr r0, [r7, #4]
add r4, r4, #1
cmp r4, r0
@@ -25942,8 +25948,8 @@ _021EF324:
_021EF350: .word 0x0220D5FC
_021EF354: .word 0x0220D600
- arm_func_start FUN_021EF358
-FUN_021EF358: ; 0x021EF358
+ arm_func_start MOD04_021EF358
+MOD04_021EF358: ; 0x021EF358
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
movs r6, r0
@@ -25970,7 +25976,7 @@ _021EF380:
ldr r0, [r1, r4, lsl #2]
ldr r2, [r6, #0x10]
mov r1, r5
- bl FUN_021EEC3C
+ bl MOD04_021EEC3C
mov r1, r0
mvn r0, #0
cmp r1, r0
@@ -25979,15 +25985,15 @@ _021EF380:
ldmeqia sp!, {r4, r5, r6, pc}
ldr r0, [r6]
ldr r0, [r0, r4, lsl #2]
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021EF3EC: .word 0x0220D60C
_021EF3F0: .word 0x0220D600
- arm_func_start FUN_021EF3F4
-FUN_021EF3F4: ; 0x021EF3F4
+ arm_func_start MOD04_021EF3F4
+MOD04_021EF3F4: ; 0x021EF3F4
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
movs r6, r0
@@ -26014,7 +26020,7 @@ _021EF41C:
ldr r0, [r1, r4, lsl #2]
ldr r2, [r6, #0x10]
mov r1, r5
- bl FUN_021EEC3C
+ bl MOD04_021EEC3C
mov r1, r0
mvn r0, #0
cmp r1, r0
@@ -26023,7 +26029,7 @@ _021EF41C:
ldmeqia sp!, {r4, r5, r6, pc}
ldr r0, [r6]
ldr r0, [r0, r4, lsl #2]
- bl FUN_021EED84
+ bl MOD04_021EED84
mov r0, #1
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
@@ -26031,8 +26037,8 @@ _021EF41C:
_021EF48C: .word 0x0220D60C
_021EF490: .word 0x0220D600
- arm_func_start FUN_021EF494
-FUN_021EF494: ; 0x021EF494
+ arm_func_start MOD04_021EF494
+MOD04_021EF494: ; 0x021EF494
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
movs r6, r0
@@ -26058,7 +26064,7 @@ _021EF4BC:
ldr r0, [r1, r4, lsl #2]
ldr r2, [r6, #0x10]
mov r1, r5
- bl FUN_021EEC3C
+ bl MOD04_021EEC3C
mov r2, r0
mvn r0, #0
cmp r2, r0
@@ -26066,22 +26072,22 @@ _021EF4BC:
ldr r0, [r6]
mov r1, r5
ldr r0, [r0, r4, lsl #2]
- bl FUN_021EEFA8
+ bl MOD04_021EEFA8
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
_021EF520:
ldr r0, [r6]
mov r1, r5
ldr r0, [r0, r4, lsl #2]
- bl FUN_021EED28
+ bl MOD04_021EED28
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021EF538: .word 0x0220D60C
_021EF53C: .word 0x0220D600
- arm_func_start FUN_021EF540
-FUN_021EF540: ; 0x021EF540
+ arm_func_start MOD04_021EF540
+MOD04_021EF540: ; 0x021EF540
stmdb sp!, {r4, r5, r6, lr}
movs r6, r0
mov r4, #0
@@ -26102,7 +26108,7 @@ _021EF564:
_021EF580:
ldr r0, [r6]
ldr r0, [r0, r5, lsl #2]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
ldr r1, [r6, #4]
add r5, r5, #1
cmp r5, r1
@@ -26115,8 +26121,8 @@ _021EF5A0:
_021EF5A8: .word 0x0220D60C
_021EF5AC: .word 0x0220D600
- arm_func_start FUN_021EF5B0
-FUN_021EF5B0: ; 0x021EF5B0
+ arm_func_start MOD04_021EF5B0
+MOD04_021EF5B0: ; 0x021EF5B0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r5, r0
@@ -26137,24 +26143,24 @@ _021EF5D4:
_021EF5F0:
ldr r0, [r5]
ldr r0, [r0, r4, lsl #2]
- bl FUN_021EF074
+ bl MOD04_021EF074
ldr r0, [r5, #4]
add r4, r4, #1
cmp r4, r0
blt _021EF5F0
_021EF60C:
ldr r0, [r5]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, r5
- bl FUN_021DD82C
+ bl MOD04_021DD82C
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021EF624: .word 0x0220D60C
_021EF628: .word 0x0220D600
- arm_func_start FUN_021EF62C
-FUN_021EF62C: ; 0x021EF62C
+ arm_func_start MOD04_021EF62C
+MOD04_021EF62C: ; 0x021EF62C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
movs r7, r3
mov sl, r0
@@ -26194,7 +26200,7 @@ _021EF698:
bl __msl_assertion_failed
_021EF6B4:
mov r0, #0x14
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r5, r0
bne _021EF6D8
ldr r0, _021EF764 ; =0x0220D60C
@@ -26204,7 +26210,7 @@ _021EF6B4:
bl __msl_assertion_failed
_021EF6D8:
mov r0, sb, lsl #2
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r5]
ldr r0, [r5]
cmp r0, #0
@@ -26222,7 +26228,7 @@ _021EF710:
mov r0, sl
mov r1, r8
mov r2, r6
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
ldr r1, [r5]
str r0, [r1, r4, lsl #2]
add r4, r4, #1
@@ -26245,8 +26251,8 @@ _021EF760: .word 0x0220D630
_021EF764: .word 0x0220D60C
_021EF768: .word 0x0220D63C
- arm_func_start FUN_021EF76C
-FUN_021EF76C: ; 0x021EF76C
+ arm_func_start MOD04_021EF76C
+MOD04_021EF76C: ; 0x021EF76C
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr ip, [sp, #0x10]
@@ -26254,12 +26260,12 @@ FUN_021EF76C: ; 0x021EF76C
mov r3, r2
mov r2, #4
str ip, [sp, #4]
- bl FUN_021EF62C
+ bl MOD04_021EF62C
add sp, sp, #0xc
ldmfd sp!, {pc}
- arm_func_start FUN_021EF794
-FUN_021EF794: ; 0x021EF794
+ arm_func_start MOD04_021EF794
+MOD04_021EF794: ; 0x021EF794
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x68
mov r6, r0
@@ -26276,12 +26282,12 @@ FUN_021EF794: ; 0x021EF794
bl FUN_020A8BA4
add r0, sp, #0
mov r1, r4
- bl FUN_021EF7E0
+ bl MOD04_021EF7E0
add sp, sp, #0x68
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021EF7E0
-FUN_021EF7E0: ; 0x021EF7E0
+ arm_func_start MOD04_021EF7E0
+MOD04_021EF7E0: ; 0x021EF7E0
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r6, #0
mov r8, r0
@@ -26301,8 +26307,8 @@ _021EF7F8:
.align 2, 0
_021EF81C: .word 0x0220D64C
- arm_func_start FUN_021EF820
-FUN_021EF820: ; 0x021EF820
+ arm_func_start MOD04_021EF820
+MOD04_021EF820: ; 0x021EF820
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov r7, r1
mov r6, r2
@@ -26332,7 +26338,7 @@ _021EF86C:
movlt r2, r6
mov r0, sl
mov r1, r7
- bl FUN_021EF95C
+ bl MOD04_021EF95C
sub sb, sb, #3
cmp sb, #0
add r7, r7, #4
@@ -26393,8 +26399,8 @@ _021EF950: .word 0x0220BBC4
_021EF954: .word 0x55555556
_021EF958: .word 0x00000003
- arm_func_start FUN_021EF95C
-FUN_021EF95C: ; 0x021EF95C
+ arm_func_start MOD04_021EF95C
+MOD04_021EF95C: ; 0x021EF95C
stmdb sp!, {lr}
sub sp, sp, #4
cmp r2, #0
@@ -26440,23 +26446,23 @@ _021EF9AC:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EF9FC
-FUN_021EF9FC: ; 0x021EF9FC
+ arm_func_start MOD04_021EF9FC
+MOD04_021EF9FC: ; 0x021EF9FC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
subs r4, r1, r5
addeq sp, sp, #4
ldmeqia sp!, {r4, r5, pc}
- bl FUN_021EFA48
+ bl MOD04_021EFA48
mov r1, r4
bl _s32_div_f
add r0, r1, r5
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EFA2C
-FUN_021EFA2C: ; 0x021EFA2C
+ arm_func_start MOD04_021EFA2C
+MOD04_021EFA2C: ; 0x021EFA2C
cmp r0, #0
bicne r1, r0, #0x80000000
ldr r0, _021EFA44 ; =0x0220D654
@@ -26466,13 +26472,13 @@ FUN_021EFA2C: ; 0x021EFA2C
.align 2, 0
_021EFA44: .word 0x0220D654
- arm_func_start FUN_021EFA48
-FUN_021EFA48: ; 0x021EFA48
+ arm_func_start MOD04_021EFA48
+MOD04_021EFA48: ; 0x021EFA48
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021EFA6C ; =0x0220D654
ldr r0, [r0]
- bl FUN_021EFA70
+ bl MOD04_021EFA70
ldr r1, _021EFA6C ; =0x0220D654
str r0, [r1]
add sp, sp, #4
@@ -26480,8 +26486,8 @@ FUN_021EFA48: ; 0x021EFA48
.align 2, 0
_021EFA6C: .word 0x0220D654
- arm_func_start FUN_021EFA70
-FUN_021EFA70: ; 0x021EFA70
+ arm_func_start MOD04_021EFA70
+MOD04_021EFA70: ; 0x021EFA70
ldr r1, _021EFABC ; =0x0000FFFF
ldr r2, _021EFAC0 ; =0x000041A7
mov r3, r0, lsr #0x10
@@ -26506,8 +26512,8 @@ _021EFABC: .word 0x0000FFFF
_021EFAC0: .word 0x000041A7
_021EFAC4: .word 0x00007FFF
- arm_func_start FUN_021EFAC8
-FUN_021EFAC8: ; 0x021EFAC8
+ arm_func_start MOD04_021EFAC8
+MOD04_021EFAC8: ; 0x021EFAC8
stmdb sp!, {r4, lr}
mov r4, r0
bl OS_IsTickAvailable
@@ -26535,16 +26541,16 @@ _021EFB1C: .word 0x0220D678
_021EFB20: .word 0x00000667
_021EFB24: .word 0x01FF6210
- arm_func_start FUN_021EFB28
-FUN_021EFB28: ; 0x021EFB28
+ arm_func_start MOD04_021EFB28
+MOD04_021EFB28: ; 0x021EFB28
ldr r0, _021EFB34 ; =0x02210F3C
ldr r0, [r0]
bx lr
.align 2, 0
_021EFB34: .word 0x02210F3C
- arm_func_start FUN_021EFB38
-FUN_021EFB38: ; 0x021EFB38
+ arm_func_start MOD04_021EFB38
+MOD04_021EFB38: ; 0x021EFB38
stmdb sp!, {lr}
sub sp, sp, #4
add r1, sp, #0
@@ -26555,8 +26561,8 @@ FUN_021EFB38: ; 0x021EFB38
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFB5C
-FUN_021EFB5C: ; 0x021EFB5C
+ arm_func_start MOD04_021EFB5C
+MOD04_021EFB5C: ; 0x021EFB5C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r2
@@ -26567,21 +26573,21 @@ FUN_021EFB5C: ; 0x021EFB5C
ldrb r2, [r5]
mvn r1, #0
str r2, [r4]
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EFB90
-FUN_021EFB90: ; 0x021EFB90
- ldr ip, _021EFBA0 ; =FUN_021EFDD4
+ arm_func_start MOD04_021EFB90
+MOD04_021EFB90: ; 0x021EFB90
+ ldr ip, _021EFBA0 ; =MOD04_021EFDD4
mov r0, #0
mvn r1, #0
bx ip
.align 2, 0
-_021EFBA0: .word FUN_021EFDD4
+_021EFBA0: .word MOD04_021EFDD4
- arm_func_start FUN_021EFBA4
-FUN_021EFBA4: ; 0x021EFBA4
+ arm_func_start MOD04_021EFBA4
+MOD04_021EFBA4: ; 0x021EFBA4
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, [sp, #8]
@@ -26591,12 +26597,12 @@ FUN_021EFBA4: ; 0x021EFBA4
bl MI_CpuFill8
mov r0, #0
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFBD4
-FUN_021EFBD4: ; 0x021EFBD4
+ arm_func_start MOD04_021EFBD4
+MOD04_021EFBD4: ; 0x021EFBD4
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
ldr r5, [sp, #0x20]
@@ -26615,22 +26621,22 @@ _021EFBE8:
str ip, [sp]
bl FUN_0209A7D0
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021EFC24
-FUN_021EFC24: ; 0x021EFC24
+ arm_func_start MOD04_021EFC24
+MOD04_021EFC24: ; 0x021EFC24
stmdb sp!, {lr}
sub sp, sp, #4
bl FUN_0209A858
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFC40
-FUN_021EFC40: ; 0x021EFC40
+ arm_func_start MOD04_021EFC40
+MOD04_021EFC40: ; 0x021EFC40
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r4, [sp, #0x14]
@@ -26642,22 +26648,22 @@ FUN_021EFC40: ; 0x021EFC40
ldrb r2, [r5]
mvn r1, #0
str r2, [r4]
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EFC78
-FUN_021EFC78: ; 0x021EFC78
+ arm_func_start MOD04_021EFC78
+MOD04_021EFC78: ; 0x021EFC78
stmdb sp!, {lr}
sub sp, sp, #4
bl FUN_0209A91C
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFC94
-FUN_021EFC94: ; 0x021EFC94
+ arm_func_start MOD04_021EFC94
+MOD04_021EFC94: ; 0x021EFC94
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r2
@@ -26668,22 +26674,22 @@ FUN_021EFC94: ; 0x021EFC94
ldrb r2, [r5]
mvn r1, #0
str r2, [r4]
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021EFCC8
-FUN_021EFCC8: ; 0x021EFCC8
+ arm_func_start MOD04_021EFCC8
+MOD04_021EFCC8: ; 0x021EFCC8
stmdb sp!, {lr}
sub sp, sp, #4
bl FUN_0209A588
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFCE4
-FUN_021EFCE4: ; 0x021EFCE4
+ arm_func_start MOD04_021EFCE4
+MOD04_021EFCE4: ; 0x021EFCE4
stmdb sp!, {r4, lr}
sub sp, sp, #8
add r4, sp, #0
@@ -26699,12 +26705,12 @@ _021EFCF4:
strb r2, [sp]
bl FUN_0209A944
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021EFD28
-FUN_021EFD28: ; 0x021EFD28
+ arm_func_start MOD04_021EFD28
+MOD04_021EFD28: ; 0x021EFD28
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldrh r3, [r1, #2]
@@ -26725,42 +26731,42 @@ _021EFD4C:
strb r2, [sp]
bl FUN_0209A9A4
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021EFD80
-FUN_021EFD80: ; 0x021EFD80
+ arm_func_start MOD04_021EFD80
+MOD04_021EFD80: ; 0x021EFD80
stmdb sp!, {lr}
sub sp, sp, #4
bl thunk_FUN_020995dc
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFD9C
-FUN_021EFD9C: ; 0x021EFD9C
+ arm_func_start MOD04_021EFD9C
+MOD04_021EFD9C: ; 0x021EFD9C
stmdb sp!, {lr}
sub sp, sp, #4
bl thunk_FUN_0209996c
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFDB8
-FUN_021EFDB8: ; 0x021EFDB8
+ arm_func_start MOD04_021EFDB8
+MOD04_021EFDB8: ; 0x021EFDB8
stmdb sp!, {lr}
sub sp, sp, #4
bl FUN_0209A9D0
mvn r1, #0
- bl FUN_021EFDD4
+ bl MOD04_021EFDD4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFDD4
-FUN_021EFDD4: ; 0x021EFDD4
+ arm_func_start MOD04_021EFDD4
+MOD04_021EFDD4: ; 0x021EFDD4
cmp r0, #0
ldrlt r2, _021EFDE8 ; =0x02210F3C
strlt r0, [r2]
@@ -26769,8 +26775,8 @@ FUN_021EFDD4: ; 0x021EFDD4
.align 2, 0
_021EFDE8: .word 0x02210F3C
- arm_func_start FUN_021EFDEC
-FUN_021EFDEC: ; 0x021EFDEC
+ arm_func_start MOD04_021EFDEC
+MOD04_021EFDEC: ; 0x021EFDEC
ldr r3, [r0]
mov r1, r3, lsr #0x18
mov r0, r3, lsr #8
@@ -26807,8 +26813,8 @@ _021EFE68:
mov r0, #0
bx lr
- arm_func_start FUN_021EFE70
-FUN_021EFE70: ; 0x021EFE70
+ arm_func_start MOD04_021EFE70
+MOD04_021EFE70: ; 0x021EFE70
stmdb sp!, {r4, lr}
ldr r4, _021EFEE8 ; =0x0220D684
ldr r1, _021EFEEC ; =0x02210F40
@@ -26846,38 +26852,38 @@ _021EFEF0: .word 0x02210F38
_021EFEF4: .word 0x02210F64
_021EFEF8: .word 0x02210F50
- arm_func_start FUN_021EFEFC
-FUN_021EFEFC: ; 0x021EFEFC
+ arm_func_start MOD04_021EFEFC
+MOD04_021EFEFC: ; 0x021EFEFC
stmdb sp!, {lr}
sub sp, sp, #4
mov r1, #0
add r2, sp, #0
mov r3, r1
str r1, [sp]
- bl FUN_021EFF5C
+ bl MOD04_021EFF5C
cmp r0, #1
ldreq r0, [sp]
movne r0, #0
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFF2C
-FUN_021EFF2C: ; 0x021EFF2C
+ arm_func_start MOD04_021EFF2C
+MOD04_021EFF2C: ; 0x021EFF2C
stmdb sp!, {lr}
sub sp, sp, #4
mov r2, #0
add r1, sp, #0
mov r3, r2
str r2, [sp]
- bl FUN_021EFF5C
+ bl MOD04_021EFF5C
cmp r0, #1
ldreq r0, [sp]
movne r0, #0
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021EFF5C
-FUN_021EFF5C: ; 0x021EFF5C
+ arm_func_start MOD04_021EFF5C
+MOD04_021EFF5C: ; 0x021EFF5C
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
movs r6, r1
@@ -26946,8 +26952,8 @@ _021F0044:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021F0054
-FUN_021F0054: ; 0x021F0054
+ arm_func_start MOD04_021F0054
+MOD04_021F0054: ; 0x021F0054
stmdb sp!, {lr}
sub sp, sp, #0xc
mov r1, #4
@@ -26957,7 +26963,7 @@ FUN_021F0054: ; 0x021F0054
ldr r2, _021F0098 ; =0x00001001
add r3, sp, #4
str ip, [sp]
- bl FUN_021EFBA4
+ bl MOD04_021EFBA4
mvn r1, #0
cmp r0, r1
ldrne r1, [sp, #4]
@@ -26968,8 +26974,8 @@ FUN_021F0054: ; 0x021F0054
_021F0094: .word 0x0000FFFF
_021F0098: .word 0x00001001
- arm_func_start FUN_021F009C
-FUN_021F009C: ; 0x021F009C
+ arm_func_start MOD04_021F009C
+MOD04_021F009C: ; 0x021F009C
stmdb sp!, {lr}
sub sp, sp, #0xc
mov r1, #4
@@ -26979,7 +26985,7 @@ FUN_021F009C: ; 0x021F009C
ldr r2, _021F00E0 ; =0x00001002
add r3, sp, #4
str ip, [sp]
- bl FUN_021EFBA4
+ bl MOD04_021EFBA4
mvn r1, #0
cmp r0, r1
ldrne r1, [sp, #4]
@@ -26990,8 +26996,8 @@ FUN_021F009C: ; 0x021F009C
_021F00DC: .word 0x0000FFFF
_021F00E0: .word 0x00001002
- arm_func_start FUN_021F00E4
-FUN_021F00E4: ; 0x021F00E4
+ arm_func_start MOD04_021F00E4
+MOD04_021F00E4: ; 0x021F00E4
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {lr}
sub sp, sp, #4
@@ -27000,7 +27006,7 @@ FUN_021F00E4: ; 0x021F00E4
ldr r2, _021F012C ; =0x00001001
add r3, sp, #0xc
str ip, [sp]
- bl FUN_021EFB90
+ bl MOD04_021EFB90
mvn r1, #0
cmp r0, r1
movne r0, #1
@@ -27013,8 +27019,8 @@ FUN_021F00E4: ; 0x021F00E4
_021F0128: .word 0x0000FFFF
_021F012C: .word 0x00001001
- arm_func_start FUN_021F0130
-FUN_021F0130: ; 0x021F0130
+ arm_func_start MOD04_021F0130
+MOD04_021F0130: ; 0x021F0130
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {lr}
sub sp, sp, #4
@@ -27023,7 +27029,7 @@ FUN_021F0130: ; 0x021F0130
ldr r2, _021F0178 ; =0x00001002
add r3, sp, #0xc
str ip, [sp]
- bl FUN_021EFB90
+ bl MOD04_021EFB90
mvn r1, #0
cmp r0, r1
movne r0, #1
@@ -27036,8 +27042,8 @@ FUN_021F0130: ; 0x021F0130
_021F0174: .word 0x0000FFFF
_021F0178: .word 0x00001002
- arm_func_start FUN_021F017C
-FUN_021F017C: ; 0x021F017C
+ arm_func_start MOD04_021F017C
+MOD04_021F017C: ; 0x021F017C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r1
@@ -27057,8 +27063,8 @@ FUN_021F017C: ; 0x021F017C
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021F01C4
-FUN_021F01C4: ; 0x021F01C4
+ arm_func_start MOD04_021F01C4
+MOD04_021F01C4: ; 0x021F01C4
ldrsb r3, [r0]
mov r2, r0
cmp r3, #0
@@ -27081,8 +27087,8 @@ _021F01FC:
.align 2, 0
_021F0204: .word 0x0210420C
- arm_func_start FUN_021F0208
-FUN_021F0208: ; 0x021F0208
+ arm_func_start MOD04_021F0208
+MOD04_021F0208: ; 0x021F0208
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r5, r0
@@ -27091,7 +27097,7 @@ FUN_021F0208: ; 0x021F0208
ldmeqia sp!, {r4, r5, pc}
bl strlen
add r0, r0, #1
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
beq _021F023C
mov r1, r5
@@ -27101,23 +27107,23 @@ _021F023C:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021F0248
-FUN_021F0248: ; 0x021F0248
+ arm_func_start MOD04_021F0248
+MOD04_021F0248: ; 0x021F0248
bx lr
- arm_func_start FUN_021F024C
-FUN_021F024C: ; 0x021F024C
+ arm_func_start MOD04_021F024C
+MOD04_021F024C: ; 0x021F024C
bx lr
- arm_func_start FUN_021F0250
-FUN_021F0250: ; 0x021F0250
+ arm_func_start MOD04_021F0250
+MOD04_021F0250: ; 0x021F0250
ldr ip, _021F0258 ; =0x020CAFC0
bx ip
.align 2, 0
_021F0258: .word 0x020CAFC0
- arm_func_start FUN_021F025C
-FUN_021F025C: ; 0x021F025C
+ arm_func_start MOD04_021F025C
+MOD04_021F025C: ; 0x021F025C
stmdb sp!, {lr}
sub sp, sp, #4
bl OS_IsTickAvailable
@@ -27144,8 +27150,8 @@ _021F02AC: .word 0x0220D678
_021F02B0: .word 0x00000109
_021F02B4: .word 0x000082EA
- arm_func_start FUN_021F02B8
-FUN_021F02B8: ; 0x021F02B8
+ arm_func_start MOD04_021F02B8
+MOD04_021F02B8: ; 0x021F02B8
stmdb sp!, {lr}
sub sp, sp, #4
mov r3, r2
@@ -27168,7 +27174,7 @@ _021F02E4:
cmp r2, #4
bne _021F0318
ldr r1, _021F0344 ; =0x0220D690
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #2
ldmfd sp!, {pc}
@@ -27176,21 +27182,21 @@ _021F0318:
cmp r3, #0
bne _021F0334
ldr r1, _021F0348 ; =0x0220D6E4
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #2
ldmfd sp!, {pc}
_021F0334:
mov r2, #1
- bl FUN_021F1A64
+ bl MOD04_021F1A64
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021F0344: .word 0x0220D690
_021F0348: .word 0x0220D6E4
- arm_func_start FUN_021F034C
-FUN_021F034C: ; 0x021F034C
+ arm_func_start MOD04_021F034C
+MOD04_021F034C: ; 0x021F034C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x204
movs r7, r0
@@ -27214,7 +27220,7 @@ _021F037C:
cmp r1, #4
bne _021F03B0
ldr r1, _021F0560 ; =0x0220D690
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x204
mov r0, #2
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -27222,7 +27228,7 @@ _021F03B0:
cmp r2, #0
bne _021F03CC
ldr r1, _021F0564 ; =0x0220D6F8
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x204
mov r0, #2
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -27230,7 +27236,7 @@ _021F03CC:
cmp r5, #0
bne _021F03E8
ldr r1, _021F0568 ; =0x0220D710
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x204
mov r0, #2
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -27238,7 +27244,7 @@ _021F03E8:
mov r1, r2
add r0, sp, #0
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldrsb r0, [sp]
cmp r0, #0
beq _021F0424
@@ -27255,7 +27261,7 @@ _021F0424:
add r0, sp, #0x100
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
add r0, sp, #0x100
ldrsb r0, [r0]
cmp r0, #0
@@ -27290,47 +27296,47 @@ _021F04A0:
add r0, r4, #0x218
mov r2, #0x100
str r6, [r4, #0x214]
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
add r1, sp, #0x100
add r0, r4, #0x318
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r2, _021F056C ; =0x0220D728
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r7
mov r2, r6
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F0570 ; =0x0220D6C0
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x198]
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F0574 ; =0x0220D734
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r7
add r1, r4, #0x1f4
add r2, sp, #0
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F0578 ; =0x0220D744
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r7
add r1, r4, #0x1f4
add r2, sp, #0x100
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F057C ; =0x0220D6CC
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0
add sp, sp, #0x204
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -27344,8 +27350,8 @@ _021F0574: .word 0x0220D734
_021F0578: .word 0x0220D744
_021F057C: .word 0x0220D6CC
- arm_func_start FUN_021F0580
-FUN_021F0580: ; 0x021F0580
+ arm_func_start MOD04_021F0580
+MOD04_021F0580: ; 0x021F0580
stmdb sp!, {lr}
sub sp, sp, #4
cmp r0, #0
@@ -27367,12 +27373,12 @@ _021F05A8:
cmp r2, #4
bne _021F05DC
ldr r1, _021F05F0 ; =0x0220D690
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #2
ldmfd sp!, {pc}
_021F05DC:
- bl FUN_021F17B0
+ bl MOD04_021F17B0
cmp r0, #0
moveq r0, #0
add sp, sp, #4
@@ -27380,8 +27386,8 @@ _021F05DC:
.align 2, 0
_021F05F0: .word 0x0220D690
- arm_func_start FUN_021F05F4
-FUN_021F05F4: ; 0x021F05F4
+ arm_func_start MOD04_021F05F4
+MOD04_021F05F4: ; 0x021F05F4
stmdb sp!, {lr}
sub sp, sp, #4
cmp r0, #0
@@ -27400,7 +27406,7 @@ _021F061C:
movne r0, #0
ldmneia sp!, {pc}
add r2, sp, #0
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
beq _021F0658
ldr r0, [sp]
@@ -27414,8 +27420,8 @@ _021F0658:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021F0664
-FUN_021F0664: ; 0x021F0664
+ arm_func_start MOD04_021F0664
+MOD04_021F0664: ; 0x021F0664
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r2
@@ -27436,7 +27442,7 @@ _021F0690:
strne r0, [r4]
ldmneia sp!, {r4, pc}
add r2, sp, #0
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
beq _021F06D0
ldr r0, [sp]
@@ -27453,8 +27459,8 @@ _021F06D8:
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F06E4
-FUN_021F06E4: ; 0x021F06E4
+ arm_func_start MOD04_021F06E4
+MOD04_021F06E4: ; 0x021F06E4
stmdb sp!, {r4, r5, r6, lr}
movs r5, r0
mov r4, r2
@@ -27479,7 +27485,7 @@ _021F072C:
cmp r4, #0
bne _021F0744
ldr r1, _021F0814 ; =0x0220D750
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
_021F0744:
@@ -27491,16 +27497,16 @@ _021F0744:
_021F0758:
ldr r1, _021F0818 ; =0x0220D760
mov r0, r5
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
_021F076C:
- bl FUN_021F8430
+ bl MOD04_021F8430
movs r6, r0
bne _021F078C
ldr r1, _021F0818 ; =0x0220D760
mov r0, r5
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
_021F078C:
@@ -27524,7 +27530,7 @@ _021F07AC:
beq _021F07DC
add r0, r4, #8
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F07DC:
ldr r1, [r5, #0xc]
cmp r1, #0
@@ -27533,7 +27539,7 @@ _021F07DC:
beq _021F07FC
add r0, r4, #0x108
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F07FC:
ldr r1, [r5, #0x10]
mov r0, #0
@@ -27548,8 +27554,8 @@ _021F081C: .word 0x0220D770
_021F0820: .word 0x0220D77C
_021F0824: .word 0x000005CF
- arm_func_start FUN_021F0828
-FUN_021F0828: ; 0x021F0828
+ arm_func_start MOD04_021F0828
+MOD04_021F0828: ; 0x021F0828
cmp r0, #0
beq _021F083C
ldr r2, [r0]
@@ -27568,8 +27574,8 @@ _021F0844:
streq r2, [r1]
bx lr
- arm_func_start FUN_021F0864
-FUN_021F0864: ; 0x021F0864
+ arm_func_start MOD04_021F0864
+MOD04_021F0864: ; 0x021F0864
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r4, r0
@@ -27591,13 +27597,13 @@ _021F088C:
cmp r2, #4
bne _021F08C0
ldr r1, _021F0940 ; =0x0220D690
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #2
ldmia sp!, {r4, r5, pc}
_021F08C0:
add r2, sp, #0
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -27614,17 +27620,17 @@ _021F08C0:
cmp r0, #0
bgt _021F0934
ldr r0, [r1, #0x10]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [sp]
mov r1, #0
str r1, [r0, #0x10]
ldr r0, [sp]
- bl FUN_021F83EC
+ bl MOD04_021F83EC
cmp r0, #0
beq _021F0934
ldr r1, [sp]
mov r0, r4
- bl FUN_021F85A0
+ bl MOD04_021F85A0
_021F0934:
mov r0, #0
add sp, sp, #4
@@ -27632,8 +27638,8 @@ _021F0934:
.align 2, 0
_021F0940: .word 0x0220D690
- arm_func_start FUN_021F0944
-FUN_021F0944: ; 0x021F0944
+ arm_func_start MOD04_021F0944
+MOD04_021F0944: ; 0x021F0944
stmdb sp!, {lr}
sub sp, sp, #4
cmp r0, #0
@@ -27655,19 +27661,19 @@ _021F096C:
cmp r2, #4
bne _021F09A0
ldr r1, _021F09AC ; =0x0220D690
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #2
ldmfd sp!, {pc}
_021F09A0:
- bl FUN_021F1984
+ bl MOD04_021F1984
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021F09AC: .word 0x0220D690
- arm_func_start FUN_021F09B0
-FUN_021F09B0: ; 0x021F09B0
+ arm_func_start MOD04_021F09B0
+MOD04_021F09B0: ; 0x021F09B0
stmdb sp!, {r4, r5, r6, lr}
ldr ip, _021F0B0C ; =0x00000408
sub sp, sp, ip
@@ -27693,7 +27699,7 @@ _021F09E4:
cmp r1, #4
bne _021F0A20
ldr r1, _021F0B10 ; =0x0220D690
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F0B0C ; =0x00000408
mov r0, #2
add sp, sp, ip
@@ -27702,7 +27708,7 @@ _021F0A20:
cmp r2, #0
bne _021F0A40
ldr r1, _021F0B14 ; =0x0220D784
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F0B0C ; =0x00000408
mov r0, #2
add sp, sp, ip
@@ -27711,7 +27717,7 @@ _021F0A40:
mov r1, r2
ldr r2, _021F0B18 ; =0x00000401
add r0, sp, #0
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldrsb r0, [sp]
cmp r0, #0
beq _021F0A7C
@@ -27728,35 +27734,35 @@ _021F0A7C:
ldr r2, _021F0B1C ; =0x0220D794
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F0B20 ; =0x0220D6C0
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x198]
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F0B24 ; =0x0220D7A0
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r2, r5
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F0B28 ; =0x0220D7B0
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
add r2, sp, #0
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F0B2C ; =0x0220D6CC
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0
ldr ip, _021F0B0C ; =0x00000408
add sp, sp, ip
@@ -27772,8 +27778,8 @@ _021F0B24: .word 0x0220D7A0
_021F0B28: .word 0x0220D7B0
_021F0B2C: .word 0x0220D6CC
- arm_func_start FUN_021F0B30
-FUN_021F0B30: ; 0x021F0B30
+ arm_func_start MOD04_021F0B30
+MOD04_021F0B30: ; 0x021F0B30
stmdb sp!, {lr}
sub sp, sp, #4
cmp r0, #0
@@ -27795,19 +27801,19 @@ _021F0B58:
cmp r3, #4
bne _021F0B8C
ldr r1, _021F0B98 ; =0x0220D690
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #2
ldmfd sp!, {pc}
_021F0B8C:
- bl FUN_021F50B8
+ bl MOD04_021F50B8
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021F0B98: .word 0x0220D690
- arm_func_start FUN_021F0B9C
-FUN_021F0B9C: ; 0x021F0B9C
+ arm_func_start MOD04_021F0B9C
+MOD04_021F0B9C: ; 0x021F0B9C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x20c
movs r5, r0
@@ -27826,7 +27832,7 @@ _021F0BCC:
cmp lr, #0
bne _021F0BEC
ldr r1, _021F0C7C ; =0x0220D6D4
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x20c
mov r0, #2
ldmia sp!, {r4, r5, pc}
@@ -27859,7 +27865,7 @@ _021F0C44:
cmp ip, #4
bne _021F0C64
ldr r1, _021F0C80 ; =0x0220D690
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x20c
mov r0, #2
ldmia sp!, {r4, r5, pc}
@@ -27867,15 +27873,15 @@ _021F0C64:
ldr ip, [sp, #0x21c]
str lr, [sp]
str ip, [sp, #4]
- bl FUN_021F4E64
+ bl MOD04_021F4E64
add sp, sp, #0x20c
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021F0C7C: .word 0x0220D6D4
_021F0C80: .word 0x0220D690
- arm_func_start FUN_021F0C84
-FUN_021F0C84: ; 0x021F0C84
+ arm_func_start MOD04_021F0C84
+MOD04_021F0C84: ; 0x021F0C84
stmdb sp!, {r4, lr}
sub sp, sp, #0x30
cmp r0, #0
@@ -27892,7 +27898,7 @@ _021F0CAC:
cmp ip, #0
bne _021F0CCC
ldr r1, _021F0D4C ; =0x0220D6D4
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x30
mov r0, #2
ldmia sp!, {r4, pc}
@@ -27927,15 +27933,15 @@ _021F0D0C:
ldr lr, [sp, #0x4c]
str ip, [sp, #0x14]
str lr, [sp, #0x18]
- bl FUN_021FA770
+ bl MOD04_021FA770
add sp, sp, #0x30
ldmia sp!, {r4, pc}
.align 2, 0
_021F0D4C: .word 0x0220D6D4
_021F0D50: .word 0x00000601
- arm_func_start FUN_021F0D54
-FUN_021F0D54: ; 0x021F0D54
+ arm_func_start MOD04_021F0D54
+MOD04_021F0D54: ; 0x021F0D54
stmdb sp!, {r4, lr}
movs r4, r0
ldmeqia sp!, {r4, pc}
@@ -27946,13 +27952,13 @@ FUN_021F0D54: ; 0x021F0D54
cmp r1, #0
ldmneia sp!, {r4, pc}
mov r1, #1
- bl FUN_021F35F4
+ bl MOD04_021F35F4
mov r0, r4
- bl FUN_021F14C0
+ bl MOD04_021F14C0
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F0D8C
-FUN_021F0D8C: ; 0x021F0D8C
+ arm_func_start MOD04_021F0D8C
+MOD04_021F0D8C: ; 0x021F0D8C
stmdb sp!, {r4, lr}
sub sp, sp, #0x48
movs lr, r0
@@ -27989,7 +27995,7 @@ _021F0DF4:
cmp r4, #0
bne _021F0E14
ldr r1, _021F0EA8 ; =0x0220D6D4
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x48
mov r0, #2
ldmia sp!, {r4, pc}
@@ -28029,15 +28035,15 @@ _021F0E5C:
mov r2, lr
mov r3, lr
str ip, [sp, #0x20]
- bl FUN_021F4670
+ bl MOD04_021F4670
add sp, sp, #0x48
ldmia sp!, {r4, pc}
.align 2, 0
_021F0EA8: .word 0x0220D6D4
_021F0EAC: .word 0x0220D7BC
- arm_func_start FUN_021F0EB0
-FUN_021F0EB0: ; 0x021F0EB0
+ arm_func_start MOD04_021F0EB0
+MOD04_021F0EB0: ; 0x021F0EB0
stmdb sp!, {lr}
sub sp, sp, #4
cmp r0, #0
@@ -28056,7 +28062,7 @@ _021F0ED8:
blt _021F0EFC
_021F0EE8:
ldr r1, _021F0F14 ; =0x0220D7C0
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #2
ldmfd sp!, {pc}
@@ -28070,8 +28076,8 @@ _021F0EFC:
.align 2, 0
_021F0F14: .word 0x0220D7C0
- arm_func_start FUN_021F0F18
-FUN_021F0F18: ; 0x021F0F18
+ arm_func_start MOD04_021F0F18
+MOD04_021F0F18: ; 0x021F0F18
stmdb sp!, {lr}
sub sp, sp, #4
cmp r0, #0
@@ -28090,12 +28096,12 @@ _021F0F40:
movne r0, #0
ldmneia sp!, {pc}
mov r1, #0
- bl FUN_021F0FD4
+ bl MOD04_021F0FD4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021F0F64
-FUN_021F0F64: ; 0x021F0F64
+ arm_func_start MOD04_021F0F64
+MOD04_021F0F64: ; 0x021F0F64
stmdb sp!, {lr}
sub sp, sp, #4
cmp r0, #0
@@ -28105,12 +28111,12 @@ FUN_021F0F64: ; 0x021F0F64
cmp r1, #0
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021F1620
+ bl MOD04_021F1620
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021F0F94
-FUN_021F0F94: ; 0x021F0F94
+ arm_func_start MOD04_021F0F94
+MOD04_021F0F94: ; 0x021F0F94
stmdb sp!, {lr}
sub sp, sp, #4
ldr r3, _021F0FD0 ; =0x02210E5C
@@ -28123,14 +28129,14 @@ FUN_021F0F94: ; 0x021F0F94
addeq sp, sp, #4
moveq r0, #2
ldmeqia sp!, {pc}
- bl FUN_021F1668
+ bl MOD04_021F1668
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_021F0FD0: .word 0x02210E5C
- arm_func_start FUN_021F0FD4
-FUN_021F0FD4: ; 0x021F0FD4
+ arm_func_start MOD04_021F0FD4
+MOD04_021F0FD4: ; 0x021F0FD4
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov sl, r0
@@ -28154,7 +28160,7 @@ _021F100C:
mov fp, #0xa
_021F1024:
mov r0, sl
- bl FUN_021F3880
+ bl MOD04_021F3880
movs r6, r0
bne _021F104C
cmp sb, #0
@@ -28169,7 +28175,7 @@ _021F1050:
cmp r8, #0
beq _021F1060
mov r0, fp
- bl FUN_021F0250
+ bl MOD04_021F0250
_021F1060:
cmp r8, #0
bne _021F1024
@@ -28178,7 +28184,7 @@ _021F1060:
add r1, sp, #0
mov r0, sl
mov r2, #1
- bl FUN_021F6C38
+ bl MOD04_021F6C38
cmp r0, #0
ldrne r0, [sp]
movne r1, #4
@@ -28197,19 +28203,19 @@ _021F10A8:
cmp r6, #0
bne _021F10CC
mov r0, sl
- bl FUN_021F1190
+ bl MOD04_021F1190
mov r6, r0
_021F10CC:
cmp r6, #0
bne _021F10E0
mov r0, sl
- bl FUN_021F775C
+ bl MOD04_021F775C
mov r6, r0
_021F10E0:
cmp r6, #0
bne _021F10F4
mov r0, sl
- bl FUN_021F8974
+ bl MOD04_021F8974
mov r6, r0
_021F10F4:
ldr r1, [r7, #0x424]
@@ -28223,12 +28229,12 @@ _021F1104:
streq r0, [sp]
beq _021F1134
mov r0, sl
- bl FUN_021F6E44
+ bl MOD04_021F6E44
ldr r1, [sp]
mov r0, sl
ldr r2, [r1, #0x20]
str r2, [sp]
- bl FUN_021F6C84
+ bl MOD04_021F6C84
_021F1134:
ldr r1, [sp]
cmp r1, #0
@@ -28236,7 +28242,7 @@ _021F1134:
_021F1140:
mov r0, sl
mov r1, sb
- bl FUN_021F3170
+ bl MOD04_021F3170
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -28245,7 +28251,7 @@ _021F1140:
beq _021F1170
mov r0, sl
mov r1, #0
- bl FUN_021F35F4
+ bl MOD04_021F35F4
_021F1170:
mov r0, r6
add sp, sp, #4
@@ -28257,8 +28263,8 @@ _021F1184: .word 0x000001B5
_021F1188: .word 0x0220D8D0
_021F118C: .word 0x000001DB
- arm_func_start FUN_021F1190
-FUN_021F1190: ; 0x021F1190
+ arm_func_start MOD04_021F1190
+MOD04_021F1190: ; 0x021F1190
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x1c
mov fp, #0
@@ -28276,7 +28282,7 @@ FUN_021F1190: ; 0x021F1190
_021F11C8:
mov r0, r5
add r1, r4, #0x1f4
- bl FUN_021F5DF8
+ bl MOD04_021F5DF8
ldr r0, _021F1494 ; =0x0220D8D4
str sl, [sp]
str r0, [sp, #4]
@@ -28284,7 +28290,7 @@ _021F11C8:
mov r0, r5
add r2, r4, #0x1f4
add r3, sp, #0x18
- bl FUN_021F28AC
+ bl MOD04_021F28AC
cmp r0, #0
addne sp, sp, #0x1c
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -28296,7 +28302,7 @@ _021F11C8:
ldr r1, [r4, #0x1d4]
mov r0, r5
add r3, sp, #0x14
- bl FUN_021F2A2C
+ bl MOD04_021F2A2C
cmp r0, #0
beq _021F1264
cmp r0, #3
@@ -28305,11 +28311,11 @@ _021F11C8:
ldr r2, _021F1498 ; =0x0220D8D8
mov r0, r5
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r5
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x1c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -28324,7 +28330,7 @@ _021F1278:
ldr r1, _021F14A0 ; =0x0220D90C
ldr r2, [r4, #0x1dc]
mov r0, r5
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
ldr r0, [r4, #0x1dc]
sub r1, r7, r0
str r1, [sp, #0x14]
@@ -28339,12 +28345,12 @@ _021F1278:
ldr r1, [r4, #0x1f0]
ldr r0, [r4, #0x1ec]
add r1, r1, #1
- bl FUN_021DD844
+ bl MOD04_021DD844
cmp r0, #0
bne _021F12E8
ldr r1, _021F14A4 ; =0x0220D918
mov r0, r5
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x1c
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -28378,19 +28384,19 @@ _021F12EC:
mov r0, r5
add r1, sp, #0x10
mov r2, r7
- bl FUN_021F6C38
+ bl MOD04_021F6C38
cmp r0, #0
bne _021F1378
ldr r1, _021F14AC ; =0x0220D930
mov r2, r7
mov r0, r5
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
b _021F1414
_021F1378:
mov r0, r5
ldr r1, [sp, #0x10]
ldr r2, [r4, #0x1ec]
- bl FUN_021F6B50
+ bl MOD04_021F6B50
cmp r0, #0
beq _021F1414
add sp, sp, #0x1c
@@ -28399,7 +28405,7 @@ _021F1398:
mov r1, r7
mov r0, r5
mov r2, sl
- bl FUN_021FB2F8
+ bl MOD04_021FB2F8
cmp r0, #0
addne sp, sp, #0x1c
movne r0, #4
@@ -28413,7 +28419,7 @@ _021F1398:
bne _021F13F0
mov r1, r7
mov r0, r5
- bl FUN_021F1C48
+ bl MOD04_021F1C48
cmp r0, #0
beq _021F1414
add sp, sp, #0x1c
@@ -28427,7 +28433,7 @@ _021F13F0:
beq _021F1414
ldr r1, _021F14B8 ; =0x0220D968
mov r0, r5
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
_021F1414:
ldr r0, [r4, #0x1dc]
ldr r1, _021F149C ; =0x0220D904
@@ -28443,21 +28449,21 @@ _021F1428:
mov r0, r5
mov r1, #7
str r3, [r4, #0x1d8]
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r5
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x1c
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021F1468:
mov r0, r5
- bl FUN_021F6BF8
+ bl MOD04_021F6BF8
movs r7, r0
beq _021F1480
mov r0, r6
- bl FUN_021F0250
+ bl MOD04_021F0250
_021F1480:
cmp r7, #0
bne _021F11C8
@@ -28477,8 +28483,8 @@ _021F14B4: .word 0x0220D960
_021F14B8: .word 0x0220D968
_021F14BC: .word 0x0220D998
- arm_func_start FUN_021F14C0
-FUN_021F14C0: ; 0x021F14C0
+ arm_func_start MOD04_021F14C0
+MOD04_021F14C0: ; 0x021F14C0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -28494,13 +28500,13 @@ FUN_021F14C0: ; 0x021F14C0
str r1, [r4, #0x1e8]
str r1, [r4, #0x1e0]
ldr r0, [r4, #0x1dc]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x1dc]
str r0, [r4, #0x1dc]
str r0, [r4, #0x1f0]
ldr r0, [r4, #0x1ec]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x1ec]
str r0, [r4, #0x1ec]
@@ -28508,7 +28514,7 @@ FUN_021F14C0: ; 0x021F14C0
str r0, [r4, #0x200]
str r0, [r4, #0x1f8]
ldr r0, [r4, #0x1f4]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x1f4]
str r0, [r4, #0x1f4]
@@ -28516,7 +28522,7 @@ FUN_021F14C0: ; 0x021F14C0
str r0, [r4, #0x44c]
str r0, [r4, #0x444]
ldr r0, [r4, #0x440]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x440]
str r0, [r4, #0x440]
@@ -28524,7 +28530,7 @@ FUN_021F14C0: ; 0x021F14C0
str r0, [r4, #0x45c]
str r0, [r4, #0x454]
ldr r0, [r4, #0x450]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x450]
str r0, [r4, #0x450]
@@ -28537,17 +28543,17 @@ FUN_021F14C0: ; 0x021F14C0
beq _021F15B4
_021F15A0:
mov r0, r5
- bl FUN_021F6C84
+ bl MOD04_021F6C84
ldr r1, [r4, #0x424]
cmp r1, #0
bne _021F15A0
_021F15B4:
mov r2, #0
str r2, [r4, #0x424]
- ldr r1, _021F1600 ; =FUN_021F1604
+ ldr r1, _021F1600 ; =MOD04_021F1604
mov r0, r5
str r2, [r4, #0x430]
- bl FUN_021F848C
+ bl MOD04_021F848C
mov r0, #0
str r0, [r4, #0x19c]
str r0, [r4, #0x1a0]
@@ -28562,10 +28568,10 @@ _021F15B4:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
-_021F1600: .word FUN_021F1604
+_021F1600: .word MOD04_021F1604
- arm_func_start FUN_021F1604
-FUN_021F1604: ; 0x021F1604
+ arm_func_start MOD04_021F1604
+MOD04_021F1604: ; 0x021F1604
mov r0, #0
str r0, [r1, #8]
str r0, [r1, #0x10]
@@ -28574,29 +28580,29 @@ FUN_021F1604: ; 0x021F1604
mov r0, #1
bx lr
- arm_func_start FUN_021F1620
-FUN_021F1620: ; 0x021F1620
+ arm_func_start MOD04_021F1620
+MOD04_021F1620: ; 0x021F1620
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
ldr r4, [r5]
mov r1, #1
- bl FUN_021F35F4
+ bl MOD04_021F35F4
ldr r0, [r4, #0x460]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x460]
ldr r0, [r4, #0x428]
- bl FUN_021EF5B0
+ bl MOD04_021EF5B0
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r5]
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021F1668
-FUN_021F1668: ; 0x021F1668
+ arm_func_start MOD04_021F1668
+MOD04_021F1668: ; 0x021F1668
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
@@ -28605,7 +28611,7 @@ FUN_021F1668: ; 0x021F1668
mov r0, #0x490
mov r5, r1
mov r4, r2
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [sp]
cmp r0, #0
addeq sp, sp, #8
@@ -28633,11 +28639,11 @@ FUN_021F1668: ; 0x021F1668
str r5, [r1, #0x46c]
ldr r1, [sp]
str r4, [r1, #0x470]
- bl FUN_021F8870
+ bl MOD04_021F8870
cmp r0, #0
bne _021F1720
ldr r0, [sp]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [sp]
add sp, sp, #8
@@ -28662,19 +28668,19 @@ _021F1730:
ldr r1, _021F17AC ; =0x0220D9C0
add r0, sp, #0
str r3, [r2, #0x460]
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
add r0, sp, #0
- bl FUN_021F14C0
+ bl MOD04_021F14C0
movs r4, r0
beq _021F178C
add r0, sp, #0
- bl FUN_021F1620
+ bl MOD04_021F1620
add sp, sp, #8
mov r0, r4
ldmia sp!, {r4, r5, r6, pc}
_021F178C:
- bl FUN_021F024C
- bl FUN_021F025C
+ bl MOD04_021F024C
+ bl MOD04_021F025C
bl srand
ldr r1, [sp]
mov r0, #0
@@ -28684,19 +28690,19 @@ _021F178C:
.align 2, 0
_021F17AC: .word 0x0220D9C0
- arm_func_start FUN_021F17B0
-FUN_021F17B0: ; 0x021F17B0
+ arm_func_start MOD04_021F17B0
+MOD04_021F17B0: ; 0x021F17B0
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
add r2, sp, #0
ldr r5, [r6]
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
bne _021F17E8
ldr r1, _021F1938 ; =0x0220D9E4
mov r0, r6
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #8
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
@@ -28704,28 +28710,28 @@ _021F17E8:
ldr r2, _021F193C ; =0x0220D9F8
mov r0, r6
add r1, r5, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F1940 ; =0x0220DA04
mov r0, r6
add r1, r5, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r5, #0x198]
mov r0, r6
add r1, r5, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F1944 ; =0x0220DA10
mov r0, r6
add r1, r5, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r5, #0x1f4
ldr r2, [sp]
ldr r2, [r2]
- bl FUN_021F2F64
+ bl MOD04_021F2F64
mov r0, r6
add r1, r5, #0x1f4
ldr r2, _021F1948 ; =0x0220DA20
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r0, [sp]
ldr r0, [r0, #8]
cmp r0, #0
@@ -28742,7 +28748,7 @@ _021F187C:
ldr r0, [sp]
ldr r0, [r0, #8]
ldr r0, [r0, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [sp]
mov r1, #0
ldr r0, [r0, #8]
@@ -28750,24 +28756,24 @@ _021F187C:
ldr r0, [sp]
ldr r0, [r0, #8]
ldr r0, [r0, #0xc]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [sp]
mov r1, #0
ldr r0, [r0, #8]
str r1, [r0, #0xc]
ldr r0, [sp]
ldr r0, [r0, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [sp]
mov r1, #0
str r1, [r0, #8]
ldr r0, [sp]
- bl FUN_021F83EC
+ bl MOD04_021F83EC
cmp r0, #0
beq _021F18F0
ldr r1, [sp]
mov r0, r6
- bl FUN_021F85A0
+ bl MOD04_021F85A0
_021F18F0:
ldr r0, [r5, #0x430]
sub r0, r0, #1
@@ -28781,10 +28787,10 @@ _021F18F0:
mov r3, #0x204
bl __msl_assertion_failed
_021F191C:
- ldr r1, _021F195C ; =FUN_021F1960
+ ldr r1, _021F195C ; =MOD04_021F1960
mov r0, r6
mov r2, r4
- bl FUN_021F848C
+ bl MOD04_021F848C
_021F192C:
mov r0, #0
add sp, sp, #8
@@ -28799,10 +28805,10 @@ _021F194C: .word 0x0220DA28
_021F1950: .word 0x0220DA34
_021F1954: .word 0x000001FD
_021F1958: .word 0x0220DA40
-_021F195C: .word FUN_021F1960
+_021F195C: .word MOD04_021F1960
- arm_func_start FUN_021F1960
-FUN_021F1960: ; 0x021F1960
+ arm_func_start MOD04_021F1960
+MOD04_021F1960: ; 0x021F1960
ldr r1, [r1, #8]
cmp r1, #0
beq _021F197C
@@ -28814,19 +28820,19 @@ _021F197C:
mov r0, #1
bx lr
- arm_func_start FUN_021F1984
-FUN_021F1984: ; 0x021F1984
+ arm_func_start MOD04_021F1984
+MOD04_021F1984: ; 0x021F1984
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r0
add r2, sp, #0
ldr r5, [r4]
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
bne _021F19BC
ldr r1, _021F1A60 ; =0x0220D9E4
mov r0, r4
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #2
ldmia sp!, {r4, r5, pc}
@@ -28837,13 +28843,13 @@ _021F19BC:
bne _021F19E4
ldr r1, _021F1A60 ; =0x0220D9E4
mov r0, r4
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #2
ldmia sp!, {r4, r5, pc}
_021F19E4:
mov r0, r4
- bl FUN_021F265C
+ bl MOD04_021F265C
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {r4, r5, pc}
@@ -28859,17 +28865,17 @@ _021F19E4:
cmp r0, #0
bgt _021F1A54
ldr r0, [r1, #0x10]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [sp]
mov r1, #0
str r1, [r0, #0x10]
ldr r0, [sp]
- bl FUN_021F83EC
+ bl MOD04_021F83EC
cmp r0, #0
beq _021F1A54
ldr r1, [sp]
mov r0, r4
- bl FUN_021F85A0
+ bl MOD04_021F85A0
_021F1A54:
mov r0, #0
add sp, sp, #4
@@ -28877,21 +28883,21 @@ _021F1A54:
.align 2, 0
_021F1A60: .word 0x0220D9E4
- arm_func_start FUN_021F1A64
-FUN_021F1A64: ; 0x021F1A64
+ arm_func_start MOD04_021F1A64
+MOD04_021F1A64: ; 0x021F1A64
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
mov r7, r0
mov r6, r1
mov r5, r2
mov r4, r3
- bl FUN_021F7720
+ bl MOD04_021F7720
movs r8, r0
bne _021F1B3C
add r2, sp, #0
mov r0, r7
mov r1, r6
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
beq _021F1ABC
ldr r0, [sp]
@@ -28906,14 +28912,14 @@ _021F1ABC:
mov r1, r6
mov r2, r5
mov r3, r4
- bl FUN_021F1B60
+ bl MOD04_021F1B60
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021F1AD8:
mov r0, r7
mov r1, r6
mov r2, #1
- bl FUN_021F7674
+ bl MOD04_021F7674
movs r8, r0
addeq sp, sp, #8
moveq r0, #1
@@ -28924,7 +28930,7 @@ _021F1AD8:
bne _021F1B24
mov r0, r7
mov r1, r8
- bl FUN_021F7610
+ bl MOD04_021F7610
cmp r0, #0
beq _021F1B3C
add sp, sp, #8
@@ -28932,7 +28938,7 @@ _021F1AD8:
_021F1B24:
mov r0, r7
mov r1, r8
- bl FUN_021F7478
+ bl MOD04_021F7478
cmp r0, #0
addne sp, sp, #8
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -28941,14 +28947,14 @@ _021F1B3C:
mov r1, r8
mov r2, r5
mov r3, r4
- bl FUN_021F72EC
+ bl MOD04_021F72EC
cmp r0, #0
moveq r0, #0
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, pc}
- arm_func_start FUN_021F1B60
-FUN_021F1B60: ; 0x021F1B60
+ arm_func_start MOD04_021F1B60
+MOD04_021F1B60: ; 0x021F1B60
stmdb sp!, {r4, r5, r6, r7, lr}
ldr ip, _021F1C2C ; =0x00000DB4
sub sp, sp, ip
@@ -28959,43 +28965,43 @@ FUN_021F1B60: ; 0x021F1B60
add r0, sp, #0
mov r1, r3
ldr r4, [r7]
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r2, _021F1C34 ; =0x0220DA6C
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r7
mov r2, r5
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F1C38 ; =0x0220DA04
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x198]
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F1C3C ; =0x0220DA74
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r2, r6
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F1C40 ; =0x0220DA78
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r7
add r1, r4, #0x1f4
add r2, sp, #0
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F1C44 ; =0x0220DA20
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0
ldr ip, _021F1C2C ; =0x00000DB4
add sp, sp, ip
@@ -29009,8 +29015,8 @@ _021F1C3C: .word 0x0220DA74
_021F1C40: .word 0x0220DA78
_021F1C44: .word 0x0220DA20
- arm_func_start FUN_021F1C48
-FUN_021F1C48: ; 0x021F1C48
+ arm_func_start MOD04_021F1C48
+MOD04_021F1C48: ; 0x021F1C48
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr ip, _021F2618 ; =0x0000113C
sub sp, sp, ip
@@ -29021,17 +29027,17 @@ FUN_021F1C48: ; 0x021F1C48
mov r0, r4
mov r3, #0x1000
ldr r6, [sl]
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F1CAC
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29044,17 +29050,17 @@ _021F1CAC:
add r2, sp, #0x38
mov r0, r4
mov r3, #0x1000
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F1D04
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29067,7 +29073,7 @@ _021F1D04:
add r2, sp, #0x38
mov r0, r4
mov r3, #0x1000
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
beq _021F1D3C
add r0, sp, #0x38
@@ -29076,7 +29082,7 @@ _021F1D04:
b _021F1D48
_021F1D3C:
mov r0, #0
- bl FUN_021EFAC8
+ bl MOD04_021EFAC8
mov sb, r0
_021F1D48:
cmp r5, #0x64
@@ -29110,12 +29116,12 @@ _021F1DA0:
str r0, [sp, #0xc]
beq _021F2608
mov r0, #0xc
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r5, r0
bne _021F1DE4
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
@@ -29125,17 +29131,17 @@ _021F1DE4:
add r2, sp, #0x38
mov r0, r4
mov r3, #0x1000
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F1E30
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29144,14 +29150,14 @@ _021F1E30:
add r0, sp, #0x38
bl strlen
add r0, r0, #1
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r5, #8]
ldr r0, [r5, #8]
cmp r0, #0
bne _021F1E6C
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
@@ -29169,7 +29175,7 @@ _021F1E6C:
mov r0, sl
mov r3, r5
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F2608
ldr ip, _021F2618 ; =0x0000113C
@@ -29178,12 +29184,12 @@ _021F1E6C:
_021F1EB4:
mov r0, sl
mov r1, r8
- bl FUN_021F8624
+ bl MOD04_021F8624
movs r5, r0
bne _021F1EE4
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
@@ -29193,17 +29199,17 @@ _021F1EE4:
add r2, sp, #0x38
mov r0, r4
mov r3, #0x1000
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F1F30
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29217,11 +29223,11 @@ _021F1F30:
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29236,22 +29242,22 @@ _021F1F74:
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021F1FBC:
ldr r0, [r5, #0x10]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r5, #0x10]
add r0, r4, #8
- bl FUN_021F0208
+ bl MOD04_021F0208
str r0, [r5, #0x10]
ldr r0, [r5, #0x14]
add r0, r0, #1
@@ -29263,12 +29269,12 @@ _021F1FBC:
str r0, [sp, #0x24]
beq _021F2608
ldr r0, _021F2638 ; =0x0000040C
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021F2028
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
@@ -29277,7 +29283,7 @@ _021F2028:
ldr r2, _021F263C ; =0x00000401
add r1, sp, #0x38
add r0, r4, #8
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
str r8, [r4]
str sb, [r4, #4]
mov r0, #0
@@ -29288,7 +29294,7 @@ _021F2028:
mov r0, sl
mov r3, r4
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F2608
ldr ip, _021F2618 ; =0x0000113C
@@ -29297,12 +29303,12 @@ _021F2028:
_021F2078:
mov r0, sl
mov r1, r8
- bl FUN_021F8624
+ bl MOD04_021F8624
movs r5, r0
bne _021F20A8
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
@@ -29312,14 +29318,14 @@ _021F20A8:
cmp r0, #0
bne _021F211C
mov r0, #0x18
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r5, #8]
ldr r2, [r5, #8]
cmp r2, #0
bne _021F20E8
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
@@ -29345,17 +29351,17 @@ _021F211C:
mov r0, r4
mov r3, #0x1000
ldr r7, [r5, #8]
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F216C
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29365,17 +29371,17 @@ _021F216C:
add r0, sp, #0x38
add r2, sp, #0x28
mov r3, #0x10
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F21B8
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29385,7 +29391,7 @@ _021F21B8:
bl atol
str r0, [r7, #4]
ldr r0, [r7, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
add r2, sp, #0x1000
str r0, [r7, #8]
@@ -29393,7 +29399,7 @@ _021F21B8:
add r0, sp, #0x38
add r2, r2, #0x38
mov r3, #0x100
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
addeq r0, sp, #0x1000
moveq r1, #0
@@ -29401,21 +29407,21 @@ _021F21B8:
streqb r1, [r0, #0x30]
add r0, sp, #0x1000
add r0, r0, #0x38
- bl FUN_021F0208
+ bl MOD04_021F0208
str r0, [r7, #8]
ldr r0, [r7, #8]
cmp r0, #0
bne _021F2238
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021F2238:
ldr r0, [r7, #0xc]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
add r2, sp, #0x1000
mov r4, #0
ldr r1, _021F2648 ; =0x0220DAE4
@@ -29423,7 +29429,7 @@ _021F2238:
add r2, r2, #0x38
mov r3, #0x100
str r4, [r7, #0xc]
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
addeq r0, sp, #0x1000
moveq r1, r4
@@ -29431,14 +29437,14 @@ _021F2238:
streqb r1, [r0, #0x30]
add r0, sp, #0x1000
add r0, r0, #0x38
- bl FUN_021F0208
+ bl MOD04_021F0208
str r0, [r7, #0xc]
ldr r0, [r7, #0xc]
cmp r0, #0
bne _021F22AC
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
@@ -29448,7 +29454,7 @@ _021F22AC:
add r0, sp, #0x38
add r2, sp, #0x28
mov r3, #0x10
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [r7, #0x10]
@@ -29481,7 +29487,7 @@ _021F232C:
add r0, sp, #0x38
add r2, sp, #0x28
mov r3, #0x10
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [r7, #0x14]
@@ -29506,12 +29512,12 @@ _021F2380:
str r0, [sp, #0x1c]
beq _021F2608
mov r0, #0xc
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r3, r0
bne _021F23C4
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
@@ -29528,7 +29534,7 @@ _021F23C4:
add r1, sp, #0x18
mov r0, sl
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F2608
ldr ip, _021F2618 ; =0x0000113C
@@ -29539,17 +29545,17 @@ _021F2408:
add r2, sp, #0x38
mov r0, r4
mov r3, #0x1000
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F2454
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29563,11 +29569,11 @@ _021F2454:
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29579,11 +29585,11 @@ _021F2498:
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29605,7 +29611,7 @@ _021F24D4:
add r0, r0, #0x38
add r1, r1, #3
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F2518:
ldr r1, [r6, #0x1c4]
ldr r0, [r6, #0x1c8]
@@ -29614,12 +29620,12 @@ _021F2518:
str r0, [sp, #0x14]
beq _021F2608
mov r0, #0x108
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r5, r0
bne _021F255C
ldr r1, _021F262C ; =0x0220DABC
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F2618 ; =0x0000113C
mov r0, #1
add sp, sp, ip
@@ -29638,7 +29644,7 @@ _021F255C:
mov r0, sl
mov r3, r5
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F2608
ldr ip, _021F2618 ; =0x0000113C
@@ -29649,17 +29655,17 @@ _021F25A8:
add r2, sp, #0x38
mov r0, r4
mov r3, #0x1000
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F25F4
ldr r2, _021F2620 ; =0x0220DA80
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F2618 ; =0x0000113C
mov r0, #3
add sp, sp, ip
@@ -29669,7 +29675,7 @@ _021F25F4:
mov r0, sl
mov r1, r8
mov r2, #0x67
- bl FUN_021F1A64
+ bl MOD04_021F1A64
_021F2608:
mov r0, #0
ldr ip, _021F2618 ; =0x0000113C
@@ -29694,43 +29700,43 @@ _021F2650: .word 0x0220DAF4
_021F2654: .word 0x0220DAF8
_021F2658: .word 0x0220DAFC
- arm_func_start FUN_021F265C
-FUN_021F265C: ; 0x021F265C
+ arm_func_start MOD04_021F265C
+MOD04_021F265C: ; 0x021F265C
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r4, [r6]
ldr r2, _021F26F0 ; =0x0220DB00
mov r5, r1
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F26F4 ; =0x0220DA04
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x198]
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F26F8 ; =0x0220DB0C
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
ldr r2, [r5]
- bl FUN_021F2F64
+ bl MOD04_021F2F64
mov r0, r6
add r1, r4, #0x1f4
ldr r2, _021F26FC ; =0x0220DB1C
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r5, #0x10]
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
ldr r2, _021F2700 ; =0x0220DA20
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
@@ -29740,8 +29746,8 @@ _021F26F8: .word 0x0220DB0C
_021F26FC: .word 0x0220DB1C
_021F2700: .word 0x0220DA20
- arm_func_start FUN_021F2704
-FUN_021F2704: ; 0x021F2704
+ arm_func_start MOD04_021F2704
+MOD04_021F2704: ; 0x021F2704
stmdb sp!, {r4, lr}
movs r4, r1
beq _021F2728
@@ -29773,8 +29779,8 @@ _021F2758:
str r0, [r4, #0xc]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F2770
-FUN_021F2770: ; 0x021F2770
+ arm_func_start MOD04_021F2770
+MOD04_021F2770: ; 0x021F2770
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
mov r5, r2
@@ -29805,7 +29811,7 @@ FUN_021F2770: ; 0x021F2770
ldr r1, _021F28A4 ; =0x0220DB2C
add r2, sp, #0
mov r3, #0x10
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
addeq sp, sp, #0x14
moveq r0, #3
@@ -29817,7 +29823,7 @@ FUN_021F2770: ; 0x021F2770
ldr r1, _021F28A8 ; =0x0220DB30
add r2, sp, #0
mov r3, #0x10
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
addeq sp, sp, #0x14
moveq r0, #3
@@ -29858,8 +29864,8 @@ _021F28A0: .word 0x0220DB24
_021F28A4: .word 0x0220DB2C
_021F28A8: .word 0x0220DB30
- arm_func_start FUN_021F28AC
-FUN_021F28AC: ; 0x021F28AC
+ arm_func_start MOD04_021F28AC
+MOD04_021F28AC: ; 0x021F28AC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x1c
mov sl, r0
@@ -29895,7 +29901,7 @@ _021F2908:
mov r3, r6
add r2, r5, r2
str r8, [sp, #8]
- bl FUN_021F2E68
+ bl MOD04_021F2E68
cmp r0, #0
addne sp, sp, #0x1c
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -29966,8 +29972,8 @@ _021F2A20: .word 0x0220DB68
_021F2A24: .word 0x000001DF
_021F2A28: .word 0x0220DB74
- arm_func_start FUN_021F2A2C
-FUN_021F2A2C: ; 0x021F2A2C
+ arm_func_start MOD04_021F2A2C
+MOD04_021F2A2C: ; 0x021F2A2C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14
mov fp, r0
@@ -30029,12 +30035,12 @@ _021F2AF4:
mov r7, r0
add r1, r0, #1
mov r0, sb
- bl FUN_021DD844
+ bl MOD04_021DD844
movs sb, r0
bne _021F2B30
ldr r1, _021F2C48 ; =0x0220DBD4
mov r0, fp
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x14
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -30043,13 +30049,13 @@ _021F2B30:
mov r0, sl
add r1, sb, r8
sub r2, r7, r8
- bl FUN_021EFC78
+ bl MOD04_021EFC78
mov r6, r0
mvn r0, #0
cmp r6, r0
bne _021F2B98
mov r0, sl
- bl FUN_021EFB28
+ bl MOD04_021EFB28
mvn r1, #5
cmp r0, r1
beq _021F2BBC
@@ -30061,7 +30067,7 @@ _021F2B30:
beq _021F2BBC
ldr r1, _021F2C4C ; =0x0220DBE4
mov r0, fp
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x14
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -30074,7 +30080,7 @@ _021F2B98:
ldr r2, [sp, #0x3c]
mov r0, fp
ldr r4, [sp, #0xc]
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
_021F2BBC:
ldr r0, [sp, #0x10]
strb r0, [sb, r8]
@@ -30092,7 +30098,7 @@ _021F2BE0:
ldr r2, [sp, #0x3c]
mov r0, fp
mov r3, r5
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
_021F2BFC:
ldr r0, [sp]
ldr r1, [sp, #0x38]
@@ -30119,8 +30125,8 @@ _021F2C4C: .word 0x0220DBE4
_021F2C50: .word 0x0220DC10
_021F2C54: .word 0x0220DC34
- arm_func_start FUN_021F2C58
-FUN_021F2C58: ; 0x021F2C58
+ arm_func_start MOD04_021F2C58
+MOD04_021F2C58: ; 0x021F2C58
stmdb sp!, {r4, r5, r6, lr}
mov r4, r2
mov r6, r0
@@ -30131,11 +30137,11 @@ FUN_021F2C58: ; 0x021F2C58
mov r0, r6
mov r1, r5
mov r2, r4
- bl FUN_021F2C88
+ bl MOD04_021F2C88
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021F2C88
-FUN_021F2C88: ; 0x021F2C88
+ arm_func_start MOD04_021F2C88
+MOD04_021F2C88: ; 0x021F2C88
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14
mov sb, r1
@@ -30161,7 +30167,7 @@ _021F2CC0:
subs r0, r1, r0
bne _021F2D4C
ldr r0, [sb, #0x38]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
bne _021F2D4C
ldr fp, _021F2D88 ; =0x0220DC70
@@ -30175,7 +30181,7 @@ _021F2D00:
mov r0, sl
mov r3, r7
add r2, r8, r6
- bl FUN_021F2E68
+ bl MOD04_021F2E68
cmp r0, #0
addne sp, sp, #0x14
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -30194,7 +30200,7 @@ _021F2D4C:
mov r3, r7
add r1, sb, #0x28
add r2, r8, r6
- bl FUN_021F2FCC
+ bl MOD04_021F2FCC
cmp r0, #0
addne sp, sp, #0x14
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -30207,8 +30213,8 @@ _021F2D80: .word 0x0220DC4C
_021F2D84: .word 0x0220DB50
_021F2D88: .word 0x0220DC70
- arm_func_start FUN_021F2D8C
-FUN_021F2D8C: ; 0x021F2D8C
+ arm_func_start MOD04_021F2D8C
+MOD04_021F2D8C: ; 0x021F2D8C
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x14
@@ -30228,7 +30234,7 @@ _021F2DC0:
subs r0, r1, r0
bne _021F2E3C
ldr r0, [r4, #0x38]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
bne _021F2E3C
add r0, sp, #0xc
@@ -30241,7 +30247,7 @@ _021F2DC0:
add r2, sp, #0x28
mov r0, r5
mov r3, #1
- bl FUN_021F2E68
+ bl MOD04_021F2E68
cmp r0, #0
addne sp, sp, #0x14
ldmneia sp!, {r4, r5, lr}
@@ -30258,7 +30264,7 @@ _021F2E3C:
ldrsb r2, [sp, #0x28]
mov r0, r5
add r1, r4, #0x28
- bl FUN_021F30D4
+ bl MOD04_021F30D4
add sp, sp, #0x14
ldmia sp!, {r4, r5, lr}
add sp, sp, #0x10
@@ -30268,8 +30274,8 @@ _021F2E5C: .word 0x0220DC4C
_021F2E60: .word 0x0220DB50
_021F2E64: .word 0x0220DC70
- arm_func_start FUN_021F2E68
-FUN_021F2E68: ; 0x021F2E68
+ arm_func_start MOD04_021F2E68
+MOD04_021F2E68: ; 0x021F2E68
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r8, r1
mov r7, r0
@@ -30280,12 +30286,12 @@ FUN_021F2E68: ; 0x021F2E68
ldr r6, [sp, #0x18]
ldr r5, [sp, #0x1c]
ldr r4, [sp, #0x20]
- bl FUN_021EFC24
+ bl MOD04_021EFC24
mvn r1, #0
cmp r0, r1
bne _021F2F20
mov r0, r8
- bl FUN_021EFB28
+ bl MOD04_021EFB28
mvn r1, #5
cmp r0, r1
beq _021F2F10
@@ -30306,11 +30312,11 @@ _021F2EE8:
ldr r2, _021F2F5C ; =0x0220DC74
mov r0, r7
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r7
mov r1, #3
mov r2, #0
- bl FUN_021F3500
+ bl MOD04_021F3500
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021F2F10:
@@ -30327,7 +30333,7 @@ _021F2F20:
ldr r1, _021F2F60 ; =0x0220DC9C
mov r0, r7
mov r2, r4
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
mov r0, #0
str r0, [r5]
mov r0, #1
@@ -30339,8 +30345,8 @@ _021F2F54:
_021F2F5C: .word 0x0220DC74
_021F2F60: .word 0x0220DC9C
- arm_func_start FUN_021F2F64
-FUN_021F2F64: ; 0x021F2F64
+ arm_func_start MOD04_021F2F64
+MOD04_021F2F64: ; 0x021F2F64
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x14
mov r4, r1
@@ -30351,14 +30357,14 @@ FUN_021F2F64: ; 0x021F2F64
add r2, sp, #0
mov r0, r5
mov r1, r4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
add sp, sp, #0x14
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021F2F98: .word 0x0220DC48
- arm_func_start FUN_021F2F9C
-FUN_021F2F9C: ; 0x021F2F9C
+ arm_func_start MOD04_021F2F9C
+MOD04_021F2F9C: ; 0x021F2F9C
stmdb sp!, {r4, r5, r6, lr}
mov r4, r2
mov r6, r0
@@ -30369,11 +30375,11 @@ FUN_021F2F9C: ; 0x021F2F9C
mov r0, r6
mov r1, r5
mov r2, r4
- bl FUN_021F2FCC
+ bl MOD04_021F2FCC
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021F2FCC
-FUN_021F2FCC: ; 0x021F2FCC
+ arm_func_start MOD04_021F2FCC
+MOD04_021F2FCC: ; 0x021F2FCC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
movs r8, r2
mov sl, r0
@@ -30417,12 +30423,12 @@ _021F3030:
add r5, r5, r0
mov r0, r4
add r1, r5, #1
- bl FUN_021DD844
+ bl MOD04_021DD844
movs r4, r0
bne _021F308C
ldr r1, _021F30D0 ; =0x0220DBD4
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021F308C:
@@ -30446,8 +30452,8 @@ _021F30C8: .word 0x0220DCD0
_021F30CC: .word 0x0220DB38
_021F30D0: .word 0x0220DBD4
- arm_func_start FUN_021F30D4
-FUN_021F30D4: ; 0x021F30D4
+ arm_func_start MOD04_021F30D4
+MOD04_021F30D4: ; 0x021F30D4
stmdb sp!, {r4, r5, r6, r7, r8, lr}
movs r4, r1
mov r8, r0
@@ -30466,12 +30472,12 @@ _021F30FC:
bne _021F3138
add r5, r5, #0x800
add r1, r5, #1
- bl FUN_021DD844
+ bl MOD04_021DD844
cmp r0, #0
bne _021F3138
ldr r1, _021F316C ; =0x0220DBD4
mov r0, r8
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021F3138:
@@ -30491,8 +30497,8 @@ _021F3164: .word 0x0220DB38
_021F3168: .word 0x0220DB50
_021F316C: .word 0x0220DBD4
- arm_func_start FUN_021F3170
-FUN_021F3170: ; 0x021F3170
+ arm_func_start MOD04_021F3170
+MOD04_021F3170: ; 0x021F3170
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov sl, r0
movs sb, r1
@@ -30521,7 +30527,7 @@ _021F31C0:
moveq r7, r4
cmp r6, r1
moveq r6, r5
- bl FUN_021F3260
+ bl MOD04_021F3260
b _021F31E4
_021F31E0:
mov r5, r1
@@ -30552,7 +30558,7 @@ _021F3224:
_021F3234:
ldr r5, [r1, #0x14]
mov r0, sl
- bl FUN_021F3260
+ bl MOD04_021F3260
mov r1, r5
cmp r5, #0
bne _021F3234
@@ -30564,8 +30570,8 @@ _021F3258:
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- arm_func_start FUN_021F3260
-FUN_021F3260: ; 0x021F3260
+ arm_func_start MOD04_021F3260
+MOD04_021F3260: ; 0x021F3260
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r7, r1
ldr r1, [r7]
@@ -30597,7 +30603,7 @@ _021F32AC:
bne _021F32E8
ldr r0, [r7, #8]
ldr r0, [r0, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r7, #8]
mov r1, #0
str r1, [r0, #8]
@@ -30615,12 +30621,12 @@ _021F32E8:
_021F330C:
ldr r0, [r5, #0x3c]
ldr r0, [r0, r6, lsl #2]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r5, #0x3c]
str r4, [r0, r6, lsl #2]
ldr r0, [r5, #0x40]
ldr r0, [r0, r6, lsl #2]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r5, #0x40]
str r8, [r0, r6, lsl #2]
ldr r0, [r5, #0x38]
@@ -30629,11 +30635,11 @@ _021F330C:
blt _021F330C
_021F3344:
ldr r0, [r5, #0x3c]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r5, #0x3c]
ldr r0, [r5, #0x40]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r5, #0x40]
b _021F342C
@@ -30642,7 +30648,7 @@ _021F3368:
bne _021F3388
ldr r4, [r7, #8]
ldr r0, [r4, #0xc]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0xc]
b _021F342C
@@ -30653,7 +30659,7 @@ _021F3388:
ldr r0, [r4, #0x10]
cmp r0, #0
beq _021F342C
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x10]
b _021F342C
@@ -30664,7 +30670,7 @@ _021F33B0:
ldr r0, [r4, #8]
cmp r0, #0
beq _021F342C
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #8]
b _021F342C
@@ -30680,7 +30686,7 @@ _021F33D8:
_021F33F8:
ldr r0, [r4, #8]
ldr r0, [r0, r5, lsl #2]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #8]
str r6, [r0, r5, lsl #2]
ldr r0, [r4, #4]
@@ -30689,36 +30695,36 @@ _021F33F8:
blt _021F33F8
_021F341C:
ldr r0, [r4, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #8]
_021F342C:
ldr r0, [r7, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r1, #0
mov r0, r7
str r1, [r7, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_021F3448: .word 0x0220DCE0
_021F344C: .word 0x0220DD00
_021F3450: .word 0x0220DD10
- arm_func_start FUN_021F3454
-FUN_021F3454: ; 0x021F3454
+ arm_func_start MOD04_021F3454
+MOD04_021F3454: ; 0x021F3454
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r0, #0x18
mov r5, r3
ldr r4, [r6]
- bl FUN_021DD860
+ bl MOD04_021DD860
cmp r0, #0
bne _021F3494
ldr r1, _021F34FC ; =0x0220DD24
mov r0, r6
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
mov r0, #1
ldmia sp!, {r4, r5, r6, lr}
add sp, sp, #0x10
@@ -30753,8 +30759,8 @@ _021F3494:
.align 2, 0
_021F34FC: .word 0x0220DD24
- arm_func_start FUN_021F3500
-FUN_021F3500: ; 0x021F3500
+ arm_func_start MOD04_021F3500
+MOD04_021F3500: ; 0x021F3500
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
mov r4, r0
@@ -30798,7 +30804,7 @@ _021F3574:
addeq sp, sp, #0x14
ldmeqia sp!, {r4, r5, r6, r7, pc}
mov r0, #0x10
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r3, r0
strne r7, [r3]
strne r6, [r3, #0xc]
@@ -30812,7 +30818,7 @@ _021F3574:
str r0, [sp, #4]
mov r0, r4
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
@@ -30821,8 +30827,8 @@ _021F35E8: .word 0x0220DD00
_021F35EC: .word 0x0220DD48
_021F35F0: .word 0x0220DD60
- arm_func_start FUN_021F35F4
-FUN_021F35F4: ; 0x021F35F4
+ arm_func_start MOD04_021F35F4
+MOD04_021F35F4: ; 0x021F35F4
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
mov r5, r0
@@ -30839,15 +30845,15 @@ FUN_021F35F4: ; 0x021F35F4
bne _021F3658
ldr r2, _021F37A8 ; =0x0220DDD0
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x198]
mov r0, r5
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F37AC ; =0x0220DDE4
mov r0, r5
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
_021F3658:
mov r1, #1
ldr r0, _021F37B0 ; =0x0220DDEC
@@ -30857,15 +30863,15 @@ _021F3658:
add r3, sp, #8
mov r0, r5
add r2, r4, #0x1f4
- bl FUN_021F28AC
+ bl MOD04_021F28AC
ldr r0, [r4, #0x1d4]
mvn r1, #0
cmp r0, r1
beq _021F36A4
mov r1, #2
- bl FUN_021EFD80
+ bl MOD04_021EFD80
ldr r0, [r4, #0x1d4]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
mvn r0, #0
str r0, [r4, #0x1d4]
_021F36A4:
@@ -30874,9 +30880,9 @@ _021F36A4:
cmp r0, r1
beq _021F36CC
mov r1, #2
- bl FUN_021EFD80
+ bl MOD04_021EFD80
ldr r0, [r4, #0x204]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
mvn r0, #0
str r0, [r4, #0x204]
_021F36CC:
@@ -30887,23 +30893,23 @@ _021F36CC:
str r0, [r4, #0x1a0]
_021F36E0:
ldr r0, [r4, #0x1dc]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x1dc]
ldr r0, [r4, #0x1ec]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x1ec]
ldr r0, [r4, #0x1f4]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x1f4]
ldr r0, [r4, #0x440]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x440]
ldr r0, [r4, #0x450]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x450]
ldr r1, [r4, #0x424]
@@ -30911,7 +30917,7 @@ _021F36E0:
beq _021F3750
_021F373C:
mov r0, r5
- bl FUN_021F6C84
+ bl MOD04_021F6C84
ldr r1, [r4, #0x424]
cmp r1, #0
bne _021F373C
@@ -30925,18 +30931,18 @@ _021F3764:
mov r1, r6
ldr r6, [r6, #0x3c]
mov r0, r5
- bl FUN_021F79E0
+ bl MOD04_021F79E0
cmp r6, #0
bne _021F3764
_021F377C:
mov r6, #0
str r6, [r4, #0x434]
- ldr r4, _021F37B4 ; =FUN_021F37B8
+ ldr r4, _021F37B4 ; =MOD04_021F37B8
_021F3788:
mov r0, r5
mov r1, r4
mov r2, r6
- bl FUN_021F848C
+ bl MOD04_021F848C
cmp r0, #0
beq _021F3788
add sp, sp, #0x10
@@ -30945,10 +30951,10 @@ _021F3788:
_021F37A8: .word 0x0220DDD0
_021F37AC: .word 0x0220DDE4
_021F37B0: .word 0x0220DDEC
-_021F37B4: .word FUN_021F37B8
+_021F37B4: .word MOD04_021F37B8
- arm_func_start FUN_021F37B8
-FUN_021F37B8: ; 0x021F37B8
+ arm_func_start MOD04_021F37B8
+MOD04_021F37B8: ; 0x021F37B8
stmdb sp!, {r4, r5, r6, lr}
mov r5, r1
ldr r1, [r5, #8]
@@ -30960,27 +30966,27 @@ FUN_021F37B8: ; 0x021F37B8
cmp r0, #0
bne _021F381C
ldr r0, [r1, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r5, #8]
mov r1, #0
str r1, [r0, #8]
ldr r0, [r5, #8]
ldr r0, [r0, #0xc]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r5, #8]
mov r1, #0
str r1, [r0, #0xc]
ldr r0, [r5, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r5, #8]
_021F381C:
ldr r0, [r5, #0x10]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r5, #0x10]
ldr r0, [r5, #0x18]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r5, #0x18]
str r0, [r5, #0x14]
@@ -30996,22 +31002,22 @@ _021F381C:
_021F3864:
mov r0, r6
mov r1, r5
- bl FUN_021F85A0
+ bl MOD04_021F85A0
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
_021F3878:
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021F3880
-FUN_021F3880: ; 0x021F3880
+ arm_func_start MOD04_021F3880
+MOD04_021F3880: ; 0x021F3880
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
ldr r4, [r5]
add r2, sp, #0
ldr r1, [r4, #0x1d4]
- bl FUN_021FB0FC
+ bl MOD04_021FB0FC
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {r4, r5, pc}
@@ -31021,11 +31027,11 @@ FUN_021F3880: ; 0x021F3880
ldr r1, _021F3920 ; =0x00000107
ldr r2, _021F3924 ; =0x0220DDF0
mov r0, r5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r5
mov r1, #4
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #4
mov r0, #4
ldmia sp!, {r4, r5, pc}
@@ -31054,8 +31060,8 @@ _021F3928: .word 0x0220DE18
_021F392C: .word 0x0220DE30
_021F3930: .word 0x000002EF
- arm_func_start FUN_021F3934
-FUN_021F3934: ; 0x021F3934
+ arm_func_start MOD04_021F3934
+MOD04_021F3934: ; 0x021F3934
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x2a0
mov r6, r2
@@ -31064,7 +31070,7 @@ FUN_021F3934: ; 0x021F3934
mov r1, r6
mov r2, #0
ldr r5, [r8]
- bl FUN_021FB2F8
+ bl MOD04_021FB2F8
cmp r0, #0
beq _021F3A34
ldr r2, [r5, #0x418]
@@ -31075,7 +31081,7 @@ FUN_021F3934: ; 0x021F3934
cmp r1, #0
beq _021F3994
mov r0, r8
- bl FUN_021F85B4
+ bl MOD04_021F85B4
mov r0, #0
str r0, [r5, #0x19c]
str r0, [r5, #0x1a0]
@@ -31088,7 +31094,7 @@ _021F3994:
add r2, sp, #0x4e
mov r0, r6
mov r3, #0x200
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
beq _021F39C8
add r0, sp, #0x4e
@@ -31103,11 +31109,11 @@ _021F39C8:
ldr r1, [r5, #0x418]
mov r0, r8
mov r2, r5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #4
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #4
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31115,11 +31121,11 @@ _021F3A08:
ldr r1, [r5, #0x418]
mov r0, r8
mov r2, r5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #4
mov r2, #0
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #4
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31143,11 +31149,11 @@ _021F3A58:
ldr r2, _021F3FD4 ; =0x0220DE58
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31156,17 +31162,17 @@ _021F3A9C:
mov r0, r6
mov r2, r4
mov r3, #0x80
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F3AE4
ldr r2, _021F3FD4 ; =0x0220DE58
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31176,7 +31182,7 @@ _021F3AE4:
beq _021F3B14
mov r0, r8
mov r1, r4
- bl FUN_021F401C
+ bl MOD04_021F401C
cmp r0, #0
addne sp, sp, #0x2a0
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31186,7 +31192,7 @@ _021F3AE4:
_021F3B14:
mov r0, r8
mov r1, r4
- bl FUN_021F42B8
+ bl MOD04_021F42B8
cmp r0, #0
addne sp, sp, #0x2a0
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31203,11 +31209,11 @@ _021F3B38:
ldr r2, _021F3FD4 ; =0x0220DE58
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31216,17 +31222,17 @@ _021F3B7C:
add r2, sp, #0x4e
mov r0, r6
mov r3, #0x200
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F3BC4
ldr r2, _021F3FE4 ; =0x0220DEA8
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31238,17 +31244,17 @@ _021F3BC4:
add r2, sp, #0x4e
mov r0, r6
mov r3, #0x200
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F3C18
ldr r2, _021F3FE4 ; =0x0220DEA8
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31258,7 +31264,7 @@ _021F3C18:
str r0, [r5, #0x1a0]
mov r0, r8
mov r1, r4
- bl FUN_021F42B8
+ bl MOD04_021F42B8
cmp r0, #0
addne sp, sp, #0x2a0
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31275,11 +31281,11 @@ _021F3C48:
ldr r2, _021F3FD4 ; =0x0220DE58
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31288,17 +31294,17 @@ _021F3C8C:
add r2, sp, #0x4e
mov r0, r6
mov r3, #0x200
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F3CD4
ldr r2, _021F3FE4 ; =0x0220DEA8
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31310,17 +31316,17 @@ _021F3CD4:
add r2, sp, #0x4e
mov r0, r6
mov r3, #0x200
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F3D28
ldr r2, _021F3FE4 ; =0x0220DEA8
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31332,17 +31338,17 @@ _021F3D28:
add r2, sp, #0x4e
mov r0, r6
mov r3, #0x200
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F3D7C
ldr r2, _021F3FE4 ; =0x0220DEA8
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31354,7 +31360,7 @@ _021F3D7C:
add r2, sp, #0x39
mov r0, r6
mov r3, #0x15
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
ldr r2, _021F3FF8 ; =0x00000474
cmp r0, #0
moveq r0, #0
@@ -31363,7 +31369,7 @@ _021F3D7C:
mov r0, r6
add r2, r5, r2
mov r3, #0x19
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streqb r0, [r5, #0x474]
@@ -31401,22 +31407,22 @@ _021F3E14:
mov r1, r0
add r0, sp, #0x4e
add r2, sp, #0x18
- bl FUN_021EF794
+ bl MOD04_021EF794
ldr r1, _021F4010 ; =0x0220DF5C
mov r0, r6
add r2, sp, #0x4e
mov r3, #0x200
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F3E9C
ldr r2, _021F3FE4 ; =0x0220DEA8
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31430,11 +31436,11 @@ _021F3E9C:
ldr r2, _021F4014 ; =0x0220DF64
mov r0, r8
mov r1, #0x108
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x2a0
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31444,7 +31450,7 @@ _021F3EE0:
beq _021F3F08
ldr r1, [r5, #0x1a0]
mov r0, r8
- bl FUN_021F8624
+ bl MOD04_021F8624
ldr r1, [r5, #0x1a0]
str r1, [r0]
ldr r1, [r5, #0x19c]
@@ -31459,12 +31465,12 @@ _021F3F08:
str r0, [sp, #0x14]
beq _021F3FA8
mov r0, #0x20
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021F3F50
ldr r1, _021F4018 ; =0x0220DF84
mov r0, r8
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x2a0
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31479,7 +31485,7 @@ _021F3F50:
add r1, sp, #0x39
add r0, r4, #8
mov r2, #0x15
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
str r7, [sp]
mov r0, #0
str r0, [sp, #4]
@@ -31487,14 +31493,14 @@ _021F3F50:
mov r0, r8
mov r3, r4
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
addne sp, sp, #0x2a0
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
_021F3FA8:
mov r0, r8
mov r1, r7
- bl FUN_021F6C84
+ bl MOD04_021F6C84
_021F3FB4:
mov r0, #0
add sp, sp, #0x2a0
@@ -31524,8 +31530,8 @@ _021F4010: .word 0x0220DF5C
_021F4014: .word 0x0220DF64
_021F4018: .word 0x0220DF84
- arm_func_start FUN_021F401C
-FUN_021F401C: ; 0x021F401C
+ arm_func_start MOD04_021F401C
+MOD04_021F401C: ; 0x021F401C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xec
mov fp, r0
@@ -31536,7 +31542,7 @@ FUN_021F401C: ; 0x021F401C
bl strlen
mov sb, r0
ldr r0, _021F427C ; =0x79707367
- bl FUN_021EFA2C
+ bl MOD04_021EFA2C
cmp sb, #0
mov sl, #0
bls _021F4090
@@ -31546,7 +31552,7 @@ FUN_021F401C: ; 0x021F401C
_021F4060:
mov r0, r7
mov r1, r6
- bl FUN_021EF9FC
+ bl MOD04_021EF9FC
add r1, r4, sl
add r1, r1, #0x100
add sl, sl, #1
@@ -31563,68 +31569,68 @@ _021F4090:
mov r2, sb
mov r3, #1
strb r6, [r0, sl]
- bl FUN_021EF820
+ bl MOD04_021EF820
ldr r2, _021F4280 ; =0x0220DF94
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F4284 ; =0x0220DFA0
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, fp
add r1, r4, #0x1f4
add r2, r4, #0x144
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F4288 ; =0x0220DFA8
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, fp
add r1, r4, #0x1f4
add r2, r4, #0x110
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F428C ; =0x0220DFB0
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, fp
add r1, r4, #0x1f4
add r2, sp, #0x1f
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F4290 ; =0x0220DFC0
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x46c]
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F4294 ; =0x0220DFCC
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F4298 ; =0x02210EA0
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F429C ; =0x0220DFD8
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x470]
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F42A0 ; =0x0220DEF8
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F42A4 ; =0x0000012F
mov r0, fp
add r1, r4, #0x1f4
add r2, r4, r2
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
add r0, r5, #0x200
ldrsb r0, [r0, #0xc2]
cmp r0, #0
@@ -31634,7 +31640,7 @@ _021F4090:
bl strlen
mov sl, r0
ldr r0, _021F427C ; =0x79707367
- bl FUN_021EFA2C
+ bl MOD04_021EFA2C
cmp sl, #0
mov r8, r6
bls _021F4210
@@ -31644,7 +31650,7 @@ _021F4090:
_021F41E0:
mov r0, r7
mov r1, r6
- bl FUN_021EF9FC
+ bl MOD04_021EF9FC
add r1, r5, r8
add r1, r1, #0x200
add r8, r8, #1
@@ -31661,24 +31667,24 @@ _021F4210:
mov r2, sl
mov r3, #1
strb r5, [r0, r8]
- bl FUN_021EF820
+ bl MOD04_021EF820
ldr r2, _021F42AC ; =0x0220DFE8
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
add r2, sp, #0x8d
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
_021F424C:
ldr r2, _021F42B0 ; =0x0220DFF4
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F42B4 ; =0x0220DDE4
mov r0, fp
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0
add sp, sp, #0xec
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -31700,8 +31706,8 @@ _021F42AC: .word 0x0220DFE8
_021F42B0: .word 0x0220DFF4
_021F42B4: .word 0x0220DDE4
- arm_func_start FUN_021F42B8
-FUN_021F42B8: ; 0x021F42B8
+ arm_func_start MOD04_021F42B8
+MOD04_021F42B8: ; 0x021F42B8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x28c
mov r5, r1
@@ -31709,7 +31715,7 @@ FUN_021F42B8: ; 0x021F42B8
add r0, r5, #0x80
mov r1, #0x20
ldr r4, [r6]
- bl FUN_021F4C48
+ bl MOD04_021F4C48
add r0, r5, #0x100
ldrsb r0, [r0, #0xc2]
cmp r0, #0
@@ -31722,7 +31728,7 @@ FUN_021F42B8: ; 0x021F42B8
mov r1, r0
mov r0, r7
add r2, r5, #0xa1
- bl FUN_021EF794
+ bl MOD04_021EF794
ldrsb r0, [r5, #0xc2]
cmp r0, #0
addne r0, r5, #0xc2
@@ -31757,7 +31763,7 @@ _021F4354:
mov r1, r0
add r0, sp, #0x35
add r2, sp, #0x14
- bl FUN_021EF794
+ bl MOD04_021EF794
ldr r0, [r4, #0x100]
cmp r0, #0
beq _021F43D0
@@ -31765,7 +31771,7 @@ _021F4354:
mov r0, r6
add r1, r4, #0x110
add r2, r4, #0x144
- bl FUN_021F84F4
+ bl MOD04_021F84F4
ldr r0, [sp, #0x10]
cmp r0, #0
ldrne r0, [r0, #4]
@@ -31777,26 +31783,26 @@ _021F43D0:
ldr r2, _021F462C ; =0x0220DFFC
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F4630 ; =0x0220DE88
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
add r2, r5, #0x80
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldrsb r0, [r5, #0xc2]
cmp r0, #0
beq _021F4430
ldr r2, _021F4634 ; =0x0220E004
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
add r2, r5, #0xc2
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
b _021F44A8
_021F4430:
add r0, r4, #0x100
@@ -31806,30 +31812,30 @@ _021F4430:
ldr r2, _021F4638 ; =0x0220DEF8
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F461C ; =0x0000012F
mov r0, r6
add r1, r4, #0x1f4
add r2, r4, r2
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
b _021F44A8
_021F4468:
ldr r2, _021F463C ; =0x0220E010
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
add r2, r4, #0x110
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F4640 ; =0x0220E018
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
add r2, r4, #0x144
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
_021F44A8:
ldr r0, [r4, #0x19c]
cmp r0, #0
@@ -31837,11 +31843,11 @@ _021F44A8:
ldr r2, _021F4644 ; =0x0220DE9C
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x19c]
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
_021F44D4:
ldr r0, [r4, #0x1a0]
cmp r0, #0
@@ -31849,32 +31855,32 @@ _021F44D4:
ldr r2, _021F4648 ; =0x0220DED8
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x1a0]
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
_021F4500:
ldr r2, _021F464C ; =0x0220E01C
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
add r2, sp, #0x14
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r0, [r4, #0x10c]
cmp r0, #1
bne _021F453C
ldr r2, _021F4650 ; =0x0220E028
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
_021F453C:
ldr r2, _021F4654 ; =0x0220E034
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r1, [r4, #0x208]
mov r0, r6
mov r1, r1, lsl #0x10
@@ -31889,39 +31895,39 @@ _021F453C:
mov r2, r1, lsl #0x10
add r1, r4, #0x1f4
mov r2, r2, asr #0x10
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F4658 ; =0x0220DFC0
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x46c]
mov r0, r6
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
mov r0, r6
add r1, r4, #0x1f4
ldr r2, _021F465C ; =0x0220DFCC
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
ldr r2, _021F4660 ; =0x02210EA0
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
ldr r2, _021F4664 ; =0x0220DFD8
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
ldr r2, [r4, #0x470]
- bl FUN_021F2F64
+ bl MOD04_021F2F64
mov r0, r6
add r1, r4, #0x1f4
ldr r2, _021F4668 ; =0x0220DFF4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r6
add r1, r4, #0x1f4
ldr r2, _021F466C ; =0x0220DDE4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0
add sp, sp, #0x28c
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -31950,8 +31956,8 @@ _021F4664: .word 0x0220DFD8
_021F4668: .word 0x0220DFF4
_021F466C: .word 0x0220DDE4
- arm_func_start FUN_021F4670
-FUN_021F4670: ; 0x021F4670
+ arm_func_start MOD04_021F4670
+MOD04_021F4670: ; 0x021F4670
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov r8, r0
@@ -31962,7 +31968,7 @@ FUN_021F4670: ; 0x021F4670
mov r5, r3
cmp r1, #4
bne _021F46A8
- bl FUN_021F14C0
+ bl MOD04_021F14C0
cmp r0, #0
addne sp, sp, #0x10
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31972,7 +31978,7 @@ _021F46A8:
beq _021F46CC
ldr r1, _021F48AC ; =0x0220E03C
mov r0, r8
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x10
mov r0, #2
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -31992,7 +31998,7 @@ _021F46EC:
_021F46F8:
ldr r1, _021F48B0 ; =0x0220E050
mov r0, r8
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x10
mov r0, #2
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -32002,30 +32008,30 @@ _021F4710:
add r0, r4, #0x110
mov r2, #0x1f
str r3, [r4, #0x10c]
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r0, _021F48B4 ; =0x0000012F
mov r1, r6
add r0, r4, r0
mov r2, #0x15
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
mov r1, r5
add r0, r4, #0x144
mov r2, #0x33
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r0, _021F48B8 ; =0x00000177
ldr r1, [sp, #0x28]
add r0, r4, r0
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
add r0, r4, #0x144
- bl FUN_021F01C4
+ bl MOD04_021F01C4
mov r0, #0x308
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021F4790
ldr r1, _021F48BC ; =0x0220DF84
mov r0, r8
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x10
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -32045,12 +32051,12 @@ _021F4790:
beq _021F47E4
add r0, r4, #0xc2
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r0, _021F48C0 ; =0x000001C2
ldr r1, [sp, #0x30]
add r0, r4, r0
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F47E4:
ldr r1, [sp, #0x34]
cmp r1, #0
@@ -32058,7 +32064,7 @@ _021F47E4:
ldr r0, _021F48C4 ; =0x000002C2
mov r2, #0x41
add r0, r4, r0
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F4800:
ldr r1, [sp, #0x40]
ldr r0, [sp, #0x44]
@@ -32070,23 +32076,23 @@ _021F4800:
mov r2, r4
mov r1, #0
str r5, [sp, #8]
- bl FUN_021F6D8C
+ bl MOD04_021F6D8C
cmp r0, #0
addne sp, sp, #0x10
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
ldr r1, [sp, #0xc]
mov r0, r8
- bl FUN_021F48C8
+ bl MOD04_021F48C8
movs r4, r0
beq _021F4878
ldr r1, [sp, #0xc]
mov r0, r8
str r4, [r1, #0x1c]
ldr r1, [sp, #0xc]
- bl FUN_021F6E44
+ bl MOD04_021F6E44
mov r0, r8
mov r1, #0
- bl FUN_021F35F4
+ bl MOD04_021F35F4
add sp, sp, #0x10
mov r0, r4
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -32097,7 +32103,7 @@ _021F4878:
beq _021F48A0
ldr r1, [r1, #0x18]
mov r0, r8
- bl FUN_021F0FD4
+ bl MOD04_021F0FD4
cmp r0, #0
addne sp, sp, #0x10
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -32114,8 +32120,8 @@ _021F48BC: .word 0x0220DF84
_021F48C0: .word 0x000001C2
_021F48C4: .word 0x000002C2
- arm_func_start FUN_021F48C8
-FUN_021F48C8: ; 0x021F48C8
+ arm_func_start MOD04_021F48C8
+MOD04_021F48C8: ; 0x021F48C8
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
mov r6, r0
@@ -32127,7 +32133,7 @@ FUN_021F48C8: ; 0x021F48C8
mov r0, #2
mov r1, #1
mov r2, #0
- bl FUN_021EFDB8
+ bl MOD04_021EFDB8
str r0, [r4, #0x204]
ldr r0, [r4, #0x204]
mvn r1, #0
@@ -32136,27 +32142,27 @@ FUN_021F48C8: ; 0x021F48C8
ldr r2, _021F4C1C ; =0x0220E064
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
_021F4938:
mov r1, #0
- bl FUN_021F017C
+ bl MOD04_021F017C
cmp r0, #0
bne _021F4974
ldr r2, _021F4C20 ; =0x0220E08C
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -32169,36 +32175,36 @@ _021F4974:
strb r0, [sp, #1]
ldr r0, [r4, #0x204]
mov r2, #8
- bl FUN_021EFD28
+ bl MOD04_021EFD28
mvn r1, #0
cmp r0, r1
bne _021F49D0
ldr r2, _021F4C24 ; =0x0220E0C0
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
_021F49D0:
ldr r0, [r4, #0x204]
mov r1, #5
- bl FUN_021EFCC8
+ bl MOD04_021EFCC8
mvn r1, #0
cmp r0, r1
bne _021F4A14
ldr r2, _021F4C28 ; =0x0220E0E8
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -32208,18 +32214,18 @@ _021F4A14:
ldr r0, [r4, #0x204]
add r1, sp, #0
add r2, sp, #8
- bl FUN_021EFB5C
+ bl MOD04_021EFB5C
mvn r1, #0
cmp r0, r1
bne _021F4A64
ldr r2, _021F4C2C ; =0x0220E114
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -32236,7 +32242,7 @@ _021F4A80:
mov r0, #2
mov r1, #1
mov r2, #0
- bl FUN_021EFDB8
+ bl MOD04_021EFDB8
str r0, [r4, #0x1d4]
ldr r0, [r4, #0x1d4]
mvn r1, #0
@@ -32245,27 +32251,27 @@ _021F4A80:
ldr r2, _021F4C1C ; =0x0220E064
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
_021F4AD0:
mov r1, #0
- bl FUN_021F017C
+ bl MOD04_021F017C
cmp r0, #0
bne _021F4B0C
ldr r2, _021F4C20 ; =0x0220E08C
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -32277,11 +32283,11 @@ _021F4B0C:
ldr r2, _021F4C34 ; =0x0220E144
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -32308,12 +32314,12 @@ _021F4B88:
strh r0, [sp, #2]
ldr r0, [r4, #0x1d4]
mov r2, #8
- bl FUN_021EFCE4
+ bl MOD04_021EFCE4
mvn r1, #0
cmp r0, r1
bne _021F4C04
ldr r0, [r4, #0x1d4]
- bl FUN_021EFB28
+ bl MOD04_021EFB28
mvn r1, #5
cmp r0, r1
beq _021F4C04
@@ -32326,11 +32332,11 @@ _021F4B88:
ldr r2, _021F4C44 ; =0x0220E198
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -32354,8 +32360,8 @@ _021F4C3C: .word 0x0220DE30
_021F4C40: .word 0x0000CC74
_021F4C44: .word 0x0220E198
- arm_func_start FUN_021F4C48
-FUN_021F4C48: ; 0x021F4C48
+ arm_func_start MOD04_021F4C48
+MOD04_021F4C48: ; 0x021F4C48
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov r8, r1
@@ -32389,62 +32395,62 @@ _021F4CB0: .word 0x0220E1C0
_021F4CB4: .word 0x08421085
_021F4CB8: .word 0x0000003E
- arm_func_start FUN_021F4CBC
-FUN_021F4CBC: ; 0x021F4CBC
+ arm_func_start MOD04_021F4CBC
+MOD04_021F4CBC: ; 0x021F4CBC
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0xc]
cmp r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r0]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #0xc]
mov r1, #0
str r1, [r0]
ldr r0, [r4, #0xc]
ldr r0, [r0, #4]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #0xc]
mov r1, #0
str r1, [r0, #4]
ldr r0, [r4, #0xc]
ldr r0, [r0, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #0xc]
mov r1, #0
str r1, [r0, #8]
ldr r0, [r4, #0xc]
ldr r0, [r0, #0xc]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #0xc]
mov r1, #0
str r1, [r0, #0xc]
ldr r0, [r4, #0xc]
ldr r0, [r0, #0x10]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #0xc]
mov r1, #0
str r1, [r0, #0x10]
ldr r0, [r4, #0xc]
ldr r0, [r0, #0x14]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #0xc]
mov r1, #0
str r1, [r0, #0x14]
ldr r0, [r4, #0xc]
ldr r0, [r0, #0xc8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #0xc]
mov r1, #0
str r1, [r0, #0xc8]
ldr r0, [r4, #0xc]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0xc]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F4D88
-FUN_021F4D88: ; 0x021F4D88
+ arm_func_start MOD04_021F4D88
+MOD04_021F4D88: ; 0x021F4D88
stmdb sp!, {r4, r5, r6, lr}
ldr r0, [r0]
mov r5, r1
@@ -32454,9 +32460,9 @@ FUN_021F4D88: ; 0x021F4D88
moveq r0, #1
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r5
- bl FUN_021F4CBC
+ bl MOD04_021F4CBC
mov r0, #0xf0
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r5, #0xc]
ldr r6, [r5, #0xc]
cmp r6, #0
@@ -32469,31 +32475,31 @@ _021F4DD0:
subs ip, ip, #1
bne _021F4DD0
ldr r0, [r4]
- bl FUN_021F0208
+ bl MOD04_021F0208
ldr r1, [r5, #0xc]
str r0, [r1]
ldr r0, [r4, #4]
- bl FUN_021F0208
+ bl MOD04_021F0208
ldr r1, [r5, #0xc]
str r0, [r1, #4]
ldr r0, [r4, #8]
- bl FUN_021F0208
+ bl MOD04_021F0208
ldr r1, [r5, #0xc]
str r0, [r1, #8]
ldr r0, [r4, #0xc]
- bl FUN_021F0208
+ bl MOD04_021F0208
ldr r1, [r5, #0xc]
str r0, [r1, #0xc]
ldr r0, [r4, #0x10]
- bl FUN_021F0208
+ bl MOD04_021F0208
ldr r1, [r5, #0xc]
str r0, [r1, #0x10]
ldr r0, [r4, #0x14]
- bl FUN_021F0208
+ bl MOD04_021F0208
ldr r1, [r5, #0xc]
str r0, [r1, #0x14]
ldr r0, [r4, #0xc8]
- bl FUN_021F0208
+ bl MOD04_021F0208
ldr r1, [r5, #0xc]
str r0, [r1, #0xc8]
_021F4E50:
@@ -32503,8 +32509,8 @@ _021F4E50:
moveq r0, #0
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021F4E64
-FUN_021F4E64: ; 0x021F4E64
+ arm_func_start MOD04_021F4E64
+MOD04_021F4E64: ; 0x021F4E64
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x20
mov r8, r0
@@ -32526,7 +32532,7 @@ FUN_021F4E64: ; 0x021F4E64
add r2, sp, #0xc
mov r0, r8
mov r1, r7
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
beq _021F4F94
ldr r0, [sp, #0xc]
@@ -32534,12 +32540,12 @@ FUN_021F4E64: ; 0x021F4E64
cmp r0, #0
beq _021F4F94
mov r0, #0x204
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021F4EFC
ldr r1, _021F5014 ; =0x0220E200
mov r0, r8
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x20
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -32547,7 +32553,7 @@ _021F4EFC:
ldr r0, [sp, #0xc]
mov r1, r4
ldr r0, [r0, #0xc]
- bl FUN_021F66D4
+ bl MOD04_021F66D4
mov r2, #0
str r2, [r4]
str r7, [r4, #4]
@@ -32561,7 +32567,7 @@ _021F4EFC:
mov r0, r8
mov r1, #2
str r7, [sp, #8]
- bl FUN_021F6D8C
+ bl MOD04_021F6D8C
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -32574,13 +32580,13 @@ _021F4EFC:
mov r0, r8
mov r3, r4
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
ldr r1, [sp, #0x10]
mov r0, r8
- bl FUN_021F6C84
+ bl MOD04_021F6C84
b _021F4FE8
_021F4F94:
str r6, [sp]
@@ -32591,7 +32597,7 @@ _021F4F94:
mov r1, #2
mov r2, #0
str r4, [sp, #8]
- bl FUN_021F6D8C
+ bl MOD04_021F6D8C
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -32600,7 +32606,7 @@ _021F4F94:
ldr r5, [r1, #0x18]
mov r1, r7
mov r2, r5
- bl FUN_021F5018
+ bl MOD04_021F5018
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -32609,7 +32615,7 @@ _021F4FE8:
beq _021F5008
mov r0, r8
mov r1, r5
- bl FUN_021F0FD4
+ bl MOD04_021F0FD4
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -32620,8 +32626,8 @@ _021F5008:
.align 2, 0
_021F5014: .word 0x0220E200
- arm_func_start FUN_021F5018
-FUN_021F5018: ; 0x021F5018
+ arm_func_start MOD04_021F5018
+MOD04_021F5018: ; 0x021F5018
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
@@ -32630,31 +32636,31 @@ FUN_021F5018: ; 0x021F5018
mov r6, r1
ldr r2, _021F50A8 ; =0x0220E210
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x198]
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F50AC ; =0x0220E228
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r2, r6
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
mov r0, r7
add r1, r4, #0x1f4
ldr r2, _021F50B0 ; =0x0220E234
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r2, r5
mov r0, r7
add r1, r4, #0x1f4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
mov r0, r7
add r1, r4, #0x1f4
ldr r2, _021F50B4 ; =0x0220E23C
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -32664,8 +32670,8 @@ _021F50AC: .word 0x0220E228
_021F50B0: .word 0x0220E234
_021F50B4: .word 0x0220E23C
- arm_func_start FUN_021F50B8
-FUN_021F50B8: ; 0x021F50B8
+ arm_func_start MOD04_021F50B8
+MOD04_021F50B8: ; 0x021F50B8
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x100
mov r6, r0
@@ -32673,7 +32679,7 @@ FUN_021F50B8: ; 0x021F50B8
ldr r4, [r6]
bne _021F50E4
ldr r1, _021F5810 ; =0x0220E264
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x100
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
@@ -32719,7 +32725,7 @@ _021F5170:
cmp r1, #0
bne _021F5190
ldr r1, _021F5810 ; =0x0220E264
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x100
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
@@ -32727,15 +32733,15 @@ _021F5190:
add r0, sp, #0
mov r1, r5
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
add r1, sp, #0
add r0, r4, #0x110
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5814 ; =0x0220E274
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32745,7 +32751,7 @@ _021F51D0:
cmp r1, #0
bne _021F51F0
ldr r1, _021F5810 ; =0x0220E264
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x100
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
@@ -32753,16 +32759,16 @@ _021F51F0:
add r0, sp, #0
mov r1, r5
mov r2, #0x15
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r0, _021F5818 ; =0x0000012F
add r1, sp, #0
add r0, r4, r0
mov r2, #0x15
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F581C ; =0x0220E27C
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32772,7 +32778,7 @@ _021F5234:
cmp r1, #0
bne _021F5254
ldr r1, _021F5810 ; =0x0220E264
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x100
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
@@ -32780,17 +32786,17 @@ _021F5254:
add r0, sp, #0
mov r1, r5
mov r2, #0x33
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
add r0, sp, #0
- bl FUN_021F01C4
+ bl MOD04_021F01C4
add r1, sp, #0
add r0, r4, #0x144
mov r2, #0x33
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5820 ; =0x0220E28C
add r2, sp, #0
mov r0, r6
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32800,7 +32806,7 @@ _021F529C:
cmp r1, #0
bne _021F52BC
ldr r1, _021F5810 ; =0x0220E264
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x100
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
@@ -32808,16 +32814,16 @@ _021F52BC:
add r0, sp, #0
mov r1, r5
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r0, _021F5824 ; =0x00000177
add r1, sp, #0
add r0, r4, r0
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5828 ; =0x0220E294
add r2, sp, #0
mov r0, r6
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32826,11 +32832,11 @@ _021F5300:
add r0, sp, #0
mov r1, r5
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F582C ; =0x0220E2A0
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32839,11 +32845,11 @@ _021F5330:
add r0, sp, #0
mov r1, r5
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5830 ; =0x0220E2AC
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32852,11 +32858,11 @@ _021F5360:
add r0, sp, #0
mov r1, r5
mov r2, #0x4c
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5834 ; =0x0220E2B8
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32865,11 +32871,11 @@ _021F5390:
add r0, sp, #0
mov r1, r5
mov r2, #0xb
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5838 ; =0x0220E2C4
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32881,7 +32887,7 @@ _021F53C0:
beq _021F53E8
ldr r1, _021F583C ; =0x0220E2D0
mov r0, r6
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x100
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
@@ -32889,11 +32895,11 @@ _021F53E8:
add r0, sp, #0
mov r1, r5
mov r2, #3
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5840 ; =0x0220E2E8
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32939,7 +32945,7 @@ _021F549C:
ldr r1, _021F5854 ; =0x0220E304
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32948,11 +32954,11 @@ _021F54BC:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5858 ; =0x0220E30C
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32963,7 +32969,7 @@ _021F54EC:
mov r2, r0
ldr r1, _021F585C ; =0x0000070D
mov r0, r6
- bl FUN_021F58A0
+ bl MOD04_021F58A0
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32974,7 +32980,7 @@ _021F5514:
mov r2, r0
ldr r1, _021F5860 ; =0x0000070E
mov r0, r6
- bl FUN_021F58A0
+ bl MOD04_021F58A0
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32983,11 +32989,11 @@ _021F553C:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5864 ; =0x0220E318
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -32998,7 +33004,7 @@ _021F556C:
mov r2, r0
mov r0, r6
mov r1, #0x710
- bl FUN_021F58A0
+ bl MOD04_021F58A0
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33007,11 +33013,11 @@ _021F5594:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5868 ; =0x0220E32C
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33022,7 +33028,7 @@ _021F55C4:
mov r2, r0
ldr r1, _021F586C ; =0x00000712
mov r0, r6
- bl FUN_021F58A0
+ bl MOD04_021F58A0
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33033,7 +33039,7 @@ _021F55EC:
mov r2, r0
ldr r1, _021F5870 ; =0x00000714
mov r0, r6
- bl FUN_021F58A0
+ bl MOD04_021F58A0
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33044,7 +33050,7 @@ _021F5614:
mov r2, r0
ldr r1, _021F5874 ; =0x00000715
mov r0, r6
- bl FUN_021F58A0
+ bl MOD04_021F58A0
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33053,11 +33059,11 @@ _021F563C:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5878 ; =0x0220E340
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33066,11 +33072,11 @@ _021F566C:
add r0, sp, #0
mov r1, r5
mov r2, #0x33
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F587C ; =0x0220E34C
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33079,11 +33085,11 @@ _021F569C:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5880 ; =0x0220E354
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33092,11 +33098,11 @@ _021F56CC:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5884 ; =0x0220E35C
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33105,11 +33111,11 @@ _021F56FC:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5888 ; =0x0220E364
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33118,11 +33124,11 @@ _021F572C:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F588C ; =0x0220E36C
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33131,11 +33137,11 @@ _021F575C:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5890 ; =0x0220E374
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33144,11 +33150,11 @@ _021F578C:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5894 ; =0x0220E37C
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33157,11 +33163,11 @@ _021F57BC:
add r0, sp, #0
mov r1, r5
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r1, _021F5898 ; =0x0220E384
add r2, sp, #0
mov r0, r6
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5804
add sp, sp, #0x100
@@ -33169,7 +33175,7 @@ _021F57BC:
_021F57EC:
ldr r1, _021F589C ; =0x0220E248
mov r0, r6
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x100
mov r0, #2
ldmia sp!, {r4, r5, r6, pc}
@@ -33215,8 +33221,8 @@ _021F5894: .word 0x0220E37C
_021F5898: .word 0x0220E384
_021F589C: .word 0x0220E248
- arm_func_start FUN_021F58A0
-FUN_021F58A0: ; 0x021F58A0
+ arm_func_start MOD04_021F58A0
+MOD04_021F58A0: ; 0x021F58A0
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
ldr r3, _021F5D08 ; =0x00000706
@@ -33255,7 +33261,7 @@ _021F5924:
cmp r2, #0
bge _021F5940
ldr r1, _021F5D0C ; =0x0220E38C
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x10
mov r0, #2
ldmia sp!, {r4, pc}
@@ -33266,7 +33272,7 @@ _021F5940:
ldr r1, _021F5D14 ; =0x0220E2C4
add r2, sp, #0
mov r0, r4
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33284,7 +33290,7 @@ _021F596C:
_021F5990:
ldr r1, _021F5D20 ; =0x0220E304
ldr r2, _021F5D24 ; =0x0220E2F8
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33292,7 +33298,7 @@ _021F5990:
_021F59AC:
ldr r1, _021F5D20 ; =0x0220E304
ldr r2, _021F5D28 ; =0x0220E2FC
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33300,14 +33306,14 @@ _021F59AC:
_021F59C8:
ldr r1, _021F5D20 ; =0x0220E304
ldr r2, _021F5D2C ; =0x0220E300
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
ldmia sp!, {r4, pc}
_021F59E4:
ldr r1, _021F5D30 ; =0x0220E3A0
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x10
mov r0, #2
ldmia sp!, {r4, pc}
@@ -33318,7 +33324,7 @@ _021F59F8:
ldr r1, _021F5D34 ; =0x0220E30C
add r2, sp, #0
mov r0, r4
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33330,7 +33336,7 @@ _021F5A24:
ldr r1, _021F5D38 ; =0x0220E3B0
add r2, sp, #0
mov r0, r4
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33342,7 +33348,7 @@ _021F5A50:
ldr r1, _021F5D3C ; =0x0220E3C0
add r2, sp, #0
mov r0, r4
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33357,7 +33363,7 @@ _021F5A7C:
ldr r1, _021F5D40 ; =0x0220E3CC
add r2, sp, #0
mov r0, r4
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33372,7 +33378,7 @@ _021F5AB4:
ldr r1, _021F5D44 ; =0x0220E3D8
add r2, sp, #0
mov r0, r4
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33387,7 +33393,7 @@ _021F5AEC:
ldr r1, _021F5D48 ; =0x0220E3E8
add r2, sp, #0
mov r0, r4
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33399,7 +33405,7 @@ _021F5B24:
ldr r1, _021F5D4C ; =0x0220E3F8
add r2, sp, #0
mov r0, r4
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33411,7 +33417,7 @@ _021F5B50:
ldr r1, _021F5D50 ; =0x0220E408
add r2, sp, #0
mov r0, r4
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33425,7 +33431,7 @@ _021F5B7C:
ldr r1, _021F5D54 ; =0x0220E41C
add r2, sp, #0
mov r0, r4
- bl FUN_021F5D78
+ bl MOD04_021F5D78
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33437,7 +33443,7 @@ _021F5BB0:
ldr r1, _021F5D58 ; =0x0220E354
add r2, sp, #0
mov r0, r4
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33449,7 +33455,7 @@ _021F5BDC:
ldr r1, _021F5D5C ; =0x0220E35C
add r2, sp, #0
mov r0, r4
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33461,7 +33467,7 @@ _021F5C08:
ldr r1, _021F5D60 ; =0x0220E364
add r2, sp, #0
mov r0, r4
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33473,7 +33479,7 @@ _021F5C34:
ldr r1, _021F5D64 ; =0x0220E36C
add r2, sp, #0
mov r0, r4
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33485,7 +33491,7 @@ _021F5C60:
ldr r1, _021F5D68 ; =0x0220E374
add r2, sp, #0
mov r0, r4
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33497,7 +33503,7 @@ _021F5C8C:
ldr r1, _021F5D6C ; =0x0220E37C
add r2, sp, #0
mov r0, r4
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33509,7 +33515,7 @@ _021F5CB8:
ldr r1, _021F5D70 ; =0x0220E384
add r2, sp, #0
mov r0, r4
- bl FUN_021F5DB8
+ bl MOD04_021F5DB8
cmp r0, #0
beq _021F5CFC
add sp, sp, #0x10
@@ -33517,7 +33523,7 @@ _021F5CB8:
_021F5CE4:
ldr r1, _021F5D74 ; =0x0220E248
mov r0, r4
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x10
mov r0, #2
ldmia sp!, {r4, pc}
@@ -33555,46 +33561,46 @@ _021F5D6C: .word 0x0220E37C
_021F5D70: .word 0x0220E384
_021F5D74: .word 0x0220E248
- arm_func_start FUN_021F5D78
-FUN_021F5D78: ; 0x021F5D78
+ arm_func_start MOD04_021F5D78
+MOD04_021F5D78: ; 0x021F5D78
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r4, [r6]
mov r5, r2
mov r2, r1
add r1, r4, #0x450
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
cmp r0, #0
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r2, r5
add r1, r4, #0x450
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
cmp r0, #0
moveq r0, #0
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021F5DB8
-FUN_021F5DB8: ; 0x021F5DB8
+ arm_func_start MOD04_021F5DB8
+MOD04_021F5DB8: ; 0x021F5DB8
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r4, [r6]
mov r5, r2
mov r2, r1
add r1, r4, #0x440
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
cmp r0, #0
ldmneia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r2, r5
add r1, r4, #0x440
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
cmp r0, #0
moveq r0, #0
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021F5DF8
-FUN_021F5DF8: ; 0x021F5DF8
+ arm_func_start MOD04_021F5DF8
+MOD04_021F5DF8: ; 0x021F5DF8
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r4, [r6]
@@ -33603,19 +33609,19 @@ FUN_021F5DF8: ; 0x021F5DF8
cmp r2, #0
ble _021F5E54
ldr r2, _021F5EB0 ; =0x0220E42C
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x198]
mov r0, r6
mov r1, r5
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, [r4, #0x440]
mov r0, r6
mov r1, r5
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F5EB4 ; =0x0220E23C
mov r0, r6
mov r1, r5
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0
str r0, [r4, #0x448]
_021F5E54:
@@ -33625,19 +33631,19 @@ _021F5E54:
ldr r2, _021F5EB8 ; =0x0220E444
mov r0, r6
mov r1, r5
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r4, #0x198]
mov r0, r6
mov r1, r5
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, [r4, #0x450]
mov r0, r6
mov r1, r5
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F5EB4 ; =0x0220E23C
mov r0, r6
mov r1, r5
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0
str r0, [r4, #0x458]
_021F5EA8:
@@ -33648,8 +33654,8 @@ _021F5EB0: .word 0x0220E42C
_021F5EB4: .word 0x0220E23C
_021F5EB8: .word 0x0220E444
- arm_func_start FUN_021F5EBC
-FUN_021F5EBC: ; 0x021F5EBC
+ arm_func_start MOD04_021F5EBC
+MOD04_021F5EBC: ; 0x021F5EBC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x26c
mov r4, r2
@@ -33658,7 +33664,7 @@ FUN_021F5EBC: ; 0x021F5EBC
mov r1, r4
mov r2, #1
ldr r8, [sl]
- bl FUN_021FB2F8
+ bl MOD04_021FB2F8
cmp r0, #0
addne sp, sp, #0x26c
movne r0, #4
@@ -33672,11 +33678,11 @@ FUN_021F5EBC: ; 0x021F5EBC
ldr r2, _021F664C ; =0x0220E460
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x26c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -33685,17 +33691,17 @@ _021F5F34:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F5F7C
ldr r2, _021F664C ; =0x0220E460
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x26c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -33714,7 +33720,7 @@ _021F5FA4:
add r2, sp, #8
mov r0, sl
mov r1, sb
- bl FUN_021F85E8
+ bl MOD04_021F85E8
mov r0, #0
add r6, sp, #0x12c
mov r1, r0
@@ -33744,7 +33750,7 @@ _021F5FCC:
mov r3, #0x1f
str r2, [sp, #0x12c]
str r5, [sp, #0x1f4]
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
ldreq r0, [sp, #0x12c]
moveq r1, #0
@@ -33753,7 +33759,7 @@ _021F5FCC:
ldr r1, _021F6664 ; =0x0220E27C
mov r0, r4
mov r3, #0x15
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
ldreq r0, [sp, #0x130]
moveq r1, #0
@@ -33762,7 +33768,7 @@ _021F5FCC:
ldr r1, _021F6668 ; =0x0220E28C
mov r0, r4
mov r3, #0x33
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
ldreq r0, [sp, #0x134]
moveq r1, #0
@@ -33771,7 +33777,7 @@ _021F5FCC:
ldr r1, _021F666C ; =0x0220E2A0
mov r0, r4
mov r3, #0x1f
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
ldreq r0, [sp, #0x138]
moveq r1, #0
@@ -33780,7 +33786,7 @@ _021F5FCC:
ldr r1, _021F6670 ; =0x0220E2AC
mov r0, r4
mov r3, #0x1f
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
ldreq r0, [sp, #0x13c]
moveq r1, #0
@@ -33789,7 +33795,7 @@ _021F5FCC:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
mvneq r0, #0
streq r0, [sp, #0x144]
@@ -33802,7 +33808,7 @@ _021F60F8:
ldr r1, _021F6678 ; =0x0220E2B8
mov r0, r4
mov r3, #0x4c
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
ldreq r0, [sp, #0x140]
moveq r1, #0
@@ -33811,7 +33817,7 @@ _021F60F8:
add r2, sp, #0x148
mov r0, r4
mov r3, #0xb
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
add r2, sp, #0x100
@@ -33820,7 +33826,7 @@ _021F60F8:
add r2, r2, #0x53
mov r0, r4
mov r3, #3
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streqb r0, [sp, #0x153]
@@ -33828,7 +33834,7 @@ _021F60F8:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x158]
@@ -33842,7 +33848,7 @@ _021F6194:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x15c]
@@ -33856,7 +33862,7 @@ _021F61C8:
add r2, sp, #0x160
mov r0, r4
mov r3, #0x80
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streqb r0, [sp, #0x160]
@@ -33864,7 +33870,7 @@ _021F61C8:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x1e0]
@@ -33879,7 +33885,7 @@ _021F61C8:
add r3, sp, #0x1e4
mov r0, sl
str r5, [sp]
- bl FUN_021F68D8
+ bl MOD04_021F68D8
cmp r0, #0
addne sp, sp, #0x26c
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -33888,7 +33894,7 @@ _021F6244:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
ldreq r0, _021F6698 ; =0x00000502
streq r0, [sp, #0x1ec]
@@ -33908,7 +33914,7 @@ _021F6290:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
mvneq r0, #0
streq r0, [sp, #0x1f0]
@@ -33921,7 +33927,7 @@ _021F62C0:
ldr r1, _021F66A4 ; =0x0220E34C
mov r0, r4
mov r3, #0x33
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
ldreq r0, [sp, #0x1f4]
moveq r1, #0
@@ -33930,7 +33936,7 @@ _021F62C0:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x1f8]
@@ -33943,7 +33949,7 @@ _021F6314:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x1fc]
@@ -33956,7 +33962,7 @@ _021F6344:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x200]
@@ -33969,7 +33975,7 @@ _021F6374:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x204]
@@ -33982,7 +33988,7 @@ _021F63A4:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x208]
@@ -33995,7 +34001,7 @@ _021F63D4:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x20c]
@@ -34008,7 +34014,7 @@ _021F6404:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x210]
@@ -34021,7 +34027,7 @@ _021F6434:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x214]
@@ -34034,7 +34040,7 @@ _021F6464:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streq r0, [sp, #0x218]
@@ -34047,17 +34053,17 @@ _021F6494:
add r2, sp, #0x14
mov r0, r4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F64DC
ldr r2, _021F664C ; =0x0220E460
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x26c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -34080,7 +34086,7 @@ _021F64F4:
bne _021F6528
mov r0, sl
mov r1, sb
- bl FUN_021F8624
+ bl MOD04_021F8624
str r0, [sp, #8]
_021F6528:
mov r6, r4
@@ -34098,19 +34104,19 @@ _021F653C:
beq _021F6564
mov r0, sl
mov r1, sb
- bl FUN_021F8624
+ bl MOD04_021F8624
str r0, [sp, #8]
_021F6564:
cmp r6, #0
beq _021F6594
ldr r0, [sp, #8]
ldr r0, [r0, #0x18]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r1, [sp, #8]
mov r2, #0
add r0, sp, #0x14
str r2, [r1, #0x18]
- bl FUN_021F0208
+ bl MOD04_021F0208
ldr r1, [sp, #8]
str r0, [r1, #0x18]
_021F6594:
@@ -34120,7 +34126,7 @@ _021F6594:
ldr r1, [sp, #8]
add r2, sp, #0x12c
mov r0, sl
- bl FUN_021F4D88
+ bl MOD04_021F4D88
_021F65B0:
ldr r1, [fp, #0xc]
ldr r0, [fp, #0x10]
@@ -34129,19 +34135,19 @@ _021F65B0:
str r0, [sp, #0x10]
beq _021F6630
mov r0, #0x204
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021F65F0
ldr r1, _021F66D0 ; =0x0220E200
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x26c
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021F65F0:
add r0, sp, #0x12c
mov r1, r4
- bl FUN_021F66D4
+ bl MOD04_021F66D4
mov r0, #0
str r0, [r4]
str sb, [r4, #4]
@@ -34151,14 +34157,14 @@ _021F65F0:
mov r0, sl
mov r3, r4
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
addne sp, sp, #0x26c
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021F6630:
mov r0, sl
mov r1, fp
- bl FUN_021F6C84
+ bl MOD04_021F6C84
mov r0, #0
add sp, sp, #0x26c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -34199,8 +34205,8 @@ _021F66C8: .word 0x0220E4D4
_021F66CC: .word 0x0220E4DC
_021F66D0: .word 0x0220E200
- arm_func_start FUN_021F66D4
-FUN_021F66D4: ; 0x021F66D4
+ arm_func_start MOD04_021F66D4
+MOD04_021F66D4: ; 0x021F66D4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -34212,7 +34218,7 @@ FUN_021F66D4: ; 0x021F66D4
beq _021F6704
add r0, r4, #8
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F6704:
ldr r1, [r5, #4]
cmp r1, #0
@@ -34221,7 +34227,7 @@ _021F6704:
beq _021F6724
add r0, r4, #0x27
mov r2, #0x15
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F6724:
ldr r1, [r5, #8]
cmp r1, #0
@@ -34230,7 +34236,7 @@ _021F6724:
beq _021F6744
add r0, r4, #0x3c
mov r2, #0x33
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F6744:
ldr r1, [r5, #0xc]
cmp r1, #0
@@ -34239,7 +34245,7 @@ _021F6744:
beq _021F6764
add r0, r4, #0x6f
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F6764:
ldr r1, [r5, #0x10]
cmp r1, #0
@@ -34248,7 +34254,7 @@ _021F6764:
beq _021F6784
add r0, r4, #0x8e
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F6784:
ldr r1, [r5, #0x14]
cmp r1, #0
@@ -34257,19 +34263,19 @@ _021F6784:
beq _021F67A4
add r0, r4, #0xad
mov r2, #0x4c
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F67A4:
ldr r3, [r5, #0x18]
add r0, r4, #0x100
add r1, r5, #0x1c
mov r2, #0xb
str r3, [r4, #0xfc]
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r0, _021F68D4 ; =0x0000010B
add r1, r5, #0x27
add r0, r4, r0
mov r2, #3
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r0, [r5, #0x2c]
adds r1, r5, #0x34
str r0, [r4, #0x110]
@@ -34280,7 +34286,7 @@ _021F67A4:
beq _021F67FC
add r0, r4, #0x118
mov r2, #0x80
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F67FC:
ldr r0, [r5, #0xb4]
str r0, [r4, #0x198]
@@ -34299,7 +34305,7 @@ _021F67FC:
beq _021F6844
add r0, r4, #0x1ac
mov r2, #0x33
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F6844:
ldr r0, [r5, #0x18]
str r0, [r4, #0xfc]
@@ -34340,8 +34346,8 @@ _021F6844:
.align 2, 0
_021F68D4: .word 0x0000010B
- arm_func_start FUN_021F68D8
-FUN_021F68D8: ; 0x021F68D8
+ arm_func_start MOD04_021F68D8
+MOD04_021F68D8: ; 0x021F68D8
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
ldr ip, _021F6978 ; =0x0000FFFF
@@ -34356,7 +34362,7 @@ FUN_021F68D8: ; 0x021F68D8
mov r1, r6
mov r2, r5
mov r8, r3
- bl FUN_021F6988
+ bl MOD04_021F6988
cmp r0, #0
bne _021F6930
ldr r0, _021F697C ; =0x0220E4E4
@@ -34368,7 +34374,7 @@ _021F6930:
mov r0, r7
mov r1, r6
mov r2, r5
- bl FUN_021F6988
+ bl MOD04_021F6988
cmp r0, #0
strne r7, [sb]
ldrne r0, [sp, #0x20]
@@ -34379,7 +34385,7 @@ _021F6930:
ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc}
ldr r1, _021F6984 ; =0x0220E4FC
mov r0, r4
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
mov r0, #2
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
@@ -34389,8 +34395,8 @@ _021F697C: .word 0x0220E4E4
_021F6980: .word 0x0220E4A0
_021F6984: .word 0x0220E4FC
- arm_func_start FUN_021F6988
-FUN_021F6988: ; 0x021F6988
+ arm_func_start MOD04_021F6988
+MOD04_021F6988: ; 0x021F6988
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
cmp r0, #0
@@ -34521,8 +34527,8 @@ _021F6B44: .word 0x00000190
_021F6B48: .word 0x0000076C
_021F6B4C: .word 0x0000081F
- arm_func_start FUN_021F6B50
-FUN_021F6B50: ; 0x021F6B50
+ arm_func_start MOD04_021F6B50
+MOD04_021F6B50: ; 0x021F6B50
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r1
@@ -34538,25 +34544,25 @@ _021F6B70: ; jump table
b _021F6BB4 ; case 3
b _021F6BA8 ; case 4
_021F6B84:
- bl FUN_021F3934
+ bl MOD04_021F3934
mov r4, r0
b _021F6BD4
_021F6B90:
- bl FUN_021F8710
+ bl MOD04_021F8710
mov r4, r0
b _021F6BD4
_021F6B9C:
- bl FUN_021F5EBC
+ bl MOD04_021F5EBC
mov r4, r0
b _021F6BD4
_021F6BA8:
- bl FUN_021FADE8
+ bl MOD04_021FADE8
mov r4, r0
b _021F6BD4
_021F6BB4:
ldr r1, _021F6BE8 ; =0x0220E50C
mov r2, r3
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
ldr r0, _021F6BEC ; =0x0220E554
ldr r1, _021F6BF0 ; =0x0220E558
ldr r3, _021F6BF4 ; =0x00000146
@@ -34574,8 +34580,8 @@ _021F6BEC: .word 0x0220E554
_021F6BF0: .word 0x0220E558
_021F6BF4: .word 0x00000146
- arm_func_start FUN_021F6BF8
-FUN_021F6BF8: ; 0x021F6BF8
+ arm_func_start MOD04_021F6BF8
+MOD04_021F6BF8: ; 0x021F6BF8
ldr r0, [r0]
ldr r1, [r0, #0x424]
cmp r1, #0
@@ -34596,8 +34602,8 @@ _021F6C30:
mov r0, #0
bx lr
- arm_func_start FUN_021F6C38
-FUN_021F6C38: ; 0x021F6C38
+ arm_func_start MOD04_021F6C38
+MOD04_021F6C38: ; 0x021F6C38
ldr r0, [r0]
ldr r3, [r0, #0x424]
cmp r3, #0
@@ -34621,8 +34627,8 @@ _021F6C70:
mov r0, #0
bx lr
- arm_func_start FUN_021F6C84
-FUN_021F6C84: ; 0x021F6C84
+ arm_func_start MOD04_021F6C84
+MOD04_021F6C84: ; 0x021F6C84
stmdb sp!, {lr}
sub sp, sp, #4
ldr ip, [r0]
@@ -34639,7 +34645,7 @@ _021F6CA4:
streq r2, [ip, #0x424]
ldrne r2, [r1, #0x20]
strne r2, [r3, #0x20]
- bl FUN_021F6CE4
+ bl MOD04_021F6CE4
add sp, sp, #4
ldmfd sp!, {pc}
_021F6CCC:
@@ -34650,8 +34656,8 @@ _021F6CCC:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021F6CE4
-FUN_021F6CE4: ; 0x021F6CE4
+ arm_func_start MOD04_021F6CE4
+MOD04_021F6CE4: ; 0x021F6CE4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r1
@@ -34674,32 +34680,32 @@ FUN_021F6CE4: ; 0x021F6CE4
_021F6D30:
ldr r0, [r4, #4]
mov r1, #2
- bl FUN_021EFD80
+ bl MOD04_021EFD80
ldr r0, [r4, #4]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
ldr r0, [r4, #0x18]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x18]
ldr r0, [r4, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #8]
_021F6D64:
ldr r0, [r5, #4]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r1, #0
mov r0, r5
str r1, [r5, #4]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021F6D84: .word 0x0220E568
_021F6D88: .word 0x0220E558
- arm_func_start FUN_021F6D8C
-FUN_021F6D8C: ; 0x021F6D8C
+ arm_func_start MOD04_021F6D8C
+MOD04_021F6D8C: ; 0x021F6D8C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r8, r0
mov r0, #0x24
@@ -34707,12 +34713,12 @@ FUN_021F6D8C: ; 0x021F6D8C
mov r6, r2
mov r5, r3
ldr r4, [r8]
- bl FUN_021DD860
+ bl MOD04_021DD860
cmp r0, #0
bne _021F6DC8
ldr r1, _021F6E40 ; =0x0220E588
mov r0, r8
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021F6DC8:
@@ -34750,8 +34756,8 @@ _021F6E10:
.align 2, 0
_021F6E40: .word 0x0220E588
- arm_func_start FUN_021F6E44
-FUN_021F6E44: ; 0x021F6E44
+ arm_func_start MOD04_021F6E44
+MOD04_021F6E44: ; 0x021F6E44
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
movs r7, r0
@@ -34799,12 +34805,12 @@ _021F6ED4: ; jump table
b _021F70DC ; case 4
_021F6EE8:
mov r0, #0x20
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021F6F10
ldr r1, _021F7178 ; =0x0220E588
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x14
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -34828,19 +34834,19 @@ _021F6F10:
add r1, sp, #8
mov r0, r7
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F715C
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
_021F6F70:
mov r0, #8
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r3, r0
bne _021F6F98
ldr r1, _021F7178 ; =0x0220E588
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x14
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -34861,19 +34867,19 @@ _021F6F98:
str r2, [sp, #4]
mov r0, r7
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F715C
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
_021F6FEC:
mov r0, #0x204
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021F7014
ldr r1, _021F7178 ; =0x0220E588
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x14
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -34890,19 +34896,19 @@ _021F7014:
mov r0, r7
mov r3, r4
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F715C
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
_021F7058:
mov r0, #0x10
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r3, r0
bne _021F7080
ldr r1, _021F7178 ; =0x0220E588
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x14
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -34926,19 +34932,19 @@ _021F708C:
add r1, sp, #8
mov r0, r7
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F715C
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
_021F70DC:
mov r0, #4
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r3, r0
bne _021F7104
ldr r1, _021F7178 ; =0x0220E588
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x14
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -34955,7 +34961,7 @@ _021F7104:
str r2, [sp, #4]
mov r0, r7
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F715C
add sp, sp, #0x14
@@ -34979,8 +34985,8 @@ _021F7178: .word 0x0220E588
_021F717C: .word 0x00000201
_021F7180: .word 0x0220E554
- arm_func_start FUN_021F7184
-FUN_021F7184: ; 0x021F7184
+ arm_func_start MOD04_021F7184
+MOD04_021F7184: ; 0x021F7184
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x24
movs r6, r1
@@ -35010,7 +35016,7 @@ _021F71D4:
add r2, sp, #0
mov r0, r7
mov r1, r6
- bl FUN_021F2C58
+ bl MOD04_021F2C58
cmp r0, #0
addne sp, sp, #0x24
ldmneia sp!, {r4, r5, r6, r7, pc}
@@ -35018,19 +35024,19 @@ _021F71D4:
mov r1, r6
mov r2, r5
mov r3, r4
- bl FUN_021F2C88
+ bl MOD04_021F2C88
cmp r0, #0
addne sp, sp, #0x24
ldmneia sp!, {r4, r5, r6, r7, pc}
mov r0, r7
mov r1, r6
mov r2, #0
- bl FUN_021F2D8C
+ bl MOD04_021F2D8C
cmp r0, #0
addne sp, sp, #0x24
ldmneia sp!, {r4, r5, r6, r7, pc}
mov r0, #0
- bl FUN_021EFAC8
+ bl MOD04_021EFAC8
add r0, r0, #0x12c
str r0, [r6, #0x10]
mov r0, #0
@@ -35043,8 +35049,8 @@ _021F7260: .word 0x00000389
_021F7264: .word 0x0220E5F0
_021F7268: .word 0x0220E5F4
- arm_func_start FUN_021F726C
-FUN_021F726C: ; 0x021F726C
+ arm_func_start MOD04_021F726C
+MOD04_021F726C: ; 0x021F726C
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x4c
mov sb, r0
@@ -35071,7 +35077,7 @@ _021F72A8:
add r2, sp, #8
mov r0, sb
mov r1, r8
- bl FUN_021F2C58
+ bl MOD04_021F2C58
add sp, sp, #0x4c
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
@@ -35080,8 +35086,8 @@ _021F72E0: .word 0x0220E5E4
_021F72E4: .word 0x00000376
_021F72E8: .word 0x0220E610
- arm_func_start FUN_021F72EC
-FUN_021F72EC: ; 0x021F72EC
+ arm_func_start MOD04_021F72EC
+MOD04_021F72EC: ; 0x021F72EC
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x18
movs r7, r1
@@ -35117,35 +35123,35 @@ _021F7338:
ldr r2, _021F746C ; =0x0220E634
mov r0, r8
str r6, [sp, #0x10]
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
add r1, sp, #0
mov r0, r8
mov r2, r6
- bl FUN_021F2F64
+ bl MOD04_021F2F64
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
ldr r2, _021F7470 ; =0x0220E638
add r1, sp, #0
mov r0, r8
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
add r1, sp, #0
mov r0, r8
mov r2, r4
- bl FUN_021F2F64
+ bl MOD04_021F2F64
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
ldr r2, _021F7474 ; =0x0220E640
add r1, sp, #0
mov r0, r8
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -35155,22 +35161,22 @@ _021F7338:
mov r2, r5
mov r3, r4
str ip, [sp, #0x14]
- bl FUN_021F2FCC
+ bl MOD04_021F2FCC
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
add r1, sp, #0
mov r0, r8
mov r2, #0
- bl FUN_021F30D4
+ bl MOD04_021F30D4
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
ldr r0, [r7, #0x38]
add r1, sp, #0
- bl FUN_021EEFA8
+ bl MOD04_021EEFA8
mov r0, #0
- bl FUN_021EFAC8
+ bl MOD04_021EFAC8
add r0, r0, #0x12c
str r0, [r7, #0x10]
mov r0, #0
@@ -35185,20 +35191,20 @@ _021F746C: .word 0x0220E634
_021F7470: .word 0x0220E638
_021F7474: .word 0x0220E640
- arm_func_start FUN_021F7478
-FUN_021F7478: ; 0x021F7478
+ arm_func_start MOD04_021F7478
+MOD04_021F7478: ; 0x021F7478
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r4, r1
ldr r1, [r4, #0xc]
add r2, sp, #8
mov r5, r0
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
bne _021F74B4
ldr r1, _021F7600 ; =0x0220E648
mov r0, r5
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0xc
mov r0, #3
ldmia sp!, {r4, r5, pc}
@@ -35206,7 +35212,7 @@ _021F74B4:
mov r0, #2
mov r1, #1
mov r2, #0
- bl FUN_021EFDB8
+ bl MOD04_021EFDB8
str r0, [r4, #8]
ldr r0, [r4, #8]
mvn r1, #0
@@ -35215,33 +35221,33 @@ _021F74B4:
ldr r2, _021F7604 ; =0x0220E664
mov r0, r5
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r5
mov r1, #3
mov r2, #0
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0xc
mov r0, #3
ldmia sp!, {r4, r5, pc}
_021F7504:
mov r1, #0
- bl FUN_021F017C
+ bl MOD04_021F017C
cmp r0, #0
bne _021F7540
ldr r2, _021F7608 ; =0x0220E68C
mov r0, r5
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r5
mov r1, #3
mov r2, #0
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0xc
mov r0, #3
ldmia sp!, {r4, r5, pc}
_021F7540:
ldr r0, [r4, #8]
- bl FUN_021F7854
+ bl MOD04_021F7854
add r1, sp, #0
mov r0, #0
str r0, [r1]
@@ -35257,12 +35263,12 @@ _021F7540:
ldr r0, [r0, #0x14]
strh r0, [sp, #2]
ldr r0, [r4, #8]
- bl FUN_021EFCE4
+ bl MOD04_021EFCE4
mvn r1, #0
cmp r0, r1
bne _021F75EC
ldr r0, [r4, #8]
- bl FUN_021EFB28
+ bl MOD04_021EFB28
mvn r1, #5
cmp r0, r1
beq _021F75EC
@@ -35275,11 +35281,11 @@ _021F7540:
ldr r2, _021F760C ; =0x0220E6C0
mov r0, r5
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r5
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0xc
mov r0, #3
ldmia sp!, {r4, r5, pc}
@@ -35295,8 +35301,8 @@ _021F7604: .word 0x0220E664
_021F7608: .word 0x0220E68C
_021F760C: .word 0x0220E6C0
- arm_func_start FUN_021F7610
-FUN_021F7610: ; 0x021F7610
+ arm_func_start MOD04_021F7610
+MOD04_021F7610: ; 0x021F7610
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x14
mov r2, #0
@@ -35307,7 +35313,7 @@ FUN_021F7610: ; 0x021F7610
mov r1, #2
mov r5, r0
str r2, [sp, #8]
- bl FUN_021F6D8C
+ bl MOD04_021F6D8C
cmp r0, #0
addne sp, sp, #0x14
ldmneia sp!, {r4, r5, pc}
@@ -35315,7 +35321,7 @@ FUN_021F7610: ; 0x021F7610
ldr r1, [r4, #0xc]
ldr r2, [r0, #0x18]
mov r0, r5
- bl FUN_021F5018
+ bl MOD04_021F5018
cmp r0, #0
moveq r0, #0x65
streq r0, [r4]
@@ -35323,15 +35329,15 @@ FUN_021F7610: ; 0x021F7610
add sp, sp, #0x14
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021F7674
-FUN_021F7674: ; 0x021F7674
+ arm_func_start MOD04_021F7674
+MOD04_021F7674: ; 0x021F7674
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r5, [r0]
mov r0, #0x40
mov r7, r1
mov r6, r2
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
addeq sp, sp, #4
moveq r0, #0
@@ -35346,35 +35352,35 @@ FUN_021F7674: ; 0x021F7674
str r0, [r4, #8]
mov r0, #0
str r7, [r4, #0xc]
- bl FUN_021EFAC8
+ bl MOD04_021EFAC8
add r0, r0, #0x12c
str r0, [r4, #0x10]
ldr r3, [r5, #0x434]
- ldr r2, _021F7700 ; =FUN_021F7704
+ ldr r2, _021F7700 ; =MOD04_021F7704
mov r0, #0x18
mov r1, #0
str r3, [r4, #0x3c]
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
str r0, [r4, #0x38]
mov r0, r4
str r4, [r5, #0x434]
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
-_021F7700: .word FUN_021F7704
+_021F7700: .word MOD04_021F7704
- arm_func_start FUN_021F7704
-FUN_021F7704: ; 0x021F7704
+ arm_func_start MOD04_021F7704
+MOD04_021F7704: ; 0x021F7704
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F7720
-FUN_021F7720: ; 0x021F7720
+ arm_func_start MOD04_021F7720
+MOD04_021F7720: ; 0x021F7720
ldr r0, [r0]
ldr r0, [r0, #0x434]
cmp r0, #0
@@ -35394,8 +35400,8 @@ _021F7754:
mov r0, #0
bx lr
- arm_func_start FUN_021F775C
-FUN_021F775C: ; 0x021F775C
+ arm_func_start MOD04_021F775C
+MOD04_021F775C: ; 0x021F775C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r4, r0
@@ -35404,20 +35410,20 @@ FUN_021F775C: ; 0x021F775C
ldr r0, [r7, #0x204]
cmp r0, r1
beq _021F77E8
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
beq _021F77E8
mov r1, #0
ldr r0, [r7, #0x204]
mov r2, r1
- bl FUN_021EFC94
+ bl MOD04_021EFC94
mov r6, r0
mvn r1, #0
cmp r6, r1
beq _021F77E8
mov r0, r4
mov r2, #0
- bl FUN_021F7674
+ bl MOD04_021F7674
movs r5, r0
beq _021F77E0
mov r0, #0x68
@@ -35425,13 +35431,13 @@ FUN_021F775C: ; 0x021F775C
mov r0, r6
str r6, [r5, #8]
mov r1, #0
- bl FUN_021F017C
+ bl MOD04_021F017C
ldr r0, [r5, #8]
- bl FUN_021F7854
+ bl MOD04_021F7854
b _021F77E8
_021F77E0:
mov r0, r6
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
_021F77E8:
ldr r6, [r7, #0x434]
cmp r6, #0
@@ -35441,21 +35447,21 @@ _021F77F8:
mov r0, r4
mov r1, r6
ldr r7, [r6, #0x3c]
- bl FUN_021F7A40
+ bl MOD04_021F7A40
ldr r1, [r6]
cmp r1, #0x6a
beq _021F7830
cmp r0, #0
bne _021F7830
mov r0, r5
- bl FUN_021EFAC8
+ bl MOD04_021EFAC8
ldr r1, [r6, #0x10]
cmp r0, r1
ble _021F783C
_021F7830:
mov r0, r4
mov r1, r6
- bl FUN_021F78CC
+ bl MOD04_021F78CC
_021F783C:
mov r6, r7
cmp r7, #0
@@ -35465,41 +35471,41 @@ _021F7848:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021F7854
-FUN_021F7854: ; 0x021F7854
+ arm_func_start MOD04_021F7854
+MOD04_021F7854: ; 0x021F7854
stmdb sp!, {r4, lr}
mov r4, r0
mov r1, #0x4000
- bl FUN_021F0130
+ bl MOD04_021F0130
mov r0, r4
mov r1, #0x8000
- bl FUN_021F0130
+ bl MOD04_021F0130
mov r0, r4
mov r1, #0x10000
- bl FUN_021F0130
+ bl MOD04_021F0130
mov r0, r4
mov r1, #0x20000
- bl FUN_021F0130
+ bl MOD04_021F0130
mov r0, r4
mov r1, #0x40000
- bl FUN_021F0130
+ bl MOD04_021F0130
mov r0, r4
mov r1, #0x4000
- bl FUN_021F00E4
+ bl MOD04_021F00E4
mov r0, r4
mov r1, #0x8000
- bl FUN_021F00E4
+ bl MOD04_021F00E4
mov r0, r4
mov r1, #0x10000
- bl FUN_021F00E4
+ bl MOD04_021F00E4
mov r0, r4
- bl FUN_021F009C
+ bl MOD04_021F009C
mov r0, r4
- bl FUN_021F0054
+ bl MOD04_021F0054
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F78CC
-FUN_021F78CC: ; 0x021F78CC
+ arm_func_start MOD04_021F78CC
+MOD04_021F78CC: ; 0x021F78CC
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
movs r4, r1
@@ -35529,7 +35535,7 @@ _021F7914:
bl __msl_assertion_failed
ldr r1, _021F79DC ; =0x0220E6EC
mov r0, r5
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
ldmia sp!, {r4, r5, r6, pc}
_021F7940:
mov r1, r0
@@ -35541,14 +35547,14 @@ _021F7950:
str r0, [r1, #0x3c]
_021F7958:
ldr r0, [r4, #0x38]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
beq _021F79B8
mov r6, #0
_021F796C:
ldr r0, [r4, #0x38]
mov r1, r6
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r2, [r0, #0x10]
cmp r2, #0x64
bge _021F799C
@@ -35557,19 +35563,19 @@ _021F796C:
ldr r1, [r4, #0xc]
mov r0, r5
add r3, ip, r3
- bl FUN_021F1B60
+ bl MOD04_021F1B60
_021F799C:
ldr r0, [r4, #0x38]
mov r1, r6
- bl FUN_021EED84
+ bl MOD04_021EED84
ldr r0, [r4, #0x38]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
bne _021F796C
_021F79B8:
mov r0, r5
mov r1, r4
- bl FUN_021F79E0
+ bl MOD04_021F79E0
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_021F79C8: .word 0x0220E5D4
@@ -35579,36 +35585,36 @@ _021F79D4: .word 0x0220E6E8
_021F79D8: .word 0x00000225
_021F79DC: .word 0x0220E6EC
- arm_func_start FUN_021F79E0
-FUN_021F79E0: ; 0x021F79E0
+ arm_func_start MOD04_021F79E0
+MOD04_021F79E0: ; 0x021F79E0
stmdb sp!, {r4, lr}
mov r4, r1
ldr r0, [r4, #8]
mov r1, #2
- bl FUN_021EFD80
+ bl MOD04_021EFD80
ldr r0, [r4, #8]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
ldr r0, [r4, #0x18]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x18]
ldr r0, [r4, #0x28]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x28]
ldr r0, [r4, #0x38]
cmp r0, #0
beq _021F7A34
- bl FUN_021EF074
+ bl MOD04_021EF074
mov r0, #0
str r0, [r4, #0x38]
_021F7A34:
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F7A40
-FUN_021F7A40: ; 0x021F7A40
+ arm_func_start MOD04_021F7A40
+MOD04_021F7A40: ; 0x021F7A40
stmdb sp!, {r4, r5, r6, lr}
mov r5, r1
ldr r1, [r5]
@@ -35630,13 +35636,13 @@ _021F7A70:
beq _021F7A9C
mov r0, r6
mov r1, r5
- bl FUN_021F8088
+ bl MOD04_021F8088
mov r4, r0
b _021F7AAC
_021F7A9C:
mov r0, r6
mov r1, r5
- bl FUN_021F7E3C
+ bl MOD04_021F7E3C
mov r4, r0
_021F7AAC:
cmp r4, #0
@@ -35646,7 +35652,7 @@ _021F7AAC:
bne _021F7AD0
mov r0, r6
mov r1, r5
- bl FUN_021F7AE4
+ bl MOD04_021F7AE4
mov r4, r0
_021F7AD0:
mov r0, r4
@@ -35656,8 +35662,8 @@ _021F7AD8: .word 0x0220E710
_021F7ADC: .word 0x0220E5E4
_021F7AE0: .word 0x000001D9
- arm_func_start FUN_021F7AE4
-FUN_021F7AE4: ; 0x021F7AE4
+ arm_func_start MOD04_021F7AE4
+MOD04_021F7AE4: ; 0x021F7AE4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x24
mov r6, r1
@@ -35673,7 +35679,7 @@ FUN_021F7AE4: ; 0x021F7AE4
str r1, [sp, #4]
ldr r1, [r6, #8]
add r2, r6, #0x28
- bl FUN_021F28AC
+ bl MOD04_021F28AC
ldr r1, [sp, #0xc]
cmp r1, #0
bne _021F7B38
@@ -35691,7 +35697,7 @@ _021F7B4C:
bne _021F7B84
mov r0, r7
mov r1, r6
- bl FUN_021F7D6C
+ bl MOD04_021F7D6C
cmp r0, #0
addne sp, sp, #0x24
ldmneia sp!, {r4, r5, r6, r7, pc}
@@ -35709,7 +35715,7 @@ _021F7B84:
add r3, sp, #8
mov r0, r7
add r2, r6, #0x18
- bl FUN_021F2A2C
+ bl MOD04_021F2A2C
cmp r0, #0
movne r0, #0x6a
strne r0, [r6]
@@ -35720,7 +35726,7 @@ _021F7B84:
cmp r0, #0
ble _021F7BDC
mov r0, #0
- bl FUN_021EFAC8
+ bl MOD04_021EFAC8
add r0, r0, #0x12c
str r0, [r6, #0x10]
_021F7BDC:
@@ -35730,7 +35736,7 @@ _021F7BDC:
mov r0, r7
add r1, r6, #0x18
str r4, [sp]
- bl FUN_021F2770
+ bl MOD04_021F2770
cmp r0, #0
addne sp, sp, #0x24
ldmneia sp!, {r4, r5, r6, r7, pc}
@@ -35768,12 +35774,12 @@ _021F7C64:
str r0, [sp, #0x14]
beq _021F7D2C
mov r0, #0xc
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021F7CA4
ldr r1, _021F7D64 ; =0x0220E73C
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x24
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -35781,10 +35787,10 @@ _021F7CA4:
ldr r0, [r6, #0xc]
str r0, [r4]
ldr r0, [sp, #0x18]
- bl FUN_021F0208
+ bl MOD04_021F0208
str r0, [r4, #8]
mov r0, #0
- bl FUN_021EFAC8
+ bl MOD04_021EFAC8
str r0, [r4, #4]
mov r0, #0
str r0, [sp]
@@ -35794,7 +35800,7 @@ _021F7CA4:
mov r0, r7
mov r3, r4
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021F7D2C
add sp, sp, #0x24
@@ -35804,7 +35810,7 @@ _021F7CF8:
ldr r3, _021F7D68 ; =0x0220E74C
mov r0, r7
mov r2, #0x67
- bl FUN_021F1A64
+ bl MOD04_021F1A64
b _021F7D2C
_021F7D10:
str r1, [sp]
@@ -35813,11 +35819,11 @@ _021F7D10:
str r1, [sp, #4]
ldr r3, [r6, #0x18]
mov r1, r6
- bl FUN_021FACC0
+ bl MOD04_021FACC0
_021F7D2C:
mov r0, r7
add r1, r6, #0x18
- bl FUN_021F2704
+ bl MOD04_021F2704
_021F7D38:
ldr r0, [sp, #0x18]
cmp r0, #0
@@ -35834,8 +35840,8 @@ _021F7D60: .word 0x0220E738
_021F7D64: .word 0x0220E73C
_021F7D68: .word 0x0220E74C
- arm_func_start FUN_021F7D6C
-FUN_021F7D6C: ; 0x021F7D6C
+ arm_func_start MOD04_021F7D6C
+MOD04_021F7D6C: ; 0x021F7D6C
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0xc
mov r8, r1
@@ -35846,7 +35852,7 @@ FUN_021F7D6C: ; 0x021F7D6C
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc}
ldr r0, [r8, #0x38]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
beq _021F7E2C
ldr r5, _021F7E38 ; =0x0220E738
@@ -35855,7 +35861,7 @@ FUN_021F7D6C: ; 0x021F7D6C
_021F7DAC:
ldr r0, [r8, #0x38]
mov r1, r7
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r6, r0
str r7, [sp]
str r5, [sp, #4]
@@ -35863,7 +35869,7 @@ _021F7DAC:
mov r0, sb
mov r2, r6
mov r3, r4
- bl FUN_021F28AC
+ bl MOD04_021F28AC
ldr r1, [sp, #8]
cmp r1, #0
bne _021F7DEC
@@ -35882,9 +35888,9 @@ _021F7E00:
bne _021F7E2C
ldr r0, [r8, #0x38]
mov r1, r7
- bl FUN_021EED84
+ bl MOD04_021EED84
ldr r0, [r8, #0x38]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
bne _021F7DAC
_021F7E2C:
@@ -35894,8 +35900,8 @@ _021F7E2C:
.align 2, 0
_021F7E38: .word 0x0220E738
- arm_func_start FUN_021F7E3C
-FUN_021F7E3C: ; 0x021F7E3C
+ arm_func_start MOD04_021F7E3C
+MOD04_021F7E3C: ; 0x021F7E3C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x184
mov r5, r1
@@ -35918,7 +35924,7 @@ _021F7E70:
add r3, sp, #8
mov r0, r6
add r2, r5, #0x18
- bl FUN_021F2A2C
+ bl MOD04_021F2A2C
cmp r0, #0
addne sp, sp, #0x184
ldmneia sp!, {r4, r5, r6, r7, pc}
@@ -35947,7 +35953,7 @@ _021F7E70:
add r2, sp, #0x10
mov r0, r7
mov r3, #0x10
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0x6a
streq r0, [r5]
@@ -35961,7 +35967,7 @@ _021F7E70:
ldr r1, _021F8070 ; =0x0220E788
add r2, sp, #0x20
mov r3, #0x1f
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0x6a
streq r0, [r5]
@@ -35972,7 +35978,7 @@ _021F7E70:
ldr r1, _021F8074 ; =0x0220E790
add r2, sp, #0x3f
mov r3, #0x21
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0x6a
streq r0, [r5]
@@ -35991,7 +35997,7 @@ _021F7E70:
mov r1, r0
add r0, sp, #0x81
add r2, sp, #0x60
- bl FUN_021EF794
+ bl MOD04_021EF794
add r0, sp, #0x3f
add r1, sp, #0x60
bl strcmp
@@ -36000,11 +36006,11 @@ _021F7E70:
ldr r2, _021F8080 ; =0x0220E7A0
mov r0, r6
add r1, r5, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F8064 ; =0x0220E770
mov r0, r6
add r1, r5, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0x6a
str r0, [r5]
add sp, sp, #0x184
@@ -36014,11 +36020,11 @@ _021F8000:
ldr r2, _021F8084 ; =0x0220E7A8
mov r0, r6
add r1, r5, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F8064 ; =0x0220E770
mov r0, r6
add r1, r5, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, #0x69
str r0, [r5]
str r7, [r5, #0xc]
@@ -36050,8 +36056,8 @@ _021F807C: .word 0x0220E798
_021F8080: .word 0x0220E7A0
_021F8084: .word 0x0220E7A8
- arm_func_start FUN_021F8088
-FUN_021F8088: ; 0x021F8088
+ arm_func_start MOD04_021F8088
+MOD04_021F8088: ; 0x021F8088
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x1c
mov r6, r1
@@ -36068,7 +36074,7 @@ _021F80B0: ; jump table
b _021F80D4 ; case 2
b _021F8258 ; case 3
_021F80C0:
- bl FUN_021F7478
+ bl MOD04_021F7478
cmp r0, #0
beq _021F8360
add sp, sp, #0x1c
@@ -36076,7 +36082,7 @@ _021F80C0:
_021F80D4:
ldr r1, [r6, #8]
add r2, sp, #8
- bl FUN_021FB0FC
+ bl MOD04_021FB0FC
cmp r0, #0
addne sp, sp, #0x1c
ldmneia sp!, {r4, r5, r6, r7, pc}
@@ -36085,7 +36091,7 @@ _021F80D4:
bne _021F8110
ldr r1, _021F83B8 ; =0x0220E648
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x1c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -36096,12 +36102,12 @@ _021F8110:
add r2, sp, #0x14
mov r0, r7
mov r4, #1
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
bne _021F814C
ldr r1, _021F83B8 ; =0x0220E648
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x1c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -36109,36 +36115,36 @@ _021F814C:
ldr r2, _021F83BC ; =0x0220E778
mov r0, r7
add r1, r6, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F83C0 ; =0x0220E780
mov r0, r7
add r1, r6, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [r5, #0x1a0]
mov r0, r7
add r1, r6, #0x28
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F83C4 ; =0x0220E788
mov r0, r7
add r1, r6, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r7
add r1, r6, #0x28
add r2, r5, #0x110
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r7
add r1, r6, #0x28
ldr r2, _021F83C8 ; =0x0220E790
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r7
add r1, r6, #0x28
ldr r2, [sp, #0x14]
ldr r2, [r2, #0x18]
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, r7
add r1, r6, #0x28
ldr r2, _021F83CC ; =0x0220E770
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r3, [r5, #0x434]
cmp r3, #0
beq _021F8210
@@ -36162,17 +36168,17 @@ _021F8210:
beq _021F824C
ldr r0, [sp, #0x14]
ldr r0, [r0, #0x18]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [sp, #0x14]
mov r1, #0
str r1, [r0, #0x18]
ldr r0, [sp, #0x14]
- bl FUN_021F83EC
+ bl MOD04_021F83EC
cmp r0, #0
beq _021F824C
ldr r1, [sp, #0x14]
mov r0, r7
- bl FUN_021F85A0
+ bl MOD04_021F85A0
_021F824C:
mov r0, #0x68
str r0, [r6]
@@ -36185,7 +36191,7 @@ _021F8258:
str r1, [sp, #4]
ldr r1, [r6, #8]
add r2, r6, #0x18
- bl FUN_021F2A2C
+ bl MOD04_021F2A2C
cmp r0, #0
addne sp, sp, #0x1c
ldmneia sp!, {r4, r5, r6, r7, pc}
@@ -36211,14 +36217,14 @@ _021F8258:
ble _021F82EC
ldr r1, _021F83D8 ; =0x0220E7B0
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x1c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, pc}
_021F82EC:
mov r0, r7
mov r1, r6
- bl FUN_021F7610
+ bl MOD04_021F7610
cmp r0, #0
beq _021F8338
add sp, sp, #0x1c
@@ -36232,7 +36238,7 @@ _021F8308:
beq _021F8338
ldr r1, _021F83E0 ; =0x0220E7D4
mov r0, r7
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x1c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -36260,7 +36266,7 @@ _021F8360:
add r3, sp, #0x10
mov r0, r7
add r2, r6, #0x28
- bl FUN_021F28AC
+ bl MOD04_021F28AC
ldr r1, [sp, #0x10]
cmp r1, #0
bne _021F83A4
@@ -36288,8 +36294,8 @@ _021F83E0: .word 0x0220E7D4
_021F83E4: .word 0x0220E6E8
_021F83E8: .word 0x0220E5E4
- arm_func_start FUN_021F83EC
-FUN_021F83EC: ; 0x021F83EC
+ arm_func_start MOD04_021F83EC
+MOD04_021F83EC: ; 0x021F83EC
cmp r0, #0
beq _021F8428
ldr r1, [r0, #0xc]
@@ -36309,24 +36315,24 @@ _021F8428:
mov r0, #0
bx lr
- arm_func_start FUN_021F8430
-FUN_021F8430: ; 0x021F8430
+ arm_func_start MOD04_021F8430
+MOD04_021F8430: ; 0x021F8430
stmdb sp!, {lr}
sub sp, sp, #0xc
str r1, [sp]
mov r3, #0
- ldr r1, _021F845C ; =FUN_021F8460
+ ldr r1, _021F845C ; =MOD04_021F8460
add r2, sp, #0
str r3, [sp, #4]
- bl FUN_021F848C
+ bl MOD04_021F848C
ldr r0, [sp, #4]
add sp, sp, #0xc
ldmfd sp!, {pc}
.align 2, 0
-_021F845C: .word FUN_021F8460
+_021F845C: .word MOD04_021F8460
- arm_func_start FUN_021F8460
-FUN_021F8460: ; 0x021F8460
+ arm_func_start MOD04_021F8460
+MOD04_021F8460: ; 0x021F8460
ldr r0, [r1, #8]
cmp r0, #0
beq _021F8484
@@ -36340,8 +36346,8 @@ _021F8484:
mov r0, #1
bx lr
- arm_func_start FUN_021F848C
-FUN_021F848C: ; 0x021F848C
+ arm_func_start MOD04_021F848C
+MOD04_021F848C: ; 0x021F848C
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr r3, [r0]
@@ -36349,19 +36355,19 @@ FUN_021F848C: ; 0x021F848C
str r2, [sp, #8]
str r0, [sp]
ldr r0, [r3, #0x428]
- ldr r1, _021F84C8 ; =FUN_021F84CC
+ ldr r1, _021F84C8 ; =MOD04_021F84CC
add r2, sp, #0
- bl FUN_021EF264
+ bl MOD04_021EF264
cmp r0, #0
moveq r0, #1
movne r0, #0
add sp, sp, #0xc
ldmfd sp!, {pc}
.align 2, 0
-_021F84C8: .word FUN_021F84CC
+_021F84C8: .word MOD04_021F84CC
- arm_func_start FUN_021F84CC
-FUN_021F84CC: ; 0x021F84CC
+ arm_func_start MOD04_021F84CC
+MOD04_021F84CC: ; 0x021F84CC
stmdb sp!, {lr}
sub sp, sp, #4
mov ip, r0
@@ -36373,19 +36379,19 @@ FUN_021F84CC: ; 0x021F84CC
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021F84F4
-FUN_021F84F4: ; 0x021F84F4
+ arm_func_start MOD04_021F84F4
+MOD04_021F84F4: ; 0x021F84F4
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
str r1, [sp]
mov ip, #0
str r2, [sp, #4]
mov r4, r3
- ldr r1, _021F853C ; =FUN_021F8540
+ ldr r1, _021F853C ; =MOD04_021F8540
add r2, sp, #0
str ip, [sp, #0xc]
str r4, [sp, #8]
- bl FUN_021F848C
+ bl MOD04_021F848C
ldr r0, [sp, #0xc]
cmp r0, #0
moveq r0, #0
@@ -36394,10 +36400,10 @@ FUN_021F84F4: ; 0x021F84F4
add sp, sp, #0x10
ldmia sp!, {r4, pc}
.align 2, 0
-_021F853C: .word FUN_021F8540
+_021F853C: .word MOD04_021F8540
- arm_func_start FUN_021F8540
-FUN_021F8540: ; 0x021F8540
+ arm_func_start MOD04_021F8540
+MOD04_021F8540: ; 0x021F8540
stmdb sp!, {r4, r5, r6, lr}
mov r6, r1
ldr r4, [r6, #0xc]
@@ -36424,33 +36430,33 @@ _021F8598:
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021F85A0
-FUN_021F85A0: ; 0x021F85A0
+ arm_func_start MOD04_021F85A0
+MOD04_021F85A0: ; 0x021F85A0
ldr r0, [r0]
- ldr ip, _021F85B0 ; =FUN_021EF3F4
+ ldr ip, _021F85B0 ; =MOD04_021EF3F4
ldr r0, [r0, #0x428]
bx ip
.align 2, 0
-_021F85B0: .word FUN_021EF3F4
+_021F85B0: .word MOD04_021EF3F4
- arm_func_start FUN_021F85B4
-FUN_021F85B4: ; 0x021F85B4
+ arm_func_start MOD04_021F85B4
+MOD04_021F85B4: ; 0x021F85B4
stmdb sp!, {r4, lr}
sub sp, sp, #8
add r2, sp, #0
ldr r4, [r0]
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
addeq sp, sp, #8
ldmeqia sp!, {r4, pc}
ldr r0, [r4, #0x428]
ldr r1, [sp]
- bl FUN_021EF3F4
+ bl MOD04_021EF3F4
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F85E8
-FUN_021F85E8: ; 0x021F85E8
+ arm_func_start MOD04_021F85E8
+MOD04_021F85E8: ; 0x021F85E8
stmdb sp!, {r4, lr}
sub sp, sp, #0x20
ldr r0, [r0]
@@ -36458,7 +36464,7 @@ FUN_021F85E8: ; 0x021F85E8
str r1, [sp]
ldr r0, [r0, #0x428]
add r1, sp, #0
- bl FUN_021EF358
+ bl MOD04_021EF358
cmp r4, #0
strne r0, [r4]
cmp r0, #0
@@ -36467,8 +36473,8 @@ FUN_021F85E8: ; 0x021F85E8
add sp, sp, #0x20
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F8624
-FUN_021F8624: ; 0x021F8624
+ arm_func_start MOD04_021F8624
+MOD04_021F8624: ; 0x021F8624
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x20
mov r5, r0
@@ -36491,7 +36497,7 @@ _021F865C:
add r2, sp, #0
mov r0, r5
mov r1, r4
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
ldrne r0, [sp]
addne sp, sp, #0x20
@@ -36512,14 +36518,14 @@ _021F865C:
str r0, [sp, #0x1c]
str r0, [sp, #0x18]
ldr r0, [r6]
- bl FUN_021EF494
+ bl MOD04_021EF494
ldr r0, [r6, #4]
add r2, sp, #0
add r3, r0, #1
mov r0, r5
mov r1, r4
str r3, [r6, #4]
- bl FUN_021F85E8
+ bl MOD04_021F85E8
cmp r0, #0
ldrne r0, [sp]
moveq r0, #0
@@ -36531,8 +36537,8 @@ _021F8704: .word 0x0220E7F4
_021F8708: .word 0x0220E7FC
_021F870C: .word 0x000002B5
- arm_func_start FUN_021F8710
-FUN_021F8710: ; 0x021F8710
+ arm_func_start MOD04_021F8710
+MOD04_021F8710: ; 0x021F8710
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x20
mov r6, r2
@@ -36540,7 +36546,7 @@ FUN_021F8710: ; 0x021F8710
mov r1, r6
mov r2, #1
mov r5, r0
- bl FUN_021FB2F8
+ bl MOD04_021FB2F8
cmp r0, #0
addne sp, sp, #0x20
movne r0, #4
@@ -36554,11 +36560,11 @@ FUN_021F8710: ; 0x021F8710
ldr r2, _021F8864 ; =0x0220E814
mov r0, r5
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r5
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x20
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -36567,17 +36573,17 @@ _021F8784:
add r2, sp, #0x10
mov r0, r6
mov r3, #0x10
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F87CC
ldr r2, _021F8864 ; =0x0220E814
mov r0, r5
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r5
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x20
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -36592,12 +36598,12 @@ _021F87CC:
cmp r2, #0
beq _021F8848
mov r0, #8
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r3, r0
bne _021F8818
ldr r1, _021F886C ; =0x0220E850
mov r0, r5
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x20
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
@@ -36610,14 +36616,14 @@ _021F8818:
add r1, sp, #8
mov r0, r5
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, pc}
_021F8848:
mov r0, r5
mov r1, r4
- bl FUN_021F6C84
+ bl MOD04_021F6C84
mov r0, #0
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
@@ -36627,21 +36633,21 @@ _021F8864: .word 0x0220E814
_021F8868: .word 0x0220E844
_021F886C: .word 0x0220E850
- arm_func_start FUN_021F8870
-FUN_021F8870: ; 0x021F8870
+ arm_func_start MOD04_021F8870
+MOD04_021F8870: ; 0x021F8870
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r4, [r0]
mov r1, #0
str r1, [r4, #0x430]
str r1, [r4, #0x42c]
- ldr r0, _021F88C0 ; =FUN_021F88CC
- ldr r2, _021F88C4 ; =FUN_021F8958
+ ldr r0, _021F88C0 ; =MOD04_021F88CC
+ ldr r2, _021F88C4 ; =MOD04_021F8958
str r0, [sp]
- ldr r3, _021F88C8 ; =FUN_021F8948
+ ldr r3, _021F88C8 ; =MOD04_021F8948
mov r0, #0x1c
mov r1, #4
- bl FUN_021EF76C
+ bl MOD04_021EF76C
str r0, [r4, #0x428]
ldr r0, [r4, #0x428]
cmp r0, #0
@@ -36650,54 +36656,54 @@ FUN_021F8870: ; 0x021F8870
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
-_021F88C0: .word FUN_021F88CC
-_021F88C4: .word FUN_021F8958
-_021F88C8: .word FUN_021F8948
+_021F88C0: .word MOD04_021F88CC
+_021F88C4: .word MOD04_021F8958
+_021F88C8: .word MOD04_021F8948
- arm_func_start FUN_021F88CC
-FUN_021F88CC: ; 0x021F88CC
+ arm_func_start MOD04_021F88CC
+MOD04_021F88CC: ; 0x021F88CC
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #8]
cmp r0, #0
beq _021F891C
ldr r0, [r0, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #8]
mov r1, #0
str r1, [r0, #8]
ldr r0, [r4, #8]
ldr r0, [r0, #0xc]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [r4, #8]
mov r1, #0
str r1, [r0, #0xc]
ldr r0, [r4, #8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #8]
_021F891C:
mov r0, r4
- bl FUN_021F4CBC
+ bl MOD04_021F4CBC
ldr r0, [r4, #0x10]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x10]
ldr r0, [r4, #0x18]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r4, #0x18]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021F8948
-FUN_021F8948: ; 0x021F8948
+ arm_func_start MOD04_021F8948
+MOD04_021F8948: ; 0x021F8948
ldr r2, [r0]
ldr r0, [r1]
sub r0, r2, r0
bx lr
- arm_func_start FUN_021F8958
-FUN_021F8958: ; 0x021F8958
+ arm_func_start MOD04_021F8958
+MOD04_021F8958: ; 0x021F8958
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, [r0]
@@ -36706,8 +36712,8 @@ FUN_021F8958: ; 0x021F8958
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021F8974
-FUN_021F8974: ; 0x021F8974
+ arm_func_start MOD04_021F8974
+MOD04_021F8974: ; 0x021F8974
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov sl, r0
@@ -36717,12 +36723,12 @@ FUN_021F8974: ; 0x021F8974
cmp r0, #0
ble _021F8AB4
mov r0, r0, lsl #2
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r8, r0
bne _021F89BC
ldr r1, _021F8AC0 ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -36768,7 +36774,7 @@ _021F8A38:
_021F8A44:
ldr r1, [r8, r4, lsl #2]
mov r0, sl
- bl FUN_021F8AD0
+ bl MOD04_021F8AD0
cmp r0, #0
ldrne r1, [r8, r4, lsl #2]
add r4, r4, #1
@@ -36790,14 +36796,14 @@ _021F8A78:
beq _021F8AA0
ldr r1, [r8, r1]
mov r0, sl
- bl FUN_021F6C84
+ bl MOD04_021F6C84
_021F8AA0:
add r4, r4, #1
cmp r4, r6
blt _021F8A78
_021F8AAC:
mov r0, r8
- bl FUN_021DD82C
+ bl MOD04_021DD82C
_021F8AB4:
mov r0, #0
add sp, sp, #4
@@ -36808,8 +36814,8 @@ _021F8AC4: .word 0x0220E8B0
_021F8AC8: .word 0x0220E8D0
_021F8ACC: .word 0x00000563
- arm_func_start FUN_021F8AD0
-FUN_021F8AD0: ; 0x021F8AD0
+ arm_func_start MOD04_021F8AD0
+MOD04_021F8AD0: ; 0x021F8AD0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr ip, _021F99B4 ; =0x000004EC
sub sp, sp, ip
@@ -36832,7 +36838,7 @@ _021F8B04:
add r3, sp, #0xa0
mov r0, sl
add r2, sb, #0x18
- bl FUN_021F28AC
+ bl MOD04_021F28AC
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -36844,7 +36850,7 @@ _021F8B04:
ldr r1, [sb, #4]
add r2, sp, #0x8c
mov r0, sl
- bl FUN_021FB0FC
+ bl MOD04_021FB0FC
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -36855,11 +36861,11 @@ _021F8B04:
ldr r1, _021F99BC ; =0x00000D01
ldr r2, _021F99C0 ; =0x0220E8E0
mov r0, sl
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #4
mov r2, #0
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #4
add sp, sp, ip
@@ -36873,45 +36879,45 @@ _021F8BA4:
ldr r2, _021F99C4 ; =0x0220E90C
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99C8 ; =0x0220E918
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r0, [sp, #0x24]
add r1, sb, #0x18
ldr r2, [r0, #0x198]
mov r0, sl
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F99CC ; =0x0220E924
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sp, #0x24]
mov r0, sl
ldr r2, [r2, #0x1a0]
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F99D0 ; =0x0220E930
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sp, #0x24]
mov r0, sl
ldr r2, [r2, #0x470]
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldrsb r0, [sb, #0x28]
cmp r0, #0
beq _021F8C60
ldr r2, _021F99D4 ; =0x0220E940
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
_021F8C60:
ldrsb r0, [sb, #0x47]
cmp r0, #0
@@ -36919,11 +36925,11 @@ _021F8C60:
ldr r2, _021F99D8 ; =0x0220E948
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x47
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
_021F8C8C:
ldrsb r0, [sb, #0x5c]
cmp r0, #0
@@ -36931,11 +36937,11 @@ _021F8C8C:
ldr r2, _021F99DC ; =0x0220E958
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x5c
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
_021F8CB8:
ldrsb r0, [sb, #0x8f]
cmp r0, #0
@@ -36943,11 +36949,11 @@ _021F8CB8:
ldr r2, _021F99E0 ; =0x0220E960
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x8f
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
_021F8CE4:
ldrsb r0, [sb, #0xae]
cmp r0, #0
@@ -36955,11 +36961,11 @@ _021F8CE4:
ldr r2, _021F99E4 ; =0x0220E96C
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0xae
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
_021F8D10:
ldr r0, [sb, #0x130]
cmp r0, #0
@@ -36967,11 +36973,11 @@ _021F8D10:
ldr r2, _021F99E8 ; =0x0220E978
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sb, #0x130]
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
_021F8D3C:
ldr r0, [sb, #0x134]
cmp r0, #0
@@ -36979,11 +36985,11 @@ _021F8D3C:
ldr r2, _021F99EC ; =0x0220E984
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sb, #0x134]
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
b _021F9134
_021F8D6C:
cmp r0, #2
@@ -36991,15 +36997,15 @@ _021F8D6C:
ldr r2, _021F99F0 ; =0x0220E98C
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99DC ; =0x0220E958
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x5c
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
b _021F9134
_021F8DA8:
cmp r0, #3
@@ -37007,32 +37013,32 @@ _021F8DA8:
ldr r2, _021F99F4 ; =0x0220E994
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99DC ; =0x0220E958
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x5c
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99F8 ; =0x0220E99C
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0xcd
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99D0 ; =0x0220E930
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sp, #0x24]
mov r0, sl
ldr r2, [r2, #0x470]
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
b _021F9134
_021F8E28:
cmp r0, #4
@@ -37040,33 +37046,33 @@ _021F8E28:
ldr r2, _021F99FC ; =0x0220E9A4
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99C8 ; =0x0220E918
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r0, [sp, #0x24]
add r1, sb, #0x18
ldr r2, [r0, #0x198]
mov r0, sl
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F99CC ; =0x0220E924
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sp, #0x24]
mov r0, sl
ldr r2, [r2, #0x1a0]
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F9A00 ; =0x0220E9B0
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sb, #0x138]
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
b _021F9134
_021F8EAC:
cmp r0, #5
@@ -37074,31 +37080,31 @@ _021F8EAC:
ldr r2, _021F9A04 ; =0x0220E9BC
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99D4 ; =0x0220E940
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
ldr r2, _021F99DC ; =0x0220E958
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x5c
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
ldr r2, _021F99F8 ; =0x0220E99C
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0xcd
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
b _021F9134
_021F8F28:
cmp r0, #6
@@ -37106,68 +37112,68 @@ _021F8F28:
ldr r2, _021F9A08 ; =0x0220E9C4
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99D4 ; =0x0220E940
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x28
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99DC ; =0x0220E958
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x5c
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99F8 ; =0x0220E99C
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0xcd
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F9A0C ; =0x0220E9D0
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sp, #0x24]
mov r0, sl
ldr r2, [r2, #0x46c]
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F99D0 ; =0x0220E930
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sp, #0x24]
mov r0, sl
ldr r2, [r2, #0x470]
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F99D8 ; =0x0220E948
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x47
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldrsb r0, [sb, #0xec]
cmp r0, #0
beq _021F9134
ldr r2, _021F9A10 ; =0x0220E9DC
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0xec
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
b _021F9134
_021F9038:
cmp r0, #7
@@ -37175,34 +37181,34 @@ _021F9038:
ldr r2, _021F9A14 ; =0x0220E9E4
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99C8 ; =0x0220E918
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r0, [sp, #0x24]
add r1, sb, #0x18
ldr r2, [r0, #0x198]
mov r0, sl
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F99CC ; =0x0220E924
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sp, #0x24]
mov r0, sl
ldr r2, [r2, #0x1a0]
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
ldr r2, _021F99D0 ; =0x0220E930
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sp, #0x24]
mov r0, sl
ldr r2, [r2, #0x470]
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
b _021F9134
_021F90C0:
cmp r0, #8
@@ -37210,24 +37216,24 @@ _021F90C0:
ldr r2, _021F9A18 ; =0x0220E9F0
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F9A1C ; =0x0220EA00
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
mov r0, sl
add r1, sb, #0x18
add r2, sb, #0x47
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F99D0 ; =0x0220E930
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, [sp, #0x24]
mov r0, sl
ldr r2, [r2, #0x470]
add r1, sb, #0x18
- bl FUN_021F2F64
+ bl MOD04_021F2F64
b _021F9134
_021F9120:
ldr r0, _021F9A20 ; =0x0220EA10
@@ -37239,15 +37245,15 @@ _021F9134:
ldr r2, _021F9A2C ; =0x0220EA14
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F9A30 ; =0x02210EA0
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r2, _021F9A34 ; =0x0220EA20
mov r0, sl
add r1, sb, #0x18
- bl FUN_021F2F9C
+ bl MOD04_021F2F9C
ldr r0, [sp, #0x1c]
mov r1, #4
str r1, [r0, #0x14]
@@ -37263,7 +37269,7 @@ _021F9174:
add r3, sp, #0x9c
mov r0, sl
add r2, sb, #8
- bl FUN_021F2A2C
+ bl MOD04_021F2A2C
cmp r0, #0
beq _021F91E8
cmp r0, #3
@@ -37273,11 +37279,11 @@ _021F9174:
ldr r1, _021F99BC ; =0x00000D01
ldr r2, _021F9A38 ; =0x0220EA28
mov r0, sl
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #0
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -37296,7 +37302,7 @@ _021F91E8:
ldr r1, [sb, #8]
mov r0, sl
mov r2, #1
- bl FUN_021FB2F8
+ bl MOD04_021FB2F8
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
movne r0, #1
@@ -37337,7 +37343,7 @@ _021F92A8:
mov r0, sl
add r2, sp, #0x90
mov r3, r5
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -37352,7 +37358,7 @@ _021F92A8:
mov r0, sl
add r2, sp, #0x90
mov r3, r5
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -37384,13 +37390,13 @@ _021F9344:
mov r1, #0xac
mul r1, r2, r1
str r2, [sp, #0xe0]
- bl FUN_021DD844
+ bl MOD04_021DD844
movs r8, r0
str r8, [sp, #0xe8]
bne _021F939C
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -37416,7 +37422,7 @@ _021F93D0:
ldr r1, [sb, #8]
add r2, sp, #0x90
mov r3, r5
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -37429,7 +37435,7 @@ _021F93D0:
add r0, r7, #4
mov r1, r6
mov r2, r4
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021F94F4
_021F9424:
ldr r1, _021F9A54 ; =0x0220EA70
@@ -37440,7 +37446,7 @@ _021F9424:
ldr r2, [sp, #0x4c]
add r0, r7, #0x23
mov r1, r6
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021F94F4
_021F944C:
ldr r1, _021F9A58 ; =0x0220EA7C
@@ -37451,7 +37457,7 @@ _021F944C:
add r0, r7, #0x38
mov r1, r6
mov r2, r4
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021F94F4
_021F9474:
ldr r1, _021F9A5C ; =0x0220EA88
@@ -37462,7 +37468,7 @@ _021F9474:
add r0, r7, #0x57
mov r1, r6
mov r2, r4
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021F94F4
_021F949C:
ldr r1, _021F9A60 ; =0x0220EA94
@@ -37473,7 +37479,7 @@ _021F949C:
ldr r2, [sp, #0x50]
add r0, r7, #0x76
mov r1, r6
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021F94F4
_021F94C4:
ldr r1, _021F9A48 ; =0x0220EA64
@@ -37497,11 +37503,11 @@ _021F9500:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -37550,14 +37556,14 @@ _021F9568:
ldr r4, [sp, #0x1c]
ldr r4, [r4, #0x10]
str r4, [sp, #0x18]
- bl FUN_021FA770
+ bl MOD04_021FA770
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021F95EC:
ldr r0, [sp, #0xe8]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [sp, #0xe8]
b _021FA6F8
@@ -37577,7 +37583,7 @@ _021F9600:
add r2, sp, #0x90
add r3, sp, #0xec
mov r0, sl
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -37590,23 +37596,23 @@ _021F9600:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021F9694:
mov r0, #0x3c
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021F96C0
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -37617,7 +37623,7 @@ _021F96C0:
add r0, r4, #4
add r1, sb, #0x5c
mov r2, #0x33
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
add r0, sp, #0x28c
ldrsb r0, [r0, #0x60]
add r1, sp, #0xd4
@@ -37633,7 +37639,7 @@ _021F96C0:
str r0, [sp, #4]
mov r0, sl
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021FA6F8
ldr ip, _021F99B4 ; =0x000004EC
@@ -37650,12 +37656,12 @@ _021F972C:
str r0, [sp, #0xd0]
beq _021FA6F8
mov r0, #0x44
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r8, r0
bne _021F977C
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -37676,7 +37682,7 @@ _021F977C:
add r2, sp, #0x90
add r3, sp, #0xec
mov r0, sl
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -37689,11 +37695,11 @@ _021F977C:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -37712,7 +37718,7 @@ _021F982C:
mov r0, sl
add r2, sp, #0x90
mov r3, r6
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -37726,12 +37732,12 @@ _021F982C:
ldr r1, [r8, #0x38]
add r1, r1, #1
mov r1, r1, lsl #2
- bl FUN_021DD844
+ bl MOD04_021DD844
cmp r0, #0
bne _021F98A0
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -37739,12 +37745,12 @@ _021F982C:
_021F98A0:
str r0, [r8, #0x3c]
mov r0, r5
- bl FUN_021DD860
+ bl MOD04_021DD860
cmp r0, #0
bne _021F98D0
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -37758,7 +37764,7 @@ _021F98D0:
ldr r0, [r8, #0x38]
mov r2, r5
ldr r0, [r3, r0, lsl #2]
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
ldr r0, [r8, #0x38]
add r0, r0, #1
str r0, [r8, #0x38]
@@ -37774,12 +37780,12 @@ _021F9904:
ble _021F9ABC
mov r1, r0, lsl #2
ldr r0, [r8, #0x40]
- bl FUN_021DD844
+ bl MOD04_021DD844
cmp r0, #0
bne _021F9954
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -37787,12 +37793,12 @@ _021F9904:
_021F9954:
str r0, [r8, #0x40]
mov r0, r4
- bl FUN_021DD860
+ bl MOD04_021DD860
cmp r0, #0
bne _021F9984
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -37808,7 +37814,7 @@ _021F9984:
mov r2, r4
sub r0, r0, #1
ldr r0, [r3, r0, lsl #2]
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021F9ABC
.align 2, 0
_021F99B4: .word 0x000004EC
@@ -37869,11 +37875,11 @@ _021F9A74:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -37889,7 +37895,7 @@ _021F9ABC:
mov r0, sl
mov r3, r8
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021FA6F8
ldr ip, _021F99B4 ; =0x000004EC
@@ -37906,13 +37912,13 @@ _021F9AFC:
str r0, [sp, #0xc8]
beq _021FA6F8
mov r0, #0x10
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [sp, #0x28]
cmp r0, #0
bne _021F9B50
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -37946,7 +37952,7 @@ _021F9BA8:
mov r0, sl
add r2, sp, #0x90
mov r3, r4
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -37972,7 +37978,7 @@ _021F9BA8:
ldr r0, [r0, #0xc]
ldr r3, [r1, #8]
mul r1, r3, r2
- bl FUN_021DD844
+ bl MOD04_021DD844
ldr r1, [sp, #0x28]
str r0, [r1, #0xc]
mov r0, r1
@@ -37981,7 +37987,7 @@ _021F9BA8:
bne _021F9C5C
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -38008,7 +38014,7 @@ _021F9C94:
ldr r1, [sb, #8]
add r2, sp, #0x90
mov r3, r4
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -38021,7 +38027,7 @@ _021F9C94:
ldr r2, [sp, #0x64]
add r0, r8, #0x28
mov r1, r5
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021F9D0C
_021F9CE8:
ldr r1, _021F9A50 ; =0x0220EA68
@@ -38032,7 +38038,7 @@ _021F9CE8:
ldr r2, [sp, #0x68]
add r0, r8, #4
mov r1, r5
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021F9D0C:
ldr r1, _021FA738 ; =0x0220EAE8
mov r0, r4
@@ -38065,11 +38071,11 @@ _021F9D6C:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -38086,7 +38092,7 @@ _021F9D9C:
add r1, sp, #0xc4
mov r0, sl
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021FA6F8
ldr ip, _021F99B4 ; =0x000004EC
@@ -38108,7 +38114,7 @@ _021F9DE0:
add r2, sp, #0x90
add r3, sp, #0xec
mov r0, sl
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -38121,11 +38127,11 @@ _021F9DE0:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -38142,17 +38148,17 @@ _021F9E74:
ldr r1, _021FA740 ; =0x0220EAF8
add r2, sp, #0x2ec
mov r3, #0x200
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021F9EDC
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -38163,12 +38169,12 @@ _021F9EDC:
mov r4, r0
_021F9EE8:
mov r0, #8
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r3, r0
bne _021F9F14
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -38183,7 +38189,7 @@ _021F9F14:
add r1, sp, #0xbc
mov r0, sl
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021FA6F8
ldr ip, _021F99B4 ; =0x000004EC
@@ -38205,7 +38211,7 @@ _021F9F50:
add r2, sp, #0x90
add r3, sp, #0xec
mov r0, sl
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -38218,11 +38224,11 @@ _021F9F50:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -38237,7 +38243,7 @@ _021F9FE4:
ldr r0, [sb, #8]
add r2, sp, #0x2ec
mov r3, #0x200
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
bne _021FA054
cmp r5, #0
@@ -38245,11 +38251,11 @@ _021F9FE4:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -38263,12 +38269,12 @@ _021FA054:
mov r4, r0
_021FA060:
mov r0, #8
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r3, r0
bne _021FA08C
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -38283,7 +38289,7 @@ _021FA08C:
add r1, sp, #0xb4
mov r0, sl
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021FA6F8
ldr ip, _021F99B4 ; =0x000004EC
@@ -38300,13 +38306,13 @@ _021FA0C8:
str r0, [sp, #0xb0]
beq _021FA6F8
mov r0, #0xc
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [sp, #0x2c]
cmp r0, #0
bne _021FA11C
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -38322,7 +38328,7 @@ _021FA11C:
add r2, sp, #0x90
add r3, sp, #0xec
mov r0, sl
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -38335,11 +38341,11 @@ _021FA11C:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -38368,7 +38374,7 @@ _021FA1E0:
mov r0, sl
add r2, sp, #0x90
mov r3, r5
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -38392,12 +38398,12 @@ _021FA1E0:
add r2, r2, #1
mul r1, r2, r1
ldr r0, [r0, #8]
- bl FUN_021DD844
+ bl MOD04_021DD844
cmp r0, #0
bne _021FA27C
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -38431,7 +38437,7 @@ _021FA2D0:
ldr r1, [sb, #8]
add r2, sp, #0x90
mov r3, r5
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -38444,7 +38450,7 @@ _021FA2D0:
add r0, r8, #4
mov r1, r6
mov r2, r4
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021FA3F4
_021FA324:
ldr r1, _021F9A54 ; =0x0220EA70
@@ -38455,7 +38461,7 @@ _021FA324:
ldr r2, [sp, #0x7c]
add r0, r8, #0x23
mov r1, r6
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021FA3F4
_021FA34C:
ldr r1, _021FA754 ; =0x0220EB18
@@ -38466,7 +38472,7 @@ _021FA34C:
add r0, r8, #0x38
mov r1, r6
mov r2, r4
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021FA3F4
_021FA374:
ldr r1, _021FA758 ; =0x0220EB20
@@ -38477,7 +38483,7 @@ _021FA374:
add r0, r8, #0x57
mov r1, r6
mov r2, r4
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021FA3F4
_021FA39C:
ldr r1, _021F9A60 ; =0x0220EA94
@@ -38488,7 +38494,7 @@ _021FA39C:
ldr r2, [sp, #0x80]
add r0, r8, #0x76
mov r1, r6
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
b _021FA3F4
_021FA3C4:
ldr r1, _021FA750 ; =0x0220EB14
@@ -38512,11 +38518,11 @@ _021FA400:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -38533,7 +38539,7 @@ _021FA430:
add r1, sp, #0xac
mov r0, sl
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021FA6F8
ldr ip, _021F99B4 ; =0x000004EC
@@ -38551,12 +38557,12 @@ _021FA474:
beq _021FA6F8
mov r0, #0xc
mov r8, #0
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r7, r0
bne _021FA4C8
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -38572,7 +38578,7 @@ _021FA4C8:
add r2, sp, #0x90
add r3, sp, #0xec
mov r0, sl
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -38585,11 +38591,11 @@ _021FA4C8:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -38600,14 +38606,14 @@ _021FA548:
str r0, [r7, #4]
ldr r0, [r7, #4]
mov r0, r0, lsl #2
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r7, #8]
ldr r0, [r7, #8]
cmp r0, #0
bne _021FA58C
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -38626,7 +38632,7 @@ _021FA5A8:
mov r0, sl
add r2, sp, #0x90
mov r3, r5
- bl FUN_021FAF2C
+ bl MOD04_021FAF2C
cmp r0, #0
ldrne ip, _021F99B4 ; =0x000004EC
addne sp, sp, ip
@@ -38637,7 +38643,7 @@ _021FA5A8:
cmp r0, #0
bne _021FA634
mov r0, r4
- bl FUN_021DD860
+ bl MOD04_021DD860
ldr r1, [r7, #8]
str r0, [r1, r8, lsl #2]
ldr r0, [r7, #8]
@@ -38646,7 +38652,7 @@ _021FA5A8:
bne _021FA620
ldr r1, _021F9A4C ; =0x0220E8A0
mov r0, sl
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #1
add sp, sp, ip
@@ -38654,7 +38660,7 @@ _021FA5A8:
_021FA620:
mov r1, fp
mov r2, r4
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
add r8, r8, #1
b _021FA6A4
_021FA634:
@@ -38679,11 +38685,11 @@ _021FA674:
ldr r2, _021F9A64 ; =0x0220EA9C
mov r0, sl
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, sl
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
ldr ip, _021F99B4 ; =0x000004EC
mov r0, #3
add sp, sp, ip
@@ -38699,7 +38705,7 @@ _021FA6A4:
mov r0, sl
mov r3, r7
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
beq _021FA6F8
ldr ip, _021F99B4 ; =0x000004EC
@@ -38719,7 +38725,7 @@ _021FA704:
cmp r4, #0
beq _021FA714
mov r0, #0xa
- bl FUN_021F0250
+ bl MOD04_021F0250
_021FA714:
cmp r4, #0
bne _021F8B04
@@ -38746,8 +38752,8 @@ _021FA764: .word 0x0220EB34
_021FA768: .word 0x00000515
_021FA76C: .word 0x0000052A
- arm_func_start FUN_021FA770
-FUN_021FA770: ; 0x021FA770
+ arm_func_start MOD04_021FA770
+MOD04_021FA770: ; 0x021FA770
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0xc
movs r8, r1
@@ -38790,7 +38796,7 @@ _021FA7DC:
_021FA7FC:
ldr r1, _021FA958 ; =0x0220EB54
mov r0, sb
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0xc
mov r0, #2
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
@@ -38798,7 +38804,7 @@ _021FA814:
add r1, sp, #4
mov r0, sb
mov r2, #1
- bl FUN_021FA9F0
+ bl MOD04_021FA9F0
cmp r0, #0
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc}
@@ -38811,7 +38817,7 @@ _021FA814:
mov r1, r8
add r0, r0, #0x28
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021FA858:
cmp r7, #0
ldreq r0, [sp, #4]
@@ -38822,7 +38828,7 @@ _021FA858:
mov r1, r7
add r0, r0, #0x47
mov r2, #0x15
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021FA880:
cmp r6, #0
ldreq r0, [sp, #4]
@@ -38833,11 +38839,11 @@ _021FA880:
mov r1, r6
add r0, r0, #0x5c
mov r2, #0x33
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021FA8A8:
ldr r0, [sp, #4]
add r0, r0, #0x5c
- bl FUN_021F01C4
+ bl MOD04_021F01C4
cmp r5, #0
ldreq r0, [sp, #4]
moveq r1, #0
@@ -38847,7 +38853,7 @@ _021FA8A8:
mov r1, r5
add r0, r0, #0x8f
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021FA8DC:
cmp r4, #0
ldreq r0, [sp, #4]
@@ -38858,7 +38864,7 @@ _021FA8DC:
mov r1, r4
add r0, r0, #0xae
mov r2, #0x1f
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
_021FA904:
ldr r0, [sp, #0x34]
ldr r2, [sp, #0x30]
@@ -38876,7 +38882,7 @@ _021FA904:
ldr r2, [sp, #0x38]
ldr r3, [sp, #0x3c]
mov r0, sb
- bl FUN_021FA95C
+ bl MOD04_021FA95C
cmp r0, #0
moveq r0, #0
add sp, sp, #0xc
@@ -38884,8 +38890,8 @@ _021FA904:
.align 2, 0
_021FA958: .word 0x0220EB54
- arm_func_start FUN_021FA95C
-FUN_021FA95C: ; 0x021FA95C
+ arm_func_start MOD04_021FA95C
+MOD04_021FA95C: ; 0x021FA95C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x14
mov r5, r0
@@ -38900,13 +38906,13 @@ FUN_021FA95C: ; 0x021FA95C
add r3, sp, #0xc
mov r1, #3
str ip, [sp, #8]
- bl FUN_021F6D8C
+ bl MOD04_021F6D8C
cmp r0, #0
addne sp, sp, #0x14
ldmneia sp!, {r4, r5, pc}
ldr r1, [sp, #0xc]
mov r0, r5
- bl FUN_021FAAB4
+ bl MOD04_021FAAB4
cmp r0, #0
addne sp, sp, #0x14
ldmneia sp!, {r4, r5, pc}
@@ -38916,7 +38922,7 @@ FUN_021FA95C: ; 0x021FA95C
beq _021FA9E4
ldr r1, [r1, #0x18]
mov r0, r5
- bl FUN_021F0FD4
+ bl MOD04_021F0FD4
cmp r0, #0
addne sp, sp, #0x14
ldmneia sp!, {r4, r5, pc}
@@ -38925,20 +38931,20 @@ _021FA9E4:
add sp, sp, #0x14
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FA9F0
-FUN_021FA9F0: ; 0x021FA9F0
+ arm_func_start MOD04_021FA9F0
+MOD04_021FA9F0: ; 0x021FA9F0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r6, r0
mov r0, #0x144
mov r5, r1
mov r7, r2
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
bne _021FAA2C
ldr r1, _021FAAB0 ; =0x0220E8A0
mov r0, r6
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #4
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -38960,7 +38966,7 @@ _021FAA2C:
str r0, [r4, #0x1c]
ldr r0, [r4, #0x1c]
add r0, r0, #1
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r4, #0x18]
ldr r0, [r4, #0x18]
cmp r0, #0
@@ -38972,15 +38978,15 @@ _021FAA2C:
ldmneia sp!, {r4, r5, r6, r7, pc}
ldr r1, _021FAAB0 ; =0x0220E8A0
mov r0, r6
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
mov r0, #1
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
_021FAAB0: .word 0x0220E8A0
- arm_func_start FUN_021FAAB4
-FUN_021FAAB4: ; 0x021FAAB4
+ arm_func_start MOD04_021FAAB4
+MOD04_021FAAB4: ; 0x021FAAB4
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r5, r1
@@ -38990,14 +38996,14 @@ FUN_021FAAB4: ; 0x021FAAB4
ldr r1, [r4, #0xc]
mov r6, r0
add r0, r1, #1
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r4, #8]
ldr r0, [r4, #8]
cmp r0, #0
bne _021FAB04
ldr r1, _021FAC9C ; =0x0220E8A0
mov r0, r6
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #8
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
@@ -39005,7 +39011,7 @@ _021FAB04:
mov r0, #2
mov r1, #1
mov r2, #0
- bl FUN_021EFDB8
+ bl MOD04_021EFDB8
str r0, [r4, #4]
ldr r0, [r4, #4]
mvn r1, #0
@@ -39014,27 +39020,27 @@ _021FAB04:
ldr r2, _021FACA0 ; =0x0220EB68
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #8
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
_021FAB54:
mov r1, #0
- bl FUN_021F017C
+ bl MOD04_021F017C
cmp r0, #0
bne _021FAB90
ldr r2, _021FACA4 ; =0x0220EB90
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #8
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -39046,11 +39052,11 @@ _021FAB90:
ldr r2, _021FACAC ; =0x0220EBC4
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #8
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -39077,12 +39083,12 @@ _021FAC0C:
strh r0, [sp, #2]
ldr r0, [r4, #4]
mov r2, #8
- bl FUN_021EFCE4
+ bl MOD04_021EFCE4
mvn r1, #0
cmp r0, r1
bne _021FAC88
ldr r0, [r4, #4]
- bl FUN_021EFB28
+ bl MOD04_021EFB28
mvn r1, #5
cmp r0, r1
beq _021FAC88
@@ -39095,11 +39101,11 @@ _021FAC0C:
ldr r2, _021FACBC ; =0x0220EC14
mov r0, r6
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #8
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -39120,8 +39126,8 @@ _021FACB4: .word 0x0220E8D0
_021FACB8: .word 0x0000CD74
_021FACBC: .word 0x0220EC14
- arm_func_start FUN_021FACC0
-FUN_021FACC0: ; 0x021FACC0
+ arm_func_start MOD04_021FACC0
+MOD04_021FACC0: ; 0x021FACC0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x54
mov r4, r1
@@ -39130,7 +39136,7 @@ FUN_021FACC0: ; 0x021FACC0
ldr r1, _021FAD3C ; =0x0220EC3C
add r2, sp, #4
mov r3, #0x40
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
addeq sp, sp, #0x54
ldmeqia sp!, {r4, r5, pc}
@@ -39150,15 +39156,15 @@ FUN_021FACC0: ; 0x021FACC0
mov r2, r4
mov r3, #2
str ip, [sp]
- bl FUN_021FAD44
+ bl MOD04_021FAD44
add sp, sp, #0x54
ldmia sp!, {r4, r5, pc}
.align 2, 0
_021FAD3C: .word 0x0220EC3C
_021FAD40: .word 0x0220EC44
- arm_func_start FUN_021FAD44
-FUN_021FAD44: ; 0x021FAD44
+ arm_func_start MOD04_021FAD44
+MOD04_021FAD44: ; 0x021FAD44
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x20
ldr ip, [sp, #0x30]
@@ -39173,7 +39179,7 @@ FUN_021FAD44: ; 0x021FAD44
mov r1, r5
mov r3, lr
mov r2, #0xc9
- bl FUN_021F726C
+ bl MOD04_021F726C
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, pc}
@@ -39185,7 +39191,7 @@ FUN_021FAD44: ; 0x021FAD44
add r2, sp, #0
mov r0, r6
mov r1, r5
- bl FUN_021F2C58
+ bl MOD04_021F2C58
cmp r0, #0
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, pc}
@@ -39193,7 +39199,7 @@ FUN_021FAD44: ; 0x021FAD44
mov r0, r6
mov r1, r5
mvn r3, #0
- bl FUN_021F7184
+ bl MOD04_021F7184
cmp r0, #0
moveq r0, #0
add sp, sp, #0x20
@@ -39202,8 +39208,8 @@ FUN_021FAD44: ; 0x021FAD44
_021FADE0: .word 0x0220EC50
_021FADE4: .word 0x0220EC54
- arm_func_start FUN_021FADE8
-FUN_021FADE8: ; 0x021FADE8
+ arm_func_start MOD04_021FADE8
+MOD04_021FADE8: ; 0x021FADE8
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
mov r4, r2
@@ -39211,7 +39217,7 @@ FUN_021FADE8: ; 0x021FADE8
mov r1, r4
mov r2, #1
mov r6, r0
- bl FUN_021FB2F8
+ bl MOD04_021FB2F8
cmp r0, #0
addne sp, sp, #0x10
movne r0, #4
@@ -39225,11 +39231,11 @@ FUN_021FADE8: ; 0x021FADE8
ldr r2, _021FAEE4 ; =0x0220EC74
mov r0, r6
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r6
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0x10
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
@@ -39241,12 +39247,12 @@ _021FAE5C:
str r0, [sp, #0xc]
beq _021FAEC8
mov r0, #4
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r3, r0
bne _021FAE9C
ldr r1, _021FAEE8 ; =0x0220ECA4
mov r0, r6
- bl FUN_021FAEEC
+ bl MOD04_021FAEEC
add sp, sp, #0x10
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
@@ -39258,14 +39264,14 @@ _021FAE9C:
add r1, sp, #8
mov r0, r6
ldmia r1, {r1, r2}
- bl FUN_021F3454
+ bl MOD04_021F3454
cmp r0, #0
addne sp, sp, #0x10
ldmneia sp!, {r4, r5, r6, pc}
_021FAEC8:
mov r0, r6
mov r1, r5
- bl FUN_021F6C84
+ bl MOD04_021F6C84
mov r0, #0
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
@@ -39274,17 +39280,17 @@ _021FAEE0: .word 0x0220EC6C
_021FAEE4: .word 0x0220EC74
_021FAEE8: .word 0x0220ECA4
- arm_func_start FUN_021FAEEC
-FUN_021FAEEC: ; 0x021FAEEC
- ldr ip, _021FAEFC ; =FUN_021FB3DC
+ arm_func_start MOD04_021FAEEC
+MOD04_021FAEEC: ; 0x021FAEEC
+ ldr ip, _021FAEFC ; =MOD04_021FB3DC
ldr r0, [r0]
mov r2, #0x100
bx ip
.align 2, 0
-_021FAEFC: .word FUN_021FB3DC
+_021FAEFC: .word MOD04_021FB3DC
- arm_func_start FUN_021FAF00
-FUN_021FAF00: ; 0x021FAF00
+ arm_func_start MOD04_021FAF00
+MOD04_021FAF00: ; 0x021FAF00
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r4, [r0]
@@ -39292,13 +39298,13 @@ FUN_021FAF00: ; 0x021FAF00
mov r1, r2
mov r0, r4
mov r2, #0x100
- bl FUN_021FB3DC
+ bl MOD04_021FB3DC
str r5, [r4, #0x418]
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FAF2C
-FUN_021FAF2C: ; 0x021FAF2C
+ arm_func_start MOD04_021FAF2C
+MOD04_021FAF2C: ; 0x021FAF2C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
movs r7, r1
mov r8, r0
@@ -39336,11 +39342,11 @@ _021FAF94:
ldr r2, _021FB0F4 ; =0x0220ECF0
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021FAFD0:
@@ -39356,11 +39362,11 @@ _021FAFE8:
ldr r2, _021FB0F4 ; =0x0220ECF0
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021FB018:
@@ -39369,11 +39375,11 @@ _021FB018:
ldr r2, _021FB0F4 ; =0x0220ECF0
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021FB048:
@@ -39393,11 +39399,11 @@ _021FB06C:
ldr r2, _021FB0F4 ; =0x0220ECF0
mov r0, r8
mov r1, #1
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r8
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021FB09C:
@@ -39429,8 +39435,8 @@ _021FB0F0: .word 0x0000019B
_021FB0F4: .word 0x0220ECF0
_021FB0F8: .word 0x000001FF
- arm_func_start FUN_021FB0FC
-FUN_021FB0FC: ; 0x021FB0FC
+ arm_func_start MOD04_021FB0FC
+MOD04_021FB0FC: ; 0x021FB0FC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov ip, #0
@@ -39442,21 +39448,21 @@ FUN_021FB0FC: ; 0x021FB0FC
mov r1, ip
str ip, [sp]
str ip, [sp, #4]
- bl FUN_021EFF5C
+ bl MOD04_021EFF5C
mvn r1, #0
cmp r0, r1
bne _021FB170
ldr r1, _021FB1E0 ; =0x0220ED00
mov r0, r5
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
ldr r2, _021FB1E4 ; =0x0220ED14
mov r0, r5
mov r1, #5
- bl FUN_021FAF00
+ bl MOD04_021FAF00
mov r0, r5
mov r1, #3
mov r2, #1
- bl FUN_021F3500
+ bl MOD04_021F3500
add sp, sp, #0xc
mov r0, #3
ldmia sp!, {r4, r5, pc}
@@ -39468,7 +39474,7 @@ _021FB170:
beq _021FB1A4
ldr r1, _021FB1E8 ; =0x0220ED4C
mov r0, r5
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
mov r0, #4
str r0, [r4]
add sp, sp, #0xc
@@ -39480,7 +39486,7 @@ _021FB1A4:
beq _021FB1D0
ldr r1, _021FB1EC ; =0x0220ED64
mov r0, r5
- bl FUN_021FB3D0
+ bl MOD04_021FB3D0
mov r0, #3
str r0, [r4]
add sp, sp, #0xc
@@ -39497,8 +39503,8 @@ _021FB1E4: .word 0x0220ED14
_021FB1E8: .word 0x0220ED4C
_021FB1EC: .word 0x0220ED64
- arm_func_start FUN_021FB1F0
-FUN_021FB1F0: ; 0x021FB1F0
+ arm_func_start MOD04_021FB1F0
+MOD04_021FB1F0: ; 0x021FB1F0
stmdb sp!, {r4, r5, r6, r7, r8, lr}
movs r5, r0
mov r8, r1
@@ -39574,8 +39580,8 @@ _021FB2EC: .word 0x0220ECE0
_021FB2F0: .word 0x0000010F
_021FB2F4: .word 0x0220ED8C
- arm_func_start FUN_021FB2F8
-FUN_021FB2F8: ; 0x021FB2F8
+ arm_func_start MOD04_021FB2F8
+MOD04_021FB2F8: ; 0x021FB2F8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
mov r6, r1
@@ -39592,7 +39598,7 @@ FUN_021FB2F8: ; 0x021FB2F8
add r2, sp, #0
mov r0, r6
mov r3, #0x10
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
beq _021FB350
add r0, sp, #0
@@ -39603,7 +39609,7 @@ _021FB350:
mov r0, r6
mov r2, r4
mov r3, #0x100
- bl FUN_021FB1F0
+ bl MOD04_021FB1F0
cmp r0, #0
moveq r0, #0
streqb r0, [r4]
@@ -39620,7 +39626,7 @@ _021FB350:
moveq r2, #0
mov r0, r7
mov r1, #4
- bl FUN_021F3500
+ bl MOD04_021F3500
_021FB3A8:
add sp, sp, #0x14
mov r0, #1
@@ -39635,14 +39641,14 @@ _021FB3C4: .word 0x0220ED9C
_021FB3C8: .word 0x0220EDA4
_021FB3CC: .word 0x0220EDB0
- arm_func_start FUN_021FB3D0
-FUN_021FB3D0: ; 0x021FB3D0
+ arm_func_start MOD04_021FB3D0
+MOD04_021FB3D0: ; 0x021FB3D0
stmdb sp!, {r0, r1, r2, r3}
add sp, sp, #0x10
bx lr
- arm_func_start FUN_021FB3DC
-FUN_021FB3DC: ; 0x021FB3DC
+ arm_func_start MOD04_021FB3DC
+MOD04_021FB3DC: ; 0x021FB3DC
stmdb sp!, {r4, r5, r6, lr}
movs r6, r0
mov r5, r1
@@ -39675,8 +39681,8 @@ _021FB440: .word 0x0220EDB8
_021FB444: .word 0x0220ECC4
_021FB448: .word 0x0220EDC8
- arm_func_start FUN_021FB44C
-FUN_021FB44C: ; 0x021FB44C
+ arm_func_start MOD04_021FB44C
+MOD04_021FB44C: ; 0x021FB44C
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x24
ldr r0, _021FB520 ; =0x02210F84
@@ -39684,7 +39690,7 @@ FUN_021FB44C: ; 0x021FB44C
cmp r0, #0
addeq sp, sp, #0x24
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
- bl FUN_021EF06C
+ bl MOD04_021EF06C
subs r4, r0, #1
bmi _021FB500
ldr r5, _021FB524 ; =0x0220BBC8
@@ -39716,19 +39722,19 @@ _021FB4B8:
mov r0, r8
mov r1, r7
str sb, [r5]
- bl FUN_021FBCB8
+ bl MOD04_021FBCB8
mov r0, r4
mov r1, r6
mov r2, r6
mov r3, r8
str r6, [sp]
- bl FUN_021FB530
+ bl MOD04_021FB530
subs r4, r4, #1
bpl _021FB4AC
_021FB500:
ldr r0, _021FB520 ; =0x02210F84
ldr r0, [r0]
- bl FUN_021EF074
+ bl MOD04_021EF074
ldr r0, _021FB520 ; =0x02210F84
mov r1, #0
str r1, [r0]
@@ -39740,8 +39746,8 @@ _021FB524: .word 0x0220BBC8
_021FB528: .word 0x0220EDEC
_021FB52C: .word 0x0220EDD8
- arm_func_start FUN_021FB530
-FUN_021FB530: ; 0x021FB530
+ arm_func_start MOD04_021FB530
+MOD04_021FB530: ; 0x021FB530
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
movs r7, r0
@@ -39752,14 +39758,14 @@ FUN_021FB530: ; 0x021FB530
ldmmiia sp!, {r4, r5, r6, r7, pc}
ldr r0, _021FB650 ; =0x02210F84
ldr r0, [r0]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r7, r0
addge sp, sp, #0x14
ldmgeia sp!, {r4, r5, r6, r7, pc}
ldr r0, _021FB650 ; =0x02210F84
mov r1, r7
ldr r0, [r0]
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r3, r0
ldr ip, [r3, #0x18]
cmp ip, #0
@@ -39817,19 +39823,19 @@ _021FB638:
ldr r0, _021FB650 ; =0x02210F84
mov r1, r7
ldr r0, [r0]
- bl FUN_021EED84
+ bl MOD04_021EED84
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
_021FB650: .word 0x02210F84
- arm_func_start FUN_021FB654
-FUN_021FB654: ; 0x021FB654
+ arm_func_start MOD04_021FB654
+MOD04_021FB654: ; 0x021FB654
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov sb, r1
mov sl, r0
mov r7, sb
- bl FUN_021FBB3C
+ bl MOD04_021FBB3C
mov r8, r0
ldr r5, _021FB6D4 ; =0x0220EDDC
ldr r4, _021FB6D8 ; =0x0220EDD8
@@ -39839,10 +39845,10 @@ _021FB678:
mov r0, sl
mov r1, r6
str r5, [r4]
- bl FUN_021FBCB8
+ bl MOD04_021FBCB8
mov r0, sl
mov r1, r6
- bl FUN_021FB6DC
+ bl MOD04_021FB6DC
add r0, r6, #7
sub sb, sb, r0
cmp sb, #0
@@ -39850,7 +39856,7 @@ _021FB678:
ble _021FB6BC
mov r0, sl
mov r1, sb
- bl FUN_021FBB3C
+ bl MOD04_021FBB3C
mov r8, r0
_021FB6BC:
cmp sb, #0
@@ -39864,8 +39870,8 @@ _021FB6CC:
_021FB6D4: .word 0x0220EDDC
_021FB6D8: .word 0x0220EDD8
- arm_func_start FUN_021FB6DC
-FUN_021FB6DC: ; 0x021FB6DC
+ arm_func_start MOD04_021FB6DC
+MOD04_021FB6DC: ; 0x021FB6DC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r1
@@ -39879,7 +39885,7 @@ FUN_021FB6DC: ; 0x021FB6DC
bne _021FB71C
mov r0, r5
mov r1, r4
- bl FUN_021FBA00
+ bl MOD04_021FBA00
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021FB71C:
@@ -39891,7 +39897,7 @@ _021FB71C:
bne _021FB748
mov r0, r5
mov r1, r4
- bl FUN_021FB968
+ bl MOD04_021FB968
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021FB748:
@@ -39903,7 +39909,7 @@ _021FB748:
bne _021FB774
mov r0, r5
mov r1, r4
- bl FUN_021FB968
+ bl MOD04_021FB968
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021FB774:
@@ -39915,7 +39921,7 @@ _021FB774:
bne _021FB7A0
mov r0, r5
mov r1, r4
- bl FUN_021FB884
+ bl MOD04_021FB884
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_021FB7A0:
@@ -39928,7 +39934,7 @@ _021FB7A0:
ldmneia sp!, {r4, r5, pc}
mov r0, r5
mov r1, r4
- bl FUN_021FB7E0
+ bl MOD04_021FB7E0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
@@ -39937,34 +39943,34 @@ _021FB7D4: .word 0x0220EE08
_021FB7D8: .word 0x0220EE14
_021FB7DC: .word 0x0220EE20
- arm_func_start FUN_021FB7E0
-FUN_021FB7E0: ; 0x021FB7E0
+ arm_func_start MOD04_021FB7E0
+MOD04_021FB7E0: ; 0x021FB7E0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r1, _021FB874 ; =0x0220EE2C
mov r7, r0
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r6, r0
ldr r1, _021FB878 ; =0x0220EE34
mov r0, r7
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r5, r0
ldr r1, _021FB87C ; =0x0220EE38
mov r0, r7
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r4, r0
ldr r1, _021FB880 ; =0x0220EE3C
mov r0, r7
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r1, r4
mov r4, r0
mov r2, r5
mov r0, #2
- bl FUN_021FBAB0
+ bl MOD04_021FBAB0
mvn r1, #0
cmp r0, r1
addeq sp, sp, #4
@@ -39973,7 +39979,7 @@ FUN_021FB7E0: ; 0x021FB7E0
mov r1, r6
mov r2, r4
str r3, [sp]
- bl FUN_021FB530
+ bl MOD04_021FB530
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
@@ -39982,34 +39988,34 @@ _021FB878: .word 0x0220EE34
_021FB87C: .word 0x0220EE38
_021FB880: .word 0x0220EE3C
- arm_func_start FUN_021FB884
-FUN_021FB884: ; 0x021FB884
+ arm_func_start MOD04_021FB884
+MOD04_021FB884: ; 0x021FB884
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
ldr r1, _021FB94C ; =0x0220EE40
mov r4, r0
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r7, r0
ldr r1, _021FB950 ; =0x0220EE38
mov r0, r4
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r6, r0
ldr r1, _021FB954 ; =0x0220EE34
mov r0, r4
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r5, r0
ldr r1, _021FB958 ; =0x0220EE3C
mov r0, r4
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r2, r5
mov r5, r0
mov r1, r6
mov r0, #1
- bl FUN_021FBAB0
+ bl MOD04_021FBAB0
mov r8, r0
mvn r0, #0
cmp r8, r0
@@ -40017,7 +40023,7 @@ FUN_021FB884: ; 0x021FB884
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
ldr r1, _021FB95C ; =0x0220EE48
mov r0, r4
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r6, r0
ldr r1, _021FB960 ; =0x0220EE50
@@ -40031,7 +40037,7 @@ FUN_021FB884: ; 0x021FB884
mov r1, r7
mov r2, r5
str r6, [sp]
- bl FUN_021FB530
+ bl MOD04_021FB530
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
@@ -40043,23 +40049,23 @@ _021FB95C: .word 0x0220EE48
_021FB960: .word 0x0220EE50
_021FB964: .word 0x0220EE58
- arm_func_start FUN_021FB968
-FUN_021FB968: ; 0x021FB968
+ arm_func_start MOD04_021FB968
+MOD04_021FB968: ; 0x021FB968
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r1, _021FB9F4 ; =0x0220EE5C
mov r5, r0
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r4, r0
ldr r1, _021FB9F8 ; =0x0220EE38
mov r0, r5
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r1, r0
mov r0, #3
mov r2, #0
- bl FUN_021FBAB0
+ bl MOD04_021FBAB0
mov r5, r0
mvn r0, #0
cmp r5, r0
@@ -40068,7 +40074,7 @@ FUN_021FB968: ; 0x021FB968
ldr r0, _021FB9FC ; =0x02210F84
mov r1, r5
ldr r0, [r0]
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
cmp r4, #0
movgt r1, #1
mov r2, #0
@@ -40077,7 +40083,7 @@ FUN_021FB968: ; 0x021FB968
mov r0, r5
mov r3, r2
str r2, [sp]
- bl FUN_021FB530
+ bl MOD04_021FB530
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
@@ -40085,28 +40091,28 @@ _021FB9F4: .word 0x0220EE5C
_021FB9F8: .word 0x0220EE38
_021FB9FC: .word 0x02210F84
- arm_func_start FUN_021FBA00
-FUN_021FBA00: ; 0x021FBA00
+ arm_func_start MOD04_021FBA00
+MOD04_021FBA00: ; 0x021FBA00
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
ldr r1, _021FBAA0 ; =0x0220EE64
mov r6, r0
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r5, r0
ldr r1, _021FBAA4 ; =0x0220EE38
mov r0, r6
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
bl atol
mov r4, r0
ldr r1, _021FBAA8 ; =0x0220EE6C
mov r0, r6
- bl FUN_021FBBC8
+ bl MOD04_021FBBC8
mov r1, r4
mov r4, r0
mov r0, #0
mov r2, r0
- bl FUN_021FBAB0
+ bl MOD04_021FBAB0
mov r6, r0
mvn r0, #0
cmp r6, r0
@@ -40115,7 +40121,7 @@ FUN_021FBA00: ; 0x021FBA00
ldr r0, _021FBAAC ; =0x02210F84
mov r1, r6
ldr r0, [r0]
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
cmp r5, #0
movgt r1, #1
str r5, [r0, #8]
@@ -40124,7 +40130,7 @@ FUN_021FBA00: ; 0x021FBA00
mov r0, r6
mov r3, r4
str r2, [sp]
- bl FUN_021FB530
+ bl MOD04_021FB530
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
@@ -40133,8 +40139,8 @@ _021FBAA4: .word 0x0220EE38
_021FBAA8: .word 0x0220EE6C
_021FBAAC: .word 0x02210F84
- arm_func_start FUN_021FBAB0
-FUN_021FBAB0: ; 0x021FBAB0
+ arm_func_start MOD04_021FBAB0
+MOD04_021FBAB0: ; 0x021FBAB0
stmdb sp!, {r4, r5, r6, r7, r8, lr}
ldr r3, _021FBB38 ; =0x02210F84
mov r7, r0
@@ -40145,14 +40151,14 @@ FUN_021FBAB0: ; 0x021FBAB0
mvneq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
mov r4, #0
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
ble _021FBB30
ldr r8, _021FBB38 ; =0x02210F84
_021FBAE8:
ldr r0, [r8]
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r1, [r0]
cmp r1, r7
bne _021FBB1C
@@ -40166,7 +40172,7 @@ _021FBAE8:
_021FBB1C:
ldr r0, [r8]
add r4, r4, #1
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r4, r0
blt _021FBAE8
_021FBB30:
@@ -40175,8 +40181,8 @@ _021FBB30:
.align 2, 0
_021FBB38: .word 0x02210F84
- arm_func_start FUN_021FBB3C
-FUN_021FBB3C: ; 0x021FBB3C
+ arm_func_start MOD04_021FBB3C
+MOD04_021FBB3C: ; 0x021FBB3C
sub r2, r1, #6
mov r3, r0
cmp r2, #0
@@ -40213,18 +40219,18 @@ _021FBBB4:
mov r0, #0
bx lr
- arm_func_start FUN_021FBBBC
-FUN_021FBBBC: ; 0x021FBBBC
- ldr ip, _021FBBC4 ; =FUN_021EFF2C
+ arm_func_start MOD04_021FBBBC
+MOD04_021FBBBC: ; 0x021FBBBC
+ ldr ip, _021FBBC4 ; =MOD04_021EFF2C
bx ip
.align 2, 0
-_021FBBC4: .word FUN_021EFF2C
+_021FBBC4: .word MOD04_021EFF2C
- arm_func_start FUN_021FBBC8
-FUN_021FBBC8: ; 0x021FBBC8
+ arm_func_start MOD04_021FBBC8
+MOD04_021FBBC8: ; 0x021FBBC8
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_021FBBE8
+ bl MOD04_021FBBE8
cmp r0, #0
ldreq r0, _021FBBE4 ; =0x0220EE58
add sp, sp, #4
@@ -40232,8 +40238,8 @@ FUN_021FBBC8: ; 0x021FBBC8
.align 2, 0
_021FBBE4: .word 0x0220EE58
- arm_func_start FUN_021FBBE8
-FUN_021FBBE8: ; 0x021FBBE8
+ arm_func_start MOD04_021FBBE8
+MOD04_021FBBE8: ; 0x021FBBE8
stmdb sp!, {r4, lr}
sub sp, sp, #0x100
ldr lr, _021FBCA8 ; =0x0220BBD8
@@ -40292,8 +40298,8 @@ _021FBCAC: .word 0x02210F8C
_021FBCB0: .word 0x0220EE74
_021FBCB4: .word 0x02211194
- arm_func_start FUN_021FBCB8
-FUN_021FBCB8: ; 0x021FBCB8
+ arm_func_start MOD04_021FBCB8
+MOD04_021FBCB8: ; 0x021FBCB8
stmdb sp!, {r4, lr}
ldr r2, _021FBCFC ; =0x0220EDD8
mov r4, #0
@@ -40315,8 +40321,8 @@ _021FBCD0:
.align 2, 0
_021FBCFC: .word 0x0220EDD8
- arm_func_start FUN_021FBD00
-FUN_021FBD00: ; 0x021FBD00
+ arm_func_start MOD04_021FBD00
+MOD04_021FBD00: ; 0x021FBD00
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
ldr r0, _021FBE48 ; =0x0220EDD4
mvn r1, #0
@@ -40329,7 +40335,7 @@ FUN_021FBD00: ; 0x021FBD00
cmp r1, #5
movne r0, #0
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021FBBBC
+ bl MOD04_021FBBBC
cmp r0, #0
beq _021FBE2C
ldr r8, _021FBE50 ; =0x02210F80
@@ -40351,7 +40357,7 @@ _021FBD54:
ldr r1, [sl]
ldr r0, [r8]
add r1, r1, #1
- bl FUN_021DD844
+ bl MOD04_021DD844
str r0, [r8]
cmp r0, #0
moveq r0, #0
@@ -40364,10 +40370,10 @@ _021FBD98:
mov r3, r5
add r1, r1, r4
sub r2, r2, r4
- bl FUN_021EFC78
+ bl MOD04_021EFC78
cmp r0, #0
bgt _021FBDCC
- bl FUN_021FBE7C
+ bl MOD04_021FBE7C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_021FBDCC:
@@ -40378,7 +40384,7 @@ _021FBDCC:
strb r5, [r1, r0]
ldr r0, [r8]
ldr r1, [sb]
- bl FUN_021FB654
+ bl MOD04_021FB654
ldr r1, [sb]
mov r4, r0
cmp r4, r1
@@ -40393,7 +40399,7 @@ _021FBDCC:
str r0, [sb]
_021FBE1C:
ldr r0, [r7]
- bl FUN_021FBBBC
+ bl MOD04_021FBBBC
cmp r0, #0
bne _021FBD54
_021FBE2C:
@@ -40411,8 +40417,8 @@ _021FBE50: .word 0x02210F80
_021FBE54: .word 0x02210F90
_021FBE58: .word 0x02210F7C
- arm_func_start FUN_021FBE5C
-FUN_021FBE5C: ; 0x021FBE5C
+ arm_func_start MOD04_021FBE5C
+MOD04_021FBE5C: ; 0x021FBE5C
ldr r1, _021FBE78 ; =0x0220EDD4
mvn r0, #0
ldr r1, [r1]
@@ -40423,8 +40429,8 @@ FUN_021FBE5C: ; 0x021FBE5C
.align 2, 0
_021FBE78: .word 0x0220EDD4
- arm_func_start FUN_021FBE7C
-FUN_021FBE7C: ; 0x021FBE7C
+ arm_func_start MOD04_021FBE7C
+MOD04_021FBE7C: ; 0x021FBE7C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _021FBEF8 ; =0x0220EDD4
@@ -40433,21 +40439,21 @@ FUN_021FBE7C: ; 0x021FBE7C
cmp r0, r1
beq _021FBEAC
mov r1, #2
- bl FUN_021EFD80
+ bl MOD04_021EFD80
ldr r0, _021FBEF8 ; =0x0220EDD4
ldr r0, [r0]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
_021FBEAC:
ldr r0, _021FBEF8 ; =0x0220EDD4
mvn r1, #0
str r1, [r0]
- bl FUN_021FB44C
+ bl MOD04_021FB44C
ldr r0, _021FBEFC ; =0x02210F80
ldr r0, [r0]
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r2, _021FBEFC ; =0x02210F80
mov r3, #0
ldr r1, _021FBF00 ; =0x02210F90
@@ -40463,8 +40469,8 @@ _021FBEFC: .word 0x02210F80
_021FBF00: .word 0x02210F90
_021FBF04: .word 0x02210F7C
- arm_func_start FUN_021FBF08
-FUN_021FBF08: ; 0x021FBF08
+ arm_func_start MOD04_021FBF08
+MOD04_021FBF08: ; 0x021FBF08
mov ip, #0
_021FBF0C:
cmp ip, #0
@@ -40483,8 +40489,8 @@ _021FBF30:
mov r0, #1
bx lr
- arm_func_start FUN_021FBF44
-FUN_021FBF44: ; 0x021FBF44
+ arm_func_start MOD04_021FBF44
+MOD04_021FBF44: ; 0x021FBF44
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov r5, r0
@@ -40493,7 +40499,7 @@ FUN_021FBF44: ; 0x021FBF44
bl strlen
mov r8, r0
mov r0, r4
- bl FUN_021FC1BC
+ bl MOD04_021FC1BC
mov sl, #0
mov fp, r0
mov r7, sl
@@ -40572,8 +40578,8 @@ _021FC070: .word 0x2C0B02C1
_021FC074: .word 0x0000005D
_021FC078: .word 0x00004647
- arm_func_start FUN_021FC07C
-FUN_021FC07C: ; 0x021FC07C
+ arm_func_start MOD04_021FC07C
+MOD04_021FC07C: ; 0x021FC07C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
movs sl, r0
@@ -40584,7 +40590,7 @@ FUN_021FC07C: ; 0x021FC07C
mov r3, #0x2b
bl __msl_assertion_failed
_021FC0A0:
- bl FUN_021F025C
+ bl MOD04_021F025C
bl srand
bl rand
ldr r1, _021FC1B4 ; =0x2C0B02C1
@@ -40661,8 +40667,8 @@ _021FC1B0: .word 0x0220EEA4
_021FC1B4: .word 0x2C0B02C1
_021FC1B8: .word 0x0000005D
- arm_func_start FUN_021FC1BC
-FUN_021FC1BC: ; 0x021FC1BC
+ arm_func_start MOD04_021FC1BC
+MOD04_021FC1BC: ; 0x021FC1BC
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
ldrb r4, [r0]
@@ -40711,8 +40717,8 @@ _021FC250:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_021FC268
-FUN_021FC268: ; 0x021FC268
+ arm_func_start MOD04_021FC268
+MOD04_021FC268: ; 0x021FC268
stmdb sp!, {r4, r5, r6, lr}
mov r5, r1
mvn r1, #0
@@ -40756,8 +40762,8 @@ _021FC2F8: .word 0x0220EEB0
_021FC2FC: .word 0x0220EEC8
_021FC300: .word 0x0220EED4
- arm_func_start FUN_021FC304
-FUN_021FC304: ; 0x021FC304
+ arm_func_start MOD04_021FC304
+MOD04_021FC304: ; 0x021FC304
stmdb sp!, {r4, r5, r6, lr}
movs r5, r1
mov r6, r0
@@ -40797,8 +40803,8 @@ _021FC360:
_021FC388: .word 0x0220EEF8
_021FC38C: .word 0x0220EEC8
- arm_func_start FUN_021FC390
-FUN_021FC390: ; 0x021FC390
+ arm_func_start MOD04_021FC390
+MOD04_021FC390: ; 0x021FC390
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -40831,8 +40837,8 @@ _021FC3C8:
_021FC3FC: .word 0x0220EF1C
_021FC400: .word 0x0220EEC8
- arm_func_start FUN_021FC404
-FUN_021FC404: ; 0x021FC404
+ arm_func_start MOD04_021FC404
+MOD04_021FC404: ; 0x021FC404
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -40858,21 +40864,21 @@ _021FC438:
_021FC454: .word 0x0220EF40
_021FC458: .word 0x0220EEC8
- arm_func_start FUN_021FC45C
-FUN_021FC45C: ; 0x021FC45C
+ arm_func_start MOD04_021FC45C
+MOD04_021FC45C: ; 0x021FC45C
ldr r1, [r0, #4]
ldr r0, [r0, #8]
sub r0, r1, r0
bx lr
- arm_func_start FUN_021FC46C
-FUN_021FC46C: ; 0x021FC46C
+ arm_func_start MOD04_021FC46C
+MOD04_021FC46C: ; 0x021FC46C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r1
mov r5, r0
mov r0, r4
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r5]
ldr r0, [r5]
cmp r0, #0
@@ -40882,8 +40888,8 @@ FUN_021FC46C: ; 0x021FC46C
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FC4A4
-FUN_021FC4A4: ; 0x021FC4A4
+ arm_func_start MOD04_021FC4A4
+MOD04_021FC4A4: ; 0x021FC4A4
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
ldr r4, [sp, #0x24]
@@ -40939,7 +40945,7 @@ _021FC51C:
cmp r0, #0
bne _021FC584
mov r0, r8
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -40952,8 +40958,8 @@ _021FC590: .word 0x0220EF5C
_021FC594: .word 0x0220EF64
_021FC598: .word 0x00000197
- arm_func_start FUN_021FC59C
-FUN_021FC59C: ; 0x021FC59C
+ arm_func_start MOD04_021FC59C
+MOD04_021FC59C: ; 0x021FC59C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
movs r7, r0
@@ -41022,7 +41028,7 @@ _021FC620:
cmp r0, #0
bne _021FC6B0
mov r0, r7
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
add sp, sp, #0xc
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -41034,8 +41040,8 @@ _021FC6B0:
_021FC6BC: .word 0x0220EF5C
_021FC6C0: .word 0x0220EF64
- arm_func_start FUN_021FC6C4
-FUN_021FC6C4: ; 0x021FC6C4
+ arm_func_start MOD04_021FC6C4
+MOD04_021FC6C4: ; 0x021FC6C4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r7, r0
@@ -41055,7 +41061,7 @@ _021FC6F4:
ldmeqia sp!, {r4, r5, r6, r7, pc}
ldr r0, [r7, #0x9c]
mov r1, r6
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
movs lr, r0
addeq sp, sp, #4
moveq r0, #1
@@ -41097,7 +41103,7 @@ _021FC738:
ldr r1, [r0, #0x1c]
cmp r1, #0
bne _021FC7BC
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -41110,8 +41116,8 @@ _021FC7C8: .word 0x0220EF74
_021FC7CC: .word 0x0220EF64
_021FC7D0: .word 0x0000012D
- arm_func_start FUN_021FC7D4
-FUN_021FC7D4: ; 0x021FC7D4
+ arm_func_start MOD04_021FC7D4
+MOD04_021FC7D4: ; 0x021FC7D4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r7, r0
@@ -41131,7 +41137,7 @@ _021FC804:
ldmeqia sp!, {r4, r5, r6, r7, pc}
ldr r0, [r7, #0x98]
mov r1, r6
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
movs lr, r0
addeq sp, sp, #4
moveq r0, #1
@@ -41173,7 +41179,7 @@ _021FC848:
ldr r1, [r0, #0x1c]
cmp r1, #0
bne _021FC8CC
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -41186,8 +41192,8 @@ _021FC8D8: .word 0x0220EF74
_021FC8DC: .word 0x0220EF64
_021FC8E0: .word 0x00000101
- arm_func_start FUN_021FC8E4
-FUN_021FC8E4: ; 0x021FC8E4
+ arm_func_start MOD04_021FC8E4
+MOD04_021FC8E4: ; 0x021FC8E4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r4, r0
@@ -41233,7 +41239,7 @@ _021FC90C:
ldr r1, [r0, #0x1c]
cmp r1, #0
bne _021FC9A4
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, pc}
@@ -41245,8 +41251,8 @@ _021FC9A4:
_021FC9B0: .word 0x0220EF74
_021FC9B4: .word 0x0220EF64
- arm_func_start FUN_021FC9B8
-FUN_021FC9B8: ; 0x021FC9B8
+ arm_func_start MOD04_021FC9B8
+MOD04_021FC9B8: ; 0x021FC9B8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r4, r0
@@ -41292,7 +41298,7 @@ _021FC9E0:
ldr r1, [r0, #0x1c]
cmp r1, #0
bne _021FCA78
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, pc}
@@ -41304,8 +41310,8 @@ _021FCA78:
_021FCA84: .word 0x0220EF74
_021FCA88: .word 0x0220EF64
- arm_func_start FUN_021FCA8C
-FUN_021FCA8C: ; 0x021FCA8C
+ arm_func_start MOD04_021FCA8C
+MOD04_021FCA8C: ; 0x021FCA8C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r7, r0
@@ -41363,7 +41369,7 @@ _021FCAF8:
ldr r1, [r0, #0x1c]
cmp r1, #0
bne _021FCB74
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -41375,8 +41381,8 @@ _021FCB74:
_021FCB80: .word 0x0220EF74
_021FCB84: .word 0x0220EF64
- arm_func_start FUN_021FCB88
-FUN_021FCB88: ; 0x021FCB88
+ arm_func_start MOD04_021FCB88
+MOD04_021FCB88: ; 0x021FCB88
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r7, r0
@@ -41435,7 +41441,7 @@ _021FCBF8:
ldr r1, [r0, #0x1c]
cmp r1, #0
bne _021FCC74
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
add sp, sp, #4
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -41447,8 +41453,8 @@ _021FCC74:
_021FCC80: .word 0x0220EF74
_021FCC84: .word 0x0220EF64
- arm_func_start FUN_021FCC88
-FUN_021FCC88: ; 0x021FCC88
+ arm_func_start MOD04_021FCC88
+MOD04_021FCC88: ; 0x021FCC88
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
movs r7, r0
@@ -41521,7 +41527,7 @@ _021FCD14:
cmp r0, #0
bne _021FCDA0
mov r0, r7
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
add sp, sp, #0xc
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -41533,8 +41539,8 @@ _021FCDA0:
_021FCDAC: .word 0x0220EF80
_021FCDB0: .word 0x0220EF64
- arm_func_start FUN_021FCDB4
-FUN_021FCDB4: ; 0x021FCDB4
+ arm_func_start MOD04_021FCDB4
+MOD04_021FCDB4: ; 0x021FCDB4
stmdb sp!, {r4, lr}
movs r4, r0
bne _021FCDD4
@@ -41567,7 +41573,7 @@ _021FCDD4:
cmp r0, #0
bne _021FCE3C
mov r0, r4
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
mov r0, #0
ldmia sp!, {r4, pc}
_021FCE3C:
@@ -41577,51 +41583,51 @@ _021FCE3C:
_021FCE44: .word 0x0220EF5C
_021FCE48: .word 0x0220EF64
- arm_func_start FUN_021FCE4C
-FUN_021FCE4C: ; 0x021FCE4C
+ arm_func_start MOD04_021FCE4C
+MOD04_021FCE4C: ; 0x021FCE4C
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x38]
cmp r0, #0
beq _021FCE64
- bl FUN_021DD82C
+ bl MOD04_021DD82C
_021FCE64:
ldr r0, [r4, #0x44]
cmp r0, #0
beq _021FCE74
- bl FUN_021DD82C
+ bl MOD04_021DD82C
_021FCE74:
ldr r0, [r4, #0x50]
cmp r0, #0
beq _021FCE84
- bl FUN_021DD82C
+ bl MOD04_021DD82C
_021FCE84:
ldr r0, [r4, #0x5c]
cmp r0, #0
beq _021FCE94
- bl FUN_021EF074
+ bl MOD04_021EF074
_021FCE94:
ldr r0, [r4, #0x60]
cmp r0, #0
beq _021FCEA4
- bl FUN_021EF074
+ bl MOD04_021EF074
_021FCEA4:
ldr r0, [r4, #0x98]
cmp r0, #0
beq _021FCEB4
- bl FUN_021EF074
+ bl MOD04_021EF074
_021FCEB4:
ldr r0, [r4, #0x9c]
cmp r0, #0
beq _021FCEC4
- bl FUN_021EF074
+ bl MOD04_021EF074
_021FCEC4:
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FCED0
-FUN_021FCED0: ; 0x021FCED0
+ arm_func_start MOD04_021FCED0
+MOD04_021FCED0: ; 0x021FCED0
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {lr}
sub sp, sp, #4
@@ -41638,19 +41644,19 @@ FUN_021FCED0: ; 0x021FCED0
add r1, sp, #8
ldr r0, [r0, #8]
ldr r0, [r0, #0xc]
- bl FUN_021EF3F4
+ bl MOD04_021EF3F4
ldr r0, [sp, #8]
add r1, sp, #8
ldr r0, [r0, #8]
ldr r0, [r0, #0x10]
- bl FUN_021EEFA8
+ bl MOD04_021EEFA8
add sp, sp, #4
ldmia sp!, {lr}
add sp, sp, #0x10
bx lr
- arm_func_start FUN_021FCF38
-FUN_021FCF38: ; 0x021FCF38
+ arm_func_start MOD04_021FCF38
+MOD04_021FCF38: ; 0x021FCF38
stmdb sp!, {r4, lr}
mov r4, r0
cmp r1, #0
@@ -41658,57 +41664,57 @@ FUN_021FCF38: ; 0x021FCF38
ldr r1, [r4, #0xc]
cmp r1, #7
ldmgeia sp!, {r4, pc}
- bl FUN_021FCED0
+ bl MOD04_021FCED0
mov r0, r4
- bl FUN_021FD828
+ bl MOD04_021FD828
mov r0, r4
mov r1, #0
- bl FUN_021FC9B8
+ bl MOD04_021FC9B8
mov r0, r4
- bl FUN_021FF6BC
+ bl MOD04_021FF6BC
ldmia sp!, {r4, pc}
_021FCF78:
mov r1, #6
str r1, [r4, #0xc]
- bl FUN_021FDA74
+ bl MOD04_021FDA74
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FCF88
-FUN_021FCF88: ; 0x021FCF88
+ arm_func_start MOD04_021FCF88
+MOD04_021FCF88: ; 0x021FCF88
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
mov r4, r1
- bl FUN_021FD108
+ bl MOD04_021FD108
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, pc}
mov r0, r5
mov r1, r4
- bl FUN_021FD004
+ bl MOD04_021FD004
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, pc}
mov r0, r5
mov r1, r4
- bl FUN_021FD090
+ bl MOD04_021FD090
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
ldmeqia sp!, {r4, r5, pc}
mov r0, r5
mov r1, r4
- bl FUN_021FD044
+ bl MOD04_021FD044
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FD004
-FUN_021FD004: ; 0x021FD004
+ arm_func_start MOD04_021FD004
+MOD04_021FD004: ; 0x021FD004
stmdb sp!, {lr}
sub sp, sp, #4
ldr r3, [r0, #0x88]
@@ -41716,7 +41722,7 @@ FUN_021FD004: ; 0x021FD004
sub r1, r1, r3
cmp r1, r2
bls _021FD034
- bl FUN_021FDA18
+ bl MOD04_021FDA18
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -41728,8 +41734,8 @@ _021FD034:
.align 2, 0
_021FD040: .word 0x00007530
- arm_func_start FUN_021FD044
-FUN_021FD044: ; 0x021FD044
+ arm_func_start MOD04_021FD044
+MOD04_021FD044: ; 0x021FD044
stmdb sp!, {lr}
sub sp, sp, #4
ldr r2, [r0, #0x90]
@@ -41741,7 +41747,7 @@ FUN_021FD044: ; 0x021FD044
sub r1, r1, r2
cmp r1, #0x64
bls _021FD084
- bl FUN_021FD8E4
+ bl MOD04_021FD8E4
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -41751,14 +41757,14 @@ _021FD084:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021FD090
-FUN_021FD090: ; 0x021FD090
+ arm_func_start MOD04_021FD090
+MOD04_021FD090: ; 0x021FD090
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
ldr r0, [r7, #0x60]
mov r6, r1
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r4, r0
cmp r4, #0
mov r5, #0
@@ -41766,14 +41772,14 @@ FUN_021FD090: ; 0x021FD090
_021FD0B8:
ldr r0, [r7, #0x60]
mov r1, r5
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r1, r0
ldr r0, [r1, #0xc]
sub r0, r6, r0
cmp r0, #0x3e8
bls _021FD0F0
mov r0, r7
- bl FUN_021FD760
+ bl MOD04_021FD760
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -41787,8 +41793,8 @@ _021FD0FC:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021FD108
-FUN_021FD108: ; 0x021FD108
+ arm_func_start MOD04_021FD108
+MOD04_021FD108: ; 0x021FD108
stmdb sp!, {r4, lr}
mov r4, r0
ldr r2, [r4, #0xc]
@@ -41818,14 +41824,14 @@ _021FD168:
cmp r3, #0
beq _021FD1A0
mov r0, r4
- bl FUN_021FD828
+ bl MOD04_021FD828
mov r0, r4
- bl FUN_021FCED0
+ bl MOD04_021FCED0
mov r2, #0
mov r0, r4
mov r3, r2
mov r1, #6
- bl FUN_021FCB88
+ bl MOD04_021FCB88
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
@@ -41835,8 +41841,8 @@ _021FD1A0:
.align 2, 0
_021FD1A8: .word 0x0000EA60
- arm_func_start FUN_021FD1AC
-FUN_021FD1AC: ; 0x021FD1AC
+ arm_func_start MOD04_021FD1AC
+MOD04_021FD1AC: ; 0x021FD1AC
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r0
@@ -41845,19 +41851,19 @@ FUN_021FD1AC: ; 0x021FD1AC
ldrh r2, [r4, #4]
ldr r0, [r4, #8]
ldr r1, [r4]
- bl FUN_021FF50C
+ bl MOD04_021FF50C
cmp r0, #0
addeq sp, sp, #8
moveq r0, #0
ldmeqia sp!, {r4, pc}
- bl FUN_021F025C
+ bl MOD04_021F025C
str r0, [r4, #0x88]
mov r0, #1
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FD1F4
-FUN_021FD1F4: ; 0x021FD1F4
+ arm_func_start MOD04_021FD1F4
+MOD04_021FD1F4: ; 0x021FD1F4
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, lr}
mov r4, r0
@@ -41870,19 +41876,19 @@ FUN_021FD1F4: ; 0x021FD1F4
bxne lr
add r0, sp, #0xc
add r1, sp, #0x10
- bl FUN_021FFCDC
+ bl MOD04_021FFCDC
ldr r1, [sp, #0xc]
ldr r2, [sp, #0x10]
mov r0, r4
- bl FUN_021FDAD0
+ bl MOD04_021FDAD0
mov r0, #6
str r0, [r4, #0xc]
ldmia sp!, {r4, lr}
add sp, sp, #0x10
bx lr
- arm_func_start FUN_021FD24C
-FUN_021FD24C: ; 0x021FD24C
+ arm_func_start MOD04_021FD24C
+MOD04_021FD24C: ; 0x021FD24C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -41900,7 +41906,7 @@ FUN_021FD24C: ; 0x021FD24C
addne sp, sp, #4
movne r0, r2
ldmneia sp!, {r4, r5, pc}
- bl FUN_021FDB44
+ bl MOD04_021FDB44
mov r0, #5
cmp r4, #0
str r0, [r5, #0xc]
@@ -41911,8 +41917,8 @@ FUN_021FD24C: ; 0x021FD24C
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FD2B8
-FUN_021FD2B8: ; 0x021FD2B8
+ arm_func_start MOD04_021FD2B8
+MOD04_021FD2B8: ; 0x021FD2B8
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x24
@@ -41920,11 +41926,11 @@ FUN_021FD2B8: ; 0x021FD2B8
add r0, sp, #0x34
add r1, sp, #0x38
mov r4, r3
- bl FUN_021FFCDC
+ bl MOD04_021FFCDC
ldr r0, [sp, #0x38]
cmp r0, #0
ble _021FD31C
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r5, #0x38]
ldr r0, [r5, #0x38]
cmp r0, #0
@@ -41944,13 +41950,13 @@ _021FD31C:
ldmneia r4, {r0, r1, r2, r3}
stmneia ip, {r0, r1, r2, r3}
add r0, sp, #0
- bl FUN_021FC07C
+ bl MOD04_021FC07C
add r1, sp, #0
add r0, r5, #0x68
- bl FUN_021FBF44
+ bl MOD04_021FBF44
add r1, sp, #0
mov r0, r5
- bl FUN_021FDCB4
+ bl MOD04_021FDCB4
mov r0, #0
str r0, [r5, #0xc]
add sp, sp, #0x24
@@ -41958,11 +41964,11 @@ _021FD31C:
add sp, sp, #0x10
bx lr
- arm_func_start FUN_021FD364
-FUN_021FD364: ; 0x021FD364
+ arm_func_start MOD04_021FD364
+MOD04_021FD364: ; 0x021FD364
stmdb sp!, {r4, lr}
mov r4, r1
- bl FUN_021FF790
+ bl MOD04_021FF790
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, [r4]
@@ -41973,11 +41979,11 @@ FUN_021FD364: ; 0x021FD364
str r0, [r1, #0x10]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FD394
-FUN_021FD394: ; 0x021FD394
+ arm_func_start MOD04_021FD394
+MOD04_021FD394: ; 0x021FD394
stmdb sp!, {r4, lr}
mov r4, r1
- bl FUN_021FF790
+ bl MOD04_021FF790
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r1, [r4]
@@ -41988,8 +41994,8 @@ FUN_021FD394: ; 0x021FD394
str r2, [r1, #0x10]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FD3C4
-FUN_021FD3C4: ; 0x021FD3C4
+ arm_func_start MOD04_021FD3C4
+MOD04_021FD3C4: ; 0x021FD3C4
stmdb sp!, {r4, lr}
movs r4, r0
bne _021FD3E4
@@ -42006,8 +42012,8 @@ _021FD3EC: .word 0x0220EF98
_021FD3F0: .word 0x0220EFA4
_021FD3F4: .word 0x000001A3
- arm_func_start FUN_021FD3F8
-FUN_021FD3F8: ; 0x021FD3F8
+ arm_func_start MOD04_021FD3F8
+MOD04_021FD3F8: ; 0x021FD3F8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r5, r0
@@ -42026,57 +42032,57 @@ _021FD420:
_021FD42C: .word 0x0220EF98
_021FD430: .word 0x0220EFA4
- arm_func_start FUN_021FD434
-FUN_021FD434: ; 0x021FD434
+ arm_func_start MOD04_021FD434
+MOD04_021FD434: ; 0x021FD434
str r1, [r0, #0x30]
bx lr
- arm_func_start FUN_021FD43C
-FUN_021FD43C: ; 0x021FD43C
+ arm_func_start MOD04_021FD43C
+MOD04_021FD43C: ; 0x021FD43C
ldr r0, [r0]
bx lr
- arm_func_start FUN_021FD444
-FUN_021FD444: ; 0x021FD444
+ arm_func_start MOD04_021FD444
+MOD04_021FD444: ; 0x021FD444
ldr r1, [r0, #0x54]
ldr r0, [r0, #0x58]
sub r0, r1, r0
bx lr
- arm_func_start FUN_021FD454
-FUN_021FD454: ; 0x021FD454
+ arm_func_start MOD04_021FD454
+MOD04_021FD454: ; 0x021FD454
ldrh r0, [r0, #8]
bx lr
- arm_func_start FUN_021FD45C
-FUN_021FD45C: ; 0x021FD45C
- ldr ip, _021FD470 ; =FUN_021EF2E4
+ arm_func_start MOD04_021FD45C
+MOD04_021FD45C: ; 0x021FD45C
+ ldr ip, _021FD470 ; =MOD04_021EF2E4
ldr r0, [r0, #0xc]
- ldr r1, _021FD474 ; =FUN_021FD478
+ ldr r1, _021FD474 ; =MOD04_021FD478
mov r2, #0
bx ip
.align 2, 0
-_021FD470: .word FUN_021EF2E4
-_021FD474: .word FUN_021FD478
+_021FD470: .word MOD04_021EF2E4
+_021FD474: .word MOD04_021FD478
- arm_func_start FUN_021FD478
-FUN_021FD478: ; 0x021FD478
- ldr ip, _021FD484 ; =FUN_021FD488
+ arm_func_start MOD04_021FD478
+MOD04_021FD478: ; 0x021FD478
+ ldr ip, _021FD484 ; =MOD04_021FD488
ldr r0, [r0]
bx ip
.align 2, 0
-_021FD484: .word FUN_021FD488
+_021FD484: .word MOD04_021FD488
- arm_func_start FUN_021FD488
-FUN_021FD488: ; 0x021FD488
- ldr ip, _021FD494 ; =FUN_021FCF38
+ arm_func_start MOD04_021FD488
+MOD04_021FD488: ; 0x021FD488
+ ldr ip, _021FD494 ; =MOD04_021FCF38
mov r1, #1
bx ip
.align 2, 0
-_021FD494: .word FUN_021FCF38
+_021FD494: .word MOD04_021FCF38
- arm_func_start FUN_021FD498
-FUN_021FD498: ; 0x021FD498
+ arm_func_start MOD04_021FD498
+MOD04_021FD498: ; 0x021FD498
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
@@ -42090,9 +42096,9 @@ FUN_021FD498: ; 0x021FD498
bxne lr
add r0, sp, #0x14
add r1, sp, #0x18
- bl FUN_021FFCDC
+ bl MOD04_021FFCDC
ldr r0, [r5, #0x98]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
beq _021FD508
str r4, [sp]
@@ -42100,7 +42106,7 @@ FUN_021FD498: ; 0x021FD498
ldr r3, [sp, #0x18]
mov r0, r5
mov r1, #0
- bl FUN_021FC7D4
+ bl MOD04_021FC7D4
add sp, sp, #4
ldmia sp!, {r4, r5, lr}
add sp, sp, #0x10
@@ -42110,14 +42116,14 @@ _021FD508:
ldr r2, [sp, #0x18]
mov r0, r5
mov r3, r4
- bl FUN_021FD738
+ bl MOD04_021FD738
add sp, sp, #4
ldmia sp!, {r4, r5, lr}
add sp, sp, #0x10
bx lr
- arm_func_start FUN_021FD52C
-FUN_021FD52C: ; 0x021FD52C
+ arm_func_start MOD04_021FD52C
+MOD04_021FD52C: ; 0x021FD52C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov r6, r0
@@ -42126,7 +42132,7 @@ FUN_021FD52C: ; 0x021FD52C
add r1, sp, #8
add r2, sp, #0
mov r4, r3
- bl FUN_021FFD28
+ bl MOD04_021FFD28
cmp r0, #0
beq _021FD570
ldr r2, [sp, #8]
@@ -42158,7 +42164,7 @@ _021FD57C:
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
add r1, sp, #4
mov r0, r6
- bl FUN_021FD394
+ bl MOD04_021FD394
cmp r0, #0
addne sp, sp, #0x10
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
@@ -42169,11 +42175,11 @@ _021FD57C:
ldr r0, [sp, #4]
ldr r3, [sp, #0x30]
mov r1, r4
- bl FUN_021FD2B8
+ bl MOD04_021FD2B8
movs r4, r0
beq _021FD610
ldr r0, [sp, #4]
- bl FUN_021FF6BC
+ bl MOD04_021FF6BC
add sp, sp, #0x10
mov r0, r4
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -42196,7 +42202,7 @@ _021FD634:
mov r7, #1
_021FD64C:
mov r0, r6
- bl FUN_021FD6D4
+ bl MOD04_021FD6D4
ldr r0, [sp, #4]
ldr r0, [r0, #0xc]
cmp r0, #5
@@ -42205,7 +42211,7 @@ _021FD64C:
cmp r8, #0
bne _021FD678
mov r0, r7
- bl FUN_021F0250
+ bl MOD04_021F0250
_021FD678:
cmp r8, #0
beq _021FD64C
@@ -42222,77 +42228,77 @@ _021FD678:
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
- arm_func_start FUN_021FD6B0
-FUN_021FD6B0: ; 0x021FD6B0
- ldr ip, _021FD6B8 ; =FUN_021FD1F4
+ arm_func_start MOD04_021FD6B0
+MOD04_021FD6B0: ; 0x021FD6B0
+ ldr ip, _021FD6B8 ; =MOD04_021FD1F4
bx ip
.align 2, 0
-_021FD6B8: .word FUN_021FD1F4
+_021FD6B8: .word MOD04_021FD1F4
- arm_func_start FUN_021FD6BC
-FUN_021FD6BC: ; 0x021FD6BC
- ldr ip, _021FD6C4 ; =FUN_021FD24C
+ arm_func_start MOD04_021FD6BC
+MOD04_021FD6BC: ; 0x021FD6BC
+ ldr ip, _021FD6C4 ; =MOD04_021FD24C
bx ip
.align 2, 0
-_021FD6C4: .word FUN_021FD24C
+_021FD6C4: .word MOD04_021FD24C
- arm_func_start FUN_021FD6C8
-FUN_021FD6C8: ; 0x021FD6C8
- ldr ip, _021FD6D0 ; =FUN_021FF9C4
+ arm_func_start MOD04_021FD6C8
+MOD04_021FD6C8: ; 0x021FD6C8
+ ldr ip, _021FD6D0 ; =MOD04_021FF9C4
bx ip
.align 2, 0
-_021FD6D0: .word FUN_021FF9C4
+_021FD6D0: .word MOD04_021FF9C4
- arm_func_start FUN_021FD6D4
-FUN_021FD6D4: ; 0x021FD6D4
+ arm_func_start MOD04_021FD6D4
+MOD04_021FD6D4: ; 0x021FD6D4
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021FDF60
+ bl MOD04_021FDF60
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
- bl FUN_021FF470
+ bl MOD04_021FF470
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
- bl FUN_021FF42C
+ bl MOD04_021FF42C
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FD704
-FUN_021FD704: ; 0x021FD704
+ arm_func_start MOD04_021FD704
+MOD04_021FD704: ; 0x021FD704
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021FD45C
+ bl MOD04_021FD45C
mov r0, r4
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FD71C
-FUN_021FD71C: ; 0x021FD71C
+ arm_func_start MOD04_021FD71C
+MOD04_021FD71C: ; 0x021FD71C
stmdb sp!, {lr}
sub sp, sp, #4
ldr ip, [sp, #8]
str ip, [sp]
- bl FUN_021FFA10
+ bl MOD04_021FFA10
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021FD738
-FUN_021FD738: ; 0x021FD738
+ arm_func_start MOD04_021FD738
+MOD04_021FD738: ; 0x021FD738
stmdb sp!, {lr}
sub sp, sp, #4
cmp r3, #0
beq _021FD754
- bl FUN_021FDD24
+ bl MOD04_021FDD24
add sp, sp, #4
ldmfd sp!, {pc}
_021FD754:
- bl FUN_021FD94C
+ bl MOD04_021FD94C
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021FD760
-FUN_021FD760: ; 0x021FD760
+ arm_func_start MOD04_021FD760
+MOD04_021FD760: ; 0x021FD760
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r0
@@ -42301,13 +42307,13 @@ FUN_021FD760: ; 0x021FD760
ldrh r2, [r4, #0x66]
ldr r0, [r4, #0x50]
add r1, r1, #5
- bl FUN_021FF3BC
+ bl MOD04_021FF3BC
ldr r3, [r4, #0x50]
ldr r1, [r5]
ldr r2, [r5, #4]
mov r0, r4
add r1, r3, r1
- bl FUN_021FD1AC
+ bl MOD04_021FD1AC
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -42325,8 +42331,8 @@ FUN_021FD760: ; 0x021FD760
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FD7DC
-FUN_021FD7DC: ; 0x021FD7DC
+ arm_func_start MOD04_021FD7DC
+MOD04_021FD7DC: ; 0x021FD7DC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
ldr r4, _021FD824 ; =0x0220EFB0
@@ -42339,7 +42345,7 @@ FUN_021FD7DC: ; 0x021FD7DC
strb r4, [r3, #1]
strb lr, [sp, #6]
str ip, [sp]
- bl FUN_021FF50C
+ bl MOD04_021FF50C
cmp r0, #0
movne r0, #1
moveq r0, #0
@@ -42348,28 +42354,28 @@ FUN_021FD7DC: ; 0x021FD7DC
.align 2, 0
_021FD824: .word 0x0220EFB0
- arm_func_start FUN_021FD828
-FUN_021FD828: ; 0x021FD828
- ldr ip, _021FD840 ; =FUN_021FD7DC
+ arm_func_start MOD04_021FD828
+MOD04_021FD828: ; 0x021FD828
+ ldr ip, _021FD840 ; =MOD04_021FD7DC
mov r1, r0
ldrh r2, [r1, #4]
ldr r0, [r1, #8]
ldr r1, [r1]
bx ip
.align 2, 0
-_021FD840: .word FUN_021FD7DC
+_021FD840: .word MOD04_021FD7DC
- arm_func_start FUN_021FD844
-FUN_021FD844: ; 0x021FD844
- ldr ip, _021FD854 ; =FUN_021FD1AC
+ arm_func_start MOD04_021FD844
+MOD04_021FD844: ; 0x021FD844
+ ldr ip, _021FD854 ; =MOD04_021FD1AC
mov r3, #0x67
strb r3, [r1, #2]
bx ip
.align 2, 0
-_021FD854: .word FUN_021FD1AC
+_021FD854: .word MOD04_021FD1AC
- arm_func_start FUN_021FD858
-FUN_021FD858: ; 0x021FD858
+ arm_func_start MOD04_021FD858
+MOD04_021FD858: ; 0x021FD858
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
ldr r3, _021FD8E0 ; =0x0220EFB0
@@ -42386,20 +42392,20 @@ FUN_021FD858: ; 0x021FD858
mov r5, #0
mov r1, #3
strb r3, [sp, #2]
- bl FUN_021FF3BC
+ bl MOD04_021FF3BC
cmp r7, r6
add r5, r5, #5
beq _021FD8BC
add r0, sp, #0
mov r1, r5
mov r2, r6
- bl FUN_021FF3BC
+ bl MOD04_021FF3BC
add r5, r5, #2
_021FD8BC:
add r1, sp, #0
mov r0, r4
mov r2, r5
- bl FUN_021FD1AC
+ bl MOD04_021FD1AC
cmp r0, #0
moveq r0, #0
movne r0, #1
@@ -42408,8 +42414,8 @@ _021FD8BC:
.align 2, 0
_021FD8E0: .word 0x0220EFB0
- arm_func_start FUN_021FD8E4
-FUN_021FD8E4: ; 0x021FD8E4
+ arm_func_start MOD04_021FD8E4
+MOD04_021FD8E4: ; 0x021FD8E4
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r1, _021FD948 ; =0x0220EFB0
@@ -42423,11 +42429,11 @@ FUN_021FD8E4: ; 0x021FD8E4
strb r1, [sp, #2]
ldrh r2, [r4, #0x66]
mov r1, #3
- bl FUN_021FF3BC
+ bl MOD04_021FF3BC
add r1, sp, #0
mov r0, r4
mov r2, #5
- bl FUN_021FD1AC
+ bl MOD04_021FD1AC
cmp r0, #0
moveq r0, #0
movne r0, #0
@@ -42438,8 +42444,8 @@ FUN_021FD8E4: ; 0x021FD8E4
.align 2, 0
_021FD948: .word 0x0220EFB0
- arm_func_start FUN_021FD94C
-FUN_021FD94C: ; 0x021FD94C
+ arm_func_start MOD04_021FD94C
+MOD04_021FD94C: ; 0x021FD94C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r6, r2
mov r8, r0
@@ -42456,7 +42462,7 @@ _021FD97C:
mov r0, r8
mov r1, r7
mov r2, r6
- bl FUN_021FD1AC
+ bl MOD04_021FD1AC
cmp r0, #0
moveq r0, #0
movne r0, #1
@@ -42464,7 +42470,7 @@ _021FD97C:
_021FD99C:
add r5, r6, #2
add r0, r8, #0x50
- bl FUN_021FC45C
+ bl MOD04_021FC45C
cmp r0, r5
movlt r0, #1
ldmltia sp!, {r4, r5, r6, r7, r8, pc}
@@ -42474,36 +42480,36 @@ _021FD99C:
add r0, r8, #0x50
mov r2, #2
add r4, ip, r3
- bl FUN_021FC304
+ bl MOD04_021FC304
mov r1, r7
mov r2, r6
add r0, r8, #0x50
- bl FUN_021FC304
+ bl MOD04_021FC304
mov r0, r8
mov r1, r4
mov r2, r5
- bl FUN_021FD1AC
+ bl MOD04_021FD1AC
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
mov r2, r5
add r0, r8, #0x50
mvn r1, #0
- bl FUN_021FC268
+ bl MOD04_021FC268
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_021FDA14: .word 0x0220EFB0
- arm_func_start FUN_021FDA18
-FUN_021FDA18: ; 0x021FDA18
+ arm_func_start MOD04_021FDA18
+MOD04_021FDA18: ; 0x021FDA18
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r1, #7
add r3, sp, #0
mov r2, r1
mov r4, r0
- bl FUN_021FDE18
+ bl MOD04_021FDE18
cmp r0, #0
addeq sp, sp, #8
moveq r0, #0
@@ -42514,22 +42520,22 @@ FUN_021FDA18: ; 0x021FDA18
movne r0, #1
ldmneia sp!, {r4, pc}
mov r0, r4
- bl FUN_021FDD98
+ bl MOD04_021FDD98
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FDA74
-FUN_021FDA74: ; 0x021FDA74
+ arm_func_start MOD04_021FDA74
+MOD04_021FDA74: ; 0x021FDA74
stmdb sp!, {r4, lr}
sub sp, sp, #8
add r3, sp, #0
mov r1, #6
mov r2, #7
mov r4, r0
- bl FUN_021FDE18
+ bl MOD04_021FDE18
cmp r0, #0
addeq sp, sp, #8
moveq r0, #0
@@ -42540,15 +42546,15 @@ FUN_021FDA74: ; 0x021FDA74
movne r0, #1
ldmneia sp!, {r4, pc}
mov r0, r4
- bl FUN_021FDD98
+ bl MOD04_021FDD98
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FDAD0
-FUN_021FDAD0: ; 0x021FDAD0
+ arm_func_start MOD04_021FDAD0
+MOD04_021FDAD0: ; 0x021FDAD0
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r4, r2
@@ -42557,7 +42563,7 @@ FUN_021FDAD0: ; 0x021FDAD0
add r2, r4, #7
mov r1, #5
mov r6, r0
- bl FUN_021FDE18
+ bl MOD04_021FDE18
cmp r0, #0
addeq sp, sp, #8
moveq r0, #0
@@ -42570,24 +42576,24 @@ FUN_021FDAD0: ; 0x021FDAD0
mov r1, r5
mov r2, r4
add r0, r6, #0x50
- bl FUN_021FC304
+ bl MOD04_021FC304
mov r0, r6
- bl FUN_021FDD98
+ bl MOD04_021FDD98
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021FDB44
-FUN_021FDB44: ; 0x021FDB44
+ arm_func_start MOD04_021FDB44
+MOD04_021FDB44: ; 0x021FDB44
stmdb sp!, {r4, lr}
sub sp, sp, #8
add r3, sp, #0
mov r1, #4
mov r2, #7
mov r4, r0
- bl FUN_021FDE18
+ bl MOD04_021FDE18
cmp r0, #0
addeq sp, sp, #8
moveq r0, #0
@@ -42598,15 +42604,15 @@ FUN_021FDB44: ; 0x021FDB44
movne r0, #1
ldmneia sp!, {r4, pc}
mov r0, r4
- bl FUN_021FDD98
+ bl MOD04_021FDD98
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FDBA0
-FUN_021FDBA0: ; 0x021FDBA0
+ arm_func_start MOD04_021FDBA0
+MOD04_021FDBA0: ; 0x021FDBA0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r4, r3
@@ -42616,7 +42622,7 @@ FUN_021FDBA0: ; 0x021FDBA0
add r2, r4, #0x27
mov r1, #3
mov r7, r0
- bl FUN_021FDE18
+ bl MOD04_021FDE18
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -42629,21 +42635,21 @@ FUN_021FDBA0: ; 0x021FDBA0
mov r1, r6
add r0, r7, #0x50
mov r2, #0x20
- bl FUN_021FC304
+ bl MOD04_021FC304
mov r1, r5
mov r2, r4
add r0, r7, #0x50
- bl FUN_021FC304
+ bl MOD04_021FC304
mov r0, r7
- bl FUN_021FDD98
+ bl MOD04_021FDD98
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021FDC28
-FUN_021FDC28: ; 0x021FDC28
+ arm_func_start MOD04_021FDC28
+MOD04_021FDC28: ; 0x021FDC28
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r5, r1
@@ -42652,7 +42658,7 @@ FUN_021FDC28: ; 0x021FDC28
mov r1, #2
mov r2, #0x47
mov r6, r0
- bl FUN_021FDE18
+ bl MOD04_021FDE18
cmp r0, #0
addeq sp, sp, #8
moveq r0, #0
@@ -42665,13 +42671,13 @@ FUN_021FDC28: ; 0x021FDC28
mov r1, r5
add r0, r6, #0x50
mov r2, #0x20
- bl FUN_021FC304
+ bl MOD04_021FC304
mov r1, r4
add r0, r6, #0x50
mov r2, #0x20
- bl FUN_021FC304
+ bl MOD04_021FC304
mov r0, r6
- bl FUN_021FDD98
+ bl MOD04_021FDD98
cmp r0, #0
ldrne r1, [r6, #0x88]
moveq r0, #0
@@ -42680,8 +42686,8 @@ FUN_021FDC28: ; 0x021FDC28
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021FDCB4
-FUN_021FDCB4: ; 0x021FDCB4
+ arm_func_start MOD04_021FDCB4
+MOD04_021FDCB4: ; 0x021FDCB4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r1
@@ -42689,7 +42695,7 @@ FUN_021FDCB4: ; 0x021FDCB4
mov r1, #1
mov r2, #0x27
mov r5, r0
- bl FUN_021FDE18
+ bl MOD04_021FDE18
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -42702,17 +42708,17 @@ FUN_021FDCB4: ; 0x021FDCB4
mov r1, r4
add r0, r5, #0x50
mov r2, #0x20
- bl FUN_021FC304
+ bl MOD04_021FC304
mov r0, r5
- bl FUN_021FDD98
+ bl MOD04_021FDD98
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FDD24
-FUN_021FDD24: ; 0x021FDD24
+ arm_func_start MOD04_021FDD24
+MOD04_021FDD24: ; 0x021FDD24
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r4, r2
@@ -42721,7 +42727,7 @@ FUN_021FDD24: ; 0x021FDD24
add r2, r4, #7
mov r1, #0
mov r6, r0
- bl FUN_021FDE18
+ bl MOD04_021FDE18
cmp r0, #0
addeq sp, sp, #8
moveq r0, #0
@@ -42734,22 +42740,22 @@ FUN_021FDD24: ; 0x021FDD24
mov r1, r5
mov r2, r4
add r0, r6, #0x50
- bl FUN_021FC304
+ bl MOD04_021FC304
mov r0, r6
- bl FUN_021FDD98
+ bl MOD04_021FDD98
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021FDD98
-FUN_021FDD98: ; 0x021FDD98
+ arm_func_start MOD04_021FDD98
+MOD04_021FDD98: ; 0x021FDD98
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
ldr r0, [r5, #0x60]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r4, r0
cmp r4, #0
bgt _021FDDCC
@@ -42761,13 +42767,13 @@ FUN_021FDD98: ; 0x021FDD98
_021FDDCC:
ldr r0, [r5, #0x60]
sub r1, r4, #1
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r3, [r5, #0x50]
ldr r1, [r0]
ldr r2, [r0, #4]
mov r0, r5
add r1, r3, r1
- bl FUN_021FD1AC
+ bl MOD04_021FD1AC
cmp r0, #0
moveq r0, #0
movne r0, #0
@@ -42780,8 +42786,8 @@ _021FDE0C: .word 0x0220EFBC
_021FDE10: .word 0x0220EFC4
_021FDE14: .word 0x00000475
- arm_func_start FUN_021FDE18
-FUN_021FDE18: ; 0x021FDE18
+ arm_func_start MOD04_021FDE18
+MOD04_021FDE18: ; 0x021FDE18
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
@@ -42789,11 +42795,11 @@ FUN_021FDE18: ; 0x021FDE18
add r0, r7, #0x50
mov r6, r1
mov r4, r3
- bl FUN_021FC45C
+ bl MOD04_021FC45C
cmp r0, r5
bge _021FDE60
mov r0, r7
- bl FUN_021FF2D8
+ bl MOD04_021FF2D8
cmp r0, #0
moveq r0, #0
movne r0, #1
@@ -42804,11 +42810,11 @@ _021FDE60:
ldrh r1, [r7, #0x64]
mov r0, r7
mov r2, r5
- bl FUN_021FDEEC
+ bl MOD04_021FDEEC
cmp r0, #0
bne _021FDE98
mov r0, r7
- bl FUN_021FF2D8
+ bl MOD04_021FF2D8
cmp r0, #0
moveq r0, #0
movne r0, #1
@@ -42819,18 +42825,18 @@ _021FDE98:
ldr r1, _021FDEE8 ; =0x0220EFB0
add r0, r7, #0x50
mov r2, #2
- bl FUN_021FC304
+ bl MOD04_021FC304
add r0, r7, #0x50
and r1, r6, #0xff
- bl FUN_021FC404
+ bl MOD04_021FC404
ldrh r1, [r7, #0x64]
add r0, r7, #0x50
add r2, r1, #1
strh r2, [r7, #0x64]
- bl FUN_021FC390
+ bl MOD04_021FC390
ldrh r1, [r7, #0x66]
add r0, r7, #0x50
- bl FUN_021FC390
+ bl MOD04_021FC390
mov r0, #0
str r0, [r4]
mov r0, #1
@@ -42839,8 +42845,8 @@ _021FDE98:
.align 2, 0
_021FDEE8: .word 0x0220EFB0
- arm_func_start FUN_021FDEEC
-FUN_021FDEEC: ; 0x021FDEEC
+ arm_func_start MOD04_021FDEEC
+MOD04_021FDEEC: ; 0x021FDEEC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x14
add r4, sp, #0
@@ -42854,16 +42860,16 @@ FUN_021FDEEC: ; 0x021FDEEC
str r0, [sp]
str r2, [sp, #4]
strh r1, [sp, #8]
- bl FUN_021F025C
+ bl MOD04_021F025C
str r0, [sp, #0xc]
ldr r0, [r5, #0x60]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r4, r0
ldr r0, [r5, #0x60]
add r1, sp, #0
- bl FUN_021EEFA8
+ bl MOD04_021EEFA8
ldr r0, [r5, #0x60]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
add r1, r4, #1
cmp r1, r0
moveq r0, #1
@@ -42871,14 +42877,14 @@ FUN_021FDEEC: ; 0x021FDEEC
add sp, sp, #0x14
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FDF60
-FUN_021FDF60: ; 0x021FDF60
+ arm_func_start MOD04_021FDF60
+MOD04_021FDF60: ; 0x021FDF60
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr ip, _021FE0AC ; =0x000005F4
sub sp, sp, ip
mov sl, r0
ldr r0, [sl]
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
beq _021FE09C
ldr fp, _021FE0B0 ; =0x000005DC
@@ -42896,13 +42902,13 @@ _021FDF9C:
mov r1, r6
mov r2, fp
mov r3, r5
- bl FUN_021EFC40
+ bl MOD04_021EFC40
mov r2, r0
mvn r0, #0
cmp r2, r0
bne _021FE044
ldr r0, [sl]
- bl FUN_021EFB28
+ bl MOD04_021EFB28
cmp r0, r4
bne _021FE020
ldrh r2, [sp, #0xa]
@@ -42915,7 +42921,7 @@ _021FDF9C:
orr r2, r3, r2
mov r2, r2, lsl #0x10
mov r2, r2, lsr #0x10
- bl FUN_021FE0B4
+ bl MOD04_021FE0B4
cmp r0, #0
bne _021FE08C
ldr ip, _021FE0AC ; =0x000005F4
@@ -42927,7 +42933,7 @@ _021FE020:
cmp r0, r1
beq _021FE08C
mov r0, sl
- bl FUN_021FF3F0
+ bl MOD04_021FF3F0
ldr ip, _021FE0AC ; =0x000005F4
mov r0, #0
add sp, sp, ip
@@ -42945,7 +42951,7 @@ _021FE044:
mov r3, r3, lsr #0x10
str r3, [sp]
ldr r3, [sp, #0xc]
- bl FUN_021FE1B4
+ bl MOD04_021FE1B4
cmp r0, #0
ldreq ip, _021FE0AC ; =0x000005F4
moveq r0, #0
@@ -42953,7 +42959,7 @@ _021FE044:
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_021FE08C:
ldr r0, [sl]
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
bne _021FDF9C
_021FE09C:
@@ -42965,14 +42971,14 @@ _021FE09C:
_021FE0AC: .word 0x000005F4
_021FE0B0: .word 0x000005DC
- arm_func_start FUN_021FE0B4
-FUN_021FE0B4: ; 0x021FE0B4
+ arm_func_start MOD04_021FE0B4
+MOD04_021FE0B4: ; 0x021FE0B4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
mov r7, r0
mov r6, r1
mov r5, r2
- bl FUN_021FFC3C
+ bl MOD04_021FFC3C
ldr r1, [r7, #0x2c]
mov r4, r0
cmp r1, #0
@@ -42987,7 +42993,7 @@ FUN_021FE0B4: ; 0x021FE0B4
mov r2, r6
mov r3, r5
str ip, [sp, #0xc]
- bl FUN_021FC59C
+ bl MOD04_021FC59C
cmp r0, #0
addeq sp, sp, #0x14
moveq r0, #0
@@ -43003,7 +43009,7 @@ _021FE118:
ldr r0, [r4, #0x20]
cmp r0, #0
beq _021FE158
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r2, [r4, #0x1c]
ldr r1, [r4, #0x20]
sub r0, r0, r2
@@ -43017,7 +43023,7 @@ _021FE164:
mov r0, r4
mov r1, #6
mov r2, #1
- bl FUN_021FF318
+ bl MOD04_021FF318
cmp r0, #0
bne _021FE1A8
add sp, sp, #0x14
@@ -43027,7 +43033,7 @@ _021FE188:
mov r0, r4
mov r1, #2
mov r2, #1
- bl FUN_021FF318
+ bl MOD04_021FF318
cmp r0, #0
addeq sp, sp, #0x14
moveq r0, #0
@@ -43037,8 +43043,8 @@ _021FE1A8:
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021FE1B4
-FUN_021FE1B4: ; 0x021FE1B4
+ arm_func_start MOD04_021FE1B4
+MOD04_021FE1B4: ; 0x021FE1B4
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x1c
ldr r5, [sp, #0x38]
@@ -43048,7 +43054,7 @@ FUN_021FE1B4: ; 0x021FE1B4
mov r1, r6
mov r2, r5
mov sb, r0
- bl FUN_021FFC3C
+ bl MOD04_021FFC3C
str r0, [sp, #0x10]
ldr r0, [sb, #0x2c]
cmp r0, #0
@@ -43062,7 +43068,7 @@ FUN_021FE1B4: ; 0x021FE1B4
mov r0, sb
mov r2, r6
mov r3, r5
- bl FUN_021FC59C
+ bl MOD04_021FC59C
cmp r0, #0
addeq sp, sp, #0x1c
moveq r0, #0
@@ -43090,7 +43096,7 @@ _021FE24C:
mov r2, r5
mov r3, r8
str ip, [sp, #4]
- bl FUN_021FC4A4
+ bl MOD04_021FC4A4
cmp r0, #0
addeq sp, sp, #0x1c
moveq r0, #0
@@ -43115,7 +43121,7 @@ _021FE2C4:
mov r0, sb
mov r1, r6
mov r2, r5
- bl FUN_021FD7DC
+ bl MOD04_021FD7DC
cmp r0, #0
addeq sp, sp, #0x1c
moveq r0, #0
@@ -43134,7 +43140,7 @@ _021FE2F0:
mov r0, sb
mov r2, r6
mov r3, r5
- bl FUN_021FD364
+ bl MOD04_021FD364
cmp r0, #0
beq _021FE354
cmp r0, #5
@@ -43142,7 +43148,7 @@ _021FE2F0:
mov r0, sb
mov r1, r6
mov r2, r5
- bl FUN_021FD7DC
+ bl MOD04_021FD7DC
cmp r0, #0
addeq sp, sp, #0x1c
moveq r0, #0
@@ -43163,7 +43169,7 @@ _021FE354:
beq _021FE390
_021FE378:
mov r0, r5
- bl FUN_021FD828
+ bl MOD04_021FD828
cmp r0, #0
addeq sp, sp, #0x1c
moveq r0, #0
@@ -43191,7 +43197,7 @@ _021FE3CC:
mov r0, r5
mov r1, r8
mov r2, r7
- bl FUN_021FF134
+ bl MOD04_021FF134
cmp r0, #0
movne r0, #1
add sp, sp, #0x1c
@@ -43202,7 +43208,7 @@ _021FE3F8:
cmp r1, #0
bge _021FE420
mov r0, r5
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x1c
@@ -43214,7 +43220,7 @@ _021FE420:
mov r0, r5
mov r2, r8
mov r3, r7
- bl FUN_021FE780
+ bl MOD04_021FE780
cmp r0, #0
movne r0, #1
add sp, sp, #0x1c
@@ -43224,7 +43230,7 @@ _021FE44C:
mov r0, r5
mov r2, r8
mov r3, r7
- bl FUN_021FE474
+ bl MOD04_021FE474
cmp r0, #0
movne r0, #1
moveq r0, #0
@@ -43233,8 +43239,8 @@ _021FE44C:
.align 2, 0
_021FE470: .word 0x0220EFB0
- arm_func_start FUN_021FE474
-FUN_021FE474: ; 0x021FE474
+ arm_func_start MOD04_021FE474
+MOD04_021FE474: ; 0x021FE474
stmdb sp!, {lr}
sub sp, sp, #4
cmp r1, #0x64
@@ -43243,7 +43249,7 @@ FUN_021FE474: ; 0x021FE474
bne _021FE4AC
mov r1, lr
mov r2, ip
- bl FUN_021FE734
+ bl MOD04_021FE734
cmp r0, #0
bne _021FE540
add sp, sp, #4
@@ -43254,7 +43260,7 @@ _021FE4AC:
bne _021FE4D4
mov r1, lr
mov r2, ip
- bl FUN_021FE648
+ bl MOD04_021FE648
cmp r0, #0
bne _021FE540
add sp, sp, #4
@@ -43265,7 +43271,7 @@ _021FE4D4:
bne _021FE4FC
mov r1, r2
mov r2, r3
- bl FUN_021FE63C
+ bl MOD04_021FE63C
cmp r0, #0
bne _021FE540
add sp, sp, #4
@@ -43276,7 +43282,7 @@ _021FE4FC:
bne _021FE524
mov r1, lr
mov r2, ip
- bl FUN_021FE590
+ bl MOD04_021FE590
cmp r0, #0
bne _021FE540
add sp, sp, #4
@@ -43285,7 +43291,7 @@ _021FE4FC:
_021FE524:
cmp r1, #0x68
bne _021FE540
- bl FUN_021FE54C
+ bl MOD04_021FE54C
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -43295,8 +43301,8 @@ _021FE540:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021FE54C
-FUN_021FE54C: ; 0x021FE54C
+ arm_func_start MOD04_021FE54C
+MOD04_021FE54C: ; 0x021FE54C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, [r0, #0xc]
@@ -43308,15 +43314,15 @@ FUN_021FE54C: ; 0x021FE54C
moveq r2, #0
movne r2, #1
mov r1, #2
- bl FUN_021FF318
+ bl MOD04_021FF318
cmp r0, #0
moveq r0, #0
movne r0, #1
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021FE590
-FUN_021FE590: ; 0x021FE590
+ arm_func_start MOD04_021FE590
+MOD04_021FE590: ; 0x021FE590
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r0
@@ -43348,12 +43354,12 @@ FUN_021FE590: ; 0x021FE590
ldrb r0, [r2, #3]
strb r1, [r3, #2]
strb r0, [r3, #3]
- bl FUN_021F025C
+ bl MOD04_021F025C
mov r2, r0
ldr r1, [sp]
mov r0, r4
sub r1, r2, r1
- bl FUN_021FC8E4
+ bl MOD04_021FC8E4
cmp r0, #0
movne r0, #1
moveq r0, #0
@@ -43362,15 +43368,15 @@ FUN_021FE590: ; 0x021FE590
.align 2, 0
_021FE638: .word 0x0220EFB4
- arm_func_start FUN_021FE63C
-FUN_021FE63C: ; 0x021FE63C
- ldr ip, _021FE644 ; =FUN_021FD844
+ arm_func_start MOD04_021FE63C
+MOD04_021FE63C: ; 0x021FE63C
+ ldr ip, _021FE644 ; =MOD04_021FD844
bx ip
.align 2, 0
-_021FE644: .word FUN_021FD844
+_021FE644: .word MOD04_021FD844
- arm_func_start FUN_021FE648
-FUN_021FE648: ; 0x021FE648
+ arm_func_start MOD04_021FE648
+MOD04_021FE648: ; 0x021FE648
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov r6, r1
@@ -43378,7 +43384,7 @@ FUN_021FE648: ; 0x021FE648
mov r0, r6
mov r1, #0
mov r5, r2
- bl FUN_021FF3D0
+ bl MOD04_021FF3D0
mov sb, r0
cmp r5, #2
moveq r8, sb
@@ -43387,12 +43393,12 @@ FUN_021FE648: ; 0x021FE648
bne _021FE694
mov r0, r6
mov r1, #2
- bl FUN_021FF3D0
+ bl MOD04_021FF3D0
mov r8, r0
b _021FE6B0
_021FE694:
mov r0, r4
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #4
@@ -43400,7 +43406,7 @@ _021FE694:
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_021FE6B0:
ldr r0, [r4, #0x60]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r7, r0
cmp r7, #0
mov r6, #0
@@ -43408,21 +43414,21 @@ _021FE6B0:
_021FE6C8:
ldr r0, [r4, #0x60]
mov r1, r6
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r5, r0
ldrh r0, [r5, #8]
mov r1, sb
- bl FUN_021FF3AC
+ bl MOD04_021FF3AC
cmp r0, #0
blt _021FE71C
ldrh r0, [r5, #8]
mov r1, r8
- bl FUN_021FF3AC
+ bl MOD04_021FF3AC
cmp r0, #0
bgt _021FE71C
mov r0, r4
mov r1, r5
- bl FUN_021FD760
+ bl MOD04_021FD760
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -43436,13 +43442,13 @@ _021FE728:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_021FE734
-FUN_021FE734: ; 0x021FE734
+ arm_func_start MOD04_021FE734
+MOD04_021FE734: ; 0x021FE734
stmdb sp!, {r4, lr}
mov r4, r0
cmp r2, #2
beq _021FE758
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
moveq r0, #0
@@ -43450,17 +43456,17 @@ FUN_021FE734: ; 0x021FE734
_021FE758:
mov r0, r1
mov r1, #0
- bl FUN_021FF3D0
+ bl MOD04_021FF3D0
mov r1, r0
mov r0, r4
- bl FUN_021FF1C8
+ bl MOD04_021FF1C8
cmp r0, #0
movne r0, #1
moveq r0, #0
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FE780
-FUN_021FE780: ; 0x021FE780
+ arm_func_start MOD04_021FE780
+MOD04_021FE780: ; 0x021FE780
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov r6, r3
@@ -43469,7 +43475,7 @@ FUN_021FE780: ; 0x021FE780
mov r7, r2
cmp r6, #7
bge _021FE7B8
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x10
@@ -43478,14 +43484,14 @@ FUN_021FE780: ; 0x021FE780
_021FE7B8:
mov r0, r7
mov r1, #3
- bl FUN_021FF3D0
+ bl MOD04_021FF3D0
mov r5, r0
mov r0, r7
mov r1, #5
- bl FUN_021FF3D0
+ bl MOD04_021FF3D0
mov r1, r0
mov r0, r4
- bl FUN_021FF1C8
+ bl MOD04_021FF1C8
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
@@ -43494,18 +43500,18 @@ _021FE7B8:
cmp r5, r1
bne _021FE844
mov r0, r4
- bl FUN_021FE8CC
+ bl MOD04_021FE8CC
mov r0, r4
mov r1, r8
add r2, r7, #7
sub r3, r6, #7
- bl FUN_021FEBD0
+ bl MOD04_021FEBD0
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
mov r0, r4
- bl FUN_021FE8F4
+ bl MOD04_021FE8F4
cmp r0, #0
movne r0, #1
add sp, sp, #0x10
@@ -43513,11 +43519,11 @@ _021FE7B8:
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_021FE844:
mov r0, r5
- bl FUN_021FF3AC
+ bl MOD04_021FF3AC
cmp r0, #0
bge _021FE868
mov r0, r4
- bl FUN_021FE8CC
+ bl MOD04_021FE8CC
add sp, sp, #0x10
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, r8, pc}
@@ -43530,7 +43536,7 @@ _021FE868:
mov r2, r5
add r3, r7, #7
str ip, [sp, #4]
- bl FUN_021FEA0C
+ bl MOD04_021FEA0C
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
@@ -43539,7 +43545,7 @@ _021FE868:
cmp r0, #0
beq _021FE8C0
mov r0, r4
- bl FUN_021FF2D8
+ bl MOD04_021FF2D8
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
@@ -43549,8 +43555,8 @@ _021FE8C0:
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
- arm_func_start FUN_021FE8CC
-FUN_021FE8CC: ; 0x021FE8CC
+ arm_func_start MOD04_021FE8CC
+MOD04_021FE8CC: ; 0x021FE8CC
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x90]
@@ -43558,23 +43564,23 @@ FUN_021FE8CC: ; 0x021FE8CC
ldmneia sp!, {r4, pc}
mov r0, #1
str r0, [r4, #0x90]
- bl FUN_021F025C
+ bl MOD04_021F025C
str r0, [r4, #0x94]
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FE8F4
-FUN_021FE8F4: ; 0x021FE8F4
+ arm_func_start MOD04_021FE8F4
+MOD04_021FE8F4: ; 0x021FE8F4
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
_021FE8FC:
ldr r0, [r6, #0x5c]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
subs r5, r0, #1
bmi _021FE970
_021FE90C:
ldr r0, [r6, #0x5c]
mov r1, r5
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r4, r0
ldrh r1, [r4, #0xc]
ldrh r0, [r6, #0x66]
@@ -43586,14 +43592,14 @@ _021FE90C:
ldr r3, [r4, #4]
mov r0, r6
add r2, ip, r2
- bl FUN_021FEBD0
+ bl MOD04_021FEBD0
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
mov r1, r4
mov r2, r5
- bl FUN_021FE978
+ bl MOD04_021FE978
b _021FE8FC
_021FE968:
subs r5, r5, #1
@@ -43602,8 +43608,8 @@ _021FE970:
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021FE978
-FUN_021FE978: ; 0x021FE978
+ arm_func_start MOD04_021FE978
+MOD04_021FE978: ; 0x021FE978
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov sb, r0
@@ -43612,9 +43618,9 @@ FUN_021FE978: ; 0x021FE978
ldr r6, [r1, #4]
mov r1, r2
mov r8, #0
- bl FUN_021EED84
+ bl MOD04_021EED84
ldr r0, [sb, #0x5c]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r5, r0
cmp r5, #0
mov r4, r8
@@ -43622,7 +43628,7 @@ FUN_021FE978: ; 0x021FE978
_021FE9B4:
ldr r0, [sb, #0x5c]
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r1, [r0]
cmp r1, r7
ble _021FE9E8
@@ -43641,12 +43647,12 @@ _021FE9F4:
mov r1, r7
mov r2, r6
add r0, sb, #0x44
- bl FUN_021FC268
+ bl MOD04_021FC268
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_021FEA0C
-FUN_021FEA0C: ; 0x021FEA0C
+ arm_func_start MOD04_021FEA0C
+MOD04_021FEA0C: ; 0x021FEA0C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x10
mov sb, r0
@@ -43655,7 +43661,7 @@ FUN_021FEA0C: ; 0x021FEA0C
mov r7, r2
mov r6, r3
ldr r5, [sp, #0x34]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r4, r0
cmp r4, #0
mov sl, #0
@@ -43663,7 +43669,7 @@ FUN_021FEA0C: ; 0x021FEA0C
_021FEA40:
ldr r0, [sb, #0x5c]
mov r1, sl
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldrh r0, [r0, #0xc]
cmp r0, r7
moveq r0, #0
@@ -43672,7 +43678,7 @@ _021FEA40:
moveq r0, #1
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
mov r1, r7
- bl FUN_021FF3AC
+ bl MOD04_021FF3AC
cmp r0, #0
bgt _021FEA84
add sl, sl, #1
@@ -43680,7 +43686,7 @@ _021FEA40:
blt _021FEA40
_021FEA84:
add r0, sb, #0x44
- bl FUN_021FC45C
+ bl MOD04_021FC45C
ldr r2, [sp, #0x30]
cmp r0, r2
movlt r0, #1
@@ -43694,10 +43700,10 @@ _021FEA84:
strh r7, [sp, #0xc]
str r0, [sp]
ldr r0, [sb, #0x5c]
- ldr r2, _021FEBB8 ; =FUN_021FEBBC
- bl FUN_021EEE74
+ ldr r2, _021FEBB8 ; =MOD04_021FEBBC
+ bl MOD04_021EEE74
ldr r0, [sb, #0x5c]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
add r1, r4, #1
cmp r1, r0
movne r0, #1
@@ -43707,7 +43713,7 @@ _021FEA84:
ldr r2, [sp, #0x30]
mov r1, r6
add r0, sb, #0x44
- bl FUN_021FC304
+ bl MOD04_021FC304
cmp r4, #0
bne _021FEB2C
sub r0, r7, #1
@@ -43715,7 +43721,7 @@ _021FEA84:
ldrh r1, [sb, #0x66]
mov r0, sb
mov r2, r2, lsr #0x10
- bl FUN_021FD858
+ bl MOD04_021FD858
cmp r0, #0
bne _021FEBA4
add sp, sp, #0x10
@@ -43724,17 +43730,17 @@ _021FEA84:
_021FEB2C:
ldr r0, [sb, #0x5c]
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldrh r0, [r0, #0xc]
cmp r0, r7
bne _021FEBA4
ldr r0, [sb, #0x5c]
sub r1, r4, #1
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r4, r0
ldrh r1, [r4, #0xc]
mov r0, r7
- bl FUN_021FF3AC
+ bl MOD04_021FF3AC
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
cmp r0, #1
@@ -43747,7 +43753,7 @@ _021FEB2C:
mov r0, sb
mov r1, r1, lsr #0x10
mov r2, r2, lsr #0x10
- bl FUN_021FD858
+ bl MOD04_021FD858
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
@@ -43759,19 +43765,19 @@ _021FEBA4:
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
-_021FEBB8: .word FUN_021FEBBC
+_021FEBB8: .word MOD04_021FEBBC
- arm_func_start FUN_021FEBBC
-FUN_021FEBBC: ; 0x021FEBBC
- ldr ip, _021FEBCC ; =FUN_021FF3AC
+ arm_func_start MOD04_021FEBBC
+MOD04_021FEBBC: ; 0x021FEBBC
+ ldr ip, _021FEBCC ; =MOD04_021FF3AC
ldrh r0, [r0, #0xc]
ldrh r1, [r1, #0xc]
bx ip
.align 2, 0
-_021FEBCC: .word FUN_021FF3AC
+_021FEBCC: .word MOD04_021FF3AC
- arm_func_start FUN_021FEBD0
-FUN_021FEBD0: ; 0x021FEBD0
+ arm_func_start MOD04_021FEBD0
+MOD04_021FEBD0: ; 0x021FEBD0
stmdb sp!, {lr}
sub sp, sp, #4
ldrh ip, [r0, #0x66]
@@ -43781,7 +43787,7 @@ FUN_021FEBD0: ; 0x021FEBD0
bne _021FEC0C
mov r1, r2
mov r2, r3
- bl FUN_021FF084
+ bl MOD04_021FF084
cmp r0, #0
bne _021FECE8
add sp, sp, #4
@@ -43792,7 +43798,7 @@ _021FEC0C:
bne _021FEC34
mov r1, r2
mov r2, r3
- bl FUN_021FEFEC
+ bl MOD04_021FEFEC
cmp r0, #0
bne _021FECE8
add sp, sp, #4
@@ -43803,7 +43809,7 @@ _021FEC34:
bne _021FEC5C
mov r1, r2
mov r2, r3
- bl FUN_021FEF10
+ bl MOD04_021FEF10
cmp r0, #0
bne _021FECE8
add sp, sp, #4
@@ -43814,7 +43820,7 @@ _021FEC5C:
bne _021FEC84
mov r1, r2
mov r2, r3
- bl FUN_021FEDFC
+ bl MOD04_021FEDFC
cmp r0, #0
bne _021FECE8
add sp, sp, #4
@@ -43823,7 +43829,7 @@ _021FEC5C:
_021FEC84:
cmp r1, #4
bne _021FECA4
- bl FUN_021FEDA4
+ bl MOD04_021FEDA4
cmp r0, #0
bne _021FECE8
add sp, sp, #4
@@ -43834,7 +43840,7 @@ _021FECA4:
bne _021FECCC
mov r1, r2
mov r2, r3
- bl FUN_021FED38
+ bl MOD04_021FED38
cmp r0, #0
bne _021FECE8
add sp, sp, #4
@@ -43843,7 +43849,7 @@ _021FECA4:
_021FECCC:
cmp r1, #6
bne _021FECE8
- bl FUN_021FECF4
+ bl MOD04_021FECF4
cmp r0, #0
addeq sp, sp, #4
moveq r0, #0
@@ -43853,11 +43859,11 @@ _021FECE8:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021FECF4
-FUN_021FECF4: ; 0x021FECF4
+ arm_func_start MOD04_021FECF4
+MOD04_021FECF4: ; 0x021FECF4
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021FD828
+ bl MOD04_021FD828
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
@@ -43867,14 +43873,14 @@ FUN_021FECF4: ; 0x021FECF4
moveq r2, #0
movne r2, #1
mov r0, r4
- bl FUN_021FF318
+ bl MOD04_021FF318
cmp r0, #0
moveq r0, #0
movne r0, #1
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FED38
-FUN_021FED38: ; 0x021FED38
+ arm_func_start MOD04_021FED38
+MOD04_021FED38: ; 0x021FED38
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r3, [r6, #0xc]
@@ -43882,15 +43888,15 @@ FUN_021FED38: ; 0x021FED38
mov r4, r2
cmp r3, #1
beq _021FED68
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
moveq r0, #0
ldmia sp!, {r4, r5, r6, pc}
_021FED68:
- bl FUN_021FCED0
+ bl MOD04_021FCED0
mov r0, r6
- bl FUN_021FD828
+ bl MOD04_021FD828
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
@@ -43898,20 +43904,20 @@ _021FED68:
mov r2, r5
mov r3, r4
mov r1, #2
- bl FUN_021FCB88
+ bl MOD04_021FCB88
cmp r0, #0
movne r0, #1
moveq r0, #0
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021FEDA4
-FUN_021FEDA4: ; 0x021FEDA4
+ arm_func_start MOD04_021FEDA4
+MOD04_021FEDA4: ; 0x021FEDA4
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, [r0, #0xc]
cmp r1, #1
beq _021FEDD0
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #4
@@ -43923,15 +43929,15 @@ _021FEDD0:
mov r2, r1
mov r3, r1
str ip, [r0, #0xc]
- bl FUN_021FCB88
+ bl MOD04_021FCB88
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021FEDFC
-FUN_021FEDFC: ; 0x021FEDFC
+ arm_func_start MOD04_021FEDFC
+MOD04_021FEDFC: ; 0x021FEDFC
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x10
mov r6, r0
@@ -43940,7 +43946,7 @@ FUN_021FEDFC: ; 0x021FEDFC
mov r4, r2
cmp r3, #3
beq _021FEE34
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x10
@@ -43949,7 +43955,7 @@ FUN_021FEDFC: ; 0x021FEDFC
_021FEE34:
cmp r4, #0x20
bge _021FEE54
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x10
@@ -43958,11 +43964,11 @@ _021FEE34:
_021FEE54:
mov r0, r5
add r1, r6, #0x68
- bl FUN_021FBF08
+ bl MOD04_021FBF08
cmp r0, #0
bne _021FEE84
mov r0, r6
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x10
@@ -43974,20 +43980,20 @@ _021FEE84:
cmp r0, #0
bne _021FEEC0
mov r0, r6
- bl FUN_021FD828
+ bl MOD04_021FD828
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
mov r0, r6
- bl FUN_021FCED0
+ bl MOD04_021FCED0
add sp, sp, #0x10
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_021FEEC0:
mov r0, #4
str r0, [r6, #0xc]
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r2, [r6, #0x8c]
add r1, r5, #0x20
sub r0, r0, r2
@@ -43999,15 +44005,15 @@ _021FEEC0:
ldr r0, [r6, #8]
ldr r2, [r6]
mov r1, r6
- bl FUN_021FCC88
+ bl MOD04_021FCC88
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021FEF10
-FUN_021FEF10: ; 0x021FEF10
+ arm_func_start MOD04_021FEF10
+MOD04_021FEF10: ; 0x021FEF10
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x24
mov r5, r0
@@ -44015,7 +44021,7 @@ FUN_021FEF10: ; 0x021FEF10
mov r4, r1
cmp r3, #0
beq _021FEF44
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x24
@@ -44024,7 +44030,7 @@ FUN_021FEF10: ; 0x021FEF10
_021FEF44:
cmp r2, #0x40
bge _021FEF64
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x24
@@ -44033,11 +44039,11 @@ _021FEF44:
_021FEF64:
mov r0, r4
add r1, r5, #0x68
- bl FUN_021FBF08
+ bl MOD04_021FBF08
cmp r0, #0
bne _021FEF94
mov r0, r5
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x24
@@ -44046,12 +44052,12 @@ _021FEF64:
_021FEF94:
add r0, sp, #0
add r1, r4, #0x20
- bl FUN_021FBF44
+ bl MOD04_021FBF44
ldr r2, [r5, #0x38]
ldr r3, [r5, #0x3c]
add r1, sp, #0
mov r0, r5
- bl FUN_021FDBA0
+ bl MOD04_021FDBA0
cmp r0, #0
addeq sp, sp, #0x24
moveq r0, #0
@@ -44059,7 +44065,7 @@ _021FEF94:
ldr r0, [r5, #0x38]
cmp r0, #0
beq _021FEFDC
- bl FUN_021DD82C
+ bl MOD04_021DD82C
mov r0, #0
str r0, [r5, #0x38]
_021FEFDC:
@@ -44068,15 +44074,15 @@ _021FEFDC:
add sp, sp, #0x24
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FEFEC
-FUN_021FEFEC: ; 0x021FEFEC
+ arm_func_start MOD04_021FEFEC
+MOD04_021FEFEC: ; 0x021FEFEC
stmdb sp!, {r4, lr}
sub sp, sp, #0x40
mov r4, r0
ldr r3, [r4, #0xc]
cmp r3, #2
beq _021FF01C
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x40
@@ -44085,7 +44091,7 @@ FUN_021FEFEC: ; 0x021FEFEC
_021FF01C:
cmp r2, #0x20
bge _021FF03C
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
movne r0, #1
add sp, sp, #0x40
@@ -44093,16 +44099,16 @@ _021FF01C:
ldmia sp!, {r4, pc}
_021FF03C:
add r0, sp, #0
- bl FUN_021FBF44
+ bl MOD04_021FBF44
add r0, sp, #0x20
- bl FUN_021FC07C
+ bl MOD04_021FC07C
add r1, sp, #0x20
add r0, r4, #0x68
- bl FUN_021FBF44
+ bl MOD04_021FBF44
add r1, sp, #0
add r2, sp, #0x20
mov r0, r4
- bl FUN_021FDC28
+ bl MOD04_021FDC28
cmp r0, #0
moveq r0, #0
movne r0, #3
@@ -44111,8 +44117,8 @@ _021FF03C:
add sp, sp, #0x40
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FF084
-FUN_021FF084: ; 0x021FF084
+ arm_func_start MOD04_021FF084
+MOD04_021FF084: ; 0x021FF084
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
@@ -44123,7 +44129,7 @@ FUN_021FF084: ; 0x021FF084
beq _021FF0C4
cmp r3, #6
beq _021FF0C4
- bl FUN_021FF304
+ bl MOD04_021FF304
cmp r0, #0
bne _021FF128
add sp, sp, #8
@@ -44131,7 +44137,7 @@ FUN_021FF084: ; 0x021FF084
ldmia sp!, {r4, r5, r6, pc}
_021FF0C4:
ldr r0, [r6, #0x9c]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
beq _021FF104
mov ip, #1
@@ -44140,7 +44146,7 @@ _021FF0C4:
mov r3, r4
mov r1, #0
str ip, [sp]
- bl FUN_021FC6C4
+ bl MOD04_021FC6C4
cmp r0, #0
movne r0, #1
add sp, sp, #8
@@ -44151,7 +44157,7 @@ _021FF104:
mov r1, r5
mov r2, r4
mov r3, #1
- bl FUN_021FCA8C
+ bl MOD04_021FCA8C
cmp r0, #0
addeq sp, sp, #8
moveq r0, #0
@@ -44161,8 +44167,8 @@ _021FF128:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021FF134
-FUN_021FF134: ; 0x021FF134
+ arm_func_start MOD04_021FF134
+MOD04_021FF134: ; 0x021FF134
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
@@ -44177,7 +44183,7 @@ FUN_021FF134: ; 0x021FF134
ldmneia sp!, {r4, r5, r6, pc}
_021FF164:
ldr r0, [r6, #0x9c]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
beq _021FF1A0
mov r1, #0
@@ -44185,7 +44191,7 @@ _021FF164:
mov r2, r5
mov r3, r4
str r1, [sp]
- bl FUN_021FC6C4
+ bl MOD04_021FC6C4
cmp r0, #0
movne r0, #1
add sp, sp, #8
@@ -44196,21 +44202,21 @@ _021FF1A0:
mov r1, r5
mov r2, r4
mov r3, #0
- bl FUN_021FCA8C
+ bl MOD04_021FCA8C
cmp r0, #0
movne r0, #1
moveq r0, #0
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021FF1C8
-FUN_021FF1C8: ; 0x021FF1C8
+ arm_func_start MOD04_021FF1C8
+MOD04_021FF1C8: ; 0x021FF1C8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r4, r0
ldr r0, [r4, #0x60]
mov r7, r1
- bl FUN_021EF06C
+ bl MOD04_021EF06C
movs r6, r0
addeq sp, sp, #4
moveq r0, #1
@@ -44221,10 +44227,10 @@ FUN_021FF1C8: ; 0x021FF1C8
_021FF1FC:
ldr r0, [r4, #0x60]
mov r1, r5
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldrh r0, [r0, #8]
mov r1, r7
- bl FUN_021FF3AC
+ bl MOD04_021FF3AC
cmp r0, #0
bge _021FF228
add r5, r5, #1
@@ -44241,13 +44247,13 @@ _021FF228:
_021FF244:
ldr r0, [r4, #0x60]
mov r1, r5
- bl FUN_021EED84
+ bl MOD04_021EED84
cmp r5, #0
sub r5, r5, #1
bne _021FF244
_021FF25C:
ldr r0, [r4, #0x60]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
movs r6, r0
moveq r0, #0
streq r0, [r4, #0x58]
@@ -44256,7 +44262,7 @@ _021FF25C:
ldmeqia sp!, {r4, r5, r6, r7, pc}
ldr r0, [r4, #0x60]
mov r1, #0
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
cmp r6, #0
ldr r7, [r0]
mov r5, #0
@@ -44264,7 +44270,7 @@ _021FF25C:
_021FF298:
ldr r0, [r4, #0x60]
mov r1, r5
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r1, [r0]
add r5, r5, #1
sub r1, r1, r7
@@ -44275,36 +44281,36 @@ _021FF2BC:
mov r2, r7
add r0, r4, #0x50
mov r1, #0
- bl FUN_021FC268
+ bl MOD04_021FC268
mov r0, #1
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021FF2D8
-FUN_021FF2D8: ; 0x021FF2D8
+ arm_func_start MOD04_021FF2D8
+MOD04_021FF2D8: ; 0x021FF2D8
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021FD828
+ bl MOD04_021FD828
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
mov r1, #1
mov r2, #4
- bl FUN_021FF318
+ bl MOD04_021FF318
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FF304
-FUN_021FF304: ; 0x021FF304
- ldr ip, _021FF314 ; =FUN_021FF318
+ arm_func_start MOD04_021FF304
+MOD04_021FF304: ; 0x021FF304
+ ldr ip, _021FF314 ; =MOD04_021FF318
mov r1, #7
mov r2, #2
bx ip
.align 2, 0
-_021FF314: .word FUN_021FF318
+_021FF314: .word MOD04_021FF318
- arm_func_start FUN_021FF318
-FUN_021FF318: ; 0x021FF318
+ arm_func_start MOD04_021FF318
+MOD04_021FF318: ; 0x021FF318
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r3, [r6, #0xc]
@@ -44315,12 +44321,12 @@ FUN_021FF318: ; 0x021FF318
ldr r1, [r6, #0x10]
cmp r1, #0
beq _021FF368
- bl FUN_021FCED0
+ bl MOD04_021FCED0
mov r2, #0
mov r0, r6
mov r1, r5
mov r3, r2
- bl FUN_021FCB88
+ bl MOD04_021FCB88
cmp r0, #0
bne _021FF3A4
mov r0, #0
@@ -44330,15 +44336,15 @@ _021FF368:
moveq r0, #1
streq r0, [r6, #0x14]
mov r0, r6
- bl FUN_021FCED0
+ bl MOD04_021FCED0
b _021FF3A4
_021FF380:
cmp r3, #7
beq _021FF3A4
- bl FUN_021FCED0
+ bl MOD04_021FCED0
mov r0, r6
mov r1, r4
- bl FUN_021FC9B8
+ bl MOD04_021FC9B8
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
@@ -44346,23 +44352,23 @@ _021FF3A4:
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_021FF3AC
-FUN_021FF3AC: ; 0x021FF3AC
+ arm_func_start MOD04_021FF3AC
+MOD04_021FF3AC: ; 0x021FF3AC
sub r0, r0, r1
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
bx lr
- arm_func_start FUN_021FF3BC
-FUN_021FF3BC: ; 0x021FF3BC
+ arm_func_start MOD04_021FF3BC
+MOD04_021FF3BC: ; 0x021FF3BC
mov r3, r2, asr #8
strb r3, [r0, r1]
add r1, r1, #1
strb r2, [r0, r1]
bx lr
- arm_func_start FUN_021FF3D0
-FUN_021FF3D0: ; 0x021FF3D0
+ arm_func_start MOD04_021FF3D0
+MOD04_021FF3D0: ; 0x021FF3D0
ldrb r2, [r0, r1]
add r1, r1, #1
ldrb r1, [r0, r1]
@@ -44372,8 +44378,8 @@ FUN_021FF3D0: ; 0x021FF3D0
orr r0, r1, r0, lsr #16
bx lr
- arm_func_start FUN_021FF3F0
-FUN_021FF3F0: ; 0x021FF3F0
+ arm_func_start MOD04_021FF3F0
+MOD04_021FF3F0: ; 0x021FF3F0
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0x18]
@@ -44381,57 +44387,57 @@ FUN_021FF3F0: ; 0x021FF3F0
ldmneia sp!, {r4, pc}
mov r1, #1
str r1, [r4, #0x18]
- bl FUN_021FD45C
+ bl MOD04_021FD45C
mov r0, r4
- bl FUN_021FCDB4
+ bl MOD04_021FCDB4
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
- bl FUN_021FF9CC
+ bl MOD04_021FF9CC
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FF42C
-FUN_021FF42C: ; 0x021FF42C
+ arm_func_start MOD04_021FF42C
+MOD04_021FF42C: ; 0x021FF42C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
ldr r0, [r5, #0x10]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
subs r4, r0, #1
addmi sp, sp, #4
ldmmiia sp!, {r4, r5, pc}
_021FF44C:
ldr r0, [r5, #0x10]
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r0, [r0]
- bl FUN_021FF6BC
+ bl MOD04_021FF6BC
subs r4, r4, #1
bpl _021FF44C
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_021FF470
-FUN_021FF470: ; 0x021FF470
+ arm_func_start MOD04_021FF470
+MOD04_021FF470: ; 0x021FF470
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r0
- bl FUN_021F025C
+ bl MOD04_021F025C
str r0, [sp]
ldr r0, [r4, #0xc]
- ldr r1, _021FF4A8 ; =FUN_021FF4AC
+ ldr r1, _021FF4A8 ; =MOD04_021FF4AC
add r2, sp, #0
- bl FUN_021EF264
+ bl MOD04_021EF264
cmp r0, #0
moveq r0, #1
movne r0, #0
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
-_021FF4A8: .word FUN_021FF4AC
+_021FF4A8: .word MOD04_021FF4AC
- arm_func_start FUN_021FF4AC
-FUN_021FF4AC: ; 0x021FF4AC
+ arm_func_start MOD04_021FF4AC
+MOD04_021FF4AC: ; 0x021FF4AC
stmdb sp!, {r4, lr}
ldr r4, [r0]
ldr r1, [r1]
@@ -44439,7 +44445,7 @@ FUN_021FF4AC: ; 0x021FF4AC
cmp r0, #7
beq _021FF4D8
mov r0, r4
- bl FUN_021FCF88
+ bl MOD04_021FCF88
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
@@ -44454,13 +44460,13 @@ _021FF4D8:
cmp r0, #0
bne _021FF504
mov r0, r4
- bl FUN_021FF6BC
+ bl MOD04_021FF6BC
_021FF504:
mov r0, #1
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FF50C
-FUN_021FF50C: ; 0x021FF50C
+ arm_func_start MOD04_021FF50C
+MOD04_021FF50C: ; 0x021FF50C
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x18
@@ -44469,9 +44475,9 @@ FUN_021FF50C: ; 0x021FF50C
add r0, sp, #0x34
add r1, sp, #0x38
mov r4, r2
- bl FUN_021FFCDC
+ bl MOD04_021FFCDC
ldr r0, [r6]
- bl FUN_021EFEFC
+ bl MOD04_021EFEFC
cmp r0, #0
addeq sp, sp, #0x18
moveq r0, #1
@@ -44497,19 +44503,19 @@ FUN_021FF50C: ; 0x021FF50C
ldr r0, [r6]
ldr r1, [sp, #0x34]
ldr r2, [sp, #0x38]
- bl FUN_021EFBD4
+ bl MOD04_021EFBD4
mvn r1, #0
cmp r0, r1
bne _021FF640
ldr r0, [r6]
- bl FUN_021EFB28
+ bl MOD04_021EFB28
mvn r1, #0xe
cmp r0, r1
bne _021FF5EC
mov r0, r6
mov r1, r5
mov r2, r4
- bl FUN_021FE0B4
+ bl MOD04_021FE0B4
cmp r0, #0
bne _021FF6A8
add sp, sp, #0x18
@@ -44535,7 +44541,7 @@ _021FF618:
cmp r0, r1
beq _021FF6A8
mov r0, r6
- bl FUN_021FF3F0
+ bl MOD04_021FF3F0
add sp, sp, #0x18
mov r0, #0
ldmia sp!, {r4, r5, r6, lr}
@@ -44548,7 +44554,7 @@ _021FF640:
mov r0, r6
mov r1, r5
mov r2, r4
- bl FUN_021FFC3C
+ bl MOD04_021FFC3C
mov r1, #0
str r1, [sp]
ldr r2, [sp, #0x34]
@@ -44561,7 +44567,7 @@ _021FF640:
str ip, [sp, #8]
mov r4, #1
str r4, [sp, #0xc]
- bl FUN_021FC59C
+ bl MOD04_021FC59C
cmp r0, #0
addeq sp, sp, #0x18
moveq r0, #0
@@ -44575,8 +44581,8 @@ _021FF6A8:
add sp, sp, #0x10
bx lr
- arm_func_start FUN_021FF6BC
-FUN_021FF6BC: ; 0x021FF6BC
+ arm_func_start MOD04_021FF6BC
+MOD04_021FF6BC: ; 0x021FF6BC
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, r5, r6, lr}
ldr r1, [sp, #0x10]
@@ -44595,7 +44601,7 @@ FUN_021FF6BC: ; 0x021FF6BC
bne _021FF774
ldr r0, [r1, #8]
ldr r0, [r0, #0x10]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r6, r0
mov r5, #0
cmp r6, #0
@@ -44607,14 +44613,14 @@ _021FF720:
mov r1, r5
ldr r0, [r4, #8]
ldr r0, [r0, #0x10]
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r0, [r0]
cmp r4, r0
bne _021FF75C
ldr r0, [r4, #8]
mov r1, r5
ldr r0, [r0, #0x10]
- bl FUN_021EED84
+ bl MOD04_021EED84
ldmia sp!, {r4, r5, r6, lr}
add sp, sp, #0x10
bx lr
@@ -44629,13 +44635,13 @@ _021FF774:
ldr r0, [r1, #8]
add r1, sp, #0x10
ldr r0, [r0, #0xc]
- bl FUN_021EF3F4
+ bl MOD04_021EF3F4
ldmia sp!, {r4, r5, r6, lr}
add sp, sp, #0x10
bx lr
- arm_func_start FUN_021FF790
-FUN_021FF790: ; 0x021FF790
+ arm_func_start MOD04_021FF790
+MOD04_021FF790: ; 0x021FF790
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r4, r3
@@ -44646,12 +44652,12 @@ FUN_021FF790: ; 0x021FF790
mov r2, r4
mov r7, r0
str r3, [sp]
- bl FUN_021FFC3C
+ bl MOD04_021FFC3C
cmp r0, #0
addne sp, sp, #4
movne r0, #5
ldmneia sp!, {r4, r5, r6, r7, pc}
- bl FUN_021FF9B4
+ bl MOD04_021FF9B4
str r0, [sp]
cmp r0, #0
beq _021FF930
@@ -44664,7 +44670,7 @@ FUN_021FF790: ; 0x021FF790
strh r4, [r0, #4]
ldr r0, [sp]
str r7, [r0, #8]
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r2, [sp]
mov r1, #0
str r0, [r2, #0x1c]
@@ -44678,19 +44684,19 @@ FUN_021FF790: ; 0x021FF790
ldr r0, [sp]
ldr r1, [r7, #0x3c]
add r0, r0, #0x44
- bl FUN_021FC46C
+ bl MOD04_021FC46C
cmp r0, #0
beq _021FF930
ldr r0, [sp]
ldr r1, [r7, #0x38]
add r0, r0, #0x50
- bl FUN_021FC46C
+ bl MOD04_021FC46C
cmp r0, #0
beq _021FF930
mov r0, #0x10
mov r1, #0x40
mov r2, #0
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
ldr r1, [sp]
str r0, [r1, #0x5c]
ldr r0, [sp]
@@ -44700,7 +44706,7 @@ FUN_021FF790: ; 0x021FF790
mov r0, #0x10
mov r1, #0x40
mov r2, #0
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
ldr r1, [sp]
str r0, [r1, #0x60]
ldr r0, [sp]
@@ -44710,7 +44716,7 @@ FUN_021FF790: ; 0x021FF790
mov r0, #4
mov r1, #2
mov r2, #0
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
ldr r1, [sp]
str r0, [r1, #0x98]
ldr r0, [sp]
@@ -44720,7 +44726,7 @@ FUN_021FF790: ; 0x021FF790
mov r0, #4
mov r1, #2
mov r2, #0
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
ldr r1, [sp]
str r0, [r1, #0x9c]
ldr r0, [sp]
@@ -44729,11 +44735,11 @@ FUN_021FF790: ; 0x021FF790
beq _021FF930
ldr r0, [r7, #0xc]
add r1, sp, #0
- bl FUN_021EF494
+ bl MOD04_021EF494
mov r0, r7
mov r1, r5
mov r2, r4
- bl FUN_021FFC3C
+ bl MOD04_021FFC3C
str r0, [r6]
ldr r0, [r6]
cmp r0, #0
@@ -44745,56 +44751,56 @@ _021FF930:
cmp r0, #0
beq _021FF9A8
ldr r0, [r0, #0x44]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [sp]
ldr r0, [r0, #0x50]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldr r0, [sp]
ldr r0, [r0, #0x5c]
cmp r0, #0
beq _021FF964
- bl FUN_021EF074
+ bl MOD04_021EF074
_021FF964:
ldr r0, [sp]
ldr r0, [r0, #0x60]
cmp r0, #0
beq _021FF978
- bl FUN_021EF074
+ bl MOD04_021EF074
_021FF978:
ldr r0, [sp]
ldr r0, [r0, #0x98]
cmp r0, #0
beq _021FF98C
- bl FUN_021EF074
+ bl MOD04_021EF074
_021FF98C:
ldr r0, [sp]
ldr r0, [r0, #0x9c]
cmp r0, #0
beq _021FF9A0
- bl FUN_021EF074
+ bl MOD04_021EF074
_021FF9A0:
ldr r0, [sp]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
_021FF9A8:
mov r0, #1
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_021FF9B4
-FUN_021FF9B4: ; 0x021FF9B4
- ldr ip, _021FF9C0 ; =FUN_021DD860
+ arm_func_start MOD04_021FF9B4
+MOD04_021FF9B4: ; 0x021FF9B4
+ ldr ip, _021FF9C0 ; =MOD04_021DD860
mov r0, #0xa0
bx ip
.align 2, 0
-_021FF9C0: .word FUN_021DD860
+_021FF9C0: .word MOD04_021DD860
- arm_func_start FUN_021FF9C4
-FUN_021FF9C4: ; 0x021FF9C4
+ arm_func_start MOD04_021FF9C4
+MOD04_021FF9C4: ; 0x021FF9C4
str r1, [r0, #0x20]
bx lr
- arm_func_start FUN_021FF9CC
-FUN_021FF9CC: ; 0x021FF9CC
+ arm_func_start MOD04_021FF9CC
+MOD04_021FF9CC: ; 0x021FF9CC
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x1c]
@@ -44803,25 +44809,25 @@ FUN_021FF9CC: ; 0x021FF9CC
strne r0, [r4, #0x14]
ldmneia sp!, {r4, pc}
ldr r0, [r4]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
ldr r0, [r4, #0xc]
- bl FUN_021EF5B0
+ bl MOD04_021EF5B0
ldr r0, [r4, #0x10]
- bl FUN_021EF074
+ bl MOD04_021EF074
mov r0, r4
- bl FUN_021DD82C
- bl FUN_021F0248
+ bl MOD04_021DD82C
+ bl MOD04_021F0248
ldmia sp!, {r4, pc}
- arm_func_start FUN_021FFA10
-FUN_021FFA10: ; 0x021FFA10
+ arm_func_start MOD04_021FFA10
+MOD04_021FFA10: ; 0x021FFA10
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x1c
mov r4, r1
mov r6, r3
mov r5, r0
mov r7, r2
- bl FUN_021F024C
+ bl MOD04_021F024C
cmp r6, #0
moveq r6, #0x10000
cmp r7, #0
@@ -44829,13 +44835,13 @@ FUN_021FFA10: ; 0x021FFA10
add r2, sp, #8
mov r0, r4
moveq r7, #0x10000
- bl FUN_021FFD28
+ bl MOD04_021FFD28
cmp r0, #0
addeq sp, sp, #0x1c
moveq r0, #4
ldmeqia sp!, {r4, r5, r6, r7, pc}
mov r0, #0x44
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
addeq sp, sp, #0x1c
moveq r0, #1
@@ -44848,22 +44854,22 @@ FUN_021FFA10: ; 0x021FFA10
str r6, [r4, #0x3c]
ldr r1, [sp, #0x30]
str r7, [r4, #0x38]
- ldr r0, _021FFC30 ; =FUN_021FFC84
+ ldr r0, _021FFC30 ; =MOD04_021FFC84
str r1, [r4, #0x24]
str r0, [sp]
mov r0, #0
- ldr r3, _021FFC34 ; =FUN_021FFCB4
+ ldr r3, _021FFC34 ; =MOD04_021FFCB4
str r0, [sp, #4]
mov r0, #4
mov r1, #0x20
mov r2, #2
- bl FUN_021EF62C
+ bl MOD04_021EF62C
str r0, [r4, #0xc]
ldr r0, [r4, #0xc]
cmp r0, #0
bne _021FFAE0
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
add sp, sp, #0x1c
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -44871,15 +44877,15 @@ _021FFAE0:
mov r0, #4
ldr r2, _021FFC38 ; =0x021FFC74
mov r1, r0
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
str r0, [r4, #0x10]
ldr r0, [r4, #0x10]
cmp r0, #0
bne _021FFB1C
ldr r0, [r4, #0xc]
- bl FUN_021EF5B0
+ bl MOD04_021EF5B0
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
add sp, sp, #0x1c
mov r0, #1
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -44887,18 +44893,18 @@ _021FFB1C:
mov r0, #2
mov r1, r0
mov r2, #0
- bl FUN_021EFDB8
+ bl MOD04_021EFDB8
str r0, [r4]
ldr r1, [r4]
mvn r0, #0
cmp r1, r0
bne _021FFB64
ldr r0, [r4, #0xc]
- bl FUN_021EF5B0
+ bl MOD04_021EF5B0
ldr r0, [r4, #0x10]
- bl FUN_021EF074
+ bl MOD04_021EF074
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
add sp, sp, #0x1c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -44920,18 +44926,18 @@ _021FFB64:
strh r0, [sp, #0xe]
ldr r0, [r4]
mov r2, #8
- bl FUN_021EFD28
+ bl MOD04_021EFD28
mvn r1, #0
cmp r0, r1
bne _021FFBE4
ldr r0, [r4]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
ldr r0, [r4, #0xc]
- bl FUN_021EF5B0
+ bl MOD04_021EF5B0
ldr r0, [r4, #0x10]
- bl FUN_021EF074
+ bl MOD04_021EF074
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
add sp, sp, #0x1c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -44941,7 +44947,7 @@ _021FFBE4:
ldr r0, [r4]
add r1, sp, #0xc
add r2, sp, #0x18
- bl FUN_021EFB5C
+ bl MOD04_021EFB5C
ldr r1, [sp, #0x10]
mov r0, #0
str r1, [r4, #4]
@@ -44956,12 +44962,12 @@ _021FFBE4:
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
-_021FFC30: .word FUN_021FFC84
-_021FFC34: .word FUN_021FFCB4
+_021FFC30: .word MOD04_021FFC84
+_021FFC34: .word MOD04_021FFCB4
_021FFC38: .word 0x021FFC74
- arm_func_start FUN_021FFC3C
-FUN_021FFC3C: ; 0x021FFC3C
+ arm_func_start MOD04_021FFC3C
+MOD04_021FFC3C: ; 0x021FFC3C
stmdb sp!, {lr}
sub sp, sp, #0xa4
add r3, sp, #4
@@ -44970,20 +44976,20 @@ FUN_021FFC3C: ; 0x021FFC3C
str r3, [sp]
ldr r0, [r0, #0xc]
add r1, sp, #0
- bl FUN_021EF358
+ bl MOD04_021EF358
cmp r0, #0
ldrne r0, [r0]
moveq r0, #0
add sp, sp, #0xa4
ldmfd sp!, {pc}
- ldr ip, _021FFC80 ; =FUN_021FCE4C
+ ldr ip, _021FFC80 ; =MOD04_021FCE4C
ldr r0, [r0]
bx ip
.align 2, 0
-_021FFC80: .word FUN_021FCE4C
+_021FFC80: .word MOD04_021FCE4C
- arm_func_start FUN_021FFC84
-FUN_021FFC84: ; 0x021FFC84
+ arm_func_start MOD04_021FFC84
+MOD04_021FFC84: ; 0x021FFC84
ldr r3, [r0]
ldr r2, [r1]
ldr r0, [r3]
@@ -44997,8 +45003,8 @@ FUN_021FFC84: ; 0x021FFC84
moveq r0, r0, asr #0x10
bx lr
- arm_func_start FUN_021FFCB4
-FUN_021FFCB4: ; 0x021FFCB4
+ arm_func_start MOD04_021FFCB4
+MOD04_021FFCB4: ; 0x021FFCB4
stmdb sp!, {lr}
sub sp, sp, #4
ldr r2, [r0]
@@ -45010,8 +45016,8 @@ FUN_021FFCB4: ; 0x021FFCB4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_021FFCDC
-FUN_021FFCDC: ; 0x021FFCDC
+ arm_func_start MOD04_021FFCDC
+MOD04_021FFCDC: ; 0x021FFCDC
stmdb sp!, {r4, lr}
ldr r2, [r0]
mov r4, r1
@@ -45033,8 +45039,8 @@ FUN_021FFCDC: ; 0x021FFCDC
.align 2, 0
_021FFD24: .word 0x0220EFD4
- arm_func_start FUN_021FFD28
-FUN_021FFD28: ; 0x021FFD28
+ arm_func_start MOD04_021FFD28
+MOD04_021FFD28: ; 0x021FFD28
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x104
movs r8, r0
@@ -45120,7 +45126,7 @@ _021FFE40:
cmp r8, #0
beq _021FFE84
mov r0, r8
- bl FUN_021EFB38
+ bl MOD04_021EFB38
mov r5, r0
mvn r0, #0
cmp r5, r0
@@ -45148,8 +45154,8 @@ _021FFEA4: .word 0x0220EFF8
_021FFEA8: .word 0x0210430C
_021FFEAC: .word 0x0000FFFF
- arm_func_start FUN_021FFEB0
-FUN_021FFEB0: ; 0x021FFEB0
+ arm_func_start MOD04_021FFEB0
+MOD04_021FFEB0: ; 0x021FFEB0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
movs r5, r2
@@ -45206,14 +45212,14 @@ _021FFF6C: .word 0x0220F008
_021FFF70: .word 0x0220F010
_021FFF74: .word 0x0220F014
- arm_func_start FUN_021FFF78
-FUN_021FFF78: ; 0x021FFF78
+ arm_func_start MOD04_021FFF78
+MOD04_021FFF78: ; 0x021FFF78
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x2c
mov r6, r0
mov r7, r1
mov r5, r2
- bl FUN_02200D40
+ bl MOD04_02200D40
cmp r0, #0
addeq sp, sp, #0x2c
ldmeqia sp!, {r4, r5, r6, r7, pc}
@@ -45247,7 +45253,7 @@ _021FFFC4:
and r1, r3, #0xff000000
orr r0, r2, r0
orr r0, r1, r0
- bl FUN_02200ED4
+ bl MOD04_02200ED4
cmp r0, #0
addeq sp, sp, #0x2c
ldmeqia sp!, {r4, r5, r6, r7, pc}
@@ -45255,13 +45261,13 @@ _021FFFC4:
bne _02200038
add r1, sp, #0
mov r2, r5
- bl FUN_022002CC
+ bl MOD04_022002CC
add sp, sp, #0x2c
ldmia sp!, {r4, r5, r6, r7, pc}
_02200038:
add r1, sp, #0
mov r2, r5
- bl FUN_022001E4
+ bl MOD04_022001E4
add sp, sp, #0x2c
ldmia sp!, {r4, r5, r6, r7, pc}
_0220004C:
@@ -45291,18 +45297,18 @@ _02200060:
and r1, r3, #0xff000000
orr r0, r2, r0
orr r0, r1, r0
- bl FUN_02200ED4
+ bl MOD04_02200ED4
cmp r0, #0
addeq sp, sp, #0x2c
ldmeqia sp!, {r4, r5, r6, r7, pc}
add r1, sp, #0x14
mov r2, r5
- bl FUN_022000D4
+ bl MOD04_022000D4
add sp, sp, #0x2c
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_022000D4
-FUN_022000D4: ; 0x022000D4
+ arm_func_start MOD04_022000D4
+MOD04_022000D4: ; 0x022000D4
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r3, r1
@@ -45345,7 +45351,7 @@ _02200100:
_0220016C:
mov r0, #1
str r0, [r4, #0x10]
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r1, _022001E0 ; =0x00002710
add r0, r0, r1
str r0, [r4, #0x28]
@@ -45370,14 +45376,14 @@ _0220019C:
ldr r1, [r2, #4]
ldr r0, [r4]
mov r2, ip, lsr #0x10
- bl FUN_02200CEC
+ bl MOD04_02200CEC
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
_022001E0: .word 0x00002710
- arm_func_start FUN_022001E4
-FUN_022001E4: ; 0x022001E4
+ arm_func_start MOD04_022001E4
+MOD04_022001E4: ; 0x022001E4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -45400,7 +45406,7 @@ FUN_022001E4: ; 0x022001E4
ldrb r2, [r1, #0x12]
cmp r2, #0
bne _02200248
- bl FUN_022008D8
+ bl MOD04_022008D8
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_02200248:
@@ -45410,11 +45416,11 @@ _02200248:
ldrb r1, [r5, #0x33]
cmp r1, #0
bne _02200264
- bl FUN_022008D8
+ bl MOD04_022008D8
_02200264:
mov r0, #3
str r0, [r5, #0x10]
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r1, _022002C8 ; =0x00001388
mvn r2, #0
add r0, r0, r1
@@ -45435,14 +45441,14 @@ _022002AC:
cmp r1, #0
addne sp, sp, #4
ldmneia sp!, {r4, r5, pc}
- bl FUN_022008D8
+ bl MOD04_022008D8
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
_022002C8: .word 0x00001388
- arm_func_start FUN_022002CC
-FUN_022002CC: ; 0x022002CC
+ arm_func_start MOD04_022002CC
+MOD04_022002CC: ; 0x022002CC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r1
@@ -45451,7 +45457,7 @@ FUN_022002CC: ; 0x022002CC
cmp r1, #0
bne _022002F0
mov r1, r2
- bl FUN_0220039C
+ bl MOD04_0220039C
_022002F0:
ldr r0, [r4, #0x10]
cmp r0, #2
@@ -45473,7 +45479,7 @@ _02200324:
mov r2, #0
blx ip
ldr r0, [r4, #8]
- bl FUN_022006B4
+ bl MOD04_022006B4
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
_02200348:
@@ -45495,12 +45501,12 @@ _02200348:
ldr r2, [r4, #0x34]
blx r2
mov r0, r4
- bl FUN_022008D8
+ bl MOD04_022008D8
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_0220039C
-FUN_0220039C: ; 0x0220039C
+ arm_func_start MOD04_0220039C
+MOD04_0220039C: ; 0x0220039C
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x20
ldr r6, _02200464 ; =0x0220F018
@@ -45548,14 +45554,14 @@ FUN_0220039C: ; 0x0220039C
ldr r0, [r0]
ldr r1, [r1, #4]
mov r2, r2, lsr #0x10
- bl FUN_02200CEC
+ bl MOD04_02200CEC
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_02200464: .word 0x0220F018
- arm_func_start FUN_02200468
-FUN_02200468: ; 0x02200468
+ arm_func_start MOD04_02200468
+MOD04_02200468: ; 0x02200468
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r0, _022004B8 ; =0x022113D4
@@ -45563,7 +45569,7 @@ FUN_02200468: ; 0x02200468
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {r4, r5, pc}
- bl FUN_021EF06C
+ bl MOD04_021EF06C
subs r5, r0, #1
addmi sp, sp, #4
ldmmiia sp!, {r4, r5, pc}
@@ -45571,8 +45577,8 @@ FUN_02200468: ; 0x02200468
_02200498:
ldr r0, [r4]
mov r1, r5
- bl FUN_021EEFFC
- bl FUN_022004BC
+ bl MOD04_021EEFFC
+ bl MOD04_022004BC
subs r5, r5, #1
bpl _02200498
add sp, sp, #4
@@ -45580,8 +45586,8 @@ _02200498:
.align 2, 0
_022004B8: .word 0x022113D4
- arm_func_start FUN_022004BC
-FUN_022004BC: ; 0x022004BC
+ arm_func_start MOD04_022004BC
+MOD04_022004BC: ; 0x022004BC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x20
mov r1, #8
@@ -45590,7 +45596,7 @@ FUN_022004BC: ; 0x022004BC
ldr r1, [sb, #0x10]
cmp r1, #4
bne _022004E8
- bl FUN_02200DA4
+ bl MOD04_02200DA4
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
_022004E8:
@@ -45604,7 +45610,7 @@ _022004E8:
mov r5, #0x200
mov r4, #0
_0220050C:
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
beq _02200564
str r8, [sp]
@@ -45613,13 +45619,13 @@ _0220050C:
mov r1, r6
mov r2, r5
mov r3, r4
- bl FUN_021EFC40
+ bl MOD04_021EFC40
mov r1, r0
cmp r1, sl
beq _02200564
mov r0, r6
mov r2, r8
- bl FUN_021FFF78
+ bl MOD04_021FFF78
ldr r0, [sb, #0x10]
cmp r0, #4
beq _02200564
@@ -45633,7 +45639,7 @@ _02200564:
cmp r0, #2
bne _022005E4
_02200578:
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r1, [sb, #0x28]
cmp r0, r1
bls _022005E4
@@ -45648,7 +45654,7 @@ _02200578:
mov r2, #0
blx r4
ldr r0, [sb, #8]
- bl FUN_022006B4
+ bl MOD04_022006B4
b _022005E4
_022005BC:
add r0, r1, #1
@@ -45657,16 +45663,16 @@ _022005BC:
cmp r0, #0
bne _022005DC
mov r0, sb
- bl FUN_022009F8
+ bl MOD04_022009F8
b _022005E4
_022005DC:
mov r0, sb
- bl FUN_022008D8
+ bl MOD04_022008D8
_022005E4:
ldr r0, [sb, #0x10]
cmp r0, #3
bne _02200664
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r1, [sb, #0x28]
cmp r0, r1
bls _02200664
@@ -45695,13 +45701,13 @@ _022005E4:
str r0, [sb]
_0220065C:
ldr r0, [sb, #8]
- bl FUN_022006B4
+ bl MOD04_022006B4
_02200664:
ldr r0, [sb, #0x10]
cmp r0, #1
addne sp, sp, #0x20
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r1, [sb, #0x28]
cmp r0, r1
addls sp, sp, #0x20
@@ -45713,23 +45719,23 @@ _02200664:
mov r2, #0
blx r4
ldr r0, [sb, #8]
- bl FUN_022006B4
+ bl MOD04_022006B4
add sp, sp, #0x20
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_022006B0: .word 0x022113D8
- arm_func_start FUN_022006B4
-FUN_022006B4: ; 0x022006B4
+ arm_func_start MOD04_022006B4
+MOD04_022006B4: ; 0x022006B4
stmdb sp!, {r4, lr}
- bl FUN_02200ED4
+ bl MOD04_02200ED4
movs r4, r0
ldmeqia sp!, {r4, pc}
ldr r0, [r4]
mvn r1, #0
cmp r0, r1
beq _022006D8
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
_022006D8:
mvn r0, #0
str r0, [r4]
@@ -45737,8 +45743,8 @@ _022006D8:
str r0, [r4, #0x10]
ldmia sp!, {r4, pc}
- arm_func_start FUN_022006EC
-FUN_022006EC: ; 0x022006EC
+ arm_func_start MOD04_022006EC
+MOD04_022006EC: ; 0x022006EC
stmdb sp!, {r4, r5, r6, r7, r8, lr}
ldr ip, _022007B4 ; =0x02210E5C
mov r8, r0
@@ -45749,11 +45755,11 @@ FUN_022006EC: ; 0x022006EC
mov r5, r3
movne r0, #2
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
- bl FUN_022007B8
+ bl MOD04_022007B8
cmp r0, #0
moveq r0, #3
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
- bl FUN_02200E0C
+ bl MOD04_02200E0C
movs r4, r0
moveq r0, #1
ldmeqia sp!, {r4, r5, r6, r7, r8, pc}
@@ -45768,7 +45774,7 @@ FUN_022006EC: ; 0x022006EC
mov r1, r0
str r2, [r4, #0x3c]
mov r2, #0
- bl FUN_021EFDB8
+ bl MOD04_021EFDB8
str r0, [r4]
mov r0, #0
str r0, [r4, #0x20]
@@ -45782,19 +45788,19 @@ FUN_022006EC: ; 0x022006EC
cmp r1, r0
bne _022007A4
mov r0, r4
- bl FUN_02200DA4
+ bl MOD04_02200DA4
mov r0, #2
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_022007A4:
mov r0, r4
- bl FUN_022009F8
+ bl MOD04_022009F8
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_022007B4: .word 0x02210E5C
- arm_func_start FUN_022007B8
-FUN_022007B8: ; 0x022007B8
+ arm_func_start MOD04_022007B8
+MOD04_022007B8: ; 0x022007B8
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _02200848 ; =0x022113D0
@@ -45804,7 +45810,7 @@ FUN_022007B8: ; 0x022007B8
ldr r0, _0220084C ; =0x022113C8
ldr r1, _02200850 ; =0x0220F020
ldr r0, [r0]
- bl FUN_02200860
+ bl MOD04_02200860
ldr r1, _02200848 ; =0x022113D0
str r0, [r1]
_022007E8:
@@ -45815,7 +45821,7 @@ _022007E8:
ldr r0, _02200858 ; =0x022113C4
ldr r1, _0220085C ; =0x0220F03C
ldr r0, [r0]
- bl FUN_02200860
+ bl MOD04_02200860
ldr r1, _02200854 ; =0x022113CC
str r0, [r1]
_02200810:
@@ -45843,8 +45849,8 @@ _02200854: .word 0x022113CC
_02200858: .word 0x022113C4
_0220085C: .word 0x0220F03C
- arm_func_start FUN_02200860
-FUN_02200860: ; 0x02200860
+ arm_func_start MOD04_02200860
+MOD04_02200860: ; 0x02200860
stmdb sp!, {lr}
sub sp, sp, #0x84
cmp r0, #0
@@ -45857,18 +45863,18 @@ FUN_02200860: ; 0x02200860
bl snprintf
add r0, sp, #4
_0220088C:
- bl FUN_022008A0
+ bl MOD04_022008A0
add sp, sp, #0x84
ldmfd sp!, {pc}
.align 2, 0
_02200898: .word 0x0220F058
_0220089C: .word 0x02210EA0
- arm_func_start FUN_022008A0
-FUN_022008A0: ; 0x022008A0
+ arm_func_start MOD04_022008A0
+MOD04_022008A0: ; 0x022008A0
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_021EFB38
+ bl MOD04_021EFB38
mvn r1, #0
cmp r0, r1
ldmneia sp!, {r4, pc}
@@ -45881,8 +45887,8 @@ FUN_022008A0: ; 0x022008A0
ldrne r0, [r0]
ldmia sp!, {r4, pc}
- arm_func_start FUN_022008D8
-FUN_022008D8: ; 0x022008D8
+ arm_func_start MOD04_022008D8
+MOD04_022008D8: ; 0x022008D8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x1c
ldr lr, _022009F4 ; =0x0220F018
@@ -45942,8 +45948,8 @@ FUN_022008D8: ; 0x022008D8
str r1, [sp]
ldrh r2, [r4, #0x30]
ldr r1, [r4, #0x2c]
- bl FUN_02200CEC
- bl FUN_021F025C
+ bl MOD04_02200CEC
+ bl MOD04_021F025C
add r0, r0, #0x2bc
str r0, [r4, #0x28]
mov r0, #0xc
@@ -45957,8 +45963,8 @@ FUN_022008D8: ; 0x022008D8
.align 2, 0
_022009F4: .word 0x0220F018
- arm_func_start FUN_022009F8
-FUN_022009F8: ; 0x022009F8
+ arm_func_start MOD04_022009F8
+MOD04_022009F8: ; 0x022009F8
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x60
ldr r7, _02200C30 ; =0x0220F018
@@ -46000,13 +46006,13 @@ FUN_022009F8: ; 0x022009F8
cmp r2, r0
movne r1, #1
strb r1, [r5, #0xe]
- bl FUN_02200C78
+ bl MOD04_02200C78
mov r7, r0
- bl FUN_02200C78
+ bl MOD04_02200C78
mov r8, r0
- bl FUN_02200C78
+ bl MOD04_02200C78
mov r4, r0
- bl FUN_02200C78
+ bl MOD04_02200C78
mov r2, #0
mov r1, r7, lsl #0x18
and r7, r1, #0xff000000
@@ -46048,7 +46054,7 @@ FUN_022009F8: ; 0x022009F8
ldr r1, [r1]
ldr r2, _02200C3C ; =0x00006CFD
mov r3, r5
- bl FUN_02200CEC
+ bl MOD04_02200CEC
_02200B60:
ldr r0, [r6, #0x18]
cmp r0, #0
@@ -46061,7 +46067,7 @@ _02200B60:
ldr r1, [r1]
ldr r2, _02200C3C ; =0x00006CFD
mov r3, r5
- bl FUN_02200CEC
+ bl MOD04_02200CEC
_02200B90:
ldrb r0, [r5, #0xe]
cmp r0, #0
@@ -46070,10 +46076,10 @@ _02200B90:
cmp r0, #0
ldrne r0, [r6, #4]
ldreq r0, [r6]
- bl FUN_02200C44
+ bl MOD04_02200C44
mov r7, r0
mov r0, r8
- bl FUN_02200C44
+ bl MOD04_02200C44
mov r1, r7, asr #8
mov r0, r0, lsl #8
and r1, r1, #0xff
@@ -46095,9 +46101,9 @@ _02200B90:
ldr r1, [r1]
ldr r2, _02200C3C ; =0x00006CFD
mov r3, r5
- bl FUN_02200CEC
+ bl MOD04_02200CEC
_02200C14:
- bl FUN_021F025C
+ bl MOD04_021F025C
add r0, r0, #0x1f4
str r0, [r6, #0x28]
mov r0, #0x1e
@@ -46111,15 +46117,15 @@ _02200C38: .word 0x022113D0
_02200C3C: .word 0x00006CFD
_02200C40: .word 0x022113CC
- arm_func_start FUN_02200C44
-FUN_02200C44: ; 0x02200C44
+ arm_func_start MOD04_02200C44
+MOD04_02200C44: ; 0x02200C44
stmdb sp!, {lr}
sub sp, sp, #0xc
mov r3, #8
add r1, sp, #0
add r2, sp, #8
str r3, [sp, #8]
- bl FUN_021EFB5C
+ bl MOD04_021EFB5C
mvn r1, #0
cmp r0, r1
moveq r0, #0
@@ -46127,12 +46133,12 @@ FUN_02200C44: ; 0x02200C44
add sp, sp, #0xc
ldmfd sp!, {pc}
- arm_func_start FUN_02200C78
-FUN_02200C78: ; 0x02200C78
+ arm_func_start MOD04_02200C78
+MOD04_02200C78: ; 0x02200C78
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r5, #0
- bl FUN_021EFE70
+ bl MOD04_021EFE70
movs r6, r0
addeq sp, sp, #4
moveq r0, r5
@@ -46148,7 +46154,7 @@ _02200CA0:
cmp r1, r4
beq _02200CD4
mov r5, r1
- bl FUN_021EFDEC
+ bl MOD04_021EFDEC
cmp r0, #0
addne sp, sp, #4
movne r0, r5
@@ -46163,8 +46169,8 @@ _02200CDC:
.align 2, 0
_02200CE8: .word 0x0100007F
- arm_func_start FUN_02200CEC
-FUN_02200CEC: ; 0x02200CEC
+ arm_func_start MOD04_02200CEC
+MOD04_02200CEC: ; 0x02200CEC
stmdb sp!, {lr}
sub sp, sp, #0x14
mov ip, r2, asr #8
@@ -46183,12 +46189,12 @@ FUN_02200CEC: ; 0x02200CEC
ldr r2, [sp, #0x18]
mov r3, #0
str ip, [sp, #4]
- bl FUN_021EFBD4
+ bl MOD04_021EFBD4
add sp, sp, #0x14
ldmfd sp!, {pc}
- arm_func_start FUN_02200D40
-FUN_02200D40: ; 0x02200D40
+ arm_func_start MOD04_02200D40
+MOD04_02200D40: ; 0x02200D40
stmdb sp!, {lr}
sub sp, sp, #4
ldr r1, _02200D68 ; =0x0220F018
@@ -46202,8 +46208,8 @@ FUN_02200D40: ; 0x02200D40
.align 2, 0
_02200D68: .word 0x0220F018
- arm_func_start FUN_02200D6C
-FUN_02200D6C: ; 0x02200D6C
+ arm_func_start MOD04_02200D6C
+MOD04_02200D6C: ; 0x02200D6C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _02200DA0 ; =0x022113D4
@@ -46211,7 +46217,7 @@ FUN_02200D6C: ; 0x02200D6C
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021EF074
+ bl MOD04_021EF074
ldr r0, _02200DA0 ; =0x022113D4
mov r1, #0
str r1, [r0]
@@ -46220,40 +46226,40 @@ FUN_02200D6C: ; 0x02200D6C
.align 2, 0
_02200DA0: .word 0x022113D4
- arm_func_start FUN_02200DA4
-FUN_02200DA4: ; 0x02200DA4
+ arm_func_start MOD04_02200DA4
+MOD04_02200DA4: ; 0x02200DA4
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _02200E08 ; =0x022113D4
mov r6, r0
ldr r0, [r1]
mov r5, #0
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
ldmleia sp!, {r4, r5, r6, pc}
ldr r4, _02200E08 ; =0x022113D4
_02200DC8:
ldr r0, [r4]
mov r1, r5
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
cmp r6, r0
bne _02200DF0
ldr r0, _02200E08 ; =0x022113D4
mov r1, r5
ldr r0, [r0]
- bl FUN_021EEDE0
+ bl MOD04_021EEDE0
ldmia sp!, {r4, r5, r6, pc}
_02200DF0:
ldr r0, [r4]
add r5, r5, #1
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r5, r0
blt _02200DC8
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_02200E08: .word 0x022113D4
- arm_func_start FUN_02200E0C
-FUN_02200E0C: ; 0x02200E0C
+ arm_func_start MOD04_02200E0C
+MOD04_02200E0C: ; 0x02200E0C
stmdb sp!, {lr}
sub sp, sp, #0x44
mov r0, #0
@@ -46271,39 +46277,39 @@ FUN_02200E0C: ; 0x02200E0C
ldr r0, [r0]
cmp r0, #0
bne _02200E68
- ldr r2, _02200EA0 ; =FUN_02200EA4
+ ldr r2, _02200EA0 ; =MOD04_02200EA4
mov r0, #0x40
mov r1, #4
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
ldr r1, _02200E9C ; =0x022113D4
str r0, [r1]
_02200E68:
ldr r0, _02200E9C ; =0x022113D4
add r1, sp, #0
ldr r0, [r0]
- bl FUN_021EEFA8
+ bl MOD04_021EEFA8
ldr r0, _02200E9C ; =0x022113D4
ldr r0, [r0]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
ldr r2, _02200E9C ; =0x022113D4
sub r1, r0, #1
ldr r0, [r2]
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
add sp, sp, #0x44
ldmfd sp!, {pc}
.align 2, 0
_02200E9C: .word 0x022113D4
-_02200EA0: .word FUN_02200EA4
+_02200EA0: .word MOD04_02200EA4
- arm_func_start FUN_02200EA4
-FUN_02200EA4: ; 0x02200EA4
+ arm_func_start MOD04_02200EA4
+MOD04_02200EA4: ; 0x02200EA4
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4]
mvn r1, #0
cmp r0, r1
beq _02200EC0
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
_02200EC0:
mvn r0, #0
str r0, [r4]
@@ -46311,8 +46317,8 @@ _02200EC0:
str r0, [r4, #0x10]
ldmia sp!, {r4, pc}
- arm_func_start FUN_02200ED4
-FUN_02200ED4: ; 0x02200ED4
+ arm_func_start MOD04_02200ED4
+MOD04_02200ED4: ; 0x02200ED4
stmdb sp!, {r4, r5, r6, lr}
ldr r1, _02200F38 ; =0x022113D4
mov r6, r0
@@ -46321,20 +46327,20 @@ FUN_02200ED4: ; 0x02200ED4
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
mov r5, #0
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
ble _02200F30
ldr r4, _02200F38 ; =0x022113D4
_02200F04:
ldr r0, [r4]
mov r1, r5
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r1, [r0, #8]
cmp r1, r6
ldmeqia sp!, {r4, r5, r6, pc}
ldr r0, [r4]
add r5, r5, #1
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r5, r0
blt _02200F04
_02200F30:
@@ -46343,8 +46349,8 @@ _02200F30:
.align 2, 0
_02200F38: .word 0x022113D4
- arm_func_start FUN_02200F3C
-FUN_02200F3C: ; 0x02200F3C
+ arm_func_start MOD04_02200F3C
+MOD04_02200F3C: ; 0x02200F3C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr ip, _02201120 ; =0x0000082C
sub sp, sp, ip
@@ -46355,7 +46361,7 @@ FUN_02200F3C: ; 0x02200F3C
add r2, sl, #0x84
mov r1, #3
str r3, [sp, #0x824]
- bl FUN_02201DCC
+ bl MOD04_02201DCC
ldr r4, _02201124 ; =0x022115D8
mov r8, #0
ldr r0, [r4]
@@ -46372,13 +46378,13 @@ _02200F8C:
bl sprintf
mov r0, r6
mov r1, r7
- bl FUN_022021C0
+ bl MOD04_022021C0
add r0, r5, r8, lsl #2
ldmia r0, {r0}
bl FUN_0209A27C
mov r1, r0
mov r0, r6
- bl FUN_022021C0
+ bl MOD04_022021C0
add r8, r8, #1
ldr r0, [r4]
cmp r8, r0
@@ -46386,50 +46392,50 @@ _02200F8C:
_02200FD0:
ldr r1, _02201130 ; =0x0220F180
add r0, sp, #0x24
- bl FUN_022021C0
+ bl MOD04_022021C0
ldr r1, [sl, #0xc0]
add r0, sp, #0x24
- bl FUN_02202220
+ bl MOD04_02202220
ldr r1, _02201134 ; =0x0220F18C
add r0, sp, #0x24
- bl FUN_022021C0
+ bl MOD04_022021C0
ldr r0, [sl, #0xc8]
cmp r0, #0
ldrne r1, _02201138 ; =0x0220F194
add r0, sp, #0x24
ldreq r1, _0220113C ; =0x0220F198
- bl FUN_022021C0
+ bl MOD04_022021C0
cmp sb, #0
beq _0220102C
ldr r1, _02201140 ; =0x0220F19C
add r0, sp, #0x24
- bl FUN_022021C0
+ bl MOD04_022021C0
add r0, sp, #0x24
mov r1, sb
- bl FUN_02202220
+ bl MOD04_02202220
_0220102C:
ldr r1, _02201144 ; =0x0220F1AC
add r0, sp, #0x24
- bl FUN_022021C0
+ bl MOD04_022021C0
add r0, sp, #0x24
add r1, sl, #4
- bl FUN_022021C0
+ bl MOD04_022021C0
ldr r0, [sl, #0xa8]
cmp r0, #0
beq _02201084
ldr r1, _02201148 ; =0x0220F1B8
add r0, sp, #0x24
- bl FUN_022021C0
+ bl MOD04_022021C0
ldr r1, [sl, #0x104]
add r0, sp, #0x24
- bl FUN_02202220
+ bl MOD04_02202220
ldr r1, _0220114C ; =0x0220F1C4
add r0, sp, #0x24
- bl FUN_022021C0
+ bl MOD04_022021C0
add r0, sl, #0x100
ldrh r1, [r0, #8]
add r0, sp, #0x24
- bl FUN_02202220
+ bl MOD04_02202220
_02201084:
cmp sb, #2
beq _022010B4
@@ -46441,7 +46447,7 @@ _02201084:
add r1, sp, #0x24
mov r0, sl
str r3, [sp, #0xc]
- bl FUN_022019B4
+ bl MOD04_022019B4
b _022010D4
_022010B4:
ldr r2, [sp, #0x824]
@@ -46461,8 +46467,8 @@ _022010D4:
ldr r2, [sp, #0x824]
add r1, sp, #0x24
mov r3, #0
- bl FUN_021EFBD4
- bl FUN_021F025C
+ bl MOD04_021EFBD4
+ bl MOD04_021F025C
str r0, [sl, #0xac]
ldr r0, [sl, #0xac]
cmp sb, #0
@@ -46486,8 +46492,8 @@ _02201144: .word 0x0220F1AC
_02201148: .word 0x0220F1B8
_0220114C: .word 0x0220F1C4
- arm_func_start FUN_02201150
-FUN_02201150: ; 0x02201150
+ arm_func_start MOD04_02201150
+MOD04_02201150: ; 0x02201150
stmdb sp!, {r4, lr}
sub sp, sp, #0x810
mov r4, r0
@@ -46496,7 +46502,7 @@ FUN_02201150: ; 0x02201150
add r2, r4, #0x84
mov r1, #8
str r3, [sp, #0x808]
- bl FUN_02201DCC
+ bl MOD04_02201DCC
add r0, r4, #0xcc
str r0, [sp]
mov r0, #8
@@ -46505,14 +46511,14 @@ FUN_02201150: ; 0x02201150
ldr r2, [sp, #0x808]
add r1, sp, #8
mov r3, #0
- bl FUN_021EFBD4
- bl FUN_021F025C
+ bl MOD04_021EFBD4
+ bl MOD04_021F025C
str r0, [r4, #0xb0]
add sp, sp, #0x810
ldmia sp!, {r4, pc}
- arm_func_start FUN_022011A8
-FUN_022011A8: ; 0x022011A8
+ arm_func_start MOD04_022011A8
+MOD04_022011A8: ; 0x022011A8
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
ldr ip, _02201504 ; =0x00000814
sub sp, sp, ip
@@ -46543,7 +46549,7 @@ _0220120C:
bne _0220124C
add r1, sp, #0xc
mov r0, r8
- bl FUN_022016A8
+ bl MOD04_022016A8
str r6, [sp]
mov r0, #8
str r0, [sp, #4]
@@ -46551,7 +46557,7 @@ _0220120C:
ldr r2, [sp, #0x80c]
add r1, sp, #0xc
mov r3, #0
- bl FUN_021EFBD4
+ bl MOD04_021EFBD4
ldr ip, _02201504 ; =0x00000814
add sp, sp, ip
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
@@ -46581,7 +46587,7 @@ _0220124C:
mov r1, sb
mov r2, r5
sub r7, r7, #7
- bl FUN_02201DCC
+ bl MOD04_02201DCC
cmp sb, #8
addls pc, pc, sb, lsl #2
b _022014CC
@@ -46600,7 +46606,7 @@ _022012E4:
mov r0, r8
mov r2, r4
mov r3, r7
- bl FUN_022018F0
+ bl MOD04_022018F0
b _022014D8
_022012FC:
cmp r7, #0xd
@@ -46611,13 +46617,13 @@ _022012FC:
add r1, r4, r7
mov r0, r8
sub r1, r1, #0xd
- bl FUN_02201C70
+ bl MOD04_02201C70
_02201320:
add r1, sp, #0xc
mov r0, r8
mov r2, r4
mov r3, r7
- bl FUN_02201D2C
+ bl MOD04_02201D2C
b _022014D8
_02201338:
ldr r0, [sp, #0x80c]
@@ -46717,13 +46723,13 @@ _02201400:
strb r2, [r3, #2]
strb r1, [r3, #3]
ldr r1, [sp, #8]
- bl FUN_0220150C
+ bl MOD04_0220150C
cmp r0, #0
bne _022014D8
mov r0, r8
add r1, r4, #4
sub r2, r7, #4
- bl FUN_0220157C
+ bl MOD04_0220157C
b _022014D8
_022014CC:
ldr ip, _02201504 ; =0x00000814
@@ -46737,7 +46743,7 @@ _022014D8:
ldr r2, [sp, #0x80c]
add r1, sp, #0xc
mov r3, #0
- bl FUN_021EFBD4
+ bl MOD04_021EFBD4
ldr ip, _02201504 ; =0x00000814
add sp, sp, ip
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
@@ -46745,8 +46751,8 @@ _022014D8:
_02201504: .word 0x00000814
_02201508: .word 0x0220F060
- arm_func_start FUN_0220150C
-FUN_0220150C: ; 0x0220150C
+ arm_func_start MOD04_0220150C
+MOD04_0220150C: ; 0x0220150C
stmdb sp!, {r4, lr}
mov r3, #0
_02201514:
@@ -46778,8 +46784,8 @@ _02201514:
_02201574: .word 0x66666667
_02201578: .word 0x0000000A
- arm_func_start FUN_0220157C
-FUN_0220157C: ; 0x0220157C
+ arm_func_start MOD04_0220157C
+MOD04_0220157C: ; 0x0220157C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0xc
ldr ip, _022016A4 ; =0x0220BCD8
@@ -46861,8 +46867,8 @@ _0220167C:
.align 2, 0
_022016A4: .word 0x0220BCD8
- arm_func_start FUN_022016A8
-FUN_022016A8: ; 0x022016A8
+ arm_func_start MOD04_022016A8
+MOD04_022016A8: ; 0x022016A8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r1
@@ -46872,18 +46878,18 @@ FUN_022016A8: ; 0x022016A8
mov r3, #0x5c
mov r2, #0
strb r3, [r4]
- bl FUN_02201714
+ bl MOD04_02201714
mov r0, r5
mov r1, r4
mov r2, #1
- bl FUN_02201714
+ bl MOD04_02201714
mov r0, r5
mov r1, r4
mov r2, #2
- bl FUN_02201714
+ bl MOD04_02201714
ldr r1, _02201710 ; =0x0220F1D0
mov r0, r4
- bl FUN_022021C0
+ bl MOD04_022021C0
ldr r0, [r4, #0x800]
sub r0, r0, #1
str r0, [r4, #0x800]
@@ -46892,8 +46898,8 @@ FUN_022016A8: ; 0x022016A8
.align 2, 0
_02201710: .word 0x0220F1D0
- arm_func_start FUN_02201714
-FUN_02201714: ; 0x02201714
+ arm_func_start MOD04_02201714
+MOD04_02201714: ; 0x02201714
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x194
mov r8, r2
@@ -46936,7 +46942,7 @@ _02201790:
bne _02201804
mov r1, fp
mov r0, sb
- bl FUN_022021C0
+ bl MOD04_022021C0
ldr r0, [sb, #0x800]
mov r1, sb
sub r0, r0, #1
@@ -46951,7 +46957,7 @@ _02201790:
bne _022017F4
ldr r1, _022018E8 ; =0x0220F1EC
mov r0, sb
- bl FUN_022021C0
+ bl MOD04_022021C0
_022017F4:
ldr r0, [sb, #0x800]
sub r0, r0, #1
@@ -46970,7 +46976,7 @@ _02201814:
bl sprintf
mov r0, sb
add r1, sp, #0xc
- bl FUN_022021C0
+ bl MOD04_022021C0
ldr r0, [sb, #0x800]
cmp r8, #1
sub r0, r0, #1
@@ -46999,7 +47005,7 @@ _02201888:
bne _022018A0
ldr r1, _022018E8 ; =0x0220F1EC
mov r0, sb
- bl FUN_022021C0
+ bl MOD04_022021C0
_022018A0:
ldr r0, [sb, #0x800]
add r7, r7, #1
@@ -47024,8 +47030,8 @@ _022018E4: .word 0x0220F1E4
_022018E8: .word 0x0220F1EC
_022018EC: .word 0x0220F1F0
- arm_func_start FUN_022018F0
-FUN_022018F0: ; 0x022018F0
+ arm_func_start MOD04_022018F0
+MOD04_022018F0: ; 0x022018F0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x14
mov r4, #0
@@ -47075,12 +47081,12 @@ _02201984:
mov r2, r7
mov r3, r4
str ip, [sp, #0xc]
- bl FUN_022019B4
+ bl MOD04_022019B4
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_022019B4
-FUN_022019B4: ; 0x022019B4
+ arm_func_start MOD04_022019B4
+MOD04_022019B4: ; 0x022019B4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
str r3, [sp]
@@ -47088,26 +47094,26 @@ FUN_022019B4: ; 0x022019B4
mov r2, #0
mov r5, r0
mov r4, r1
- bl FUN_02201A14
+ bl MOD04_02201A14
ldr ip, [sp, #0x14]
ldr r3, [sp, #0x10]
mov r0, r5
mov r1, r4
mov r2, #1
str ip, [sp]
- bl FUN_02201A14
+ bl MOD04_02201A14
ldr r0, [sp, #0x1c]
ldr r3, [sp, #0x18]
str r0, [sp]
mov r0, r5
mov r1, r4
mov r2, #2
- bl FUN_02201A14
+ bl MOD04_02201A14
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02201A14
-FUN_02201A14: ; 0x02201A14
+ arm_func_start MOD04_02201A14
+MOD04_02201A14: ; 0x02201A14
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x114
movs fp, r3
@@ -47175,7 +47181,7 @@ _02201B00:
mov r0, sb
cmp r1, #0
moveq r1, fp
- bl FUN_022021C0
+ bl MOD04_022021C0
cmp r8, #0
bne _02201B50
ldrb r0, [r5]
@@ -47189,7 +47195,7 @@ _02201B00:
bne _02201B50
ldr r1, _02201C6C ; =0x0220F1EC
mov r0, sb
- bl FUN_022021C0
+ bl MOD04_022021C0
_02201B50:
ldr r0, [sp, #0x10c]
add r7, r7, #1
@@ -47257,7 +47263,7 @@ _02201C28:
bne _02201C40
ldr r1, _02201C6C ; =0x0220F1EC
mov r0, sb
- bl FUN_022021C0
+ bl MOD04_022021C0
_02201C40:
add r5, r5, #1
cmp r5, fp
@@ -47274,8 +47280,8 @@ _02201C64: .word 0x0220F1E4
_02201C68: .word 0x0220F3A8
_02201C6C: .word 0x0220F1EC
- arm_func_start FUN_02201C70
-FUN_02201C70: ; 0x02201C70
+ arm_func_start MOD04_02201C70
+MOD04_02201C70: ; 0x02201C70
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r0
@@ -47326,8 +47332,8 @@ _02201D04:
.align 2, 0
_02201D28: .word 0x0220F1F8
- arm_func_start FUN_02201D2C
-FUN_02201D2C: ; 0x02201D2C
+ arm_func_start MOD04_02201D2C
+MOD04_02201D2C: ; 0x02201D2C
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x48
mov r5, r3
@@ -47353,12 +47359,12 @@ FUN_02201D2C: ; 0x02201D2C
add r2, sp, #0
add r0, r6, #0x44
sub r3, r5, #1
- bl FUN_02201E0C
+ bl MOD04_02201E0C
ldr r2, [r4, #0x800]
sub r1, r5, #1
add r0, sp, #0
add r2, r4, r2
- bl FUN_02201F50
+ bl MOD04_02201F50
ldr r0, [r4, #0x800]
add r0, r4, r0
bl strlen
@@ -47369,8 +47375,8 @@ FUN_02201D2C: ; 0x02201D2C
add sp, sp, #0x48
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_02201DCC
-FUN_02201DCC: ; 0x02201DCC
+ arm_func_start MOD04_02201DCC
+MOD04_02201DCC: ; 0x02201DCC
stmdb sp!, {lr}
sub sp, sp, #4
strb r1, [r0]
@@ -47388,8 +47394,8 @@ FUN_02201DCC: ; 0x02201DCC
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_02201E0C
-FUN_02201E0C: ; 0x02201E0C
+ arm_func_start MOD04_02201E0C
+MOD04_02201E0C: ; 0x02201E0C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x104
str r1, [sp]
@@ -47425,7 +47431,7 @@ _02201E58:
and r7, r1, #0xff
mov r0, r5
add r1, fp, r6
- bl FUN_0220206C
+ bl MOD04_0220206C
add r0, r4, #1
mov r0, r0, lsl #0x10
mov r4, r0, asr #0x10
@@ -47455,7 +47461,7 @@ _02201EC8:
add r1, r2, r1, ror #24
and r5, r1, #0xff
add r1, r4, r5
- bl FUN_0220206C
+ bl MOD04_0220206C
ldrb r2, [r4, r6]
ldrb r1, [r4, r5]
add r3, r7, #1
@@ -47475,8 +47481,8 @@ _02201EC8:
add sp, sp, #0x104
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02201F50
-FUN_02201F50: ; 0x02201F50
+ arm_func_start MOD04_02201F50
+MOD04_02201F50: ; 0x02201F50
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
mov sb, r1
@@ -47520,7 +47526,7 @@ _02201F84:
strb r0, [sp, #0xa]
_02201FEC:
ldrb r0, [r6]
- bl FUN_02202020
+ bl MOD04_02202020
add r5, r5, #1
cmp r5, #3
strb r0, [r8], #1
@@ -47534,8 +47540,8 @@ _02202010:
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02202020
-FUN_02202020: ; 0x02202020
+ arm_func_start MOD04_02202020
+MOD04_02202020: ; 0x02202020
cmp r0, #0x1a
addlo r0, r0, #0x41
andlo r0, r0, #0xff
@@ -47556,16 +47562,16 @@ FUN_02202020: ; 0x02202020
movne r0, #0
bx lr
- arm_func_start FUN_0220206C
-FUN_0220206C: ; 0x0220206C
+ arm_func_start MOD04_0220206C
+MOD04_0220206C: ; 0x0220206C
ldrb r3, [r0]
ldrb r2, [r1]
strb r2, [r0]
strb r3, [r1]
bx lr
- arm_func_start FUN_02202080
-FUN_02202080: ; 0x02202080
+ arm_func_start MOD04_02202080
+MOD04_02202080: ; 0x02202080
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r1, r1, lsl #0x10
@@ -47584,7 +47590,7 @@ FUN_02202080: ; 0x02202080
mov r5, r3
streq r4, [r6, #4]
beq _022020D0
- bl FUN_021EFB38
+ bl MOD04_021EFB38
str r0, [r6, #4]
_022020D0:
ldr r1, [r6, #4]
@@ -47615,11 +47621,11 @@ _0220211C:
.align 2, 0
_02202130: .word 0x0220F204
- arm_func_start FUN_02202134
-FUN_02202134: ; 0x02202134
+ arm_func_start MOD04_02202134
+MOD04_02202134: ; 0x02202134
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
- bl FUN_021EFE70
+ bl MOD04_021EFE70
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {r4, r5, pc}
@@ -47655,8 +47661,8 @@ _0220215C:
_022021B8: .word 0x022115D8
_022021BC: .word 0x022115DC
- arm_func_start FUN_022021C0
-FUN_022021C0: ; 0x022021C0
+ arm_func_start MOD04_022021C0
+MOD04_022021C0: ; 0x022021C0
stmdb sp!, {r4, r5, r6, lr}
mov r6, r1
mov r4, r0
@@ -47682,8 +47688,8 @@ FUN_022021C0: ; 0x022021C0
strb r1, [r4, r0]
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_02202220
-FUN_02202220: ; 0x02202220
+ arm_func_start MOD04_02202220
+MOD04_02202220: ; 0x02202220
stmdb sp!, {r4, lr}
sub sp, sp, #0x18
mov r2, r1
@@ -47693,14 +47699,14 @@ FUN_02202220: ; 0x02202220
bl sprintf
add r1, sp, #0
mov r0, r4
- bl FUN_022021C0
+ bl MOD04_022021C0
add sp, sp, #0x18
ldmia sp!, {r4, pc}
.align 2, 0
_02202250: .word 0x0220F214
- arm_func_start FUN_02202254
-FUN_02202254: ; 0x02202254
+ arm_func_start MOD04_02202254
+MOD04_02202254: ; 0x02202254
ldr r3, [r0, #0x100]
cmp r3, #0xfe
bxge lr
@@ -47713,8 +47719,8 @@ FUN_02202254: ; 0x02202254
strb r1, [r0, r3]
bx lr
- arm_func_start FUN_02202280
-FUN_02202280: ; 0x02202280
+ arm_func_start MOD04_02202280
+MOD04_02202280: ; 0x02202280
stmdb sp!, {r4, lr}
movs r4, r0
ldreq r0, _02202300 ; =0x0220F060
@@ -47724,7 +47730,7 @@ FUN_02202280: ; 0x02202280
beq _022022A8
mov r0, r4
mov r1, #2
- bl FUN_02200F3C
+ bl MOD04_02200F3C
_022022A8:
ldr r0, [r4]
mvn r1, #0
@@ -47733,7 +47739,7 @@ _022022A8:
ldr r1, [r4, #0xc4]
cmp r1, #0
beq _022022C8
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
_022022C8:
mvn r0, #0
str r0, [r4]
@@ -47742,20 +47748,20 @@ _022022C8:
ldr r0, [r4, #0xc4]
cmp r0, #0
beq _022022E8
- bl FUN_021F0248
+ bl MOD04_021F0248
_022022E8:
ldr r0, _02202304 ; =0x0220F064
cmp r4, r0
ldmeqia sp!, {r4, pc}
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldmia sp!, {r4, pc}
.align 2, 0
_02202300: .word 0x0220F060
_02202304: .word 0x0220F064
- arm_func_start FUN_02202308
-FUN_02202308: ; 0x02202308
+ arm_func_start MOD04_02202308
+MOD04_02202308: ; 0x02202308
stmdb sp!, {r4, lr}
movs r4, r0
ldreq r0, _0220235C ; =0x0220F060
@@ -47763,7 +47769,7 @@ FUN_02202308: ; 0x02202308
ldr r0, [r4, #0xbc]
cmp r0, #0
ldmeqia sp!, {r4, pc}
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r2, [r4, #0xac]
ldr r1, _02202360 ; =0x00002710
sub r0, r0, r2
@@ -47773,7 +47779,7 @@ FUN_02202308: ; 0x02202308
ldmloia sp!, {r4, pc}
mov r0, r4
mov r1, #1
- bl FUN_02200F3C
+ bl MOD04_02200F3C
mov r0, #0
str r0, [r4, #0xb4]
ldmia sp!, {r4, pc}
@@ -47781,12 +47787,12 @@ FUN_02202308: ; 0x02202308
_0220235C: .word 0x0220F060
_02202360: .word 0x00002710
- arm_func_start FUN_02202364
-FUN_02202364: ; 0x02202364
+ arm_func_start MOD04_02202364
+MOD04_02202364: ; 0x02202364
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r2, [r5]
mvn r1, #0
cmp r2, r1
@@ -47815,7 +47821,7 @@ FUN_02202364: ; 0x02202364
_022023D8:
mov r0, r5
mov r1, #3
- bl FUN_02200F3C
+ bl MOD04_02200F3C
ldr r0, [r5, #0xb8]
add r0, r0, #1
str r0, [r5, #0xb8]
@@ -47831,7 +47837,7 @@ _022023F4:
bls _02202424
mov r0, r5
mov r1, #1
- bl FUN_02200F3C
+ bl MOD04_02200F3C
b _02202454
_02202424:
ldr r2, [r5, #0xac]
@@ -47846,7 +47852,7 @@ _02202424:
_02202448:
mov r0, r5
mov r1, #0
- bl FUN_02200F3C
+ bl MOD04_02200F3C
_02202454:
ldr r1, [r5, #0xb0]
ldr r0, _02202488 ; =0x00004E20
@@ -47855,7 +47861,7 @@ _02202454:
addls sp, sp, #4
ldmlsia sp!, {r4, r5, pc}
mov r0, r5
- bl FUN_02201150
+ bl MOD04_02201150
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
@@ -47864,8 +47870,8 @@ _02202480: .word 0x0220F218
_02202484: .word 0x0000EA60
_02202488: .word 0x00004E20
- arm_func_start FUN_0220248C
-FUN_0220248C: ; 0x0220248C
+ arm_func_start MOD04_0220248C
+MOD04_0220248C: ; 0x0220248C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x18
mov r1, #8
@@ -47876,7 +47882,7 @@ FUN_0220248C: ; 0x0220248C
addeq sp, sp, #0x18
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
ldr r0, [r4]
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
addeq sp, sp, #0x18
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
@@ -47893,7 +47899,7 @@ _022024DC:
mov r1, r8
mov r2, r7
mov r3, r6
- bl FUN_021EFC40
+ bl MOD04_021EFC40
mov r2, r0
cmp r2, r5
beq _02202518
@@ -47901,10 +47907,10 @@ _022024DC:
mov r1, r8
mov r3, sl
strb r6, [r8, r2]
- bl FUN_022011A8
+ bl MOD04_022011A8
_02202518:
ldr r0, [r4]
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
bne _022024DC
add sp, sp, #0x18
@@ -47912,8 +47918,8 @@ _02202518:
.align 2, 0
_02202530: .word 0x02211630
- arm_func_start FUN_02202534
-FUN_02202534: ; 0x02202534
+ arm_func_start MOD04_02202534
+MOD04_02202534: ; 0x02202534
stmdb sp!, {r4, lr}
movs r4, r0
ldreq r0, _02202564 ; =0x0220F060
@@ -47922,16 +47928,16 @@ FUN_02202534: ; 0x02202534
cmp r0, #0
beq _02202558
mov r0, r4
- bl FUN_02202364
+ bl MOD04_02202364
_02202558:
mov r0, r4
- bl FUN_0220248C
+ bl MOD04_0220248C
ldmia sp!, {r4, pc}
.align 2, 0
_02202564: .word 0x0220F060
- arm_func_start FUN_02202568
-FUN_02202568: ; 0x02202568
+ arm_func_start MOD04_02202568
+MOD04_02202568: ; 0x02202568
cmp r0, #0
ldreq r0, _0220257C ; =0x0220F060
ldreq r0, [r0]
@@ -47940,8 +47946,8 @@ FUN_02202568: ; 0x02202568
.align 2, 0
_0220257C: .word 0x0220F060
- arm_func_start FUN_02202580
-FUN_02202580: ; 0x02202580
+ arm_func_start MOD04_02202580
+MOD04_02202580: ; 0x02202580
cmp r0, #0
ldreq r0, _02202594 ; =0x0220F060
ldreq r0, [r0]
@@ -47950,8 +47956,8 @@ FUN_02202580: ; 0x02202580
.align 2, 0
_02202594: .word 0x0220F060
- arm_func_start FUN_02202598
-FUN_02202598: ; 0x02202598
+ arm_func_start MOD04_02202598
+MOD04_02202598: ; 0x02202598
cmp r0, #0
ldreq r0, _022025AC ; =0x0220F060
ldreq r0, [r0]
@@ -47960,8 +47966,8 @@ FUN_02202598: ; 0x02202598
.align 2, 0
_022025AC: .word 0x0220F060
- arm_func_start FUN_022025B0
-FUN_022025B0: ; 0x022025B0
+ arm_func_start MOD04_022025B0
+MOD04_022025B0: ; 0x022025B0
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x40
movs r5, r0
@@ -47971,11 +47977,11 @@ FUN_022025B0: ; 0x022025B0
ldreq r5, _02202760 ; =0x0220F064
beq _022025E0
mov r0, #0x110
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r5]
ldr r5, [r5]
_022025E0:
- bl FUN_021F025C
+ bl MOD04_021F025C
bl srand
mov r1, r7
add r0, r5, #4
@@ -48047,7 +48053,7 @@ _022026CC:
ldr r0, [r0]
cmp r0, #0
bne _022026FC
- bl FUN_02202134
+ bl MOD04_02202134
_022026FC:
ldr r0, [sp, #0x5c]
cmp r0, #0
@@ -48067,7 +48073,7 @@ _02202728:
addeq r0, sp, #0
add r2, r5, #0xcc
mov r3, #0
- bl FUN_02202080
+ bl MOD04_02202080
b _0220274C
_02202748:
mov r0, #1
@@ -48086,8 +48092,8 @@ _02202770: .word 0x022115F0
_02202774: .word 0x0220F250
_02202778: .word 0x00006CFC
- arm_func_start FUN_0220277C
-FUN_0220277C: ; 0x0220277C
+ arm_func_start MOD04_0220277C
+MOD04_0220277C: ; 0x0220277C
cmp r0, #0x32
bxlt lr
cmp r0, #0xfe
@@ -48098,8 +48104,8 @@ FUN_0220277C: ; 0x0220277C
.align 2, 0
_02202798: .word 0x0220F3A8
- arm_func_start FUN_0220279C
-FUN_0220279C: ; 0x0220279C
+ arm_func_start MOD04_0220279C
+MOD04_0220279C: ; 0x0220279C
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r5, r2
@@ -48112,7 +48118,7 @@ FUN_0220279C: ; 0x0220279C
_022027C0:
ldrb r1, [r6, r4]
mov r0, r7
- bl FUN_022027E4
+ bl MOD04_022027E4
strb r0, [r6, r4]
add r4, r4, #1
cmp r4, r5
@@ -48120,8 +48126,8 @@ _022027C0:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_022027E4
-FUN_022027E4: ; 0x022027E4
+ arm_func_start MOD04_022027E4
+MOD04_022027E4: ; 0x022027E4
stmdb sp!, {r4, lr}
ldrb r4, [r0, #0x100]
add r2, r4, #1
@@ -48174,8 +48180,8 @@ FUN_022027E4: ; 0x022027E4
ldrb r0, [r0, #0x103]
ldmia sp!, {r4, pc}
- arm_func_start FUN_022028B0
-FUN_022028B0: ; 0x022028B0
+ arm_func_start MOD04_022028B0
+MOD04_022028B0: ; 0x022028B0
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x14
mov r7, r2
@@ -48183,7 +48189,7 @@ FUN_022028B0: ; 0x022028B0
mov r8, r1
cmp r7, #1
bhs _022028D8
- bl FUN_02202978
+ bl MOD04_02202978
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
_022028D8:
@@ -48206,7 +48212,7 @@ _02202904:
mov r2, r8
mov r3, r7
str r4, [sp, #4]
- bl FUN_022029C0
+ bl MOD04_022029C0
ldrb r2, [sb, r6]
ldrb r1, [sb, r0]
strb r1, [sb, r6]
@@ -48230,8 +48236,8 @@ _02202904:
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_02202978
-FUN_02202978: ; 0x02202978
+ arm_func_start MOD04_02202978
+MOD04_02202978: ; 0x02202978
mov r1, #1
strb r1, [r0, #0x100]
mov r1, #3
@@ -48252,8 +48258,8 @@ _022029A8:
blt _022029A8
bx lr
- arm_func_start FUN_022029C0
-FUN_022029C0: ; 0x022029C0
+ arm_func_start MOD04_022029C0
+MOD04_022029C0: ; 0x022029C0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
ldr r8, [sp, #0x28]
@@ -48307,25 +48313,25 @@ _02202A6C:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02202A80
-FUN_02202A80: ; 0x02202A80
+ arm_func_start MOD04_02202A80
+MOD04_02202A80: ; 0x02202A80
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
add r0, r5, #8
mov r4, r1
- bl FUN_022032AC
+ bl MOD04_022032AC
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {r4, r5, pc}
mov r1, r4
add r0, r5, #0x14
- bl FUN_022032AC
+ bl MOD04_022032AC
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02202AB8
-FUN_02202AB8: ; 0x02202AB8
+ arm_func_start MOD04_02202AB8
+MOD04_02202AB8: ; 0x02202AB8
ldr r3, [r0, #0x40]
cmp r3, #0x14
addlt r2, r3, #1
@@ -48334,22 +48340,22 @@ FUN_02202AB8: ; 0x02202AB8
strltb r1, [r0, #0x2c]
bx lr
- arm_func_start FUN_02202AD4
-FUN_02202AD4: ; 0x02202AD4
+ arm_func_start MOD04_02202AD4
+MOD04_02202AD4: ; 0x02202AD4
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0x10]
cmp r1, #0
ldmeqia sp!, {r4, pc}
mov r1, #0
- bl FUN_02202C14
+ bl MOD04_02202C14
mov r0, r4
- bl FUN_02202B84
+ bl MOD04_02202B84
ldr r0, [r4, #0x1c]
cmp r0, #0
ble _02202B0C
mov r0, r4
- bl FUN_02202B34
+ bl MOD04_02202B34
_02202B0C:
ldr r0, [r4, #0x10]
cmp r0, #0
@@ -48362,8 +48368,8 @@ _02202B0C:
blx ip
ldmia sp!, {r4, pc}
- arm_func_start FUN_02202B34
-FUN_02202B34: ; 0x02202B34
+ arm_func_start MOD04_02202B34
+MOD04_02202B34: ; 0x02202B34
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -48371,10 +48377,10 @@ FUN_02202B34: ; 0x02202B34
b _02202B5C
_02202B48:
mov r0, r4
- bl FUN_02203318
+ bl MOD04_02203318
mov r1, r0
mov r0, r5
- bl FUN_022030C0
+ bl MOD04_022030C0
_02202B5C:
ldr r1, [r5, #0x10]
ldr r0, [r5, #4]
@@ -48387,11 +48393,11 @@ _02202B5C:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02202B84
-FUN_02202B84: ; 0x02202B84
+ arm_func_start MOD04_02202B84
+MOD04_02202B84: ; 0x02202B84
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r6, r0
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r3, [r6, #8]
mov r5, r0
cmp r3, #0
@@ -48420,7 +48426,7 @@ _02202BAC:
ldr ip, [r6, #0x44]
blx ip
mov r0, r7
- bl FUN_02203318
+ bl MOD04_02203318
ldr r3, [r6, #8]
cmp r3, #0
bne _02202BAC
@@ -48428,8 +48434,8 @@ _02202BAC:
.align 2, 0
_02202C10: .word 0x000009C4
- arm_func_start FUN_02202C14
-FUN_02202C14: ; 0x02202C14
+ arm_func_start MOD04_02202C14
+MOD04_02202C14: ; 0x02202C14
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr ip, _02202DB0 ; =0x00000814
sub sp, sp, ip
@@ -48440,7 +48446,7 @@ FUN_02202C14: ; 0x02202C14
ldrne r8, [sl, #0x24]
ldreq r8, [sl, #0x20]
mov r0, r8
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
ldreq ip, _02202DB0 ; =0x00000814
addeq sp, sp, ip
@@ -48456,7 +48462,7 @@ _02202C5C:
mov r1, r5
mov r3, r4
str r6, [sp, #4]
- bl FUN_021EFC40
+ bl MOD04_021EFC40
mov r7, r0
mvn r0, #0
cmp r7, r0
@@ -48509,7 +48515,7 @@ _02202D24:
mov r1, r6
mov r2, r5
mov r3, r7
- bl FUN_02202DB8
+ bl MOD04_02202DB8
cmp r0, #0
beq _02202D88
b _02202D94
@@ -48521,14 +48527,14 @@ _02202D4C:
mov r1, r6
mov r2, r5
mov r3, r7
- bl FUN_02202E68
+ bl MOD04_02202E68
b _02202D94
_02202D70:
mov r0, sl
mov r1, r6
mov r2, r5
mov r3, r7
- bl FUN_02202DC0
+ bl MOD04_02202DC0
b _02202D94
_02202D88:
ldr r6, [r6, #0x20]
@@ -48536,7 +48542,7 @@ _02202D88:
bne _02202CA4
_02202D94:
mov r0, r8
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
bne _02202C5C
ldr ip, _02202DB0 ; =0x00000814
@@ -48546,13 +48552,13 @@ _02202D94:
_02202DB0: .word 0x00000814
_02202DB4: .word 0x000007FF
- arm_func_start FUN_02202DB8
-FUN_02202DB8: ; 0x02202DB8
+ arm_func_start MOD04_02202DB8
+MOD04_02202DB8: ; 0x02202DB8
mov r0, #1
bx lr
- arm_func_start FUN_02202DC0
-FUN_02202DC0: ; 0x02202DC0
+ arm_func_start MOD04_02202DC0
+MOD04_02202DC0: ; 0x02202DC0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r4, r1
@@ -48566,7 +48572,7 @@ FUN_02202DC0: ; 0x02202DC0
moveq r6, #0
mov r0, r4
mov r1, r7
- bl FUN_02203738
+ bl MOD04_02203738
cmp r6, #0
addeq sp, sp, #4
ldmeqia sp!, {r4, r5, r6, r7, pc}
@@ -48579,13 +48585,13 @@ FUN_02202DC0: ; 0x02202DC0
ldrb r0, [r4, #0x14]
and r0, r0, #0xf3
strb r0, [r4, #0x14]
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r2, [r4, #0x1c]
mov r1, r4
sub r0, r0, r2
str r0, [r4, #0x1c]
add r0, r5, #8
- bl FUN_022032AC
+ bl MOD04_022032AC
ldr r3, [r5, #0x48]
ldr ip, [r5, #0x44]
mov r0, r5
@@ -48597,8 +48603,8 @@ FUN_02202DC0: ; 0x02202DC0
.align 2, 0
_02202E64: .word 0x0220F7A0
- arm_func_start FUN_02202E68
-FUN_02202E68: ; 0x02202E68
+ arm_func_start MOD04_02202E68
+MOD04_02202E68: ; 0x02202E68
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov r8, r2
ldrsb r2, [r8]
@@ -48620,7 +48626,7 @@ FUN_02202E68: ; 0x02202E68
_02202EB0:
mov r0, r8
mov r1, r7
- bl FUN_02206378
+ bl MOD04_02206378
movs r5, r0
bmi _02202EF4
add r0, sl, r6
@@ -48628,7 +48634,7 @@ _02202EB0:
mov r0, sb
mov r2, r8
ldr r1, [r4, r1, lsl #2]
- bl FUN_02203A80
+ bl MOD04_02203A80
ldr r0, [sl, #0x40]
add r6, r6, #1
cmp r6, r0
@@ -48644,7 +48650,7 @@ _02202F04:
mov r0, sb
mov r1, r8
mov r2, r7
- bl FUN_02203554
+ bl MOD04_02203554
ldrb r0, [sb, #0x14]
orr r0, r0, #0x43
strb r0, [sb, #0x14]
@@ -48652,13 +48658,13 @@ _02202F20:
ldrb r0, [sb, #0x14]
and r0, r0, #0xf3
strb r0, [sb, #0x14]
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r2, [sb, #0x1c]
mov r1, sb
sub r0, r0, r2
str r0, [sb, #0x1c]
add r0, sl, #8
- bl FUN_022032AC
+ bl MOD04_022032AC
ldr r3, [sl, #0x48]
ldr r4, [sl, #0x44]
mov r0, sl
@@ -48669,8 +48675,8 @@ _02202F20:
.align 2, 0
_02202F64: .word 0x0220F3A8
- arm_func_start FUN_02202F68
-FUN_02202F68: ; 0x02202F68
+ arm_func_start MOD04_02202F68
+MOD04_02202F68: ; 0x02202F68
stmdb sp!, {lr}
sub sp, sp, #4
ldrb ip, [r1, #0x14]
@@ -48695,53 +48701,53 @@ _02202FB4:
ldr r3, [r0, #4]
cmp ip, r3
bge _02202FD0
- bl FUN_022030C0
+ bl MOD04_022030C0
add sp, sp, #4
ldmfd sp!, {pc}
_02202FD0:
cmp r2, #0
beq _02202FE8
add r0, r0, #0x14
- bl FUN_02203350
+ bl MOD04_02203350
add sp, sp, #4
ldmfd sp!, {pc}
_02202FE8:
add r0, r0, #0x14
- bl FUN_02203378
+ bl MOD04_02203378
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_02202FF8
-FUN_02202FF8: ; 0x02202FF8
+ arm_func_start MOD04_02202FF8
+MOD04_02202FF8: ; 0x02202FF8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x20]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
mvn r1, #0
add r0, r4, #0x14
str r1, [r4, #0x20]
- bl FUN_02203294
+ bl MOD04_02203294
add r0, r4, #8
- bl FUN_02203294
+ bl MOD04_02203294
ldmia sp!, {r4, pc}
- arm_func_start FUN_02203024
-FUN_02203024: ; 0x02203024
+ arm_func_start MOD04_02203024
+MOD04_02203024: ; 0x02203024
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x14
- bl FUN_02203294
+ bl MOD04_02203294
add r0, r4, #8
- bl FUN_02203294
+ bl MOD04_02203294
ldmia sp!, {r4, pc}
- arm_func_start FUN_02203040
-FUN_02203040: ; 0x02203040
+ arm_func_start MOD04_02203040
+MOD04_02203040: ; 0x02203040
str r1, [r0, #0x28]
bx lr
- arm_func_start FUN_02203048
-FUN_02203048: ; 0x02203048
+ arm_func_start MOD04_02203048
+MOD04_02203048: ; 0x02203048
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
@@ -48753,7 +48759,7 @@ FUN_02203048: ; 0x02203048
cmp r0, #1
ldmneia sp!, {r4, r5, r6, pc}
_02203070:
- bl FUN_021F024C
+ bl MOD04_021F024C
str r4, [r6]
mov r0, #2
str r5, [r6, #4]
@@ -48765,25 +48771,25 @@ _02203070:
str r1, [r6, #0x48]
mov r1, r0
str r2, [r6, #0x28]
- bl FUN_021EFDB8
+ bl MOD04_021EFDB8
str r0, [r6, #0x20]
add r0, r6, #0x14
- bl FUN_02203294
+ bl MOD04_02203294
add r0, r6, #8
- bl FUN_02203294
+ bl MOD04_02203294
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_022030BC: .word 0x02210E5C
- arm_func_start FUN_022030C0
-FUN_022030C0: ; 0x022030C0
+ arm_func_start MOD04_022030C0
+MOD04_022030C0: ; 0x022030C0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x114
mov r5, r0
mov r4, r1
add r0, r5, #8
- bl FUN_02203378
- bl FUN_021F025C
+ bl MOD04_02203378
+ bl MOD04_021F025C
str r0, [r4, #0x1c]
mov r0, #2
strb r0, [sp, #9]
@@ -48899,15 +48905,15 @@ _02203264:
ldr r0, [r5, #0x20]
add r1, sp, #0x10
mov r3, #0
- bl FUN_021EFBD4
+ bl MOD04_021EFBD4
add sp, sp, #0x114
ldmia sp!, {r4, r5, pc}
.align 2, 0
_0220328C: .word 0x0220F7A8
_02203290: .word 0x0220F7B8
- arm_func_start FUN_02203294
-FUN_02203294: ; 0x02203294
+ arm_func_start MOD04_02203294
+MOD04_02203294: ; 0x02203294
mov r2, #0
str r2, [r0, #4]
ldr r1, [r0, #4]
@@ -48915,8 +48921,8 @@ FUN_02203294: ; 0x02203294
str r2, [r0, #8]
bx lr
- arm_func_start FUN_022032AC
-FUN_022032AC: ; 0x022032AC
+ arm_func_start MOD04_022032AC
+MOD04_022032AC: ; 0x022032AC
ldr r3, [r0]
mov r2, #0
cmp r3, #0
@@ -48948,8 +48954,8 @@ _02203310:
mov r0, #0
bx lr
- arm_func_start FUN_02203318
-FUN_02203318: ; 0x02203318
+ arm_func_start MOD04_02203318
+MOD04_02203318: ; 0x02203318
ldr r2, [r0]
cmp r2, #0
beq _02203348
@@ -48966,8 +48972,8 @@ _02203348:
mov r0, r2
bx lr
- arm_func_start FUN_02203350
-FUN_02203350: ; 0x02203350
+ arm_func_start MOD04_02203350
+MOD04_02203350: ; 0x02203350
ldr r2, [r0]
str r2, [r1, #0x20]
str r1, [r0]
@@ -48979,8 +48985,8 @@ FUN_02203350: ; 0x02203350
str r1, [r0, #8]
bx lr
- arm_func_start FUN_02203378
-FUN_02203378: ; 0x02203378
+ arm_func_start MOD04_02203378
+MOD04_02203378: ; 0x02203378
ldr r2, [r0, #4]
cmp r2, #0
strne r1, [r2, #0x20]
@@ -48995,8 +49001,8 @@ FUN_02203378: ; 0x02203378
str r1, [r0, #8]
bx lr
- arm_func_start FUN_022033AC
-FUN_022033AC: ; 0x022033AC
+ arm_func_start MOD04_022033AC
+MOD04_022033AC: ; 0x022033AC
ldr r1, _022033C4 ; =0x02211738
ldr r1, [r1]
cmp r0, r1
@@ -49006,59 +49012,59 @@ FUN_022033AC: ; 0x022033AC
.align 2, 0
_022033C4: .word 0x02211738
- arm_func_start FUN_022033C8
-FUN_022033C8: ; 0x022033C8
+ arm_func_start MOD04_022033C8
+MOD04_022033C8: ; 0x022033C8
ldrb r0, [r0, #0x14]
bx lr
- arm_func_start FUN_022033D0
-FUN_022033D0: ; 0x022033D0
+ arm_func_start MOD04_022033D0
+MOD04_022033D0: ; 0x022033D0
strb r1, [r0, #0x14]
bx lr
- arm_func_start FUN_022033D8
-FUN_022033D8: ; 0x022033D8
+ arm_func_start MOD04_022033D8
+MOD04_022033D8: ; 0x022033D8
str r1, [r0, #0x10]
bx lr
- arm_func_start FUN_022033E0
-FUN_022033E0: ; 0x022033E0
+ arm_func_start MOD04_022033E0
+MOD04_022033E0: ; 0x022033E0
str r1, [r0, #8]
strh r2, [r0, #0xc]
bx lr
- arm_func_start FUN_022033EC
-FUN_022033EC: ; 0x022033EC
+ arm_func_start MOD04_022033EC
+MOD04_022033EC: ; 0x022033EC
strb r1, [r0, #0x15]
bx lr
- arm_func_start FUN_022033F4
-FUN_022033F4: ; 0x022033F4
+ arm_func_start MOD04_022033F4
+MOD04_022033F4: ; 0x022033F4
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r0, #0x24
mov r6, r1
mov r5, r2
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
addeq sp, sp, #8
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
- ldr r0, _02203498 ; =FUN_022034AC
- ldr r2, _0220349C ; =FUN_022034D0
+ ldr r0, _02203498 ; =MOD04_022034AC
+ ldr r2, _0220349C ; =MOD04_022034D0
str r0, [sp]
mov r0, #8
- ldr r3, _022034A0 ; =FUN_022034C0
+ ldr r3, _022034A0 ; =MOD04_022034C0
mov r1, r0
str r2, [sp, #4]
mov r2, #4
- bl FUN_021EF62C
+ bl MOD04_021EF62C
str r0, [r4, #0x18]
ldr r0, [r4, #0x18]
cmp r0, #0
bne _02203464
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
add sp, sp, #8
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
@@ -49077,17 +49083,17 @@ _02203464:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
-_02203498: .word FUN_022034AC
-_0220349C: .word FUN_022034D0
-_022034A0: .word FUN_022034C0
+_02203498: .word MOD04_022034AC
+_0220349C: .word MOD04_022034D0
+_022034A0: .word MOD04_022034C0
- arm_func_start FUN_022034A4
-FUN_022034A4: ; 0x022034A4
+ arm_func_start MOD04_022034A4
+MOD04_022034A4: ; 0x022034A4
ldr r0, [r0, #0x1c]
bx lr
- arm_func_start FUN_022034AC
-FUN_022034AC: ; 0x022034AC
+ arm_func_start MOD04_022034AC
+MOD04_022034AC: ; 0x022034AC
ldr ip, _022034BC ; =0x020E9B38
ldr r0, [r0]
ldr r1, [r1]
@@ -49095,28 +49101,28 @@ FUN_022034AC: ; 0x022034AC
.align 2, 0
_022034BC: .word 0x020E9B38
- arm_func_start FUN_022034C0
-FUN_022034C0: ; 0x022034C0
- ldr ip, _022034CC ; =FUN_022034F4
+ arm_func_start MOD04_022034C0
+MOD04_022034C0: ; 0x022034C0
+ ldr ip, _022034CC ; =MOD04_022034F4
ldr r0, [r0]
bx ip
.align 2, 0
-_022034CC: .word FUN_022034F4
+_022034CC: .word MOD04_022034F4
- arm_func_start FUN_022034D0
-FUN_022034D0: ; 0x022034D0
+ arm_func_start MOD04_022034D0
+MOD04_022034D0: ; 0x022034D0
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4]
mov r0, #0
- bl FUN_022063A8
+ bl MOD04_022063A8
ldr r1, [r4, #4]
mov r0, #0
- bl FUN_022063A8
+ bl MOD04_022063A8
ldmia sp!, {r4, pc}
- arm_func_start FUN_022034F4
-FUN_022034F4: ; 0x022034F4
+ arm_func_start MOD04_022034F4
+MOD04_022034F4: ; 0x022034F4
stmdb sp!, {lr}
sub sp, sp, #4
ldrsb lr, [r0]
@@ -49146,8 +49152,8 @@ _02203538:
_0220354C: .word 0x0210420C
_02203550: .word 0x9CCF9319
- arm_func_start FUN_02203554
-FUN_02203554: ; 0x02203554
+ arm_func_start MOD04_02203554
+MOD04_02203554: ; 0x02203554
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x9c
mov sl, r1
@@ -49159,7 +49165,7 @@ FUN_02203554: ; 0x02203554
_02203574:
mov r0, sl
mov r1, sb
- bl FUN_02206378
+ bl MOD04_02206378
cmp r0, #0
addlt sp, sp, #0x9c
ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -49168,7 +49174,7 @@ _02203574:
add sl, sl, r0
mov r0, sl
mov r1, sb
- bl FUN_02206378
+ bl MOD04_02206378
cmp r0, #0
addlt sp, sp, #0x9c
ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -49177,7 +49183,7 @@ _02203574:
add sl, sl, r0
sub sb, sb, r0
mov r0, fp
- bl FUN_02203A80
+ bl MOD04_02203A80
ldrsb r0, [sl]
cmp r0, #0
bne _02203574
@@ -49215,7 +49221,7 @@ _022035F0:
_02203648:
mov r0, sl
mov r1, sb
- bl FUN_02206378
+ bl MOD04_02206378
cmp r0, #0
addlt sp, sp, #0x9c
ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -49242,7 +49248,7 @@ _02203698:
_022036A8:
mov r0, sl
mov r1, sb
- bl FUN_02206378
+ bl MOD04_02206378
movs r4, r0
addmi sp, sp, #0x9c
ldmmiia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -49254,7 +49260,7 @@ _022036A8:
mov r0, fp
add r1, sp, #0x16
mov r2, sl
- bl FUN_02203A80
+ bl MOD04_02203A80
mov r0, r5
add sl, sl, r4
sub sb, sb, r4
@@ -49280,14 +49286,14 @@ _02203718:
.align 2, 0
_02203734: .word 0x0220F7D4
- arm_func_start FUN_02203738
-FUN_02203738: ; 0x02203738
+ arm_func_start MOD04_02203738
+MOD04_02203738: ; 0x02203738
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov sb, r0
add r0, r1, #1
mov r1, #0x5c
- bl FUN_022037BC
+ bl MOD04_022037BC
movs r8, r0
addeq sp, sp, #4
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc}
@@ -49297,21 +49303,21 @@ FUN_02203738: ; 0x02203738
_02203768:
mov r0, r6
mov r1, r5
- bl FUN_022037BC
+ bl MOD04_022037BC
movs r7, r0
mov r0, r8
moveq r7, r4
- bl FUN_02203828
+ bl MOD04_02203828
cmp r0, #0
beq _0220379C
mov r0, sb
mov r1, r8
mov r2, r7
- bl FUN_02203A80
+ bl MOD04_02203A80
_0220379C:
mov r0, r6
mov r1, r5
- bl FUN_022037BC
+ bl MOD04_022037BC
movs r8, r0
bne _02203768
add sp, sp, #4
@@ -49319,8 +49325,8 @@ _0220379C:
.align 2, 0
_022037B8: .word 0x0220F7DC
- arm_func_start FUN_022037BC
-FUN_022037BC: ; 0x022037BC
+ arm_func_start MOD04_022037BC
+MOD04_022037BC: ; 0x022037BC
cmp r0, #0
ldrne r2, _02203824 ; =0x02211730
strne r0, [r2]
@@ -49353,8 +49359,8 @@ _022037F8:
.align 2, 0
_02203824: .word 0x02211730
- arm_func_start FUN_02203828
-FUN_02203828: ; 0x02203828
+ arm_func_start MOD04_02203828
+MOD04_02203828: ; 0x02203828
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
ldr r1, _02203884 ; =0x0220BCE0
@@ -49382,18 +49388,18 @@ _02203850:
.align 2, 0
_02203884: .word 0x0220BCE0
- arm_func_start FUN_02203888
-FUN_02203888: ; 0x02203888
+ arm_func_start MOD04_02203888
+MOD04_02203888: ; 0x02203888
ldr r0, [r0, #0x20]
bx lr
- arm_func_start FUN_02203890
-FUN_02203890: ; 0x02203890
+ arm_func_start MOD04_02203890
+MOD04_02203890: ; 0x02203890
str r1, [r0, #0x20]
bx lr
- arm_func_start FUN_02203898
-FUN_02203898: ; 0x02203898
+ arm_func_start MOD04_02203898
+MOD04_02203898: ; 0x02203898
ldrh r0, [r0, #0xc]
mov r1, r0, asr #8
mov r0, r0, lsl #8
@@ -49404,13 +49410,13 @@ FUN_02203898: ; 0x02203898
mov r0, r0, lsr #0x10
bx lr
- arm_func_start FUN_022038BC
-FUN_022038BC: ; 0x022038BC
+ arm_func_start MOD04_022038BC
+MOD04_022038BC: ; 0x022038BC
ldr r0, [r0, #8]
bx lr
- arm_func_start FUN_022038C4
-FUN_022038C4: ; 0x022038C4
+ arm_func_start MOD04_022038C4
+MOD04_022038C4: ; 0x022038C4
ldrb r0, [r0, #0x15]
and r0, r0, #2
cmp r0, #2
@@ -49418,13 +49424,13 @@ FUN_022038C4: ; 0x022038C4
movne r0, #0
bx lr
- arm_func_start FUN_022038DC
-FUN_022038DC: ; 0x022038DC
+ arm_func_start MOD04_022038DC
+MOD04_022038DC: ; 0x022038DC
ldrh r0, [r0, #4]
bx lr
- arm_func_start FUN_022038E4
-FUN_022038E4: ; 0x022038E4
+ arm_func_start MOD04_022038E4
+MOD04_022038E4: ; 0x022038E4
ldrh r0, [r0, #4]
mov r1, r0, asr #8
mov r0, r0, lsl #8
@@ -49435,19 +49441,19 @@ FUN_022038E4: ; 0x022038E4
mov r0, r0, lsr #0x10
bx lr
- arm_func_start FUN_02203908
-FUN_02203908: ; 0x02203908
+ arm_func_start MOD04_02203908
+MOD04_02203908: ; 0x02203908
ldr r0, [r0]
bx lr
- arm_func_start FUN_02203910
-FUN_02203910: ; 0x02203910
+ arm_func_start MOD04_02203910
+MOD04_02203910: ; 0x02203910
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r2
mov r2, #0
mov r4, r3
- bl FUN_022039E0
+ bl MOD04_022039E0
cmp r0, #0
beq _0220393C
bl atod
@@ -49459,8 +49465,8 @@ _0220393C:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_0220394C
-FUN_0220394C: ; 0x0220394C
+ arm_func_start MOD04_0220394C
+MOD04_0220394C: ; 0x0220394C
stmdb sp!, {r4, r5, r6, lr}
mov r5, r1
mov r6, r0
@@ -49471,13 +49477,13 @@ FUN_0220394C: ; 0x0220394C
cmp r0, #0
bne _0220397C
mov r0, r6
- bl FUN_022034A4
+ bl MOD04_022034A4
ldmia sp!, {r4, r5, r6, pc}
_0220397C:
mov r0, r6
mov r1, r5
mov r2, #0
- bl FUN_022039E0
+ bl MOD04_022039E0
cmp r0, #0
beq _022039C8
ldrb r2, [r0]
@@ -49506,8 +49512,8 @@ _022039D0:
_022039D8: .word 0x0220F7E0
_022039DC: .word 0x0210430C
- arm_func_start FUN_022039E0
-FUN_022039E0: ; 0x022039E0
+ arm_func_start MOD04_022039E0
+MOD04_022039E0: ; 0x022039E0
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
movs r6, r0
@@ -49527,7 +49533,7 @@ _02203A0C:
str r5, [sp]
ldr r0, [r6, #0x18]
add r1, sp, #0
- bl FUN_021EF358
+ bl MOD04_021EF358
cmp r0, #0
ldrne r4, [r0, #4]
mov r0, r4
@@ -49537,8 +49543,8 @@ _02203A0C:
_02203A40: .word 0x0220F7E8
_02203A44: .word 0x0220F7F0
- arm_func_start FUN_02203A48
-FUN_02203A48: ; 0x02203A48
+ arm_func_start MOD04_02203A48
+MOD04_02203A48: ; 0x02203A48
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x14
mov r4, r1
@@ -49549,45 +49555,45 @@ FUN_02203A48: ; 0x02203A48
add r2, sp, #0
mov r0, r5
mov r1, r4
- bl FUN_02203A80
+ bl MOD04_02203A80
add sp, sp, #0x14
ldmia sp!, {r4, r5, pc}
.align 2, 0
_02203A7C: .word 0x0220F7FC
- arm_func_start FUN_02203A80
-FUN_02203A80: ; 0x02203A80
+ arm_func_start MOD04_02203A80
+MOD04_02203A80: ; 0x02203A80
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
mov r4, r2
mov r0, #0
- bl FUN_02206428
+ bl MOD04_02206428
str r0, [sp]
mov r1, r4
mov r0, #0
- bl FUN_02206428
+ bl MOD04_02206428
str r0, [sp, #4]
ldr r0, [r5, #0x18]
add r1, sp, #0
- bl FUN_021EF494
+ bl MOD04_021EF494
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02203AC0
-FUN_02203AC0: ; 0x02203AC0
+ arm_func_start MOD04_02203AC0
+MOD04_02203AC0: ; 0x02203AC0
stmdb sp!, {r4, lr}
ldr r4, [r0]
ldr r0, [r4, #0x18]
- bl FUN_021EF5B0
+ bl MOD04_021EF5B0
mov r1, #0
mov r0, r4
str r1, [r4, #0x18]
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldmia sp!, {r4, pc}
- arm_func_start FUN_02203AE4
-FUN_02203AE4: ; 0x02203AE4
+ arm_func_start MOD04_02203AE4
+MOD04_02203AE4: ; 0x02203AE4
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _02203B30 ; =0x02211734
@@ -49595,13 +49601,13 @@ FUN_02203AE4: ; 0x02203AE4
cmp r0, #0
addeq sp, sp, #4
ldmeqia sp!, {pc}
- bl FUN_021EF540
+ bl MOD04_021EF540
cmp r0, #0
addne sp, sp, #4
ldmneia sp!, {pc}
ldr r0, _02203B30 ; =0x02211734
ldr r0, [r0]
- bl FUN_021EF5B0
+ bl MOD04_021EF5B0
ldr r0, _02203B30 ; =0x02211734
mov r1, #0
str r1, [r0]
@@ -49610,23 +49616,23 @@ FUN_02203AE4: ; 0x02203AE4
.align 2, 0
_02203B30: .word 0x02211734
- arm_func_start FUN_02203B34
-FUN_02203B34: ; 0x02203B34
+ arm_func_start MOD04_02203B34
+MOD04_02203B34: ; 0x02203B34
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr r0, _02203B88 ; =0x02211734
ldr r0, [r0]
cmp r0, #0
bne _02203B78
- ldr r0, _02203B8C ; =FUN_02203BA8
- ldr ip, _02203B90 ; =FUN_02203B98
+ ldr r0, _02203B8C ; =MOD04_02203BA8
+ ldr ip, _02203B90 ; =MOD04_02203B98
str r0, [sp]
- ldr r3, _02203B94 ; =FUN_02203BBC
+ ldr r3, _02203B94 ; =MOD04_02203BBC
mov r0, #8
mov r1, #0x64
mov r2, #2
str ip, [sp, #4]
- bl FUN_021EF62C
+ bl MOD04_021EF62C
ldr r1, _02203B88 ; =0x02211734
str r0, [r1]
_02203B78:
@@ -49636,20 +49642,20 @@ _02203B78:
ldmfd sp!, {pc}
.align 2, 0
_02203B88: .word 0x02211734
-_02203B8C: .word FUN_02203BA8
-_02203B90: .word FUN_02203B98
-_02203B94: .word FUN_02203BBC
+_02203B8C: .word MOD04_02203BA8
+_02203B90: .word MOD04_02203B98
+_02203B94: .word MOD04_02203BBC
- arm_func_start FUN_02203B98
-FUN_02203B98: ; 0x02203B98
- ldr ip, _02203BA4 ; =FUN_021DD82C
+ arm_func_start MOD04_02203B98
+MOD04_02203B98: ; 0x02203B98
+ ldr ip, _02203BA4 ; =MOD04_021DD82C
ldr r0, [r0]
bx ip
.align 2, 0
-_02203BA4: .word FUN_021DD82C
+_02203BA4: .word MOD04_021DD82C
- arm_func_start FUN_02203BA8
-FUN_02203BA8: ; 0x02203BA8
+ arm_func_start MOD04_02203BA8
+MOD04_02203BA8: ; 0x02203BA8
ldr ip, _02203BB8 ; =0x020E9B38
ldr r0, [r0]
ldr r1, [r1]
@@ -49657,93 +49663,93 @@ FUN_02203BA8: ; 0x02203BA8
.align 2, 0
_02203BB8: .word 0x020E9B38
- arm_func_start FUN_02203BBC
-FUN_02203BBC: ; 0x02203BBC
- ldr ip, _02203BC8 ; =FUN_022034F4
+ arm_func_start MOD04_02203BBC
+MOD04_02203BBC: ; 0x02203BBC
+ ldr ip, _02203BC8 ; =MOD04_022034F4
ldr r0, [r0]
bx ip
.align 2, 0
-_02203BC8: .word FUN_022034F4
+_02203BC8: .word MOD04_022034F4
- arm_func_start FUN_02203BCC
-FUN_02203BCC: ; 0x02203BCC
+ arm_func_start MOD04_02203BCC
+MOD04_02203BCC: ; 0x02203BCC
ldr r0, [r0, #0x4ec]
bx lr
- arm_func_start FUN_02203BD4
-FUN_02203BD4: ; 0x02203BD4
- ldr ip, _02203BE0 ; =FUN_02206740
+ arm_func_start MOD04_02203BD4
+MOD04_02203BD4: ; 0x02203BD4
+ ldr ip, _02203BE0 ; =MOD04_02206740
add r0, r0, #0x4c
bx ip
.align 2, 0
-_02203BE0: .word FUN_02206740
+_02203BE0: .word MOD04_02206740
- arm_func_start FUN_02203BE4
-FUN_02203BE4: ; 0x02203BE4
+ arm_func_start MOD04_02203BE4
+MOD04_02203BE4: ; 0x02203BE4
ldr ip, _02203BF0 ; =0x0220658C
add r0, r0, #0x4c
bx ip
.align 2, 0
_02203BF0: .word 0x0220658C
- arm_func_start FUN_02203BF4
-FUN_02203BF4: ; 0x02203BF4
- ldr ip, _02203C00 ; =FUN_02206570
+ arm_func_start MOD04_02203BF4
+MOD04_02203BF4: ; 0x02203BF4
+ ldr ip, _02203C00 ; =MOD04_02206570
add r0, r0, #0x4c
bx ip
.align 2, 0
-_02203C00: .word FUN_02206570
+_02203C00: .word MOD04_02206570
- arm_func_start FUN_02203C04
-FUN_02203C04: ; 0x02203C04
+ arm_func_start MOD04_02203C04
+MOD04_02203C04: ; 0x02203C04
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_02203C1C
+ bl MOD04_02203C1C
add r0, r4, #0x4c
- bl FUN_022064BC
+ bl MOD04_022064BC
ldmia sp!, {r4, pc}
- arm_func_start FUN_02203C1C
-FUN_02203C1C: ; 0x02203C1C
+ arm_func_start MOD04_02203C1C
+MOD04_02203C1C: ; 0x02203C1C
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x4c
- bl FUN_02205994
+ bl MOD04_02205994
mov r0, r4
- bl FUN_02203024
+ bl MOD04_02203024
ldmia sp!, {r4, pc}
- arm_func_start FUN_02203C38
-FUN_02203C38: ; 0x02203C38
+ arm_func_start MOD04_02203C38
+MOD04_02203C38: ; 0x02203C38
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_02202AD4
+ bl MOD04_02202AD4
add r0, r4, #0x4c
- bl FUN_022041FC
+ bl MOD04_022041FC
ldmia sp!, {r4, pc}
- arm_func_start FUN_02203C50
-FUN_02203C50: ; 0x02203C50
+ arm_func_start MOD04_02203C50
+MOD04_02203C50: ; 0x02203C50
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x4c
- bl FUN_022066A4
+ bl MOD04_022066A4
mov r1, r0
mvn r0, #0
cmp r1, r0
ldmeqia sp!, {r4, pc}
add r0, r4, #0x4c
- bl FUN_0220659C
+ bl MOD04_0220659C
ldmia sp!, {r4, pc}
- arm_func_start FUN_02203C7C
-FUN_02203C7C: ; 0x02203C7C
+ arm_func_start MOD04_02203C7C
+MOD04_02203C7C: ; 0x02203C7C
stmdb sp!, {r4, r5, r6, lr}
mov r5, r0
mov r6, r2
mov r0, r1
mov r4, r3
- bl FUN_021EFB38
+ bl MOD04_021EFB38
mov r3, r6, asr #8
mov r2, r6, lsl #8
mov r1, r0
@@ -49754,18 +49760,18 @@ FUN_02203C7C: ; 0x02203C7C
mov r3, r4
add r0, r5, #0x4c
mov r2, r2, lsr #0x10
- bl FUN_02204380
+ bl MOD04_02204380
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_02203CC4
-FUN_02203CC4: ; 0x02203CC4
+ arm_func_start MOD04_02203CC4
+MOD04_02203CC4: ; 0x02203CC4
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r5, r0
mov r6, r2
mov r0, r1
mov r4, r3
- bl FUN_021EFB38
+ bl MOD04_021EFB38
mov r3, r6, asr #8
mov r2, r6, lsl #8
ldr ip, [sp, #0x18]
@@ -49778,12 +49784,12 @@ FUN_02203CC4: ; 0x02203CC4
mov r3, r4
add r0, r5, #0x4c
mov r2, r2, lsr #0x10
- bl FUN_02204438
+ bl MOD04_02204438
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_02203D1C
-FUN_02203D1C: ; 0x02203D1C
+ arm_func_start MOD04_02203D1C
+MOD04_02203D1C: ; 0x02203D1C
stmdb sp!, {lr}
sub sp, sp, #0x14
ldr lr, [sp, #0x18]
@@ -49794,12 +49800,12 @@ FUN_02203D1C: ; 0x02203D1C
ldr ip, [sp, #0x20]
str lr, [sp, #8]
str ip, [sp, #0xc]
- bl FUN_02203D50
+ bl MOD04_02203D50
add sp, sp, #0x14
ldmfd sp!, {pc}
- arm_func_start FUN_02203D50
-FUN_02203D50: ; 0x02203D50
+ arm_func_start MOD04_02203D50
+MOD04_02203D50: ; 0x02203D50
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x10c
ldr r8, [sp, #0x130]
@@ -49841,7 +49847,7 @@ _02203DA8:
add r7, r7, r0
ldrb r1, [r4]
mov r0, sl
- bl FUN_02202AB8
+ bl MOD04_02202AB8
add r6, r6, #1
cmp r6, r8
blt _02203DA8
@@ -49852,7 +49858,7 @@ _02203DFC:
add r1, sp, #8
add r0, sl, #0x4c
str r4, [sp]
- bl FUN_02205AB4
+ bl MOD04_02205AB4
cmp r0, #0
addne sp, sp, #0x10c
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -49864,9 +49870,9 @@ _02203DFC:
b _02203E4C
_02203E3C:
mov r0, r4
- bl FUN_021F0250
+ bl MOD04_021F0250
mov r0, sl
- bl FUN_02203C38
+ bl MOD04_02203C38
_02203E4C:
ldr r1, [sl, #0x4c]
cmp r1, #3
@@ -49883,20 +49889,20 @@ _02203E4C:
_02203E78: .word 0x0220F3A8
_02203E7C: .word 0x0220F800
- arm_func_start FUN_02203E80
-FUN_02203E80: ; 0x02203E80
+ arm_func_start MOD04_02203E80
+MOD04_02203E80: ; 0x02203E80
stmdb sp!, {r4, lr}
mov r4, r0
add r0, r4, #0x4c
- bl FUN_0220595C
+ bl MOD04_0220595C
mov r0, r4
- bl FUN_02202FF8
+ bl MOD04_02202FF8
mov r0, r4
- bl FUN_021DD82C
+ bl MOD04_021DD82C
ldmia sp!, {r4, pc}
- arm_func_start FUN_02203EA4
-FUN_02203EA4: ; 0x02203EA4
+ arm_func_start MOD04_02203EA4
+MOD04_02203EA4: ; 0x02203EA4
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
ldr r4, [sp, #0x30]
@@ -49914,7 +49920,7 @@ FUN_02203EA4: ; 0x02203EA4
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
_02203EE0:
ldr r0, _02203F6C ; =0x00000638
- bl FUN_021DD860
+ bl MOD04_021DD860
movs r4, r0
addeq sp, sp, #0x10
moveq r0, #0
@@ -49927,7 +49933,7 @@ _02203EE0:
str r0, [r4, #0x624]
ldr r1, [sp, #0x30]
str r5, [sp]
- ldr r0, _02203F70 ; =FUN_02204028
+ ldr r0, _02203F70 ; =MOD04_02204028
str r1, [sp, #4]
str r0, [sp, #8]
mov r1, r8
@@ -49935,26 +49941,26 @@ _02203EE0:
mov r3, r6
add r0, r4, #0x4c
str r4, [sp, #0xc]
- bl FUN_02206248
- ldr r0, _02203F74 ; =FUN_02203F78
+ bl MOD04_02206248
+ ldr r0, _02203F74 ; =MOD04_02203F78
ldr r1, [sp, #0x28]
str r0, [sp]
ldr r2, [sp, #0x2c]
ldr r3, [sp, #0x30]
mov r0, r4
str r4, [sp, #4]
- bl FUN_02203048
+ bl MOD04_02203048
mov r0, r4
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_02203F68: .word 0x02210E5C
_02203F6C: .word 0x00000638
-_02203F70: .word FUN_02204028
-_02203F74: .word FUN_02203F78
+_02203F70: .word MOD04_02204028
+_02203F74: .word MOD04_02203F78
- arm_func_start FUN_02203F78
-FUN_02203F78: ; 0x02203F78
+ arm_func_start MOD04_02203F78
+MOD04_02203F78: ; 0x02203F78
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r2
@@ -50004,8 +50010,8 @@ _02203FE8:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02204028
-FUN_02204028: ; 0x02204028
+ arm_func_start MOD04_02204028
+MOD04_02204028: ; 0x02204028
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r2
@@ -50059,7 +50065,7 @@ _022040D4:
mov r0, r4
mov r1, r5
mov r2, #0
- bl FUN_02202F68
+ bl MOD04_02202F68
b _022041C8
_022040E8:
ldrb r0, [r5, #0x14]
@@ -50084,7 +50090,7 @@ _02204124:
beq _0220413C
mov r0, r4
mov r1, r5
- bl FUN_02202A80
+ bl MOD04_02202A80
_0220413C:
ldr r3, [r4, #0x634]
ldr ip, [r4, #0x630]
@@ -50097,10 +50103,10 @@ _02204158:
ldr r1, [r4, #0x620]
cmp r1, #0
beq _02204168
- bl FUN_02205994
+ bl MOD04_02205994
_02204168:
ldr r0, [r6, #4]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
beq _02204184
ldr r0, [r4, #0x10]
@@ -50125,7 +50131,7 @@ _022041A0:
_022041BC:
ldr r1, [r4, #0x4ec]
mov r0, r4
- bl FUN_02203040
+ bl MOD04_02203040
_022041C8:
cmp r5, #0
ldmeqia sp!, {r4, r5, r6, pc}
@@ -50141,11 +50147,11 @@ _022041C8:
streq r0, [r4, #0x628]
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_022041FC
-FUN_022041FC: ; 0x022041FC
+ arm_func_start MOD04_022041FC
+MOD04_022041FC: ; 0x022041FC
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_02206514
+ bl MOD04_02206514
ldr r0, [r4]
cmp r0, #3
addls pc, pc, r0, lsl #2
@@ -50157,18 +50163,18 @@ _02204218: ; jump table
b _02204228 ; case 3
_02204228:
mov r0, r4
- bl FUN_02204560
+ bl MOD04_02204560
ldmia sp!, {r4, pc}
_02204234:
mov r0, r4
- bl FUN_02204248
+ bl MOD04_02204248
ldmia sp!, {r4, pc}
_02204240:
mov r0, #0
ldmia sp!, {r4, pc}
- arm_func_start FUN_02204248
-FUN_02204248: ; 0x02204248
+ arm_func_start MOD04_02204248
+MOD04_02204248: ; 0x02204248
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
ldr ip, _02204374 ; =0x000005F4
sub sp, sp, ip
@@ -50176,7 +50182,7 @@ FUN_02204248: ; 0x02204248
mov sl, r0
str r1, [sp, #0x10]
ldr r0, [sl, #0x4b0]
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
beq _0220431C
add sb, sp, #8
@@ -50192,22 +50198,22 @@ _02204288:
ldr r2, _02204378 ; =0x000005DB
mov r1, fp
mov r3, r7
- bl FUN_021EFC40
+ bl MOD04_021EFC40
mvn r1, #0
cmp r0, r1
beq _0220430C
ldrh r2, [sp, #0xa]
ldr r1, [sp, #0xc]
mov r0, sl
- bl FUN_02206628
+ bl MOD04_02206628
cmp r0, r4
bne _0220430C
ldrh r2, [sp, #0xa]
ldr r1, [sp, #0xc]
mov r0, sl
- bl FUN_022033F4
+ bl MOD04_022033F4
mov r6, r0
- bl FUN_022033AC
+ bl MOD04_022033AC
cmp r0, #0
ldrne ip, _02204374 ; =0x000005F4
movne r0, #5
@@ -50215,23 +50221,23 @@ _02204288:
ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r0, r6
mov r1, r5
- bl FUN_022033EC
+ bl MOD04_022033EC
mov r0, sl
mov r1, r6
- bl FUN_02206704
+ bl MOD04_02206704
_0220430C:
ldr r0, [sl, #0x4b0]
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
bne _02204288
_0220431C:
- bl FUN_021F025C
+ bl MOD04_021F025C
ldr r1, [sl, #0x4b4]
sub r0, r0, r1
cmp r0, #0x7d0
bls _02204364
ldr r0, [sl, #0x4b0]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
mvn r0, #0
str r0, [sl, #0x4b0]
mov r0, #1
@@ -50253,8 +50259,8 @@ _02204374: .word 0x000005F4
_02204378: .word 0x000005DB
_0220437C: .word 0x02211738
- arm_func_start FUN_02204380
-FUN_02204380: ; 0x02204380
+ arm_func_start MOD04_02204380
+MOD04_02204380: ; 0x02204380
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x10
@@ -50296,14 +50302,14 @@ FUN_02204380: ; 0x02204380
strb r6, [r7, #2]
strb r5, [r7, #3]
str r4, [sp]
- bl FUN_02204438
+ bl MOD04_02204438
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
add sp, sp, #0x10
bx lr
- arm_func_start FUN_02204438
-FUN_02204438: ; 0x02204438
+ arm_func_start MOD04_02204438
+MOD04_02204438: ; 0x02204438
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #0x18
@@ -50316,7 +50322,7 @@ FUN_02204438: ; 0x02204438
mov r2, r1
mov r3, #2
str r1, [sp]
- bl FUN_02205AB4
+ bl MOD04_02205AB4
_0220446C:
ldr r0, [r5]
cmp r0, #1
@@ -50361,7 +50367,7 @@ _0220446C:
mov r2, #9
strb ip, [lr]
strb r3, [lr, #1]
- bl FUN_02205D28
+ bl MOD04_02205D28
cmp r0, #0
addne sp, sp, #0x18
ldmneia sp!, {r4, r5, r6, lr}
@@ -50371,7 +50377,7 @@ _0220446C:
ldr r2, [sp, #0x38]
mov r1, r4
mov r3, #0
- bl FUN_021EFC24
+ bl MOD04_021EFC24
cmp r0, #0
movlt r0, #3
movge r0, #0
@@ -50380,12 +50386,12 @@ _0220446C:
add sp, sp, #0x10
bx lr
- arm_func_start FUN_02204560
-FUN_02204560: ; 0x02204560
+ arm_func_start MOD04_02204560
+MOD04_02204560: ; 0x02204560
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r0, [r6, #0x4b0]
- bl FUN_021EFF2C
+ bl MOD04_021EFF2C
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, pc}
@@ -50395,12 +50401,12 @@ FUN_02204560: ; 0x02204560
add r1, r1, r4
rsb r2, r4, #0x1000
mov r3, #0
- bl FUN_021EFC78
+ bl MOD04_021EFC78
add r1, r0, #1
cmp r1, #1
bhi _022045B4
mov r0, r6
- bl FUN_02206184
+ bl MOD04_02206184
mov r0, #3
ldmia sp!, {r4, r5, r6, pc}
_022045B4:
@@ -50421,13 +50427,13 @@ _022045DC:
add r1, r1, r4
add r0, r6, r0
sub r2, r2, r4
- bl FUN_0220279C
+ bl MOD04_0220279C
_022045F8:
ldr r0, [r6]
cmp r0, #3
bne _02204610
mov r0, r6
- bl FUN_02204DF0
+ bl MOD04_02204DF0
mov r5, r0
_02204610:
cmp r5, #0
@@ -50440,7 +50446,7 @@ _02204610:
cmp r0, #0
ble _02204640
mov r0, r6
- bl FUN_0220464C
+ bl MOD04_0220464C
ldmia sp!, {r4, r5, r6, pc}
_02204640:
mov r0, #0
@@ -50448,8 +50454,8 @@ _02204640:
.align 2, 0
_02204648: .word 0x000004BC
- arm_func_start FUN_0220464C
-FUN_0220464C: ; 0x0220464C
+ arm_func_start MOD04_0220464C
+MOD04_0220464C: ; 0x0220464C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov sb, r0
@@ -50502,20 +50508,20 @@ _02204704:
mov r0, sb
add r1, r1, #3
sub r2, r2, #3
- bl FUN_02204D10
+ bl MOD04_02204D10
mov r8, r0
b _02204798
_0220471C:
mov r0, sb
add r1, r1, #3
sub r2, r2, #3
- bl FUN_02204828
+ bl MOD04_02204828
mov r8, r0
b _02204798
_02204734:
ldr r0, [sb, #0x4b0]
mov r3, r6
- bl FUN_021EFC24
+ bl MOD04_021EFC24
cmp r0, #0
bgt _02204798
add sp, sp, #4
@@ -50525,21 +50531,21 @@ _02204754:
mov r0, sb
add r1, r1, #3
sub r2, r2, #3
- bl FUN_02204920
+ bl MOD04_02204920
mov r8, r0
b _02204798
_0220476C:
mov r0, sb
add r1, r1, #3
sub r2, r2, #3
- bl FUN_022049B0
+ bl MOD04_022049B0
mov r8, r0
b _02204798
_02204784:
mov r0, sb
add r1, r1, #3
sub r2, r2, #3
- bl FUN_02204B40
+ bl MOD04_02204B40
mov r8, r0
_02204798:
ldrh r0, [sp]
@@ -50574,7 +50580,7 @@ _02204800:
cmp r8, #0
beq _02204810
mov r0, sb
- bl FUN_02206184
+ bl MOD04_02206184
_02204810:
mov r0, r8
add sp, sp, #4
@@ -50584,8 +50590,8 @@ _0220481C: .word 0x0220F818
_02204820: .word 0x0220F830
_02204824: .word 0x000005B4
- arm_func_start FUN_02204828
-FUN_02204828: ; 0x02204828
+ arm_func_start MOD04_02204828
+MOD04_02204828: ; 0x02204828
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov r6, r2
@@ -50598,11 +50604,11 @@ FUN_02204828: ; 0x02204828
add r4, sp, #4
add r3, sp, #8
str r4, [sp]
- bl FUN_02205650
+ bl MOD04_02205650
ldrh r2, [sp, #4]
ldr r1, [sp, #8]
mov r0, r8
- bl FUN_02206628
+ bl MOD04_02206628
mov r4, r0
mvn r0, #0
cmp r4, r0
@@ -50610,9 +50616,9 @@ FUN_02204828: ; 0x02204828
ldrh r2, [sp, #4]
ldr r1, [sp, #8]
mov r0, r8
- bl FUN_022033F4
+ bl MOD04_022033F4
mov r5, r0
- bl FUN_022033AC
+ bl MOD04_022033AC
cmp r0, #0
beq _022048B8
add sp, sp, #0x10
@@ -50621,7 +50627,7 @@ FUN_02204828: ; 0x02204828
_022048A8:
mov r0, r8
mov r1, r4
- bl FUN_02206570
+ bl MOD04_02206570
mov r5, r0
_022048B8:
mov ip, #0
@@ -50630,7 +50636,7 @@ _022048B8:
mov r2, r7
mov r3, r6
str ip, [sp]
- bl FUN_02205378
+ bl MOD04_02205378
cmp r0, #0
addlt sp, sp, #0x10
movlt r0, #4
@@ -50640,7 +50646,7 @@ _022048B8:
bne _022048FC
mov r0, r8
mov r1, r5
- bl FUN_02206704
+ bl MOD04_02206704
_022048FC:
ldr r3, [r8, #0x494]
ldr r4, [r8, #0x488]
@@ -50652,8 +50658,8 @@ _022048FC:
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
- arm_func_start FUN_02204920
-FUN_02204920: ; 0x02204920
+ arm_func_start MOD04_02204920
+MOD04_02204920: ; 0x02204920
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
cmp r2, #6
@@ -50678,7 +50684,7 @@ FUN_02204920: ; 0x02204920
strb r1, [ip, #1]
ldrh r2, [sp]
ldr r1, [sp, #4]
- bl FUN_02206628
+ bl MOD04_02206628
mov r1, r0
mvn r0, #0
cmp r1, r0
@@ -50686,13 +50692,13 @@ FUN_02204920: ; 0x02204920
moveq r0, #0
ldmeqia sp!, {r4, r5, pc}
mov r0, r4
- bl FUN_0220659C
+ bl MOD04_0220659C
mov r0, #0
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_022049B0
-FUN_022049B0: ; 0x022049B0
+ arm_func_start MOD04_022049B0
+MOD04_022049B0: ; 0x022049B0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x54
mov r8, r2
@@ -50719,7 +50725,7 @@ FUN_022049B0: ; 0x022049B0
strb r1, [r3, #1]
ldrh r2, [sp, #8]
ldr r1, [sp, #0x10]
- bl FUN_02206628
+ bl MOD04_02206628
mov r1, r0
mvn r0, #0
cmp r1, r0
@@ -50727,7 +50733,7 @@ FUN_022049B0: ; 0x022049B0
moveq r0, #0
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
mov r0, sl
- bl FUN_02206570
+ bl MOD04_02206570
add r3, sb, #6
ldrb r2, [sb, #6]
ldrb r1, [r3, #1]
@@ -50764,7 +50770,7 @@ _02204AB8:
blt _02204AFC
mov r0, sb
mov r1, r8
- bl FUN_02206378
+ bl MOD04_02206378
cmp r0, r4
addeq sp, sp, #0x54
moveq r0, #4
@@ -50797,8 +50803,8 @@ _02204AFC:
add sp, sp, #0x54
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02204B40
-FUN_02204B40: ; 0x02204B40
+ arm_func_start MOD04_02204B40
+MOD04_02204B40: ; 0x02204B40
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x24
mov r7, r2
@@ -50824,7 +50830,7 @@ _02204B94:
mov r0, r8
mov r1, r7
mov fp, r8
- bl FUN_02206378
+ bl MOD04_02206378
mvn r1, #0
cmp r0, r1
addeq sp, sp, #0x24
@@ -50876,7 +50882,7 @@ _02204B94:
orr r2, r3, r2
orr r2, sl, r2
str r2, [sp, #0x1c]
- bl FUN_02206378
+ bl MOD04_02206378
mov sl, r0
mvn r0, #0
cmp sl, r0
@@ -50919,8 +50925,8 @@ _02204D04:
add sp, sp, #0x24
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02204D10
-FUN_02204D10: ; 0x02204D10
+ arm_func_start MOD04_02204D10
+MOD04_02204D10: ; 0x02204D10
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
mov sl, r0
@@ -50931,12 +50937,12 @@ FUN_02204D10: ; 0x02204D10
sub r8, r8, #1
ldrb r6, [sb], #1
beq _02204D3C
- bl FUN_022059F8
+ bl MOD04_022059F8
_02204D3C:
mov r1, r6
mov r0, #8
mov r2, #0
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
str r0, [sl, #8]
ldr r0, [sl, #8]
cmp r0, #0
@@ -50955,7 +50961,7 @@ _02204D78:
ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
add r0, sb, #1
sub r1, r8, #1
- bl FUN_02206378
+ bl MOD04_02206378
mov r5, r0
cmp r5, r4
addeq sp, sp, #0xc
@@ -50965,11 +50971,11 @@ _02204D78:
mov r0, sl
add r1, sb, #1
str r2, [sp, #4]
- bl FUN_02206428
+ bl MOD04_02206428
str r0, [sp]
ldr r0, [sl, #8]
mov r1, fp
- bl FUN_021EEFA8
+ bl MOD04_021EEFA8
add r0, r5, #1
add r7, r7, #1
cmp r7, r6
@@ -50981,8 +50987,8 @@ _02204DE4:
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02204DF0
-FUN_02204DF0: ; 0x02204DF0
+ arm_func_start MOD04_02204DF0
+MOD04_02204DF0: ; 0x02204DF0
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0xc
mov r8, r0
@@ -51013,7 +51019,7 @@ _02204E28:
cmp r6, r4
blt _022051D0
add r1, r7, r3
- bl FUN_022058B0
+ bl MOD04_022058B0
ldr r0, _02205224 ; =0x000004BC
add r7, r7, r4
sub r6, r6, r4
@@ -51022,7 +51028,7 @@ _02204E28:
mov r2, r6
add r0, r8, r0
str r3, [r8, #0x5c8]
- bl FUN_0220279C
+ bl MOD04_0220279C
_02204E88:
cmp r6, #6
blt _022051D0
@@ -51056,13 +51062,13 @@ _02204E88:
bne _02204F4C
add r0, r7, #6
sub r1, r6, #6
- bl FUN_02206378
+ bl MOD04_02206378
mvn r1, #0
cmp r0, r1
beq _022051D0
mov r0, r8
add r1, r7, #6
- bl FUN_02205240
+ bl MOD04_02205240
ldr r0, _02205228 ; =0x02211738
ldr r3, [r8, #0x494]
ldr r2, [r0]
@@ -51107,7 +51113,7 @@ _02204F98:
mov r2, #0
str r1, [r8, #0x484]
ldr r1, [r8, #0x484]
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
str r0, [r8, #8]
ldr r0, [r8, #8]
cmp r0, #0
@@ -51118,7 +51124,7 @@ _02204F98:
sub r6, r6, #1
_02204FE8:
ldr r0, [r8, #8]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
ldr r1, [r8, #0x484]
cmp r1, r0
ble _02205068
@@ -51129,7 +51135,7 @@ _02205004:
blt _02205068
add r0, r7, #1
sub r1, r6, #1
- bl FUN_02206378
+ bl MOD04_02206378
mov sb, r0
cmp sb, r4
beq _02205068
@@ -51137,22 +51143,22 @@ _02205004:
mov r0, r8
add r1, r7, #1
str r2, [sp, #4]
- bl FUN_02206428
+ bl MOD04_02206428
str r0, [sp]
ldr r0, [r8, #8]
mov r1, r5
- bl FUN_021EEFA8
+ bl MOD04_021EEFA8
add r1, sb, #1
ldr r0, [r8, #8]
add r7, r7, r1
sub r6, r6, r1
- bl FUN_021EF06C
+ bl MOD04_021EF06C
ldr r1, [r8, #0x484]
cmp r1, r0
bgt _02205004
_02205068:
ldr r0, [r8, #8]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
ldr r1, [r8, #0x484]
cmp r1, r0
bgt _022051D0
@@ -51183,13 +51189,13 @@ _022050BC:
_022050D4:
mov r0, r7
mov r1, r6
- bl FUN_02206378
+ bl MOD04_02206378
mov r5, r0
cmp r5, sb
beq _02205128
mov r0, r8
mov r1, r7
- bl FUN_02206428
+ bl MOD04_02206428
ldr r1, [r4]
ldr r2, [r8, #0x480]
add r1, r1, #1
@@ -51219,7 +51225,7 @@ _02205154:
mov r0, r8
mov r1, r7
mov r2, r6
- bl FUN_02205248
+ bl MOD04_02205248
cmp r0, r5
addeq sp, sp, #0xc
moveq r0, #5
@@ -51281,13 +51287,13 @@ _02205234: .word 0x0220F840
_02205238: .word 0x0220F830
_0220523C: .word 0x000004AF
- arm_func_start FUN_02205240
-FUN_02205240: ; 0x02205240
+ arm_func_start MOD04_02205240
+MOD04_02205240: ; 0x02205240
str r1, [r0, #0x4ac]
bx lr
- arm_func_start FUN_02205248
-FUN_02205248: ; 0x02205248
+ arm_func_start MOD04_02205248
+MOD04_02205248: ; 0x02205248
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov r4, r2
@@ -51299,7 +51305,7 @@ FUN_02205248: ; 0x02205248
ldmltia sp!, {r4, r5, r6, r7, r8, pc}
ldrb r7, [r5]
mov r0, r7
- bl FUN_02205884
+ bl MOD04_02205884
mov r8, r0
cmp r4, r8
addlt sp, sp, #0x10
@@ -51310,7 +51316,7 @@ FUN_02205248: ; 0x02205248
mov r0, r6
add r1, r5, r8
sub r2, r4, r8
- bl FUN_022056DC
+ bl MOD04_022056DC
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
@@ -51320,7 +51326,7 @@ _022052B4:
beq _022052D8
add r0, r5, r8
sub r1, r4, r8
- bl FUN_022057EC
+ bl MOD04_022057EC
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
@@ -51340,13 +51346,13 @@ _022052D8:
mov r1, r5
mov r2, r4
str r7, [sp]
- bl FUN_02205650
+ bl MOD04_02205650
ldrh r2, [sp, #4]
ldr r1, [sp, #8]
mov r0, r6
- bl FUN_022033F4
+ bl MOD04_022033F4
mov r7, r0
- bl FUN_022033AC
+ bl MOD04_022033AC
cmp r0, #0
addne sp, sp, #0x10
mvnne r0, #1
@@ -51357,19 +51363,19 @@ _022052D8:
mov r2, r5
mov r3, r4
str ip, [sp]
- bl FUN_02205378
+ bl MOD04_02205378
mov r4, r0
mov r0, r6
mov r1, r7
- bl FUN_02206704
+ bl MOD04_02206704
mov r0, r4
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_02205374: .word 0x0220F84C
- arm_func_start FUN_02205378
-FUN_02205378: ; 0x02205378
+ arm_func_start MOD04_02205378
+MOD04_02205378: ; 0x02205378
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x14
mov r8, r2
@@ -51382,7 +51388,7 @@ FUN_02205378: ; 0x02205378
mov r1, r2
str r7, [sp]
ldr r6, [sp, #0x38]
- bl FUN_022033EC
+ bl MOD04_022033EC
ldr r0, [sp, #4]
add r8, r8, #5
ands r0, r0, #0x10
@@ -51423,7 +51429,7 @@ _02205438:
ldrh r2, [sp, #0xa]
ldr r1, [sp, #0xc]
mov r0, sb
- bl FUN_022033E0
+ bl MOD04_022033E0
ldr r0, [sp, #4]
ands r0, r0, #8
beq _0220548C
@@ -51440,13 +51446,13 @@ _02205438:
strb r2, [r3, #2]
strb r1, [r3, #3]
ldr r1, [sp, #0xc]
- bl FUN_022033D8
+ bl MOD04_022033D8
_0220548C:
ldr r0, [sp, #4]
ands r0, r0, #0x40
beq _022055C4
ldr r0, [sl, #8]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r5, r0
cmp r5, #0
mov r4, #0
@@ -51455,7 +51461,7 @@ _0220548C:
_022054B4:
ldr r0, [sl, #8]
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
mov r1, r0
ldr r0, [r1, #4]
cmp r0, #0
@@ -51469,7 +51475,7 @@ _022054E4:
ldrb r2, [r8]
ldr r1, [r1]
mov r0, sb
- bl FUN_02203A48
+ bl MOD04_02203A48
add r8, r8, #1
sub r7, r7, #1
b _022055A0
@@ -51489,7 +51495,7 @@ _02205500:
orr r2, r2, r3
mov r2, r2, lsl #0x10
mov r2, r2, lsr #0x10
- bl FUN_02203A48
+ bl MOD04_02203A48
add r8, r8, #2
sub r7, r7, #2
b _022055A0
@@ -51503,7 +51509,7 @@ _0220554C:
ldr r1, [r1]
mov r0, sb
mov r2, r8
- bl FUN_02203A80
+ bl MOD04_02203A80
mov r0, r8
bl strlen
add r0, r0, #1
@@ -51515,18 +51521,18 @@ _0220558C:
ldr r1, [r1]
ldr r2, [r0, #0x84]
mov r0, sb
- bl FUN_02203A80
+ bl MOD04_02203A80
_022055A0:
add r4, r4, #1
cmp r4, r5
blt _022054B4
_022055AC:
mov r0, sb
- bl FUN_022033C8
+ bl MOD04_022033C8
orr r1, r0, #1
mov r0, sb
and r1, r1, #0xff
- bl FUN_022033D0
+ bl MOD04_022033D0
_022055C4:
ldr r0, [sp, #4]
ands r0, r0, #0x80
@@ -51542,7 +51548,7 @@ _022055D4:
mov r1, r4
mov r2, r8
sub r7, r7, r3
- bl FUN_02203A80
+ bl MOD04_02203A80
mov r0, r8
bl strlen
add r0, r0, #1
@@ -51557,19 +51563,19 @@ _02205610:
_02205624:
mov r0, sb
sub r7, r7, #1
- bl FUN_022033C8
+ bl MOD04_022033C8
orr r1, r0, #2
mov r0, sb
and r1, r1, #0xff
- bl FUN_022033D0
+ bl MOD04_022033D0
_02205640:
ldr r0, [sp]
sub r0, r0, r7
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02205650
-FUN_02205650: ; 0x02205650
+ arm_func_start MOD04_02205650
+MOD04_02205650: ; 0x02205650
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
cmp r2, #5
@@ -51607,15 +51613,15 @@ _022056C4:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_022056DC
-FUN_022056DC: ; 0x022056DC
+ arm_func_start MOD04_022056DC
+MOD04_022056DC: ; 0x022056DC
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov r8, r0
ldr r0, [r8, #8]
mov r7, r1
mov r6, r2
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r5, r0
cmp r5, #0
mov r4, #0
@@ -51624,7 +51630,7 @@ FUN_022056DC: ; 0x022056DC
_0220570C:
ldr r0, [r8, #8]
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r0, [r0, #4]
cmp r0, #0
beq _02205750
@@ -51652,7 +51658,7 @@ _02205750:
bne _022057B8
mov r0, r7
mov r1, r6
- bl FUN_02206378
+ bl MOD04_02206378
cmp r0, sb
addeq sp, sp, #4
moveq r0, #0
@@ -51686,8 +51692,8 @@ _022057E0: .word 0x0220F854
_022057E4: .word 0x0220F830
_022057E8: .word 0x00000317
- arm_func_start FUN_022057EC
-FUN_022057EC: ; 0x022057EC
+ arm_func_start MOD04_022057EC
+MOD04_022057EC: ; 0x022057EC
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -51696,7 +51702,7 @@ FUN_022057EC: ; 0x022057EC
_02205800:
mov r0, r5
mov r1, r4
- bl FUN_02206378
+ bl MOD04_02206378
cmp r0, #0
addlt sp, sp, #4
movlt r0, #0
@@ -51705,7 +51711,7 @@ _02205800:
add r5, r5, r0
mov r0, r5
mov r1, r4
- bl FUN_02206378
+ bl MOD04_02206378
cmp r0, #0
addlt sp, sp, #4
movlt r0, #0
@@ -51730,8 +51736,8 @@ _0220585C:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02205884
-FUN_02205884: ; 0x02205884
+ arm_func_start MOD04_02205884
+MOD04_02205884: ; 0x02205884
mov r2, #5
ands r1, r0, #2
addne r2, r2, #4
@@ -51744,8 +51750,8 @@ FUN_02205884: ; 0x02205884
mov r0, r2
bx lr
- arm_func_start FUN_022058B0
-FUN_022058B0: ; 0x022058B0
+ arm_func_start MOD04_022058B0
+MOD04_022058B0: ; 0x022058B0
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov sb, r0
@@ -51787,38 +51793,38 @@ _0220593C:
add r1, sb, #0x74
add r0, sb, r0
mov r2, #8
- bl FUN_022028B0
+ bl MOD04_022028B0
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_02205958: .word 0x000004BC
- arm_func_start FUN_0220595C
-FUN_0220595C: ; 0x0220595C
+ arm_func_start MOD04_0220595C
+MOD04_0220595C: ; 0x0220595C
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_02205994
+ bl MOD04_02205994
mov r0, r4
- bl FUN_022064BC
+ bl MOD04_022064BC
mov r0, r4
- bl FUN_02203AE4
+ bl MOD04_02203AE4
ldr r0, [r4, #4]
cmp r0, #0
beq _02205988
- bl FUN_021EF074
+ bl MOD04_021EF074
_02205988:
mov r0, #0
str r0, [r4, #4]
ldmia sp!, {r4, pc}
- arm_func_start FUN_02205994
-FUN_02205994: ; 0x02205994
+ arm_func_start MOD04_02205994
+MOD04_02205994: ; 0x02205994
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x7c]
cmp r0, #0
beq _022059AC
- bl FUN_021DD82C
+ bl MOD04_021DD82C
_022059AC:
mov r0, #0
str r0, [r4, #0x7c]
@@ -51827,22 +51833,22 @@ _022059AC:
mvn r1, #0
cmp r0, r1
beq _022059CC
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
_022059CC:
mvn r1, #0
mov r0, r4
str r1, [r4, #0x4b0]
mov r1, #1
str r1, [r4]
- bl FUN_022059F8
+ bl MOD04_022059F8
mvn r1, #0
mov r0, r4
str r1, [r4, #0x484]
- bl FUN_02205A68
+ bl MOD04_02205A68
ldmia sp!, {r4, pc}
- arm_func_start FUN_022059F8
-FUN_022059F8: ; 0x022059F8
+ arm_func_start MOD04_022059F8
+MOD04_022059F8: ; 0x022059F8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -51851,31 +51857,31 @@ FUN_022059F8: ; 0x022059F8
addeq sp, sp, #4
ldmeqia sp!, {r4, r5, pc}
mov r4, #0
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r0, #0
ble _02205A50
_02205A24:
ldr r0, [r5, #8]
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r1, [r0]
mov r0, r5
- bl FUN_022063A8
+ bl MOD04_022063A8
ldr r0, [r5, #8]
add r4, r4, #1
- bl FUN_021EF06C
+ bl MOD04_021EF06C
cmp r4, r0
blt _02205A24
_02205A50:
ldr r0, [r5, #8]
- bl FUN_021EF074
+ bl MOD04_021EF074
mov r0, #0
str r0, [r5, #8]
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02205A68
-FUN_02205A68: ; 0x02205A68
+ arm_func_start MOD04_02205A68
+MOD04_02205A68: ; 0x02205A68
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -51887,7 +51893,7 @@ _02205A84:
add r0, r5, r4, lsl #2
ldr r1, [r0, #0x84]
mov r0, r5
- bl FUN_022063A8
+ bl MOD04_022063A8
ldr r0, [r5, #0x480]
add r4, r4, #1
cmp r4, r0
@@ -51898,8 +51904,8 @@ _02205AA4:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02205AB4
-FUN_02205AB4: ; 0x02205AB4
+ arm_func_start MOD04_02205AB4
+MOD04_02205AB4: ; 0x02205AB4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #0x30c
mov r5, r0
@@ -51932,13 +51938,13 @@ _02205AEC:
movhi r0, #6
ldmhiia sp!, {r4, r5, r6, r7, pc}
mov r0, r5
- bl FUN_02205FF0
+ bl MOD04_02205FF0
cmp r0, #0
addne sp, sp, #0x30c
ldmneia sp!, {r4, r5, r6, r7, pc}
mov r0, r5
str r4, [r5, #0x5c4]
- bl FUN_02205DCC
+ bl MOD04_02205DCC
add r3, sp, #0xe
mov ip, #2
add r0, sp, #8
@@ -51946,40 +51952,40 @@ _02205AEC:
mov r1, #0
str ip, [sp, #4]
str r3, [sp, #8]
- bl FUN_02205F74
+ bl MOD04_02205F74
add r0, sp, #8
add r2, sp, #4
mov r1, #1
- bl FUN_02205F74
+ bl MOD04_02205F74
add r0, sp, #8
mov r1, #3
add r2, sp, #4
- bl FUN_02205F74
+ bl MOD04_02205F74
ldr r1, [r5, #0x4b8]
add r0, sp, #8
add r2, sp, #4
- bl FUN_02205F18
+ bl MOD04_02205F18
add r0, sp, #8
add r1, r5, #0xc
add r2, sp, #4
- bl FUN_02205F98
+ bl MOD04_02205F98
add r0, sp, #8
add r1, r5, #0x30
add r2, sp, #4
- bl FUN_02205F98
+ bl MOD04_02205F98
add r0, sp, #8
add r1, r5, #0x74
mov r2, #8
add r3, sp, #4
- bl FUN_02205EE4
+ bl MOD04_02205EE4
mov r1, r6
add r0, sp, #8
add r2, sp, #4
- bl FUN_02205F98
+ bl MOD04_02205F98
mov r1, r7
add r0, sp, #8
add r2, sp, #4
- bl FUN_02205F98
+ bl MOD04_02205F98
mov r1, r4, lsl #0x18
and ip, r1, #0xff000000
mov r1, r4, lsl #8
@@ -51993,14 +51999,14 @@ _02205AEC:
add r0, sp, #8
orr r1, ip, r1
add r2, sp, #4
- bl FUN_02205F18
+ bl MOD04_02205F18
ldr r0, [r5, #0x5c4]
ands r0, r0, #8
beq _02205C44
ldr r1, [r5, #0x4a4]
add r0, sp, #8
add r2, sp, #4
- bl FUN_02205F18
+ bl MOD04_02205F18
_02205C44:
ldr r0, [r5, #0x5c4]
ands r0, r0, #0x80
@@ -52008,7 +52014,7 @@ _02205C44:
ldr r1, [sp, #0x320]
add r0, sp, #8
add r2, sp, #4
- bl FUN_02205F18
+ bl MOD04_02205F18
_02205C60:
ldr r0, [sp, #4]
add r1, sp, #0
@@ -52028,11 +52034,11 @@ _02205C60:
strb r0, [r1, #1]
ldr r0, [r5, #0x4b0]
ldr r2, [sp, #4]
- bl FUN_021EFC24
+ bl MOD04_021EFC24
cmp r0, #0
bgt _02205CC8
mov r0, r5
- bl FUN_02205994
+ bl MOD04_02205994
add sp, sp, #0x30c
mov r0, #3
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -52045,7 +52051,7 @@ _02205CC8:
cmp r0, #0
bne _02205D0C
mov r0, #0x1000
- bl FUN_021DD860
+ bl MOD04_021DD860
str r0, [r5, #0x7c]
ldr r0, [r5, #0x7c]
cmp r0, #0
@@ -52064,8 +52070,8 @@ _02205D1C: .word 0x0220F830
_02205D20: .word 0x0000020A
_02205D24: .word 0x0220F878
- arm_func_start FUN_02205D28
-FUN_02205D28: ; 0x02205D28
+ arm_func_start MOD04_02205D28
+MOD04_02205D28: ; 0x02205D28
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov sl, r0
@@ -52080,24 +52086,24 @@ _02205D48:
mov r2, r8
mov r3, r5
sub r6, r6, #1
- bl FUN_021EFC24
+ bl MOD04_021EFC24
mov r7, r0
cmp r7, #0
bgt _02205DB8
cmp r6, #0
blt _02205DB8
mov r0, sl
- bl FUN_02205994
+ bl MOD04_02205994
mov r0, sl
mov r1, r5
mov r2, r5
mov r3, r4
str r5, [sp]
- bl FUN_02205AB4
+ bl MOD04_02205AB4
movs fp, r0
beq _02205DB0
mov r0, sl
- bl FUN_02206184
+ bl MOD04_02206184
add sp, sp, #4
mov r0, fp
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -52111,8 +52117,8 @@ _02205DB8:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02205DCC
-FUN_02205DCC: ; 0x02205DCC
+ arm_func_start MOD04_02205DCC
+MOD04_02205DCC: ; 0x02205DCC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov sl, r0
@@ -52189,8 +52195,8 @@ _02205EC8:
_02205EDC: .word 0x2C0B02C1
_02205EE0: .word 0x0000005D
- arm_func_start FUN_02205EE4
-FUN_02205EE4: ; 0x02205EE4
+ arm_func_start MOD04_02205EE4
+MOD04_02205EE4: ; 0x02205EE4
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r0, [r6]
@@ -52205,8 +52211,8 @@ FUN_02205EE4: ; 0x02205EE4
str r0, [r6]
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_02205F18
-FUN_02205F18: ; 0x02205F18
+ arm_func_start MOD04_02205F18
+MOD04_02205F18: ; 0x02205F18
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {lr}
sub sp, sp, #4
@@ -52231,8 +52237,8 @@ FUN_02205F18: ; 0x02205F18
add sp, sp, #0x10
bx lr
- arm_func_start FUN_02205F74
-FUN_02205F74: ; 0x02205F74
+ arm_func_start MOD04_02205F74
+MOD04_02205F74: ; 0x02205F74
ldr r3, [r0]
strb r1, [r3]
ldr r1, [r2]
@@ -52243,8 +52249,8 @@ FUN_02205F74: ; 0x02205F74
str r1, [r0]
bx lr
- arm_func_start FUN_02205F98
-FUN_02205F98: ; 0x02205F98
+ arm_func_start MOD04_02205F98
+MOD04_02205F98: ; 0x02205F98
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r7, r1
@@ -52269,14 +52275,14 @@ FUN_02205F98: ; 0x02205F98
.align 2, 0
_02205FEC: .word 0x0220F878
- arm_func_start FUN_02205FF0
-FUN_02205FF0: ; 0x02205FF0
+ arm_func_start MOD04_02205FF0
+MOD04_02205FF0: ; 0x02205FF0
stmdb sp!, {r4, lr}
sub sp, sp, #0x88
mov r4, r0
add r0, r4, #0xc
mov r1, #0x14
- bl FUN_02206124
+ bl MOD04_02206124
ldr r1, _02206118 ; =0x0221173C
mov r3, r0
ldr r1, [r1]
@@ -52296,7 +52302,7 @@ _02206038:
add r0, sp, #8
strb r2, [sp, #1]
strh r1, [sp, #2]
- bl FUN_021EFB38
+ bl MOD04_021EFB38
mvn r1, #0
str r0, [sp, #4]
cmp r0, r1
@@ -52326,7 +52332,7 @@ _022060A4:
mov r0, #2
mov r1, #1
mov r2, #0
- bl FUN_021EFDB8
+ bl MOD04_021EFDB8
str r0, [r4, #0x4b0]
ldr r0, [r4, #0x4b0]
mvn r1, #0
@@ -52337,13 +52343,13 @@ _022060A4:
_022060E0:
add r1, sp, #0
mov r2, #8
- bl FUN_021EFCE4
+ bl MOD04_021EFCE4
cmp r0, #0
addeq sp, sp, #0x88
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4, #0x4b0]
- bl FUN_021EFD9C
+ bl MOD04_021EFD9C
mvn r0, #0
str r0, [r4, #0x4b0]
mov r0, #3
@@ -52354,8 +52360,8 @@ _02206118: .word 0x0221173C
_0220611C: .word 0x0220F87C
_02206120: .word 0x0000EE70
- arm_func_start FUN_02206124
-FUN_02206124: ; 0x02206124
+ arm_func_start MOD04_02206124
+MOD04_02206124: ; 0x02206124
stmdb sp!, {lr}
sub sp, sp, #4
ldrsb lr, [r0]
@@ -52385,8 +52391,8 @@ _02206168:
_0220617C: .word 0x0210420C
_02206180: .word 0x9CCF9319
- arm_func_start FUN_02206184
-FUN_02206184: ; 0x02206184
+ arm_func_start MOD04_02206184
+MOD04_02206184: ; 0x02206184
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r4, r0
@@ -52415,7 +52421,7 @@ FUN_02206184: ; 0x02206184
mov r1, r0
mov r0, r4
add r1, r7, r1
- bl FUN_02205240
+ bl MOD04_02205240
ldr r0, _02206244 ; =0x02211738
ldr r3, [r4, #0x494]
ldr r2, [r0]
@@ -52432,15 +52438,15 @@ _02206214:
mov r1, #4
blx ip
mov r0, r4
- bl FUN_02205994
+ bl MOD04_02205994
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
_02206240: .word 0x0220F804
_02206244: .word 0x02211738
- arm_func_start FUN_02206248
-FUN_02206248: ; 0x02206248
+ arm_func_start MOD04_02206248
+MOD04_02206248: ; 0x02206248
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r7, r0
@@ -52466,9 +52472,9 @@ _02206298:
mov r1, #1
mov r0, r7
str r1, [r7]
- bl FUN_02206494
+ bl MOD04_02206494
mov r0, r7
- bl FUN_02203B34
+ bl MOD04_02203B34
mov r1, r6
add r0, r7, #0xc
bl strcpy
@@ -52506,12 +52512,12 @@ _022062FC:
str r3, [r7, #0x4a4]
mov r0, r7
str r2, [r7, #0x4b8]
- bl FUN_02205240
+ bl MOD04_02205240
mov r0, #0
str r0, [r7, #0x5cc]
- bl FUN_021F025C
+ bl MOD04_021F025C
bl srand
- bl FUN_021F024C
+ bl MOD04_021F024C
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
.align 2, 0
@@ -52522,8 +52528,8 @@ _0220636C: .word 0x0220F8A8
_02206370: .word 0x00000132
_02206374: .word 0x0220F878
- arm_func_start FUN_02206378
-FUN_02206378: ; 0x02206378
+ arm_func_start MOD04_02206378
+MOD04_02206378: ; 0x02206378
cmp r1, #0
mov r3, #0
ble _022063A0
@@ -52539,15 +52545,15 @@ _022063A0:
mvn r0, #0
bx lr
- arm_func_start FUN_022063A8
-FUN_022063A8: ; 0x022063A8
+ arm_func_start MOD04_022063A8
+MOD04_022063A8: ; 0x022063A8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
str r1, [sp]
- bl FUN_02203B34
+ bl MOD04_02203B34
add r1, sp, #0
- bl FUN_021EF358
+ bl MOD04_021EF358
movs r4, r0
bne _022063E0
ldr r0, _02206420 ; =0x0220F8BC
@@ -52567,25 +52573,25 @@ _022063E0:
addne sp, sp, #0xc
ldmneia sp!, {r4, r5, pc}
mov r0, r5
- bl FUN_02203B34
+ bl MOD04_02203B34
add r1, sp, #0
- bl FUN_021EF3F4
+ bl MOD04_021EF3F4
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
.align 2, 0
_02206420: .word 0x0220F8BC
_02206424: .word 0x0220F830
- arm_func_start FUN_02206428
-FUN_02206428: ; 0x02206428
+ arm_func_start MOD04_02206428
+MOD04_02206428: ; 0x02206428
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r4, r1
mov r5, r0
str r4, [sp]
- bl FUN_02203B34
+ bl MOD04_02203B34
add r1, sp, #0
- bl FUN_021EF358
+ bl MOD04_021EF358
cmp r0, #0
ldrne r1, [r0, #4]
addne sp, sp, #0xc
@@ -52594,37 +52600,37 @@ FUN_02206428: ; 0x02206428
ldrne r0, [r0]
ldmneia sp!, {r4, r5, pc}
mov r0, r4
- bl FUN_021F0208
+ bl MOD04_021F0208
str r0, [sp]
mov r1, #1
mov r0, r5
str r1, [sp, #4]
- bl FUN_02203B34
+ bl MOD04_02203B34
add r1, sp, #0
- bl FUN_021EF494
+ bl MOD04_021EF494
ldr r0, [sp]
add sp, sp, #0xc
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02206494
-FUN_02206494: ; 0x02206494
+ arm_func_start MOD04_02206494
+MOD04_02206494: ; 0x02206494
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #4
mov r1, #0x64
mov r2, #0
- bl FUN_021EF0E4
+ bl MOD04_021EF0E4
str r0, [r4, #4]
mov r0, #0
str r0, [r4, #0x5d0]
ldmia sp!, {r4, pc}
- arm_func_start FUN_022064BC
-FUN_022064BC: ; 0x022064BC
+ arm_func_start MOD04_022064BC
+MOD04_022064BC: ; 0x022064BC
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r0, [r6, #4]
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r4, r0
cmp r4, #0
mov r5, #0
@@ -52632,22 +52638,22 @@ FUN_022064BC: ; 0x022064BC
_022064DC:
ldr r0, [r6, #4]
mov r1, r5
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r1, [r0]
mov r0, r6
- bl FUN_022065E8
+ bl MOD04_022065E8
add r5, r5, #1
cmp r5, r4
blt _022064DC
_02206500:
ldr r0, [r6, #4]
- bl FUN_021EEB28
+ bl MOD04_021EEB28
mov r0, r6
- bl FUN_02206514
+ bl MOD04_02206514
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_02206514
-FUN_02206514: ; 0x02206514
+ arm_func_start MOD04_02206514
+MOD04_02206514: ; 0x02206514
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r6, r0
@@ -52661,10 +52667,10 @@ FUN_02206514: ; 0x02206514
add r4, sp, #0
_02206540:
ldr r0, [sp]
- bl FUN_02203888
+ bl MOD04_02203888
mov r5, r0
mov r0, r4
- bl FUN_02203AC0
+ bl MOD04_02203AC0
str r5, [sp]
cmp r5, #0
bne _02206540
@@ -52674,28 +52680,28 @@ _02206560:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_02206570
-FUN_02206570: ; 0x02206570
+ arm_func_start MOD04_02206570
+MOD04_02206570: ; 0x02206570
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, [r0, #4]
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r0, [r0]
add sp, sp, #4
ldmfd sp!, {pc}
- ldr ip, _02206598 ; =FUN_021EF06C
+ ldr ip, _02206598 ; =MOD04_021EF06C
ldr r0, [r0, #4]
bx ip
.align 2, 0
-_02206598: .word FUN_021EF06C
+_02206598: .word MOD04_021EF06C
- arm_func_start FUN_0220659C
-FUN_0220659C: ; 0x0220659C
+ arm_func_start MOD04_0220659C
+MOD04_0220659C: ; 0x0220659C
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
ldr r0, [r6, #4]
mov r5, r1
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r4, [r0]
ldr r3, [r6, #0x494]
ldr ip, [r6, #0x488]
@@ -52705,14 +52711,14 @@ FUN_0220659C: ; 0x0220659C
blx ip
ldr r0, [r6, #4]
mov r1, r5
- bl FUN_021EED84
+ bl MOD04_021EED84
mov r0, r6
mov r1, r4
- bl FUN_022065E8
+ bl MOD04_022065E8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_022065E8
-FUN_022065E8: ; 0x022065E8
+ arm_func_start MOD04_022065E8
+MOD04_022065E8: ; 0x022065E8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -52722,25 +52728,25 @@ FUN_022065E8: ; 0x022065E8
bne _02206614
mov r0, r4
mov r1, #0
- bl FUN_02203890
+ bl MOD04_02203890
b _0220661C
_02206614:
mov r0, r4
- bl FUN_02203890
+ bl MOD04_02203890
_0220661C:
str r4, [r5, #0x5d0]
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
- arm_func_start FUN_02206628
-FUN_02206628: ; 0x02206628
+ arm_func_start MOD04_02206628
+MOD04_02206628: ; 0x02206628
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov sb, r0
ldr r0, [sb, #4]
mov r8, r1
mov r7, r2
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r6, r0
cmp r6, #0
mov r4, #0
@@ -52748,14 +52754,14 @@ FUN_02206628: ; 0x02206628
_02206654:
ldr r0, [sb, #4]
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r5, [r0]
mov r0, r5
- bl FUN_02203908
+ bl MOD04_02203908
cmp r8, r0
bne _0220668C
mov r0, r5
- bl FUN_022038DC
+ bl MOD04_022038DC
cmp r7, r0
addeq sp, sp, #4
moveq r0, r4
@@ -52769,14 +52775,14 @@ _02206698:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_022066A4
-FUN_022066A4: ; 0x022066A4
+ arm_func_start MOD04_022066A4
+MOD04_022066A4: ; 0x022066A4
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
ldr r0, [r7, #4]
mov r6, r1
- bl FUN_021EF06C
+ bl MOD04_021EF06C
mov r5, r0
cmp r5, #0
mov r4, #0
@@ -52784,7 +52790,7 @@ FUN_022066A4: ; 0x022066A4
_022066CC:
ldr r0, [r7, #4]
mov r1, r4
- bl FUN_021EEFFC
+ bl MOD04_021EEFFC
ldr r0, [r0]
cmp r6, r0
addeq sp, sp, #4
@@ -52798,14 +52804,14 @@ _022066F8:
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
- arm_func_start FUN_02206704
-FUN_02206704: ; 0x02206704
+ arm_func_start MOD04_02206704
+MOD04_02206704: ; 0x02206704
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #4]
add r1, sp, #0xc
- bl FUN_021EEFA8
+ bl MOD04_021EEFA8
ldr r2, [sp, #0xc]
ldr r3, [r4, #0x494]
ldr ip, [r4, #0x488]
@@ -52816,8 +52822,8 @@ FUN_02206704: ; 0x02206704
add sp, sp, #0x10
bx lr
- arm_func_start FUN_02206740
-FUN_02206740: ; 0x02206740
+ arm_func_start MOD04_02206740
+MOD04_02206740: ; 0x02206740
cmp r3, #3
addls pc, pc, r3, lsl #2
b _0220677C
@@ -52827,38 +52833,38 @@ _0220674C: ; jump table
b _0220676C ; case 2
b _02206774 ; case 3
_0220675C:
- ldr r3, _022067A0 ; =FUN_02206978
+ ldr r3, _022067A0 ; =MOD04_02206978
b _02206780
_02206764:
- ldr r3, _022067A4 ; =FUN_02206898
+ ldr r3, _022067A4 ; =MOD04_02206898
b _02206780
_0220676C:
- ldr r3, _022067A8 ; =FUN_02206828
+ ldr r3, _022067A8 ; =MOD04_02206828
b _02206780
_02206774:
- ldr r3, _022067AC ; =FUN_022067B8
+ ldr r3, _022067AC ; =MOD04_022067B8
b _02206780
_0220677C:
- ldr r3, _022067AC ; =FUN_022067B8
+ ldr r3, _022067AC ; =MOD04_022067B8
_02206780:
str r2, [r0, #0x498]
str r1, [r0, #0x49c]
ldr r2, _022067B0 ; =0x02211740
- ldr ip, _022067B4 ; =FUN_021EED08
+ ldr ip, _022067B4 ; =MOD04_021EED08
str r0, [r2]
mov r1, r3
ldr r0, [r0, #4]
bx ip
.align 2, 0
-_022067A0: .word FUN_02206978
-_022067A4: .word FUN_02206898
-_022067A8: .word FUN_02206828
-_022067AC: .word FUN_022067B8
+_022067A0: .word MOD04_02206978
+_022067A4: .word MOD04_02206898
+_022067A8: .word MOD04_02206828
+_022067AC: .word MOD04_022067B8
_022067B0: .word 0x02211740
-_022067B4: .word FUN_021EED08
+_022067B4: .word MOD04_021EED08
- arm_func_start FUN_022067B8
-FUN_022067B8: ; 0x022067B8
+ arm_func_start MOD04_022067B8
+MOD04_022067B8: ; 0x022067B8
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r2, _02206820 ; =0x02211740
@@ -52867,14 +52873,14 @@ FUN_022067B8: ; 0x022067B8
ldr r0, [r0]
ldr r1, [r1, #0x498]
ldr r2, _02206824 ; =0x0220F878
- bl FUN_022039E0
+ bl MOD04_022039E0
ldr r1, _02206820 ; =0x02211740
mov r4, r0
ldr r1, [r1]
ldr r0, [r5]
ldr r1, [r1, #0x498]
ldr r2, _02206824 ; =0x0220F878
- bl FUN_022039E0
+ bl MOD04_022039E0
mov r1, r0
mov r0, r4
bl strnicmp
@@ -52889,8 +52895,8 @@ FUN_022067B8: ; 0x022067B8
_02206820: .word 0x02211740
_02206824: .word 0x0220F878
- arm_func_start FUN_02206828
-FUN_02206828: ; 0x02206828
+ arm_func_start MOD04_02206828
+MOD04_02206828: ; 0x02206828
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r2, _02206890 ; =0x02211740
@@ -52899,14 +52905,14 @@ FUN_02206828: ; 0x02206828
ldr r0, [r0]
ldr r1, [r1, #0x498]
ldr r2, _02206894 ; =0x0220F878
- bl FUN_022039E0
+ bl MOD04_022039E0
ldr r1, _02206890 ; =0x02211740
mov r4, r0
ldr r1, [r1]
ldr r0, [r5]
ldr r1, [r1, #0x498]
ldr r2, _02206894 ; =0x0220F878
- bl FUN_022039E0
+ bl MOD04_022039E0
mov r1, r0
mov r0, r4
bl strcmp
@@ -52921,8 +52927,8 @@ FUN_02206828: ; 0x02206828
_02206890: .word 0x02211740
_02206894: .word 0x0220F878
- arm_func_start FUN_02206898
-FUN_02206898: ; 0x02206898
+ arm_func_start MOD04_02206898
+MOD04_02206898: ; 0x02206898
stmdb sp!, {r4, r5, r6, lr}
ldr r3, _02206974 ; =0x02211740
mov r2, #0
@@ -52931,7 +52937,7 @@ FUN_02206898: ; 0x02206898
ldr r0, [r0]
ldr r1, [r3, #0x498]
mov r3, r2
- bl FUN_02203910
+ bl MOD04_02203910
ldr r3, _02206974 ; =0x02211740
mov r2, #0
mov r4, r0
@@ -52940,7 +52946,7 @@ FUN_02206898: ; 0x02206898
ldr r1, [r0, #0x498]
mov r0, r5
mov r3, r2
- bl FUN_02203910
+ bl MOD04_02203910
mov r2, r0
mov r3, r1
mov r0, r4
@@ -52982,8 +52988,8 @@ _0220692C:
.align 2, 0
_02206974: .word 0x02211740
- arm_func_start FUN_02206978
-FUN_02206978: ; 0x02206978
+ arm_func_start MOD04_02206978
+MOD04_02206978: ; 0x02206978
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r2, _022069D8 ; =0x02211740
@@ -52992,14 +52998,14 @@ FUN_02206978: ; 0x02206978
ldr r5, [r1]
ldr r1, [r2, #0x498]
mov r2, #0
- bl FUN_0220394C
+ bl MOD04_0220394C
ldr r1, _022069D8 ; =0x02211740
mov r4, r0
ldr r1, [r1]
mov r0, r5
ldr r1, [r1, #0x498]
mov r2, #0
- bl FUN_0220394C
+ bl MOD04_0220394C
ldr r1, _022069D8 ; =0x02211740
sub r0, r4, r0
ldr r1, [r1]
@@ -53011,40 +53017,40 @@ FUN_02206978: ; 0x02206978
.align 2, 0
_022069D8: .word 0x02211740
- arm_func_start FUN_022069DC
-FUN_022069DC: ; 0x022069DC
+ arm_func_start MOD04_022069DC
+MOD04_022069DC: ; 0x022069DC
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
mov r5, r1
mov r4, r2
- bl FUN_02208364
- bl FUN_02206B14
+ bl MOD04_02208364
+ bl MOD04_02206B14
mov r1, r6
mov r0, #0
- bl FUN_02206A4C
+ bl MOD04_02206A4C
cmp r0, #0
beq _02206A3C
mov r1, r5
mov r0, #1
- bl FUN_02206A4C
+ bl MOD04_02206A4C
cmp r0, #0
beq _02206A3C
mov r1, r4
mov r0, #2
- bl FUN_02206A4C
+ bl MOD04_02206A4C
cmp r0, #0
beq _02206A3C
- bl FUN_02208350
+ bl MOD04_02208350
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_02206A3C:
- bl FUN_02206B14
- bl FUN_02208350
+ bl MOD04_02206B14
+ bl MOD04_02208350
mov r0, #0
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_02206A4C
-FUN_02206A4C: ; 0x02206A4C
+ arm_func_start MOD04_02206A4C
+MOD04_02206A4C: ; 0x02206A4C
stmdb sp!, {r4, r5, r6, lr}
mov r6, r1
ldrsb r1, [r6]
@@ -53052,7 +53058,7 @@ FUN_02206A4C: ; 0x02206A4C
cmp r1, #0
beq _02206B00
mov r0, r6
- bl FUN_022083D4
+ bl MOD04_022083D4
cmp r0, #0xa
ldrgt r0, _02206B08 ; =0x02211760
movgt r1, #7
@@ -53060,7 +53066,7 @@ FUN_02206A4C: ; 0x02206A4C
movgt r0, #0
ldmgtia sp!, {r4, r5, r6, pc}
mov r0, r6
- bl FUN_022083D4
+ bl MOD04_022083D4
mov r5, r0
cmp r5, #0xa
ldrgt r0, _02206B08 ; =0x02211760
@@ -53068,7 +53074,7 @@ FUN_02206A4C: ; 0x02206A4C
strgt r1, [r0]
movgt r0, #0
ldmgtia sp!, {r4, r5, r6, pc}
- bl FUN_02206DA4
+ bl MOD04_02206DA4
ldr r1, _02206B0C ; =0x02211750
add r0, r0, #1
ldr r2, [r1]
@@ -53085,7 +53091,7 @@ FUN_02206A4C: ; 0x02206A4C
ldmeqia sp!, {r4, r5, r6, pc}
mov r1, r6
mov r2, r5
- bl FUN_02206C98
+ bl MOD04_02206C98
ldr r1, _02206B10 ; =0x02211778
mov r2, #0
ldr r1, [r1, r4, lsl #2]
@@ -53098,8 +53104,8 @@ _02206B08: .word 0x02211760
_02206B0C: .word 0x02211750
_02206B10: .word 0x02211778
- arm_func_start FUN_02206B14
-FUN_02206B14: ; 0x02206B14
+ arm_func_start MOD04_02206B14
+MOD04_02206B14: ; 0x02206B14
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, #0
@@ -53123,8 +53129,8 @@ _02206B44:
_02206B58: .word 0x02211764
_02206B5C: .word 0x02211778
- arm_func_start FUN_02206B60
-FUN_02206B60: ; 0x02206B60
+ arm_func_start MOD04_02206B60
+MOD04_02206B60: ; 0x02206B60
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
mov sl, r0
@@ -53133,7 +53139,7 @@ FUN_02206B60: ; 0x02206B60
mov r2, #4
mov r5, #0
mov sb, r1
- bl FUN_02206E28
+ bl MOD04_02206E28
mov r7, r5
mov r6, r0
mov r4, r7
@@ -53145,13 +53151,13 @@ _02206B9C:
strb r4, [sp, #8]
strb r4, [sp, #9]
strb r4, [sp, #0xa]
- bl FUN_02206DD0
+ bl MOD04_02206DD0
movs r7, r0
bmi _02206C20
ldrb r0, [sp, #5]
mov r1, r7, lsl #2
strb r1, [sp, #8]
- bl FUN_02206DD0
+ bl MOD04_02206DD0
movs r7, r0
bmi _02206C20
ldrsb r2, [sp, #8]
@@ -53160,7 +53166,7 @@ _02206B9C:
strb r1, [sp, #9]
orr r1, r2, r7, asr #4
strb r1, [sp, #8]
- bl FUN_02206DD0
+ bl MOD04_02206DD0
movs r7, r0
bmi _02206C20
ldrsb r2, [sp, #9]
@@ -53169,7 +53175,7 @@ _02206B9C:
strb r1, [sp, #0xa]
orr r1, r2, r7, asr #2
strb r1, [sp, #9]
- bl FUN_02206DD0
+ bl MOD04_02206DD0
movs r7, r0
ldrplsb r0, [sp, #0xa]
orrpl r0, r0, r7
@@ -53196,7 +53202,7 @@ _02206C48:
add r0, sp, #4
mov r1, sb
mov r2, fp
- bl FUN_02206E28
+ bl MOD04_02206E28
mov r6, r0
_02206C74:
cmp r6, #0
@@ -53210,8 +53216,8 @@ _02206C84:
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02206C98
-FUN_02206C98: ; 0x02206C98
+ arm_func_start MOD04_02206C98
+MOD04_02206C98: ; 0x02206C98
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov r8, r2
@@ -53222,7 +53228,7 @@ FUN_02206C98: ; 0x02206C98
add r0, sp, #0
mov r1, sb
mov r7, #0
- bl FUN_02206E28
+ bl MOD04_02206E28
cmp r0, #0
ble _02206D8C
ldr r5, _02206DA0 ; =0x0220BCE8
@@ -53271,7 +53277,7 @@ _02206CDC:
movle r2, r8
add r0, sp, #0
mov r1, sb
- bl FUN_02206E28
+ bl MOD04_02206E28
cmp r0, #0
bgt _02206CDC
_02206D8C:
@@ -53283,8 +53289,8 @@ _02206D8C:
.align 2, 0
_02206DA0: .word 0x0220BCE8
- arm_func_start FUN_02206DA4
-FUN_02206DA4: ; 0x02206DA4
+ arm_func_start MOD04_02206DA4
+MOD04_02206DA4: ; 0x02206DA4
ldr r1, _02206DBC ; =0x55555556
add r2, r0, #2
smull r0, r3, r1, r2
@@ -53294,15 +53300,15 @@ FUN_02206DA4: ; 0x02206DA4
.align 2, 0
_02206DBC: .word 0x55555556
- arm_func_start FUN_02206DC0
-FUN_02206DC0: ; 0x02206DC0
+ arm_func_start MOD04_02206DC0
+MOD04_02206DC0: ; 0x02206DC0
mov r1, r0, asr #2
mov r0, #3
mul r0, r1, r0
bx lr
- arm_func_start FUN_02206DD0
-FUN_02206DD0: ; 0x02206DD0
+ arm_func_start MOD04_02206DD0
+MOD04_02206DD0: ; 0x02206DD0
cmp r0, #0x41
blo _02206DE4
cmp r0, #0x5a
@@ -53329,8 +53335,8 @@ _02206E0C:
mvnne r0, #0
bx lr
- arm_func_start FUN_02206E28
-FUN_02206E28: ; 0x02206E28
+ arm_func_start MOD04_02206E28
+MOD04_02206E28: ; 0x02206E28
stmdb sp!, {r4, lr}
mov lr, #0
mov r4, lr
@@ -53351,29 +53357,29 @@ _02206E64:
mov r0, lr
ldmia sp!, {r4, pc}
- arm_func_start FUN_02206E6C
-FUN_02206E6C: ; 0x02206E6C
+ arm_func_start MOD04_02206E6C
+MOD04_02206E6C: ; 0x02206E6C
ldr r1, _02206E8C ; =0x02211744
ldr r2, _02206E90 ; =0x02211758
str r0, [r1]
mov r1, #0
- ldr ip, _02206E94 ; =FUN_02208570
- ldr r0, _02206E98 ; =FUN_02206E9C
+ ldr ip, _02206E94 ; =MOD04_02208570
+ ldr r0, _02206E98 ; =MOD04_02206E9C
str r1, [r2]
bx ip
.align 2, 0
_02206E8C: .word 0x02211744
_02206E90: .word 0x02211758
-_02206E94: .word FUN_02208570
-_02206E98: .word FUN_02206E9C
+_02206E94: .word MOD04_02208570
+_02206E98: .word MOD04_02206E9C
- arm_func_start FUN_02206E9C
-FUN_02206E9C: ; 0x02206E9C
+ arm_func_start MOD04_02206E9C
+MOD04_02206E9C: ; 0x02206E9C
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_02206B14
- bl FUN_02208378
- bl FUN_0220831C
+ bl MOD04_02206B14
+ bl MOD04_02208378
+ bl MOD04_0220831C
ldr r0, _02206EEC ; =0x0221174C
ldr r1, _02206EF0 ; =0x02211764
ldr r0, [r0]
@@ -53395,8 +53401,8 @@ _02206EF0: .word 0x02211764
_02206EF4: .word 0x02211754
_02206EF8: .word 0x02211744
- arm_func_start FUN_02206EFC
-FUN_02206EFC: ; 0x02206EFC
+ arm_func_start MOD04_02206EFC
+MOD04_02206EFC: ; 0x02206EFC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
mov r7, r0
@@ -53427,17 +53433,17 @@ FUN_02206EFC: ; 0x02206EFC
str sb, [ip]
str r1, [sl]
str r1, [fp]
- bl FUN_02208228
+ bl MOD04_02208228
ldr r0, _022070F8 ; =0x022117CC
- bl FUN_02207194
+ bl MOD04_02207194
mov r0, r5
- bl FUN_0220710C
+ bl MOD04_0220710C
mov r1, fp
cmp r0, #0
str r0, [r1]
beq _02207080
mov r0, r4
- bl FUN_0220710C
+ bl MOD04_0220710C
mov r1, sl
cmp r0, #0
str r0, [r1]
@@ -53445,31 +53451,31 @@ FUN_02206EFC: ; 0x02206EFC
ldr r1, [sp, #0x28]
ldr r0, _022070FC ; =0x0221176C
mov r2, #4
- bl FUN_02206C98
+ bl MOD04_02206C98
ldr r1, _022070FC ; =0x0221176C
mov r2, #0
strb r2, [r1, r0]
ldr r1, [sp, #0x2c]
ldr r0, _02207100 ; =0x022117B0
mov r2, #0x10
- bl FUN_02206C98
+ bl MOD04_02206C98
ldr r1, _02207100 ; =0x022117B0
mov r2, #0
strb r2, [r1, r0]
- bl FUN_02208320
+ bl MOD04_02208320
cmp r0, #0
beq _02207040
- bl FUN_0220837C
+ bl MOD04_0220837C
cmp r0, #0
beq _02207040
mov r0, r7
mov r1, r6
mov r2, #0xa
- bl FUN_022085B8
+ bl MOD04_022085B8
cmp r0, #0
beq _0220703C
ldr r0, _02207104 ; =0x02211798
- bl FUN_0220724C
+ bl MOD04_0220724C
ldr r2, _022070E4 ; =0x02211748
ldr r1, _02207108 ; =0x02211758
str r0, [r2]
@@ -53478,7 +53484,7 @@ FUN_02206EFC: ; 0x02206EFC
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
_0220703C:
- bl FUN_02208378
+ bl MOD04_02208378
_02207040:
ldr r0, _022070E8 ; =0x0221174C
ldr r1, _022070D8 ; =0x02211764
@@ -53536,11 +53542,11 @@ _02207100: .word 0x022117B0
_02207104: .word 0x02211798
_02207108: .word 0x02211758
- arm_func_start FUN_0220710C
-FUN_0220710C: ; 0x0220710C
+ arm_func_start MOD04_0220710C
+MOD04_0220710C: ; 0x0220710C
stmdb sp!, {r4, r5, r6, lr}
mov r6, r0
- bl FUN_022083D4
+ bl MOD04_022083D4
ldr r1, _02207154 ; =0x02211750
mov r4, r0
ldr r2, [r1]
@@ -53551,7 +53557,7 @@ FUN_0220710C: ; 0x0220710C
beq _0220714C
mov r1, r6
mov r2, r4
- bl FUN_0220839C
+ bl MOD04_0220839C
mov r0, #0
strb r0, [r5, r4]
_0220714C:
@@ -53560,28 +53566,28 @@ _0220714C:
.align 2, 0
_02207154: .word 0x02211750
- arm_func_start FUN_02207158
-FUN_02207158: ; 0x02207158
+ arm_func_start MOD04_02207158
+MOD04_02207158: ; 0x02207158
stmdb sp!, {r4, lr}
- bl FUN_022082D4
+ bl MOD04_022082D4
cmp r0, #0
bne _02207184
- bl FUN_02208364
+ bl MOD04_02208364
ldr r0, _02207190 ; =0x02211768
ldr r4, [r0]
- bl FUN_02208350
+ bl MOD04_02208350
mov r0, r4
- bl FUN_02209218
+ bl MOD04_02209218
ldmia sp!, {r4, pc}
_02207184:
- bl FUN_022082A0
+ bl MOD04_022082A0
mov r0, #0
ldmia sp!, {r4, pc}
.align 2, 0
_02207190: .word 0x02211768
- arm_func_start FUN_02207194
-FUN_02207194: ; 0x02207194
+ arm_func_start MOD04_02207194
+MOD04_02207194: ; 0x02207194
stmdb sp!, {lr}
sub sp, sp, #4
ldr r2, _022071BC ; =0x0220F9B0
@@ -53595,15 +53601,15 @@ FUN_02207194: ; 0x02207194
.align 2, 0
_022071BC: .word 0x0220F9B0
- arm_func_start FUN_022071C0
-FUN_022071C0: ; 0x022071C0
+ arm_func_start MOD04_022071C0
+MOD04_022071C0: ; 0x022071C0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x24
mov r5, r0
mov r4, r1
add r0, sp, #0
mov r1, #0x14
- bl FUN_022083B4
+ bl MOD04_022083B4
add r0, sp, #0
bl FUN_02095EC8
ldr r1, [sp]
@@ -53615,7 +53621,7 @@ FUN_022071C0: ; 0x022071C0
ldmeqia sp!, {r4, r5, pc}
add r0, sp, #0x14
mov r3, #0xd
- bl FUN_0220844C
+ bl MOD04_0220844C
cmp r0, #0
addlt sp, sp, #0x24
movlt r0, #0
@@ -53623,19 +53629,19 @@ FUN_022071C0: ; 0x022071C0
add r1, sp, #0x14
mov r0, r4
mov r2, #0xd
- bl FUN_02206C98
+ bl MOD04_02206C98
ldr r1, _02207248 ; =0x027FFE0C
mov r0, r5
mov r2, #4
- bl FUN_02206C98
+ bl MOD04_02206C98
mov r0, #1
add sp, sp, #0x24
ldmia sp!, {r4, r5, pc}
.align 2, 0
_02207248: .word 0x027FFE0C
- arm_func_start FUN_0220724C
-FUN_0220724C: ; 0x0220724C
+ arm_func_start MOD04_0220724C
+MOD04_0220724C: ; 0x0220724C
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
ldr ip, _02207324 ; =0x0220BD2C
@@ -53652,7 +53658,7 @@ _02207264:
ldrb r1, [ip]
ldr r0, _02207328 ; =0x022117F0
strb r1, [r3]
- bl FUN_021DD9DC
+ bl MOD04_021DD9DC
cmp r0, #0
beq _02207318
ldr r0, _02207328 ; =0x022117F0
@@ -53662,7 +53668,7 @@ _02207264:
cmp r1, #0xa
blt _022072B8
add r0, sp, #0
- bl FUN_02208558
+ bl MOD04_02208558
b _022072CC
_022072B8:
cmp r1, #0
@@ -53682,12 +53688,12 @@ _022072CC:
add r0, sp, #4
mov r2, #9
strb r3, [sp, #3]
- bl FUN_0220839C
+ bl MOD04_0220839C
_022072FC:
add r1, sp, #0
mov r0, r4
mov r2, #0xd
- bl FUN_02206C98
+ bl MOD04_02206C98
add sp, sp, #0x10
mov r0, #1
ldmia sp!, {r4, pc}
@@ -53700,15 +53706,15 @@ _02207324: .word 0x0220BD2C
_02207328: .word 0x022117F0
_0220732C: .word 0x022117F8
- arm_func_start FUN_02207330
-FUN_02207330: ; 0x02207330
- ldr ip, _02207338 ; =FUN_0220B55C
+ arm_func_start MOD04_02207330
+MOD04_02207330: ; 0x02207330
+ ldr ip, _02207338 ; =MOD04_0220B55C
bx ip
.align 2, 0
-_02207338: .word FUN_0220B55C
+_02207338: .word MOD04_0220B55C
- arm_func_start FUN_0220733C
-FUN_0220733C: ; 0x0220733C
+ arm_func_start MOD04_0220733C
+MOD04_0220733C: ; 0x0220733C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov r8, r0
@@ -53721,7 +53727,7 @@ FUN_0220733C: ; 0x0220733C
addlo sp, sp, #0x10
movlo r0, #0
ldmloia sp!, {r4, r5, r6, r7, r8, pc}
- bl FUN_022083D4
+ bl MOD04_022083D4
mov r5, r0
cmp r5, #0x20
ldrgt r0, _022074D8 ; =0x02211760
@@ -53733,7 +53739,7 @@ FUN_0220733C: ; 0x0220733C
cmp r5, #0
movle r6, #0
ble _022073A4
- bl FUN_02206DA4
+ bl MOD04_02206DA4
mov r6, r0
_022073A4:
ldr r1, _022074DC ; =0x02211750
@@ -53754,7 +53760,7 @@ _022073A4:
add r1, sp, #8
mov r3, r7
str ip, [sp]
- bl FUN_0220788C
+ bl MOD04_0220788C
cmp r0, #0
bne _02207414
ldr r1, _022074E4 ; =0x02211764
@@ -53770,13 +53776,13 @@ _02207414:
mov r0, r4
mov r1, r8
mov r2, r5
- bl FUN_02206C98
+ bl MOD04_02206C98
mov r1, #0
strb r1, [r4, r0]
ldr r0, [sp, #8]
ldr r1, _022074E8 ; =0x0220F9CC
mov r2, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _022074A4
_0220744C:
@@ -53790,7 +53796,7 @@ _0220744C:
str r1, [r0, #0x14]
ldr r0, [sp, #4]
ldr r1, [sp, #8]
- bl FUN_0220781C
+ bl MOD04_0220781C
cmp r0, #0
addne sp, sp, #0x10
movne r0, #1
@@ -53805,7 +53811,7 @@ _0220744C:
_022074A4:
ldr r0, [sp, #4]
ldr r1, [sp, #8]
- bl FUN_02207BB4
+ bl MOD04_02207BB4
ldr r1, _022074E4 ; =0x02211764
mov r0, r4
ldr r1, [r1]
@@ -53823,8 +53829,8 @@ _022074E0: .word 0x0220BD54
_022074E4: .word 0x02211764
_022074E8: .word 0x0220F9CC
- arm_func_start FUN_022074EC
-FUN_022074EC: ; 0x022074EC
+ arm_func_start MOD04_022074EC
+MOD04_022074EC: ; 0x022074EC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x18
mov r7, r2
@@ -53847,9 +53853,9 @@ FUN_022074EC: ; 0x022074EC
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
add r0, sp, #0xc
mov r1, r4
- bl FUN_02208558
+ bl MOD04_02208558
mov sb, r0
- bl FUN_02206DA4
+ bl MOD04_02206DA4
ldr r1, _02207790 ; =0x02211750
add r0, r0, #1
ldr r2, [r1]
@@ -53870,14 +53876,14 @@ FUN_022074EC: ; 0x022074EC
_02207594:
add r1, sp, #0xc
mov r2, sb
- bl FUN_02206C98
+ bl MOD04_02206C98
mov r1, #0
strb r1, [r4, r0]
add r0, sp, #0xc
mov r1, r7
- bl FUN_02208558
+ bl MOD04_02208558
mov sb, r0
- bl FUN_02206DA4
+ bl MOD04_02206DA4
ldr r1, _02207790 ; =0x02211750
add r0, r0, #1
ldr r2, [r1]
@@ -53902,7 +53908,7 @@ _02207594:
_02207610:
add r1, sp, #0xc
mov r2, sb
- bl FUN_02206C98
+ bl MOD04_02206C98
mov r1, #0
strb r1, [sl, r0]
ldr r2, _0220779C ; =0x0220BD3C
@@ -53910,7 +53916,7 @@ _02207610:
add r1, sp, #8
mov r3, r5
str r6, [sp]
- bl FUN_0220788C
+ bl MOD04_0220788C
cmp r0, #0
bne _02207680
ldr r1, _02207798 ; =0x02211764
@@ -53932,13 +53938,13 @@ _02207680:
ldr r0, [sp, #8]
ldr r1, _022077A0 ; =0x0220F9D8
mov r2, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _0220773C
ldr r0, [sp, #8]
ldr r1, _022077A4 ; =0x0220F9E0
mov r2, sl
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _0220773C
ldr r0, [sp, #4]
@@ -53956,7 +53962,7 @@ _02207680:
str r5, [r0, #0x18]
ldr r0, [sp, #4]
ldr r1, [sp, #8]
- bl FUN_0220781C
+ bl MOD04_0220781C
cmp r0, #0
addne sp, sp, #0x18
movne r0, #1
@@ -53991,7 +53997,7 @@ _0220773C:
blx r1
ldr r0, [sp, #4]
ldr r1, [sp, #8]
- bl FUN_02207BB4
+ bl MOD04_02207BB4
ldr r0, _02207794 ; =0x02211760
mov r1, #1
str r1, [r0]
@@ -54006,8 +54012,8 @@ _0220779C: .word 0x0220BD3C
_022077A0: .word 0x0220F9D8
_022077A4: .word 0x0220F9E0
- arm_func_start FUN_022077A8
-FUN_022077A8: ; 0x022077A8
+ arm_func_start MOD04_022077A8
+MOD04_022077A8: ; 0x022077A8
stmdb sp!, {r4, lr}
sub sp, sp, #0x10
ldr r2, _02207814 ; =0x0220BD48
@@ -54017,7 +54023,7 @@ FUN_022077A8: ; 0x022077A8
add r0, sp, #4
add r1, sp, #8
str ip, [sp]
- bl FUN_0220788C
+ bl MOD04_0220788C
cmp r0, #0
addeq sp, sp, #0x10
moveq r0, #0
@@ -54029,7 +54035,7 @@ FUN_022077A8: ; 0x022077A8
str r4, [r0, #0x10]
ldr r0, [sp, #4]
ldr r1, [sp, #8]
- bl FUN_0220781C
+ bl MOD04_0220781C
cmp r0, #0
movne r0, #1
moveq r0, #0
@@ -54039,20 +54045,20 @@ FUN_022077A8: ; 0x022077A8
_02207814: .word 0x0220BD48
_02207818: .word 0x02211850
- arm_func_start FUN_0220781C
-FUN_0220781C: ; 0x0220781C
+ arm_func_start MOD04_0220781C
+MOD04_0220781C: ; 0x0220781C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r1
mov r5, r0
- bl FUN_02208364
+ bl MOD04_02208364
mov r0, r4
- bl FUN_022092A0
+ bl MOD04_022092A0
str r0, [r5]
ldr r1, [r5]
ldr r0, _02207884 ; =0x02211768
str r1, [r0]
- bl FUN_02208350
+ bl MOD04_02208350
ldr r0, [r5]
cmp r0, #0
addge sp, sp, #4
@@ -54060,7 +54066,7 @@ FUN_0220781C: ; 0x0220781C
ldmgeia sp!, {r4, r5, pc}
mov r0, r5
mov r1, r4
- bl FUN_02207BB4
+ bl MOD04_02207BB4
ldr r0, _02207888 ; =0x02211760
mov r1, #3
str r1, [r0]
@@ -54071,8 +54077,8 @@ FUN_0220781C: ; 0x0220781C
_02207884: .word 0x02211768
_02207888: .word 0x02211760
- arm_func_start FUN_0220788C
-FUN_0220788C: ; 0x0220788C
+ arm_func_start MOD04_0220788C
+MOD04_0220788C: ; 0x0220788C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
mov r8, r0
@@ -54081,7 +54087,7 @@ FUN_0220788C: ; 0x0220788C
ldr r1, _02207B44 ; =0x02211838
mov r6, r2
mov r4, r3
- bl FUN_022071C0
+ bl MOD04_022071C0
cmp r0, #0
ldreq r0, _02207B48 ; =0x02211760
moveq r1, #8
@@ -54106,7 +54112,7 @@ FUN_0220788C: ; 0x0220788C
ldr r0, [r0]
str r0, [r5, #8]
str r1, [r5, #0xc]
- bl FUN_022082D4
+ bl MOD04_022082D4
cmp r0, #0
bne _02207944
ldr r1, _02207B54 ; =0x02211764
@@ -54120,7 +54126,7 @@ FUN_0220788C: ; 0x0220788C
mov r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
_02207944:
- ldr r1, _02207B58 ; =FUN_02207BE0
+ ldr r1, _02207B58 ; =MOD04_02207BE0
ldr r0, _02207B5C ; =0x02211754
str r1, [sp]
str r5, [sp, #4]
@@ -54128,10 +54134,10 @@ _02207944:
ldr r3, [sp, #0x20]
mov r2, r4
mov r1, #1
- bl FUN_02209438
+ bl MOD04_02209438
movs r4, r0
bne _0220799C
- bl FUN_022082A0
+ bl MOD04_022082A0
ldr r1, _02207B54 ; =0x02211764
mov r0, r5
ldr r1, [r1]
@@ -54147,56 +54153,56 @@ _0220799C:
str r5, [r8]
mov r2, #1
str r4, [r7]
- bl FUN_022086D4
+ bl MOD04_022086D4
cmp r0, #0
beq _02207B1C
ldr r1, _02207B64 ; =0x0220F9E4
ldr r2, _02207B68 ; =0x022117CC
mov r0, r4
- bl FUN_02208764
+ bl MOD04_02208764
cmp r0, #0
beq _02207B1C
ldr r1, _02207B6C ; =0x0220F9F0
ldr r2, _02207B70 ; =0x0221176C
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
ldr r1, _02207B74 ; =0x0220F9F8
ldr r2, _02207B40 ; =0x0221182C
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
ldr r1, _02207B78 ; =0x0220FA04
ldr r2, _02207B7C ; =0x022117B0
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
ldr r0, _02207B80 ; =0x0221174C
ldr r1, _02207B84 ; =0x0220FA0C
ldr r2, [r0]
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
ldr r1, _02207B88 ; =0x0220FA14
ldr r2, _02207B44 ; =0x02211838
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
ldr r1, _02207B8C ; =0x0220FA1C
ldr r2, _02207B90 ; =0x02211784
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
ldr r1, _02207B94 ; =0x0220FA24
mov r0, r4
mov r2, r6
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
ldr r0, _02207B98 ; =0x02211778
@@ -54205,7 +54211,7 @@ _0220799C:
beq _02207AA0
ldr r1, _02207B9C ; =0x0220FA2C
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
_02207AA0:
@@ -54215,7 +54221,7 @@ _02207AA0:
beq _02207AC4
ldr r1, _02207BA0 ; =0x0220FA34
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
_02207AC4:
@@ -54225,7 +54231,7 @@ _02207AC4:
beq _02207AE8
ldr r1, _02207BA4 ; =0x0220FA3C
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
_02207AE8:
@@ -54236,7 +54242,7 @@ _02207AE8:
ldr r1, _02207BAC ; =0x0220FA44
ldr r2, _02207BB0 ; =0x02211798
mov r0, r4
- bl FUN_022086F0
+ bl MOD04_022086F0
cmp r0, #0
beq _02207B1C
_02207B10:
@@ -54246,7 +54252,7 @@ _02207B10:
_02207B1C:
mov r0, r5
mov r1, r4
- bl FUN_02207BB4
+ bl MOD04_02207BB4
ldr r0, _02207B48 ; =0x02211760
mov r1, #1
str r1, [r0]
@@ -54260,7 +54266,7 @@ _02207B48: .word 0x02211760
_02207B4C: .word 0x02211750
_02207B50: .word 0x0221175C
_02207B54: .word 0x02211764
-_02207B58: .word FUN_02207BE0
+_02207B58: .word MOD04_02207BE0
_02207B5C: .word 0x02211754
_02207B60: .word 0x0220F9C8
_02207B64: .word 0x0220F9E4
@@ -54284,13 +54290,13 @@ _02207BA8: .word 0x02211748
_02207BAC: .word 0x0220FA44
_02207BB0: .word 0x02211798
- arm_func_start FUN_02207BB4
-FUN_02207BB4: ; 0x02207BB4
+ arm_func_start MOD04_02207BB4
+MOD04_02207BB4: ; 0x02207BB4
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, r1
- bl FUN_02209410
- bl FUN_022082A0
+ bl MOD04_02209410
+ bl MOD04_022082A0
ldr r1, _02207BDC ; =0x02211764
mov r0, r4
ldr r1, [r1]
@@ -54299,8 +54305,8 @@ FUN_02207BB4: ; 0x02207BB4
.align 2, 0
_02207BDC: .word 0x02211764
- arm_func_start FUN_02207BE0
-FUN_02207BE0: ; 0x02207BE0
+ arm_func_start MOD04_02207BE0
+MOD04_02207BE0: ; 0x02207BE0
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x1c
mov sl, r2
@@ -54323,20 +54329,20 @@ _02207C28:
ldr r1, _02207F04 ; =0x0220FA4C
ldr r0, [sp]
add r2, sp, #0x10
- bl FUN_02209A98
+ bl MOD04_02209A98
cmp r0, #3
movne r4, #3
bne _02207E1C
ldr r0, [sp, #0x10]
mov r1, #3
- bl FUN_02208564
+ bl MOD04_02208564
ldr r1, _02207F08 ; =0x0000012E
cmp r0, r1
bne _02207D80
ldr r0, [sp]
add r1, sp, #0x14
mov sb, #0
- bl FUN_02209A68
+ bl MOD04_02209A68
movs r8, r0
movmi r4, #3
bmi _02207E1C
@@ -54368,7 +54374,7 @@ _02207CBC:
add r0, r1, r3
ldr r1, _02207F0C ; =0x0220FA5C
mov r2, r6
- bl FUN_022083C8
+ bl MOD04_022083C8
cmp r0, #0
moveq sb, r5
movne sb, r4
@@ -54399,12 +54405,12 @@ _02207D24:
bne _02207D6C
add r0, sp, #0x18
add r1, r3, r1
- bl FUN_02206B60
+ bl MOD04_02206B60
mov r1, r0
add r0, sp, #0x18
mov r2, #0
strb r2, [r0, r1]
- bl FUN_02208564
+ bl MOD04_02208564
str r0, [sp, #0xc]
b _02207D6C
_02207D64:
@@ -54435,7 +54441,7 @@ _02207D98:
_02207DB4:
ldr r0, [sp]
mov r1, sl
- bl FUN_02207F1C
+ bl MOD04_02207F1C
cmp r0, #0
movne r4, #0
moveq r4, #3
@@ -54443,7 +54449,7 @@ _02207DB4:
_02207DD0:
ldr r0, [sp]
mov r1, sl
- bl FUN_02207F9C
+ bl MOD04_02207F9C
cmp r0, #0
movne r4, #0
moveq r4, #3
@@ -54451,7 +54457,7 @@ _02207DD0:
_02207DEC:
ldr r0, [sp]
mov r1, sl
- bl FUN_02207F70
+ bl MOD04_02207F70
cmp r0, #0
movne r4, #0
moveq r4, #3
@@ -54498,18 +54504,18 @@ _02207E7C:
ldr r1, [r1]
blx r1
_02207E8C:
- bl FUN_02208364
+ bl MOD04_02208364
ldr r0, _02207F14 ; =0x02211768
mvn r1, #0
str r1, [r0]
- bl FUN_02208350
+ bl MOD04_02208350
ldr r0, [sp]
- bl FUN_02209CC4
+ bl MOD04_02209CC4
ldr r1, _02207F10 ; =0x02211764
mov r0, sl
ldr r1, [r1]
blx r1
- bl FUN_022082A0
+ bl MOD04_022082A0
cmp r4, #0
ldrne r0, _02207F18 ; =0x02211760
strne r4, [r0]
@@ -54526,7 +54532,7 @@ _02207EE8:
cmp r0, #0
addeq sp, sp, #0x1c
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- bl FUN_0220828C
+ bl MOD04_0220828C
add sp, sp, #0x1c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
@@ -54537,17 +54543,17 @@ _02207F10: .word 0x02211764
_02207F14: .word 0x02211768
_02207F18: .word 0x02211760
- arm_func_start FUN_02207F1C
-FUN_02207F1C: ; 0x02207F1C
+ arm_func_start MOD04_02207F1C
+MOD04_02207F1C: ; 0x02207F1C
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r1
add r1, sp, #0
- bl FUN_02209A68
+ bl MOD04_02209A68
movs r1, r0
bmi _02207F64
ldr r0, [sp]
- bl FUN_02208564
+ bl MOD04_02208564
ldr r1, [r4, #0x10]
add sp, sp, #8
str r0, [r1]
@@ -54562,13 +54568,13 @@ _02207F64:
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_02207F70
-FUN_02207F70: ; 0x02207F70
+ arm_func_start MOD04_02207F70
+MOD04_02207F70: ; 0x02207F70
stmdb sp!, {r4, lr}
sub sp, sp, #8
mov r4, r1
add r1, sp, #0
- bl FUN_02209A68
+ bl MOD04_02209A68
ldr r1, [r4, #0x14]
cmp r0, r1
moveq r0, #1
@@ -54576,8 +54582,8 @@ FUN_02207F70: ; 0x02207F70
add sp, sp, #8
ldmia sp!, {r4, pc}
- arm_func_start FUN_02207F9C
-FUN_02207F9C: ; 0x02207F9C
+ arm_func_start MOD04_02207F9C
+MOD04_02207F9C: ; 0x02207F9C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x24
ldr r2, [r1, #0x14]
@@ -54589,11 +54595,11 @@ FUN_02207F9C: ; 0x02207F9C
mov r2, #0
ldr r0, [r0, #0x10]
str r2, [sp, #4]
- bl FUN_022083B4
+ bl MOD04_022083B4
ldr r1, _02208224 ; =0x0220FA68
add r2, sp, #0x1c
mov r0, r4
- bl FUN_02209A98
+ bl MOD04_02209A98
cmp r0, #0
ble _02208008
ldr r1, [sp, #0x1c]
@@ -54608,7 +54614,7 @@ FUN_02207F9C: ; 0x02207F9C
_02208008:
add r1, sp, #0x18
mov r0, r4
- bl FUN_02209A68
+ bl MOD04_02209A68
mov sb, r0
cmp sb, #0
ble _02208218
@@ -54656,7 +54662,7 @@ _02208088:
cmp r1, #8
bgt _02208218
add r0, r0, r6
- bl FUN_02208564
+ bl MOD04_02208564
cmp r0, #0
blt _02208218
str r0, [r5, #0xac]
@@ -54686,19 +54692,19 @@ _0220811C:
bhs _02208218
add r1, r0, r6
mov r0, r5
- bl FUN_0220839C
+ bl MOD04_0220839C
b _022081D8
_02208138:
sub r4, r8, r6
mov r0, r4
- bl FUN_02206DC0
+ bl MOD04_02206DC0
cmp r0, #0x64
bhs _02208218
mov r2, r4
add r0, r5, #0x22
ldr r1, [sp, #0x18]
add r1, r1, r6
- bl FUN_02206B60
+ bl MOD04_02206B60
b _022081D8
_02208164:
sub r2, r8, r6
@@ -54706,7 +54712,7 @@ _02208164:
bhs _02208218
add r1, r0, r6
add r0, r5, #0x88
- bl FUN_0220839C
+ bl MOD04_0220839C
b _022081D8
_02208180:
sub r2, r8, r6
@@ -54714,7 +54720,7 @@ _02208180:
bhs _02208218
add r1, r0, r6
add r0, r5, #0x93
- bl FUN_0220839C
+ bl MOD04_0220839C
b _022081D8
_0220819C:
sub r2, r8, r6
@@ -54722,14 +54728,14 @@ _0220819C:
bhs _02208218
add r1, r0, r6
add r0, r5, #0x9e
- bl FUN_0220839C
+ bl MOD04_0220839C
b _022081D8
_022081B8:
sub r1, r8, r6
cmp r1, #8
bgt _02208218
add r0, r0, r6
- bl FUN_02208564
+ bl MOD04_02208564
cmp r0, #0
blt _02208218
str r0, [r5, #0xac]
@@ -54760,8 +54766,8 @@ _02208218:
.align 2, 0
_02208224: .word 0x0220FA68
- arm_func_start FUN_02208228
-FUN_02208228: ; 0x02208228
+ arm_func_start MOD04_02208228
+MOD04_02208228: ; 0x02208228
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x14
mov sb, r0
@@ -54776,7 +54782,7 @@ _02208250:
ldrb r1, [r7]
mov r2, r4
add r0, r5, r6
- bl FUN_022083E0
+ bl MOD04_022083E0
add r8, r8, #1
cmp r8, #6
add r7, r7, #1
@@ -54785,12 +54791,12 @@ _02208250:
add r1, sp, #6
mov r0, sb
mov r2, #0xc
- bl FUN_02206C98
+ bl MOD04_02206C98
add sp, sp, #0x14
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
- arm_func_start FUN_0220828C
-FUN_0220828C: ; 0x0220828C
+ arm_func_start MOD04_0220828C
+MOD04_0220828C: ; 0x0220828C
ldr ip, _0220829C ; =0x020CBDC4
mov r1, #0
mov r2, r1
@@ -54798,8 +54804,8 @@ FUN_0220828C: ; 0x0220828C
.align 2, 0
_0220829C: .word 0x020CBDC4
- arm_func_start FUN_022082A0
-FUN_022082A0: ; 0x022082A0
+ arm_func_start MOD04_022082A0
+MOD04_022082A0: ; 0x022082A0
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _022082CC ; =0x022118D4
@@ -54815,8 +54821,8 @@ FUN_022082A0: ; 0x022082A0
_022082CC: .word 0x022118D4
_022082D0: .word 0x022118D0
- arm_func_start FUN_022082D4
-FUN_022082D4: ; 0x022082D4
+ arm_func_start MOD04_022082D4
+MOD04_022082D4: ; 0x022082D4
stmdb sp!, {r4, lr}
ldr r0, _02208314 ; =0x022118D4
bl OS_LockMutex
@@ -54837,12 +54843,12 @@ FUN_022082D4: ; 0x022082D4
_02208314: .word 0x022118D4
_02208318: .word 0x022118D0
- arm_func_start FUN_0220831C
-FUN_0220831C: ; 0x0220831C
+ arm_func_start MOD04_0220831C
+MOD04_0220831C: ; 0x0220831C
bx lr
- arm_func_start FUN_02208320
-FUN_02208320: ; 0x02208320
+ arm_func_start MOD04_02208320
+MOD04_02208320: ; 0x02208320
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _02208348 ; =0x022118D4
@@ -54857,8 +54863,8 @@ FUN_02208320: ; 0x02208320
_02208348: .word 0x022118D4
_0220834C: .word 0x022118D0
- arm_func_start FUN_02208350
-FUN_02208350: ; 0x02208350
+ arm_func_start MOD04_02208350
+MOD04_02208350: ; 0x02208350
ldr ip, _0220835C ; =0x020CBFA0
ldr r0, _02208360 ; =0x022118EC
bx ip
@@ -54866,8 +54872,8 @@ FUN_02208350: ; 0x02208350
_0220835C: .word 0x020CBFA0
_02208360: .word 0x022118EC
- arm_func_start FUN_02208364
-FUN_02208364: ; 0x02208364
+ arm_func_start MOD04_02208364
+MOD04_02208364: ; 0x02208364
ldr ip, _02208370 ; =0x020CC010
ldr r0, _02208374 ; =0x022118EC
bx ip
@@ -54875,12 +54881,12 @@ FUN_02208364: ; 0x02208364
_02208370: .word 0x020CC010
_02208374: .word 0x022118EC
- arm_func_start FUN_02208378
-FUN_02208378: ; 0x02208378
+ arm_func_start MOD04_02208378
+MOD04_02208378: ; 0x02208378
bx lr
- arm_func_start FUN_0220837C
-FUN_0220837C: ; 0x0220837C
+ arm_func_start MOD04_0220837C
+MOD04_0220837C: ; 0x0220837C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _02208398 ; =0x022118EC
@@ -54891,8 +54897,8 @@ FUN_0220837C: ; 0x0220837C
.align 2, 0
_02208398: .word 0x022118EC
- arm_func_start FUN_0220839C
-FUN_0220839C: ; 0x0220839C
+ arm_func_start MOD04_0220839C
+MOD04_0220839C: ; 0x0220839C
ldr ip, _022083B0 ; =0x020CE3E0
mov r3, r0
mov r0, r1
@@ -54901,8 +54907,8 @@ FUN_0220839C: ; 0x0220839C
.align 2, 0
_022083B0: .word 0x020CE3E0
- arm_func_start FUN_022083B4
-FUN_022083B4: ; 0x022083B4
+ arm_func_start MOD04_022083B4
+MOD04_022083B4: ; 0x022083B4
ldr ip, _022083C4 ; =0x020CE34C
mov r2, r1
mov r1, #0
@@ -54910,22 +54916,22 @@ FUN_022083B4: ; 0x022083B4
.align 2, 0
_022083C4: .word 0x020CE34C
- arm_func_start FUN_022083C8
-FUN_022083C8: ; 0x022083C8
+ arm_func_start MOD04_022083C8
+MOD04_022083C8: ; 0x022083C8
ldr ip, _022083D0 ; =0x020DE03C
bx ip
.align 2, 0
_022083D0: .word 0x020DE03C
- arm_func_start FUN_022083D4
-FUN_022083D4: ; 0x022083D4
+ arm_func_start MOD04_022083D4
+MOD04_022083D4: ; 0x022083D4
ldr ip, _022083DC ; =0x020DE0BC
bx ip
.align 2, 0
_022083DC: .word 0x020DE0BC
- arm_func_start FUN_022083E0
-FUN_022083E0: ; 0x022083E0
+ arm_func_start MOD04_022083E0
+MOD04_022083E0: ; 0x022083E0
stmdb sp!, {lr}
sub sp, sp, #4
cmp r2, #8
@@ -54956,8 +54962,8 @@ _02208440:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_0220844C
-FUN_0220844C: ; 0x0220844C
+ arm_func_start MOD04_0220844C
+MOD04_0220844C: ; 0x0220844C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
ldr r4, _02208554 ; =0x0220BD64
@@ -55031,32 +55037,32 @@ _02208530:
.align 2, 0
_02208554: .word 0x0220BD64
- arm_func_start FUN_02208558
-FUN_02208558: ; 0x02208558
- ldr ip, _02208560 ; =FUN_0220B788
+ arm_func_start MOD04_02208558
+MOD04_02208558: ; 0x02208558
+ ldr ip, _02208560 ; =MOD04_0220B788
bx ip
.align 2, 0
-_02208560: .word FUN_0220B788
+_02208560: .word MOD04_0220B788
- arm_func_start FUN_02208564
-FUN_02208564: ; 0x02208564
- ldr ip, _0220856C ; =FUN_0220B844
+ arm_func_start MOD04_02208564
+MOD04_02208564: ; 0x02208564
+ ldr ip, _0220856C ; =MOD04_0220B844
bx ip
.align 2, 0
-_0220856C: .word FUN_0220B844
+_0220856C: .word MOD04_0220B844
- arm_func_start FUN_02208570
-FUN_02208570: ; 0x02208570
+ arm_func_start MOD04_02208570
+MOD04_02208570: ; 0x02208570
stmdb sp!, {r4, lr}
mov r4, r0
- bl FUN_022091BC
- bl FUN_02208C24
+ bl MOD04_022091BC
+ bl MOD04_02208C24
ldr r0, _022085AC ; =0x0221191C
ldr r1, _022085B0 ; =0x02211904
ldr r0, [r0]
ldr r1, [r1]
blx r1
- bl FUN_02208CF4
+ bl MOD04_02208CF4
ldr r0, _022085B4 ; =0x02211920
mov r1, #0
str r1, [r0]
@@ -55067,8 +55073,8 @@ _022085AC: .word 0x0221191C
_022085B0: .word 0x02211904
_022085B4: .word 0x02211920
- arm_func_start FUN_022085B8
-FUN_022085B8: ; 0x022085B8
+ arm_func_start MOD04_022085B8
+MOD04_022085B8: ; 0x022085B8
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
ldr r3, _022086B0 ; =0x02211908
@@ -55087,7 +55093,7 @@ FUN_022085B8: ; 0x022085B8
str r7, [lr]
str r7, [ip]
str r7, [r3]
- bl FUN_02208CF8
+ bl MOD04_02208CF8
cmp r0, #0
ldreq r0, _022086B0 ; =0x02211908
moveq r1, #9
@@ -55107,13 +55113,13 @@ FUN_022085B8: ; 0x022085B8
ldr r0, _022086B0 ; =0x02211908
mov r1, #1
str r1, [r0]
- bl FUN_02208CF4
+ bl MOD04_02208CF4
add sp, sp, #4
mov r0, r7
ldmia sp!, {r4, r5, r6, r7, pc}
_02208660:
mov r0, r4
- bl FUN_02208C54
+ bl MOD04_02208C54
cmp r0, #0
ldrne r1, _022086D0 ; =0x02211920
movne r0, #1
@@ -55128,7 +55134,7 @@ _02208660:
mov r3, #9
str r3, [r1]
blx r2
- bl FUN_02208CF4
+ bl MOD04_02208CF4
mov r0, r7
add sp, sp, #4
ldmia sp!, {r4, r5, r6, r7, pc}
@@ -55143,8 +55149,8 @@ _022086C8: .word 0x02211918
_022086CC: .word 0x0221191C
_022086D0: .word 0x02211920
- arm_func_start FUN_022086D4
-FUN_022086D4: ; 0x022086D4
+ arm_func_start MOD04_022086D4
+MOD04_022086D4: ; 0x022086D4
ldr r3, [r0]
cmp r3, #0
movne r0, #0
@@ -55153,8 +55159,8 @@ FUN_022086D4: ; 0x022086D4
moveq r0, #1
bx lr
- arm_func_start FUN_022086F0
-FUN_022086F0: ; 0x022086F0
+ arm_func_start MOD04_022086F0
+MOD04_022086F0: ; 0x022086F0
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r8, r0
ldr r0, [r8]
@@ -55165,19 +55171,19 @@ FUN_022086F0: ; 0x022086F0
movne r0, r5
ldmneia sp!, {r4, r5, r6, r7, r8, pc}
mov r0, r6
- bl FUN_02209FBC
+ bl MOD04_02209FBC
mov r4, r0
mov r0, r8
mov r1, r6
mov r2, r4
- bl FUN_02208794
+ bl MOD04_02208794
cmp r0, #0
beq _0220875C
mov r1, r7
mov r2, r6
add r0, r8, #0x38
mov r3, #0x18
- bl FUN_022088CC
+ bl MOD04_022088CC
movs r5, r0
ldrne r0, [r8, #0x38]
ldrne r0, [r0]
@@ -55186,8 +55192,8 @@ _0220875C:
mov r0, r5
ldmia sp!, {r4, r5, r6, r7, r8, pc}
- arm_func_start FUN_02208764
-FUN_02208764: ; 0x02208764
+ arm_func_start MOD04_02208764
+MOD04_02208764: ; 0x02208764
stmdb sp!, {lr}
sub sp, sp, #4
ldr r3, [r0]
@@ -55197,12 +55203,12 @@ FUN_02208764: ; 0x02208764
ldmneia sp!, {pc}
add r0, r0, #0x34
mov r3, #0x18
- bl FUN_022088CC
+ bl MOD04_022088CC
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_02208794
-FUN_02208794: ; 0x02208794
+ arm_func_start MOD04_02208794
+MOD04_02208794: ; 0x02208794
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
str r0, [sp]
@@ -55213,7 +55219,7 @@ FUN_02208794: ; 0x02208794
mov r1, sb
add r2, r2, #0x46
mov r3, #0x12
- bl FUN_0220B604
+ bl MOD04_0220B604
cmp r0, #0
addlt sp, sp, #4
movlt r0, #1
@@ -55229,7 +55235,7 @@ _022087E4:
ldrsb r8, [r6, #0x44]
_022087F0:
and r0, r8, #0xff
- bl FUN_02208854
+ bl MOD04_02208854
mov r8, r0
strb r8, [r6, #0x44]
ldrsb r0, [r7]
@@ -55239,7 +55245,7 @@ _022087F0:
mov r1, sb
mov r2, r5
mov r3, r4
- bl FUN_0220B604
+ bl MOD04_0220B604
cmp r0, #0
bge _022087F0
add sp, sp, #4
@@ -55256,8 +55262,8 @@ _02208834:
.align 2, 0
_02208850: .word 0x0220BDF7
- arm_func_start FUN_02208854
-FUN_02208854: ; 0x02208854
+ arm_func_start MOD04_02208854
+MOD04_02208854: ; 0x02208854
add r0, r0, #1
and r0, r0, #0xff
cmp r0, #0x7b
@@ -55273,8 +55279,8 @@ _0220887C:
mov r0, r0, asr #0x18
bx lr
- arm_func_start FUN_02208888
-FUN_02208888: ; 0x02208888
+ arm_func_start MOD04_02208888
+MOD04_02208888: ; 0x02208888
ldr r3, [r0]
cmp r3, #0
beq _022088C4
@@ -55294,8 +55300,8 @@ _022088C4:
mov r0, r3
bx lr
- arm_func_start FUN_022088CC
-FUN_022088CC: ; 0x022088CC
+ arm_func_start MOD04_022088CC
+MOD04_022088CC: ; 0x022088CC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
mov sb, r0
ldr sl, [sb]
@@ -55308,7 +55314,7 @@ FUN_022088CC: ; 0x022088CC
ldr r1, [sl, #8]
mov r0, r8
mov r4, sl
- bl FUN_0220B704
+ bl MOD04_0220B704
cmp r0, #0
beq _02208944
ldr r4, [sl, #4]
@@ -55318,7 +55324,7 @@ FUN_022088CC: ; 0x022088CC
_02208918:
ldr r1, [r4, #8]
mov r0, r8
- bl FUN_0220B704
+ bl MOD04_0220B704
cmp r0, #0
moveq r5, #1
beq _02208948
@@ -55371,17 +55377,17 @@ _022089D0:
_022089D8: .word 0x02211924
_022089DC: .word 0x02211908
- arm_func_start FUN_022089E0
-FUN_022089E0: ; 0x022089E0
- ldr ip, _022089EC ; =FUN_02208888
+ arm_func_start MOD04_022089E0
+MOD04_022089E0: ; 0x022089E0
+ ldr ip, _022089EC ; =MOD04_02208888
ldr r0, _022089F0 ; =0x02211910
bx ip
.align 2, 0
-_022089EC: .word FUN_02208888
+_022089EC: .word MOD04_02208888
_022089F0: .word 0x02211910
- arm_func_start FUN_022089F4
-FUN_022089F4: ; 0x022089F4
+ arm_func_start MOD04_022089F4
+MOD04_022089F4: ; 0x022089F4
stmdb sp!, {r4, lr}
ldr r4, _02208A20 ; =0x02211910
ldr r0, [r4]
@@ -55389,7 +55395,7 @@ FUN_022089F4: ; 0x022089F4
ldmeqia sp!, {r4, pc}
_02208A08:
ldr r0, [r0, #8]
- bl FUN_02208A24
+ bl MOD04_02208A24
ldr r0, [r4]
cmp r0, #0
bne _02208A08
@@ -55397,12 +55403,12 @@ _02208A08:
.align 2, 0
_02208A20: .word 0x02211910
- arm_func_start FUN_02208A24
-FUN_02208A24: ; 0x02208A24
+ arm_func_start MOD04_02208A24
+MOD04_02208A24: ; 0x02208A24
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r5, #0
- bl FUN_02208AD0
+ bl MOD04_02208AD0
movs r4, r0
beq _02208ABC
ldr r0, _02208AC8 ; =0x02211910
@@ -55429,7 +55435,7 @@ _02208A84:
ldr r7, [r0, #0x3c]
ldr r6, [r0, #0x30]
ldr r5, [r0, #0x2c]
- bl FUN_02209338
+ bl MOD04_02209338
ldr r1, _02208ACC ; =0x02211904
mov r0, r4
ldr r1, [r1]
@@ -55447,8 +55453,8 @@ _02208ABC:
_02208AC8: .word 0x02211910
_02208ACC: .word 0x02211904
- arm_func_start FUN_02208AD0
-FUN_02208AD0: ; 0x02208AD0
+ arm_func_start MOD04_02208AD0
+MOD04_02208AD0: ; 0x02208AD0
ldr r1, _02208B24 ; =0x02211910
mov ip, #0
ldr r3, [r1]
@@ -55475,8 +55481,8 @@ _02208B1C:
.align 2, 0
_02208B24: .word 0x02211910
- arm_func_start FUN_02208B28
-FUN_02208B28: ; 0x02208B28
+ arm_func_start MOD04_02208B28
+MOD04_02208B28: ; 0x02208B28
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
ldr r1, _02208BD8 ; =0x02211924
@@ -55528,8 +55534,8 @@ _02208BD8: .word 0x02211924
_02208BDC: .word 0x02211910
_02208BE0: .word 0x0221190C
- arm_func_start FUN_02208BE4
-FUN_02208BE4: ; 0x02208BE4
+ arm_func_start MOD04_02208BE4
+MOD04_02208BE4: ; 0x02208BE4
ldr ip, _02208BF8 ; =0x020CBDC4
mov r1, #0
ldr r0, _02208BFC ; =0x02211944
@@ -55539,8 +55545,8 @@ FUN_02208BE4: ; 0x02208BE4
_02208BF8: .word 0x020CBDC4
_02208BFC: .word 0x02211944
- arm_func_start FUN_02208C00
-FUN_02208C00: ; 0x02208C00
+ arm_func_start MOD04_02208C00
+MOD04_02208C00: ; 0x02208C00
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _02208C20 ; =0x02211944
@@ -55552,14 +55558,14 @@ FUN_02208C00: ; 0x02208C00
.align 2, 0
_02208C20: .word 0x02211944
- arm_func_start FUN_02208C24
-FUN_02208C24: ; 0x02208C24
+ arm_func_start MOD04_02208C24
+MOD04_02208C24: ; 0x02208C24
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _02208C4C ; =0x02211918
mov r1, #1
str r1, [r0]
- bl FUN_02208BE4
+ bl MOD04_02208BE4
ldr r0, _02208C50 ; =0x02211964
bl OS_JoinThread
add sp, sp, #4
@@ -55568,8 +55574,8 @@ FUN_02208C24: ; 0x02208C24
_02208C4C: .word 0x02211918
_02208C50: .word 0x02211964
- arm_func_start FUN_02208C54
-FUN_02208C54: ; 0x02208C54
+ arm_func_start MOD04_02208C54
+MOD04_02208C54: ; 0x02208C54
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r5, r0
@@ -55586,7 +55592,7 @@ FUN_02208C54: ; 0x02208C54
mov r0, #0x2000
str r0, [sp]
ldr r0, _02208CC4 ; =0x02211964
- ldr r1, _02208CC8 ; =FUN_0220A044
+ ldr r1, _02208CC8 ; =MOD04_0220A044
add r3, r4, #0x2000
mov r2, #0
str r5, [sp, #4]
@@ -55600,10 +55606,10 @@ FUN_02208C54: ; 0x02208C54
_02208CBC: .word 0x02211944
_02208CC0: .word 0x02211928
_02208CC4: .word 0x02211964
-_02208CC8: .word FUN_0220A044
+_02208CC8: .word MOD04_0220A044
- arm_func_start FUN_02208CCC
-FUN_02208CCC: ; 0x02208CCC
+ arm_func_start MOD04_02208CCC
+MOD04_02208CCC: ; 0x02208CCC
ldr ip, _02208CD8 ; =0x020CBFA0
ldr r0, _02208CDC ; =0x0221192C
bx ip
@@ -55611,8 +55617,8 @@ FUN_02208CCC: ; 0x02208CCC
_02208CD8: .word 0x020CBFA0
_02208CDC: .word 0x0221192C
- arm_func_start FUN_02208CE0
-FUN_02208CE0: ; 0x02208CE0
+ arm_func_start MOD04_02208CE0
+MOD04_02208CE0: ; 0x02208CE0
ldr ip, _02208CEC ; =0x020CC010
ldr r0, _02208CF0 ; =0x0221192C
bx ip
@@ -55620,12 +55626,12 @@ FUN_02208CE0: ; 0x02208CE0
_02208CEC: .word 0x020CC010
_02208CF0: .word 0x0221192C
- arm_func_start FUN_02208CF4
-FUN_02208CF4: ; 0x02208CF4
+ arm_func_start MOD04_02208CF4
+MOD04_02208CF4: ; 0x02208CF4
bx lr
- arm_func_start FUN_02208CF8
-FUN_02208CF8: ; 0x02208CF8
+ arm_func_start MOD04_02208CF8
+MOD04_02208CF8: ; 0x02208CF8
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _02208D14 ; =0x0221192C
@@ -55636,8 +55642,8 @@ FUN_02208CF8: ; 0x02208CF8
.align 2, 0
_02208D14: .word 0x0221192C
- arm_func_start FUN_02208D18
-FUN_02208D18: ; 0x02208D18
+ arm_func_start MOD04_02208D18
+MOD04_02208D18: ; 0x02208D18
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
mov r8, r0
@@ -55647,7 +55653,7 @@ FUN_02208D18: ; 0x02208D18
mov r0, r4
mov r1, r6
mov r5, r3
- bl FUN_02208DB8
+ bl MOD04_02208DB8
cmp r0, #0
addne sp, sp, #8
ldrne r0, _02208D84 ; =0xFFFFFC15
@@ -55662,14 +55668,14 @@ FUN_02208D18: ; 0x02208D18
mov r0, r8
mov r1, r7
add r2, r2, r6
- bl FUN_02209DB4
+ bl MOD04_02209DB4
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_02208D84: .word 0xFFFFFC15
- arm_func_start FUN_02208D88
-FUN_02208D88: ; 0x02208D88
+ arm_func_start MOD04_02208D88
+MOD04_02208D88: ; 0x02208D88
stmdb sp!, {lr}
sub sp, sp, #4
ldr ip, [r0, #0x30]
@@ -55679,20 +55685,20 @@ FUN_02208D88: ; 0x02208D88
ldr r3, [ip, #0xc]
add r2, r2, lr
sub r3, r3, lr
- bl FUN_02209DB4
+ bl MOD04_02209DB4
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_02208DB8
-FUN_02208DB8: ; 0x02208DB8
+ arm_func_start MOD04_02208DB8
+MOD04_02208DB8: ; 0x02208DB8
ldr r0, [r0, #0xc]
cmp r0, r1
movls r0, #1
movhi r0, #0
bx lr
- arm_func_start FUN_02208DCC
-FUN_02208DCC: ; 0x02208DCC
+ arm_func_start MOD04_02208DCC
+MOD04_02208DCC: ; 0x02208DCC
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #4
mov r4, r0
@@ -55714,7 +55720,7 @@ FUN_02208DCC: ; 0x02208DCC
mov r0, r8
mov r2, r5
add r1, r1, r7
- bl FUN_02209F90
+ bl MOD04_02209F90
add r7, r7, r5
sub r6, r6, r5
add r8, r8, r5
@@ -55745,7 +55751,7 @@ _02208E70:
mov r0, r8
mov r2, r4
add r1, r1, r7
- bl FUN_02209F90
+ bl MOD04_02209F90
add r0, r7, r4
and r7, r0, sb
subs r6, r6, r4
@@ -55763,8 +55769,8 @@ _02208EB4:
.align 2, 0
_02208EC0: .word 0x000001FF
- arm_func_start FUN_02208EC4
-FUN_02208EC4: ; 0x02208EC4
+ arm_func_start MOD04_02208EC4
+MOD04_02208EC4: ; 0x02208EC4
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
mov sb, r1
@@ -55776,11 +55782,11 @@ FUN_02208EC4: ; 0x02208EC4
bge _02208F98
add r2, sp, #0
add r3, sp, #4
- bl FUN_02209158
+ bl MOD04_02209158
add r1, sp, #0
add r2, sp, #4
mov r0, sl
- bl FUN_022090E4
+ bl MOD04_022090E4
sub r6, r4, #1
mov r4, #1
add fp, sp, #0
@@ -55803,7 +55809,7 @@ _02208F44:
mov r0, sl
mov r1, fp
add r2, sp, #4
- bl FUN_022090E4
+ bl MOD04_022090E4
add sb, sb, #1
add r8, r8, #1
_02208F5C:
@@ -55829,8 +55835,8 @@ _02208F98:
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_02208FA4
-FUN_02208FA4: ; 0x02208FA4
+ arm_func_start MOD04_02208FA4
+MOD04_02208FA4: ; 0x02208FA4
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #8
mov r7, r1
@@ -55840,7 +55846,7 @@ FUN_02208FA4: ; 0x02208FA4
bge _02209008
add r2, sp, #0
add r3, sp, #4
- bl FUN_02209158
+ bl MOD04_02209158
cmp r7, r6
bge _02209008
add r5, sp, #0
@@ -55849,7 +55855,7 @@ _02208FDC:
mov r0, r8
mov r1, r5
mov r2, r4
- bl FUN_022090E4
+ bl MOD04_022090E4
cmp r0, #0x20
addne sp, sp, #8
movne r0, r7
@@ -55862,8 +55868,8 @@ _02209008:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, pc}
- arm_func_start FUN_02209014
-FUN_02209014: ; 0x02209014
+ arm_func_start MOD04_02209014
+MOD04_02209014: ; 0x02209014
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
movs r7, r3
@@ -55879,7 +55885,7 @@ FUN_02209014: ; 0x02209014
add r3, sp, #4
mov r0, sl
mov r1, sb
- bl FUN_02209158
+ bl MOD04_02209158
cmp sb, r8
bge _022090D8
add fp, sp, #0
@@ -55889,7 +55895,7 @@ _02209068:
mov r0, sl
mov r1, fp
add r2, sp, #4
- bl FUN_022090E4
+ bl MOD04_022090E4
cmp r0, #0x3a
bne _02209094
cmp r7, #0
@@ -55923,8 +55929,8 @@ _022090D8:
add sp, sp, #0xc
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
- arm_func_start FUN_022090E4
-FUN_022090E4: ; 0x022090E4
+ arm_func_start MOD04_022090E4
+MOD04_022090E4: ; 0x022090E4
ldr r3, [r1]
cmp r3, #0
bne _02209120
@@ -55957,8 +55963,8 @@ _0220913C:
ldrsb r0, [r0, #4]
bx lr
- arm_func_start FUN_02209158
-FUN_02209158: ; 0x02209158
+ arm_func_start MOD04_02209158
+MOD04_02209158: ; 0x02209158
stmdb sp!, {lr}
sub sp, sp, #4
cmp r1, #0x400
@@ -55988,11 +55994,11 @@ _0220919C:
.align 2, 0
_022091B8: .word 0x000001FF
- arm_func_start FUN_022091BC
-FUN_022091BC: ; 0x022091BC
+ arm_func_start MOD04_022091BC
+MOD04_022091BC: ; 0x022091BC
stmdb sp!, {lr}
sub sp, sp, #4
- bl FUN_02208CE0
+ bl MOD04_02208CE0
ldr r0, _02209214 ; =0x02211914
ldr r2, [r0]
cmp r2, #0
@@ -56007,22 +56013,22 @@ FUN_022091BC: ; 0x022091BC
ldr r1, [r0]
ldr r0, [r1, #0xc]
ldr r1, [r1, #0x10]
- bl FUN_02209D40
+ bl MOD04_02209D40
_02209204:
- bl FUN_022089F4
- bl FUN_02208CCC
+ bl MOD04_022089F4
+ bl MOD04_02208CCC
add sp, sp, #4
ldmfd sp!, {pc}
.align 2, 0
_02209214: .word 0x02211914
- arm_func_start FUN_02209218
-FUN_02209218: ; 0x02209218
+ arm_func_start MOD04_02209218
+MOD04_02209218: ; 0x02209218
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r4, r0
mov r5, #0
- bl FUN_02208CE0
+ bl MOD04_02208CE0
ldr r0, _0220929C ; =0x02211914
ldr r2, [r0]
cmp r2, #0
@@ -56040,24 +56046,24 @@ FUN_02209218: ; 0x02209218
ldr r1, [r0]
ldr r0, [r1, #0xc]
ldr r1, [r1, #0x10]
- bl FUN_02209D40
+ bl MOD04_02209D40
mov r5, #1
_02209278:
cmp r5, #0
bne _0220928C
mov r0, r4
- bl FUN_02208A24
+ bl MOD04_02208A24
mov r5, r0
_0220928C:
- bl FUN_02208CCC
+ bl MOD04_02208CCC
mov r0, r5
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
_0220929C: .word 0x02211914
- arm_func_start FUN_022092A0
-FUN_022092A0: ; 0x022092A0
+ arm_func_start MOD04_022092A0
+MOD04_022092A0: ; 0x022092A0
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -56081,9 +56087,9 @@ FUN_022092A0: ; 0x022092A0
mvneq r0, #0
ldmeqia sp!, {r4, r5, pc}
_022092F8:
- bl FUN_02208CE0
+ bl MOD04_02208CE0
mov r0, r5
- bl FUN_02208B28
+ bl MOD04_02208B28
movs r4, r0
ldrmi r0, _02209334 ; =0x02211908
movmi r1, #1
@@ -56091,23 +56097,23 @@ _022092F8:
bmi _02209324
mov r0, #1
str r0, [r5]
- bl FUN_02208BE4
+ bl MOD04_02208BE4
_02209324:
- bl FUN_02208CCC
+ bl MOD04_02208CCC
mov r0, r4
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
_02209334: .word 0x02211908
- arm_func_start FUN_02209338
-FUN_02209338: ; 0x02209338
+ arm_func_start MOD04_02209338
+MOD04_02209338: ; 0x02209338
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x34]
- bl FUN_022093B0
+ bl MOD04_022093B0
ldr r0, [r4, #0x38]
- bl FUN_022093B0
+ bl MOD04_022093B0
ldr r0, [r4, #0x20]
cmp r0, #0
beq _02209384
@@ -56136,8 +56142,8 @@ _02209384:
.align 2, 0
_022093AC: .word 0x02211904
- arm_func_start FUN_022093B0
-FUN_022093B0: ; 0x022093B0
+ arm_func_start MOD04_022093B0
+MOD04_022093B0: ; 0x022093B0
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
movs r7, r0
@@ -56167,8 +56173,8 @@ _022093FC:
.align 2, 0
_0220940C: .word 0x02211904
- arm_func_start FUN_02209410
-FUN_02209410: ; 0x02209410
+ arm_func_start MOD04_02209410
+MOD04_02209410: ; 0x02209410
stmdb sp!, {r4, lr}
ldr r1, _02209434 ; =0x02211904
mov r4, r0
@@ -56176,13 +56182,13 @@ FUN_02209410: ; 0x02209410
ldr r1, [r1]
blx r1
mov r0, r4
- bl FUN_02209338
+ bl MOD04_02209338
ldmia sp!, {r4, pc}
.align 2, 0
_02209434: .word 0x02211904
- arm_func_start FUN_02209438
-FUN_02209438: ; 0x02209438
+ arm_func_start MOD04_02209438
+MOD04_02209438: ; 0x02209438
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xc
mov fp, r0
@@ -56216,7 +56222,7 @@ _02209478:
streq r1, [r0]
beq _02209918
mov r1, #0x58
- bl FUN_02209FA8
+ bl MOD04_02209FA8
ldr r1, _022099A4 ; =0x02211924
mov r0, #0x420
ldr r2, [r1]
@@ -56230,13 +56236,13 @@ _02209478:
streq r1, [r0]
beq _02209918
mov r1, #0x420
- bl FUN_02209FA8
+ bl MOD04_02209FA8
ldr r1, [r7, #0x30]
mov r0, fp
str r5, [r1, #0x18]
ldr r1, [r7, #0x30]
str r4, [r1, #0xc]
- bl FUN_02209FBC
+ bl MOD04_02209FBC
mov r4, r0
cmp r4, #7
ldrle r0, _022099A0 ; =0x02211908
@@ -56249,13 +56255,13 @@ _02209478:
mov r0, fp
mov r2, sl
str r3, [r7, #0x28]
- bl FUN_02209FC8
+ bl MOD04_02209FC8
cmp r0, #0
beq _02209580
ldr r1, _022099AC ; =0x0220FA80
mov r0, fp
mov r2, #8
- bl FUN_02209FC8
+ bl MOD04_02209FC8
cmp r0, #0
ldrne r0, _022099A0 ; =0x02211908
movne r1, #4
@@ -56289,7 +56295,7 @@ _022095B4:
sub r0, sb, #1
mov r1, r4
add r0, r8, r0
- bl FUN_0220B8E4
+ bl MOD04_0220B8E4
mov r0, r0, lsl #0x18
movs r0, r0, asr #0x18
ldrmi r0, _022099A0 ; =0x02211908
@@ -56337,7 +56343,7 @@ _0220962C:
beq _02209918
mov r1, fp
mov r2, sl
- bl FUN_02209F90
+ bl MOD04_02209F90
mov r6, #0
ldr r0, [sp, #4]
mov sb, r6
@@ -56356,7 +56362,7 @@ _022096AC:
sub r0, r6, #1
mov r1, fp
add r0, r8, r0
- bl FUN_0220B8E4
+ bl MOD04_0220B8E4
mov r0, r0, lsl #0x18
mov r3, r0, asr #0x18
add r1, sl, sb
@@ -56447,7 +56453,7 @@ _022097E4:
ldr r1, [r7, #0x10]
add r0, r0, r2
sub r1, r1, r2
- bl FUN_0220B688
+ bl MOD04_0220B688
cmp r0, #0
ldrlt r0, [r7, #0x28]
blt _02209834
@@ -56480,7 +56486,7 @@ _02209840:
streq r1, [r0]
beq _02209918
mov r1, #0x830
- bl FUN_02209FA8
+ bl MOD04_02209FA8
ldr r1, _022099A4 ; =0x02211924
add r0, r4, #1
ldr r2, [r1]
@@ -56498,7 +56504,7 @@ _02209840:
ldr r1, [r7, #0x24]
mov r2, r4
add r1, r1, sl
- bl FUN_02209F90
+ bl MOD04_02209F90
ldr r0, [r7, #0x20]
mov r1, #0
ldr r0, [r0, #0x800]
@@ -56507,7 +56513,7 @@ _022098E4:
ldr r1, _022099B8 ; =0x0220BDE4
add r0, r7, #0x44
mov r2, #0x14
- bl FUN_02209F90
+ bl MOD04_02209F90
ldr r0, [sp, #0x34]
ldr r1, [sp, #0x30]
str r0, [r7, #0x2c]
@@ -56567,8 +56573,8 @@ _022099B4: .word 0x0000FFFF
_022099B8: .word 0x0220BDE4
_022099BC: .word 0x02211904
- arm_func_start FUN_022099C0
-FUN_022099C0: ; 0x022099C0
+ arm_func_start MOD04_022099C0
+MOD04_022099C0: ; 0x022099C0
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
mov r5, r0
@@ -56613,8 +56619,8 @@ _02209A54:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_02209A68
-FUN_02209A68: ; 0x02209A68
+ arm_func_start MOD04_02209A68
+MOD04_02209A68: ; 0x02209A68
ldr r2, [r0, #8]
cmp r2, #0
beq _02209A80
@@ -56630,8 +56636,8 @@ _02209A88:
ldr r0, [r0, #4]
bx lr
- arm_func_start FUN_02209A98
-FUN_02209A98: ; 0x02209A98
+ arm_func_start MOD04_02209A98
+MOD04_02209A98: ; 0x02209A98
stmdb sp!, {r4, r5, r6, r7, lr}
sub sp, sp, #4
mov r7, r0
@@ -56654,7 +56660,7 @@ _02209AE0:
add r2, sp, #0
mov r0, r7
mov r1, r6
- bl FUN_02209BB8
+ bl MOD04_02209BB8
movs r4, r0
bmi _02209B44
ldr r1, _02209BB0 ; =0x02211924
@@ -56670,7 +56676,7 @@ _02209AE0:
ldr r2, [sp]
mov r0, r7
mov r3, r4
- bl FUN_02208DCC
+ bl MOD04_02208DCC
ldr r1, [r7, #0x14]
add sp, sp, #4
mov r0, r4
@@ -56679,7 +56685,7 @@ _02209AE0:
_02209B44:
ldr r0, _02209BB4 ; =0x0220FA8C
mov r1, r6
- bl FUN_0220A038
+ bl MOD04_0220A038
cmp r0, #0
addne sp, sp, #4
mvnne r0, #0
@@ -56697,7 +56703,7 @@ _02209B44:
mov r0, r7
mov r2, #9
mov r3, #3
- bl FUN_02208DCC
+ bl MOD04_02208DCC
ldr r1, [r7, #0x14]
mov r0, #3
str r1, [r5]
@@ -56708,8 +56714,8 @@ _02209BAC: .word 0x02211904
_02209BB0: .word 0x02211924
_02209BB4: .word 0x0220FA8C
- arm_func_start FUN_02209BB8
-FUN_02209BB8: ; 0x02209BB8
+ arm_func_start MOD04_02209BB8
+MOD04_02209BB8: ; 0x02209BB8
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #8
mov r5, r0
@@ -56718,7 +56724,7 @@ FUN_02209BB8: ; 0x02209BB8
ldr r2, [r5]
add r3, sp, #4
mov r1, #0xc
- bl FUN_02209014
+ bl MOD04_02209014
mov sb, r0
cmp sb, #0
ble _02209CB8
@@ -56729,7 +56735,7 @@ _02209BF0:
mov r0, r5
mov r1, sb
mov r3, r7
- bl FUN_02209014
+ bl MOD04_02209014
ldr r2, [sp, #4]
mov r8, r0
cmp r2, #0
@@ -56738,7 +56744,7 @@ _02209BF0:
mov r1, sb
mov r3, sl
str r6, [sp]
- bl FUN_02208EC4
+ bl MOD04_02208EC4
cmp r0, #0
bne _02209CAC
ldr r1, [sp, #4]
@@ -56749,7 +56755,7 @@ _02209BF0:
ldr r2, [r5]
mov r0, r5
mov r3, #0
- bl FUN_02209014
+ bl MOD04_02209014
cmp r0, #0
ldrle r6, [r5]
ble _02209C74
@@ -56763,7 +56769,7 @@ _02209C74:
mov r0, r5
mov r2, r6
add r1, r1, #1
- bl FUN_02208FA4
+ bl MOD04_02208FA4
cmp r0, #0
movlt r0, r6
str r0, [r4]
@@ -56783,8 +56789,8 @@ _02209CB8:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- arm_func_start FUN_02209CC4
-FUN_02209CC4: ; 0x02209CC4
+ arm_func_start MOD04_02209CC4
+MOD04_02209CC4: ; 0x02209CC4
stmdb sp!, {r4, r5, r6, lr}
mov r4, r0
ldr r0, [r4, #0x1c]
@@ -56822,8 +56828,8 @@ _02209D28:
.align 2, 0
_02209D3C: .word 0x02211904
- arm_func_start FUN_02209D40
-FUN_02209D40: ; 0x02209D40
+ arm_func_start MOD04_02209D40
+MOD04_02209D40: ; 0x02209D40
stmdb sp!, {lr}
sub sp, sp, #4
cmp r1, #0
@@ -56835,8 +56841,8 @@ FUN_02209D40: ; 0x02209D40
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_02209D68
-FUN_02209D68: ; 0x02209D68
+ arm_func_start MOD04_02209D68
+MOD04_02209D68: ; 0x02209D68
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, r1
@@ -56858,8 +56864,8 @@ FUN_02209D68: ; 0x02209D68
.align 2, 0
_02209DB0: .word 0xFFFFFC16
- arm_func_start FUN_02209DB4
-FUN_02209DB4: ; 0x02209DB4
+ arm_func_start MOD04_02209DB4
+MOD04_02209DB4: ; 0x02209DB4
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, r1
@@ -56881,8 +56887,8 @@ FUN_02209DB4: ; 0x02209DB4
.align 2, 0
_02209DFC: .word 0xFFFFFC16
- arm_func_start FUN_02209E00
-FUN_02209E00: ; 0x02209E00
+ arm_func_start MOD04_02209E00
+MOD04_02209E00: ; 0x02209E00
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xc
mov r3, r3, lsl #0x10
@@ -56917,8 +56923,8 @@ _02209E6C:
.align 2, 0
_02209E78: .word 0xFFFFFC16
- arm_func_start FUN_02209E7C
-FUN_02209E7C: ; 0x02209E7C
+ arm_func_start MOD04_02209E7C
+MOD04_02209E7C: ; 0x02209E7C
stmdb sp!, {r4, r5, r6, r7, r8, lr}
mov r8, r1
mov r0, r8
@@ -56945,8 +56951,8 @@ _02209EB4:
.align 2, 0
_02209ED0: .word 0x00002710
- arm_func_start FUN_02209ED4
-FUN_02209ED4: ; 0x02209ED4
+ arm_func_start MOD04_02209ED4
+MOD04_02209ED4: ; 0x02209ED4
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -56959,10 +56965,10 @@ FUN_02209ED4: ; 0x02209ED4
ldr r0, [r5, #8]
cmp r0, #0
beq _02209F4C
- bl FUN_02209F5C
+ bl MOD04_02209F5C
ldr r1, [r5, #0x1c]
ldr r0, [r5, #0x20]
- ldr r2, _02209F58 ; =FUN_02209F84
+ ldr r2, _02209F58 ; =MOD04_02209F84
str r1, [r0, #0x814]
ldr r3, [r5, #0x18]
ldr r1, [r5, #0x20]
@@ -56982,10 +56988,10 @@ _02209F4C:
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
.align 2, 0
-_02209F58: .word FUN_02209F84
+_02209F58: .word MOD04_02209F84
- arm_func_start FUN_02209F5C
-FUN_02209F5C: ; 0x02209F5C
+ arm_func_start MOD04_02209F5C
+MOD04_02209F5C: ; 0x02209F5C
stmdb sp!, {lr}
sub sp, sp, #4
ldr r0, _02209F80 ; =0x02211A24
@@ -56998,14 +57004,14 @@ FUN_02209F5C: ; 0x02209F5C
.align 2, 0
_02209F80: .word 0x02211A24
- arm_func_start FUN_02209F84
-FUN_02209F84: ; 0x02209F84
+ arm_func_start MOD04_02209F84
+MOD04_02209F84: ; 0x02209F84
ands r1, r0, #0x8000
bicne r0, r0, #0x8000
bx lr
- arm_func_start FUN_02209F90
-FUN_02209F90: ; 0x02209F90
+ arm_func_start MOD04_02209F90
+MOD04_02209F90: ; 0x02209F90
ldr ip, _02209FA4 ; =0x020CE3E0
mov r3, r0
mov r0, r1
@@ -57014,8 +57020,8 @@ FUN_02209F90: ; 0x02209F90
.align 2, 0
_02209FA4: .word 0x020CE3E0
- arm_func_start FUN_02209FA8
-FUN_02209FA8: ; 0x02209FA8
+ arm_func_start MOD04_02209FA8
+MOD04_02209FA8: ; 0x02209FA8
ldr ip, _02209FB8 ; =0x020CE34C
mov r2, r1
mov r1, #0
@@ -57023,15 +57029,15 @@ FUN_02209FA8: ; 0x02209FA8
.align 2, 0
_02209FB8: .word 0x020CE34C
- arm_func_start FUN_02209FBC
-FUN_02209FBC: ; 0x02209FBC
+ arm_func_start MOD04_02209FBC
+MOD04_02209FBC: ; 0x02209FBC
ldr ip, _02209FC4 ; =0x020DE0BC
bx ip
.align 2, 0
_02209FC4: .word 0x020DE0BC
- arm_func_start FUN_02209FC8
-FUN_02209FC8: ; 0x02209FC8
+ arm_func_start MOD04_02209FC8
+MOD04_02209FC8: ; 0x02209FC8
cmp r2, #0
ble _0220A030
_02209FD0:
@@ -57067,15 +57073,15 @@ _0220A030:
mov r0, r2
bx lr
- arm_func_start FUN_0220A038
-FUN_0220A038: ; 0x0220A038
+ arm_func_start MOD04_0220A038
+MOD04_0220A038: ; 0x0220A038
ldr ip, _0220A040 ; =0x020DE090
bx ip
.align 2, 0
_0220A040: .word 0x020DE090
- arm_func_start FUN_0220A044
-FUN_0220A044: ; 0x0220A044
+ arm_func_start MOD04_0220A044
+MOD04_0220A044: ; 0x0220A044
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x124
mov r0, #0
@@ -57179,18 +57185,18 @@ FUN_0220A044: ; 0x0220A044
str r0, [sp, #0xfc]
str r0, [sp, #0x104]
_0220A1DC:
- bl FUN_02208CE0
- bl FUN_022089E0
+ bl MOD04_02208CE0
+ bl MOD04_022089E0
cmp r0, #0
ldrne sb, [r0, #8]
ldrne r4, [r0, #0xc]
ldrne r1, _0220B000 ; =0x02211914
ldreq sb, [sp, #0x20]
strne r0, [r1]
- bl FUN_02208CCC
+ bl MOD04_02208CCC
cmp sb, #0
bge _0220A210
- bl FUN_02208C00
+ bl MOD04_02208C00
b _0220B3E8
_0220A210:
ldr fp, [r4, #0x30]
@@ -57198,7 +57204,7 @@ _0220A210:
cmp r0, #0
bne _0220B348
mov r0, r4
- bl FUN_022099C0
+ bl MOD04_022099C0
str r0, [sp, #0xc]
cmp r0, #0
ldreq r0, [sp, #0x24]
@@ -57233,7 +57239,7 @@ _0220A284:
blt _0220A2C8
mov r1, r5
mov r0, r4
- bl FUN_02209E7C
+ bl MOD04_02209E7C
cmp r0, #0
ldrlt r0, [sp, #0x34]
ldr r5, [sp, #0x38]
@@ -57243,16 +57249,16 @@ _0220A284:
bne _0220B348
_0220A2C8:
mov r0, r4
- bl FUN_02209ED4
+ bl MOD04_02209ED4
movs r5, r0
ldrmi r0, [sp, #0x3c]
strmi r0, [sp, #4]
bmi _0220B348
- bl FUN_02208CE0
+ bl MOD04_02208CE0
ldr r0, _0220B000 ; =0x02211914
ldr r0, [r0]
str r5, [r0, #0x10]
- bl FUN_02208CCC
+ bl MOD04_02208CCC
ldr r0, [r4, #4]
cmp r0, #0
bne _0220B348
@@ -57260,7 +57266,7 @@ _0220A2C8:
ldr r3, [r4, #0x28]
mov r0, r4
mov r1, r5
- bl FUN_02209E00
+ bl MOD04_02209E00
cmp r0, #0
ldrge r0, [sp, #0x2c]
strge r0, [sp, #8]
@@ -57268,12 +57274,12 @@ _0220A2C8:
strlt r0, [sp, #8]
b _0220A344
_0220A32C:
- bl FUN_02209F5C
- bl FUN_02208CE0
+ bl MOD04_02209F5C
+ bl MOD04_02208CE0
ldr r0, _0220B000 ; =0x02211914
ldr r0, [r0]
str r5, [r0, #0x10]
- bl FUN_02208CCC
+ bl MOD04_02208CCC
_0220A344:
ldr r0, [r4, #4]
cmp r0, #0
@@ -57287,7 +57293,7 @@ _0220A344:
str r0, [sp, #0x108]
str r0, [sp, #8]
ldr r0, [r4, #0x24]
- bl FUN_02209FBC
+ bl MOD04_02209FBC
mov sb, r0
ldr r0, [sp, #0x34]
str r0, [sp, #4]
@@ -57306,7 +57312,7 @@ _0220A3A4:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57319,7 +57325,7 @@ _0220A3D4:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57332,7 +57338,7 @@ _0220A404:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57349,7 +57355,7 @@ _0220A430:
mov r2, r8
ldr r3, [r4, #0x24]
add r3, r3, sl
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57362,7 +57368,7 @@ _0220A474:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57374,7 +57380,7 @@ _0220A4A0:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57390,7 +57396,7 @@ _0220A4A0:
ldr r0, [sp, #0x58]
str r0, [sp]
mov r0, r4
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57405,7 +57411,7 @@ _0220A4A0:
mov r2, r8
ldr r3, [r4, #0x24]
add r3, r3, sb
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57416,18 +57422,18 @@ _0220A548:
mov r1, r5
mov r2, r8
str r7, [sp]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
beq _0220A284
add r0, r4, #0x34
- bl FUN_02208888
+ bl MOD04_02208888
movs sb, r0
beq _0220A660
_0220A580:
ldr r0, [sb, #8]
- bl FUN_02209FBC
+ bl MOD04_02209FBC
cmp r0, #0
beq _0220A5B8
str r0, [sp]
@@ -57435,7 +57441,7 @@ _0220A580:
mov r1, r5
mov r2, r8
ldr r3, [sb, #8]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57446,13 +57452,13 @@ _0220A5B8:
mov r1, r5
mov r2, r8
str r7, [sp]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
beq _0220A284
ldr r0, [sb, #0xc]
- bl FUN_02209FBC
+ bl MOD04_02209FBC
cmp r0, #0
beq _0220A618
str r0, [sp]
@@ -57460,7 +57466,7 @@ _0220A5B8:
mov r1, r5
mov r2, r8
ldr r3, [sb, #0xc]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57471,7 +57477,7 @@ _0220A618:
mov r1, r5
mov r2, r8
str r7, [sp]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57481,7 +57487,7 @@ _0220A618:
ldr r1, [r1]
blx r1
add r0, r4, #0x34
- bl FUN_02208888
+ bl MOD04_02208888
movs sb, r0
bne _0220A580
_0220A660:
@@ -57516,7 +57522,7 @@ _0220A6B4:
_0220A6C8:
ldr r0, [sb, #8]
add sl, sl, #0x16
- bl FUN_02209FBC
+ bl MOD04_02209FBC
add r0, r0, #0x29
add sl, sl, r0
ldr r0, [sb, #0x14]
@@ -57541,7 +57547,7 @@ _0220A714:
mov r1, r5
mov r2, r8
add sl, sl, #0x18
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57552,7 +57558,7 @@ _0220A714:
mov r0, r4
mov r2, r8
add r3, r4, #0x46
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57562,7 +57568,7 @@ _0220A714:
mov r1, r5
mov r2, r8
str r7, [sp]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57573,11 +57579,11 @@ _0220A79C:
beq _0220A7E0
_0220A7A4:
ldr r0, [sb, #8]
- bl FUN_0220BA58
+ bl MOD04_0220BA58
add r0, sl, r0
add sl, r0, #1
ldr r0, [sb, #0xc]
- bl FUN_0220BA58
+ bl MOD04_0220BA58
add sl, sl, r0
ldr r0, [r4, #0x38]
ldr r0, [r0]
@@ -57594,7 +57600,7 @@ _0220A7E0:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57606,14 +57612,14 @@ _0220A80C:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
beq _0220A284
mov r1, sl
mov r0, r6
- bl FUN_0220B788
+ bl MOD04_0220B788
str r0, [sp, #0x10c]
cmp r0, #0
beq _0220A878
@@ -57622,7 +57628,7 @@ _0220A80C:
mov r1, r5
mov r2, r8
mov r3, r6
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57633,7 +57639,7 @@ _0220A878:
mov r1, r5
mov r2, r8
str r7, [sp]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57644,7 +57650,7 @@ _0220A8A0:
mov r1, r5
mov r2, r8
str r7, [sp]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57665,7 +57671,7 @@ _0220A8EC:
mov r0, r4
mov r2, r8
add r3, r4, #0x44
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57675,7 +57681,7 @@ _0220A8EC:
mov r1, r5
mov r2, r8
str r7, [sp]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57686,13 +57692,13 @@ _0220A8EC:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
beq _0220A284
ldr r0, [sb, #8]
- bl FUN_02209FBC
+ bl MOD04_02209FBC
cmp r0, #0
beq _0220A9A4
str r0, [sp]
@@ -57700,7 +57706,7 @@ _0220A8EC:
mov r1, r5
mov r2, r8
ldr r3, [sb, #8]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57712,7 +57718,7 @@ _0220A9A4:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57726,7 +57732,7 @@ _0220A9A4:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57737,7 +57743,7 @@ _0220AA08:
mov r1, r5
mov r2, r8
str r7, [sp]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57750,7 +57756,7 @@ _0220AA08:
mov r1, r5
mov r2, r8
ldr r3, [sb, #0xc]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57761,7 +57767,7 @@ _0220AA64:
mov r1, r5
mov r2, r8
str r7, [sp]
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57780,7 +57786,7 @@ _0220AAA8:
mov r0, r4
mov r2, r8
add r3, r4, #0x44
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57791,7 +57797,7 @@ _0220AAA8:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57810,7 +57816,7 @@ _0220AB10:
_0220AB24:
ldrsb r1, [r1, sb]
mov r0, r6
- bl FUN_0220B9CC
+ bl MOD04_0220B9CC
str r0, [sp, #0x10c]
cmp r0, #0
beq _0220AB64
@@ -57819,7 +57825,7 @@ _0220AB24:
mov r1, r5
mov r2, r8
mov r3, r6
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57837,7 +57843,7 @@ _0220AB78:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57850,7 +57856,7 @@ _0220AB78:
_0220ABB8:
ldrsb r1, [r1, sb]
mov r0, r6
- bl FUN_0220B9CC
+ bl MOD04_0220B9CC
str r0, [sp, #0x10c]
cmp r0, #0
beq _0220ABF8
@@ -57859,7 +57865,7 @@ _0220ABB8:
mov r1, r5
mov r2, r8
mov r3, r6
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57881,7 +57887,7 @@ _0220AC0C:
mov r0, r4
mov r1, r5
mov r2, r8
- bl FUN_0220B490
+ bl MOD04_0220B490
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57898,7 +57904,7 @@ _0220AC54:
str r0, [sp]
mov r0, r4
mov r1, r5
- bl FUN_02209D68
+ bl MOD04_02209D68
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -57929,7 +57935,7 @@ _0220ACB4:
ldr r3, [sp, #0x2c]
mov r0, r4
mov r1, r5
- bl FUN_02209DB4
+ bl MOD04_02209DB4
ldr r3, [sp, #0x108]
add r1, fp, r3
ldrsb r2, [r1, #0x20]
@@ -57973,7 +57979,7 @@ _0220AD6C:
mov r0, r4
mov r1, r5
add r2, r2, sl
- bl FUN_02209DB4
+ bl MOD04_02209DB4
add r1, sb, sl
ldrsb r2, [r1, #4]
ldr r1, [sp, #0x108]
@@ -58015,13 +58021,13 @@ _0220ADA0:
ldr r2, [sp, #0x9c]
ldr r3, [sp, #0xa0]
mov r0, fp
- bl FUN_02208DCC
+ bl MOD04_02208DCC
cmp r0, #0
beq _0220B348
ldr r0, _0220B04C ; =0x02211A44
ldr r1, _0220B058 ; =0x0220FB60
ldr r2, [sp, #0x44]
- bl FUN_02209FC8
+ bl MOD04_02209FC8
cmp r0, #0
bne _0220B348
ldr r0, _0220B04C ; =0x02211A44
@@ -58030,20 +58036,20 @@ _0220ADA0:
bne _0220B348
ldr r0, _0220B05C ; =0x02211A4D
ldr r1, [sp, #0x3c]
- bl FUN_0220B844
+ bl MOD04_0220B844
cmp r0, #0
blt _0220B348
ldr r1, [sp, #0xa4]
ldr r2, [fp]
mov r0, fp
add r3, sp, #0x110
- bl FUN_02209014
+ bl MOD04_02209014
cmp r0, #0
blt _0220B348
ldr r1, _0220B060 ; =0x0220FB68
mov r0, fp
add r2, sp, #0x10c
- bl FUN_02209BB8
+ bl MOD04_02209BB8
movs sb, r0
ldreq r0, [sp, #0xa8]
streq r0, [sp, #4]
@@ -58056,12 +58062,12 @@ _0220ADA0:
ldr r2, [sp, #0x10c]
mov r0, fp
mov r3, sb
- bl FUN_02208DCC
+ bl MOD04_02208DCC
cmp r0, #0
beq _0220B348
ldr r0, _0220B04C ; =0x02211A44
mov r1, sb
- bl FUN_0220B844
+ bl MOD04_0220B844
movs sb, r0
bmi _0220B348
str sb, [r4, #0x14]
@@ -58078,7 +58084,7 @@ _0220AF00:
ldr r1, _0220B064 ; =0x0220FB78
mov r0, fp
add r2, sp, #0x10c
- bl FUN_02209BB8
+ bl MOD04_02209BB8
str r0, [sp, #8]
cmp r0, #0
beq _0220B348
@@ -58095,7 +58101,7 @@ _0220AF00:
ldr r3, _0220B068 ; =0x0220FB84
mov r0, fp
add r2, r1, r2
- bl FUN_02208EC4
+ bl MOD04_02208EC4
cmp r0, #0
ldreq r0, [sp, #0x2c]
streq r0, [sp, #8]
@@ -58109,7 +58115,7 @@ _0220AF88:
ldr r1, _0220B06C ; =0x0220FB90
mov r0, fp
add r2, sp, #0x10c
- bl FUN_02209BB8
+ bl MOD04_02209BB8
movs r2, r0
beq _0220B348
cmp r2, #0x400
@@ -58123,7 +58129,7 @@ _0220AF88:
str r3, [sp]
ldr r3, _0220B070 ; =0x0220FBA4
add r2, r1, r2
- bl FUN_02208EC4
+ bl MOD04_02208EC4
cmp r0, #0
ldreq r1, [sp, #0x2c]
ldrne r1, [sp, #0xcc]
@@ -58175,7 +58181,7 @@ _0220B074:
ldr r2, [fp, #4]
mov r0, r4
mov r3, sb
- bl FUN_02208D18
+ bl MOD04_02208D18
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -58189,7 +58195,7 @@ _0220B0B0:
ble _0220B0CC
mov r0, fp
ldr r1, [fp, #4]
- bl FUN_02208DB8
+ bl MOD04_02208DB8
cmp r0, #0
beq _0220B074
_0220B0CC:
@@ -58197,7 +58203,7 @@ _0220B0CC:
beq _0220B0F8
ldr r1, [fp, #4]
mov r0, fp
- bl FUN_02208DB8
+ bl MOD04_02208DB8
cmp r0, #0
ldrne r0, [sp, #0x58]
strne r0, [sp, #4]
@@ -58227,7 +58233,7 @@ _0220B124:
mov r0, r4
mov r1, r5
add r2, r2, sb
- bl FUN_02209DB4
+ bl MOD04_02209DB4
cmp r0, #0
blt _0220B348
ldr r2, [sp, #0x108]
@@ -58253,7 +58259,7 @@ _0220B18C:
str r2, [sp, #0x10c]
mov r0, r4
mov r1, r5
- bl FUN_0220B404
+ bl MOD04_0220B404
cmp r0, #0
ble _0220B348
_0220B1B4:
@@ -58261,7 +58267,7 @@ _0220B1B4:
cmp r1, #0
beq _0220B348
ldr r0, _0220B04C ; =0x02211A44
- bl FUN_0220B8E4
+ bl MOD04_0220B8E4
str r0, [sp, #0x1c]
cmp r0, #0
bge _0220B1EC
@@ -58290,7 +58296,7 @@ _0220B214:
ldr r2, [fp, #4]
mov r0, r4
mov r1, r5
- bl FUN_02208D18
+ bl MOD04_02208D18
cmp r0, #0
ble _0220B348
ldr r1, [sp, #0x1c]
@@ -58306,7 +58312,7 @@ _0220B214:
mov r0, r4
mov r1, r5
mov r3, r7
- bl FUN_02209DB4
+ bl MOD04_02209DB4
cmp r0, #0
ble _0220B348
_0220B278:
@@ -58317,14 +58323,14 @@ _0220B278:
_0220B288:
mov r0, r4
mov r1, r5
- bl FUN_0220B404
+ bl MOD04_0220B404
ldr r0, [sp, #0xec]
str r0, [sp, #4]
b _0220B348
_0220B2A0:
mov r0, fp
ldr r1, [fp, #4]
- bl FUN_02208DB8
+ bl MOD04_02208DB8
cmp r0, #0
bne _0220B348
_0220B2B4:
@@ -58332,7 +58338,7 @@ _0220B2B4:
ldr r3, [sp, #0xf0]
mov r0, r4
mov r1, r5
- bl FUN_02208D88
+ bl MOD04_02208D88
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -58344,7 +58350,7 @@ _0220B2B4:
str r0, [fp, #4]
mov r0, fp
ldr r1, [fp, #4]
- bl FUN_02208DB8
+ bl MOD04_02208DB8
cmp r0, #0
beq _0220B334
ldr r0, [sp, #0xf8]
@@ -58353,7 +58359,7 @@ _0220B2B4:
ldr r3, [sp, #0x2c]
mov r0, r4
mov r1, r5
- bl FUN_02209DB4
+ bl MOD04_02209DB4
cmp r0, #0
blt _0220B348
cmp r0, #0
@@ -58363,11 +58369,11 @@ _0220B2B4:
_0220B334:
mov r0, fp
ldr r1, [fp, #4]
- bl FUN_02208DB8
+ bl MOD04_02208DB8
cmp r0, #0
beq _0220B2B4
_0220B348:
- bl FUN_02208CE0
+ bl MOD04_02208CE0
ldr r0, _0220B000 ; =0x02211914
ldr r1, _0220B024 ; =0x02211904
ldr r0, [r0]
@@ -58376,7 +58382,7 @@ _0220B348:
ldr r1, [sp, #0xfc]
ldr r0, _0220B000 ; =0x02211914
str r1, [r0]
- bl FUN_02208CCC
+ bl MOD04_02208CCC
ldr r0, [r4, #4]
cmp r0, #0
ldrne r0, [sp, #0x50]
@@ -58385,7 +58391,7 @@ _0220B348:
blt _0220B3A4
mov r1, r5
mov r0, r4
- bl FUN_02209E7C
+ bl MOD04_02209E7C
cmp r0, #0
ldrlt r0, [sp, #0x34]
ldr r5, [sp, #0x100]
@@ -58403,7 +58409,7 @@ _0220B3A4:
ldr sl, [r4, #0x2c]
mov r0, r4
ldr sb, [r4, #0x3c]
- bl FUN_02209338
+ bl MOD04_02209338
ldr r0, [sp, #4]
mov r1, fp
mov r2, sl
@@ -58418,8 +58424,8 @@ _0220B3E8:
.align 2, 0
_0220B400: .word 0x02211908
- arm_func_start FUN_0220B404
-FUN_0220B404: ; 0x0220B404
+ arm_func_start MOD04_0220B404
+MOD04_0220B404: ; 0x0220B404
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #8
mov r7, #0
@@ -58437,7 +58443,7 @@ _0220B434:
mov r1, sb
mov r3, r5
str r6, [sp]
- bl FUN_02209DB4
+ bl MOD04_02209DB4
cmp r0, #0
addle sp, sp, #8
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
@@ -58458,8 +58464,8 @@ _0220B45C:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
- arm_func_start FUN_0220B490
-FUN_0220B490: ; 0x0220B490
+ arm_func_start MOD04_0220B490
+MOD04_0220B490: ; 0x0220B490
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #4
ldr r7, [sp, #0x28]
@@ -58485,7 +58491,7 @@ _0220B4BC:
mov r1, r8
mov r2, r6
add r0, r0, r3
- bl FUN_02209F90
+ bl MOD04_02209F90
ldr r0, [sb]
add r8, r8, r6
add r0, r0, r6
@@ -58499,7 +58505,7 @@ _0220B4BC:
mov r1, fp
mov r3, r4
str r5, [sp]
- bl FUN_02209D68
+ bl MOD04_02209D68
cmp r0, #0
addle sp, sp, #4
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
@@ -58516,8 +58522,8 @@ _0220B54C:
.align 2, 0
_0220B558: .word 0x02211A44
- arm_func_start FUN_0220B55C
-FUN_0220B55C: ; 0x0220B55C
+ arm_func_start MOD04_0220B55C
+MOD04_0220B55C: ; 0x0220B55C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
@@ -58525,7 +58531,7 @@ FUN_0220B55C: ; 0x0220B55C
mov r4, r1
str r0, [r5]
str r0, [r4]
- bl FUN_02208CE0
+ bl MOD04_02208CE0
ldr r1, _0220B5FC ; =0x02211914
ldr r2, [r1]
cmp r2, #0
@@ -58557,7 +58563,7 @@ _0220B5D8:
movne r4, #1
moveq r4, #0
_0220B5EC:
- bl FUN_02208CCC
+ bl MOD04_02208CCC
mov r0, r4
add sp, sp, #4
ldmia sp!, {r4, r5, pc}
@@ -58565,8 +58571,8 @@ _0220B5EC:
_0220B5FC: .word 0x02211914
_0220B600: .word 0x02211910
- arm_func_start FUN_0220B604
-FUN_0220B604: ; 0x0220B604
+ arm_func_start MOD04_0220B604
+MOD04_0220B604: ; 0x0220B604
stmdb sp!, {r4, r5, r6, r7, r8, lr}
cmp r1, r3
mvnlt r0, #0
@@ -58606,8 +58612,8 @@ _0220B680:
mvn r0, #0
ldmia sp!, {r4, r5, r6, r7, r8, pc}
- arm_func_start FUN_0220B688
-FUN_0220B688: ; 0x0220B688
+ arm_func_start MOD04_0220B688
+MOD04_0220B688: ; 0x0220B688
stmdb sp!, {lr}
sub sp, sp, #4
mov ip, #0
@@ -58643,8 +58649,8 @@ _0220B6F0:
add sp, sp, #4
ldmfd sp!, {pc}
- arm_func_start FUN_0220B704
-FUN_0220B704: ; 0x0220B704
+ arm_func_start MOD04_0220B704
+MOD04_0220B704: ; 0x0220B704
stmdb sp!, {r4, lr}
mov r2, #1
mov r3, #0
@@ -58685,8 +58691,8 @@ _0220B76C:
mvn r0, #0
ldmia sp!, {r4, pc}
- arm_func_start FUN_0220B788
-FUN_0220B788: ; 0x0220B788
+ arm_func_start MOD04_0220B788
+MOD04_0220B788: ; 0x0220B788
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x24
ldr r6, _0220B840 ; =0x0220BE70
@@ -58739,8 +58745,8 @@ _0220B81C:
.align 2, 0
_0220B840: .word 0x0220BE70
- arm_func_start FUN_0220B844
-FUN_0220B844: ; 0x0220B844
+ arm_func_start MOD04_0220B844
+MOD04_0220B844: ; 0x0220B844
stmdb sp!, {r4, r5, r6, lr}
cmp r1, #0xa
mvngt r0, #0
@@ -58789,8 +58795,8 @@ _0220B8DC:
mov r0, r5
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_0220B8E4
-FUN_0220B8E4: ; 0x0220B8E4
+ arm_func_start MOD04_0220B8E4
+MOD04_0220B8E4: ; 0x0220B8E4
stmdb sp!, {r4, r5, r6, lr}
cmp r1, #8
mvngt r0, #0
@@ -58859,8 +58865,8 @@ _0220B9C4:
mov r0, r4
ldmia sp!, {r4, r5, r6, pc}
- arm_func_start FUN_0220B9CC
-FUN_0220B9CC: ; 0x0220B9CC
+ arm_func_start MOD04_0220B9CC
+MOD04_0220B9CC: ; 0x0220B9CC
cmp r1, #0x20
moveq r1, #0x2b
streqb r1, [r0]
@@ -58901,8 +58907,8 @@ _0220BA1C:
mov r0, #3
bx lr
- arm_func_start FUN_0220BA58
-FUN_0220BA58: ; 0x0220BA58
+ arm_func_start MOD04_0220BA58
+MOD04_0220BA58: ; 0x0220BA58
ldrsb r1, [r0], #1
mov r2, #0
cmp r1, #0
@@ -58938,9 +58944,12 @@ _0220BAB8:
mov r0, r2
bx lr
- .section .data
+ .section .rodata
; 0x0220BAC0
- .incbin "baserom.nds", 0x1411e0, 0x4100
+ .incbin "baserom.nds", 0x1411e0, 0x3D4
+
+ .section .data
+ .incbin "baserom.nds", 0x1415C0, 0x3D20
.section .bss
; 0x0220FBC0
diff --git a/arm9/modules/04/asm/thumb_04.s b/arm9/modules/04/asm/thumb_04.s
index 51ee9793..fd1f2483 100644
--- a/arm9/modules/04/asm/thumb_04.s
+++ b/arm9/modules/04/asm/thumb_04.s
@@ -154,7 +154,7 @@ _021D7608:
strb r4, [r3, r1]
cmp r0, #0x20
blt _021D7608
- bl FUN_021D85B4
+ bl MOD04_021D85B4
ldr r0, _021D7644 ; =0x0220FBC0
ldr r1, [r0]
ldr r0, _021D7658 ; =0x00001EF0
@@ -186,8 +186,8 @@ _021D7654: .word 0x00001F08
_021D7658: .word 0x00001EF0
_021D765C: .word 0x00001F38
- thumb_func_start FUN_021D7660
-FUN_021D7660: ; 0x021D7660
+ thumb_func_start MOD04_021D7660
+MOD04_021D7660: ; 0x021D7660
push {r3, lr}
ldr r0, _021D76A0 ; =0x0220FBC0
ldr r1, [r0]
@@ -214,15 +214,15 @@ FUN_021D7660: ; 0x021D7660
str r1, [r0, #4]
str r1, [r0]
_021D7698:
- bl FUN_021DD6F0
+ bl MOD04_021DD6F0
pop {r3, pc}
nop
_021D76A0: .word 0x0220FBC0
_021D76A4: .word 0x00001F08
_021D76A8: .word 0x00001F54
- thumb_func_start FUN_021D76AC
-FUN_021D76AC: ; 0x021D76AC
+ thumb_func_start MOD04_021D76AC
+MOD04_021D76AC: ; 0x021D76AC
push {lr}
sub sp, #0x64
ldr r0, _021D779C ; =0x0220FBC0
@@ -244,9 +244,9 @@ _021D76C8: ; jump table
.short _021D7784 - _021D76C8 - 2 ; case 3
.short _021D778A - _021D76C8 - 2 ; case 4
_021D76D2:
- ldr r0, _021D77A4 ; =FUN_021D7DA8
- ldr r1, _021D77A8 ; =FUN_021D7DEC
- bl FUN_021DD968
+ ldr r0, _021D77A4 ; =MOD04_021D7DA8
+ ldr r1, _021D77A8 ; =MOD04_021D7DEC
+ bl MOD04_021DD968
ldr r0, _021D779C ; =0x0220FBC0
mov r2, #1
ldr r1, [r0]
@@ -254,10 +254,10 @@ _021D76D2:
mov r3, #0x14
add r0, r1, r0
mov r1, #2
- bl FUN_021DDEE0
+ bl MOD04_021DDEE0
mov r0, #2
- bl FUN_021DDE7C
- bl FUN_021DDDCC
+ bl MOD04_021DDE7C
+ bl MOD04_021DDDCC
ldr r1, _021D779C ; =0x0220FBC0
ldr r0, _021D77A0 ; =0x00001F44
ldr r2, [r1]
@@ -268,10 +268,10 @@ _021D76D2:
add r0, #0x14
str r2, [r1, r0]
_021D7708:
- bl FUN_021DDD7C
+ bl MOD04_021DDD7C
cmp r0, #0
beq _021D7730
- bl FUN_021DDC1C
+ bl MOD04_021DDC1C
cmp r0, #4
bne _021D7724
ldr r0, _021D779C ; =0x0220FBC0
@@ -288,10 +288,10 @@ _021D7724:
str r2, [r1, r0]
b _021D7736
_021D7730:
- bl FUN_021DDCE8
+ bl MOD04_021DDCE8
b _021D7794
_021D7736:
- bl FUN_021D7E18
+ bl MOD04_021D7E18
cmp r0, #0
blt _021D7798
ldr r0, _021D779C ; =0x0220FBC0
@@ -313,46 +313,46 @@ _021D7736:
add r0, r1, r0
ldr r1, [r1, r2]
ldr r2, _021D77BC ; =0x000029E7
- bl FUN_021E0374
+ bl MOD04_021E0374
add r0, sp, #0x14
bl OS_GetOwnerInfo
mov r1, #0
- ldr r2, _021D77C0 ; =FUN_021D7A7C
+ ldr r2, _021D77C0 ; =MOD04_021D7A7C
add r0, sp, #0x18
add r3, r1, #0
- bl FUN_021DFE64
+ bl MOD04_021DFE64
ldr r0, _021D779C ; =0x0220FBC0
mov r2, #3
ldr r1, [r0]
ldr r0, _021D77A0 ; =0x00001F44
str r2, [r1, r0]
_021D7784:
- bl FUN_021DFF74
+ bl MOD04_021DFF74
b _021D7794
_021D778A:
- bl FUN_021DFF74
+ bl MOD04_021DFF74
add sp, #0x64
mov r0, #1
pop {pc}
_021D7794:
- bl FUN_021D7E18
+ bl MOD04_021D7E18
_021D7798:
add sp, #0x64
pop {pc}
.align 2, 0
_021D779C: .word 0x0220FBC0
_021D77A0: .word 0x00001F44
-_021D77A4: .word FUN_021D7DA8
-_021D77A8: .word FUN_021D7DEC
+_021D77A4: .word MOD04_021D7DA8
+_021D77A8: .word MOD04_021D7DEC
_021D77AC: .word 0x00001EF4
_021D77B0: .word 0x0220BEA0
_021D77B4: .word 0x0220BEAC
_021D77B8: .word 0x00001EF0
_021D77BC: .word 0x000029E7
-_021D77C0: .word FUN_021D7A7C
+_021D77C0: .word MOD04_021D7A7C
- thumb_func_start FUN_021D77C4
-FUN_021D77C4: ; 0x021D77C4
+ thumb_func_start MOD04_021D77C4
+MOD04_021D77C4: ; 0x021D77C4
push {r3, r4}
ldr r3, _021D77D8 ; =0x0220FBC0
ldr r2, _021D77DC ; =0x00001F0C
@@ -367,8 +367,8 @@ FUN_021D77C4: ; 0x021D77C4
_021D77D8: .word 0x0220FBC0
_021D77DC: .word 0x00001F0C
- thumb_func_start FUN_021D77E0
-FUN_021D77E0: ; 0x021D77E0
+ thumb_func_start MOD04_021D77E0
+MOD04_021D77E0: ; 0x021D77E0
ldr r0, _021D77F8 ; =0x0220FBC0
ldr r2, [r0]
ldr r0, _021D77FC ; =0x00001F44
@@ -386,8 +386,8 @@ _021D77F2:
_021D77F8: .word 0x0220FBC0
_021D77FC: .word 0x00001F44
- thumb_func_start FUN_021D7800
-FUN_021D7800: ; 0x021D7800
+ thumb_func_start MOD04_021D7800
+MOD04_021D7800: ; 0x021D7800
push {r3, r4, r5, lr}
ldr r2, _021D78EC ; =0x0220FBC0
ldr r1, _021D78F0 ; =0x00001F44
@@ -444,24 +444,24 @@ _021D783A:
_021D7864:
cmp r3, #0
bne _021D786E
- bl FUN_021EA530
+ bl MOD04_021EA530
b _021D78E4
_021D786E:
- bl FUN_021DFA40
+ bl MOD04_021DFA40
cmp r0, #1
bne _021D787C
- bl FUN_021D77E0
+ bl MOD04_021D77E0
b _021D78E4
_021D787C:
cmp r0, #0
beq _021D78E4
- bl FUN_021D77E0
+ bl MOD04_021D77E0
b _021D78E4
_021D7886:
mov r0, #1
add r1, #0x40
strh r0, [r4, r1]
- bl FUN_021D8058
+ bl MOD04_021D8058
ldr r0, _021D78EC ; =0x0220FBC0
ldr r2, [r0]
ldr r0, _021D78F8 ; =0x00001F68
@@ -506,10 +506,10 @@ _021D78C4:
mov r0, #3
pop {r3, r4, r5, pc}
_021D78DE:
- bl FUN_021D7E18
+ bl MOD04_021D7E18
pop {r3, r4, r5, pc}
_021D78E4:
- bl FUN_021D7F8C
+ bl MOD04_021D7F8C
pop {r3, r4, r5, pc}
nop
_021D78EC: .word 0x0220FBC0
@@ -517,8 +517,8 @@ _021D78F0: .word 0x00001F44
_021D78F4: .word 0x00001F48
_021D78F8: .word 0x00001F68
- thumb_func_start FUN_021D78FC
-FUN_021D78FC: ; 0x021D78FC
+ thumb_func_start MOD04_021D78FC
+MOD04_021D78FC: ; 0x021D78FC
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #1
@@ -529,7 +529,7 @@ FUN_021D78FC: ; 0x021D78FC
mov r0, #0
pop {r4, r5, r6, pc}
_021D790E:
- bl FUN_021DF95C
+ bl MOD04_021DF95C
cmp r0, #0
bne _021D7930
ldr r0, _021D79A0 ; =0x0220FBC0
@@ -554,7 +554,7 @@ _021D7930:
cmp r0, #0
bne _021D7946
mov r0, #0
- bl FUN_021EB0FC
+ bl MOD04_021EB0FC
cmp r0, #0
bne _021D794A
_021D7946:
@@ -599,7 +599,7 @@ _021D794A:
add r1, r2, r1
mov r0, #0
add r2, r4, #4
- bl FUN_021EB044
+ bl MOD04_021EB044
mov r0, #1
pop {r4, r5, r6, pc}
.align 2, 0
@@ -609,8 +609,8 @@ _021D79A8: .word 0x00001F4C
_021D79AC: .word 0x00001F78
_021D79B0: .word 0x00001002
- thumb_func_start FUN_021D79B4
-FUN_021D79B4: ; 0x021D79B4
+ thumb_func_start MOD04_021D79B4
+MOD04_021D79B4: ; 0x021D79B4
push {r4, r5, r6, lr}
add r5, r0, #0
mov r0, #1
@@ -621,7 +621,7 @@ FUN_021D79B4: ; 0x021D79B4
mov r0, #0
pop {r4, r5, r6, pc}
_021D79C6:
- bl FUN_021DF95C
+ bl MOD04_021DF95C
cmp r0, #0
beq _021D79D2
mov r0, #0
@@ -634,7 +634,7 @@ _021D79D2:
cmp r0, #0
bne _021D79E8
mov r0, #1
- bl FUN_021EB0FC
+ bl MOD04_021EB0FC
cmp r0, #0
bne _021D79EC
_021D79E8:
@@ -678,7 +678,7 @@ _021D79EC:
lsl r1, r0, #0xc
add r1, r2, r1
add r2, r4, #4
- bl FUN_021EB044
+ bl MOD04_021EB044
cmp r0, #0
bne _021D7A4C
ldr r1, _021D7A68 ; =0x0220FBC0
@@ -709,8 +709,8 @@ _021D7A70: .word 0x00001F78
_021D7A74: .word 0x00001002
_021D7A78: .word 0x00001F10
- thumb_func_start FUN_021D7A7C
-FUN_021D7A7C: ; 0x021D7A7C
+ thumb_func_start MOD04_021D7A7C
+MOD04_021D7A7C: ; 0x021D7A7C
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
@@ -737,18 +737,18 @@ FUN_021D7A7C: ; 0x021D7A7C
_021D7AB0:
cmp r5, #0
bne _021D7AE8
- ldr r0, _021D7B00 ; =FUN_021D7B70
+ ldr r0, _021D7B00 ; =MOD04_021D7B70
str r4, [sp]
str r0, [sp, #4]
ldr r2, _021D7AF8 ; =0x0220FBC0
str r4, [sp, #8]
ldr r3, [r2]
ldr r2, _021D7AFC ; =0x00001EF0
- ldr r1, _021D7B04 ; =FUN_021D7B48
+ ldr r1, _021D7B04 ; =MOD04_021D7B48
ldr r2, [r3, r2]
- ldr r3, _021D7B08 ; =FUN_021D7B6C
+ ldr r3, _021D7B08 ; =MOD04_021D7B6C
mov r0, #0
- bl FUN_021DFDBC
+ bl MOD04_021DFDBC
cmp r0, #0
bne _021D7ADC
mov r0, #1
@@ -756,9 +756,9 @@ _021D7AB0:
add sp, #0xc
pop {r4, r5, pc}
_021D7ADC:
- ldr r0, _021D7B0C ; =FUN_021D7BBC
+ ldr r0, _021D7B0C ; =MOD04_021D7BBC
mov r1, #0
- bl FUN_021E242C
+ bl MOD04_021E242C
add sp, #0xc
pop {r4, r5, pc}
_021D7AE8:
@@ -772,14 +772,14 @@ _021D7AE8:
nop
_021D7AF8: .word 0x0220FBC0
_021D7AFC: .word 0x00001EF0
-_021D7B00: .word FUN_021D7B70
-_021D7B04: .word FUN_021D7B48
-_021D7B08: .word FUN_021D7B6C
-_021D7B0C: .word FUN_021D7BBC
+_021D7B00: .word MOD04_021D7B70
+_021D7B04: .word MOD04_021D7B48
+_021D7B08: .word MOD04_021D7B6C
+_021D7B0C: .word MOD04_021D7BBC
_021D7B10: .word 0x00001F44
- thumb_func_start FUN_021D7B14
-FUN_021D7B14: ; 0x021D7B14
+ thumb_func_start MOD04_021D7B14
+MOD04_021D7B14: ; 0x021D7B14
push {r3, lr}
ldr r0, _021D7B3C ; =0x0220FBC0
ldr r1, [r0]
@@ -787,7 +787,7 @@ FUN_021D7B14: ; 0x021D7B14
ldr r0, [r1, r0]
cmp r0, #0
beq _021D7B3A
- bl FUN_021DFA40
+ bl MOD04_021DFA40
ldr r1, _021D7B3C ; =0x0220FBC0
mov r3, #0
ldr r2, [r1]
@@ -805,8 +805,8 @@ _021D7B3C: .word 0x0220FBC0
_021D7B40: .word 0x00001F70
_021D7B44: .word 0x00001F60
- thumb_func_start FUN_021D7B48
-FUN_021D7B48: ; 0x021D7B48
+ thumb_func_start MOD04_021D7B48
+MOD04_021D7B48: ; 0x021D7B48
cmp r0, #0
bne _021D7B58
ldr r0, _021D7B64 ; =0x0220FBC0
@@ -826,13 +826,13 @@ _021D7B58:
_021D7B64: .word 0x0220FBC0
_021D7B68: .word 0x00001F44
- thumb_func_start FUN_021D7B6C
-FUN_021D7B6C: ; 0x021D7B6C
+ thumb_func_start MOD04_021D7B6C
+MOD04_021D7B6C: ; 0x021D7B6C
bx lr
.align 2, 0
- thumb_func_start FUN_021D7B70
-FUN_021D7B70: ; 0x021D7B70
+ thumb_func_start MOD04_021D7B70
+MOD04_021D7B70: ; 0x021D7B70
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, _021D7BB8 ; =0x0220FBC0
@@ -866,20 +866,20 @@ FUN_021D7B70: ; 0x021D7B70
nop
_021D7BB8: .word 0x0220FBC0
- thumb_func_start FUN_021D7BBC
-FUN_021D7BBC: ; 0x021D7BBC
+ thumb_func_start MOD04_021D7BBC
+MOD04_021D7BBC: ; 0x021D7BBC
bx lr
.align 2, 0
- thumb_func_start FUN_021D7BC0
-FUN_021D7BC0: ; 0x021D7BC0
+ thumb_func_start MOD04_021D7BC0
+MOD04_021D7BC0: ; 0x021D7BC0
push {r3, lr}
ldr r0, _021D7C1C ; =0x0220FBC0
mov r2, #7
ldr r1, [r0]
ldr r0, _021D7C20 ; =0x00001F44
str r2, [r1, r0]
- bl FUN_021DF95C
+ bl MOD04_021DF95C
cmp r0, #0
bne _021D7BDA
mov r2, #1
@@ -900,7 +900,7 @@ _021D7BDE:
ldr r0, [r1, r0]
lsl r0, r0, #0x18
lsr r0, r0, #0x18
- bl FUN_021EAE38
+ bl MOD04_021EAE38
ldr r0, _021D7C1C ; =0x0220FBC0
ldr r1, [r0]
ldr r0, _021D7C24 ; =0x00001F50
@@ -908,7 +908,7 @@ _021D7BDE:
ldr r1, _021D7C28 ; =0x00002710
lsl r0, r0, #0x18
lsr r0, r0, #0x18
- bl FUN_021EACF8
+ bl MOD04_021EACF8
ldr r1, _021D7C1C ; =0x0220FBC0
ldr r0, _021D7C2C ; =0x00001F70
ldr r2, [r1]
@@ -925,8 +925,8 @@ _021D7C24: .word 0x00001F50
_021D7C28: .word 0x00002710
_021D7C2C: .word 0x00001F70
- thumb_func_start FUN_021D7C30
-FUN_021D7C30: ; 0x021D7C30
+ thumb_func_start MOD04_021D7C30
+MOD04_021D7C30: ; 0x021D7C30
ldr r1, _021D7C44 ; =0x0220FBC0
ldr r0, _021D7C48 ; =0x00001F4C
ldr r2, [r1]
@@ -940,8 +940,8 @@ FUN_021D7C30: ; 0x021D7C30
_021D7C44: .word 0x0220FBC0
_021D7C48: .word 0x00001F4C
- thumb_func_start FUN_021D7C4C
-FUN_021D7C4C: ; 0x021D7C4C
+ thumb_func_start MOD04_021D7C4C
+MOD04_021D7C4C: ; 0x021D7C4C
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
str r0, [sp]
@@ -997,7 +997,7 @@ _021D7CA0:
strb r6, [r5, r2]
b _021D7CE4
_021D7CB4:
- bl FUN_021D8A54
+ bl MOD04_021D8A54
cmp r0, #0
bne _021D7D4E
mov r0, #1
@@ -1030,14 +1030,14 @@ _021D7CE4:
mov r2, #4
sub r6, r1, #4
add r1, r6, #0
- bl FUN_021D7DA8
+ bl MOD04_021D7DA8
add r5, r0, #0
beq _021D7D4E
add r0, r4, #4
add r1, r5, #0
add r2, r6, #0
bl MI_CpuCopy8
- bl FUN_021DF95C
+ bl MOD04_021DF95C
cmp r0, #0
bne _021D7D2A
ldr r0, _021D7D54 ; =0x0220FBC0
@@ -1072,7 +1072,7 @@ _021D7D44:
mov r0, #0
add r1, r5, #0
add r2, r6, #0
- bl FUN_021D7DEC
+ bl MOD04_021D7DEC
_021D7D4E:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@@ -1083,12 +1083,12 @@ _021D7D5C: .word 0x00001F84
_021D7D60: .word 0x00001F0C
_021D7D64: .word 0x00001F10
- thumb_func_start FUN_021D7D68
-FUN_021D7D68: ; 0x021D7D68
+ thumb_func_start MOD04_021D7D68
+MOD04_021D7D68: ; 0x021D7D68
push {r3, lr}
cmp r0, #0
bne _021D7D9A
- bl FUN_021DF978
+ bl MOD04_021DF978
cmp r0, #1
bne _021D7D9A
ldr r0, _021D7D9C ; =0x0220FBC0
@@ -1109,7 +1109,7 @@ _021D7D88:
ldr r0, [r1, r0]
cmp r0, #0
beq _021D7D9A
- bl FUN_021D8C6C
+ bl MOD04_021D8C6C
_021D7D9A:
pop {r3, pc}
.align 2, 0
@@ -1117,8 +1117,8 @@ _021D7D9C: .word 0x0220FBC0
_021D7DA0: .word 0x00001F44
_021D7DA4: .word 0x00001F58
- thumb_func_start FUN_021D7DA8
-FUN_021D7DA8: ; 0x021D7DA8
+ thumb_func_start MOD04_021D7DA8
+MOD04_021D7DA8: ; 0x021D7DA8
push {r4, r5, r6, lr}
add r5, r1, #0
add r6, r2, #0
@@ -1148,8 +1148,8 @@ _021D7DD8:
_021D7DE4: .word 0x0220FBC0
_021D7DE8: .word 0x00001F08
- thumb_func_start FUN_021D7DEC
-FUN_021D7DEC: ; 0x021D7DEC
+ thumb_func_start MOD04_021D7DEC
+MOD04_021D7DEC: ; 0x021D7DEC
push {r3, r4, r5, lr}
add r5, r1, #0
beq _021D7E0C
@@ -1169,13 +1169,13 @@ _021D7E0C:
_021D7E10: .word 0x0220FBC0
_021D7E14: .word 0x00001F08
- thumb_func_start FUN_021D7E18
-FUN_021D7E18: ; 0x021D7E18
+ thumb_func_start MOD04_021D7E18
+MOD04_021D7E18: ; 0x021D7E18
push {r4, lr}
sub sp, #8
add r0, sp, #4
add r1, sp, #0
- bl FUN_021DD718
+ bl MOD04_021DD718
add r4, r0, #0
beq _021D7EFA
ldr r0, [sp]
@@ -1197,7 +1197,7 @@ _021D7E3A: ; jump table
.short _021D7E66 - _021D7E3A - 2 ; case 6
.short _021D7ECE - _021D7E3A - 2 ; case 7
_021D7E4A:
- bl FUN_021DD6F0
+ bl MOD04_021DD6F0
cmp r4, #0xa
blt _021D7E58
add sp, #8
@@ -1246,11 +1246,11 @@ _021D7E82: ; jump table
.short _021D7EA6 - _021D7E82 - 2 ; case 16
.short _021D7EA6 - _021D7E82 - 2 ; case 17
_021D7EA6:
- bl FUN_021E0200
+ bl MOD04_021E0200
_021D7EAA:
- bl FUN_021DDBBC
+ bl MOD04_021DDBBC
_021D7EAE:
- bl FUN_021DD6F0
+ bl MOD04_021DD6F0
_021D7EB2:
ldr r0, _021D7F14 ; =0x0220FBC0
ldr r2, [r0]
@@ -1312,8 +1312,8 @@ _021D7F14: .word 0x0220FBC0
_021D7F18: .word 0x00001F44
_021D7F1C: .word 0x00001F82
- thumb_func_start FUN_021D7F20
-FUN_021D7F20: ; 0x021D7F20
+ thumb_func_start MOD04_021D7F20
+MOD04_021D7F20: ; 0x021D7F20
push {r3, r4, r5, lr}
ldr r0, _021D7F80 ; =0x0220FBC0
ldr r1, [r0]
@@ -1321,12 +1321,12 @@ FUN_021D7F20: ; 0x021D7F20
ldr r0, [r1, r0]
cmp r0, #0
bne _021D7F7E
- bl FUN_021DF95C
+ bl MOD04_021DF95C
mov r1, #1
sub r0, r1, r0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
- bl FUN_021EB0FC
+ bl MOD04_021EB0FC
cmp r0, #0
beq _021D7F7E
ldr r4, _021D7F80 ; =0x0220FBC0
@@ -1352,7 +1352,7 @@ FUN_021D7F20: ; 0x021D7F20
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r2, #4
- bl FUN_021EB044
+ bl MOD04_021EB044
add r0, r4, #0
ldr r1, [r0]
ldr r0, _021D7F88 ; =0x00001F74
@@ -1365,11 +1365,11 @@ _021D7F80: .word 0x0220FBC0
_021D7F84: .word 0x00001F4C
_021D7F88: .word 0x00001F74
- thumb_func_start FUN_021D7F8C
-FUN_021D7F8C: ; 0x021D7F8C
+ thumb_func_start MOD04_021D7F8C
+MOD04_021D7F8C: ; 0x021D7F8C
push {r3, r4, r5, lr}
- bl FUN_021DFF74
- bl FUN_021D83F0
+ bl MOD04_021DFF74
+ bl MOD04_021D83F0
ldr r0, _021D800C ; =0x0220FBC0
ldr r1, _021D8010 ; =0x00001F58
ldr r2, [r0]
@@ -1385,12 +1385,12 @@ FUN_021D7F8C: ; 0x021D7F8C
ldr r0, [r2, r1]
cmp r0, #1
bne _021D7FBA
- bl FUN_021D8D04
+ bl MOD04_021D8D04
b _021D7FBE
_021D7FBA:
- bl FUN_021D8CF0
+ bl MOD04_021D8CF0
_021D7FBE:
- bl FUN_021D8944
+ bl MOD04_021D8944
_021D7FC2:
ldr r4, _021D800C ; =0x0220FBC0
ldr r3, _021D8014 ; =0x00001F44
@@ -1425,17 +1425,17 @@ _021D7FDA:
ldr r0, [r0, r3]
cmp r0, #0
bne _021D8004
- bl FUN_021D7F20
+ bl MOD04_021D7F20
_021D8004:
- bl FUN_021D7E18
+ bl MOD04_021D7E18
pop {r3, r4, r5, pc}
nop
_021D800C: .word 0x0220FBC0
_021D8010: .word 0x00001F58
_021D8014: .word 0x00001F44
- thumb_func_start FUN_021D8018
-FUN_021D8018: ; 0x021D8018
+ thumb_func_start MOD04_021D8018
+MOD04_021D8018: ; 0x021D8018
push {r3, lr}
ldr r0, _021D803C ; =0x0220FBC0
ldr r1, [r0]
@@ -1448,7 +1448,7 @@ FUN_021D8018: ; 0x021D8018
cmp r0, #0xf
bne _021D8034
_021D802E:
- bl FUN_021DF95C
+ bl MOD04_021DF95C
pop {r3, pc}
_021D8034:
mov r0, #0
@@ -1458,8 +1458,8 @@ _021D8034:
_021D803C: .word 0x0220FBC0
_021D8040: .word 0x00001F44
- thumb_func_start FUN_021D8044
-FUN_021D8044: ; 0x021D8044
+ thumb_func_start MOD04_021D8044
+MOD04_021D8044: ; 0x021D8044
ldr r0, _021D8050 ; =0x0220FBC0
mov r2, #0
ldr r1, [r0]
@@ -1470,8 +1470,8 @@ FUN_021D8044: ; 0x021D8044
_021D8050: .word 0x0220FBC0
_021D8054: .word 0x00001F58
- thumb_func_start FUN_021D8058
-FUN_021D8058: ; 0x021D8058
+ thumb_func_start MOD04_021D8058
+MOD04_021D8058: ; 0x021D8058
push {r3, lr}
ldr r0, _021D80CC ; =0x0220FBC0
ldr r2, _021D80D0 ; =0x00001F6C
@@ -1496,34 +1496,34 @@ _021D807E:
sub r2, #0x18
ldr r0, [r0, r2]
mov r1, #1
- bl FUN_021D8A7C
+ bl MOD04_021D8A7C
b _021D80B8
_021D808A:
sub r2, #0x18
ldr r0, [r0, r2]
mov r1, #2
- bl FUN_021D8A7C
+ bl MOD04_021D8A7C
b _021D80B8
_021D8096:
sub r2, #0x18
ldr r0, [r0, r2]
mov r1, #3
- bl FUN_021D8A7C
+ bl MOD04_021D8A7C
b _021D80B8
_021D80A2:
sub r2, #0x18
ldr r0, [r0, r2]
mov r1, #4
- bl FUN_021D8A7C
+ bl MOD04_021D8A7C
b _021D80B8
_021D80AE:
ldr r1, _021D80D4 ; =0x00001F54
ldr r0, [r0, r1]
mov r1, #4
- bl FUN_021D8A7C
+ bl MOD04_021D8A7C
_021D80B8:
- ldr r0, _021D80D8 ; =FUN_021D8044
- bl FUN_021D8C58
+ ldr r0, _021D80D8 ; =MOD04_021D8044
+ bl MOD04_021D8C58
ldr r0, _021D80CC ; =0x0220FBC0
mov r2, #1
ldr r1, [r0]
@@ -1534,11 +1534,11 @@ _021D80B8:
_021D80CC: .word 0x0220FBC0
_021D80D0: .word 0x00001F6C
_021D80D4: .word 0x00001F54
-_021D80D8: .word FUN_021D8044
+_021D80D8: .word MOD04_021D8044
_021D80DC: .word 0x00001F58
- thumb_func_start FUN_021D80E0
-FUN_021D80E0: ; 0x021D80E0
+ thumb_func_start MOD04_021D80E0
+MOD04_021D80E0: ; 0x021D80E0
push {r3, r4, r5, lr}
mov r1, #0x64
add r5, r0, #0
@@ -1789,8 +1789,8 @@ _021D82B0: .word 0x0000EA60
_021D82B4: .word 0x0001869F
_021D82B8: .word 0x00002710
- thumb_func_start FUN_021D82BC
-FUN_021D82BC: ; 0x021D82BC
+ thumb_func_start MOD04_021D82BC
+MOD04_021D82BC: ; 0x021D82BC
push {r3, lr}
cmp r0, #0
bne _021D8346
@@ -1830,7 +1830,7 @@ _021D82FE:
ldr r0, [r0, r2]
cmp r0, #0
beq _021D8316
- bl FUN_021D8C08
+ bl MOD04_021D8C08
ldr r0, _021D8364 ; =0x0220FBC0
mov r2, #0xf
ldr r1, [r0]
@@ -1838,7 +1838,7 @@ _021D82FE:
str r2, [r1, r0]
b _021D835E
_021D8316:
- bl FUN_021DFA40
+ bl MOD04_021DFA40
ldr r0, _021D8364 ; =0x0220FBC0
mov r2, #0x10
ldr r1, [r0]
@@ -1851,7 +1851,7 @@ _021D8328:
ldr r0, [r0, r2]
cmp r0, #0
bne _021D835E
- bl FUN_021DFA40
+ bl MOD04_021DFA40
ldr r0, _021D8364 ; =0x0220FBC0
mov r2, #0x10
ldr r1, [r0]
@@ -1883,8 +1883,8 @@ _021D835E:
_021D8364: .word 0x0220FBC0
_021D8368: .word 0x00001F44
- thumb_func_start FUN_021D836C
-FUN_021D836C: ; 0x021D836C
+ thumb_func_start MOD04_021D836C
+MOD04_021D836C: ; 0x021D836C
push {r3, r4}
ldr r2, _021D83A0 ; =0x0220FBC0
ldr r1, _021D83A4 ; =0x00001F44
@@ -1915,8 +1915,8 @@ _021D8398:
_021D83A0: .word 0x0220FBC0
_021D83A4: .word 0x00001F44
- thumb_func_start FUN_021D83A8
-FUN_021D83A8: ; 0x021D83A8
+ thumb_func_start MOD04_021D83A8
+MOD04_021D83A8: ; 0x021D83A8
ldr r1, _021D83B8 ; =0x0220FBC0
ldr r2, [r1]
cmp r2, #0
@@ -1929,17 +1929,17 @@ _021D83B4:
_021D83B8: .word 0x0220FBC0
_021D83BC: .word 0x00001F14
- thumb_func_start FUN_021D83C0
-FUN_021D83C0: ; 0x021D83C0
+ thumb_func_start MOD04_021D83C0
+MOD04_021D83C0: ; 0x021D83C0
push {r3, lr}
- bl FUN_021E0200
- bl FUN_021DDBBC
- bl FUN_021D8C6C
- bl FUN_021D7660
+ bl MOD04_021E0200
+ bl MOD04_021DDBBC
+ bl MOD04_021D8C6C
+ bl MOD04_021D7660
pop {r3, pc}
- thumb_func_start FUN_021D83D4
-FUN_021D83D4: ; 0x021D83D4
+ thumb_func_start MOD04_021D83D4
+MOD04_021D83D4: ; 0x021D83D4
push {r3, r4}
ldr r3, _021D83E8 ; =0x0220FBC0
ldr r2, _021D83EC ; =0x00001F38
@@ -1954,8 +1954,8 @@ FUN_021D83D4: ; 0x021D83D4
_021D83E8: .word 0x0220FBC0
_021D83EC: .word 0x00001F38
- thumb_func_start FUN_021D83F0
-FUN_021D83F0: ; 0x021D83F0
+ thumb_func_start MOD04_021D83F0
+MOD04_021D83F0: ; 0x021D83F0
push {r3, r4, r5, r6, r7, lr}
ldr r6, _021D8468 ; =0x0220FBC0
ldr r0, _021D846C ; =0x00001F38
@@ -1995,7 +1995,7 @@ _021D8400:
mul r3, r5
add r1, r1, r3
add r2, sp, #0
- bl FUN_021E2578
+ bl MOD04_021E2578
ldr r1, [r6]
add r2, r1, r5
ldr r1, _021D8474 ; =0x00001F18
@@ -2022,15 +2022,15 @@ _021D846C: .word 0x00001F38
_021D8470: .word 0x00001F3C
_021D8474: .word 0x00001F18
- thumb_func_start FUN_021D8478
-FUN_021D8478: ; 0x021D8478
- ldr r3, _021D847C ; =FUN_021E2454
+ thumb_func_start MOD04_021D8478
+MOD04_021D8478: ; 0x021D8478
+ ldr r3, _021D847C ; =MOD04_021E2454
bx r3
.align 2, 0
-_021D847C: .word FUN_021E2454
+_021D847C: .word MOD04_021E2454
- thumb_func_start FUN_021D8480
-FUN_021D8480: ; 0x021D8480
+ thumb_func_start MOD04_021D8480
+MOD04_021D8480: ; 0x021D8480
ldr r1, _021D848C ; =0x0220FBC0
ldr r1, [r1]
add r1, r1, r0
@@ -2041,8 +2041,8 @@ FUN_021D8480: ; 0x021D8480
_021D848C: .word 0x0220FBC0
_021D8490: .word 0x00001F18
- thumb_func_start FUN_021D8494
-FUN_021D8494: ; 0x021D8494
+ thumb_func_start MOD04_021D8494
+MOD04_021D8494: ; 0x021D8494
push {r3, lr}
ldr r1, _021D8510 ; =0x0220FBC0
ldr r3, [r1]
@@ -2057,21 +2057,21 @@ _021D84A6:
str r0, [r3, r1]
cmp r0, #0
bge _021D84C2
- ldr r1, _021D8518 ; =FUN_021D8558
+ ldr r1, _021D8518 ; =MOD04_021D8558
mov r2, #0
- ldr r3, _021D851C ; =FUN_021D85A0
+ ldr r3, _021D851C ; =MOD04_021D85A0
mov r0, #2
str r2, [sp]
- bl FUN_021DFD18
+ bl MOD04_021DFD18
mov r2, #1
ldr r0, _021D8510 ; =0x0220FBC0
b _021D84D2
_021D84C2:
- ldr r1, _021D8520 ; =FUN_021D8590
+ ldr r1, _021D8520 ; =MOD04_021D8590
mov r2, #0
- ldr r3, _021D851C ; =FUN_021D85A0
+ ldr r3, _021D851C ; =MOD04_021D85A0
str r2, [sp]
- bl FUN_021DFB20
+ bl MOD04_021DFB20
ldr r0, _021D8510 ; =0x0220FBC0
mov r2, #2
_021D84D2:
@@ -2083,15 +2083,15 @@ _021D84D2:
ldr r1, [r0]
ldr r0, _021D8514 ; =0x00001F44
str r2, [r1, r0]
- ldr r0, _021D8528 ; =FUN_021D7C30
- bl FUN_021EAE18
- ldr r0, _021D852C ; =FUN_021D7C4C
- bl FUN_021EADF8
- ldr r0, _021D8530 ; =FUN_021D7D68
+ ldr r0, _021D8528 ; =MOD04_021D7C30
+ bl MOD04_021EAE18
+ ldr r0, _021D852C ; =MOD04_021D7C4C
+ bl MOD04_021EADF8
+ ldr r0, _021D8530 ; =MOD04_021D7D68
mov r1, #0
- bl FUN_021DFAF8
- ldr r0, _021D8534 ; =FUN_021D7B14
- bl FUN_021EADD8
+ bl MOD04_021DFAF8
+ ldr r0, _021D8534 ; =MOD04_021D7B14
+ bl MOD04_021EADD8
ldr r1, _021D8510 ; =0x0220FBC0
ldr r0, _021D8538 ; =0x00001F4C
ldr r2, [r1]
@@ -2105,18 +2105,18 @@ _021D84D2:
.align 2, 0
_021D8510: .word 0x0220FBC0
_021D8514: .word 0x00001F44
-_021D8518: .word FUN_021D8558
-_021D851C: .word FUN_021D85A0
-_021D8520: .word FUN_021D8590
+_021D8518: .word MOD04_021D8558
+_021D851C: .word MOD04_021D85A0
+_021D8520: .word MOD04_021D8590
_021D8524: .word 0x00001F48
-_021D8528: .word FUN_021D7C30
-_021D852C: .word FUN_021D7C4C
-_021D8530: .word FUN_021D7D68
-_021D8534: .word FUN_021D7B14
+_021D8528: .word MOD04_021D7C30
+_021D852C: .word MOD04_021D7C4C
+_021D8530: .word MOD04_021D7D68
+_021D8534: .word MOD04_021D7B14
_021D8538: .word 0x00001F4C
- thumb_func_start FUN_021D853C
-FUN_021D853C: ; 0x021D853C
+ thumb_func_start MOD04_021D853C
+MOD04_021D853C: ; 0x021D853C
ldr r0, _021D8550 ; =0x0220FBC0
ldr r1, [r0]
cmp r1, #0
@@ -2132,8 +2132,8 @@ _021D854A:
_021D8550: .word 0x0220FBC0
_021D8554: .word 0x00001F5C
- thumb_func_start FUN_021D8558
-FUN_021D8558: ; 0x021D8558
+ thumb_func_start MOD04_021D8558
+MOD04_021D8558: ; 0x021D8558
push {r3, lr}
cmp r0, #0
bne _021D8582
@@ -2144,7 +2144,7 @@ FUN_021D8558: ; 0x021D8558
ldr r1, [r0]
ldr r0, _021D8588 ; =0x00001F5C
str r2, [r1, r0]
- bl FUN_021D7BC0
+ bl MOD04_021D7BC0
pop {r3, pc}
_021D8572:
cmp r2, #0
@@ -2162,19 +2162,19 @@ _021D8584: .word 0x0220FBC0
_021D8588: .word 0x00001F5C
_021D858C: .word 0x00001F60
- thumb_func_start FUN_021D8590
-FUN_021D8590: ; 0x021D8590
+ thumb_func_start MOD04_021D8590
+MOD04_021D8590: ; 0x021D8590
push {r3, lr}
cmp r0, #0
bne _021D859E
cmp r1, #0
bne _021D859E
- bl FUN_021D7BC0
+ bl MOD04_021D7BC0
_021D859E:
pop {r3, pc}
- thumb_func_start FUN_021D85A0
-FUN_021D85A0: ; 0x021D85A0
+ thumb_func_start MOD04_021D85A0
+MOD04_021D85A0: ; 0x021D85A0
ldr r1, _021D85AC ; =0x0220FBC0
ldr r2, [r1]
ldr r1, _021D85B0 ; =0x00001F60
@@ -2184,8 +2184,8 @@ FUN_021D85A0: ; 0x021D85A0
_021D85AC: .word 0x0220FBC0
_021D85B0: .word 0x00001F60
- thumb_func_start FUN_021D85B4
-FUN_021D85B4: ; 0x021D85B4
+ thumb_func_start MOD04_021D85B4
+MOD04_021D85B4: ; 0x021D85B4
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
ldr r0, _021D8614 ; =0x0220FBC0
@@ -2236,15 +2236,15 @@ _021D85F0:
_021D8614: .word 0x0220FBC0
_021D8618: .word 0x00001EF0
- thumb_func_start FUN_021D861C
-FUN_021D861C: ; 0x021D861C
- ldr r3, _021D8620 ; =FUN_021D8CC8
+ thumb_func_start MOD04_021D861C
+MOD04_021D861C: ; 0x021D861C
+ ldr r3, _021D8620 ; =MOD04_021D8CC8
bx r3
.align 2, 0
-_021D8620: .word FUN_021D8CC8
+_021D8620: .word MOD04_021D8CC8
- thumb_func_start FUN_021D8624
-FUN_021D8624: ; 0x021D8624
+ thumb_func_start MOD04_021D8624
+MOD04_021D8624: ; 0x021D8624
ldr r0, _021D8638 ; =0x0220FBC0
ldr r1, [r0]
cmp r1, #0
@@ -2259,8 +2259,8 @@ _021D8632:
_021D8638: .word 0x0220FBC0
_021D863C: .word 0x00001F68
- thumb_func_start FUN_021D8640
-FUN_021D8640: ; 0x021D8640
+ thumb_func_start MOD04_021D8640
+MOD04_021D8640: ; 0x021D8640
ldr r0, _021D8654 ; =0x0220FBC0
ldr r1, [r0]
cmp r1, #0
@@ -2275,8 +2275,8 @@ _021D864E:
_021D8654: .word 0x0220FBC0
_021D8658: .word 0x00001F60
- thumb_func_start FUN_021D865C
-FUN_021D865C: ; 0x021D865C
+ thumb_func_start MOD04_021D865C
+MOD04_021D865C: ; 0x021D865C
ldr r0, _021D8670 ; =0x0220FBC0
ldr r2, [r0]
cmp r2, #0
@@ -2291,8 +2291,8 @@ _021D866C:
_021D8670: .word 0x0220FBC0
_021D8674: .word 0x00001F60
- thumb_func_start FUN_021D8678
-FUN_021D8678: ; 0x021D8678
+ thumb_func_start MOD04_021D8678
+MOD04_021D8678: ; 0x021D8678
ldr r1, _021D8684 ; =0x0220FBC0
ldr r2, [r1]
ldr r1, _021D8688 ; =0x00001F68
@@ -2302,8 +2302,8 @@ FUN_021D8678: ; 0x021D8678
_021D8684: .word 0x0220FBC0
_021D8688: .word 0x00001F68
- thumb_func_start FUN_021D868C
-FUN_021D868C: ; 0x021D868C
+ thumb_func_start MOD04_021D868C
+MOD04_021D868C: ; 0x021D868C
push {r3, r4, r5, lr}
bl MIC_Init
bl PM_Init
@@ -2373,13 +2373,13 @@ _021D8720: .word 0x00003598
_021D8724: .word 0x000035B8
_021D8728: .word 0x00003504
- thumb_func_start FUN_021D872C
-FUN_021D872C: ; 0x021D872C
+ thumb_func_start MOD04_021D872C
+MOD04_021D872C: ; 0x021D872C
bx lr
.align 2, 0
- thumb_func_start FUN_021D8730
-FUN_021D8730: ; 0x021D8730
+ thumb_func_start MOD04_021D8730
+MOD04_021D8730: ; 0x021D8730
push {r4, r5, r6, lr}
add r6, r2, #0
add r5, r3, #0
@@ -2400,7 +2400,7 @@ _021D8748:
beq _021D876A
add r0, r0, #3
add r0, r2, r0
- ldr r1, _021D87C0 ; =FUN_021D872C
+ ldr r1, _021D87C0 ; =MOD04_021D872C
mov r2, #0
bl MIC_StartAutoSamplingAsync
ldr r0, _021D87B8 ; =0x0220FBC8
@@ -2451,13 +2451,13 @@ _021D87A2:
.align 2, 0
_021D87B8: .word 0x0220FBC8
_021D87BC: .word 0x00003565
-_021D87C0: .word FUN_021D872C
+_021D87C0: .word MOD04_021D872C
_021D87C4: .word 0x027FFFA8
_021D87C8: .word 0x000034FC
_021D87CC: .word 0x00003564
- thumb_func_start FUN_021D87D0
-FUN_021D87D0: ; 0x021D87D0
+ thumb_func_start MOD04_021D87D0
+MOD04_021D87D0: ; 0x021D87D0
push {r4, lr}
ldr r1, _021D8810 ; =0x0220FBC8
ldr r2, [r1, #4]
@@ -2493,8 +2493,8 @@ _021D880A:
_021D8810: .word 0x0220FBC8
_021D8814: .word 0x00003560
- thumb_func_start FUN_021D8818
-FUN_021D8818: ; 0x021D8818
+ thumb_func_start MOD04_021D8818
+MOD04_021D8818: ; 0x021D8818
push {r3, lr}
ldr r0, _021D8858 ; =0x0220FBC8
ldr r1, [r0, #4]
@@ -2531,8 +2531,8 @@ _021D8852:
_021D8858: .word 0x0220FBC8
_021D885C: .word 0x00003560
- thumb_func_start FUN_021D8860
-FUN_021D8860: ; 0x021D8860
+ thumb_func_start MOD04_021D8860
+MOD04_021D8860: ; 0x021D8860
push {r4, lr}
add r4, r2, #0
cmp r1, #0xc
@@ -2578,20 +2578,20 @@ _021D88AE:
mov r1, #0
bl FUN_020ACAB0
add r0, r4, #0
- bl FUN_021D8910
- bl FUN_021D8C6C
+ bl MOD04_021D8910
+ bl MOD04_021D8C6C
pop {r4, pc}
_021D88C2:
add r0, r4, #0
- bl FUN_021D8910
- bl FUN_021D8C6C
+ bl MOD04_021D8910
+ bl MOD04_021D8C6C
pop {r4, pc}
_021D88CE:
add r0, r4, #0
mov r1, #4
bl FUN_020ACAB0
add r0, r4, #0
- bl FUN_021D8910
+ bl MOD04_021D8910
pop {r4, pc}
_021D88DE:
add r0, r4, #0
@@ -2606,11 +2606,11 @@ _021D88DE:
pop {r4, pc}
_021D88F4:
add r0, r4, #0
- bl FUN_021D8910
+ bl MOD04_021D8910
pop {r4, pc}
_021D88FC:
add r0, r4, #0
- bl FUN_021D8910
+ bl MOD04_021D8910
_021D8902:
pop {r4, pc}
.align 2, 0
@@ -2618,8 +2618,8 @@ _021D8904: .word 0x0220FBC8
_021D8908: .word 0x00003560
_021D890C: .word 0x000034F8
- thumb_func_start FUN_021D8910
-FUN_021D8910: ; 0x021D8910
+ thumb_func_start MOD04_021D8910
+MOD04_021D8910: ; 0x021D8910
push {r4, lr}
ldr r1, _021D893C ; =0x0220FBC8
add r4, r0, #0
@@ -2644,8 +2644,8 @@ _021D8936:
_021D893C: .word 0x0220FBC8
_021D8940: .word 0x00003560
- thumb_func_start FUN_021D8944
-FUN_021D8944: ; 0x021D8944
+ thumb_func_start MOD04_021D8944
+MOD04_021D8944: ; 0x021D8944
push {r4, r5, r6, lr}
bl OS_GetTick
add r4, r0, #0
@@ -2743,11 +2743,11 @@ _021D89EC:
cmp r0, #2
pop {r4, r5, r6, pc}
_021D8A00:
- bl FUN_021D8018
+ bl MOD04_021D8018
cmp r0, #0
bne _021D8A1E
mov r0, #1
- bl FUN_021D87D0
+ bl MOD04_021D87D0
cmp r0, #0
beq _021D8A3A
ldr r0, _021D8A3C ; =0x0220FBC8
@@ -2757,11 +2757,11 @@ _021D8A00:
str r2, [r1, r0]
pop {r4, r5, r6, pc}
_021D8A1E:
- bl FUN_021D8018
+ bl MOD04_021D8018
cmp r0, #1
bne _021D8A3A
mov r0, #0
- bl FUN_021D8818
+ bl MOD04_021D8818
cmp r0, #0
beq _021D8A3A
ldr r0, _021D8A3C ; =0x0220FBC8
@@ -2779,8 +2779,8 @@ _021D8A48: .word 0xFFFFD8F0
_021D8A4C: .word 0x0000358C
_021D8A50: .word 0x000034F8
- thumb_func_start FUN_021D8A54
-FUN_021D8A54: ; 0x021D8A54
+ thumb_func_start MOD04_021D8A54
+MOD04_021D8A54: ; 0x021D8A54
push {r3, lr}
ldr r3, _021D8A78 ; =0x0220FBC8
ldr r3, [r3, #4]
@@ -2802,8 +2802,8 @@ _021D8A72:
nop
_021D8A78: .word 0x0220FBC8
- thumb_func_start FUN_021D8A7C
-FUN_021D8A7C: ; 0x021D8A7C
+ thumb_func_start MOD04_021D8A7C
+MOD04_021D8A7C: ; 0x021D8A7C
push {r4, r5, r6, r7, lr}
sub sp, #0x34
ldr r2, _021D8BC8 ; =0x0220BAC0
@@ -2840,7 +2840,7 @@ FUN_021D8A7C: ; 0x021D8A7C
mov r3, #0
sub r1, #0x3c
str r3, [r0, r1]
- bl FUN_021D868C
+ bl MOD04_021D868C
_021D8ACA:
ldr r5, _021D8BCC ; =0x0220FBC8
mov r7, #0x11
@@ -2898,7 +2898,7 @@ _021D8ACA:
str r0, [sp]
mov r0, #2
str r0, [sp, #4]
- ldr r0, _021D8BE0 ; =FUN_021D8730
+ ldr r0, _021D8BE0 ; =MOD04_021D8730
add r1, r5, #0
str r0, [sp, #8]
mov r0, #0xd3
@@ -2932,10 +2932,10 @@ _021D8ACA:
str r0, [sp, #0x14]
mov r0, #2
str r0, [sp, #0x18]
- bl FUN_021D8018
+ bl MOD04_021D8018
add r1, sp, #0x10
strb r0, [r1, #0x10]
- ldr r0, _021D8BE8 ; =FUN_021D8860
+ ldr r0, _021D8BE8 ; =MOD04_021D8860
str r0, [sp, #0x2c]
add r0, r5, #0
str r0, [sp, #0x30]
@@ -2955,7 +2955,7 @@ _021D8ACA:
str r2, [r1, r0]
add r0, r4, #0
bl FUN_020AA7A0
- bl FUN_021D8BF0
+ bl MOD04_021D8BF0
mov r0, #1
bl FUN_020AA760
add sp, #0x34
@@ -2967,13 +2967,13 @@ _021D8BD0: .word 0x000035DC
_021D8BD4: .word 0x0220FBE0
_021D8BD8: .word 0x00003568
_021D8BDC: .word 0x00003504
-_021D8BE0: .word FUN_021D8730
+_021D8BE0: .word MOD04_021D8730
_021D8BE4: .word 0x000034F8
-_021D8BE8: .word FUN_021D8860
+_021D8BE8: .word MOD04_021D8860
_021D8BEC: .word 0x000034FC
- thumb_func_start FUN_021D8BF0
-FUN_021D8BF0: ; 0x021D8BF0
+ thumb_func_start MOD04_021D8BF0
+MOD04_021D8BF0: ; 0x021D8BF0
ldr r0, _021D8BFC ; =0x0220FBC8
ldr r3, _021D8C00 ; =0x020C1458
ldr r1, [r0, #4]
@@ -2985,8 +2985,8 @@ _021D8BFC: .word 0x0220FBC8
_021D8C00: .word 0x020C1458
_021D8C04: .word 0x00003504
- thumb_func_start FUN_021D8C08
-FUN_021D8C08: ; 0x021D8C08
+ thumb_func_start MOD04_021D8C08
+MOD04_021D8C08: ; 0x021D8C08
push {r3, lr}
ldr r0, _021D8C50 ; =0x0220FBC8
ldr r1, _021D8C54 ; =0x00003560
@@ -2999,7 +2999,7 @@ FUN_021D8C08: ; 0x021D8C08
cmp r1, #0
bne _021D8C24
_021D8C1E:
- bl FUN_021D8C6C
+ bl MOD04_021D8C6C
pop {r3, pc}
_021D8C24:
cmp r1, #1
@@ -3008,7 +3008,7 @@ _021D8C24:
bl FUN_020ACBA0
cmp r0, #0
beq _021D8C38
- bl FUN_021D8C6C
+ bl MOD04_021D8C6C
pop {r3, pc}
_021D8C38:
ldr r0, _021D8C50 ; =0x0220FBC8
@@ -3019,15 +3019,15 @@ _021D8C38:
bl FUN_020ACBA0
cmp r0, #0
beq _021D8C4E
- bl FUN_021D8C6C
+ bl MOD04_021D8C6C
_021D8C4E:
pop {r3, pc}
.align 2, 0
_021D8C50: .word 0x0220FBC8
_021D8C54: .word 0x00003560
- thumb_func_start FUN_021D8C58
-FUN_021D8C58: ; 0x021D8C58
+ thumb_func_start MOD04_021D8C58
+MOD04_021D8C58: ; 0x021D8C58
ldr r1, _021D8C64 ; =0x0220FBC8
ldr r2, [r1, #4]
ldr r1, _021D8C68 ; =0x000034C4
@@ -3037,8 +3037,8 @@ FUN_021D8C58: ; 0x021D8C58
_021D8C64: .word 0x0220FBC8
_021D8C68: .word 0x000034C4
- thumb_func_start FUN_021D8C6C
-FUN_021D8C6C: ; 0x021D8C6C
+ thumb_func_start MOD04_021D8C6C
+MOD04_021D8C6C: ; 0x021D8C6C
push {r4, lr}
ldr r0, _021D8CBC ; =0x0220FBC8
ldr r1, [r0]
@@ -3080,8 +3080,8 @@ _021D8CBC: .word 0x0220FBC8
_021D8CC0: .word 0x000034C4
_021D8CC4: .word 0x00003504
- thumb_func_start FUN_021D8CC8
-FUN_021D8CC8: ; 0x021D8CC8
+ thumb_func_start MOD04_021D8CC8
+MOD04_021D8CC8: ; 0x021D8CC8
push {r3, lr}
sub sp, #0x10
ldr r0, _021D8CEC ; =0x0220FBC8
@@ -3103,8 +3103,8 @@ _021D8CE6:
.align 2, 0
_021D8CEC: .word 0x0220FBC8
- thumb_func_start FUN_021D8CF0
-FUN_021D8CF0: ; 0x021D8CF0
+ thumb_func_start MOD04_021D8CF0
+MOD04_021D8CF0: ; 0x021D8CF0
ldr r0, _021D8CFC ; =0x0220FBC8
mov r2, #1
ldr r1, [r0, #4]
@@ -3115,8 +3115,8 @@ FUN_021D8CF0: ; 0x021D8CF0
_021D8CFC: .word 0x0220FBC8
_021D8D00: .word 0x000034FC
- thumb_func_start FUN_021D8D04
-FUN_021D8D04: ; 0x021D8D04
+ thumb_func_start MOD04_021D8D04
+MOD04_021D8D04: ; 0x021D8D04
ldr r0, _021D8D10 ; =0x0220FBC8
mov r2, #0
ldr r1, [r0, #4]
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 085ce35d..3cefdc1e 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -744,10 +744,10 @@ MOD05_021D7B38: ; 0x021D7B38
thumb_func_start MOD05_021D7B5C
MOD05_021D7B5C: ; 0x021D7B5C
- ldr r3, _021D7B60 ; =0x02009FA1
+ ldr r3, _021D7B60 ; =FUN_02009FA0
bx r3
.balign 4, 0
-_021D7B60: .word 0x02009FA1
+_021D7B60: .word FUN_02009FA0
thumb_func_start MOD05_021D7B64
MOD05_021D7B64: ; 0x021D7B64
@@ -1207,10 +1207,10 @@ MOD05_021D7F40: ; 0x021D7F40
thumb_func_start MOD05_021D7F44
MOD05_021D7F44: ; 0x021D7F44
- ldr r3, _021D7F48 ; =0x02016A19
+ ldr r3, _021D7F48 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021D7F48: .word 0x02016A19
+_021D7F48: .word FUN_02016A18
thumb_func_start MOD05_021D7F4C
MOD05_021D7F4C: ; 0x021D7F4C
@@ -1278,11 +1278,11 @@ _021D7FBC:
thumb_func_start MOD05_021D7FD0
MOD05_021D7FD0: ; 0x021D7FD0
- ldr r3, _021D7FD8 ; =0x0201B5CD
+ ldr r3, _021D7FD8 ; =FUN_0201B5CC
ldr r0, [r0, #0x10]
bx r3
nop
-_021D7FD8: .word 0x0201B5CD
+_021D7FD8: .word FUN_0201B5CC
thumb_func_start MOD05_021D7FDC
MOD05_021D7FDC: ; 0x021D7FDC
@@ -2091,24 +2091,24 @@ _021D862C:
mov r0, #0
pop {r4, pc}
_021D8630:
- bl FUN_0223DCB4
+ bl MOD18_0223DCB4
ldrh r0, [r4]
lsl r1, r0, #0x1f
lsr r1, r1, #0x1f
beq _021D8646
mov r0, #0
- bl FUN_0223DCD0
+ bl MOD18_0223DCD0
mov r0, #0
pop {r4, pc}
_021D8646:
lsl r0, r0, #0x1d
lsr r0, r0, #0x1f
beq _021D8654
- bl FUN_0223DC98
+ bl MOD18_0223DC98
mov r0, #0
pop {r4, pc}
_021D8654:
- bl FUN_0223D8F4
+ bl MOD18_0223D8F4
mov r0, #0
pop {r4, pc}
@@ -2508,7 +2508,7 @@ _021D8998:
cmp r0, #0
beq _021D89B4
add r0, r4, #0
- bl FUN_0223BA04
+ bl MOD06_0223BA04
cmp r0, #1
bne _021D89B4
add sp, #8
@@ -2535,7 +2535,7 @@ MOD05_021D89BC: ; 0x021D89BC
mov r0, #0
pop {r4, r5, r6, pc}
_021D89D4:
- bl FUN_022426AC
+ bl MOD06_022426AC
cmp r0, #0
beq _021D89E2
add sp, #0x28
@@ -2932,7 +2932,7 @@ _021D8D20: .word 0x0000FFFF
MOD05_021D8D24: ; 0x021D8D24
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
- bl FUN_02242404
+ bl MOD06_02242404
cmp r0, #0
beq _021D8D34
mov r0, #1
@@ -3238,12 +3238,12 @@ MOD05_021D8F90: ; 0x021D8F90
thumb_func_start MOD05_021D8F9C
MOD05_021D8F9C: ; 0x021D8F9C
- ldr r3, _021D8FA4 ; =0x0224C24D
+ ldr r3, _021D8FA4 ; =MOD06_0224C24C
add r1, r0, #0
ldr r0, [r1, #0xc]
bx r3
.balign 4, 0
-_021D8FA4: .word 0x0224C24D
+_021D8FA4: .word MOD06_0224C24C
thumb_func_start MOD05_021D8FA8
MOD05_021D8FA8: ; 0x021D8FA8
@@ -5724,11 +5724,11 @@ _021DA21A:
MOD05_021DA220: ; 0x021DA220
mov r1, #0xad
lsl r1, r1, #2
- ldr r3, _021DA22C ; =0x02006875
+ ldr r3, _021DA22C ; =FUN_02006874
ldr r0, [r0, r1]
bx r3
nop
-_021DA22C: .word 0x02006875
+_021DA22C: .word FUN_02006874
thumb_func_start MOD05_021DA230
MOD05_021DA230: ; 0x021DA230
@@ -6243,10 +6243,10 @@ MOD05_021DA5B8: ; 0x021DA5B8
thumb_func_start MOD05_021DA5C8
MOD05_021DA5C8: ; 0x021DA5C8
- ldr r3, _021DA5CC ; =0x02016A19
+ ldr r3, _021DA5CC ; =FUN_02016A18
bx r3
.balign 4, 0
-_021DA5CC: .word 0x02016A19
+_021DA5CC: .word FUN_02016A18
thumb_func_start MOD05_021DA5D0
MOD05_021DA5D0: ; 0x021DA5D0
@@ -9476,10 +9476,10 @@ _021DBE94: .word MOD05_021EFAAC
thumb_func_start MOD05_021DBE98
MOD05_021DBE98: ; 0x021DBE98
- ldr r3, _021DBE9C ; =0x02050E2D
+ ldr r3, _021DBE9C ; =FUN_02050E2C
bx r3
.balign 4, 0
-_021DBE9C: .word 0x02050E2D
+_021DBE9C: .word FUN_02050E2C
thumb_func_start MOD05_021DBEA0
MOD05_021DBEA0: ; 0x021DBEA0
@@ -9489,7 +9489,7 @@ MOD05_021DBEA0: ; 0x021DBEA0
mov r1, #2
bl HandleLoadOverlay
add r0, r4, #0
- bl FUN_02254A68
+ bl MOD51_02254A68
add r4, #0x80
str r0, [r4]
pop {r4, pc}
@@ -9505,17 +9505,17 @@ _021DBEC0: .word MOD05_021EFB14
thumb_func_start MOD05_021DBEC4
MOD05_021DBEC4: ; 0x021DBEC4
- ldr r3, _021DBEC8 ; =0x02050E11
+ ldr r3, _021DBEC8 ; =FUN_02050E10
bx r3
.balign 4, 0
-_021DBEC8: .word 0x02050E11
+_021DBEC8: .word FUN_02050E10
thumb_func_start MOD05_021DBECC
MOD05_021DBECC: ; 0x021DBECC
push {r3, lr}
add r0, #0x80
ldr r0, [r0]
- bl FUN_02254AB8
+ bl MOD51_02254AB8
ldr r0, _021DBEE0 ; =SDK_OVERLAY_MODULE_51_ID
bl UnloadOverlayByID
pop {r3, pc}
@@ -10288,12 +10288,12 @@ _021DC470: .word MOD05_021DC474
thumb_func_start MOD05_021DC474
MOD05_021DC474: ; 0x021DC474
- ldr r3, _021DC47C ; =0x0201FDED
+ ldr r3, _021DC47C ; =FUN_0201FDEC
add r1, #0xf4
ldr r0, [r1]
bx r3
.balign 4, 0
-_021DC47C: .word 0x0201FDED
+_021DC47C: .word FUN_0201FDEC
thumb_func_start MOD05_021DC480
MOD05_021DC480: ; 0x021DC480
@@ -20312,13 +20312,13 @@ _021E127E:
thumb_func_start MOD05_021E1290
MOD05_021E1290: ; 0x021E1290
- ldr r3, _021E129C ; =0x0200CA99
+ ldr r3, _021E129C ; =FUN_0200CA98
add r1, r0, #0
ldr r0, _021E12A0 ; =MOD05_021E12A4
mov r2, #0x80
bx r3
nop
-_021E129C: .word 0x0200CA99
+_021E129C: .word FUN_0200CA98
_021E12A0: .word MOD05_021E12A4
thumb_func_start MOD05_021E12A4
@@ -21231,10 +21231,10 @@ _021E1986:
thumb_func_start MOD05_021E198C
MOD05_021E198C: ; 0x021E198C
- ldr r3, _021E1990 ; =0x02058E91
+ ldr r3, _021E1990 ; =FUN_02058E90
bx r3
.balign 4, 0
-_021E1990: .word 0x02058E91
+_021E1990: .word FUN_02058E90
thumb_func_start MOD05_021E1994
MOD05_021E1994: ; 0x021E1994
@@ -24563,14 +24563,14 @@ _021E3388:
cmp r0, #0
beq _021E3414
ldr r0, [r5, #8]
- bl FUN_022524F4
+ bl MOD19_022524F4
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
b _021E3414
_021E33A0:
ldr r0, [r5, #8]
- bl FUN_02252504
+ bl MOD19_02252504
cmp r0, #0
beq _021E3414
ldr r0, [r5, #0xc]
@@ -24591,7 +24591,7 @@ _021E33A0:
ldr r3, [r5, #8]
add r0, r5, #0
add r1, #0x14
- bl FUN_02252448
+ bl MOD20_02252448
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -25672,14 +25672,14 @@ _021E3BFC: .word 0xFFFF1FFF
thumb_func_start MOD05_021E3C00
MOD05_021E3C00: ; 0x021E3C00
- ldr r3, _021E3C0C ; =0x0200CA99
+ ldr r3, _021E3C0C ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _021E3C10 ; =MOD05_021E3C14
lsl r2, r2, #0xa
bx r3
.balign 4, 0
-_021E3C0C: .word 0x0200CA99
+_021E3C0C: .word FUN_0200CA98
_021E3C10: .word MOD05_021E3C14
thumb_func_start MOD05_021E3C14
@@ -26334,10 +26334,10 @@ MOD05_021E4140: ; 0x021E4140
thumb_func_start MOD05_021E4158
MOD05_021E4158: ; 0x021E4158
- ldr r3, _021E415C ; =0x02016A19
+ ldr r3, _021E415C ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E415C: .word 0x02016A19
+_021E415C: .word FUN_02016A18
thumb_func_start MOD05_021E4160
MOD05_021E4160: ; 0x021E4160
@@ -26452,10 +26452,10 @@ MOD05_021E4220: ; 0x021E4220
thumb_func_start MOD05_021E4238
MOD05_021E4238: ; 0x021E4238
- ldr r3, _021E423C ; =0x02016A19
+ ldr r3, _021E423C ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E423C: .word 0x02016A19
+_021E423C: .word FUN_02016A18
thumb_func_start MOD05_021E4240
MOD05_021E4240: ; 0x021E4240
@@ -26859,10 +26859,10 @@ _021E452A:
thumb_func_start MOD05_021E4534
MOD05_021E4534: ; 0x021E4534
- ldr r3, _021E4538 ; =0x02016A19
+ ldr r3, _021E4538 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E4538: .word 0x02016A19
+_021E4538: .word FUN_02016A18
thumb_func_start MOD05_021E453C
MOD05_021E453C: ; 0x021E453C
@@ -27610,14 +27610,14 @@ _021E4ACC: .word 0x0400006C
thumb_func_start MOD05_021E4AD0
MOD05_021E4AD0: ; 0x021E4AD0
- ldr r3, _021E4ADC ; =0x0200CA99
+ ldr r3, _021E4ADC ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _021E4AE0 ; =MOD05_021E4AB8
lsl r2, r2, #0xa
bx r3
.balign 4, 0
-_021E4ADC: .word 0x0200CA99
+_021E4ADC: .word FUN_0200CA98
_021E4AE0: .word MOD05_021E4AB8
thumb_func_start MOD05_021E4AE4
@@ -27772,10 +27772,10 @@ MOD05_021E4BE8: ; 0x021E4BE8
thumb_func_start MOD05_021E4C00
MOD05_021E4C00: ; 0x021E4C00
- ldr r3, _021E4C04 ; =0x02016A19
+ ldr r3, _021E4C04 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E4C04: .word 0x02016A19
+_021E4C04: .word FUN_02016A18
thumb_func_start MOD05_021E4C08
MOD05_021E4C08: ; 0x021E4C08
@@ -27822,27 +27822,27 @@ MOD05_021E4C34: ; 0x021E4C34
thumb_func_start MOD05_021E4C48
MOD05_021E4C48: ; 0x021E4C48
- ldr r3, _021E4C50 ; =0x020066F5
+ ldr r3, _021E4C50 ; =FUN_020066F4
ldr r0, [r0, #0x20]
bx r3
nop
-_021E4C50: .word 0x020066F5
+_021E4C50: .word FUN_020066F4
thumb_func_start MOD05_021E4C54
MOD05_021E4C54: ; 0x021E4C54
- ldr r3, _021E4C5C ; =0x020067D1
+ ldr r3, _021E4C5C ; =FUN_020067D0
ldr r0, [r0, #0x20]
bx r3
nop
-_021E4C5C: .word 0x020067D1
+_021E4C5C: .word FUN_020067D0
thumb_func_start MOD05_021E4C60
MOD05_021E4C60: ; 0x021E4C60
- ldr r3, _021E4C68 ; =0x02006775
+ ldr r3, _021E4C68 ; =FUN_02006774
ldr r0, [r0, #0x20]
bx r3
nop
-_021E4C68: .word 0x02006775
+_021E4C68: .word FUN_02006774
thumb_func_start MOD05_021E4C6C
MOD05_021E4C6C: ; 0x021E4C6C
@@ -28079,10 +28079,10 @@ _021E4DDE:
thumb_func_start MOD05_021E4DE4
MOD05_021E4DE4: ; 0x021E4DE4
- ldr r3, _021E4DE8 ; =0x02064521
+ ldr r3, _021E4DE8 ; =FUN_02064520
bx r3
.balign 4, 0
-_021E4DE8: .word 0x02064521
+_021E4DE8: .word FUN_02064520
thumb_func_start MOD05_021E4DEC
MOD05_021E4DEC: ; 0x021E4DEC
@@ -28513,11 +28513,11 @@ _021E5106:
thumb_func_start MOD05_021E5114
MOD05_021E5114: ; 0x021E5114
ldr r0, [r0, #0x28]
- ldr r3, _021E511C ; =0x02020FF1
+ ldr r3, _021E511C ; =FUN_02020FF0
ldr r0, [r0, #0x18]
bx r3
.balign 4, 0
-_021E511C: .word 0x02020FF1
+_021E511C: .word FUN_02020FF0
thumb_func_start MOD05_021E5120
MOD05_021E5120: ; 0x021E5120
@@ -30435,10 +30435,10 @@ _021E5FD4: .word MOD05_021F5430
thumb_func_start MOD05_021E5FD8
MOD05_021E5FD8: ; 0x021E5FD8
- ldr r3, _021E5FDC ; =0x020553D5
+ ldr r3, _021E5FDC ; =FUN_020553D4
bx r3
.balign 4, 0
-_021E5FDC: .word 0x020553D5
+_021E5FDC: .word FUN_020553D4
thumb_func_start MOD05_021E5FE0
MOD05_021E5FE0: ; 0x021E5FE0
@@ -30566,7 +30566,7 @@ _021E60D2:
add r0, r6, #0
add r2, r1, #0
add r3, r4, #0
- bl FUN_0224ABAC
+ bl MOD06_0224ABAC
add r1, r0, #0
add r0, r5, #0
bl FUN_02055450
@@ -30576,11 +30576,11 @@ _021E60D2:
thumb_func_start MOD05_021E610C
MOD05_021E610C: ; 0x021E610C
- ldr r3, _021E6114 ; =0x020556C9
+ ldr r3, _021E6114 ; =FUN_020556C8
mov r1, #1
bx r3
nop
-_021E6114: .word 0x020556C9
+_021E6114: .word FUN_020556C8
thumb_func_start MOD05_021E6118
MOD05_021E6118: ; 0x021E6118
@@ -31119,7 +31119,7 @@ _021E6514:
ldr r3, [r4, #4]
add r1, r5, r6
add r2, r7, r2
- bl FUN_0224ABAC
+ bl MOD06_0224ABAC
str r0, [r4, #0x28]
ldr r0, [r4, #0x20]
ldr r1, [r4, #0x28]
@@ -31175,7 +31175,7 @@ _021E65AC:
bl FUN_0205AE50
ldr r0, [r4, #0x28]
mov r1, #1
- bl FUN_0224ADF8
+ bl MOD06_0224ADF8
ldr r0, [r4, #0x20]
bl FUN_020553E8
add r1, r0, #0
@@ -31297,7 +31297,7 @@ _021E668C:
bl FUN_0205ADDC
ldr r0, [r4, #0x14]
mov r1, #0
- bl FUN_0224ADF8
+ bl MOD06_0224ADF8
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -31509,7 +31509,7 @@ _021E682A:
bl FUN_02046528
add r1, sp, #8
str r0, [sp, #4]
- bl FUN_0223C08C
+ bl MOD06_0223C08C
cmp r0, #1
bne _021E68A2
ldr r0, [r4, #0xc]
@@ -31776,10 +31776,10 @@ MOD05_021E6A58: ; 0x021E6A58
ldr r3, [r5, #4]
add r1, r4, r6
add r2, r7, r2
- bl FUN_0224AEE8
+ bl MOD06_0224AEE8
str r0, [r5, #0x18]
ldr r0, [r5, #0xc]
- bl FUN_0224F0BC
+ bl MOD06_0224F0BC
str r0, [r5, #0x2c]
ldr r0, _021E6AA8 ; =0x00000627
bl FUN_020054C8
@@ -31825,7 +31825,7 @@ MOD05_021E6AD4: ; 0x021E6AD4
add r0, r0, #1
str r0, [r4]
ldr r0, [r4, #0x18]
- bl FUN_0224AF68
+ bl MOD06_0224AF68
_021E6AF0:
mov r0, #0
pop {r4, pc}
@@ -31891,9 +31891,9 @@ _021E6B54:
add r0, r0, #1
str r0, [r5]
ldr r0, [r5, #0x18]
- bl FUN_0224AF68
+ bl MOD06_0224AF68
ldr r0, [r5, #0x2c]
- bl FUN_0224F0D0
+ bl MOD06_0224F0D0
mov r0, #0
str r0, [r5, #0x2c]
pop {r3, r4, r5, pc}
@@ -32151,7 +32151,7 @@ _021E6D36:
ldr r0, [r3]
str r0, [r2]
ldr r0, [r5, #0x34]
- bl FUN_0224ED94
+ bl MOD06_0224ED94
str r0, [r5, #0x50]
ldr r0, [r5]
add r0, r0, #1
@@ -32257,7 +32257,7 @@ _021E6E1E:
ldr r0, [r4, #0x3c]
bl FUN_02059C60
ldr r0, [r4, #0x50]
- bl FUN_0224EDA8
+ bl MOD06_0224EDA8
mov r0, #1
add sp, #0xc
pop {r3, r4, pc}
@@ -32384,7 +32384,7 @@ _021E6F06:
ldr r0, [r3]
str r0, [r2]
ldr r0, [r5, #0x34]
- bl FUN_0224ED94
+ bl MOD06_0224ED94
str r0, [r5, #0x50]
ldr r0, [r5]
add r0, r0, #1
@@ -32503,7 +32503,7 @@ _021E7004:
ldr r0, [r4, #0x3c]
bl FUN_02059C60
ldr r0, [r4, #0x50]
- bl FUN_0224EDA8
+ bl MOD06_0224EDA8
mov r0, #1
add sp, #0xc
pop {r3, r4, pc}
@@ -32762,7 +32762,7 @@ MOD05_021E723C: ; 0x021E723C
ldr r2, [r4, #8]
ldr r3, [r4, #4]
mov r1, #0
- bl FUN_0224666C
+ bl MOD06_0224666C
str r0, [r4, #0xc]
pop {r4, pc}
.balign 4, 0
@@ -32772,11 +32772,11 @@ MOD05_021E7250: ; 0x021E7250
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
- bl FUN_022466A0
+ bl MOD06_022466A0
cmp r0, #1
bne _021E7268
ldr r0, [r4, #0xc]
- bl FUN_022466AC
+ bl MOD06_022466AC
mov r0, #1
pop {r4, pc}
_021E7268:
@@ -32839,12 +32839,12 @@ _021E72CC:
thumb_func_start MOD05_021E72DC
MOD05_021E72DC: ; 0x021E72DC
- ldr r3, _021E72E4 ; =0x02016A8D
+ ldr r3, _021E72E4 ; =FUN_02016A8C
add r1, r0, #0
mov r0, #4
bx r3
.balign 4, 0
-_021E72E4: .word 0x02016A8D
+_021E72E4: .word FUN_02016A8C
thumb_func_start MOD05_021E72E8
MOD05_021E72E8: ; 0x021E72E8
@@ -33116,12 +33116,12 @@ _021E74E8:
thumb_func_start MOD05_021E74F8
MOD05_021E74F8: ; 0x021E74F8
- ldr r3, _021E7500 ; =0x02016A8D
+ ldr r3, _021E7500 ; =FUN_02016A8C
add r1, r0, #0
mov r0, #4
bx r3
.balign 4, 0
-_021E7500: .word 0x02016A8D
+_021E7500: .word FUN_02016A8C
thumb_func_start MOD05_021E7504
MOD05_021E7504: ; 0x021E7504
@@ -33157,12 +33157,12 @@ _021E7532:
str r0, [r1, #0x10]
_021E7536:
ldr r0, [r1]
- ldr r3, _021E7540 ; =0x02055305
+ ldr r3, _021E7540 ; =FUN_02055304
ldr r0, [r0, #0x38]
ldr r1, [r1, #0x10]
bx r3
.balign 4, 0
-_021E7540: .word 0x02055305
+_021E7540: .word FUN_02055304
thumb_func_start MOD05_021E7544
MOD05_021E7544: ; 0x021E7544
@@ -34048,10 +34048,10 @@ MOD05_021E7C00: ; 0x021E7C00
thumb_func_start MOD05_021E7C14
MOD05_021E7C14: ; 0x021E7C14
- ldr r3, _021E7C18 ; =0x02016A19
+ ldr r3, _021E7C18 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021E7C18: .word 0x02016A19
+_021E7C18: .word FUN_02016A18
thumb_func_start MOD05_021E7C1C
MOD05_021E7C1C: ; 0x021E7C1C
@@ -36434,14 +36434,14 @@ _021E8E50: .word 0x04000010
thumb_func_start MOD05_021E8E54
MOD05_021E8E54: ; 0x021E8E54
- ldr r3, _021E8E60 ; =0x0200CA61
+ ldr r3, _021E8E60 ; =FUN_0200CA60
mov r2, #1
add r1, r0, #0
ldr r0, _021E8E64 ; =MOD05_021E8E68
lsl r2, r2, #0xa
bx r3
.balign 4, 0
-_021E8E60: .word 0x0200CA61
+_021E8E60: .word FUN_0200CA60
_021E8E64: .word MOD05_021E8E68
thumb_func_start MOD05_021E8E68
@@ -45836,11 +45836,11 @@ MOD05_021EDA98: ; 0x021EDA98
thumb_func_start MOD05_021EDAE8
MOD05_021EDAE8: ; 0x021EDAE8
- ldr r3, _021EDAF0 ; =0x0201F745
+ ldr r3, _021EDAF0 ; =FUN_0201F744
ldr r0, [r1, #0x20]
bx r3
nop
-_021EDAF0: .word 0x0201F745
+_021EDAF0: .word FUN_0201F744
thumb_func_start MOD05_021EDAF4
MOD05_021EDAF4: ; 0x021EDAF4
@@ -50062,7 +50062,7 @@ MOD05_021EFA9C: ; 0x021EFA9C
ldr r0, [r0, #0x14]
cmp r0, #0
beq _021EFAAA
- bl FUN_022524DC
+ bl MOD20_022524DC
_021EFAAA:
pop {r3, pc}
@@ -50096,7 +50096,7 @@ MOD05_021EFAAC: ; 0x021EFAAC
ldr r3, [r5, #8]
add r0, r5, #0
add r1, #0x14
- bl FUN_02252448
+ bl MOD20_02252448
add sp, #4
pop {r3, r4, r5, r6, pc}
_021EFAF8:
@@ -50104,7 +50104,7 @@ _021EFAF8:
mov r1, #2
bl HandleLoadOverlay
ldr r0, [r5, #8]
- bl FUN_02252440
+ bl MOD19_02252440
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
@@ -50131,11 +50131,11 @@ MOD05_021EFB14: ; 0x021EFB14
bne _021EFB46
ldr r0, [r5, #4]
ldr r0, [r0, #0x14]
- bl FUN_022524BC
+ bl MOD20_022524BC
pop {r4, r5, r6, pc}
_021EFB46:
ldr r0, [r5, #8]
- bl FUN_022524F4
+ bl MOD19_022524F4
pop {r4, r5, r6, pc}
.balign 4, 0
@@ -50159,7 +50159,7 @@ MOD05_021EFB50: ; 0x021EFB50
bne _021EFB94
ldr r0, [r5, #4]
ldr r0, [r0, #0x14]
- bl FUN_022524D0
+ bl MOD20_022524D0
cmp r0, #0
beq _021EFBA8
ldr r0, [r5, #4]
@@ -50171,7 +50171,7 @@ MOD05_021EFB50: ; 0x021EFB50
pop {r4, r5, r6, pc}
_021EFB94:
ldr r0, [r5, #8]
- bl FUN_02252504
+ bl MOD19_02252504
cmp r0, #0
beq _021EFBA8
ldr r0, _021EFBB0 ; =SDK_OVERLAY_MODULE_19_ID
@@ -50193,24 +50193,24 @@ MOD05_021EFBB4: ; 0x021EFBB4
mov r1, #2
bl HandleLoadOverlay
ldr r0, [r4, #8]
- bl FUN_02252440
+ bl MOD19_02252440
pop {r4, pc}
.balign 4, 0
_021EFBC8: .word SDK_OVERLAY_MODULE_19_ID
thumb_func_start MOD05_021EFBCC
MOD05_021EFBCC: ; 0x021EFBCC
- ldr r3, _021EFBD4 ; =FUN_022524F4
+ ldr r3, _021EFBD4 ; =MOD19_022524F4
ldr r0, [r0, #8]
bx r3
nop
-_021EFBD4: .word FUN_022524F4 + 1
+_021EFBD4: .word MOD19_022524F4
thumb_func_start MOD05_021EFBD8
MOD05_021EFBD8: ; 0x021EFBD8
push {r3, lr}
ldr r0, [r0, #8]
- bl FUN_02252504
+ bl MOD19_02252504
cmp r0, #0
beq _021EFBEE
ldr r0, _021EFBF4 ; =SDK_OVERLAY_MODULE_19_ID
@@ -53980,7 +53980,7 @@ MOD05_021F19E4: ; 0x021F19E4
bl FUN_02058604
add r4, r0, #0
add r0, r5, #0
- bl FUN_0224A130
+ bl MOD06_0224A130
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -53993,7 +53993,7 @@ MOD05_021F19FC: ; 0x021F19FC
bl FUN_02058604
add r4, r0, #0
add r0, r5, #0
- bl FUN_0224A6B8
+ bl MOD06_0224A6B8
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -54006,7 +54006,7 @@ MOD05_021F1A14: ; 0x021F1A14
bl FUN_02058604
add r4, r0, #0
add r0, r5, #0
- bl FUN_0224A8D4
+ bl MOD06_0224A8D4
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -54019,7 +54019,7 @@ MOD05_021F1A2C: ; 0x021F1A2C
bl FUN_02058604
add r4, r0, #0
add r0, r5, #0
- bl FUN_0224AA40
+ bl MOD06_0224AA40
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -54069,7 +54069,7 @@ MOD05_021F1A78: ; 0x021F1A78
bl ErrorHandling
_021F1A8C:
add r0, r5, #0
- bl FUN_0224A130
+ bl MOD06_0224A130
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -54086,7 +54086,7 @@ MOD05_021F1A98: ; 0x021F1A98
bl ErrorHandling
_021F1AAC:
add r0, r5, #0
- bl FUN_0224A6B8
+ bl MOD06_0224A6B8
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -54103,7 +54103,7 @@ MOD05_021F1AB8: ; 0x021F1AB8
bl ErrorHandling
_021F1ACC:
add r0, r5, #0
- bl FUN_0224A8D4
+ bl MOD06_0224A8D4
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -54120,7 +54120,7 @@ MOD05_021F1AD8: ; 0x021F1AD8
bl ErrorHandling
_021F1AEC:
add r0, r5, #0
- bl FUN_0224AA40
+ bl MOD06_0224AA40
str r0, [r4]
pop {r3, r4, r5, pc}
.balign 4, 0
@@ -54131,7 +54131,7 @@ MOD05_021F1AF8: ; 0x021F1AF8
bl FUN_02058628
add r4, r0, #0
ldr r0, [r4]
- bl FUN_0224A6FC
+ bl MOD06_0224A6FC
mov r0, #0
str r0, [r4]
pop {r4, pc}
@@ -54282,10 +54282,10 @@ _021F1C18: .word MOD05_021F1CA4
thumb_func_start MOD05_021F1C1C
MOD05_021F1C1C: ; 0x021F1C1C
- ldr r3, _021F1C20 ; =0x02058629
+ ldr r3, _021F1C20 ; =FUN_02058628
bx r3
.balign 4, 0
-_021F1C20: .word 0x02058629
+_021F1C20: .word FUN_02058628
thumb_func_start MOD05_021F1C24
MOD05_021F1C24: ; 0x021F1C24
@@ -56743,10 +56743,10 @@ MOD05_021F2E40: ; 0x021F2E40
thumb_func_start MOD05_021F2E68
MOD05_021F2E68: ; 0x021F2E68
- ldr r3, _021F2E6C ; =0x0201F23D
+ ldr r3, _021F2E6C ; =FUN_0201F23C
bx r3
.balign 4, 0
-_021F2E6C: .word 0x0201F23D
+_021F2E6C: .word FUN_0201F23C
thumb_func_start MOD05_021F2E70
MOD05_021F2E70: ; 0x021F2E70
@@ -57801,7 +57801,7 @@ _021F3658:
ldr r2, [r5, #0x24]
add r1, #0x28
add r3, sp, #0x1c
- bl FUN_02249B7C
+ bl MOD06_02249B7C
str r0, [r5, #0x54]
_021F367A:
add r0, r7, #0
@@ -57964,12 +57964,12 @@ _021F37C2:
thumb_func_start MOD05_021F37D0
MOD05_021F37D0: ; 0x021F37D0
- ldr r3, _021F37D8 ; =0x02016A8D
+ ldr r3, _021F37D8 ; =FUN_02016A8C
add r1, r0, #0
ldr r0, [r1]
bx r3
.balign 4, 0
-_021F37D8: .word 0x02016A8D
+_021F37D8: .word FUN_02016A8C
thumb_func_start MOD05_021F37DC
MOD05_021F37DC: ; 0x021F37DC
@@ -59235,13 +59235,13 @@ _021F4180:
thumb_func_start MOD05_021F4184
MOD05_021F4184: ; 0x021F4184
- ldr r3, _021F4190 ; =0x02006865
+ ldr r3, _021F4190 ; =FUN_02006864
add r2, r1, #0
mov r1, #0x1c
ldr r2, [r2]
bx r3
nop
-_021F4190: .word 0x02006865
+_021F4190: .word FUN_02006864
thumb_func_start MOD05_021F4194
MOD05_021F4194: ; 0x021F4194
@@ -59250,10 +59250,10 @@ MOD05_021F4194: ; 0x021F4194
mov r1, #0xc
mul r1, r2
ldr r2, [r3, #0x10]
- ldr r3, _021F41A4 ; =0x02006865
+ ldr r3, _021F41A4 ; =FUN_02006864
bx r3
nop
-_021F41A4: .word 0x02006865
+_021F41A4: .word FUN_02006864
thumb_func_start MOD05_021F41A8
MOD05_021F41A8: ; 0x021F41A8
@@ -59262,10 +59262,10 @@ MOD05_021F41A8: ; 0x021F41A8
mov r1, #0xc
mul r1, r2
ldr r2, [r3, #0x14]
- ldr r3, _021F41B8 ; =0x02006865
+ ldr r3, _021F41B8 ; =FUN_02006864
bx r3
nop
-_021F41B8: .word 0x02006865
+_021F41B8: .word FUN_02006864
thumb_func_start MOD05_021F41BC
MOD05_021F41BC: ; 0x021F41BC
@@ -59274,41 +59274,41 @@ MOD05_021F41BC: ; 0x021F41BC
mov r1, #0xc
mul r1, r2
ldr r2, [r3, #4]
- ldr r3, _021F41CC ; =0x02006865
+ ldr r3, _021F41CC ; =FUN_02006864
bx r3
nop
-_021F41CC: .word 0x02006865
+_021F41CC: .word FUN_02006864
thumb_func_start MOD05_021F41D0
MOD05_021F41D0: ; 0x021F41D0
add r3, r1, #0
ldr r1, [r2, #0xc]
ldr r2, [r3, #8]
- ldr r3, _021F41DC ; =0x02006865
+ ldr r3, _021F41DC ; =FUN_02006864
lsl r1, r1, #2
bx r3
.balign 4, 0
-_021F41DC: .word 0x02006865
+_021F41DC: .word FUN_02006864
thumb_func_start MOD05_021F41E0
MOD05_021F41E0: ; 0x021F41E0
add r3, r1, #0
ldr r1, [r2, #0x14]
ldr r2, [r3, #0xc]
- ldr r3, _021F41EC ; =0x02006865
+ ldr r3, _021F41EC ; =FUN_02006864
bx r3
nop
-_021F41EC: .word 0x02006865
+_021F41EC: .word FUN_02006864
thumb_func_start MOD05_021F41F0
MOD05_021F41F0: ; 0x021F41F0
add r3, r1, #0
ldr r1, [r2, #0x10]
ldr r2, [r3, #0x18]
- ldr r3, _021F41FC ; =0x02006865
+ ldr r3, _021F41FC ; =FUN_02006864
bx r3
nop
-_021F41FC: .word 0x02006865
+_021F41FC: .word FUN_02006864
thumb_func_start MOD05_021F4200
MOD05_021F4200: ; 0x021F4200
@@ -60336,12 +60336,12 @@ MOD05_021F491C: ; 0x021F491C
thumb_func_start MOD05_021F4968
MOD05_021F4968: ; 0x021F4968
ldr r2, [r1, #0x14]
- ldr r3, _021F4974 ; =0x02016B45
+ ldr r3, _021F4974 ; =FUN_02016B44
add r1, r1, r2
sub r1, r1, r0
bx r3
nop
-_021F4974: .word 0x02016B45
+_021F4974: .word FUN_02016B44
thumb_func_start MOD05_021F4978
MOD05_021F4978: ; 0x021F4978
@@ -62106,21 +62106,21 @@ _021F5696:
thumb_func_start MOD05_021F569C
MOD05_021F569C: ; 0x021F569C
- ldr r3, _021F56A4 ; =0x02017FE5
+ ldr r3, _021F56A4 ; =FUN_02017FE4
mov r0, #2
mov r1, #0
bx r3
.balign 4, 0
-_021F56A4: .word 0x02017FE5
+_021F56A4: .word FUN_02017FE4
thumb_func_start MOD05_021F56A8
MOD05_021F56A8: ; 0x021F56A8
- ldr r3, _021F56B0 ; =0x02017FE5
+ ldr r3, _021F56B0 ; =FUN_02017FE4
mov r0, #2
ldr r1, _021F56B4 ; =0x00007FFF
bx r3
.balign 4, 0
-_021F56B0: .word 0x02017FE5
+_021F56B0: .word FUN_02017FE4
_021F56B4: .word 0x00007FFF
thumb_func_start MOD05_021F56B8
@@ -62383,7 +62383,7 @@ _021F5888:
bl FUN_0204A6E0
add r1, r0, #0
add r0, r5, #0
- bl FUN_0223CDB8
+ bl MOD06_0223CDB8
cmp r0, #0
beq _021F58CE
mov r0, #6
@@ -62433,7 +62433,7 @@ _021F5914:
_021F5924:
add r0, r5, #0
add r1, r6, #0
- bl FUN_0223BE70
+ bl MOD06_0223BE70
cmp r0, #0
bne _021F5980
bl ErrorHandling
@@ -62710,10 +62710,10 @@ _021F5B30:
thumb_func_start MOD05_021F5B34
MOD05_021F5B34: ; 0x021F5B34
- ldr r3, _021F5B38 ; =0x02016A19
+ ldr r3, _021F5B38 ; =FUN_02016A18
bx r3
.balign 4, 0
-_021F5B38: .word 0x02016A19
+_021F5B38: .word FUN_02016A18
thumb_func_start MOD05_021F5B3C
MOD05_021F5B3C: ; 0x021F5B3C
@@ -62797,9 +62797,9 @@ MOD05_021F5B9C: ; 0x021F5B9C
bl FUN_02050DF0
add r7, r0, #0
beq _021F5C40
- bl FUN_0223E2C4
+ bl MOD18_0223E2C4
add r6, r0, #0
- bl FUN_0223E2DC
+ bl MOD18_0223E2DC
lsl r1, r6, #0x15
lsl r0, r0, #0x15
mov r4, #0
@@ -62917,7 +62917,7 @@ _021F5C8E:
ldr r1, [r5, #0xc]
add r0, r4, #0
add r2, #0x10
- bl FUN_0223BD14
+ bl MOD06_0223BD14
str r0, [r5, #8]
ldr r1, [r5, #0xc]
ldr r2, [r5, #8]
@@ -63791,13 +63791,13 @@ _021F62F2:
thumb_func_start MOD05_021F62FC
MOD05_021F62FC: ; 0x021F62FC
- ldr r3, _021F6308 ; =0x0201EFE1
+ ldr r3, _021F6308 ; =FUN_0201EFE0
add r1, r0, #0
ldr r0, [r1, #0x20]
ldr r1, [r1, #0x30]
bx r3
nop
-_021F6308: .word 0x0201EFE1
+_021F6308: .word FUN_0201EFE0
thumb_func_start MOD05_021F630C
MOD05_021F630C: ; 0x021F630C
@@ -63909,7 +63909,7 @@ _021F63CC:
ldr r0, [sp]
ldr r2, [r6]
mov r1, #0
- bl FUN_0224666C
+ bl MOD06_0224666C
str r0, [r5]
ldr r0, [r4]
add r0, r0, #1
@@ -63917,11 +63917,11 @@ _021F63CC:
b _021F6424
_021F63EA:
ldr r0, [r5]
- bl FUN_022466A0
+ bl MOD06_022466A0
cmp r0, #0
beq _021F6424
ldr r0, [r5]
- bl FUN_022466AC
+ bl MOD06_022466AC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -63948,9 +63948,13 @@ _021F6424:
.align 2, 0
_021F6428: .word MOD05_021F57F0
- .section .data
+ .section .rodata
; 0x021F642C
- .incbin "baserom.nds", 0x16434c, 0x7254
+ .incbin "baserom.nds", 0x16434c, 0x6d9c
+
+ .section .data
+ ; 0x021FD1E0
+ .incbin "baserom.nds", 0x16b100, 0x4A0
.section .bss
; 0x021FD680
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
index ac7d6b48..a7ddd5a6 100644
--- a/arm9/modules/06/asm/module_06.s
+++ b/arm9/modules/06/asm/module_06.s
@@ -180,26 +180,26 @@ _022397F0: .word 0x0224F1D8
thumb_func_start MOD06_022397F4
MOD06_022397F4: ; 0x022397F4
- ldr r3, _02239800 ; =0x0200CA99
+ ldr r3, _02239800 ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _02239804 ; =MOD06_0223981C
lsl r2, r2, #0xa
bx r3
.align 2, 0
-_02239800: .word 0x0200CA99
+_02239800: .word FUN_0200CA98
_02239804: .word MOD06_0223981C
thumb_func_start MOD06_02239808
MOD06_02239808: ; 0x02239808
- ldr r3, _02239814 ; =0x0200CA99
+ ldr r3, _02239814 ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _02239818 ; =MOD06_02239840
lsl r2, r2, #0xa
bx r3
.align 2, 0
-_02239814: .word 0x0200CA99
+_02239814: .word FUN_0200CA98
_02239818: .word MOD06_02239840
thumb_func_start MOD06_0223981C
@@ -238,15 +238,15 @@ MOD06_02239840: ; 0x02239840
thumb_func_start MOD06_02239864
MOD06_02239864: ; 0x02239864
- ldr r3, _02239868 ; =0x021D7A29
+ ldr r3, _02239868 ; =MOD05_021D7A28
bx r3
.align 2, 0
-_02239868: .word 0x021D7A29
+_02239868: .word MOD05_021D7A28
thumb_func_start MOD06_0223986C
MOD06_0223986C: ; 0x0223986C
push {r3, lr}
- bl FUN_021D7A20
+ bl MOD05_021D7A20
mov r0, #1
add r1, r0, #0
bl FUN_0201E6E4
@@ -271,7 +271,7 @@ _0223988A:
add r0, sp, #0
str r3, [sp, #0x20]
str r2, [sp, #0x24]
- bl FUN_021E8648
+ bl MOD05_021E8648
add sp, #0x2c
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -279,14 +279,14 @@ _022398A4: .word 0x0224F21C
thumb_func_start MOD06_022398A8
MOD06_022398A8: ; 0x022398A8
- ldr r3, _022398B4 ; =0x0200CA99
+ ldr r3, _022398B4 ; =FUN_0200CA98
mov r2, #1
add r1, r0, #0
ldr r0, _022398B8 ; =MOD06_022398BC
lsl r2, r2, #0xa
bx r3
.align 2, 0
-_022398B4: .word 0x0200CA99
+_022398B4: .word FUN_0200CA98
_022398B8: .word MOD06_022398BC
thumb_func_start MOD06_022398BC
@@ -298,7 +298,7 @@ MOD06_022398BC: ; 0x022398BC
mov r1, #1
mov r2, #0
add r3, r1, #0
- bl FUN_021E8698
+ bl MOD05_021E8698
add r0, r4, #0
bl FUN_0200CAB4
pop {r4, pc}
@@ -822,25 +822,25 @@ _02239CE4:
thumb_func_start MOD06_02239CE8
MOD06_02239CE8: ; 0x02239CE8
ldr r0, [r0, #4]
- ldr r3, _02239CF4 ; =0x021D8025
+ ldr r3, _02239CF4 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _02239CF8 ; =0x0224F1C0
bx r3
nop
-_02239CF4: .word 0x021D8025
+_02239CF4: .word MOD05_021D8024
_02239CF8: .word 0x0224F1C0
thumb_func_start MOD06_02239CFC
MOD06_02239CFC: ; 0x02239CFC
- ldr r3, _02239D00 ; =0x021D80A5
+ ldr r3, _02239D00 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_02239D00: .word 0x021D80A5
+_02239D00: .word MOD05_021D80A4
thumb_func_start MOD06_02239D04
MOD06_02239D04: ; 0x02239D04
push {r3, lr}
- bl FUN_021D80E4
+ bl MOD05_021D80E4
ldr r0, [r0]
cmp r0, #0xb
bne _02239D14
@@ -1170,20 +1170,20 @@ _02239F60: .word MOD06_0223B340
thumb_func_start MOD06_02239F64
MOD06_02239F64: ; 0x02239F64
ldr r0, [r0, #4]
- ldr r3, _02239F70 ; =0x021D8025
+ ldr r3, _02239F70 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _02239F74 ; =0x0224F190
bx r3
nop
-_02239F70: .word 0x021D8025
+_02239F70: .word MOD05_021D8024
_02239F74: .word 0x0224F190
thumb_func_start MOD06_02239F78
MOD06_02239F78: ; 0x02239F78
- ldr r3, _02239F7C ; =0x021D80A5
+ ldr r3, _02239F7C ; =MOD05_021D80A4
bx r3
.align 2, 0
-_02239F7C: .word 0x021D80A5
+_02239F7C: .word MOD05_021D80A4
thumb_func_start MOD06_02239F80
MOD06_02239F80: ; 0x02239F80
@@ -1291,10 +1291,10 @@ MOD06_0223A020: ; 0x0223A020
bl FUN_0201EC94
add r0, r5, #0
add r0, #0x48
- bl FUN_021DB4B0
+ bl MOD05_021DB4B0
ldr r0, [r5, #0x40]
mov r1, #2
- bl FUN_021DB44C
+ bl MOD05_021DB44C
str r0, [r5, #0x48]
mov r0, #4
bl MOD06_0223B574
@@ -1365,10 +1365,10 @@ MOD06_0223A0D4: ; 0x0223A0D4
bl FUN_0201EC94
add r0, r5, #0
add r0, #0x48
- bl FUN_021DB4B0
+ bl MOD05_021DB4B0
ldr r0, [r5, #0x40]
mov r1, #2
- bl FUN_021DB44C
+ bl MOD05_021DB44C
str r0, [r5, #0x48]
mov r0, #4
bl MOD06_0223B574
@@ -1437,7 +1437,7 @@ MOD06_0223A1B0: ; 0x0223A1B0
MOD06_0223A1C4: ; 0x0223A1C4
lsl r2, r1, #2
ldr r1, _0223A1D8 ; =0x0224F174
- ldr r3, _0223A1DC ; =0x021D8025
+ ldr r3, _0223A1DC ; =MOD05_021D8024
ldr r2, [r1, r2]
ldr r1, _0223A1E0 ; =0x02252240
str r2, [r1, #8]
@@ -1447,7 +1447,7 @@ MOD06_0223A1C4: ; 0x0223A1C4
bx r3
.align 2, 0
_0223A1D8: .word 0x0224F174
-_0223A1DC: .word 0x021D8025
+_0223A1DC: .word MOD05_021D8024
_0223A1E0: .word 0x02252240
_0223A1E4: .word 0x02252240
@@ -1585,25 +1585,25 @@ _0223A2E4: .word MOD06_0223A828
thumb_func_start MOD06_0223A2E8
MOD06_0223A2E8: ; 0x0223A2E8
ldr r0, [r0, #4]
- ldr r3, _0223A2F4 ; =0x021D8025
+ ldr r3, _0223A2F4 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0223A2F8 ; =0x0224F1A8
bx r3
nop
-_0223A2F4: .word 0x021D8025
+_0223A2F4: .word MOD05_021D8024
_0223A2F8: .word 0x0224F1A8
thumb_func_start MOD06_0223A2FC
MOD06_0223A2FC: ; 0x0223A2FC
- ldr r3, _0223A300 ; =0x021D80A5
+ ldr r3, _0223A300 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0223A300: .word 0x021D80A5
+_0223A300: .word MOD05_021D80A4
thumb_func_start MOD06_0223A304
MOD06_0223A304: ; 0x0223A304
push {r3, lr}
- bl FUN_021D80E4
+ bl MOD05_021D80E4
mov r1, #3
str r1, [r0]
pop {r3, pc}
@@ -1611,7 +1611,7 @@ MOD06_0223A304: ; 0x0223A304
thumb_func_start MOD06_0223A310
MOD06_0223A310: ; 0x0223A310
push {r3, lr}
- bl FUN_021D80E4
+ bl MOD05_021D80E4
ldr r0, [r0]
pop {r3, pc}
.align 2, 0
@@ -1696,15 +1696,15 @@ _0223A370:
thumb_func_start MOD06_0223A39C
MOD06_0223A39C: ; 0x0223A39C
push {r3, lr}
- bl FUN_021F5268
+ bl MOD05_021F5268
pop {r3, pc}
thumb_func_start MOD06_0223A3A4
MOD06_0223A3A4: ; 0x0223A3A4
- ldr r3, _0223A3A8 ; =0x021F52C9
+ ldr r3, _0223A3A8 ; =MOD05_021F52C8
bx r3
.align 2, 0
-_0223A3A8: .word 0x021F52C9
+_0223A3A8: .word MOD05_021F52C8
thumb_func_start MOD06_0223A3AC
MOD06_0223A3AC: ; 0x0223A3AC
@@ -1714,95 +1714,95 @@ MOD06_0223A3AC: ; 0x0223A3AC
str r4, [sp]
ldr r4, [sp, #0x14]
str r4, [sp, #4]
- bl FUN_021F531C
+ bl MOD05_021F531C
add sp, #8
pop {r4, pc}
thumb_func_start MOD06_0223A3C0
MOD06_0223A3C0: ; 0x0223A3C0
- ldr r3, _0223A3C4 ; =0x021F5359
+ ldr r3, _0223A3C4 ; =MOD05_021F5358
bx r3
.align 2, 0
-_0223A3C4: .word 0x021F5359
+_0223A3C4: .word MOD05_021F5358
thumb_func_start MOD06_0223A3C8
MOD06_0223A3C8: ; 0x0223A3C8
- ldr r3, _0223A3D0 ; =0x021F5385
+ ldr r3, _0223A3D0 ; =MOD05_021F5384
mov r1, #1
lsl r1, r1, #0xc
bx r3
.align 2, 0
-_0223A3D0: .word 0x021F5385
+_0223A3D0: .word MOD05_021F5384
thumb_func_start MOD06_0223A3D4
MOD06_0223A3D4: ; 0x0223A3D4
- ldr r3, _0223A3D8 ; =0x021F5385
+ ldr r3, _0223A3D8 ; =MOD05_021F5384
bx r3
.align 2, 0
-_0223A3D8: .word 0x021F5385
+_0223A3D8: .word MOD05_021F5384
thumb_func_start MOD06_0223A3DC
MOD06_0223A3DC: ; 0x0223A3DC
- ldr r3, _0223A3E4 ; =0x021F53BD
+ ldr r3, _0223A3E4 ; =MOD05_021F53BC
mov r1, #1
lsl r1, r1, #0xc
bx r3
.align 2, 0
-_0223A3E4: .word 0x021F53BD
+_0223A3E4: .word MOD05_021F53BC
thumb_func_start MOD06_0223A3E8
MOD06_0223A3E8: ; 0x0223A3E8
- ldr r3, _0223A3EC ; =0x021F53F9
+ ldr r3, _0223A3EC ; =MOD05_021F53F8
bx r3
.align 2, 0
-_0223A3EC: .word 0x021F53F9
+_0223A3EC: .word MOD05_021F53F8
thumb_func_start MOD06_0223A3F0
MOD06_0223A3F0: ; 0x0223A3F0
- ldr r3, _0223A3F4 ; =0x021F5401
+ ldr r3, _0223A3F4 ; =MOD05_021F5400
bx r3
.align 2, 0
-_0223A3F4: .word 0x021F5401
+_0223A3F4: .word MOD05_021F5400
thumb_func_start MOD06_0223A3F8
MOD06_0223A3F8: ; 0x0223A3F8
- ldr r3, _0223A3FC ; =0x021F5425
+ ldr r3, _0223A3FC ; =MOD05_021F5424
bx r3
.align 2, 0
-_0223A3FC: .word 0x021F5425
+_0223A3FC: .word MOD05_021F5424
thumb_func_start MOD06_0223A400
MOD06_0223A400: ; 0x0223A400
- ldr r3, _0223A404 ; =0x021F5431
+ ldr r3, _0223A404 ; =MOD05_021F5430
bx r3
.align 2, 0
-_0223A404: .word 0x021F5431
+_0223A404: .word MOD05_021F5430
thumb_func_start MOD06_0223A408
MOD06_0223A408: ; 0x0223A408
- ldr r3, _0223A40C ; =0x021F54CD
+ ldr r3, _0223A40C ; =MOD05_021F54CC
bx r3
.align 2, 0
-_0223A40C: .word 0x021F54CD
+_0223A40C: .word MOD05_021F54CC
thumb_func_start MOD06_0223A410
MOD06_0223A410: ; 0x0223A410
push {r3, lr}
- bl FUN_021F54D0
+ bl MOD05_021F54D0
pop {r3, pc}
thumb_func_start MOD06_0223A418
MOD06_0223A418: ; 0x0223A418
push {r3, lr}
- bl FUN_021F54D8
+ bl MOD05_021F54D8
pop {r3, pc}
thumb_func_start MOD06_0223A420
MOD06_0223A420: ; 0x0223A420
- ldr r3, _0223A424 ; =0x021F54E1
+ ldr r3, _0223A424 ; =MOD05_021F54E0
bx r3
.align 2, 0
-_0223A424: .word 0x021F54E1
+_0223A424: .word MOD05_021F54E0
thumb_func_start MOD06_0223A428
MOD06_0223A428: ; 0x0223A428
@@ -2335,7 +2335,7 @@ MOD06_0223A800: ; 0x0223A800
mov r2, #0
lsl r0, r0, #4
str r2, [r1, r0]
- ldr r3, _0223A818 ; =0x0200CA45
+ ldr r3, _0223A818 ; =FUN_0200CA44
mov r2, #4
sub r0, r0, #4
str r2, [r1, r0]
@@ -2343,7 +2343,7 @@ MOD06_0223A800: ; 0x0223A800
lsl r2, r2, #8
bx r3
.align 2, 0
-_0223A818: .word 0x0200CA45
+_0223A818: .word FUN_0200CA44
_0223A81C: .word MOD06_0223A944
thumb_func_start MOD06_0223A820
@@ -3245,8 +3245,8 @@ _0223AEE0:
MOD06_0223AEE8: ; 0x0223AEE8
push {r3, lr}
ldr r0, [r0]
- bl FUN_021F1C1C
- bl FUN_021F1C30
+ bl MOD05_021F1C1C
+ bl MOD05_021F1C30
pop {r3, pc}
.align 2, 0
@@ -4371,10 +4371,10 @@ _0223B72C:
thumb_func_start MOD06_0223B73C
MOD06_0223B73C: ; 0x0223B73C
- ldr r3, _0223B740 ; =0x02016A19
+ ldr r3, _0223B740 ; =FUN_02016A18
bx r3
.align 2, 0
-_0223B740: .word 0x02016A19
+_0223B740: .word FUN_02016A18
thumb_func_start MOD06_0223B744
MOD06_0223B744: ; 0x0223B744
@@ -4388,12 +4388,12 @@ MOD06_0223B744: ; 0x0223B744
str r1, [r0, #0x10]
str r2, [r0, #0x14]
ldr r0, [r0]
- ldr r3, _0223B764 ; =0x021DB52D
+ ldr r3, _0223B764 ; =MOD05_021DB52C
ldr r0, [r0, #0x48]
bx r3
nop
_0223B760: .word 0x0224F248
-_0223B764: .word 0x021DB52D
+_0223B764: .word MOD05_021DB52C
thumb_func_start MOD06_0223B768
MOD06_0223B768: ; 0x0223B768
@@ -4441,7 +4441,7 @@ _0223B7AE:
add r0, r1, r0
ldr r1, [r4]
ldr r1, [r1, #0x40]
- bl FUN_021DB53C
+ bl MOD05_021DB53C
pop {r3, r4, r5, pc}
_0223B7C0:
ldr r0, [r4, #0xc]
@@ -4468,7 +4468,7 @@ _0223B7C0:
ldr r2, [r4, #4]
ldr r1, [r1, #0x40]
add r0, r2, r0
- bl FUN_021DB53C
+ bl MOD05_021DB53C
pop {r3, r4, r5, pc}
_0223B7F6:
ldr r0, [r4, #0xc]
@@ -4477,7 +4477,7 @@ _0223B7F6:
ldr r0, [r4]
mov r1, #1
ldr r0, [r0, #0x48]
- bl FUN_021DB52C
+ bl MOD05_021DB52C
ldr r0, [r4, #0x14]
add r0, r0, #1
str r0, [r4, #0x14]
@@ -7113,7 +7113,7 @@ MOD06_0223CCDC: ; 0x0223CCDC
sub sp, #0x24
add r5, r0, #0
add r4, r1, #0
- bl FUN_021F51D0
+ bl MOD05_021F51D0
str r0, [sp, #8]
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
@@ -7161,7 +7161,7 @@ _0223CD46:
mov r7, #0xf
_0223CD4C:
add r0, r5, #0
- bl FUN_021F522C
+ bl MOD05_021F522C
mov r1, #0x63
lsl r1, r1, #2
ldr r2, [r4, r1]
@@ -10913,7 +10913,7 @@ MOD06_0223EB90: ; 0x0223EB90
add r0, #0x94
mov r2, #4
mov r3, #0xb
- bl FUN_021D9320
+ bl MOD05_021D9320
add r7, r5, #0
ldr r4, _0223EBD0 ; =0x0224F3DC
mov r6, #0
@@ -10921,7 +10921,7 @@ MOD06_0223EB90: ; 0x0223EB90
_0223EBA8:
add r0, r7, #0
add r1, r4, #0
- bl FUN_021D9510
+ bl MOD05_021D9510
mov r1, #0x7e
lsl r1, r1, #2
str r0, [r5, r1]
@@ -10955,7 +10955,7 @@ _0223EBE0:
blo _0223EBE0
add r7, #0x94
add r0, r7, #0
- bl FUN_021D94B4
+ bl MOD05_021D94B4
pop {r3, r4, r5, r6, r7, pc}
thumb_func_start MOD06_0223EBF8
@@ -11061,18 +11061,18 @@ _0223ECC4: .word 0x00000241
MOD06_0223ECC8: ; 0x0223ECC8
mov r2, #2
lsl r2, r2, #8
- ldr r3, _0223ECD4 ; =0x0200C665
+ ldr r3, _0223ECD4 ; =FUN_0200C664
ldr r0, [r0, r2]
bx r3
nop
-_0223ECD4: .word 0x0200C665
+_0223ECD4: .word FUN_0200C664
thumb_func_start MOD06_0223ECD8
MOD06_0223ECD8: ; 0x0223ECD8
push {r4, lr}
mov r0, #0
add r4, r1, #0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
ldr r0, _0223ECEC ; =0x0000022F
mov r1, #0xf
strb r1, [r4, r0]
@@ -12486,10 +12486,10 @@ MOD06_0223F89C: ; 0x0223F89C
thumb_func_start MOD06_0223F8B4
MOD06_0223F8B4: ; 0x0223F8B4
- ldr r3, _0223F8B8 ; =0x02050025
+ ldr r3, _0223F8B8 ; =FUN_02050024
bx r3
.align 2, 0
-_0223F8B8: .word 0x02050025
+_0223F8B8: .word FUN_02050024
thumb_func_start MOD06_0223F8BC
MOD06_0223F8BC: ; 0x0223F8BC
@@ -14240,26 +14240,26 @@ _0224074C: .word 0x02252420
thumb_func_start MOD06_02240750
MOD06_02240750: ; 0x02240750
ldr r0, _0224075C ; =0x02252420
- ldr r3, _02240760 ; =0x02031259
+ ldr r3, _02240760 ; =FUN_02031258
ldr r0, [r0]
add r0, #0x91
ldrb r0, [r0]
bx r3
.align 2, 0
_0224075C: .word 0x02252420
-_02240760: .word 0x02031259
+_02240760: .word FUN_02031258
thumb_func_start MOD06_02240764
MOD06_02240764: ; 0x02240764
ldr r0, _02240770 ; =0x02252420
- ldr r3, _02240774 ; =0x02031249
+ ldr r3, _02240774 ; =FUN_02031248
ldr r0, [r0]
add r0, #0x91
ldrb r0, [r0]
bx r3
.align 2, 0
_02240770: .word 0x02252420
-_02240774: .word 0x02031249
+_02240774: .word FUN_02031248
thumb_func_start MOD06_02240778
MOD06_02240778: ; 0x02240778
@@ -15765,36 +15765,36 @@ _02241376:
_02241386:
ldr r1, [r4, #0x4c]
mov r0, #1
- bl FUN_021DA03C
+ bl MOD05_021DA03C
add r6, r0, #0
ldr r1, [r4, #0x4c]
mov r0, #2
- bl FUN_021DA03C
+ bl MOD05_021DA03C
add r7, r0, #0
ldr r1, [r4, #0x4c]
mov r0, #3
- bl FUN_021DA03C
+ bl MOD05_021DA03C
str r0, [sp]
add r0, r6, #0
- bl FUN_021DA20C
+ bl MOD05_021DA20C
cmp r0, #0
beq _0224141E
add r0, r7, #0
- bl FUN_021DA20C
+ bl MOD05_021DA20C
cmp r0, #0
beq _0224141E
ldr r0, [sp]
- bl FUN_021DA20C
+ bl MOD05_021DA20C
cmp r0, #0
beq _0224141E
add r4, #0xa0
ldr r0, [r4]
mov r1, #0xf2
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
add r4, r0, #0
add r0, sp, #4
add r1, r4, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
mov r0, #1
ldr r1, [sp, #8]
lsl r0, r0, #0xc
@@ -15810,14 +15810,14 @@ _02241386:
_022413EE:
add r0, r4, #0
add r1, sp, #4
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _0224141E
_022413F8:
add r4, #0x9c
mov r0, #0
ldr r2, [r4]
add r1, r0, #0
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r0, _02241424 ; =0x0000065A
mov r1, #0
bl FUN_020054F0
@@ -15876,35 +15876,35 @@ _0224145C:
_0224146C:
ldr r1, [r4, #0x4c]
mov r0, #1
- bl FUN_021DA03C
+ bl MOD05_021DA03C
add r6, r0, #0
ldr r1, [r4, #0x4c]
mov r0, #2
- bl FUN_021DA03C
+ bl MOD05_021DA03C
add r7, r0, #0
ldr r1, [r4, #0x4c]
mov r0, #3
- bl FUN_021DA03C
+ bl MOD05_021DA03C
str r0, [sp]
add r0, r6, #0
- bl FUN_021DA20C
+ bl MOD05_021DA20C
cmp r0, #0
beq _02241580
add r0, r7, #0
- bl FUN_021DA20C
+ bl MOD05_021DA20C
cmp r0, #0
beq _02241580
ldr r0, [sp]
- bl FUN_021DA20C
+ bl MOD05_021DA20C
cmp r0, #0
beq _02241580
add r4, #0xa0
ldr r0, [r4]
mov r1, #0xf2
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
add r1, r0, #0
add r0, sp, #0x1c
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r1, [sp, #0x20]
cmp r1, #0
bne _022414C6
@@ -15935,11 +15935,11 @@ _022414EC:
add r4, #0xa0
ldr r0, [r4]
mov r1, #0xf2
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
add r4, r0, #0
add r0, sp, #0x10
add r1, r4, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
mov r0, #1
ldr r1, [sp, #0x14]
lsl r0, r0, #0xc
@@ -15955,17 +15955,17 @@ _022414EC:
_02241518:
add r0, r4, #0
add r1, sp, #0x10
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02241580
_02241522:
add r4, #0xa0
ldr r0, [r4]
mov r1, #0xf2
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
add r4, r0, #0
add r0, sp, #4
add r1, r4, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
mov r0, #1
ldr r1, [sp, #8]
lsl r0, r0, #0xc
@@ -15981,7 +15981,7 @@ _02241522:
_0224154E:
add r0, r4, #0
add r1, sp, #4
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02241580
_02241558:
add r4, #0x9c
@@ -15989,7 +15989,7 @@ _02241558:
ldr r2, [r4]
mov r0, #0
lsl r1, r1, #0x10
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r0, _02241588 ; =0x0000065A
mov r1, #0
bl FUN_020054F0
@@ -16044,36 +16044,36 @@ _022415BA:
_022415CA:
ldr r1, [r4, #0x4c]
mov r0, #1
- bl FUN_021DA03C
+ bl MOD05_021DA03C
add r6, r0, #0
ldr r1, [r4, #0x4c]
mov r0, #2
- bl FUN_021DA03C
+ bl MOD05_021DA03C
add r7, r0, #0
ldr r1, [r4, #0x4c]
mov r0, #3
- bl FUN_021DA03C
+ bl MOD05_021DA03C
str r0, [sp]
add r0, r6, #0
- bl FUN_021DA20C
+ bl MOD05_021DA20C
cmp r0, #0
beq _02241666
add r0, r7, #0
- bl FUN_021DA20C
+ bl MOD05_021DA20C
cmp r0, #0
beq _02241666
ldr r0, [sp]
- bl FUN_021DA20C
+ bl MOD05_021DA20C
cmp r0, #0
beq _02241666
add r4, #0xa0
ldr r0, [r4]
mov r1, #0xf2
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
add r4, r0, #0
add r0, sp, #4
add r1, r4, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
mov r0, #1
ldr r1, [sp, #8]
lsl r0, r0, #0xc
@@ -16090,7 +16090,7 @@ _022415CA:
_02241634:
add r0, r4, #0
add r1, sp, #4
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02241666
_0224163E:
add r4, #0x9c
@@ -16098,7 +16098,7 @@ _0224163E:
ldr r2, [r4]
mov r0, #0
lsl r1, r1, #0x12
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r0, _0224166C ; =0x0000065A
mov r1, #0
bl FUN_020054F0
@@ -16144,7 +16144,7 @@ MOD06_02241670: ; 0x02241670
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r4, #0x2c]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
mov r0, #0x26
str r0, [sp]
mov r0, #0
@@ -16156,7 +16156,7 @@ MOD06_02241670: ; 0x02241670
str r1, [sp, #8]
mov r1, #1
mov r3, #0x19
- bl FUN_021F44D8
+ bl MOD05_021F44D8
ldrb r0, [r5]
cmp r0, #0
beq _022416D4
@@ -16196,75 +16196,75 @@ _02241702:
add r0, #0xa0
ldr r0, [r0]
mov r1, #0xf2
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
str r0, [sp, #0x10]
ldr r1, [sp, #0x10]
add r0, sp, #0x14
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r0, [sp, #0x10]
add r1, sp, #0x14
str r5, [sp, #0x18]
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
add r2, r4, #0
add r2, #0x9c
ldr r2, [r2]
mov r0, #0
add r1, r5, #0
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r2, [r4, #0x4c]
mov r0, #0xef
mov r1, #0
- bl FUN_021DA080
+ bl MOD05_021DA080
add r5, r0, #0
mov r1, #1
- bl FUN_021DA1A8
+ bl MOD05_021DA1A8
add r0, r5, #0
add r1, r6, #0
- bl FUN_021DA1A0
+ bl MOD05_021DA1A0
add r0, r5, #0
mov r1, #1
- bl FUN_021DA1A4
+ bl MOD05_021DA1A4
add r0, r5, #0
mov r1, #1
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
add r0, r5, #0
- bl FUN_021DA138
+ bl MOD05_021DA138
ldr r2, [r4, #0x4c]
mov r0, #0xf0
mov r1, #0
- bl FUN_021DA080
+ bl MOD05_021DA080
add r5, r0, #0
mov r1, #2
- bl FUN_021DA1A8
+ bl MOD05_021DA1A8
add r0, r5, #0
add r1, r7, #0
- bl FUN_021DA1A0
+ bl MOD05_021DA1A0
add r0, r5, #0
mov r1, #1
- bl FUN_021DA1A4
+ bl MOD05_021DA1A4
add r0, r5, #0
mov r1, #1
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
add r0, r5, #0
- bl FUN_021DA138
+ bl MOD05_021DA138
ldr r2, [r4, #0x4c]
mov r0, #0xf1
mov r1, #0
- bl FUN_021DA080
+ bl MOD05_021DA080
mov r1, #3
add r4, r0, #0
- bl FUN_021DA1A8
+ bl MOD05_021DA1A8
ldr r1, [sp, #0xc]
add r0, r4, #0
- bl FUN_021DA1A0
+ bl MOD05_021DA1A0
add r0, r4, #0
mov r1, #1
- bl FUN_021DA1A4
+ bl MOD05_021DA1A4
add r0, r4, #0
mov r1, #1
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
add r0, r4, #0
- bl FUN_021DA138
+ bl MOD05_021DA138
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -16299,43 +16299,43 @@ _022417F0:
_022417F4:
add r0, r6, #0
add r1, r7, #0
- bl FUN_021DA03C
+ bl MOD05_021DA03C
add r6, r0, #0
mov r1, #0
- bl FUN_021DA1A0
+ bl MOD05_021DA1A0
add r0, r6, #0
- bl FUN_021DA118
+ bl MOD05_021DA118
add r0, r6, #0
mov r1, #0
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
add r0, r6, #0
- bl FUN_021DA0E0
+ bl MOD05_021DA0E0
add r0, r4, #0
add r1, r7, #0
- bl FUN_021DA03C
+ bl MOD05_021DA03C
add r4, r0, #0
mov r1, #1
- bl FUN_021DA1A0
+ bl MOD05_021DA1A0
add r0, r4, #0
- bl FUN_021DA118
+ bl MOD05_021DA118
add r0, r4, #0
mov r1, #0
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
add r0, r4, #0
- bl FUN_021DA0E0
+ bl MOD05_021DA0E0
add r0, r5, #0
add r1, r7, #0
- bl FUN_021DA03C
+ bl MOD05_021DA03C
add r4, r0, #0
mov r1, #1
- bl FUN_021DA1A0
+ bl MOD05_021DA1A0
add r0, r4, #0
- bl FUN_021DA118
+ bl MOD05_021DA118
add r0, r4, #0
mov r1, #0
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
add r0, r4, #0
- bl FUN_021DA0E0
+ bl MOD05_021DA0E0
ldr r0, _02241868 ; =0x0000065A
bl FUN_020054C8
pop {r3, r4, r5, r6, r7, pc}
@@ -16368,7 +16368,7 @@ MOD06_0224186C: ; 0x0224186C
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r5, #0x2c]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
mov r0, #2
str r0, [sp]
mov r0, #0
@@ -16380,7 +16380,7 @@ MOD06_0224186C: ; 0x0224186C
str r1, [sp, #8]
mov r1, #8
mov r3, #3
- bl FUN_021F44D8
+ bl MOD05_021F44D8
ldrb r0, [r4]
cmp r0, #0
beq _022418CC
@@ -16402,20 +16402,20 @@ _022418DC:
add r0, #0xa0
ldr r0, [r0]
ldr r1, _02241910 ; =0x00000102
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
add r6, r0, #0
add r0, sp, #0xc
add r1, r6, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
add r0, r6, #0
add r1, sp, #0xc
str r4, [sp, #0x10]
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
add r5, #0x9c
ldr r2, [r5]
mov r0, #0
add r1, r4, #0
- bl FUN_021F4594
+ bl MOD05_021F4594
add sp, #0x24
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -16504,11 +16504,11 @@ _022419B8:
add r0, #0xa0
ldr r0, [r0]
ldr r1, _02241A3C ; =0x00000102
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
add r6, r0, #0
add r0, sp, #0
add r1, r6, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
mov r0, #1
ldr r1, [sp, #4]
lsl r0, r0, #0xc
@@ -16531,7 +16531,7 @@ _022419F0:
bl FUN_02055540
add r0, r6, #0
add r1, sp, #0
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02241A32
_02241A02:
add r2, r5, #0
@@ -16540,7 +16540,7 @@ _02241A02:
ldr r2, [r2]
mov r0, #0
lsl r1, r1, #0x10
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r0, [r5, #0x38]
mov r1, #1
bl FUN_0205557C
@@ -16603,11 +16603,11 @@ _02241A88:
add r0, #0xa0
ldr r0, [r0]
ldr r1, _02241B08 ; =0x00000102
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
add r6, r0, #0
add r0, sp, #0
add r1, r6, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
mov r0, #1
ldr r1, [sp, #4]
lsl r0, r0, #0xc
@@ -16628,7 +16628,7 @@ _02241ABC:
bl FUN_02055540
add r0, r6, #0
add r1, sp, #0
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02241AFC
_02241ACE:
add r2, r5, #0
@@ -16636,7 +16636,7 @@ _02241ACE:
mov r0, #0
ldr r2, [r2]
add r1, r0, #0
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r0, [r5, #0x38]
mov r1, #1
bl FUN_0205557C
@@ -16677,9 +16677,9 @@ _02241B1A:
add r0, #0xa0
ldrb r1, [r1]
ldr r0, [r0]
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r1, r7, #0
- bl FUN_021E7EC0
+ bl MOD05_021E7EC0
_02241B36:
add r4, r4, #1
cmp r4, #0x18
@@ -16990,7 +16990,7 @@ MOD06_02241D90: ; 0x02241D90
lsl r1, r1, #0x18
ldr r0, [r0]
lsr r1, r1, #0x18
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
str r0, [sp]
ldr r0, [r5]
ldr r1, [r5, #8]
@@ -16998,7 +16998,7 @@ MOD06_02241D90: ; 0x02241D90
lsl r1, r1, #0x18
ldr r0, [r0]
lsr r1, r1, #0x18
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r7, r0, #0
ldr r0, [r5]
ldr r1, [r5, #0xc]
@@ -17006,7 +17006,7 @@ MOD06_02241D90: ; 0x02241D90
lsl r1, r1, #0x18
ldr r0, [r0]
lsr r1, r1, #0x18
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r6, r0, #0
mov r0, #1
lsl r0, r0, #0x10
@@ -17014,7 +17014,7 @@ MOD06_02241D90: ; 0x02241D90
blt _02241DE8
ldr r0, [sp]
mov r1, #0
- bl FUN_021E7EC0
+ bl MOD05_021E7EC0
add r0, r5, #0
mov r1, #0
mov r2, #1
@@ -17023,7 +17023,7 @@ MOD06_02241D90: ; 0x02241D90
_02241DE8:
ldr r0, [sp]
mov r1, #1
- bl FUN_021E7EC0
+ bl MOD05_021E7EC0
mov r1, #1
add r0, r5, #0
add r2, r1, #0
@@ -17035,7 +17035,7 @@ _02241DFA:
blt _02241E16
add r0, r7, #0
mov r1, #0
- bl FUN_021E7EC0
+ bl MOD05_021E7EC0
add r0, r5, #0
mov r1, #0
mov r2, #2
@@ -17044,7 +17044,7 @@ _02241DFA:
_02241E16:
add r0, r7, #0
mov r1, #1
- bl FUN_021E7EC0
+ bl MOD05_021E7EC0
add r0, r5, #0
mov r1, #1
mov r2, #2
@@ -17056,7 +17056,7 @@ _02241E28:
blt _02241E44
add r0, r6, #0
mov r1, #0
- bl FUN_021E7EC0
+ bl MOD05_021E7EC0
add r0, r5, #0
mov r1, #0
mov r2, #3
@@ -17065,7 +17065,7 @@ _02241E28:
_02241E44:
add r0, r6, #0
mov r1, #1
- bl FUN_021E7EC0
+ bl MOD05_021E7EC0
add r0, r5, #0
mov r1, #1
mov r2, #3
@@ -17118,11 +17118,11 @@ _02241EA0:
add r1, #0x28
ldrb r1, [r1]
ldr r0, [r0]
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r7, r0, #0
add r0, sp, #0
add r1, r7, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
add r0, r5, #0
add r0, #0xf0
ldr r0, [r0]
@@ -17183,7 +17183,7 @@ _02241F2E:
bl FUN_02055540
add r0, r7, #0
add r1, sp, #0
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
ldr r1, [sp, #4]
add r0, r5, #0
bl MOD06_02241D90
@@ -17267,11 +17267,11 @@ _02241FD8:
add r1, #0x28
ldrb r1, [r1]
ldr r0, [r0]
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
str r0, [sp]
ldr r1, [sp]
add r0, sp, #0x10
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r0, [r7, #0x38]
add r1, sp, #4
bl FUN_02055350
@@ -17332,7 +17332,7 @@ _0224206E:
_02242072:
ldr r0, [sp]
add r1, sp, #0x10
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _022420BC
_0224207C:
bl FUN_0205AD98
@@ -17427,11 +17427,11 @@ _02242128:
add r1, #0x28
ldrb r1, [r1]
ldr r0, [r0]
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
str r0, [sp]
ldr r1, [sp]
add r0, sp, #0x10
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r0, [r6, #0x38]
add r1, sp, #4
bl FUN_02055350
@@ -17492,7 +17492,7 @@ _022421BE:
_022421C2:
ldr r0, [sp]
add r1, sp, #0x10
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02242214
_022421CC:
bl FUN_0205AD98
@@ -17573,7 +17573,7 @@ MOD06_02242224: ; 0x02242224
ldr r0, [r0]
ldr r1, [r6, #0x2c]
lsl r2, r2, #2
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
ldr r1, [sp, #0x14]
ldr r2, _022423F0 ; =0x0000012D
str r0, [r1, #4]
@@ -17589,7 +17589,7 @@ MOD06_02242224: ; 0x02242224
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r6, #0x2c]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
ldr r1, [sp, #0x14]
ldr r2, _022423F4 ; =0x0000012E
str r0, [r1, #8]
@@ -17605,7 +17605,7 @@ MOD06_02242224: ; 0x02242224
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r6, #0x2c]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
ldr r1, [sp, #0x14]
ldr r4, _022423F8 ; =0x0224FA80
str r0, [r1, #0xc]
@@ -17695,7 +17695,7 @@ _02242342:
ldr r0, [r0]
ldr r1, [r6, #0x2c]
ldr r2, [r4]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
ldr r1, [sp, #8]
add r7, r7, #1
add r1, #0x28
@@ -17731,13 +17731,13 @@ _02242342:
ldr r0, [r6, #0x44]
mov r2, #1
mov r3, #0
- bl FUN_021DBA40
+ bl MOD05_021DBA40
mov r1, #0
mov r2, #0
ldr r0, [r6, #0x44]
mvn r1, r1
add r3, r2, #0
- bl FUN_021DBA78
+ bl MOD05_021DBA78
mov r0, #0
add r1, r0, #0
add r2, sp, #0x18
@@ -17750,7 +17750,7 @@ _022423D4:
blt _022423D4
ldr r0, [r6, #0x44]
add r1, sp, #0x18
- bl FUN_021DBAA0
+ bl MOD05_021DBAA0
add sp, #0x5c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -18076,7 +18076,7 @@ _02242648:
add r0, #0xa0
ldr r0, [r0]
ldr r2, [r5]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
ldr r1, [sp, #0xc]
add r4, r4, #1
strb r0, [r1, #4]
@@ -18241,11 +18241,11 @@ _022427A4:
ldr r0, [r6]
add r1, r5, r1
ldrb r1, [r1, #4]
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r6, r0, #0
add r0, sp, #0
add r1, r6, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r0, [r5, #0x24]
cmp r0, #4
bne _022427DC
@@ -18283,7 +18283,7 @@ _022427FA:
_022427FE:
add r0, r6, #0
add r1, sp, #0
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _0224283A
_02242808:
ldr r0, [r6, #0x38]
@@ -18493,7 +18493,7 @@ _02242966:
ldr r0, [r0]
ldr r1, [r5, #0x2c]
ldr r2, [r4]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
ldr r1, [sp, #0x10]
add r7, #8
add r1, r1, r6
@@ -18732,8 +18732,8 @@ _02242B56:
add r0, #0xa0
ldrb r1, [r1, #4]
ldr r0, [r0]
- bl FUN_021E7ED0
- bl FUN_021E7E9C
+ bl MOD05_021E7ED0
+ bl MOD05_021E7E9C
ldrb r1, [r4, #0x11]
lsl r2, r1, #2
ldr r1, _02242BDC ; =0x0224F798
@@ -19828,17 +19828,17 @@ _022433A4: .word 0x020CD3B4
thumb_func_start MOD06_022433A8
MOD06_022433A8: ; 0x022433A8
- ldr r3, _022433AC ; =0x0202A1E5
+ ldr r3, _022433AC ; =FUN_0202A1E4
bx r3
.align 2, 0
-_022433AC: .word 0x0202A1E5
+_022433AC: .word FUN_0202A1E4
thumb_func_start MOD06_022433B0
MOD06_022433B0: ; 0x022433B0
- ldr r3, _022433B4 ; =0x0202A399
+ ldr r3, _022433B4 ; =FUN_0202A398
bx r3
.align 2, 0
-_022433B4: .word 0x0202A399
+_022433B4: .word FUN_0202A398
thumb_func_start MOD06_022433B8
MOD06_022433B8: ; 0x022433B8
@@ -21125,10 +21125,10 @@ _02243DB4: .word MOD06_022442C4
thumb_func_start MOD06_02243DB8
MOD06_02243DB8: ; 0x02243DB8
- ldr r3, _02243DBC ; =0x02046949
+ ldr r3, _02243DBC ; =FUN_02046948
bx r3
.align 2, 0
-_02243DBC: .word 0x02046949
+_02243DBC: .word FUN_02046948
thumb_func_start MOD06_02243DC0
MOD06_02243DC0: ; 0x02243DC0
@@ -23104,20 +23104,20 @@ MOD06_02244CE8: ; 0x02244CE8
add r3, r0, #0
add r2, r1, #0
add r1, r3, #0
- ldr r3, _02244CF4 ; =0x0200650D
+ ldr r3, _02244CF4 ; =LoadFromNarc_2
mov r0, #0x86
bx r3
.align 2, 0
-_02244CF4: .word 0x0200650D
+_02244CF4: .word LoadFromNarc_2
thumb_func_start MOD06_02244CF8
MOD06_02244CF8: ; 0x02244CF8
- ldr r3, _02244D00 ; =0x020064F1
+ ldr r3, _02244D00 ; =LoadFromNARC
add r2, r1, #0
mov r1, #0x87
bx r3
.align 2, 0
-_02244D00: .word 0x020064F1
+_02244D00: .word LoadFromNARC
thumb_func_start MOD06_02244D04
MOD06_02244D04: ; 0x02244D04
@@ -23207,19 +23207,19 @@ _02244DA4:
thumb_func_start MOD06_02244DB0
MOD06_02244DB0: ; 0x02244DB0
- ldr r3, _02244DB8 ; =0x020169D9
+ ldr r3, _02244DB8 ; =FUN_020169D8
mov r1, #0x17
lsl r1, r1, #4
bx r3
.align 2, 0
-_02244DB8: .word 0x020169D9
+_02244DB8: .word FUN_020169D8
thumb_func_start MOD06_02244DBC
MOD06_02244DBC: ; 0x02244DBC
- ldr r3, _02244DC0 ; =0x02016A19
+ ldr r3, _02244DC0 ; =FUN_02016A18
bx r3
.align 2, 0
-_02244DC0: .word 0x02016A19
+_02244DC0: .word FUN_02016A18
thumb_func_start MOD06_02244DC4
MOD06_02244DC4: ; 0x02244DC4
@@ -23376,14 +23376,14 @@ MOD06_02244EF8: ; 0x02244EF8
mov r2, #1
lsl r0, r0, #2
str r2, [r1, r0]
- ldr r3, _02244F10 ; =0x0200CA45
+ ldr r3, _02244F10 ; =FUN_0200CA44
mov r2, #0
add r0, r0, #4
str r2, [r1, r0]
ldr r0, _02244F14 ; =MOD06_02244F64
bx r3
nop
-_02244F10: .word 0x0200CA45
+_02244F10: .word FUN_0200CA44
_02244F14: .word MOD06_02244F64
thumb_func_start MOD06_02244F18
@@ -23688,10 +23688,10 @@ _0224518C: .word 0x0000071D
thumb_func_start MOD06_02245190
MOD06_02245190: ; 0x02245190
- ldr r3, _02245194 ; =0x02016A19
+ ldr r3, _02245194 ; =FUN_02016A18
bx r3
.align 2, 0
-_02245194: .word 0x02016A19
+_02245194: .word FUN_02016A18
thumb_func_start MOD06_02245198
MOD06_02245198: ; 0x02245198
@@ -23794,7 +23794,7 @@ _0224523A:
ldr r0, [r0]
ldr r1, [r4, #0x2c]
add r3, sp, #8
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
add sp, #0x14
pop {r3, r4, pc}
nop
@@ -23968,12 +23968,12 @@ _02245392:
add r0, #0xa0
ldr r0, [r0]
ldr r1, _02245470 ; =0x000001DB
- bl FUN_021E7ED8
- bl FUN_021E7EC8
+ bl MOD05_021E7ED8
+ bl MOD05_021E7EC8
add r7, r0, #0
ldr r0, _02245470 ; =0x000001DB
ldr r1, [r5, #0x2c]
- bl FUN_021F4BD0
+ bl MOD05_021F4BD0
ldr r0, [r0]
bl FUN_020BC13C
ldrh r1, [r0, #0xe]
@@ -23981,7 +23981,7 @@ _02245392:
ldr r1, [r1, #0xc]
add r6, r0, r1
ldr r0, [r5, #0x2c]
- bl FUN_021F4C88
+ bl MOD05_021F4C88
str r7, [sp]
str r6, [sp, #4]
str r0, [sp, #8]
@@ -23995,11 +23995,11 @@ _02245392:
ldr r1, [r5, #0x50]
mov r2, #0x10
add r3, #0xdc
- bl FUN_021DA464
+ bl MOD05_021DA464
ldr r0, [r5, #0x50]
mov r1, #0x10
mov r2, #0
- bl FUN_021DA4EC
+ bl MOD05_021DA4EC
ldrb r0, [r4, #5]
add r0, r0, #1
strb r0, [r4, #5]
@@ -24028,11 +24028,11 @@ _02245414:
add r0, #0xa0
ldr r0, [r0]
ldr r1, _02245470 ; =0x000001DB
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
add r6, r0, #0
add r0, sp, #0x18
add r1, r6, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
add r0, r5, #0
add r2, r4, #0
ldr r5, [r4]
@@ -24048,13 +24048,13 @@ _02245414:
_02245442:
add r0, r6, #0
add r1, sp, #0x18
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02245468
_0224544C:
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #0x10
- bl FUN_021DA54C
+ bl MOD05_021DA54C
ldrb r0, [r4, #5]
add r0, r0, #1
strb r0, [r4, #5]
@@ -24562,10 +24562,10 @@ _02245808:
thumb_func_start MOD06_02245824
MOD06_02245824: ; 0x02245824
- ldr r3, _02245828 ; =0x0205E49D
+ ldr r3, _02245828 ; =FUN_0205E49C
bx r3
.align 2, 0
-_02245828: .word 0x0205E49D
+_02245828: .word FUN_0205E49C
thumb_func_start MOD06_0224582C
MOD06_0224582C: ; 0x0224582C
@@ -25614,7 +25614,7 @@ _02245FE4:
ldr r0, [r4, #0x70]
cmp r0, #0
beq _02245FEE
- bl FUN_021F6240
+ bl MOD05_021F6240
_02245FEE:
add r0, r5, #0
bl FUN_02064520
@@ -25623,11 +25623,11 @@ _02245FEE:
thumb_func_start MOD06_02245FF8
MOD06_02245FF8: ; 0x02245FF8
- ldr r3, _02246000 ; =0x0201FFC9
+ ldr r3, _02246000 ; =FUN_0201FFC8
ldr r0, [r1, #0x68]
bx r3
nop
-_02246000: .word 0x0201FFC9
+_02246000: .word FUN_0201FFC8
thumb_func_start MOD06_02246004
MOD06_02246004: ; 0x02246004
@@ -25773,12 +25773,12 @@ MOD06_02246034: ; 0x02246034
str r0, [r4, #0x6c]
ldr r0, [r4, #0x5c]
mov r1, #4
- bl FUN_021F61F4
+ bl MOD05_021F61F4
ldr r2, _02246194 ; =0xFFF88000
mov r1, #1
mov r3, #0xc
str r0, [r4, #0x70]
- bl FUN_021F6254
+ bl MOD05_021F6254
add r1, sp, #0xc
mov r0, #0
str r0, [r1]
@@ -25961,7 +25961,7 @@ MOD06_0224629C: ; 0x0224629C
mov r1, #2
mov r2, #0
mov r3, #0xc
- bl FUN_021F6254
+ bl MOD05_021F6254
mov r0, #1
lsl r0, r0, #0xa
str r0, [r4, #0x50]
@@ -26372,7 +26372,7 @@ _022465DC:
cmp r0, #0xf
ble _022465FA
ldr r0, [r4, #0x70]
- bl FUN_021F6234
+ bl MOD05_021F6234
cmp r0, #1
bne _022465FA
mov r0, #0
@@ -26394,12 +26394,12 @@ MOD06_02246600: ; 0x02246600
thumb_func_start MOD06_02246604
MOD06_02246604: ; 0x02246604
- ldr r3, _0224660C ; =0x02006671
+ ldr r3, _0224660C ; =FUN_02006670
mov r0, #0x61
mov r1, #4
bx r3
.align 2, 0
-_0224660C: .word 0x02006671
+_0224660C: .word FUN_02006670
thumb_func_start MOD06_02246610
MOD06_02246610: ; 0x02246610
@@ -26514,10 +26514,10 @@ MOD06_022466C0: ; 0x022466C0
thumb_func_start MOD06_022466E0
MOD06_022466E0: ; 0x022466E0
- ldr r3, _022466E4 ; =0x02016A19
+ ldr r3, _022466E4 ; =FUN_02016A18
bx r3
.align 2, 0
-_022466E4: .word 0x02016A19
+_022466E4: .word FUN_02016A18
thumb_func_start MOD06_022466E8
MOD06_022466E8: ; 0x022466E8
@@ -27751,12 +27751,12 @@ _02247008: .word 0x04000008
thumb_func_start MOD06_0224700C
MOD06_0224700C: ; 0x0224700C
- ldr r3, _02247014 ; =0x02006671
+ ldr r3, _02247014 ; =FUN_02006670
mov r0, #0x61
mov r1, #4
bx r3
.align 2, 0
-_02247014: .word 0x02006671
+_02247014: .word FUN_02006670
thumb_func_start MOD06_02247018
MOD06_02247018: ; 0x02247018
@@ -28514,11 +28514,11 @@ MOD06_022475A4: ; 0x022475A4
thumb_func_start MOD06_02247610
MOD06_02247610: ; 0x02247610
- ldr r3, _02247618 ; =0x02018745
+ ldr r3, _02247618 ; =FUN_02018744
mov r1, #3
bx r3
nop
-_02247618: .word 0x02018745
+_02247618: .word FUN_02018744
thumb_func_start MOD06_0224761C
MOD06_0224761C: ; 0x0224761C
@@ -28718,14 +28718,14 @@ _02247778: .word 0x0400004A
thumb_func_start MOD06_0224777C
MOD06_0224777C: ; 0x0224777C
- ldr r3, _02247788 ; =0x02068B69
+ ldr r3, _02247788 ; =FUN_02068B68
add r2, r0, #0
add r0, r1, #0
ldr r1, [r2, #0x5c]
mov r2, #2
bx r3
.align 2, 0
-_02247788: .word 0x02068B69
+_02247788: .word FUN_02068B68
thumb_func_start MOD06_0224778C
MOD06_0224778C: ; 0x0224778C
@@ -28769,10 +28769,10 @@ MOD06_022477D4: ; 0x022477D4
add r2, r1, #0
ldrh r0, [r3]
ldrh r1, [r3, #4]
- ldr r3, _022477E0 ; =0x02012471
+ ldr r3, _022477E0 ; =FUN_02012470
bx r3
.align 2, 0
-_022477E0: .word 0x02012471
+_022477E0: .word FUN_02012470
thumb_func_start MOD06_022477E4
MOD06_022477E4: ; 0x022477E4
@@ -29127,11 +29127,11 @@ MOD06_02247A54: ; 0x02247A54
thumb_func_start MOD06_02247A9C
MOD06_02247A9C: ; 0x02247A9C
- ldr r3, _02247AA4 ; =0x0201FFC9
+ ldr r3, _02247AA4 ; =FUN_0201FFC8
ldr r0, [r1, #8]
bx r3
nop
-_02247AA4: .word 0x0201FFC9
+_02247AA4: .word FUN_0201FFC8
thumb_func_start MOD06_02247AA8
MOD06_02247AA8: ; 0x02247AA8
@@ -29258,7 +29258,7 @@ _02247B8A:
ldr r0, [r5, #0x64]
cmp r0, #0
beq _02247B94
- bl FUN_021F6240
+ bl MOD05_021F6240
_02247B94:
mov r0, #0x7b
lsl r0, r0, #2
@@ -29290,11 +29290,11 @@ MOD06_02247BA0: ; 0x02247BA0
thumb_func_start MOD06_02247BCC
MOD06_02247BCC: ; 0x02247BCC
- ldr r3, _02247BD4 ; =0x0201FFC9
+ ldr r3, _02247BD4 ; =FUN_0201FFC8
ldr r0, [r1, #0x58]
bx r3
nop
-_02247BD4: .word 0x0201FFC9
+_02247BD4: .word FUN_0201FFC8
thumb_func_start MOD06_02247BD8
MOD06_02247BD8: ; 0x02247BD8
@@ -29670,12 +29670,12 @@ MOD06_02247DC4: ; 0x02247DC4
str r0, [r5, #0x1c]
ldr r0, [r5, #0x60]
mov r1, #4
- bl FUN_021F61F4
+ bl MOD05_021F61F4
ldr r2, _02247F28 ; =0xFFF88000
add r1, r7, #0
mov r3, #0xc
str r0, [r4, #0x64]
- bl FUN_021F6254
+ bl MOD05_021F6254
add r1, sp, #0xc
mov r0, #0
str r0, [r1]
@@ -29927,7 +29927,7 @@ MOD06_022480A0: ; 0x022480A0
mov r1, #2
mov r2, #0
mov r3, #0xc
- bl FUN_021F6254
+ bl MOD05_021F6254
mov r1, #1
lsl r1, r1, #8
str r1, [r5, #0x50]
@@ -31249,12 +31249,12 @@ MOD06_02248B20: ; 0x02248B20
thumb_func_start MOD06_02248B24
MOD06_02248B24: ; 0x02248B24
- ldr r3, _02248B2C ; =0x02002269
+ ldr r3, _02248B2C ; =StringCopyN
add r0, r0, #4
mov r2, #8
bx r3
.align 2, 0
-_02248B2C: .word 0x02002269
+_02248B2C: .word StringCopyN
thumb_func_start MOD06_02248B30
MOD06_02248B30: ; 0x02248B30
@@ -31296,11 +31296,11 @@ MOD06_02248B5C: ; 0x02248B5C
thumb_func_start MOD06_02248B60
MOD06_02248B60: ; 0x02248B60
- ldr r3, _02248B68 ; =0x0202B5D9
+ ldr r3, _02248B68 ; =FUN_0202B5D8
ldr r0, [r0, #0x14]
bx r3
nop
-_02248B68: .word 0x0202B5D9
+_02248B68: .word FUN_0202B5D8
thumb_func_start MOD06_02248B6C
MOD06_02248B6C: ; 0x02248B6C
@@ -31450,10 +31450,10 @@ _02248CA4:
thumb_func_start MOD06_02248CB8
MOD06_02248CB8: ; 0x02248CB8
- ldr r3, _02248CBC ; =0x02016A19
+ ldr r3, _02248CBC ; =FUN_02016A18
bx r3
.align 2, 0
-_02248CBC: .word 0x02016A19
+_02248CBC: .word FUN_02016A18
thumb_func_start MOD06_02248CC0
MOD06_02248CC0: ; 0x02248CC0
@@ -32280,7 +32280,7 @@ MOD06_022492B0: ; 0x022492B0
lsl r1, r1, #2
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4, #0x20]
bl MOD06_02249460
@@ -32298,7 +32298,7 @@ MOD06_022492D4: ; 0x022492D4
add r0, r4, #0
bl MOD06_022494C0
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
.align 2, 0
@@ -32307,7 +32307,7 @@ MOD06_022492EC: ; 0x022492EC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0x20]
- bl FUN_021E4C20
+ bl MOD05_021E4C20
ldr r0, [r0, #0x34]
bl FUN_0205839C
sub r2, r0, #1
@@ -32321,11 +32321,11 @@ _0224930C: .word MOD06_02249388
thumb_func_start MOD06_02249310
MOD06_02249310: ; 0x02249310
- ldr r3, _02249318 ; =0x0200CAB5
+ ldr r3, _02249318 ; =FUN_0200CAB4
ldr r0, [r0, #0x24]
bx r3
nop
-_02249318: .word 0x0200CAB5
+_02249318: .word FUN_0200CAB4
thumb_func_start MOD06_0224931C
MOD06_0224931C: ; 0x0224931C
@@ -32515,7 +32515,7 @@ MOD06_02249460: ; 0x02249460
mov r1, #0x11
mov r2, #0
add r3, #0x28
- bl FUN_021E51EC
+ bl MOD05_021E51EC
mov r0, #0x4a
lsl r0, r0, #2
add r1, r4, r0
@@ -32528,7 +32528,7 @@ MOD06_02249460: ; 0x02249460
mov r1, #0x12
mov r2, #0
add r3, #0x7c
- bl FUN_021E51EC
+ bl MOD05_021E51EC
mov r0, #0x4b
lsl r0, r0, #2
add r1, r4, r0
@@ -32541,7 +32541,7 @@ MOD06_02249460: ; 0x02249460
mov r1, #0x13
mov r2, #0
add r3, r4, #0
- bl FUN_021E51EC
+ bl MOD05_021E51EC
add sp, #8
pop {r4, pc}
.align 2, 0
@@ -32553,15 +32553,15 @@ MOD06_022494C0: ; 0x022494C0
mov r0, #0x13
lsl r0, r0, #4
ldr r0, [r4, r0]
- bl FUN_021E4C00
+ bl MOD05_021E4C00
mov r0, #0x4d
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_021E4C00
+ bl MOD05_021E4C00
mov r0, #0x4e
lsl r0, r0, #2
ldr r0, [r4, r0]
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_022494E4
@@ -32588,11 +32588,11 @@ MOD06_02249508: ; 0x02249508
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
mov r1, #0
str r4, [sp, #0x14]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x18]
add r0, r5, #0
add r1, sp, #8
@@ -32608,7 +32608,7 @@ MOD06_02249508: ; 0x02249508
add r0, r4, #0
add r2, sp, #8
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
nop
@@ -32670,7 +32670,7 @@ MOD06_0224959C: ; 0x0224959C
cmp r0, #0
bne _022495C0
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_022495C0:
@@ -32680,7 +32680,7 @@ _022495C0:
cmp r0, #0
beq _022495D6
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_022495D6:
@@ -32763,11 +32763,11 @@ MOD06_02249668: ; 0x02249668
sub sp, #0x20
add r5, r0, #0
add r4, r1, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r6, r0, #0
mov r1, #0
str r6, [sp, #0x14]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x18]
add r0, r5, #0
add r1, sp, #8
@@ -32783,7 +32783,7 @@ MOD06_02249668: ; 0x02249668
add r0, r6, #0
add r2, sp, #8
add r3, r4, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x20
pop {r4, r5, r6, pc}
.align 2, 0
@@ -32804,7 +32804,7 @@ MOD06_022496AC: ; 0x022496AC
cmp r0, #0
bne _022496D0
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_022496D0:
@@ -32920,7 +32920,7 @@ MOD06_022497A0: ; 0x022497A0
mov r1, #4
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_022497CC
@@ -32934,27 +32934,27 @@ MOD06_022497BC: ; 0x022497BC
add r4, r0, #0
bl MOD06_022497DC
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_022497CC
MOD06_022497CC: ; 0x022497CC
- ldr r3, _022497D8 ; =0x021E5079
+ ldr r3, _022497D8 ; =MOD05_021E5078
ldr r0, [r0]
mov r1, #2
mov r2, #0x14
bx r3
nop
-_022497D8: .word 0x021E5079
+_022497D8: .word MOD05_021E5078
thumb_func_start MOD06_022497DC
MOD06_022497DC: ; 0x022497DC
- ldr r3, _022497E4 ; =0x021E50A1
+ ldr r3, _022497E4 ; =MOD05_021E50A0
ldr r0, [r0]
mov r1, #2
bx r3
.align 2, 0
-_022497E4: .word 0x021E50A1
+_022497E4: .word MOD05_021E50A0
thumb_func_start MOD06_022497E8
MOD06_022497E8: ; 0x022497E8
@@ -32965,10 +32965,10 @@ MOD06_022497E8: ; 0x022497E8
bl FUN_02058738
str r0, [sp, #8]
add r0, r5, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
mov r1, #1
str r0, [sp, #0xc]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x10]
add r0, r5, #0
add r1, sp, #0x18
@@ -32984,7 +32984,7 @@ MOD06_022497E8: ; 0x022497E8
ldr r1, _02249830 ; =0x02251958
add r2, sp, #0x18
add r3, r4, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x24
pop {r4, r5, pc}
nop
@@ -33087,7 +33087,7 @@ _022498DE:
bne _02249906
_022498FC:
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_02249906:
@@ -33163,7 +33163,7 @@ _02249976:
bne _0224999E
_02249994:
add r0, r6, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r4, r5, r6, r7, pc}
_0224999E:
@@ -33193,7 +33193,7 @@ _022499BE:
add r1, #0x28
bl FUN_0201F7F0
ldr r0, [r5, #0x20]
- bl FUN_021F0514
+ bl MOD05_021F0514
add r4, r0, #0
bl FUN_0201F844
add r1, r0, #0
@@ -33271,16 +33271,16 @@ MOD06_02249A68: ; 0x02249A68
bl FUN_02058578
ldr r1, [r4, #8]
add r2, sp, #0
- bl FUN_021F220C
+ bl MOD05_021F220C
cmp r0, #0
beq _02249AAE
ldr r0, [r4, #0x20]
- bl FUN_021F2E28
+ bl MOD05_021F2E28
cmp r0, #1
beq _02249AAE
ldr r0, [r4, #0x18]
mov r1, #2
- bl FUN_021E5094
+ bl MOD05_021E5094
str r0, [sp]
add r0, r5, #0
add r1, sp, #0x28
@@ -33288,7 +33288,7 @@ MOD06_02249A68: ; 0x02249A68
ldr r0, [r4, #0x18]
add r1, sp, #0
add r2, sp, #0x28
- bl FUN_021E4E90
+ bl MOD05_021E4E90
str r0, [r4, #0x24]
mov r0, #1
str r0, [r4, #0xc]
@@ -33314,7 +33314,7 @@ _02249AC4:
bne _02249AC4
ldr r0, [r4, #8]
mov r1, #2
- bl FUN_021E5094
+ bl MOD05_021E5094
str r0, [sp]
add r0, r5, #0
add r1, sp, #0x28
@@ -33322,7 +33322,7 @@ _02249AC4:
ldr r0, [r4, #8]
add r1, sp, #0
add r2, sp, #0x28
- bl FUN_021E4E90
+ bl MOD05_021E4E90
str r0, [r4, #0x3c]
ldr r5, [r4, #0x38]
add r0, r5, #0
@@ -33401,12 +33401,12 @@ MOD06_02249B7C: ; 0x02249B7C
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
- bl FUN_021E4C20
+ bl MOD05_021E4C20
str r0, [sp, #8]
add r0, r5, #0
mov r1, #1
str r5, [sp, #0xc]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x10]
add r3, sp, #0x14
mov r2, #5
@@ -33424,7 +33424,7 @@ _02249B9E:
ldr r3, [sp, #0x58]
add r0, r5, #0
add r2, r7, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x40
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
@@ -33477,11 +33477,11 @@ _02249BD6:
thumb_func_start MOD06_02249C24
MOD06_02249C24: ; 0x02249C24
- ldr r3, _02249C2C ; =0x0201F745
+ ldr r3, _02249C2C ; =FUN_0201F744
ldr r0, [r1, #0x3c]
bx r3
nop
-_02249C2C: .word 0x0201F745
+_02249C2C: .word FUN_0201F744
thumb_func_start MOD06_02249C30
MOD06_02249C30: ; 0x02249C30
@@ -33545,7 +33545,7 @@ MOD06_02249C98: ; 0x02249C98
ldr r1, _02249CB4 ; =0x00000734
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_02249CC8
@@ -33560,7 +33560,7 @@ MOD06_02249CB8: ; 0x02249CB8
add r4, r0, #0
bl MOD06_02249D60
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_02249CC8
@@ -33601,14 +33601,14 @@ _02249CFC:
ldr r0, [r5]
ldr r1, [r1]
mov r2, #0
- bl FUN_021E51EC
+ bl MOD05_021E51EC
str r6, [sp]
str r7, [sp, #4]
ldr r0, [r5]
ldr r1, [r4]
ldr r3, [sp, #8]
mov r2, #0
- bl FUN_021E51EC
+ bl MOD05_021E51EC
ldr r0, [sp, #0x18]
add r7, r7, #4
add r0, r0, #4
@@ -33649,9 +33649,9 @@ MOD06_02249D60: ; 0x02249D60
add r6, #0x28
_02249D6C:
ldr r0, [r5, r7]
- bl FUN_021E4C00
+ bl MOD05_021E4C00
ldr r0, [r5, r6]
- bl FUN_021E4C00
+ bl MOD05_021E4C00
add r4, r4, #1
add r5, r5, #4
cmp r4, #0xa
@@ -33846,10 +33846,10 @@ MOD06_02249E9C: ; 0x02249E9C
bl FUN_0205829C
add r7, r0, #0
add r0, r5, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
mov r1, #0xb
str r0, [sp, #8]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
ldr r2, [sp, #0x14]
ldr r3, [sp, #0x18]
add r1, r4, #0
@@ -33928,7 +33928,7 @@ _02249F6A:
add r2, sp, #0x28
mov r3, #0
str r7, [sp, #4]
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x34
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -33984,7 +33984,7 @@ _02249FD0:
sub r2, r2, #2
str r2, [r1, #0xc]
bpl _02249FDC
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
_02249FDC:
pop {r3, pc}
.align 2, 0
@@ -34045,7 +34045,7 @@ MOD06_0224A040: ; 0x0224A040
lsl r1, r1, #2
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224A06C
@@ -34058,7 +34058,7 @@ MOD06_0224A05C: ; 0x0224A05C
add r4, r0, #0
bl MOD06_0224A0B4
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224A06C
@@ -34084,7 +34084,7 @@ _0224A086:
ldr r0, [r0]
mov r2, #0
add r3, r7, #0
- bl FUN_021E51EC
+ bl MOD05_021E51EC
ldr r0, [sp, #0xc]
add r6, r6, #4
add r0, r0, #1
@@ -34108,7 +34108,7 @@ MOD06_0224A0B4: ; 0x0224A0B4
lsl r6, r6, #2
_0224A0BE:
ldr r0, [r5, r6]
- bl FUN_021E4C00
+ bl MOD05_021E4C00
add r4, r4, #1
add r5, r5, #4
cmp r4, #6
@@ -34183,10 +34183,10 @@ MOD06_0224A130: ; 0x0224A130
push {r4, r5, r6, lr}
sub sp, #0xc8
add r5, r0, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
mov r1, #0xc
add r4, r0, #0
- bl FUN_021E4C08
+ bl MOD05_021E4C08
add r6, r0, #0
add r0, r5, #0
bl FUN_02058458
@@ -34223,7 +34223,7 @@ _0224A160:
add r0, r4, #0
add r2, sp, #8
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0xc8
pop {r4, r5, r6, pc}
.align 2, 0
@@ -34279,7 +34279,7 @@ MOD06_0224A1DC: ; 0x0224A1DC
cmp r0, #0
bne _0224A1FE
add r0, r4, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r3, r4, r5, pc}
_0224A1FE:
@@ -34355,7 +34355,7 @@ MOD06_0224A280: ; 0x0224A280
lsl r1, r1, #2
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224A2AC
@@ -34368,7 +34368,7 @@ MOD06_0224A29C: ; 0x0224A29C
add r4, r0, #0
bl MOD06_0224A2F4
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224A2AC
@@ -34394,7 +34394,7 @@ _0224A2C6:
ldr r0, [r0]
mov r2, #0
add r3, r7, #0
- bl FUN_021E51EC
+ bl MOD05_021E51EC
ldr r0, [sp, #0xc]
add r6, r6, #4
add r0, r0, #1
@@ -34418,7 +34418,7 @@ MOD06_0224A2F4: ; 0x0224A2F4
lsl r6, r6, #2
_0224A2FE:
ldr r0, [r5, r6]
- bl FUN_021E4C00
+ bl MOD05_021E4C00
add r4, r4, #1
add r5, r5, #4
cmp r4, #3
@@ -34431,11 +34431,11 @@ MOD06_0224A310: ; 0x0224A310
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
mov r1, #0xd
str r4, [sp, #0x14]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x18]
add r0, r5, #0
add r1, sp, #8
@@ -34451,7 +34451,7 @@ MOD06_0224A310: ; 0x0224A310
add r0, r4, #0
add r2, sp, #8
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
nop
@@ -34498,7 +34498,7 @@ MOD06_0224A384: ; 0x0224A384
cmp r0, #0
bne _0224A3A6
add r0, r6, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_0224A3A6:
@@ -34589,7 +34589,7 @@ MOD06_0224A44C: ; 0x0224A44C
mov r1, #0xc
add r3, r2, #0
add r4, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
str r4, [r0, #8]
pop {r4, pc}
.align 2, 0
@@ -34600,7 +34600,7 @@ MOD06_0224A460: ; 0x0224A460
add r4, r0, #0
bl MOD06_0224A4D8
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224A470
@@ -34634,16 +34634,16 @@ MOD06_0224A488: ; 0x0224A488
ldr r0, [r4, #8]
mov r1, #0xb
mov r2, #0x6d
- bl FUN_021E5078
+ bl MOD05_021E5078
ldr r0, [r4, #8]
mov r1, #0xb
mov r2, #0x80
- bl FUN_021E50AC
+ bl MOD05_021E50AC
ldr r0, [r4, #8]
mov r1, #0xc
mov r2, #0xe
mov r3, #1
- bl FUN_021E50D4
+ bl MOD05_021E50D4
mov r0, #0xc
str r0, [sp]
mov r0, #0
@@ -34654,7 +34654,7 @@ MOD06_0224A488: ; 0x0224A488
ldr r0, [r4, #8]
mov r1, #0xd
add r3, r2, #0
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
_0224A4D0:
add sp, #0xc
pop {r3, r4, pc}
@@ -34672,16 +34672,16 @@ MOD06_0224A4D8: ; 0x0224A4D8
str r0, [r4, #4]
ldr r0, [r4, #8]
mov r1, #0xb
- bl FUN_021E50A0
+ bl MOD05_021E50A0
ldr r0, [r4, #8]
mov r1, #0xb
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4, #8]
mov r1, #0xc
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4, #8]
mov r1, #0xd
- bl FUN_021E506C
+ bl MOD05_021E506C
_0224A506:
pop {r4, pc}
@@ -34712,11 +34712,11 @@ MOD06_0224A528: ; 0x0224A528
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
add r0, r5, #0
add r1, sp, #0x14
- bl FUN_021F1E64
+ bl MOD05_021F1E64
mov r0, #2
ldr r1, [sp, #0x1c]
lsl r0, r0, #0xe
@@ -34725,7 +34725,7 @@ MOD06_0224A528: ; 0x0224A528
add r0, r4, #0
mov r1, #0x1e
str r4, [sp, #8]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0xc]
add r0, sp, #8
str r0, [sp]
@@ -34735,7 +34735,7 @@ MOD06_0224A528: ; 0x0224A528
add r0, r4, #0
add r2, sp, #0x14
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
nop
@@ -34763,7 +34763,7 @@ MOD06_0224A570: ; 0x0224A570
ldr r0, [r4, #0xc]
mov r1, #0xd
add r2, sp, #0
- bl FUN_021E4EE4
+ bl MOD05_021E4EE4
str r0, [r4, #0x18]
ldr r0, [r4, #0x10]
bl MOD06_0224A470
@@ -34808,7 +34808,7 @@ MOD06_0224A5C8: ; 0x0224A5C8
cmp r0, #5
blt _0224A5FE
add r0, r2, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x14
pop {r4, r5, pc}
_0224A5FE:
@@ -34851,7 +34851,7 @@ MOD06_0224A63C: ; 0x0224A63C
mov r1, #0x38
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224A668
@@ -34865,7 +34865,7 @@ MOD06_0224A658: ; 0x0224A658
add r4, r0, #0
bl MOD06_0224A6A0
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224A668
@@ -34876,12 +34876,12 @@ MOD06_0224A668: ; 0x0224A668
add r1, r4, #0
ldr r0, [r4]
add r1, #0x28
- bl FUN_021E5294
+ bl MOD05_021E5294
ldr r0, [r4]
add r1, r4, #4
mov r2, #0x4e
mov r3, #0
- bl FUN_021E5224
+ bl MOD05_021E5224
mov r0, #0x74
str r0, [sp]
mov r0, #0
@@ -34892,7 +34892,7 @@ MOD06_0224A668: ; 0x0224A668
add r4, #0x28
add r1, #0x14
add r3, r4, #0
- bl FUN_021E5260
+ bl MOD05_021E5260
add sp, #8
pop {r4, pc}
@@ -34901,12 +34901,12 @@ MOD06_0224A6A0: ; 0x0224A6A0
push {r4, lr}
add r4, r0, #0
add r0, r4, #4
- bl FUN_021F52C8
+ bl MOD05_021F52C8
add r0, r4, #0
add r4, #0x28
add r0, #0x14
add r1, r4, #0
- bl FUN_021F5358
+ bl MOD05_021F5358
pop {r4, pc}
thumb_func_start MOD06_0224A6B8
@@ -34914,10 +34914,10 @@ MOD06_0224A6B8: ; 0x0224A6B8
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
mov r1, #0xe
add r4, r0, #0
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x18]
add r1, sp, #8
mov r0, #0
@@ -34936,7 +34936,7 @@ MOD06_0224A6B8: ; 0x0224A6B8
add r0, r4, #0
add r2, sp, #8
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
.align 2, 0
@@ -34972,12 +34972,12 @@ MOD06_0224A710: ; 0x0224A710
ldr r0, [r5, #0x10]
mov r2, #1
mov r3, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r4, [r5, #0x1c]
ldr r0, [r5, #0x10]
add r1, r4, #4
- bl FUN_021E5294
+ bl MOD05_021E5294
ldr r2, [r5, #0x14]
add r0, r4, #4
ldr r1, [r2, #0x18]
@@ -34993,7 +34993,7 @@ MOD06_0224A710: ; 0x0224A710
add r0, r4, #0
add r0, #0x18
add r1, r1, #4
- bl FUN_021F5400
+ bl MOD05_021F5400
add r0, r4, #0
ldr r1, [r4]
add r0, #0x18
@@ -35031,7 +35031,7 @@ MOD06_0224A710: ; 0x0224A710
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, r4, #0
- bl FUN_021F54D0
+ bl MOD05_021F54D0
mov r0, #1
add sp, #0x18
pop {r4, r5, r6, pc}
@@ -35044,7 +35044,7 @@ MOD06_0224A7C8: ; 0x0224A7C8
add r0, r4, #4
bl thunk_FUN_020ae84c
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224A7DC
@@ -35065,7 +35065,7 @@ MOD06_0224A7DC: ; 0x0224A7DC
cmp r0, #0
bne _0224A828
add r0, r7, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_0224A806:
@@ -35080,7 +35080,7 @@ _0224A806:
str r1, [r4, #0x14]
cmp r1, r3
ble _0224A824
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_0224A824:
@@ -35116,7 +35116,7 @@ _0224A828:
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, r4, #0
- bl FUN_021F54D0
+ bl MOD05_021F54D0
_0224A86C:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
@@ -35124,11 +35124,11 @@ _0224A86C:
thumb_func_start MOD06_0224A870
MOD06_0224A870: ; 0x0224A870
ldr r0, [r1, #0x1c]
- ldr r3, _0224A878 ; =0x021F5431
+ ldr r3, _0224A878 ; =MOD05_021F5430
add r0, #0x18
bx r3
.align 2, 0
-_0224A878: .word 0x021F5431
+_0224A878: .word MOD05_021F5430
thumb_func_start MOD06_0224A87C
MOD06_0224A87C: ; 0x0224A87C
@@ -35137,7 +35137,7 @@ MOD06_0224A87C: ; 0x0224A87C
mov r1, #0x60
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224A8A8
@@ -35151,7 +35151,7 @@ MOD06_0224A898: ; 0x0224A898
add r4, r0, #0
bl MOD06_0224A8C8
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224A8A8
@@ -35168,27 +35168,27 @@ MOD06_0224A8A8: ; 0x0224A8A8
mov r1, #0x4f
mov r2, #0
add r3, r3, #4
- bl FUN_021E51EC
+ bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD06_0224A8C8
MOD06_0224A8C8: ; 0x0224A8C8
- ldr r3, _0224A8D0 ; =0x021E4C01
+ ldr r3, _0224A8D0 ; =MOD05_021E4C00
ldr r0, [r0, #0x5c]
bx r3
nop
-_0224A8D0: .word 0x021E4C01
+_0224A8D0: .word MOD05_021E4C00
thumb_func_start MOD06_0224A8D4
MOD06_0224A8D4: ; 0x0224A8D4
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
mov r1, #0xf
add r4, r0, #0
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x18]
add r1, sp, #8
mov r0, #0
@@ -35207,7 +35207,7 @@ MOD06_0224A8D4: ; 0x0224A8D4
add r0, r4, #0
add r2, sp, #8
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
.align 2, 0
@@ -35254,7 +35254,7 @@ MOD06_0224A948: ; 0x0224A948
cmp r0, #0
bne _0224A96A
add r0, r4, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r3, r4, r5, pc}
_0224A96A:
@@ -35327,7 +35327,7 @@ MOD06_0224A9E8: ; 0x0224A9E8
mov r1, #0x60
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224AA14
@@ -35341,7 +35341,7 @@ MOD06_0224AA04: ; 0x0224AA04
add r4, r0, #0
bl MOD06_0224AA34
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224AA14
@@ -35358,27 +35358,27 @@ MOD06_0224AA14: ; 0x0224AA14
mov r1, #0x6e
mov r2, #0
add r3, r3, #4
- bl FUN_021E51EC
+ bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD06_0224AA34
MOD06_0224AA34: ; 0x0224AA34
- ldr r3, _0224AA3C ; =0x021E4C01
+ ldr r3, _0224AA3C ; =MOD05_021E4C00
ldr r0, [r0, #0x5c]
bx r3
nop
-_0224AA3C: .word 0x021E4C01
+_0224AA3C: .word MOD05_021E4C00
thumb_func_start MOD06_0224AA40
MOD06_0224AA40: ; 0x0224AA40
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
mov r1, #0x1f
add r4, r0, #0
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x18]
add r1, sp, #8
mov r0, #0
@@ -35397,7 +35397,7 @@ MOD06_0224AA40: ; 0x0224AA40
add r0, r4, #0
add r2, sp, #8
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
.align 2, 0
@@ -35444,7 +35444,7 @@ MOD06_0224AAB4: ; 0x0224AAB4
cmp r0, #0
bne _0224AAD6
add r0, r4, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r3, r4, r5, pc}
_0224AAD6:
@@ -35517,7 +35517,7 @@ MOD06_0224AB54: ; 0x0224AB54
mov r1, #0x60
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224AB80
@@ -35531,7 +35531,7 @@ MOD06_0224AB70: ; 0x0224AB70
add r4, r0, #0
bl MOD06_0224ABA0
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224AB80
@@ -35548,17 +35548,17 @@ MOD06_0224AB80: ; 0x0224AB80
mov r1, #0x51
mov r2, #0
add r3, r3, #4
- bl FUN_021E51EC
+ bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD06_0224ABA0
MOD06_0224ABA0: ; 0x0224ABA0
- ldr r3, _0224ABA8 ; =0x021E4C01
+ ldr r3, _0224ABA8 ; =MOD05_021E4C00
ldr r0, [r0, #0x5c]
bx r3
nop
-_0224ABA8: .word 0x021E4C01
+_0224ABA8: .word MOD05_021E4C00
thumb_func_start MOD06_0224ABAC
MOD06_0224ABAC: ; 0x0224ABAC
@@ -35573,10 +35573,10 @@ MOD06_0224ABAC: ; 0x0224ABAC
add r5, r0, #0
str r1, [r2, #8]
str r3, [sp, #0x20]
- bl FUN_021E4C24
+ bl MOD05_021E4C24
mov r1, #0x11
str r0, [sp, #0x24]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x28]
ldr r0, [sp, #0x40]
str r5, [sp, #0x2c]
@@ -35619,7 +35619,7 @@ _0224AC12:
ldr r1, _0224AC34 ; =0x02251BF4
ldr r3, [sp, #0x40]
add r2, sp, #0x14
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x30
pop {r4, r5, r6, pc}
.align 2, 0
@@ -35689,7 +35689,7 @@ MOD06_0224AC98: ; 0x0224AC98
cmp r0, #0
bne _0224ACBA
add r0, r6, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r4, r5, r6, pc}
_0224ACBA:
@@ -35876,7 +35876,7 @@ MOD06_0224AE10: ; 0x0224AE10
mov r1, #0x70
add r3, r2, #0
add r4, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
str r4, [r0, #0x10]
pop {r4, pc}
.align 2, 0
@@ -35887,7 +35887,7 @@ MOD06_0224AE24: ; 0x0224AE24
add r4, r0, #0
bl MOD06_0224AE78
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224AE34
@@ -35918,7 +35918,7 @@ MOD06_0224AE4C: ; 0x0224AE4C
ldr r0, [r4, #0x10]
mov r1, #0x52
mov r2, #1
- bl FUN_021E4C6C
+ bl MOD05_021E4C6C
str r0, [r4, #0x6c]
ldr r0, _0224AE74 ; =MOD06_0224AEC0
add r1, r4, #0
@@ -35950,7 +35950,7 @@ _0224AE8C:
mov r0, #0
str r0, [r4, #4]
ldr r0, [r4, #0x6c]
- bl FUN_021E4C00
+ bl MOD05_021E4C00
_0224AE9C:
pop {r4, pc}
.align 2, 0
@@ -35988,7 +35988,7 @@ MOD06_0224AEC0: ; 0x0224AEC0
add r1, #0x14
add r2, #0x68
add r3, #0x6c
- bl FUN_021E5198
+ bl MOD05_021E5198
mov r0, #0
str r0, [r4, #0xc]
mov r0, #1
@@ -36011,7 +36011,7 @@ MOD06_0224AEE8: ; 0x0224AEE8
str r3, [sp, #8]
add r5, r0, #0
str r1, [r2, #8]
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
ldr r0, [sp, #8]
str r4, [sp, #0x1c]
@@ -36021,7 +36021,7 @@ MOD06_0224AEE8: ; 0x0224AEE8
str r0, [sp, #0x20]
add r0, r4, #0
mov r1, #0x12
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x24]
ldr r0, [sp, #0x40]
str r5, [sp, #0x28]
@@ -36054,7 +36054,7 @@ _0224AF46:
ldr r3, [sp, #0x40]
add r0, r4, #0
add r2, sp, #0xc
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -36233,7 +36233,7 @@ MOD06_0224B0A8: ; 0x0224B0A8
mov r1, #0x38
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224B0D4
@@ -36247,7 +36247,7 @@ MOD06_0224B0C4: ; 0x0224B0C4
add r4, r0, #0
bl MOD06_0224B10C
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224B0D4
@@ -36258,12 +36258,12 @@ MOD06_0224B0D4: ; 0x0224B0D4
add r1, r4, #0
ldr r0, [r4]
add r1, #0x28
- bl FUN_021E5294
+ bl MOD05_021E5294
ldr r0, [r4]
add r1, r4, #4
mov r2, #0xf
mov r3, #0
- bl FUN_021E5224
+ bl MOD05_021E5224
mov r0, #0x6f
str r0, [sp]
mov r0, #0
@@ -36274,7 +36274,7 @@ MOD06_0224B0D4: ; 0x0224B0D4
add r4, #0x28
add r1, #0x14
add r3, r4, #0
- bl FUN_021E5260
+ bl MOD05_021E5260
add sp, #8
pop {r4, pc}
@@ -36283,12 +36283,12 @@ MOD06_0224B10C: ; 0x0224B10C
push {r4, lr}
add r4, r0, #0
add r0, r4, #4
- bl FUN_021F52C8
+ bl MOD05_021F52C8
add r0, r4, #0
add r4, #0x28
add r0, #0x14
add r1, r4, #0
- bl FUN_021F5358
+ bl MOD05_021F5358
pop {r4, pc}
thumb_func_start MOD06_0224B124
@@ -36299,10 +36299,10 @@ MOD06_0224B124: ; 0x0224B124
add r6, r1, #0
add r4, r2, #0
add r7, r3, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
mov r1, #0x13
str r0, [sp, #8]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0xc]
add r0, r6, #0
add r1, r7, #0
@@ -36332,7 +36332,7 @@ MOD06_0224B124: ; 0x0224B124
ldr r1, _0224B184 ; =0x02251C70
add r2, sp, #0x10
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
.align 2, 0
@@ -36353,12 +36353,12 @@ MOD06_0224B188: ; 0x0224B188
ldr r0, [r0]
mov r1, #0x90
mov r3, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r4, [r5]
ldr r0, [r5, #4]
add r1, r4, #4
- bl FUN_021E5294
+ bl MOD05_021E5294
ldr r2, [r5, #8]
add r0, r4, #4
ldr r1, [r2, #0x18]
@@ -36374,7 +36374,7 @@ MOD06_0224B188: ; 0x0224B188
add r0, r4, #0
add r0, #0x18
add r1, r1, #4
- bl FUN_021F5400
+ bl MOD05_021F5400
add r0, r4, #0
ldr r1, [r4]
add r0, #0x18
@@ -36387,7 +36387,7 @@ MOD06_0224B188: ; 0x0224B188
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
- bl FUN_021F54D0
+ bl MOD05_021F54D0
mov r0, #1
add sp, #0xc
pop {r3, r4, r5, r6, pc}
@@ -36400,7 +36400,7 @@ MOD06_0224B200: ; 0x0224B200
add r0, r4, #4
bl thunk_FUN_020ae84c
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224B214
@@ -36418,7 +36418,7 @@ MOD06_0224B214: ; 0x0224B214
str r2, [r1, #0x14]
cmp r2, r4
ble _0224B234
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
pop {r4, pc}
_0224B234:
ldr r0, [r1]
@@ -36429,11 +36429,11 @@ _0224B234:
thumb_func_start MOD06_0224B23C
MOD06_0224B23C: ; 0x0224B23C
ldr r0, [r1]
- ldr r3, _0224B244 ; =0x021F5431
+ ldr r3, _0224B244 ; =MOD05_021F5430
add r0, #0x18
bx r3
.align 2, 0
-_0224B244: .word 0x021F5431
+_0224B244: .word MOD05_021F5430
thumb_func_start MOD06_0224B248
MOD06_0224B248: ; 0x0224B248
@@ -36442,7 +36442,7 @@ MOD06_0224B248: ; 0x0224B248
mov r1, #0x38
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224B274
@@ -36456,7 +36456,7 @@ MOD06_0224B264: ; 0x0224B264
add r4, r0, #0
bl MOD06_0224B2AC
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224B274
@@ -36467,12 +36467,12 @@ MOD06_0224B274: ; 0x0224B274
add r1, r4, #0
ldr r0, [r4]
add r1, #0x28
- bl FUN_021E5294
+ bl MOD05_021E5294
ldr r0, [r4]
add r1, r4, #4
mov r2, #0x10
mov r3, #0
- bl FUN_021E5224
+ bl MOD05_021E5224
mov r0, #0x70
str r0, [sp]
mov r0, #0
@@ -36483,7 +36483,7 @@ MOD06_0224B274: ; 0x0224B274
add r4, #0x28
add r1, #0x14
add r3, r4, #0
- bl FUN_021E5260
+ bl MOD05_021E5260
add sp, #8
pop {r4, pc}
@@ -36492,12 +36492,12 @@ MOD06_0224B2AC: ; 0x0224B2AC
push {r4, lr}
add r4, r0, #0
add r0, r4, #4
- bl FUN_021F52C8
+ bl MOD05_021F52C8
add r0, r4, #0
add r4, #0x28
add r0, #0x14
add r1, r4, #0
- bl FUN_021F5358
+ bl MOD05_021F5358
pop {r4, pc}
thumb_func_start MOD06_0224B2C4
@@ -36508,10 +36508,10 @@ MOD06_0224B2C4: ; 0x0224B2C4
add r6, r1, #0
add r4, r2, #0
add r7, r3, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
mov r1, #0x14
str r0, [sp, #8]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0xc]
add r0, r6, #0
add r1, r7, #0
@@ -36538,7 +36538,7 @@ MOD06_0224B2C4: ; 0x0224B2C4
ldr r1, _0224B320 ; =0x02251C84
add r2, sp, #0x10
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
nop
@@ -36559,12 +36559,12 @@ MOD06_0224B324: ; 0x0224B324
ldr r0, [r0]
mov r1, #0x90
mov r3, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r4, [r5]
ldr r0, [r5, #4]
add r1, r4, #4
- bl FUN_021E5294
+ bl MOD05_021E5294
ldr r2, [r5, #8]
add r0, r4, #4
ldr r1, [r2, #0x18]
@@ -36580,7 +36580,7 @@ MOD06_0224B324: ; 0x0224B324
add r0, r4, #0
add r0, #0x18
add r1, r1, #4
- bl FUN_021F5400
+ bl MOD05_021F5400
add r0, r4, #0
ldr r1, [r4]
add r0, #0x18
@@ -36593,7 +36593,7 @@ MOD06_0224B324: ; 0x0224B324
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
- bl FUN_021F54D0
+ bl MOD05_021F54D0
mov r0, #1
add sp, #0xc
pop {r3, r4, r5, r6, pc}
@@ -36606,7 +36606,7 @@ MOD06_0224B39C: ; 0x0224B39C
add r0, r4, #4
bl thunk_FUN_020ae84c
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224B3B0
@@ -36624,7 +36624,7 @@ MOD06_0224B3B0: ; 0x0224B3B0
str r2, [r1, #0x14]
cmp r2, r4
ble _0224B3D0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
pop {r4, pc}
_0224B3D0:
ldr r0, [r1]
@@ -36635,11 +36635,11 @@ _0224B3D0:
thumb_func_start MOD06_0224B3D8
MOD06_0224B3D8: ; 0x0224B3D8
ldr r0, [r1]
- ldr r3, _0224B3E0 ; =0x021F5431
+ ldr r3, _0224B3E0 ; =MOD05_021F5430
add r0, #0x18
bx r3
.align 2, 0
-_0224B3E0: .word 0x021F5431
+_0224B3E0: .word MOD05_021F5430
thumb_func_start MOD06_0224B3E4
MOD06_0224B3E4: ; 0x0224B3E4
@@ -36648,7 +36648,7 @@ MOD06_0224B3E4: ; 0x0224B3E4
mov r1, #4
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224B410
@@ -36662,7 +36662,7 @@ MOD06_0224B400: ; 0x0224B400
add r4, r0, #0
bl MOD06_0224B4F0
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224B410
@@ -36673,47 +36673,47 @@ MOD06_0224B410: ; 0x0224B410
ldr r0, [r4]
mov r1, #0
mov r2, #0x53
- bl FUN_021E5078
+ bl MOD05_021E5078
ldr r0, [r4]
mov r1, #5
mov r2, #0x54
- bl FUN_021E5078
+ bl MOD05_021E5078
ldr r0, [r4]
mov r1, #0
mov r2, #0x75
- bl FUN_021E50AC
+ bl MOD05_021E50AC
ldr r0, [r4]
mov r1, #3
mov r2, #0x76
- bl FUN_021E50AC
+ bl MOD05_021E50AC
ldr r0, [r4]
mov r1, #4
mov r2, #0x77
- bl FUN_021E50AC
+ bl MOD05_021E50AC
ldr r0, [r4]
mov r1, #5
mov r2, #0x78
- bl FUN_021E50AC
+ bl MOD05_021E50AC
mov r1, #0
ldr r0, [r4]
add r2, r1, #0
mov r3, #1
- bl FUN_021E50D4
+ bl MOD05_021E50D4
mov r2, #1
ldr r0, [r4]
mov r1, #4
add r3, r2, #0
- bl FUN_021E50D4
+ bl MOD05_021E50D4
ldr r0, [r4]
mov r1, #5
mov r2, #2
mov r3, #1
- bl FUN_021E50D4
+ bl MOD05_021E50D4
ldr r0, [r4]
mov r1, #6
mov r2, #3
mov r3, #1
- bl FUN_021E50D4
+ bl MOD05_021E50D4
mov r1, #0
str r1, [sp]
ldr r0, _0224B4E0 ; =0x02251CEC
@@ -36722,7 +36722,7 @@ MOD06_0224B410: ; 0x0224B410
ldr r0, [r4]
add r2, r1, #0
add r3, r1, #0
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
mov r0, #4
str r0, [sp]
mov r0, #0
@@ -36733,7 +36733,7 @@ MOD06_0224B410: ; 0x0224B410
ldr r0, [r4]
add r2, r1, #0
mov r3, #3
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
mov r2, #5
str r2, [sp]
mov r0, #0
@@ -36743,7 +36743,7 @@ MOD06_0224B410: ; 0x0224B410
str r0, [sp, #8]
ldr r0, [r4]
mov r3, #4
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
mov r0, #6
str r0, [sp]
mov r0, #0
@@ -36754,7 +36754,7 @@ MOD06_0224B410: ; 0x0224B410
ldr r0, [r4]
mov r1, #7
add r3, r2, #0
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
add sp, #0xc
pop {r3, r4, pc}
.align 2, 0
@@ -36769,46 +36769,46 @@ MOD06_0224B4F0: ; 0x0224B4F0
add r4, r0, #0
ldr r0, [r4]
mov r1, #0
- bl FUN_021E50A0
+ bl MOD05_021E50A0
ldr r0, [r4]
mov r1, #5
- bl FUN_021E50A0
+ bl MOD05_021E50A0
ldr r0, [r4]
mov r1, #0
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4]
mov r1, #3
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4]
mov r1, #4
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4]
mov r1, #5
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4]
mov r1, #0
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4]
mov r1, #4
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4]
mov r1, #5
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4]
mov r1, #6
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4]
mov r1, #0
- bl FUN_021E506C
+ bl MOD05_021E506C
ldr r0, [r4]
mov r1, #5
- bl FUN_021E506C
+ bl MOD05_021E506C
ldr r0, [r4]
mov r1, #6
- bl FUN_021E506C
+ bl MOD05_021E506C
ldr r0, [r4]
mov r1, #7
- bl FUN_021E506C
+ bl MOD05_021E506C
pop {r4, pc}
.align 2, 0
@@ -36818,7 +36818,7 @@ MOD06_0224B568: ; 0x0224B568
sub sp, #0x30
add r5, r0, #0
add r6, r1, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
add r0, r5, #0
bl FUN_02058B2C
@@ -36831,11 +36831,11 @@ MOD06_0224B568: ; 0x0224B568
str r0, [sp, #0x10]
add r0, r4, #0
str r4, [sp, #0x18]
- bl FUN_021E4C20
+ bl MOD05_021E4C20
str r0, [sp, #0x14]
add r0, r4, #0
mov r1, #0x15
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x1c]
add r0, r5, #0
add r1, sp, #0x24
@@ -36851,7 +36851,7 @@ MOD06_0224B568: ; 0x0224B568
add r0, r4, #0
add r2, sp, #0x24
add r3, r6, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x30
pop {r4, r5, r6, pc}
nop
@@ -36913,7 +36913,7 @@ MOD06_0224B5D0: ; 0x0224B5D0
ldr r0, [r4, #0x28]
mov r1, #0
add r2, sp, #0
- bl FUN_021E4EE4
+ bl MOD05_021E4EE4
str r0, [r4, #0x34]
add r0, r5, #0
bl FUN_02064754
@@ -36928,11 +36928,11 @@ _0224B65E:
thumb_func_start MOD06_0224B664
MOD06_0224B664: ; 0x0224B664
- ldr r3, _0224B66C ; =0x0201F745
+ ldr r3, _0224B66C ; =FUN_0201F744
ldr r0, [r1, #0x34]
bx r3
nop
-_0224B66C: .word 0x0201F745
+_0224B66C: .word FUN_0201F744
thumb_func_start MOD06_0224B670
MOD06_0224B670: ; 0x0224B670
@@ -36949,7 +36949,7 @@ MOD06_0224B670: ; 0x0224B670
cmp r0, #0
bne _0224B694
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_0224B694:
@@ -37021,7 +37021,7 @@ _0224B710:
cmp r0, #0
bne _0224B72A
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_0224B72A:
@@ -37038,7 +37038,7 @@ _0224B72A:
beq _0224B74A
_0224B744:
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
_0224B74A:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
@@ -37058,7 +37058,7 @@ MOD06_0224B750: ; 0x0224B750
cmp r0, #0
bne _0224B772
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r4, r5, pc}
_0224B772:
@@ -37094,7 +37094,7 @@ MOD06_0224B788: ; 0x0224B788
ldr r0, [r4, #0x14]
mov r1, #0
add r2, sp, #0
- bl FUN_021E4EE4
+ bl MOD05_021E4EE4
str r0, [r4, #0x1c]
mov r0, #1
add sp, #0xc
@@ -37102,11 +37102,11 @@ MOD06_0224B788: ; 0x0224B788
thumb_func_start MOD06_0224B7C0
MOD06_0224B7C0: ; 0x0224B7C0
- ldr r3, _0224B7C8 ; =0x0201F745
+ ldr r3, _0224B7C8 ; =FUN_0201F744
ldr r0, [r1, #0x1c]
bx r3
nop
-_0224B7C8: .word 0x0201F745
+_0224B7C8: .word FUN_0201F744
thumb_func_start MOD06_0224B7CC
MOD06_0224B7CC: ; 0x0224B7CC
@@ -37164,7 +37164,7 @@ MOD06_0224B818: ; 0x0224B818
str r5, [sp, #8]
str r4, [sp, #0xc]
str r6, [sp, #0x14]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x18]
mov r0, #2
lsl r1, r5, #0x10
@@ -37186,7 +37186,7 @@ MOD06_0224B818: ; 0x0224B818
add r0, r6, #0
add r2, sp, #0x1c
add r3, r7, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -37262,7 +37262,7 @@ _0224B8EA:
_0224B8EC:
ldr r0, [r4, #0x1c]
add r2, sp, #0
- bl FUN_021E4EE4
+ bl MOD05_021E4EE4
str r0, [r4, #0x24]
mov r0, #1
add sp, #0xc
@@ -37270,11 +37270,11 @@ _0224B8EC:
thumb_func_start MOD06_0224B8FC
MOD06_0224B8FC: ; 0x0224B8FC
- ldr r3, _0224B904 ; =0x0201F745
+ ldr r3, _0224B904 ; =FUN_0201F744
ldr r0, [r1, #0x24]
bx r3
nop
-_0224B904: .word 0x0201F745
+_0224B904: .word FUN_0201F744
thumb_func_start MOD06_0224B908
MOD06_0224B908: ; 0x0224B908
@@ -37320,7 +37320,7 @@ MOD06_0224B948: ; 0x0224B948
mov r1, #4
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224B974
@@ -37334,7 +37334,7 @@ MOD06_0224B964: ; 0x0224B964
add r4, r0, #0
bl MOD06_0224B9B8
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224B974
@@ -37345,16 +37345,16 @@ MOD06_0224B974: ; 0x0224B974
ldr r0, [r4]
mov r1, #3
mov r2, #0x56
- bl FUN_021E5078
+ bl MOD05_021E5078
ldr r0, [r4]
mov r1, #2
mov r2, #0x79
- bl FUN_021E50AC
+ bl MOD05_021E50AC
ldr r0, [r4]
mov r1, #2
mov r2, #5
mov r3, #1
- bl FUN_021E50D4
+ bl MOD05_021E50D4
mov r3, #2
mov r1, #3
str r3, [sp]
@@ -37364,7 +37364,7 @@ MOD06_0224B974: ; 0x0224B974
add r2, r1, #0
str r0, [sp, #8]
ldr r0, [r4]
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
add sp, #0xc
pop {r3, r4, pc}
.align 2, 0
@@ -37376,16 +37376,16 @@ MOD06_0224B9B8: ; 0x0224B9B8
add r4, r0, #0
ldr r0, [r4]
mov r1, #3
- bl FUN_021E50A0
+ bl MOD05_021E50A0
ldr r0, [r4]
mov r1, #2
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4]
mov r1, #2
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4]
mov r1, #3
- bl FUN_021E506C
+ bl MOD05_021E506C
pop {r4, pc}
.align 2, 0
@@ -37395,7 +37395,7 @@ MOD06_0224B9E0: ; 0x0224B9E0
sub sp, #0x24
add r5, r0, #0
add r6, r1, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
add r0, r5, #0
bl FUN_02058738
@@ -37403,7 +37403,7 @@ MOD06_0224B9E0: ; 0x0224B9E0
add r0, r4, #0
mov r1, #0x17
str r4, [sp, #0x18]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x1c]
add r1, sp, #8
mov r0, #0
@@ -37421,7 +37421,7 @@ MOD06_0224B9E0: ; 0x0224B9E0
add r0, r4, #0
add r2, sp, #8
add r3, r6, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x24
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -37461,7 +37461,7 @@ MOD06_0224BA30: ; 0x0224BA30
ldr r0, [r4, #0x18]
mov r1, #3
add r2, sp, #0
- bl FUN_021E4EE4
+ bl MOD05_021E4EE4
str r0, [r4, #0x24]
mov r0, #1
add sp, #0xc
@@ -37470,11 +37470,11 @@ MOD06_0224BA30: ; 0x0224BA30
thumb_func_start MOD06_0224BA88
MOD06_0224BA88: ; 0x0224BA88
- ldr r3, _0224BA90 ; =0x0201F745
+ ldr r3, _0224BA90 ; =FUN_0201F744
ldr r0, [r1, #0x24]
bx r3
nop
-_0224BA90: .word 0x0201F745
+_0224BA90: .word FUN_0201F744
thumb_func_start MOD06_0224BA94
MOD06_0224BA94: ; 0x0224BA94
@@ -37490,7 +37490,7 @@ MOD06_0224BA94: ; 0x0224BA94
cmp r0, #0
bne _0224BAB4
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
pop {r3, r4, r5, r6, r7, pc}
_0224BAB4:
add r0, r5, #0
@@ -37503,7 +37503,7 @@ _0224BAB4:
cmp r0, #0
bne _0224BAD2
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
pop {r3, r4, r5, r6, r7, pc}
_0224BAD2:
ldr r0, [r4]
@@ -37524,7 +37524,7 @@ _0224BAD2:
cmp r6, #0
bne _0224BB00
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
pop {r3, r4, r5, r6, r7, pc}
_0224BB00:
ldr r0, [r4, #0x24]
@@ -37549,7 +37549,7 @@ MOD06_0224BB0C: ; 0x0224BB0C
cmp r0, #0
bne _0224BB30
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_0224BB30:
@@ -37575,7 +37575,7 @@ MOD06_0224BB50: ; 0x0224BB50
mov r1, #4
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224BB7C
@@ -37589,7 +37589,7 @@ MOD06_0224BB6C: ; 0x0224BB6C
add r4, r0, #0
bl MOD06_0224BBC4
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224BB7C
@@ -37600,16 +37600,16 @@ MOD06_0224BB7C: ; 0x0224BB7C
ldr r0, [r4]
mov r1, #6
mov r2, #0x58
- bl FUN_021E5078
+ bl MOD05_021E5078
ldr r0, [r4]
mov r1, #6
mov r2, #0x7a
- bl FUN_021E50AC
+ bl MOD05_021E50AC
mov r1, #7
ldr r0, [r4]
add r2, r1, #0
mov r3, #1
- bl FUN_021E50D4
+ bl MOD05_021E50D4
mov r0, #7
str r0, [sp]
mov r0, #0
@@ -37620,7 +37620,7 @@ MOD06_0224BB7C: ; 0x0224BB7C
ldr r0, [r4]
mov r1, #8
add r3, r2, #0
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
add sp, #0xc
pop {r3, r4, pc}
nop
@@ -37632,16 +37632,16 @@ MOD06_0224BBC4: ; 0x0224BBC4
add r4, r0, #0
ldr r0, [r4]
mov r1, #6
- bl FUN_021E50A0
+ bl MOD05_021E50A0
ldr r0, [r4]
mov r1, #6
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4]
mov r1, #7
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4]
mov r1, #8
- bl FUN_021E506C
+ bl MOD05_021E506C
pop {r4, pc}
.align 2, 0
@@ -37650,7 +37650,7 @@ MOD06_0224BBEC: ; 0x0224BBEC
push {r3, r4, r5, r6, lr}
sub sp, #0x24
add r5, r0, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
add r0, r5, #0
bl FUN_02058738
@@ -37658,7 +37658,7 @@ MOD06_0224BBEC: ; 0x0224BBEC
add r0, r4, #0
mov r1, #0x19
str r4, [sp, #0x18]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x1c]
add r0, r5, #0
add r1, sp, #8
@@ -37683,7 +37683,7 @@ MOD06_0224BBEC: ; 0x0224BBEC
add r0, r4, #0
add r2, sp, #8
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x24
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -37715,7 +37715,7 @@ MOD06_0224BC50: ; 0x0224BC50
ldr r0, [r4, #0x14]
mov r1, #8
add r2, sp, #0
- bl FUN_021E4EE4
+ bl MOD05_021E4EE4
str r0, [r4, #0x20]
mov r0, #1
add sp, #0xc
@@ -37723,11 +37723,11 @@ MOD06_0224BC50: ; 0x0224BC50
thumb_func_start MOD06_0224BC94
MOD06_0224BC94: ; 0x0224BC94
- ldr r3, _0224BC9C ; =0x0201F745
+ ldr r3, _0224BC9C ; =FUN_0201F744
ldr r0, [r1, #0x20]
bx r3
nop
-_0224BC9C: .word 0x0201F745
+_0224BC9C: .word FUN_0201F744
thumb_func_start MOD06_0224BCA0
MOD06_0224BCA0: ; 0x0224BCA0
@@ -37750,7 +37750,7 @@ MOD06_0224BCA0: ; 0x0224BCA0
cmp r0, #9
blt _0224BCCE
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
_0224BCCE:
pop {r3, r4, r5, pc}
@@ -37780,7 +37780,7 @@ MOD06_0224BCF4: ; 0x0224BCF4
mov r1, #4
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224BD20
@@ -37794,7 +37794,7 @@ MOD06_0224BD10: ; 0x0224BD10
add r4, r0, #0
bl MOD06_0224BD68
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224BD20
@@ -37805,16 +37805,16 @@ MOD06_0224BD20: ; 0x0224BD20
ldr r0, [r4]
mov r1, #7
mov r2, #0x59
- bl FUN_021E5078
+ bl MOD05_021E5078
ldr r0, [r4]
mov r1, #7
mov r2, #0x7b
- bl FUN_021E50AC
+ bl MOD05_021E50AC
mov r1, #8
ldr r0, [r4]
add r2, r1, #0
mov r3, #1
- bl FUN_021E50D4
+ bl MOD05_021E50D4
mov r0, #8
str r0, [sp]
mov r0, #0
@@ -37825,7 +37825,7 @@ MOD06_0224BD20: ; 0x0224BD20
ldr r0, [r4]
mov r1, #9
add r3, r2, #0
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
add sp, #0xc
pop {r3, r4, pc}
nop
@@ -37837,16 +37837,16 @@ MOD06_0224BD68: ; 0x0224BD68
add r4, r0, #0
ldr r0, [r4]
mov r1, #7
- bl FUN_021E50A0
+ bl MOD05_021E50A0
ldr r0, [r4]
mov r1, #7
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4]
mov r1, #8
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4]
mov r1, #9
- bl FUN_021E506C
+ bl MOD05_021E506C
pop {r4, pc}
.align 2, 0
@@ -37856,7 +37856,7 @@ MOD06_0224BD90: ; 0x0224BD90
sub sp, #0x30
add r5, r0, #0
add r6, r1, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
add r0, r5, #0
bl FUN_02058B2C
@@ -37869,11 +37869,11 @@ MOD06_0224BD90: ; 0x0224BD90
str r0, [sp, #0x10]
add r0, r4, #0
str r4, [sp, #0x18]
- bl FUN_021E4C20
+ bl MOD05_021E4C20
str r0, [sp, #0x14]
add r0, r4, #0
mov r1, #0x1a
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x1c]
add r0, r5, #0
add r1, sp, #0x24
@@ -37889,7 +37889,7 @@ MOD06_0224BD90: ; 0x0224BD90
add r0, r4, #0
add r2, sp, #0x24
add r3, r6, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x30
pop {r4, r5, r6, pc}
nop
@@ -37951,7 +37951,7 @@ MOD06_0224BDF8: ; 0x0224BDF8
ldr r0, [r4, #0x28]
mov r1, #9
add r2, sp, #0
- bl FUN_021E4EE4
+ bl MOD05_021E4EE4
str r0, [r4, #0x34]
add r0, r5, #0
bl FUN_02064754
@@ -37966,11 +37966,11 @@ _0224BE86:
thumb_func_start MOD06_0224BE8C
MOD06_0224BE8C: ; 0x0224BE8C
- ldr r3, _0224BE94 ; =0x0201F745
+ ldr r3, _0224BE94 ; =FUN_0201F744
ldr r0, [r1, #0x34]
bx r3
nop
-_0224BE94: .word 0x0201F745
+_0224BE94: .word FUN_0201F744
thumb_func_start MOD06_0224BE98
MOD06_0224BE98: ; 0x0224BE98
@@ -37987,7 +37987,7 @@ MOD06_0224BE98: ; 0x0224BE98
cmp r0, #0
bne _0224BEBC
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_0224BEBC:
@@ -38067,7 +38067,7 @@ _0224BF40:
beq _0224BF60
_0224BF5A:
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
_0224BF60:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
@@ -38086,7 +38086,7 @@ MOD06_0224BF64: ; 0x0224BF64
cmp r0, #0
bne _0224BF86
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r4, r5, pc}
_0224BF86:
@@ -38107,7 +38107,7 @@ MOD06_0224BF9C: ; 0x0224BF9C
mov r1, #4
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224BFC8
@@ -38121,7 +38121,7 @@ MOD06_0224BFB8: ; 0x0224BFB8
add r4, r0, #0
bl MOD06_0224C010
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224BFC8
@@ -38132,16 +38132,16 @@ MOD06_0224BFC8: ; 0x0224BFC8
ldr r0, [r4]
mov r1, #8
mov r2, #0x5a
- bl FUN_021E5078
+ bl MOD05_021E5078
ldr r0, [r4]
mov r1, #8
mov r2, #0x7c
- bl FUN_021E50AC
+ bl MOD05_021E50AC
mov r1, #9
ldr r0, [r4]
add r2, r1, #0
mov r3, #1
- bl FUN_021E50D4
+ bl MOD05_021E50D4
mov r0, #9
str r0, [sp]
mov r0, #0
@@ -38152,7 +38152,7 @@ MOD06_0224BFC8: ; 0x0224BFC8
ldr r0, [r4]
mov r1, #0xa
add r3, r2, #0
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
add sp, #0xc
pop {r3, r4, pc}
nop
@@ -38164,16 +38164,16 @@ MOD06_0224C010: ; 0x0224C010
add r4, r0, #0
ldr r0, [r4]
mov r1, #8
- bl FUN_021E50A0
+ bl MOD05_021E50A0
ldr r0, [r4]
mov r1, #8
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4]
mov r1, #9
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4]
mov r1, #0xa
- bl FUN_021E506C
+ bl MOD05_021E506C
pop {r4, pc}
.align 2, 0
@@ -38183,7 +38183,7 @@ MOD06_0224C038: ; 0x0224C038
sub sp, #0x30
add r5, r0, #0
add r6, r1, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
add r0, r5, #0
bl FUN_02058B2C
@@ -38196,11 +38196,11 @@ MOD06_0224C038: ; 0x0224C038
str r0, [sp, #0x10]
add r0, r4, #0
str r4, [sp, #0x18]
- bl FUN_021E4C20
+ bl MOD05_021E4C20
str r0, [sp, #0x14]
add r0, r4, #0
mov r1, #0x1b
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x1c]
add r0, r5, #0
add r1, sp, #0x24
@@ -38216,7 +38216,7 @@ MOD06_0224C038: ; 0x0224C038
add r0, r4, #0
add r2, sp, #0x24
add r3, r6, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x30
pop {r4, r5, r6, pc}
nop
@@ -38283,7 +38283,7 @@ MOD06_0224C0A0: ; 0x0224C0A0
ldr r0, [r4, #0x28]
mov r1, #0xa
add r2, sp, #0
- bl FUN_021E4EE4
+ bl MOD05_021E4EE4
str r0, [r4, #0x34]
add r0, r5, #0
bl FUN_02064754
@@ -38299,11 +38299,11 @@ _0224C138:
thumb_func_start MOD06_0224C140
MOD06_0224C140: ; 0x0224C140
- ldr r3, _0224C148 ; =0x0201F745
+ ldr r3, _0224C148 ; =FUN_0201F744
ldr r0, [r1, #0x34]
bx r3
nop
-_0224C148: .word 0x0201F745
+_0224C148: .word FUN_0201F744
thumb_func_start MOD06_0224C14C
MOD06_0224C14C: ; 0x0224C14C
@@ -38320,7 +38320,7 @@ MOD06_0224C14C: ; 0x0224C14C
cmp r0, #0
bne _0224C170
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
_0224C170:
@@ -38400,7 +38400,7 @@ _0224C1F4:
beq _0224C214
_0224C20E:
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
_0224C214:
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
@@ -38418,7 +38418,7 @@ MOD06_0224C218: ; 0x0224C218
cmp r0, #0
bne _0224C238
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
add sp, #0xc
pop {r4, r5, pc}
_0224C238:
@@ -38485,7 +38485,7 @@ MOD06_0224C27C: ; 0x0224C27C
bl FUN_0204AAD4
ldr r1, [sp, #4]
add r0, sp, #8
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
add r3, sp, #8
ldmia r3!, {r0, r1}
add r2, r4, #0
@@ -38544,11 +38544,11 @@ _0224C31C: ; jump table
_0224C328:
ldr r0, _0224C508 ; =0x00000205
ldr r1, [r5, #0x2c]
- bl FUN_021F4BD0
+ bl MOD05_021F4BD0
add r6, r0, #0
ldr r1, [r5, #0x2c]
mov r0, #0x7c
- bl FUN_021F4BD0
+ bl MOD05_021F4BD0
str r0, [sp, #0x18]
ldr r0, [r6]
bl FUN_020BC13C
@@ -38564,7 +38564,7 @@ _0224C328:
ldr r1, [r1, #0xc]
add r6, r0, r1
ldr r0, [r5, #0x2c]
- bl FUN_021F4C88
+ bl MOD05_021F4C88
mov r1, #0
str r1, [sp]
str r7, [sp, #4]
@@ -38577,7 +38577,7 @@ _0224C328:
ldr r1, [r5, #0x50]
ldr r3, _0224C508 ; =0x00000205
mov r2, #0x10
- bl FUN_021DA464
+ bl MOD05_021DA464
add r0, r5, #0
mov r1, #0x7c
add r2, sp, #0x1c
@@ -38588,10 +38588,10 @@ _0224C328:
bl ErrorHandling
_0224C390:
ldr r0, [sp, #0x1c]
- bl FUN_021E7EC8
+ bl MOD05_021E7EC8
add r7, r0, #0
ldr r0, [r5, #0x2c]
- bl FUN_021F4C88
+ bl MOD05_021F4C88
str r7, [sp]
str r6, [sp, #4]
str r0, [sp, #8]
@@ -38604,7 +38604,7 @@ _0224C390:
ldr r1, [r5, #0x50]
mov r2, #0x20
mov r3, #0x7c
- bl FUN_021DA464
+ bl MOD05_021DA464
ldrb r0, [r4, #0xf]
add r0, r0, #1
strb r0, [r4, #0xf]
@@ -38652,7 +38652,7 @@ _0224C3C2:
ldr r0, [r0]
ldr r1, [r5, #0x2c]
add r3, sp, #0x2c
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
ldrb r1, [r4, #0xd]
add r1, r4, r1
strb r0, [r1, #0x10]
@@ -38662,13 +38662,13 @@ _0224C3C2:
add r1, r4, r1
ldrb r1, [r1, #0x10]
ldr r0, [r0]
- bl FUN_021E7EEC
- bl FUN_021E7EC8
+ bl MOD05_021E7EEC
+ bl MOD05_021E7EC8
add r3, r0, #0
ldrb r2, [r4, #0xd]
ldr r0, [r5, #0x50]
mov r1, #0x10
- bl FUN_021DA4BC
+ bl MOD05_021DA4BC
ldrb r0, [r4, #0xf]
add r0, r0, #1
strb r0, [r4, #0xf]
@@ -38702,11 +38702,11 @@ _0224C476:
ldr r0, [r5, #0x50]
mov r1, #0x10
mov r2, #0
- bl FUN_021DA4EC
+ bl MOD05_021DA4EC
ldr r0, [r5, #0x50]
mov r1, #0x20
mov r2, #0
- bl FUN_021DA4EC
+ bl MOD05_021DA4EC
ldr r0, _0224C51C ; =0x0000048E
bl FUN_02005C28
ldrb r0, [r4, #0xf]
@@ -38716,12 +38716,12 @@ _0224C476:
_0224C498:
ldr r0, [r5, #0x50]
mov r1, #0x10
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0
beq _0224C500
ldr r0, [r5, #0x50]
mov r1, #0x20
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0
beq _0224C500
bl FUN_02005CBC
@@ -38730,11 +38730,11 @@ _0224C498:
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #0x20
- bl FUN_021DA54C
+ bl MOD05_021DA54C
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #0x10
- bl FUN_021DA54C
+ bl MOD05_021DA54C
ldrb r0, [r4, #0xc]
mov r6, #0
cmp r0, #0
@@ -38745,7 +38745,7 @@ _0224C4D4:
add r1, #0xa0
ldrb r0, [r0, #0x10]
ldr r1, [r1]
- bl FUN_021E7C80
+ bl MOD05_021E7C80
add r0, r6, #1
lsl r0, r0, #0x18
lsr r6, r0, #0x18
@@ -38833,7 +38833,7 @@ _0224C586: ; jump table
_0224C590:
ldr r0, _0224C66C ; =0x000001F2
ldr r1, [r5, #0x2c]
- bl FUN_021F4BD0
+ bl MOD05_021F4BD0
ldr r0, [r0]
bl FUN_020BC13C
ldrh r1, [r0, #0xe]
@@ -38850,10 +38850,10 @@ _0224C590:
bl ErrorHandling
_0224C5BA:
ldr r0, [sp, #0x18]
- bl FUN_021E7EC8
+ bl MOD05_021E7EC8
add r7, r0, #0
ldr r0, [r5, #0x2c]
- bl FUN_021F4C88
+ bl MOD05_021F4C88
str r7, [sp]
str r6, [sp, #4]
str r0, [sp, #8]
@@ -38867,7 +38867,7 @@ _0224C5BA:
str r0, [sp, #0x14]
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
- bl FUN_021DA464
+ bl MOD05_021DA464
ldrb r0, [r4, #2]
add r0, r0, #1
strb r0, [r4, #2]
@@ -38888,7 +38888,7 @@ _0224C604:
ldrb r2, [r4, #1]
ldr r0, [r5, #0x50]
mov r1, #1
- bl FUN_021DA4EC
+ bl MOD05_021DA4EC
ldr r0, _0224C670 ; =0x00000612
bl FUN_020054C8
ldrb r0, [r4, #2]
@@ -38898,7 +38898,7 @@ _0224C604:
_0224C61C:
ldr r0, [r5, #0x50]
mov r1, #1
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0
beq _0224C664
ldr r0, _0224C670 ; =0x00000612
@@ -38909,7 +38909,7 @@ _0224C61C:
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #1
- bl FUN_021DA54C
+ bl MOD05_021DA54C
ldrb r0, [r4, #2]
add r0, r0, #1
strb r0, [r4, #2]
@@ -38960,13 +38960,13 @@ MOD06_0224C678: ; 0x0224C678
cmp r0, #0
beq _0224C6DA
ldr r0, [r5, #0x2c]
- bl FUN_021F4C88
+ bl MOD05_021F4C88
add r4, r0, #0
ldr r0, [sp, #0x1c]
- bl FUN_021E7EC8
+ bl MOD05_021E7EC8
add r6, r0, #0
ldr r0, [sp, #0x1c]
- bl FUN_021E7ECC
+ bl MOD05_021E7ECC
str r6, [sp]
str r0, [sp, #4]
str r4, [sp, #8]
@@ -38980,7 +38980,7 @@ MOD06_0224C678: ; 0x0224C678
ldr r1, [r5, #0x50]
ldr r3, [sp, #0x18]
add r2, r7, #0
- bl FUN_021DA464
+ bl MOD05_021DA464
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
_0224C6DA:
@@ -38992,21 +38992,21 @@ _0224C6E4: .word 0x02251DE4
thumb_func_start MOD06_0224C6E8
MOD06_0224C6E8: ; 0x0224C6E8
- ldr r3, _0224C6F0 ; =0x021DA4ED
+ ldr r3, _0224C6F0 ; =MOD05_021DA4EC
ldr r0, [r0, #0x50]
mov r2, #0
bx r3
.align 2, 0
-_0224C6F0: .word 0x021DA4ED
+_0224C6F0: .word MOD05_021DA4EC
thumb_func_start MOD06_0224C6F4
MOD06_0224C6F4: ; 0x0224C6F4
- ldr r3, _0224C6FC ; =0x021DA4ED
+ ldr r3, _0224C6FC ; =MOD05_021DA4EC
ldr r0, [r0, #0x50]
mov r2, #1
bx r3
.align 2, 0
-_0224C6FC: .word 0x021DA4ED
+_0224C6FC: .word MOD05_021DA4EC
thumb_func_start MOD06_0224C700
MOD06_0224C700: ; 0x0224C700
@@ -39062,12 +39062,12 @@ MOD06_0224C75C: ; 0x0224C75C
add r0, r1, #0
mov r1, #4
add r4, r2, #0
- bl FUN_021F61F4
+ bl MOD05_021F61F4
ldr r2, _0224C7B0 ; =0xFFF6A000
str r0, [r4, #0x14]
mov r1, #1
mov r3, #0xf
- bl FUN_021F6254
+ bl MOD05_021F6254
ldr r0, [r4, #0x18]
ldr r1, _0224C7B4 ; =0x02251E40
bl FUN_0205AEA4
@@ -39193,7 +39193,7 @@ _0224C86E:
ldr r0, [r4, #0xc]
bl FUN_0205AEFC
ldr r0, [r4, #0x14]
- bl FUN_021F6240
+ bl MOD05_021F6240
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -39341,12 +39341,12 @@ _0224C97A:
_0224C990:
add r0, r5, #0
mov r1, #4
- bl FUN_021F61F4
+ bl MOD05_021F61F4
mov r1, #1
ldr r2, _0224C9C0 ; =0xFFF6A000
str r0, [r4, #0x14]
add r3, r1, #0
- bl FUN_021F6254
+ bl MOD05_021F6254
ldr r0, [r4, #0x18]
ldr r1, _0224C9C4 ; =0x02251E14
bl FUN_0205AEA4
@@ -39387,7 +39387,7 @@ _0224C9F2:
mov r1, #2
mov r2, #0
mov r3, #0x3c
- bl FUN_021F6254
+ bl MOD05_021F6254
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -39445,14 +39445,14 @@ MOD06_0224CA58: ; 0x0224CA58
pop {r4, pc}
_0224CA6A:
ldr r0, [r4, #0x14]
- bl FUN_021F6234
+ bl MOD05_021F6234
cmp r0, #0
bne _0224CA78
mov r0, #0
pop {r4, pc}
_0224CA78:
ldr r0, [r4, #0x14]
- bl FUN_021F6240
+ bl MOD05_021F6240
ldr r0, [r4, #0xc]
bl FUN_0205AEFC
mov r0, #2
@@ -39961,7 +39961,7 @@ MOD06_0224CE30: ; 0x0224CE30
lsl r1, r1, #2
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224CE5C
@@ -39974,7 +39974,7 @@ MOD06_0224CE4C: ; 0x0224CE4C
add r4, r0, #0
bl MOD06_0224CEA4
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224CE5C
@@ -40000,7 +40000,7 @@ _0224CE76:
ldr r0, [r0]
mov r2, #0
add r3, r7, #0
- bl FUN_021E51EC
+ bl MOD05_021E51EC
ldr r0, [sp, #0xc]
add r6, r6, #4
add r0, r0, #1
@@ -40024,7 +40024,7 @@ MOD06_0224CEA4: ; 0x0224CEA4
lsl r6, r6, #2
_0224CEAE:
ldr r0, [r5, r6]
- bl FUN_021E4C00
+ bl MOD05_021E4C00
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
@@ -40047,9 +40047,9 @@ MOD06_0224CECC: ; 0x0224CECC
sub sp, #0x2c
add r5, r0, #0
add r4, r1, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r6, r0, #0
- bl FUN_021E4C20
+ bl MOD05_021E4C20
add r7, r0, #0
add r0, r5, #0
bl FUN_02058B2C
@@ -40067,7 +40067,7 @@ MOD06_0224CECC: ; 0x0224CECC
mov r1, #0x1c
str r4, [sp, #0xc]
str r6, [sp, #0x10]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
add r1, r4, #0
str r0, [sp, #0x14]
str r5, [sp, #0x18]
@@ -40083,7 +40083,7 @@ MOD06_0224CECC: ; 0x0224CECC
add r0, r6, #0
add r2, sp, #0x20
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x2c
pop {r4, r5, r6, r7, pc}
nop
@@ -40507,7 +40507,7 @@ MOD06_0224D244: ; 0x0224D244
mov r1, #4
add r3, r2, #0
add r5, r0, #0
- bl FUN_021E4BE8
+ bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4]
bl MOD06_0224D270
@@ -40521,7 +40521,7 @@ MOD06_0224D260: ; 0x0224D260
add r4, r0, #0
bl MOD06_0224D2B8
add r0, r4, #0
- bl FUN_021E4C00
+ bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD06_0224D270
@@ -40532,16 +40532,16 @@ MOD06_0224D270: ; 0x0224D270
ldr r0, [r4]
mov r1, #9
mov r2, #0x6b
- bl FUN_021E5078
+ bl MOD05_021E5078
ldr r0, [r4]
mov r1, #9
mov r2, #0x7f
- bl FUN_021E50AC
+ bl MOD05_021E50AC
ldr r0, [r4]
mov r1, #0xa
mov r2, #0xc
mov r3, #1
- bl FUN_021E50D4
+ bl MOD05_021E50D4
mov r0, #0xa
str r0, [sp]
mov r0, #0
@@ -40552,7 +40552,7 @@ MOD06_0224D270: ; 0x0224D270
ldr r0, [r4]
mov r1, #0xb
add r3, r2, #0
- bl FUN_021E4EFC
+ bl MOD05_021E4EFC
add sp, #0xc
pop {r3, r4, pc}
nop
@@ -40564,16 +40564,16 @@ MOD06_0224D2B8: ; 0x0224D2B8
add r4, r0, #0
ldr r0, [r4]
mov r1, #9
- bl FUN_021E50A0
+ bl MOD05_021E50A0
ldr r0, [r4]
mov r1, #9
- bl FUN_021E50C8
+ bl MOD05_021E50C8
ldr r0, [r4]
mov r1, #0xa
- bl FUN_021E5114
+ bl MOD05_021E5114
ldr r0, [r4]
mov r1, #0xb
- bl FUN_021E506C
+ bl MOD05_021E506C
pop {r4, pc}
.align 2, 0
@@ -40582,7 +40582,7 @@ MOD06_0224D2E0: ; 0x0224D2E0
push {r3, r4, r5, r6, lr}
sub sp, #0x24
add r5, r0, #0
- bl FUN_021E4C24
+ bl MOD05_021E4C24
add r4, r0, #0
add r0, r5, #0
bl FUN_02058738
@@ -40590,7 +40590,7 @@ MOD06_0224D2E0: ; 0x0224D2E0
add r0, r4, #0
mov r1, #0x1d
str r4, [sp, #0x18]
- bl FUN_021E4C08
+ bl MOD05_021E4C08
str r0, [sp, #0x1c]
add r0, r5, #0
add r1, sp, #8
@@ -40615,7 +40615,7 @@ MOD06_0224D2E0: ; 0x0224D2E0
add r0, r4, #0
add r2, sp, #8
mov r3, #0
- bl FUN_021E4DC4
+ bl MOD05_021E4DC4
add sp, #0x24
pop {r3, r4, r5, r6, pc}
.align 2, 0
@@ -40647,7 +40647,7 @@ MOD06_0224D344: ; 0x0224D344
ldr r0, [r4, #0x14]
mov r1, #0xb
add r2, sp, #0
- bl FUN_021E4EE4
+ bl MOD05_021E4EE4
str r0, [r4, #0x20]
mov r0, #1
add sp, #0xc
@@ -40655,11 +40655,11 @@ MOD06_0224D344: ; 0x0224D344
thumb_func_start MOD06_0224D388
MOD06_0224D388: ; 0x0224D388
- ldr r3, _0224D390 ; =0x0201F745
+ ldr r3, _0224D390 ; =FUN_0201F744
ldr r0, [r1, #0x20]
bx r3
nop
-_0224D390: .word 0x0201F745
+_0224D390: .word FUN_0201F744
thumb_func_start MOD06_0224D394
MOD06_0224D394: ; 0x0224D394
@@ -40682,7 +40682,7 @@ MOD06_0224D394: ; 0x0224D394
cmp r0, #7
blt _0224D3C2
add r0, r5, #0
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
_0224D3C2:
pop {r3, r4, r5, pc}
@@ -41710,11 +41710,11 @@ MOD06_0224DC3C: ; 0x0224DC3C
thumb_func_start MOD06_0224DC50
MOD06_0224DC50: ; 0x0224DC50
- ldr r3, _0224DC58 ; =0x0201FD59
+ ldr r3, _0224DC58 ; =FUN_0201FD58
ldr r0, [r0, #0x1c]
bx r3
nop
-_0224DC58: .word 0x0201FD59
+_0224DC58: .word FUN_0201FD58
thumb_func_start MOD06_0224DC5C
MOD06_0224DC5C: ; 0x0224DC5C
@@ -42756,13 +42756,13 @@ _0224E4A2:
thumb_func_start MOD06_0224E4A4
MOD06_0224E4A4: ; 0x0224E4A4
- ldr r3, _0224E4B0 ; =0x020021AD
+ ldr r3, _0224E4B0 ; =FUN_020021AC
add r1, r0, #0
ldr r0, [r1, #4]
ldr r1, [r1, #8]
bx r3
nop
-_0224E4B0: .word 0x020021AD
+_0224E4B0: .word FUN_020021AC
thumb_func_start MOD06_0224E4B4
MOD06_0224E4B4: ; 0x0224E4B4
@@ -42822,11 +42822,11 @@ MOD06_0224E510: ; 0x0224E510
mov r3, #0xc
mul r3, r2
ldr r1, [r1, r3]
- ldr r3, _0224E51C ; =0x020270D9
+ ldr r3, _0224E51C ; =FUN_020270D8
mov r2, #1
bx r3
.align 2, 0
-_0224E51C: .word 0x020270D9
+_0224E51C: .word FUN_020270D8
thumb_func_start MOD06_0224E520
MOD06_0224E520: ; 0x0224E520
@@ -42884,7 +42884,7 @@ MOD06_0224E554: ; 0x0224E554
bl FUN_0204AAD4
ldr r1, [sp, #4]
add r0, sp, #8
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
add r3, sp, #8
ldmia r3!, {r0, r1}
add r2, r4, #0
@@ -42944,7 +42944,7 @@ _0224E5F8: ; jump table
_0224E604:
ldr r0, _0224E754 ; =0x00000205
ldr r1, [r6, #0x2c]
- bl FUN_021F4BD0
+ bl MOD05_021F4BD0
ldr r0, [r0]
bl FUN_020BC13C
ldrh r1, [r0, #0xe]
@@ -42952,7 +42952,7 @@ _0224E604:
ldr r1, [r1, #0xc]
add r5, r0, r1
ldr r0, [r6, #0x2c]
- bl FUN_021F4C88
+ bl MOD05_021F4C88
mov r1, #0
str r1, [sp]
str r5, [sp, #4]
@@ -42965,7 +42965,7 @@ _0224E604:
ldr r1, [r6, #0x50]
ldr r3, _0224E754 ; =0x00000205
mov r2, #0x10
- bl FUN_021DA464
+ bl MOD05_021DA464
ldrb r0, [r4, #0xf]
add r0, r0, #1
strb r0, [r4, #0xf]
@@ -43010,7 +43010,7 @@ _0224E644:
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r6, #0x2c]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
ldrb r1, [r4, #0xd]
add r1, r4, r1
strb r0, [r1, #0x10]
@@ -43020,13 +43020,13 @@ _0224E644:
add r1, r4, r1
ldrb r1, [r1, #0x10]
ldr r0, [r0]
- bl FUN_021E7EEC
- bl FUN_021E7EC8
+ bl MOD05_021E7EEC
+ bl MOD05_021E7EC8
add r3, r0, #0
ldrb r2, [r4, #0xd]
ldr r0, [r6, #0x50]
mov r1, #0x10
- bl FUN_021DA4BC
+ bl MOD05_021DA4BC
ldrb r0, [r4, #0xf]
add r0, r0, #1
strb r0, [r4, #0xf]
@@ -43060,7 +43060,7 @@ _0224E6F0:
ldr r0, [r6, #0x50]
mov r1, #0x10
mov r2, #0
- bl FUN_021DA4EC
+ bl MOD05_021DA4EC
ldrb r0, [r4, #0xf]
add r0, r0, #1
strb r0, [r4, #0xf]
@@ -43068,13 +43068,13 @@ _0224E6F0:
_0224E702:
ldr r0, [r6, #0x50]
mov r1, #0x10
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0
beq _0224E74C
ldr r0, [r6, #0x4c]
ldr r1, [r6, #0x50]
mov r2, #0x10
- bl FUN_021DA54C
+ bl MOD05_021DA54C
ldrb r0, [r4, #0xc]
mov r5, #0
cmp r0, #0
@@ -43085,7 +43085,7 @@ _0224E720:
add r1, #0xa0
ldrb r0, [r0, #0x10]
ldr r1, [r1]
- bl FUN_021E7C80
+ bl MOD05_021E7C80
add r0, r5, #1
lsl r0, r0, #0x18
lsr r5, r0, #0x18
@@ -43125,44 +43125,44 @@ MOD06_0224E764: ; 0x0224E764
ldr r2, [r4, #0x4c]
lsl r0, r0, #4
mov r1, #1
- bl FUN_021DA080
+ bl MOD05_021DA080
add r4, r0, #0
mov r1, #1
- bl FUN_021DA1A4
+ bl MOD05_021DA1A4
add r0, r4, #0
mov r1, #1
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
pop {r4, pc}
_0224E794:
mov r0, #0x1f
ldr r2, [r4, #0x4c]
lsl r0, r0, #4
mov r1, #0
- bl FUN_021DA080
+ bl MOD05_021DA080
mov r1, #1
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
mov r0, #0x1f
ldr r2, [r4, #0x4c]
lsl r0, r0, #4
mov r1, #1
- bl FUN_021DA080
+ bl MOD05_021DA080
add r4, r0, #0
- bl FUN_021DA138
+ bl MOD05_021DA138
add r0, r4, #0
mov r1, #1
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
pop {r4, pc}
.align 2, 0
thumb_func_start MOD06_0224E7C4
MOD06_0224E7C4: ; 0x0224E7C4
- ldr r3, _0224E7D0 ; =0x0204640D
+ ldr r3, _0224E7D0 ; =FUN_0204640C
ldr r0, [r0, #0x10]
ldr r1, _0224E7D4 ; =MOD06_0224E7D8
mov r2, #0
bx r3
nop
-_0224E7D0: .word 0x0204640D
+_0224E7D0: .word FUN_0204640C
_0224E7D4: .word MOD06_0224E7D8
thumb_func_start MOD06_0224E7D8
@@ -43187,14 +43187,14 @@ _0224E7FA:
ldr r2, [r5, #0x4c]
lsl r0, r0, #4
mov r1, #0
- bl FUN_021DA080
+ bl MOD05_021DA080
add r5, r0, #0
- bl FUN_021DA0E8
+ bl MOD05_021DA0E8
cmp r0, #0
beq _0224E852
add r0, r5, #0
mov r1, #1
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -43204,9 +43204,9 @@ _0224E820:
ldr r2, [r5, #0x4c]
lsl r0, r0, #4
mov r1, #1
- bl FUN_021DA080
+ bl MOD05_021DA080
mov r1, #0
- bl FUN_021DA0DC
+ bl MOD05_021DA0DC
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
@@ -43216,8 +43216,8 @@ _0224E83A:
ldr r2, [r5, #0x4c]
lsl r0, r0, #4
mov r1, #1
- bl FUN_021DA080
- bl FUN_021DA20C
+ bl MOD05_021DA080
+ bl MOD05_021DA20C
cmp r0, #0
beq _0224E852
mov r0, #1
@@ -43280,7 +43280,7 @@ _0224E8AC:
add r1, r1, r3
add r0, r7, #0
add r3, r4, r3
- bl FUN_021F54D0
+ bl MOD05_021F54D0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
@@ -43336,7 +43336,7 @@ _0224E914:
add r1, r1, r3
add r0, r7, #0
add r3, r4, r3
- bl FUN_021F54D0
+ bl MOD05_021F54D0
add sp, #0xc
pop {r4, r5, r6, r7, pc}
@@ -43351,7 +43351,7 @@ MOD06_0224E92C: ; 0x0224E92C
ldr r2, [sp, #4]
ldr r3, [sp, #8]
add r0, r4, #0
- bl FUN_021F54D0
+ bl MOD05_021F54D0
add sp, #0xc
pop {r3, r4, pc}
@@ -43372,11 +43372,11 @@ MOD06_0224E948: ; 0x0224E948
mov r1, #0x8d
add r2, r5, #0
mov r3, #4
- bl FUN_021F5268
+ bl MOD05_021F5268
add r1, r6, #0
add r0, r6, #0
add r1, #0x78
- bl FUN_021F5400
+ bl MOD05_021F5400
add r0, r6, #0
add r0, #0xd8
str r4, [r0]
@@ -43401,10 +43401,10 @@ _0224E994:
mov r2, #0x8d
add r3, r3, r4
str r7, [sp, #4]
- bl FUN_021F531C
+ bl MOD05_021F531C
add r0, r6, #0
add r1, r5, #0
- bl FUN_021F5424
+ bl MOD05_021F5424
add r0, r6, #0
add r0, #0xd8
ldr r0, [r0]
@@ -43423,7 +43423,7 @@ MOD06_0224E9C4: ; 0x0224E9C4
add r6, r0, #0
add r0, #0x78
add r7, r1, #0
- bl FUN_021F52C8
+ bl MOD05_021F52C8
add r0, r6, #0
add r0, #0xd8
ldr r0, [r0]
@@ -43435,7 +43435,7 @@ MOD06_0224E9C4: ; 0x0224E9C4
_0224E9E0:
add r0, r5, #0
add r1, r7, #0
- bl FUN_021F5358
+ bl MOD05_021F5358
add r0, r6, #0
add r0, #0xd8
ldr r0, [r0]
@@ -43462,7 +43462,7 @@ _0224EA0C:
mov r1, #1
add r0, r5, #0
lsl r1, r1, #0xc
- bl FUN_021F53BC
+ bl MOD05_021F53BC
and r6, r0
add r0, r7, #0
add r0, #0xd8
@@ -43492,7 +43492,7 @@ MOD06_0224EA2C: ; 0x0224EA2C
_0224EA42:
add r0, r5, #0
add r1, r7, #0
- bl FUN_021F5384
+ bl MOD05_021F5384
add r0, r6, #0
add r0, #0xd8
ldr r0, [r0]
@@ -43506,10 +43506,10 @@ _0224EA58:
thumb_func_start MOD06_0224EA5C
MOD06_0224EA5C: ; 0x0224EA5C
- ldr r3, _0224EA60 ; =0x021F5431
+ ldr r3, _0224EA60 ; =MOD05_021F5430
bx r3
.align 2, 0
-_0224EA60: .word 0x021F5431
+_0224EA60: .word MOD05_021F5430
thumb_func_start MOD06_0224EA64
MOD06_0224EA64: ; 0x0224EA64
@@ -43573,7 +43573,7 @@ _0224EACE:
bne _0224EAEC
add r0, r4, #0
mov r1, #0
- bl FUN_021F54CC
+ bl MOD05_021F54CC
add r0, r4, #0
add r0, #0xec
ldr r0, [r0]
@@ -43595,25 +43595,25 @@ _0224EAF8: .word MOD06_0224EA5C
thumb_func_start MOD06_0224EAFC
MOD06_0224EAFC: ; 0x0224EAFC
ldr r0, [r0, #4]
- ldr r3, _0224EB08 ; =0x021D8025
+ ldr r3, _0224EB08 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224EB0C ; =0x022521D4
bx r3
nop
-_0224EB08: .word 0x021D8025
+_0224EB08: .word MOD05_021D8024
_0224EB0C: .word 0x022521D4
thumb_func_start MOD06_0224EB10
MOD06_0224EB10: ; 0x0224EB10
- ldr r3, _0224EB14 ; =0x021D80A5
+ ldr r3, _0224EB14 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0224EB14: .word 0x021D80A5
+_0224EB14: .word MOD05_021D80A4
thumb_func_start MOD06_0224EB18
MOD06_0224EB18: ; 0x0224EB18
push {r3, lr}
- bl FUN_021D80E4
+ bl MOD05_021D80E4
add r0, #0xec
ldr r0, [r0]
cmp r0, #1
@@ -43722,7 +43722,7 @@ _0224EBE6:
bne _0224EC04
add r0, r4, #0
mov r1, #0
- bl FUN_021F54CC
+ bl MOD05_021F54CC
add r0, r4, #0
add r0, #0xec
ldr r0, [r0]
@@ -43744,36 +43744,36 @@ _0224EC10: .word MOD06_0224EA5C
thumb_func_start MOD06_0224EC14
MOD06_0224EC14: ; 0x0224EC14
ldr r0, [r0, #4]
- ldr r3, _0224EC20 ; =0x021D8025
+ ldr r3, _0224EC20 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224EC24 ; =0x0225218C
bx r3
nop
-_0224EC20: .word 0x021D8025
+_0224EC20: .word MOD05_021D8024
_0224EC24: .word 0x0225218C
thumb_func_start MOD06_0224EC28
MOD06_0224EC28: ; 0x0224EC28
ldr r0, [r0, #4]
- ldr r3, _0224EC34 ; =0x021D8025
+ ldr r3, _0224EC34 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224EC38 ; =0x022521A4
bx r3
nop
-_0224EC34: .word 0x021D8025
+_0224EC34: .word MOD05_021D8024
_0224EC38: .word 0x022521A4
thumb_func_start MOD06_0224EC3C
MOD06_0224EC3C: ; 0x0224EC3C
- ldr r3, _0224EC40 ; =0x021D80A5
+ ldr r3, _0224EC40 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0224EC40: .word 0x021D80A5
+_0224EC40: .word MOD05_021D80A4
thumb_func_start MOD06_0224EC44
MOD06_0224EC44: ; 0x0224EC44
push {r3, lr}
- bl FUN_021D80E4
+ bl MOD05_021D80E4
add r0, #0xec
ldr r0, [r0]
cmp r0, #1
@@ -43844,7 +43844,7 @@ _0224ECA8:
ldr r0, [sp, #8]
mov r1, #0
add r0, #0xdc
- bl FUN_021F54CC
+ bl MOD05_021F54CC
ldr r0, _0224ECF0 ; =0x0000064D
bl FUN_020054C8
mov r1, #0x72
@@ -43902,10 +43902,10 @@ _0224ED2A:
add r0, r4, #0
add r0, #0xdc
mov r1, #1
- bl FUN_021F54CC
+ bl MOD05_021F54CC
add r0, r4, #0
mov r1, #0
- bl FUN_021F54CC
+ bl MOD05_021F54CC
add r1, r4, #0
ldr r0, [r5, #0x38]
add r1, #0xdc
@@ -43949,20 +43949,20 @@ MOD06_0224ED84: ; 0x0224ED84
thumb_func_start MOD06_0224ED94
MOD06_0224ED94: ; 0x0224ED94
ldr r0, [r0, #4]
- ldr r3, _0224EDA0 ; =0x021D8025
+ ldr r3, _0224EDA0 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224EDA4 ; =0x022521BC
bx r3
nop
-_0224EDA0: .word 0x021D8025
+_0224EDA0: .word MOD05_021D8024
_0224EDA4: .word 0x022521BC
thumb_func_start MOD06_0224EDA8
MOD06_0224EDA8: ; 0x0224EDA8
- ldr r3, _0224EDAC ; =0x021D80A5
+ ldr r3, _0224EDAC ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0224EDAC: .word 0x021D80A5
+_0224EDAC: .word MOD05_021D80A4
thumb_func_start MOD06_0224EDB0
MOD06_0224EDB0: ; 0x0224EDB0
@@ -43987,7 +43987,7 @@ _0224EDC8:
add r0, r7, #0
add r2, r2, r4
add r3, r3, r5
- bl FUN_021F54D0
+ bl MOD05_021F54D0
add r0, r7, #0
mov r4, #0
add r5, r7, #0
@@ -43999,14 +43999,14 @@ _0224EDC8:
_0224EDF0:
add r0, r5, #0
add r1, r6, #0
- bl FUN_021F53F8
+ bl MOD05_021F53F8
add r4, r4, #1
add r5, #0x14
cmp r4, #4
blt _0224EDF0
add r0, r7, #0
mov r1, #1
- bl FUN_021F54CC
+ bl MOD05_021F54CC
ldr r0, _0224EE14 ; =0x00000627
bl FUN_020054C8
add sp, #0xc
@@ -44030,7 +44030,7 @@ MOD06_0224EE18: ; 0x0224EE18
_0224EE2E:
add r0, r5, #0
add r1, r7, #0
- bl FUN_021F53BC
+ bl MOD05_021F53BC
add r6, r6, #1
and r4, r0
add r5, #0x14
@@ -44043,7 +44043,7 @@ _0224EE2E:
add r0, #0xc8
str r1, [r0]
ldr r0, [sp]
- bl FUN_021F54CC
+ bl MOD05_021F54CC
_0224EE52:
pop {r3, r4, r5, r6, r7, pc}
@@ -44060,7 +44060,7 @@ MOD06_0224EE54: ; 0x0224EE54
bl Call_FillMemWithValue
ldr r1, [sp]
add r0, r7, #0
- bl FUN_021F5400
+ bl MOD05_021F5400
add r4, r7, #0
mov r6, #0
add r4, #0x78
@@ -44069,10 +44069,10 @@ _0224EE76:
ldr r2, [r5]
ldr r3, [sp, #4]
add r0, r4, #0
- bl FUN_021F5348
+ bl MOD05_021F5348
add r0, r7, #0
add r1, r4, #0
- bl FUN_021F5424
+ bl MOD05_021F5424
add r6, r6, #1
add r5, r5, #4
add r4, #0x14
@@ -44080,7 +44080,7 @@ _0224EE76:
blt _0224EE76
add r0, r7, #0
mov r1, #0
- bl FUN_021F54CC
+ bl MOD05_021F54CC
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
@@ -44095,7 +44095,7 @@ MOD06_0224EEA0: ; 0x0224EEA0
_0224EEAC:
add r0, r5, #0
add r1, r6, #0
- bl FUN_021F5358
+ bl MOD05_021F5358
add r4, r4, #1
add r5, #0x14
cmp r4, #4
@@ -44238,7 +44238,7 @@ MOD06_0224EF98: ; 0x0224EF98
mov r1, #0x8d
mov r2, #8
mov r3, #4
- bl FUN_021F5268
+ bl MOD05_021F5268
mov r7, #0xcd
mov r4, #0
add r6, r5, #0
@@ -44307,7 +44307,7 @@ _0224F038:
cmp r6, #0x10
blt _0224F038
add r0, r5, #0
- bl FUN_021F52C8
+ bl MOD05_021F52C8
mov r6, #0xcd
mov r4, #0
lsl r6, r6, #4
@@ -44363,7 +44363,7 @@ MOD06_0224F0A4: ; 0x0224F0A4
add r5, #0x10
_0224F0AC:
add r0, r5, #0
- bl FUN_021F5430
+ bl MOD05_021F5430
add r4, r4, #1
add r5, #0xcc
cmp r4, #0x10
@@ -44373,20 +44373,20 @@ _0224F0AC:
thumb_func_start MOD06_0224F0BC
MOD06_0224F0BC: ; 0x0224F0BC
ldr r0, [r0, #4]
- ldr r3, _0224F0C8 ; =0x021D8025
+ ldr r3, _0224F0C8 ; =MOD05_021D8024
ldr r0, [r0, #4]
ldr r1, _0224F0CC ; =0x022521EC
bx r3
nop
-_0224F0C8: .word 0x021D8025
+_0224F0C8: .word MOD05_021D8024
_0224F0CC: .word 0x022521EC
thumb_func_start MOD06_0224F0D0
MOD06_0224F0D0: ; 0x0224F0D0
- ldr r3, _0224F0D4 ; =0x021D80A5
+ ldr r3, _0224F0D4 ; =MOD05_021D80A4
bx r3
.align 2, 0
-_0224F0D4: .word 0x021D80A5
+_0224F0D4: .word MOD05_021D80A4
thumb_func_start MOD06_0224F0D8
MOD06_0224F0D8: ; 0x0224F0D8
@@ -44468,9 +44468,13 @@ _0224F144:
_0224F16C: .word 0x02252210
_0224F170: .word MOD06_0224F0D8
- .section .data
+ .section .rodata
; 0x0224F174
- .incbin "baserom.nds", 0x1810D4, 0x32AC
+ .incbin "baserom.nds", 0x1810D4, 0x30B4
+
+ .section .data
+ ; 0x022252240
+ .incbin "baserom.nds", 0x1841a0, 0x1e0
.section .bss
; 0x02252420
diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s
index 39869410..e71b9bfe 100644
--- a/arm9/modules/07/asm/module_07.s
+++ b/arm9/modules/07/asm/module_07.s
@@ -7,7 +7,7 @@
MOD07_02211E60: ; 0x02211E60
push {r3, r4, r5, lr}
add r5, r0, #0
- ldr r0, _02211E88 ; =FUN_02211E94
+ ldr r0, _02211E88 ; =MOD07_02211E94
ldr r1, _02211E8C ; =0x00000B84
ldr r3, [r5, #0x24]
mov r2, #0x64
@@ -23,12 +23,12 @@ MOD07_02211E60: ; 0x02211E60
strb r1, [r4, r0]
pop {r3, r4, r5, pc}
.align 2, 0
-_02211E88: .word FUN_02211E94
+_02211E88: .word MOD07_02211E94
_02211E8C: .word 0x00000B84
_02211E90: .word 0x00000B7F
- thumb_func_start FUN_02211E94
-FUN_02211E94: ; 0x02211E94
+ thumb_func_start MOD07_02211E94
+MOD07_02211E94: ; 0x02211E94
push {r4, r5, r6, lr}
ldr r2, _02211F0C ; =0x00000B7F
add r5, r1, #0
@@ -42,7 +42,7 @@ FUN_02211E94: ; 0x02211E94
b _02211EE0
_02211EAA:
add r0, r5, #0
- bl FUN_02211F34
+ bl MOD07_02211F34
ldr r1, _02211F0C ; =0x00000B7F
strb r0, [r5, r1]
b _02211EE0
@@ -67,7 +67,7 @@ _02211ED2:
beq _02211EBC
b _02211EE0
_02211ED8:
- bl FUN_02212B64
+ bl MOD07_02212B64
cmp r0, #1
beq _02211F0A
_02211EE0:
@@ -77,7 +77,7 @@ _02211EE0:
cmp r0, #0
beq _02211EFA
add r0, r5, #0
- bl FUN_02212D30
+ bl MOD07_02212D30
mov r0, #0x65
lsl r0, r0, #2
ldr r0, [r5, r0]
@@ -97,8 +97,8 @@ _02211F0A:
_02211F0C: .word 0x00000B7F
_02211F10: .word 0x04000540
- thumb_func_start FUN_02211F14
-FUN_02211F14: ; 0x02211F14
+ thumb_func_start MOD07_02211F14
+MOD07_02211F14: ; 0x02211F14
push {r4, lr}
sub sp, #0x28
ldr r4, _02211F30 ; =0x02214AD8
@@ -116,8 +116,8 @@ _02211F1E:
.align 2, 0
_02211F30: .word 0x02214AD8
- thumb_func_start FUN_02211F34
-FUN_02211F34: ; 0x02211F34
+ thumb_func_start MOD07_02211F34
+MOD07_02211F34: ; 0x02211F34
push {r4, lr}
ldr r1, _02211FE0 ; =0x04000050
add r4, r0, #0
@@ -143,7 +143,7 @@ FUN_02211F34: ; 0x02211F34
strh r1, [r0]
add r3, #0x50
strh r1, [r3]
- bl FUN_02211F14
+ bl MOD07_02211F14
ldr r0, [r4]
ldr r0, [r0, #0x24]
bl FUN_02016B94
@@ -196,7 +196,7 @@ _02211FD0:
_02211FD2:
str r0, [r4, #4]
ldr r0, [r4]
- bl FUN_02214720
+ bl MOD07_02214720
_02211FDA:
mov r0, #1
pop {r4, pc}
@@ -210,8 +210,8 @@ _02211FF4: .word 0x022149B4
_02211FF8: .word 0x02214B00
_02211FFC: .word 0x02214B64
- thumb_func_start FUN_02212000
-FUN_02212000: ; 0x02212000
+ thumb_func_start MOD07_02212000
+MOD07_02212000: ; 0x02212000
push {r4, lr}
ldr r1, _02212074 ; =0x00000B82
add r4, r0, #0
@@ -224,14 +224,14 @@ FUN_02212000: ; 0x02212000
beq _0221202E
b _02212068
_02212016:
- bl FUN_02213858
+ bl MOD07_02213858
add r0, r4, #0
- bl FUN_02213924
+ bl MOD07_02213924
b _02212068
_02212022:
- bl FUN_02213D30
+ bl MOD07_02213D30
add r0, r4, #0
- bl FUN_02213F28
+ bl MOD07_02213F28
b _02212068
_0221202E:
mov r2, #0
@@ -239,19 +239,19 @@ _0221202E:
mov r2, #0x20
sub r1, r1, #1
strb r2, [r4, r1]
- bl FUN_022139BC
+ bl MOD07_022139BC
add r0, r4, #0
- bl FUN_0221424C
+ bl MOD07_0221424C
add r0, r4, #0
- bl FUN_0221469C
+ bl MOD07_0221469C
add r0, r4, #0
- bl FUN_02213AEC
+ bl MOD07_02213AEC
bl FUN_02033E74
ldr r1, [r4]
mov r0, #0
ldr r1, [r1, #0x24]
bl FUN_02079A70
- ldr r0, _02212078 ; =FUN_02212D68
+ ldr r0, _02212078 ; =MOD07_02212D68
add r1, r4, #0
bl FUN_02015F10
mov r0, #1
@@ -265,10 +265,10 @@ _02212068:
pop {r4, pc}
.align 2, 0
_02212074: .word 0x00000B82
-_02212078: .word FUN_02212D68
+_02212078: .word MOD07_02212D68
- thumb_func_start FUN_0221207C
-FUN_0221207C: ; 0x0221207C
+ thumb_func_start MOD07_0221207C
+MOD07_0221207C: ; 0x0221207C
push {r4, lr}
ldr r1, _022120F4 ; =0x00000B82
add r4, r0, #0
@@ -281,25 +281,25 @@ FUN_0221207C: ; 0x0221207C
beq _022120B8
b _022120E6
_02212092:
- bl FUN_02212D98
+ bl MOD07_02212D98
add r0, r4, #0
- bl FUN_02212E90
- bl FUN_02212F2C
+ bl MOD07_02212E90
+ bl MOD07_02212F2C
b _022120E6
_022120A2:
- bl FUN_022133B4
+ bl MOD07_022133B4
add r0, r4, #0
- bl FUN_02212F44
+ bl MOD07_02212F44
bl FUN_02033E74
add r0, r4, #0
- bl FUN_022136B4
+ bl MOD07_022136B4
b _022120E6
_022120B8:
ldr r1, [r4]
mov r0, #0
ldr r1, [r1, #0x24]
bl FUN_02079A70
- ldr r0, _022120F8 ; =FUN_02212D68
+ ldr r0, _022120F8 ; =MOD07_02212D68
add r1, r4, #0
bl FUN_02015F10
ldr r1, _022120F4 ; =0x00000B82
@@ -325,10 +325,10 @@ _022120E6:
pop {r4, pc}
nop
_022120F4: .word 0x00000B82
-_022120F8: .word FUN_02212D68
+_022120F8: .word MOD07_02212D68
- thumb_func_start FUN_022120FC
-FUN_022120FC: ; 0x022120FC
+ thumb_func_start MOD07_022120FC
+MOD07_022120FC: ; 0x022120FC
push {r4, lr}
ldr r1, _0221216C ; =0x00000B82
add r4, r0, #0
@@ -341,15 +341,15 @@ FUN_022120FC: ; 0x022120FC
beq _02212132
b _02212160
_02212112:
- bl FUN_02212D98
+ bl MOD07_02212D98
add r0, r4, #0
- bl FUN_02212E90
- bl FUN_02212F2C
+ bl MOD07_02212E90
+ bl MOD07_02212F2C
b _02212160
_02212122:
- bl FUN_022133B4
+ bl MOD07_022133B4
add r0, r4, #0
- bl FUN_02213484
+ bl MOD07_02213484
bl FUN_02033E74
b _02212160
_02212132:
@@ -357,7 +357,7 @@ _02212132:
mov r0, #0
ldr r1, [r1, #0x24]
bl FUN_02079A70
- ldr r0, _02212170 ; =FUN_02212D68
+ ldr r0, _02212170 ; =MOD07_02212D68
add r1, r4, #0
bl FUN_02015F10
ldr r1, _0221216C ; =0x00000B82
@@ -383,10 +383,10 @@ _02212160:
pop {r4, pc}
.align 2, 0
_0221216C: .word 0x00000B82
-_02212170: .word FUN_02212D68
+_02212170: .word MOD07_02212D68
- thumb_func_start FUN_02212174
-FUN_02212174: ; 0x02212174
+ thumb_func_start MOD07_02212174
+MOD07_02212174: ; 0x02212174
push {r4, lr}
add r4, r0, #0
bl FUN_0200E308
@@ -417,8 +417,8 @@ _0221219A:
.align 2, 0
_022121A8: .word 0x00000B81
- thumb_func_start FUN_022121AC
-FUN_022121AC: ; 0x022121AC
+ thumb_func_start MOD07_022121AC
+MOD07_022121AC: ; 0x022121AC
push {r3, r4, r5, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
@@ -448,42 +448,42 @@ FUN_022121AC: ; 0x022121AC
add r0, r4, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r2, #0
add r0, r4, #0
mov r1, #1
add r3, r2, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r2, #0
add r0, r4, #0
mov r1, #2
add r3, r2, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r2, #0
add r0, r4, #0
mov r1, #3
add r3, r2, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r1, #0
add r0, r4, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r2, #0
add r0, r4, #0
mov r1, #1
add r3, r2, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r2, #0
add r0, r4, #0
mov r1, #2
add r3, r2, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r2, #0
add r0, r4, #0
mov r1, #3
add r3, r2, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r0, #1
pop {r3, r4, r5, pc}
_02212248:
@@ -517,7 +517,7 @@ _02212248:
lsl r2, r2, #0x10
asr r2, r2, #0x10
add r3, r1, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212374 ; =0x00000B74
mov r1, #1
ldr r3, [r4, r2]
@@ -532,7 +532,7 @@ _02212248:
sub r2, r5, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212374 ; =0x00000B74
mov r1, #2
ldr r3, [r4, r2]
@@ -547,7 +547,7 @@ _02212248:
sub r2, r2, r5
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212374 ; =0x00000B74
mov r1, #3
ldr r3, [r4, r2]
@@ -562,7 +562,7 @@ _02212248:
sub r2, r2, r5
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212374 ; =0x00000B74
mov r1, #0
ldr r3, [r4, r2]
@@ -577,7 +577,7 @@ _02212248:
sub r2, r5, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _02212374 ; =0x00000B74
mov r1, #1
ldr r3, [r4, r2]
@@ -592,7 +592,7 @@ _02212248:
sub r2, r5, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _02212374 ; =0x00000B74
mov r1, #2
ldr r3, [r4, r2]
@@ -607,7 +607,7 @@ _02212248:
sub r2, r2, r5
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _02212374 ; =0x00000B74
add r0, r4, #0
ldr r3, [r4, r2]
@@ -622,18 +622,18 @@ _02212248:
lsl r2, r2, #0x10
asr r2, r2, #0x10
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r0, #0
pop {r3, r4, r5, pc}
.align 2, 0
_02212370: .word 0x00000B82
_02212374: .word 0x00000B74
- thumb_func_start FUN_02212378
-FUN_02212378: ; 0x02212378
+ thumb_func_start MOD07_02212378
+MOD07_02212378: ; 0x02212378
push {r4, r5, r6, lr}
add r5, r0, #0
- bl FUN_022137A4
+ bl MOD07_022137A4
cmp r0, #0
bne _02212394
ldr r0, _02212574 ; =0x00000B82
@@ -690,42 +690,42 @@ _022123B4:
add r0, r5, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r2, #0
add r0, r5, #0
mov r1, #1
add r3, r2, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r2, #0
add r0, r5, #0
mov r1, #2
add r3, r2, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r2, #0
add r0, r5, #0
mov r1, #3
add r3, r2, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r1, #0
add r0, r5, #0
add r2, r1, #0
add r3, r1, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r2, #0
add r0, r5, #0
mov r1, #1
add r3, r2, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r2, #0
add r0, r5, #0
mov r1, #2
add r3, r2, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r2, #0
add r0, r5, #0
mov r1, #3
add r3, r2, #0
- bl FUN_02213354
+ bl MOD07_02213354
b _02212568
_02212450:
blo _02212454
@@ -819,42 +819,42 @@ _022124CC:
mov r1, #0
add r2, r6, #0
add r3, r4, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
add r0, r5, #0
mov r1, #1
add r2, r6, #0
add r3, r4, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
add r0, r5, #0
mov r1, #2
add r2, r6, #0
add r3, r4, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
add r0, r5, #0
mov r1, #3
add r2, r6, #0
add r3, r4, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
add r0, r5, #0
mov r1, #0
add r2, r6, #0
add r3, r4, #0
- bl FUN_02213354
+ bl MOD07_02213354
add r0, r5, #0
mov r1, #1
add r2, r6, #0
add r3, r4, #0
- bl FUN_02213354
+ bl MOD07_02213354
add r0, r5, #0
mov r1, #2
add r2, r6, #0
add r3, r4, #0
- bl FUN_02213354
+ bl MOD07_02213354
add r0, r5, #0
mov r1, #3
add r2, r6, #0
add r3, r4, #0
- bl FUN_02213354
+ bl MOD07_02213354
ldr r0, _02212584 ; =0x00000B78
strh r6, [r5, r0]
add r0, r0, #2
@@ -874,8 +874,8 @@ _02212580: .word 0x00000B7D
_02212584: .word 0x00000B78
_02212588: .word 0x00000B7A
- thumb_func_start FUN_0221258C
-FUN_0221258C: ; 0x0221258C
+ thumb_func_start MOD07_0221258C
+MOD07_0221258C: ; 0x0221258C
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
@@ -939,7 +939,7 @@ _022125DE:
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _022126A4 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -949,7 +949,7 @@ _022125DE:
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _022126A4 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -957,7 +957,7 @@ _022125DE:
mov r3, #0
lsl r2, r2, #0x14
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _022126A4 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -965,7 +965,7 @@ _022125DE:
mov r3, #0
lsl r2, r2, #0x14
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _022126A4 ; =0x00000B82
mov r1, #0
ldrb r2, [r4, r2]
@@ -975,7 +975,7 @@ _022125DE:
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _022126A4 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -985,7 +985,7 @@ _022125DE:
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _022126A4 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -993,7 +993,7 @@ _022125DE:
mov r3, #0
lsl r2, r2, #0x14
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _022126A4 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1001,7 +1001,7 @@ _022125DE:
mov r3, #0
lsl r2, r2, #0x14
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
mov r0, #0
add sp, #0xc
pop {r3, r4, pc}
@@ -1011,8 +1011,8 @@ _022126A8: .word 0x00007FFF
_022126AC: .word 0x00000B7F
_022126B0: .word 0x00000719
- thumb_func_start FUN_022126B4
-FUN_022126B4: ; 0x022126B4
+ thumb_func_start MOD07_022126B4
+MOD07_022126B4: ; 0x022126B4
ldr r1, _022126C0 ; =0x00000B81
mov r2, #0x10
strb r2, [r0, r1]
@@ -1021,11 +1021,11 @@ FUN_022126B4: ; 0x022126B4
nop
_022126C0: .word 0x00000B81
- thumb_func_start FUN_022126C4
-FUN_022126C4: ; 0x022126C4
+ thumb_func_start MOD07_022126C4
+MOD07_022126C4: ; 0x022126C4
push {r4, lr}
add r4, r0, #0
- bl FUN_02212BD4
+ bl MOD07_02212BD4
cmp r0, #1
ldr r0, [r4]
bne _022126E8
@@ -1059,23 +1059,23 @@ _022126FC:
.align 2, 0
_02212700: .word 0x00000B7E
- thumb_func_start FUN_02212704
-FUN_02212704: ; 0x02212704
+ thumb_func_start MOD07_02212704
+MOD07_02212704: ; 0x02212704
push {r3, lr}
ldr r1, _0221271C ; =0x00000B7E
ldrb r1, [r0, r1]
cmp r1, #0
bne _02212714
- bl FUN_02212720
+ bl MOD07_02212720
pop {r3, pc}
_02212714:
- bl FUN_02212824
+ bl MOD07_02212824
pop {r3, pc}
nop
_0221271C: .word 0x00000B7E
- thumb_func_start FUN_02212720
-FUN_02212720: ; 0x02212720
+ thumb_func_start MOD07_02212720
+MOD07_02212720: ; 0x02212720
push {r3, r4, r5, lr}
ldr r3, _02212814 ; =0x00000B82
add r4, r0, #0
@@ -1104,7 +1104,7 @@ FUN_02212720: ; 0x02212720
ldr r2, _0221281C ; =0x02214961
ldrb r2, [r2, r3]
add r3, r1, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212814 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1113,7 +1113,7 @@ FUN_02212720: ; 0x02212720
ldr r2, _0221281C ; =0x02214961
ldrb r2, [r2, r3]
mov r3, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212814 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1122,7 +1122,7 @@ FUN_02212720: ; 0x02212720
ldr r2, _0221281C ; =0x02214961
ldrb r2, [r2, r3]
mov r3, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212814 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1131,7 +1131,7 @@ FUN_02212720: ; 0x02212720
ldr r2, _0221281C ; =0x02214961
ldrb r2, [r2, r3]
mov r3, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212814 ; =0x00000B82
mov r1, #0
ldrb r2, [r4, r2]
@@ -1140,7 +1140,7 @@ FUN_02212720: ; 0x02212720
ldr r2, _0221281C ; =0x02214961
ldrb r2, [r2, r3]
add r3, r1, #0
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _02212814 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1149,7 +1149,7 @@ FUN_02212720: ; 0x02212720
ldr r2, _0221281C ; =0x02214961
ldrb r2, [r2, r3]
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _02212814 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1158,7 +1158,7 @@ FUN_02212720: ; 0x02212720
ldr r2, _0221281C ; =0x02214961
ldrb r2, [r2, r3]
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _02212814 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1167,7 +1167,7 @@ FUN_02212720: ; 0x02212720
ldr r2, _0221281C ; =0x02214961
ldrb r2, [r2, r3]
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
ldr r0, _02212814 ; =0x00000B82
ldrb r0, [r4, r0]
cmp r0, #0
@@ -1194,8 +1194,8 @@ _02212818: .word 0x02214960
_0221281C: .word 0x02214961
_02212820: .word 0x00000853
- thumb_func_start FUN_02212824
-FUN_02212824: ; 0x02212824
+ thumb_func_start MOD07_02212824
+MOD07_02212824: ; 0x02212824
push {r3, r4, r5, lr}
ldr r3, _02212948 ; =0x00000B82
add r4, r0, #0
@@ -1227,7 +1227,7 @@ FUN_02212824: ; 0x02212824
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212948 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1239,7 +1239,7 @@ FUN_02212824: ; 0x02212824
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212948 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1251,7 +1251,7 @@ FUN_02212824: ; 0x02212824
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212948 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1263,7 +1263,7 @@ FUN_02212824: ; 0x02212824
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_0221309C
+ bl MOD07_0221309C
ldr r2, _02212948 ; =0x00000B82
mov r1, #0
ldrb r2, [r4, r2]
@@ -1275,7 +1275,7 @@ FUN_02212824: ; 0x02212824
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _02212948 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1287,7 +1287,7 @@ FUN_02212824: ; 0x02212824
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _02212948 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1299,7 +1299,7 @@ FUN_02212824: ; 0x02212824
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r2, _02212948 ; =0x00000B82
add r0, r4, #0
ldrb r2, [r4, r2]
@@ -1311,7 +1311,7 @@ FUN_02212824: ; 0x02212824
neg r2, r2
lsl r2, r2, #0x10
asr r2, r2, #0x10
- bl FUN_02213354
+ bl MOD07_02213354
ldr r0, _02212948 ; =0x00000B82
ldrb r0, [r4, r0]
cmp r0, #0
@@ -1338,8 +1338,8 @@ _0221294C: .word 0x02214960
_02212950: .word 0x02214961
_02212954: .word 0x00000853
- thumb_func_start FUN_02212958
-FUN_02212958: ; 0x02212958
+ thumb_func_start MOD07_02212958
+MOD07_02212958: ; 0x02212958
ldr r1, _02212964 ; =0x00000B81
mov r2, #0x10
strb r2, [r0, r1]
@@ -1348,8 +1348,8 @@ FUN_02212958: ; 0x02212958
nop
_02212964: .word 0x00000B81
- thumb_func_start FUN_02212968
-FUN_02212968: ; 0x02212968
+ thumb_func_start MOD07_02212968
+MOD07_02212968: ; 0x02212968
push {r4, r5, r6, lr}
add r4, r0, #0
ldr r0, _022129F0 ; =0x00000B82
@@ -1424,8 +1424,8 @@ _022129F0: .word 0x00000B82
_022129F4: .word 0xFFFF1FFF
_022129F8: .word 0x04000040
- thumb_func_start FUN_022129FC
-FUN_022129FC: ; 0x022129FC
+ thumb_func_start MOD07_022129FC
+MOD07_022129FC: ; 0x022129FC
push {r4, lr}
add r4, r0, #0
ldr r0, _02212A34 ; =0x0000071A
@@ -1454,8 +1454,8 @@ FUN_022129FC: ; 0x022129FC
_02212A34: .word 0x0000071A
_02212A38: .word 0x00000B81
- thumb_func_start FUN_02212A3C
-FUN_02212A3C: ; 0x02212A3C
+ thumb_func_start MOD07_02212A3C
+MOD07_02212A3C: ; 0x02212A3C
push {r4, lr}
add r4, r0, #0
ldr r0, _02212A5C ; =0x0000071A
@@ -1474,12 +1474,12 @@ FUN_02212A3C: ; 0x02212A3C
_02212A5C: .word 0x0000071A
_02212A60: .word 0x00000B81
- thumb_func_start FUN_02212A64
-FUN_02212A64: ; 0x02212A64
+ thumb_func_start MOD07_02212A64
+MOD07_02212A64: ; 0x02212A64
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
- bl FUN_02212BD4
+ bl MOD07_02212BD4
cmp r0, #1
ldr r0, [r4]
bne _02212AA8
@@ -1546,8 +1546,8 @@ _02212ADA:
_02212AEC: .word 0x0000071B
_02212AF0: .word 0x00000B81
- thumb_func_start FUN_02212AF4
-FUN_02212AF4: ; 0x02212AF4
+ thumb_func_start MOD07_02212AF4
+MOD07_02212AF4: ; 0x02212AF4
push {r4, lr}
add r4, r0, #0
ldr r0, _02212B40 ; =0x00000B82
@@ -1577,19 +1577,19 @@ _02212B1C:
sub r1, r1, r2
lsl r1, r1, #0x10
asr r1, r1, #0x10
- bl FUN_022141CC
+ bl MOD07_022141CC
ldr r1, _02212B40 ; =0x00000B82
add r0, r4, #0
ldrb r1, [r4, r1]
- bl FUN_02213B20
+ bl MOD07_02213B20
mov r0, #0
pop {r4, pc}
nop
_02212B40: .word 0x00000B82
_02212B44: .word 0x00000719
- thumb_func_start FUN_02212B48
-FUN_02212B48: ; 0x02212B48
+ thumb_func_start MOD07_02212B48
+MOD07_02212B48: ; 0x02212B48
push {r4, lr}
add r4, r0, #0
ldr r1, [r4]
@@ -1604,8 +1604,8 @@ FUN_02212B48: ; 0x02212B48
.align 2, 0
_02212B60: .word 0x00000B7F
- thumb_func_start FUN_02212B64
-FUN_02212B64: ; 0x02212B64
+ thumb_func_start MOD07_02212B64
+MOD07_02212B64: ; 0x02212B64
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
@@ -1624,20 +1624,20 @@ _02212B76:
cmp r0, #0
beq _02212B9C
add r0, r4, #0
- bl FUN_02212E64
+ bl MOD07_02212E64
add r0, r4, #0
- bl FUN_022137DC
+ bl MOD07_022137DC
add r0, r4, #0
- bl FUN_02213380
+ bl MOD07_02213380
b _02212BA8
_02212B9C:
add r0, r4, #0
- bl FUN_022138F8
+ bl MOD07_022138F8
add r0, r4, #0
- bl FUN_02214274
+ bl MOD07_02214274
_02212BA8:
add r0, r4, #0
- bl FUN_02212CEC
+ bl MOD07_02212CEC
bl FUN_0201C29C
ldr r0, [r4, #8]
mov r1, #0
@@ -1654,8 +1654,8 @@ _02212BA8:
pop {r3, r4, r5, pc}
.align 2, 0
- thumb_func_start FUN_02212BD4
-FUN_02212BD4: ; 0x02212BD4
+ thumb_func_start MOD07_02212BD4
+MOD07_02212BD4: ; 0x02212BD4
push {r3, lr}
bl FUN_02031190
bl FUN_020313CC
@@ -1683,8 +1683,8 @@ _02212BFE:
pop {r3, pc}
.align 2, 0
- thumb_func_start FUN_02212C04
-FUN_02212C04: ; 0x02212C04
+ thumb_func_start MOD07_02212C04
+MOD07_02212C04: ; 0x02212C04
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x38
add r5, r0, #0
@@ -1757,8 +1757,8 @@ FUN_02212C04: ; 0x02212C04
_02212C9C: .word 0x02214AB8
_02212CA0: .word 0x0221498C
- thumb_func_start FUN_02212CA4
-FUN_02212CA4: ; 0x02212CA4
+ thumb_func_start MOD07_02212CA4
+MOD07_02212CA4: ; 0x02212CA4
push {lr}
sub sp, #0x34
add r2, r0, #0
@@ -1795,8 +1795,8 @@ FUN_02212CA4: ; 0x02212CA4
add sp, #0x34
pop {pc}
- thumb_func_start FUN_02212CEC
-FUN_02212CEC: ; 0x02212CEC
+ thumb_func_start MOD07_02212CEC
+MOD07_02212CEC: ; 0x02212CEC
push {r3, r4, r5, r6, r7, lr}
add r6, r0, #0
mov r0, #0x21
@@ -1831,8 +1831,8 @@ _02212D16:
bl FUN_0200BD04
pop {r3, r4, r5, r6, r7, pc}
- thumb_func_start FUN_02212D30
-FUN_02212D30: ; 0x02212D30
+ thumb_func_start MOD07_02212D30
+MOD07_02212D30: ; 0x02212D30
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0x21
@@ -1863,8 +1863,8 @@ _02212D64:
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
- thumb_func_start FUN_02212D68
-FUN_02212D68: ; 0x02212D68
+ thumb_func_start MOD07_02212D68
+MOD07_02212D68: ; 0x02212D68
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
@@ -1884,8 +1884,8 @@ FUN_02212D68: ; 0x02212D68
_02212D90: .word 0x027E0000
_02212D94: .word 0x00003FF8
- thumb_func_start FUN_02212D98
-FUN_02212D98: ; 0x02212D98
+ thumb_func_start MOD07_02212D98
+MOD07_02212D98: ; 0x02212D98
push {r4, r5, lr}
sub sp, #0x64
ldr r5, _02212E54 ; =0x0221496C
@@ -1975,8 +1975,8 @@ _02212E58: .word 0x02214A2C
_02212E5C: .word 0x02214A48
_02212E60: .word 0x02214A64
- thumb_func_start FUN_02212E64
-FUN_02212E64: ; 0x02212E64
+ thumb_func_start MOD07_02212E64
+MOD07_02212E64: ; 0x02212E64
push {r4, lr}
add r4, r0, #0
mov r0, #0x1f
@@ -1995,8 +1995,8 @@ FUN_02212E64: ; 0x02212E64
bl FUN_02016A18
pop {r4, pc}
- thumb_func_start FUN_02212E90
-FUN_02212E90: ; 0x02212E90
+ thumb_func_start MOD07_02212E90
+MOD07_02212E90: ; 0x02212E90
push {r4, lr}
sub sp, #0x10
mov r1, #0
@@ -2069,8 +2069,8 @@ FUN_02212E90: ; 0x02212E90
.align 2, 0
_02212F28: .word 0x000018C6
- thumb_func_start FUN_02212F2C
-FUN_02212F2C: ; 0x02212F2C
+ thumb_func_start MOD07_02212F2C
+MOD07_02212F2C: ; 0x02212F2C
push {r3, lr}
mov r0, #8
str r0, [sp]
@@ -2083,8 +2083,8 @@ FUN_02212F2C: ; 0x02212F2C
.align 2, 0
_02212F40: .word 0x04000050
- thumb_func_start FUN_02212F44
-FUN_02212F44: ; 0x02212F44
+ thumb_func_start MOD07_02212F44
+MOD07_02212F44: ; 0x02212F44
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
ldr r4, _02213014 ; =0x022149E0
@@ -2100,16 +2100,16 @@ FUN_02212F44: ; 0x02212F44
add r1, r2, #0
add r0, r6, #0
mov r2, #0x15
- bl FUN_02212C04
+ bl MOD07_02212C04
add r0, r6, #0
- bl FUN_0221301C
+ bl MOD07_0221301C
ldr r4, _02213018 ; =0x02214C64
mov r7, #0
add r5, r6, #0
_02212F72:
add r0, r6, #0
add r1, r4, #0
- bl FUN_02212CA4
+ bl MOD07_02212CA4
mov r1, #0x66
lsl r1, r1, #2
str r0, [r5, r1]
@@ -2123,65 +2123,65 @@ _02212F72:
add r0, r6, #0
mvn r2, r2
add r3, r1, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r2, #0xff
add r0, r6, #0
mov r1, #1
mvn r2, r2
mov r3, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r1, #2
add r2, r1, #0
add r0, r6, #0
add r2, #0xfe
mov r3, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r1, #3
add r2, r1, #0
add r0, r6, #0
add r2, #0xfd
mov r3, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
add r0, r6, #0
- bl FUN_022131C0
+ bl MOD07_022131C0
mov r0, #0x21
mov r1, #0xc
lsl r0, r0, #4
str r1, [r6, r0]
add r0, r6, #0
- bl FUN_022132CC
+ bl MOD07_022132CC
mov r1, #0
mov r2, #0xff
add r0, r6, #0
mvn r2, r2
add r3, r1, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r2, #0xff
add r0, r6, #0
mov r1, #1
mvn r2, r2
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r1, #2
add r2, r1, #0
add r0, r6, #0
add r2, #0xfe
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r1, #3
add r2, r1, #0
add r0, r6, #0
add r2, #0xfd
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
nop
_02213014: .word 0x022149E0
_02213018: .word 0x02214C64
- thumb_func_start FUN_0221301C
-FUN_0221301C: ; 0x0221301C
+ thumb_func_start MOD07_0221301C
+MOD07_0221301C: ; 0x0221301C
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
@@ -2243,8 +2243,8 @@ FUN_0221301C: ; 0x0221301C
.align 2, 0
_02213098: .word 0x0000B807
- thumb_func_start FUN_0221309C
-FUN_0221309C: ; 0x0221309C
+ thumb_func_start MOD07_0221309C
+MOD07_0221309C: ; 0x0221309C
push {r4, r5, r6, r7, lr}
sub sp, #0xc
ldr r4, _022130F8 ; =0x02214950
@@ -2296,8 +2296,8 @@ _022130F8: .word 0x02214950
_022130FC: .word 0x00000B64
_02213100: .word 0x00000B68
- thumb_func_start FUN_02213104
-FUN_02213104: ; 0x02213104
+ thumb_func_start MOD07_02213104
+MOD07_02213104: ; 0x02213104
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r6, r0, #0
@@ -2390,8 +2390,8 @@ _022131BC:
add sp, #0xc
pop {r4, r5, r6, r7, pc}
- thumb_func_start FUN_022131C0
-FUN_022131C0: ; 0x022131C0
+ thumb_func_start MOD07_022131C0
+MOD07_022131C0: ; 0x022131C0
push {r4, lr}
add r4, r0, #0
ldr r2, [r4]
@@ -2403,41 +2403,41 @@ FUN_022131C0: ; 0x022131C0
bne _022131EA
mov r2, #6
mov r3, #0
- bl FUN_02213104
+ bl MOD07_02213104
ldr r1, [r4]
mov r2, #6
ldr r1, [r1, #8]
add r0, r4, #0
add r3, r2, #0
- bl FUN_02213104
+ bl MOD07_02213104
pop {r4, pc}
_022131EA:
mov r2, #3
mov r3, #0
- bl FUN_02213104
+ bl MOD07_02213104
ldr r1, [r4]
mov r2, #3
ldr r1, [r1, #0xc]
add r0, r4, #0
add r3, r2, #0
- bl FUN_02213104
+ bl MOD07_02213104
ldr r1, [r4]
add r0, r4, #0
ldr r1, [r1, #8]
mov r2, #3
mov r3, #6
- bl FUN_02213104
+ bl MOD07_02213104
ldr r1, [r4]
add r0, r4, #0
ldr r1, [r1, #0x10]
mov r2, #3
mov r3, #9
- bl FUN_02213104
+ bl MOD07_02213104
pop {r4, pc}
.align 2, 0
- thumb_func_start FUN_02213220
-FUN_02213220: ; 0x02213220
+ thumb_func_start MOD07_02213220
+MOD07_02213220: ; 0x02213220
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x40
add r4, r0, #0
@@ -2516,8 +2516,8 @@ _022132C0: .word 0x00000B44
_022132C4: .word 0x0000B807
_022132C8: .word 0x00000B48
- thumb_func_start FUN_022132CC
-FUN_022132CC: ; 0x022132CC
+ thumb_func_start MOD07_022132CC
+MOD07_022132CC: ; 0x022132CC
push {r4, lr}
add r4, r0, #0
ldr r1, [r4]
@@ -2530,12 +2530,12 @@ FUN_022132CC: ; 0x022132CC
add r0, r4, #0
ldr r2, [r2, #0x14]
mov r1, #0
- bl FUN_02213220
+ bl MOD07_02213220
ldr r2, [r4]
add r0, r4, #0
ldr r2, [r2, #0x18]
mov r1, #2
- bl FUN_02213220
+ bl MOD07_02213220
ldr r2, [r4]
add r0, r2, #0
add r0, #0x29
@@ -2545,23 +2545,23 @@ FUN_022132CC: ; 0x022132CC
ldr r2, [r2, #0x1c]
add r0, r4, #0
mov r1, #1
- bl FUN_02213220
+ bl MOD07_02213220
ldr r2, [r4]
add r0, r4, #0
ldr r2, [r2, #0x20]
mov r1, #3
- bl FUN_02213220
+ bl MOD07_02213220
pop {r4, pc}
_0221331A:
ldr r2, [r2, #0x14]
add r0, r4, #0
mov r1, #1
- bl FUN_02213220
+ bl MOD07_02213220
ldr r2, [r4]
add r0, r4, #0
ldr r2, [r2, #0x18]
mov r1, #3
- bl FUN_02213220
+ bl MOD07_02213220
ldr r0, _0221334C ; =0x00000B4C
mov r1, #0
ldr r0, [r4, r0]
@@ -2576,8 +2576,8 @@ _02213348: .word 0x00000B44
_0221334C: .word 0x00000B4C
_02213350: .word 0x00000B54
- thumb_func_start FUN_02213354
-FUN_02213354: ; 0x02213354
+ thumb_func_start MOD07_02213354
+MOD07_02213354: ; 0x02213354
push {r3, r4, r5, lr}
add r5, r1, #0
add r1, r2, #0
@@ -2600,8 +2600,8 @@ FUN_02213354: ; 0x02213354
.align 2, 0
_0221337C: .word 0x00000B48
- thumb_func_start FUN_02213380
-FUN_02213380: ; 0x02213380
+ thumb_func_start MOD07_02213380
+MOD07_02213380: ; 0x02213380
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
ldr r0, [r7]
@@ -2628,8 +2628,8 @@ _022133AA:
_022133AC: .word 0x00000B48
_022133B0: .word 0x00000B44
- thumb_func_start FUN_022133B4
-FUN_022133B4: ; 0x022133B4
+ thumb_func_start MOD07_022133B4
+MOD07_022133B4: ; 0x022133B4
push {r3, r4}
ldr r1, [r0]
add r1, #0x29
@@ -2735,8 +2735,8 @@ _02213432:
nop
_02213480: .word 0x00000B64
- thumb_func_start FUN_02213484
-FUN_02213484: ; 0x02213484
+ thumb_func_start MOD07_02213484
+MOD07_02213484: ; 0x02213484
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
ldr r4, _02213560 ; =0x022149C8
@@ -2752,18 +2752,18 @@ FUN_02213484: ; 0x02213484
add r1, r2, #0
add r0, r6, #0
mov r2, #0x17
- bl FUN_02212C04
+ bl MOD07_02212C04
add r0, r6, #0
- bl FUN_0221301C
+ bl MOD07_0221301C
add r0, r6, #0
- bl FUN_02213568
+ bl MOD07_02213568
ldr r4, _02213564 ; =0x02214C64
mov r7, #0
add r5, r6, #0
_022134B8:
add r0, r6, #0
add r1, r4, #0
- bl FUN_02212CA4
+ bl MOD07_02212CA4
mov r1, #0x66
lsl r1, r1, #2
str r0, [r5, r1]
@@ -2777,55 +2777,55 @@ _022134B8:
add r0, r6, #0
mvn r2, r2
add r3, r1, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r2, #0xff
add r0, r6, #0
mov r1, #1
mvn r2, r2
mov r3, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r1, #2
add r2, r1, #0
add r0, r6, #0
add r2, #0xfe
mov r3, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
mov r1, #3
add r2, r1, #0
add r0, r6, #0
add r2, #0xfd
mov r3, #0
- bl FUN_0221309C
+ bl MOD07_0221309C
add r0, r6, #0
- bl FUN_022131C0
+ bl MOD07_022131C0
add r0, r6, #0
- bl FUN_022135C8
+ bl MOD07_022135C8
add r0, r6, #0
- bl FUN_022132CC
+ bl MOD07_022132CC
mov r1, #0
mov r2, #0xff
add r0, r6, #0
mvn r2, r2
add r3, r1, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r2, #0xff
add r0, r6, #0
mov r1, #1
mvn r2, r2
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r1, #2
add r2, r1, #0
add r0, r6, #0
add r2, #0xfe
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r1, #3
add r2, r1, #0
add r0, r6, #0
add r2, #0xfd
mov r3, #0
- bl FUN_02213354
+ bl MOD07_02213354
mov r0, #0x21
mov r1, #0xe
lsl r0, r0, #4
@@ -2836,8 +2836,8 @@ _022134B8:
_02213560: .word 0x022149C8
_02213564: .word 0x02214C64
- thumb_func_start FUN_02213568
-FUN_02213568: ; 0x02213568
+ thumb_func_start MOD07_02213568
+MOD07_02213568: ; 0x02213568
push {r3, r4, lr}
sub sp, #0xc
add r4, r0, #0
@@ -2884,8 +2884,8 @@ FUN_02213568: ; 0x02213568
.align 2, 0
_022135C4: .word 0x0000B808
- thumb_func_start FUN_022135C8
-FUN_022135C8: ; 0x022135C8
+ thumb_func_start MOD07_022135C8
+MOD07_022135C8: ; 0x022135C8
push {r4, lr}
add r4, r0, #0
mov r0, #0x72
@@ -2916,7 +2916,7 @@ FUN_022135C8: ; 0x022135C8
bl FUN_0200C5C0
pop {r4, pc}
_0221360A:
- bl FUN_02212BD4
+ bl MOD07_02212BD4
cmp r0, #1
ldr r0, [r4]
bne _02213658
@@ -2995,8 +2995,8 @@ _0221369A:
bl FUN_0200C5C0
pop {r4, pc}
- thumb_func_start FUN_022136B4
-FUN_022136B4: ; 0x022136B4
+ thumb_func_start MOD07_022136B4
+MOD07_022136B4: ; 0x022136B4
push {r4, lr}
sub sp, #8
add r4, r0, #0
@@ -3032,9 +3032,9 @@ FUN_022136B4: ; 0x022136B4
ldr r0, [r4]
mov r3, #0x12
ldr r0, [r0, #0x24]
- ldr r1, _02213798 ; =FUN_02213834
+ ldr r1, _02213798 ; =MOD07_02213834
str r0, [sp, #4]
- ldr r0, _0221379C ; =FUN_02213810
+ ldr r0, _0221379C ; =MOD07_02213810
ldr r2, [r4, r2]
lsl r3, r3, #0xa
bl FUN_02012CDC
@@ -3095,12 +3095,12 @@ FUN_022136B4: ; 0x022136B4
_0221378C: .word 0x00000B58
_02213790: .word 0x04000060
_02213794: .word 0xFFFFCFFF
-_02213798: .word FUN_02213834
-_0221379C: .word FUN_02213810
+_02213798: .word MOD07_02213834
+_0221379C: .word MOD07_02213810
_022137A0: .word 0x00000B5C
- thumb_func_start FUN_022137A4
-FUN_022137A4: ; 0x022137A4
+ thumb_func_start MOD07_022137A4
+MOD07_022137A4: ; 0x022137A4
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
@@ -3127,8 +3127,8 @@ _022137CA:
nop
_022137D8: .word 0x00000B5C
- thumb_func_start FUN_022137DC
-FUN_022137DC: ; 0x022137DC
+ thumb_func_start MOD07_022137DC
+MOD07_022137DC: ; 0x022137DC
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
@@ -3152,8 +3152,8 @@ _02213804:
_02213808: .word 0x00000B5C
_0221380C: .word 0x00000B58
- thumb_func_start FUN_02213810
-FUN_02213810: ; 0x02213810
+ thumb_func_start MOD07_02213810
+MOD07_02213810: ; 0x02213810
push {r4, lr}
ldr r3, _02213830 ; =0x021064B8
mov r2, #0
@@ -3171,8 +3171,8 @@ _02213828:
nop
_02213830: .word 0x021064B8
- thumb_func_start FUN_02213834
-FUN_02213834: ; 0x02213834
+ thumb_func_start MOD07_02213834
+MOD07_02213834: ; 0x02213834
push {r4, lr}
ldr r3, _02213854 ; =0x021064C0
mov r2, #1
@@ -3190,8 +3190,8 @@ _0221384C:
nop
_02213854: .word 0x021064C0
- thumb_func_start FUN_02213858
-FUN_02213858: ; 0x02213858
+ thumb_func_start MOD07_02213858
+MOD07_02213858: ; 0x02213858
push {r4, r5, lr}
sub sp, #0x64
ldr r5, _022138E8 ; =0x0221497C
@@ -3263,8 +3263,8 @@ _022138EC: .word 0x02214A9C
_022138F0: .word 0x02214A10
_022138F4: .word 0x02214A80
- thumb_func_start FUN_022138F8
-FUN_022138F8: ; 0x022138F8
+ thumb_func_start MOD07_022138F8
+MOD07_022138F8: ; 0x022138F8
push {r4, lr}
add r4, r0, #0
mov r0, #0x1e
@@ -3283,8 +3283,8 @@ FUN_022138F8: ; 0x022138F8
bl FUN_02016A18
pop {r4, pc}
- thumb_func_start FUN_02213924
-FUN_02213924: ; 0x02213924
+ thumb_func_start MOD07_02213924
+MOD07_02213924: ; 0x02213924
push {r4, r5, lr}
sub sp, #0x14
add r5, r0, #0
@@ -3353,8 +3353,8 @@ FUN_02213924: ; 0x02213924
_022139B4: .word 0x000004E4
_022139B8: .word 0x00000424
- thumb_func_start FUN_022139BC
-FUN_022139BC: ; 0x022139BC
+ thumb_func_start MOD07_022139BC
+MOD07_022139BC: ; 0x022139BC
push {r4, r5, r6, r7, lr}
sub sp, #0x1c
add r5, r0, #0
@@ -3471,8 +3471,8 @@ _02213A94: .word 0x00000424
_02213A98: .word 0x00000504
_02213A9C: .word 0x000004E4
- thumb_func_start FUN_02213AA0
-FUN_02213AA0: ; 0x02213AA0
+ thumb_func_start MOD07_02213AA0
+MOD07_02213AA0: ; 0x02213AA0
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
ldr r0, [r4, #0xc]
@@ -3512,19 +3512,19 @@ _02213AC2:
blo _02213AC2
pop {r3, r4, r5, r6, r7, pc}
- thumb_func_start FUN_02213AEC
-FUN_02213AEC: ; 0x02213AEC
+ thumb_func_start MOD07_02213AEC
+MOD07_02213AEC: ; 0x02213AEC
push {r4, lr}
ldr r1, _02213B18 ; =0x00000544
add r4, r0, #0
add r1, r4, r1
mov r2, #1
- bl FUN_02213AA0
+ bl MOD07_02213AA0
ldr r1, _02213B1C ; =0x00000844
add r0, r4, #0
add r1, r4, r1
mov r2, #2
- bl FUN_02213AA0
+ bl MOD07_02213AA0
ldr r0, [r4, #0xc]
mov r1, #1
bl FUN_0201AC68
@@ -3536,8 +3536,8 @@ FUN_02213AEC: ; 0x02213AEC
_02213B18: .word 0x00000544
_02213B1C: .word 0x00000844
- thumb_func_start FUN_02213B20
-FUN_02213B20: ; 0x02213B20
+ thumb_func_start MOD07_02213B20
+MOD07_02213B20: ; 0x02213B20
push {r3, r4, r5, r6, lr}
sub sp, #0x1c
add r5, r0, #0
@@ -3635,8 +3635,8 @@ _02213BCE:
_02213BE4: .word 0x00000544
_02213BE8: .word 0x00000844
- thumb_func_start FUN_02213BEC
-FUN_02213BEC: ; 0x02213BEC
+ thumb_func_start MOD07_02213BEC
+MOD07_02213BEC: ; 0x02213BEC
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r4, r0, #0
@@ -3786,8 +3786,8 @@ _02213D24: .word 0x00000225
_02213D28: .word 0x00000222
_02213D2C: .word 0x00000221
- thumb_func_start FUN_02213D30
-FUN_02213D30: ; 0x02213D30
+ thumb_func_start MOD07_02213D30
+MOD07_02213D30: ; 0x02213D30
push {r4, lr}
add r4, r0, #0
mov r0, #0x85
@@ -3800,16 +3800,16 @@ FUN_02213D30: ; 0x02213D30
add r0, r4, #0
ldr r1, [r1, #4]
mov r2, #0
- bl FUN_02213BEC
+ bl MOD07_02213BEC
ldr r1, [r4]
add r0, r4, #0
ldr r1, [r1, #0xc]
mov r2, #3
- bl FUN_02213BEC
+ bl MOD07_02213BEC
pop {r4, pc}
- thumb_func_start FUN_02213D5C
-FUN_02213D5C: ; 0x02213D5C
+ thumb_func_start MOD07_02213D5C
+MOD07_02213D5C: ; 0x02213D5C
push {r4, lr}
add r3, r0, #0
add r2, r1, #0
@@ -3870,8 +3870,8 @@ _02213DBC:
.align 2, 0
_02213DC0: .word 0x0000021A
- thumb_func_start FUN_02213DC4
-FUN_02213DC4: ; 0x02213DC4
+ thumb_func_start MOD07_02213DC4
+MOD07_02213DC4: ; 0x02213DC4
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
@@ -3897,7 +3897,7 @@ _02213DE8:
ldr r1, _02213F20 ; =0x02214DEC
add r0, r5, #0
add r1, r1, r2
- bl FUN_02212CA4
+ bl MOD07_02212CA4
mov r1, #0x66
lsl r1, r1, #2
str r0, [r4, r1]
@@ -3959,7 +3959,7 @@ _02213E50:
bl FUN_0200C66C
ldr r1, [sp]
add r0, r5, #0
- bl FUN_02213D5C
+ bl MOD07_02213D5C
add r1, r0, #0
ldr r0, [r7, r4]
bl FUN_0200C5C0
@@ -4043,8 +4043,8 @@ _02213F1C: .word 0x02214B28
_02213F20: .word 0x02214DEC
_02213F24: .word 0x0000021E
- thumb_func_start FUN_02213F28
-FUN_02213F28: ; 0x02213F28
+ thumb_func_start MOD07_02213F28
+MOD07_02213F28: ; 0x02213F28
push {r3, r4, r5, lr}
sub sp, #0x18
ldr r5, _02213F88 ; =0x022149F8
@@ -4060,26 +4060,26 @@ FUN_02213F28: ; 0x02213F28
add r1, r2, #0
add r0, r4, #0
mov r2, #0x1f
- bl FUN_02212C04
+ bl MOD07_02212C04
add r0, r4, #0
- bl FUN_02213F8C
+ bl MOD07_02213F8C
add r0, r4, #0
- bl FUN_02214034
+ bl MOD07_02214034
add r0, r4, #0
- bl FUN_022140BC
+ bl MOD07_022140BC
add r0, r4, #0
- bl FUN_02214144
+ bl MOD07_02214144
mov r5, #0
_02213F64:
add r0, r4, #0
add r1, r5, #0
- bl FUN_02213DC4
+ bl MOD07_02213DC4
add r5, r5, #1
cmp r5, #6
blo _02213F64
add r0, r4, #0
mov r1, #0x10
- bl FUN_022141CC
+ bl MOD07_022141CC
mov r0, #0x21
mov r1, #0x1e
lsl r0, r0, #4
@@ -4089,8 +4089,8 @@ _02213F64:
nop
_02213F88: .word 0x022149F8
- thumb_func_start FUN_02213F8C
-FUN_02213F8C: ; 0x02213F8C
+ thumb_func_start MOD07_02213F8C
+MOD07_02213F8C: ; 0x02213F8C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
add r5, r0, #0
@@ -4168,8 +4168,8 @@ _02213FFA:
_0221402C: .word 0x0000B808
_02214030: .word 0x0000B809
- thumb_func_start FUN_02214034
-FUN_02214034: ; 0x02214034
+ thumb_func_start MOD07_02214034
+MOD07_02214034: ; 0x02214034
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
@@ -4233,8 +4233,8 @@ _022140B0: .word 0x0000B80F
_022140B4: .word 0x0000B809
_022140B8: .word 0x0000B80A
- thumb_func_start FUN_022140BC
-FUN_022140BC: ; 0x022140BC
+ thumb_func_start MOD07_022140BC
+MOD07_022140BC: ; 0x022140BC
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
@@ -4298,8 +4298,8 @@ _02214138: .word 0x0000B810
_0221413C: .word 0x0000B80A
_02214140: .word 0x0000B80B
- thumb_func_start FUN_02214144
-FUN_02214144: ; 0x02214144
+ thumb_func_start MOD07_02214144
+MOD07_02214144: ; 0x02214144
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
@@ -4363,8 +4363,8 @@ _022141C0: .word 0x0000B811
_022141C4: .word 0x0000B80B
_022141C8: .word 0x0000B80C
- thumb_func_start FUN_022141CC
-FUN_022141CC: ; 0x022141CC
+ thumb_func_start MOD07_022141CC
+MOD07_022141CC: ; 0x022141CC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
str r0, [sp]
@@ -4433,8 +4433,8 @@ _02214216:
.align 2, 0
_02214248: .word 0x02214B28
- thumb_func_start FUN_0221424C
-FUN_0221424C: ; 0x0221424C
+ thumb_func_start MOD07_0221424C
+MOD07_0221424C: ; 0x0221424C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r5, r7, #0
@@ -4455,8 +4455,8 @@ _02214258:
nop
_02214270: .word 0x02214BA4
- thumb_func_start FUN_02214274
-FUN_02214274: ; 0x02214274
+ thumb_func_start MOD07_02214274
+MOD07_02214274: ; 0x02214274
push {r3, r4, r5, lr}
add r5, r0, #0
mov r4, #0
@@ -4470,8 +4470,8 @@ _0221427C:
blo _0221427C
pop {r3, r4, r5, pc}
- thumb_func_start FUN_0221428C
-FUN_0221428C: ; 0x0221428C
+ thumb_func_start MOD07_0221428C
+MOD07_0221428C: ; 0x0221428C
push {r4, r5, r6, r7, lr}
sub sp, #0x24
ldr r4, [sp, #0x3c]
@@ -4583,8 +4583,8 @@ _02214370: .word 0x000F0E00
_02214374: .word 0x00000222
_02214378: .word 0x00050600
- thumb_func_start FUN_0221437C
-FUN_0221437C: ; 0x0221437C
+ thumb_func_start MOD07_0221437C
+MOD07_0221437C: ; 0x0221437C
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, r0, #0
@@ -4644,8 +4644,8 @@ FUN_0221437C: ; 0x0221437C
.align 2, 0
_022143F8: .word 0x000F0E00
- thumb_func_start FUN_022143FC
-FUN_022143FC: ; 0x022143FC
+ thumb_func_start MOD07_022143FC
+MOD07_022143FC: ; 0x022143FC
push {r4, r5, r6, r7, lr}
sub sp, #0x2c
ldr r5, [sp, #0x44]
@@ -4769,8 +4769,8 @@ FUN_022143FC: ; 0x022143FC
_02214508: .word 0x0000021A
_0221450C: .word 0x000F0E00
- thumb_func_start FUN_02214510
-FUN_02214510: ; 0x02214510
+ thumb_func_start MOD07_02214510
+MOD07_02214510: ; 0x02214510
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
@@ -4886,8 +4886,8 @@ _022145F4: .word 0x000004F6
_022145F8: .word 0x00000516
_022145FC: .word 0x00000536
- thumb_func_start FUN_02214600
-FUN_02214600: ; 0x02214600
+ thumb_func_start MOD07_02214600
+MOD07_02214600: ; 0x02214600
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r7, r0, #0
@@ -4920,7 +4920,7 @@ FUN_02214600: ; 0x02214600
ldr r3, [sp, #0x10]
add r0, r7, #0
str r6, [sp, #4]
- bl FUN_0221428C
+ bl MOD07_0221428C
ldr r0, [sp, #0x28]
ldr r1, [sp, #8]
str r0, [sp]
@@ -4928,7 +4928,7 @@ FUN_02214600: ; 0x02214600
ldr r3, [sp, #0x10]
add r0, r7, #0
str r6, [sp, #4]
- bl FUN_0221437C
+ bl MOD07_0221437C
ldr r0, [sp, #0x28]
ldr r1, [sp, #8]
str r0, [sp]
@@ -4936,10 +4936,10 @@ FUN_02214600: ; 0x02214600
ldr r3, [sp, #0x10]
add r0, r7, #0
str r6, [sp, #4]
- bl FUN_022143FC
+ bl MOD07_022143FC
add r0, r7, #0
add r1, r6, #0
- bl FUN_02214510
+ bl MOD07_02214510
add r0, r5, r4
bl FUN_02019220
add r0, r5, r4
@@ -4955,8 +4955,8 @@ FUN_02214600: ; 0x02214600
pop {r4, r5, r6, r7, pc}
.align 2, 0
- thumb_func_start FUN_0221469C
-FUN_0221469C: ; 0x0221469C
+ thumb_func_start MOD07_0221469C
+MOD07_0221469C: ; 0x0221469C
push {r4, r5, r6, r7, lr}
sub sp, #0x14
add r6, r0, #0
@@ -4997,7 +4997,7 @@ _022146DC:
ldr r3, [sp, #8]
add r0, r6, #0
str r4, [sp, #4]
- bl FUN_02214600
+ bl MOD07_02214600
_022146F6:
add r4, r4, #1
add r5, #0x18
@@ -5016,8 +5016,8 @@ _022146F6:
nop
_0221471C: .word 0x00000192
- thumb_func_start FUN_02214720
-FUN_02214720: ; 0x02214720
+ thumb_func_start MOD07_02214720
+MOD07_02214720: ; 0x02214720
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r4, r0, #0
@@ -5199,7 +5199,7 @@ _022148A0:
mov r1, #0x10
bl FUN_02016998
add r7, r0, #0
- bl FUN_02212BD4
+ bl MOD07_02212BD4
cmp r0, #1
ldr r0, [r4]
bne _022148EA
@@ -5270,6 +5270,6 @@ _0221494A:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
- .section .data
+ .section .rodata
; 0x02214950
- .incbin "baserom.nds", 0x186EF0, 0x7F0
+ .incbin "baserom.nds", 0x186EF0, 0x7E4
diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s
index 50ed884f..77a1f93f 100644
--- a/arm9/modules/08/asm/module_08.s
+++ b/arm9/modules/08/asm/module_08.s
@@ -1003,13 +1003,13 @@ _02212544:
thumb_func_start MOD08_0221255C
MOD08_0221255C: ; 0x0221255C
- ldr r3, _02212568 ; =0x0200CA45
+ ldr r3, _02212568 ; =FUN_0200CA44
str r0, [r1, #0x38]
ldr r0, _0221256C ; =MOD08_02212574
ldr r2, _02212570 ; =0x0000044C
bx r3
nop
-_02212568: .word 0x0200CA45
+_02212568: .word FUN_0200CA44
_0221256C: .word MOD08_02212574
_02212570: .word 0x0000044C
@@ -1803,7 +1803,7 @@ _02212AE8:
bl MOD08_02212004
cmp r0, #0
bne _02212B3C
- bl FUN_02231678
+ bl MOD11_02231678
add r0, r5, #0
mov r1, #1
bl MOD08_02215588
@@ -1833,7 +1833,7 @@ _02212AE8:
bl FUN_0201797C
b _02212B40
_02212B3C:
- bl FUN_02233560
+ bl MOD12_02233560
_02212B40:
mov r1, #0x1a
lsl r1, r1, #4
@@ -4691,10 +4691,10 @@ _022140F8:
bl MOD08_02212004
cmp r0, #0
bne _02214108
- bl FUN_02231678
+ bl MOD11_02231678
b _0221410C
_02214108:
- bl FUN_02233560
+ bl MOD12_02233560
_0221410C:
ldr r0, [r4, #0x48]
mov r1, #2
@@ -6040,7 +6040,7 @@ MOD08_02214B38: ; 0x02214B38
thumb_func_start MOD08_02214B3C
MOD08_02214B3C: ; 0x02214B3C
ldr r1, [r0, #0x18]
- ldr r3, _02214B50 ; =0x020054C9
+ ldr r3, _02214B50 ; =FUN_020054C8
add r1, r1, #4
str r1, [r0, #0x18]
ldr r2, [r1]
@@ -6050,12 +6050,12 @@ MOD08_02214B3C: ; 0x02214B3C
lsr r0, r0, #0x10
bx r3
.align 2, 0
-_02214B50: .word 0x020054C9
+_02214B50: .word FUN_020054C8
thumb_func_start MOD08_02214B54
MOD08_02214B54: ; 0x02214B54
ldr r1, [r0, #0x18]
- ldr r3, _02214B6C ; =0x020054F1
+ ldr r3, _02214B6C ; =FUN_020054F0
add r1, r1, #4
str r1, [r0, #0x18]
ldr r2, [r1]
@@ -6066,7 +6066,7 @@ MOD08_02214B54: ; 0x02214B54
mov r1, #0
bx r3
nop
-_02214B6C: .word 0x020054F1
+_02214B6C: .word FUN_020054F0
thumb_func_start MOD08_02214B70
MOD08_02214B70: ; 0x02214B70
@@ -7001,18 +7001,18 @@ MOD08_02215284: ; 0x02215284
add r2, r0, r2
mov r0, #0x4f
lsl r0, r0, #2
- ldr r3, _022152A4 ; =0x0200C645
+ ldr r3, _022152A4 ; =FUN_0200C644
ldr r0, [r2, r0]
bx r3
.align 2, 0
-_022152A4: .word 0x0200C645
+_022152A4: .word FUN_0200C644
thumb_func_start MOD08_022152A8
MOD08_022152A8: ; 0x022152A8
- ldr r3, _022152AC ; =0x02020C2D
+ ldr r3, _022152AC ; =ErrorHandling
bx r3
.align 2, 0
-_022152AC: .word 0x02020C2D
+_022152AC: .word ErrorHandling
thumb_func_start MOD08_022152B0
MOD08_022152B0: ; 0x022152B0
@@ -7633,13 +7633,13 @@ MOD08_022156C0: ; 0x022156C0
str r5, [r4]
str r6, [r4, #4]
add r0, r7, #0
- bl FUN_02230078
+ bl MOD11_02230078
str r0, [r4, #8]
add r0, r7, #0
- bl FUN_02230080
+ bl MOD11_02230080
str r0, [r4, #0xc]
add r0, r7, #0
- bl FUN_022300CC
+ bl MOD11_022300CC
str r0, [r4, #0x10]
mov r6, #0
add r5, r4, #0
@@ -7648,7 +7648,7 @@ _02215704:
str r0, [r5, #0x24]
add r0, r7, #0
add r1, r6, #0
- bl FUN_022312D0
+ bl MOD11_022312D0
str r0, [r5, #0x34]
add r6, r6, #1
add r5, r5, #4
@@ -7657,11 +7657,11 @@ _02215704:
add r1, r4, #0
add r0, r7, #0
add r1, #0x44
- bl FUN_02231504
+ bl MOD11_02231504
add r1, r4, #0
add r0, r7, #0
add r1, #0x48
- bl FUN_02231534
+ bl MOD11_02231534
mov r6, #0
add r7, r6, #0
_02215732:
@@ -8148,10 +8148,10 @@ MOD08_02215ACC: ; 0x02215ACC
thumb_func_start MOD08_02215AF8
MOD08_02215AF8: ; 0x02215AF8
- ldr r3, _02215AFC ; =0x02006705
+ ldr r3, _02215AFC ; =FUN_02006704
bx r3
.align 2, 0
-_02215AFC: .word 0x02006705
+_02215AFC: .word FUN_02006704
thumb_func_start MOD08_02215B00
MOD08_02215B00: ; 0x02215B00
@@ -14296,11 +14296,11 @@ MOD08_022188BC: ; 0x022188BC
thumb_func_start MOD08_022188D0
MOD08_022188D0: ; 0x022188D0
- ldr r3, _022188D8 ; =0x02012B69
+ ldr r3, _022188D8 ; =FUN_02012B68
ldr r0, [r0, #0x1c]
bx r3
nop
-_022188D8: .word 0x02012B69
+_022188D8: .word FUN_02012B68
thumb_func_start MOD08_022188DC
MOD08_022188DC: ; 0x022188DC
@@ -32594,19 +32594,19 @@ _02221D98:
thumb_func_start MOD08_02221DF0
MOD08_02221DF0: ; 0x02221DF0
- ldr r3, _02221DF8 ; =0x0200C3DD
+ ldr r3, _02221DF8 ; =FUN_0200C3DC
ldr r0, [r0]
bx r3
nop
-_02221DF8: .word 0x0200C3DD
+_02221DF8: .word FUN_0200C3DC
thumb_func_start MOD08_02221DFC
MOD08_02221DFC: ; 0x02221DFC
- ldr r3, _02221E04 ; =0x0200C645
+ ldr r3, _02221E04 ; =FUN_0200C644
ldr r0, [r0]
bx r3
nop
-_02221E04: .word 0x0200C645
+_02221E04: .word FUN_0200C644
thumb_func_start MOD08_02221E08
MOD08_02221E08: ; 0x02221E08
@@ -34855,11 +34855,11 @@ _022230D4: .word 0xBF800000
thumb_func_start MOD08_022230D8
MOD08_022230D8: ; 0x022230D8
- ldr r3, _022230E0 ; =0x0200C3DD
+ ldr r3, _022230E0 ; =FUN_0200C3DC
ldr r0, [r0]
bx r3
nop
-_022230E0: .word 0x0200C3DD
+_022230E0: .word FUN_0200C3DC
thumb_func_start MOD08_022230E4
MOD08_022230E4: ; 0x022230E4
@@ -44142,11 +44142,11 @@ _02227B4E:
thumb_func_start MOD08_02227B64
MOD08_02227B64: ; 0x02227B64
- ldr r3, _02227B6C ; =0x0200C7A1
+ ldr r3, _02227B6C ; =FUN_0200C7A0
add r2, r1, #2
bx r3
nop
-_02227B6C: .word 0x0200C7A1
+_02227B6C: .word FUN_0200C7A0
thumb_func_start MOD08_02227B70
MOD08_02227B70: ; 0x02227B70
@@ -45529,10 +45529,10 @@ _02228616:
thumb_func_start MOD08_02228618
MOD08_02228618: ; 0x02228618
- ldr r3, _0222861C ; =0x02016A19
+ ldr r3, _0222861C ; =FUN_02016A18
bx r3
.align 2, 0
-_0222861C: .word 0x02016A19
+_0222861C: .word FUN_02016A18
thumb_func_start MOD08_02228620
MOD08_02228620: ; 0x02228620
@@ -45972,10 +45972,10 @@ _0222896C:
thumb_func_start MOD08_02228970
MOD08_02228970: ; 0x02228970
- ldr r3, _02228974 ; =0x02016A19
+ ldr r3, _02228974 ; =FUN_02016A18
bx r3
.align 2, 0
-_02228974: .word 0x02016A19
+_02228974: .word FUN_02016A18
thumb_func_start MOD08_02228978
MOD08_02228978: ; 0x02228978
@@ -48264,12 +48264,12 @@ MOD08_02229A5C: ; 0x02229A5C
add r1, r2, #0
str r0, [r2, #0x1c]
ldr r0, [r2, #0x30]
- ldr r3, _02229A7C ; =0x0200C7A1
+ ldr r3, _02229A7C ; =FUN_0200C7A0
add r1, #0xb8
add r2, #0xba
bx r3
nop
-_02229A7C: .word 0x0200C7A1
+_02229A7C: .word FUN_0200C7A0
thumb_func_start MOD08_02229A80
MOD08_02229A80: ; 0x02229A80
@@ -48971,27 +48971,27 @@ _02229FE0: .word 0x00001770
thumb_func_start MOD08_02229FE4
MOD08_02229FE4: ; 0x02229FE4
- ldr r3, _02229FEC ; =0x0200C645
+ ldr r3, _02229FEC ; =FUN_0200C644
ldr r0, [r0, #0x30]
bx r3
nop
-_02229FEC: .word 0x0200C645
+_02229FEC: .word FUN_0200C644
thumb_func_start MOD08_02229FF0
MOD08_02229FF0: ; 0x02229FF0
- ldr r3, _02229FF8 ; =0x0200C715
+ ldr r3, _02229FF8 ; =FUN_0200C714
ldr r0, [r0, #0x30]
bx r3
nop
-_02229FF8: .word 0x0200C715
+_02229FF8: .word FUN_0200C714
thumb_func_start MOD08_02229FFC
MOD08_02229FFC: ; 0x02229FFC
- ldr r3, _0222A004 ; =0x0200C899
+ ldr r3, _0222A004 ; =FUN_0200C898
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A004: .word 0x0200C899
+_0222A004: .word FUN_0200C898
thumb_func_start MOD08_0222A008
MOD08_0222A008: ; 0x0222A008
@@ -49000,19 +49000,19 @@ MOD08_0222A008: ; 0x0222A008
thumb_func_start MOD08_0222A00C
MOD08_0222A00C: ; 0x0222A00C
- ldr r3, _0222A014 ; =0x0200C6C5
+ ldr r3, _0222A014 ; =FUN_0200C6C4
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A014: .word 0x0200C6C5
+_0222A014: .word FUN_0200C6C4
thumb_func_start MOD08_0222A018
MOD08_0222A018: ; 0x0222A018
- ldr r3, _0222A020 ; =0x0200C6B1
+ ldr r3, _0222A020 ; =FUN_0200C6B0
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A020: .word 0x0200C6B1
+_0222A020: .word FUN_0200C6B0
thumb_func_start MOD08_0222A024
MOD08_0222A024: ; 0x0222A024
@@ -49325,10 +49325,10 @@ _0222A24E:
thumb_func_start MOD08_0222A258
MOD08_0222A258: ; 0x0222A258
- ldr r3, _0222A25C ; =0x0201341D
+ ldr r3, _0222A25C ; =FUN_0201341C
bx r3
.align 2, 0
-_0222A25C: .word 0x0201341D
+_0222A25C: .word FUN_0201341C
thumb_func_start MOD08_0222A260
MOD08_0222A260: ; 0x0222A260
@@ -49976,6 +49976,9 @@ _0222A758:
.align 2, 0
_0222A75C: .word 0x0000013B
- .section .data
+ .section .rodata
; 0x0222A760
- .incbin "baserom.nds", 0x1A0100, 0x2E60
+ .incbin "baserom.nds", 0x1A0100, 0x2E38
+
+ .section .data
+ .incbin "baserom.nds", 0x1A2F40, 0x20
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s
index 7e5ad9c1..27a9c5be 100644
--- a/arm9/modules/09/asm/module_09.s
+++ b/arm9/modules/09/asm/module_09.s
@@ -25,12 +25,12 @@ _02211E6E:
bl Call_FillMemWithValue
str r5, [r4]
ldr r0, [r5, #8]
- bl FUN_0222FF68
+ bl MOD11_0222FF68
mov r1, #0x79
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r5, #8]
- bl FUN_022300CC
+ bl MOD11_022300CC
mov r1, #0x7a
lsl r1, r1, #2
str r0, [r4, r1]
@@ -41,7 +41,7 @@ _02211E6E:
sub r0, r0, #2
strb r1, [r4, r0]
ldr r0, [r5, #8]
- bl FUN_02231238
+ bl MOD11_02231238
ldr r3, _02211EE4 ; =0x00002077
lsl r0, r0, #0x18
lsr r0, r0, #0x18
@@ -54,7 +54,7 @@ _02211E6E:
strb r0, [r4, r3]
ldr r0, [r5, #8]
ldr r1, [r5, #0x28]
- bl FUN_02230260
+ bl MOD11_02230260
ldr r1, _02211EE8 ; =0x0000208F
strb r0, [r4, r1]
pop {r3, r4, r5, pc}
@@ -525,7 +525,7 @@ _0221228A:
add r2, r4, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230370
+ bl MOD11_02230370
cmp r0, #1
bne _0221233A
ldrh r0, [r4, #0x22]
@@ -563,7 +563,7 @@ _022122BA:
add r2, r4, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230014
+ bl MOD11_02230014
ldrb r2, [r4, #0x11]
mov r1, #0x50
add r3, r2, #0
@@ -1310,7 +1310,7 @@ _022128B6:
add r2, r6, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230370
+ bl MOD11_02230370
cmp r0, #1
bne _0221290E
ldr r0, _02212960 ; =0x0000207C
@@ -1609,7 +1609,7 @@ _02212B0A:
add r2, r5, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230014
+ bl MOD11_02230014
ldrb r2, [r5, #0x11]
mov r1, #0x50
mul r1, r2
@@ -1817,7 +1817,7 @@ _02212CA8:
add r2, #0x2c
ldrb r2, [r2]
ldr r1, [r1, #0x28]
- bl FUN_02230014
+ bl MOD11_02230014
ldr r1, [sp, #4]
mov r7, #0
ldrb r2, [r1, #0x11]
@@ -2262,7 +2262,7 @@ MOD09_02212F8C: ; 0x02212F8C
bl FUN_020030E8
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230E44
+ bl MOD11_02230E44
add r4, r0, #0
bl FUN_0200CD60
add r1, r0, #0
@@ -2950,11 +2950,11 @@ _02213610: .word 0x00002088
thumb_func_start MOD09_02213614
MOD09_02213614: ; 0x02213614
- ldr r3, _0221361C ; =0x02020989
+ ldr r3, _0221361C ; =FUN_02020988
add r0, r1, #0
bx r3
nop
-_0221361C: .word 0x02020989
+_0221361C: .word FUN_02020988
thumb_func_start MOD09_02213620
MOD09_02213620: ; 0x02213620
@@ -3465,11 +3465,11 @@ MOD09_022139D4: ; 0x022139D4
add r4, r0, #0
ldr r0, [r1, #8]
ldr r1, [r1, #0x28]
- bl FUN_022302BC
+ bl MOD11_022302BC
add r1, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230188
+ bl MOD11_02230188
add r2, r0, #0
ldr r0, _02213B74 ; =0x00001FAC
mov r1, #0
@@ -3661,7 +3661,7 @@ MOD09_02213B9C: ; 0x02213B9C
push {r3, lr}
ldr r0, [r0]
ldr r0, [r0, #8]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
cmp r0, #0x4a
beq _02213BB8
cmp r0, #0x4b
@@ -3680,7 +3680,7 @@ MOD09_02213BBC: ; 0x02213BBC
push {r3, lr}
ldr r0, [r0]
ldr r0, [r0, #8]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
cmp r0, #0x4a
beq _02213BD8
cmp r0, #0x4b
@@ -3742,10 +3742,10 @@ _02213C1C:
add r0, r1, r0
ldrh r0, [r0, #0x34]
_02213C2A:
- ldr r3, _02213C30 ; =0x0206EA55
+ ldr r3, _02213C30 ; =FUN_0206EA54
bx r3
nop
-_02213C30: .word 0x0206EA55
+_02213C30: .word FUN_0206EA54
thumb_func_start MOD09_02213C34
MOD09_02213C34: ; 0x02213C34
@@ -3798,14 +3798,14 @@ MOD09_02213C84: ; 0x02213C84
beq _02213CA8
cmp r4, #0x42
beq _02213CA8
- bl FUN_02230214
+ bl MOD11_02230214
add r1, r4, #0
mov r2, #1
add r3, r7, #0
bl FUN_0206EDD4
_02213CA8:
add r0, r5, #0
- bl FUN_02230218
+ bl MOD11_02230218
add r1, r4, #0
add r2, r6, #0
bl FUN_0206F1E4
@@ -3969,12 +3969,12 @@ MOD09_02213DE0: ; 0x02213DE0
add r2, r0, #0
ldr r0, [r2, r1]
add r1, r1, #4
- ldr r3, _02213DF4 ; =0x020191A5
+ ldr r3, _02213DF4 ; =FUN_020191A4
ldrb r1, [r2, r1]
bx r3
nop
_02213DF0: .word 0x00002070
-_02213DF4: .word 0x020191A5
+_02213DF4: .word FUN_020191A4
thumb_func_start MOD09_02213DF8
MOD09_02213DF8: ; 0x02213DF8
@@ -8291,7 +8291,7 @@ MOD09_0221633C: ; 0x0221633C
bl FUN_02002B60
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_02230E54
+ bl MOD11_02230E54
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
@@ -8332,7 +8332,7 @@ MOD09_02216378: ; 0x02216378
ldrb r2, [r2]
ldr r0, [r0, #8]
ldr r1, [r1, #0x28]
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
add r7, r0, #0
@@ -8705,7 +8705,7 @@ MOD09_022166D0: ; 0x022166D0
add r2, r3, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230014
+ bl MOD11_02230014
add r6, r0, #0
ldr r0, _02216728 ; =0x00001FA8
mov r1, #0x5f
@@ -8777,7 +8777,7 @@ MOD09_02216770: ; 0x02216770
stmia r2!, {r0, r1}
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
bl FUN_0200BB34
ldr r1, _022167B8 ; =0x00001FB4
@@ -8804,7 +8804,7 @@ MOD09_022167BC: ; 0x022167BC
add r6, r0, #0
ldr r0, [r6]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r7, r0, #0
bl FUN_0206B888
mov r1, #0x13
@@ -8905,7 +8905,7 @@ MOD09_02216894: ; 0x02216894
add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
bl FUN_0207C2C8
mov r1, #0x27
@@ -8976,7 +8976,7 @@ MOD09_02216934: ; 0x02216934
add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r6, r0, #0
mov r0, #2
str r0, [sp]
@@ -9032,7 +9032,7 @@ MOD09_022169AC: ; 0x022169AC
add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
bl FUN_020724C8
mov r1, #0x14
@@ -9103,7 +9103,7 @@ MOD09_02216A4C: ; 0x02216A4C
add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
mov r0, #0x48
str r0, [sp]
@@ -9172,7 +9172,7 @@ MOD09_02216ADC: ; 0x02216ADC
ldr r0, [r5]
add r4, r1, #0
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
mov r2, #0
add r1, sp, #0
strh r2, [r1]
@@ -9244,7 +9244,7 @@ MOD09_02216B74: ; 0x02216B74
add r7, r0, #0
ldr r0, [r7]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
ldr r6, _02216BA8 ; =0x00001FB8
str r0, [sp]
mov r4, #0
@@ -9328,7 +9328,7 @@ MOD09_02216C10: ; 0x02216C10
ldr r0, [r0, #8]
add r7, r1, #0
add r4, r2, #0
- bl FUN_02230078
+ bl MOD11_02230078
str r0, [sp, #8]
bl FUN_0206E12C
str r0, [sp, #0xc]
@@ -9363,7 +9363,7 @@ MOD09_02216C60: ; 0x02216C60
add r4, r2, #0
ldr r0, [r0, #8]
add r6, r1, #0
- bl FUN_02230078
+ bl MOD11_02230078
add r7, r0, #0
bl FUN_0206E2A8
str r0, [sp, #8]
@@ -10707,7 +10707,7 @@ MOD09_02217750: ; 0x02217750
add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
ldr r3, _022177A8 ; =0x0000B00C
mov r2, #0x7a
str r3, [sp]
@@ -10719,7 +10719,7 @@ MOD09_02217750: ; 0x02217750
ldr r2, [r5, r2]
add r3, #0xc
add r4, r0, #0
- bl FUN_0225D3EC
+ bl MOD11_0225D3EC
ldr r3, _022177A8 ; =0x0000B00C
mov r0, #0
str r3, [sp]
@@ -10734,7 +10734,7 @@ MOD09_02217750: ; 0x02217750
ldr r2, [r2, #0xc]
add r0, r4, #0
add r3, #0xc
- bl FUN_0225D484
+ bl MOD11_0225D484
add r1, r0, #0
ldr r0, _022177B0 ; =0x00002088
ldr r0, [r5, r0]
@@ -10754,7 +10754,7 @@ MOD09_022177B4: ; 0x022177B4
ldr r0, _022177DC ; =0x00002088
ldr r0, [r4, r0]
bl MOD09_0221AC24
- bl FUN_0225D508
+ bl MOD11_0225D508
ldr r2, _022177E0 ; =0x0000B00C
ldr r0, _022177E4 ; =0x00001FB4
str r2, [sp]
@@ -10762,7 +10762,7 @@ MOD09_022177B4: ; 0x022177B4
ldr r0, [r4, r0]
add r1, #0xc
add r3, r2, #0
- bl FUN_0225D45C
+ bl MOD11_0225D45C
add sp, #4
pop {r3, r4, pc}
.align 2, 0
@@ -10914,7 +10914,7 @@ MOD09_022178E4: ; 0x022178E4
ldr r0, _02217908 ; =0x00002088
ldr r0, [r4, r0]
bl MOD09_0221AC24
- bl FUN_0225D648
+ bl MOD11_0225D648
pop {r4, pc}
.align 2, 0
_02217908: .word 0x00002088
@@ -12664,16 +12664,16 @@ MOD09_022186F0: ; 0x022186F0
bl Call_FillMemWithValue
str r5, [r4]
ldr r0, [r5]
- bl FUN_0222FF68
+ bl MOD11_0222FF68
str r0, [r4, #4]
ldr r0, [r5]
- bl FUN_022300CC
+ bl MOD11_022300CC
str r0, [r4, #8]
ldr r0, _02218788 ; =0x0000114A
mov r1, #0
strb r1, [r4, r0]
ldr r0, [r5]
- bl FUN_02230218
+ bl MOD11_02230218
add r6, r0, #0
mov r5, #0
_02218730:
@@ -12703,7 +12703,7 @@ _02218730:
bl MOD09_02219C38
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #1
lsl r1, r1, #0xa
tst r0, r1
@@ -12872,7 +12872,7 @@ MOD09_02218888: ; 0x02218888
bl FUN_02002C50
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02230218
+ bl MOD11_02230218
bl FUN_0206F1B4
ldr r1, _02218950 ; =0x0000114D
strb r0, [r4, r1]
@@ -13340,7 +13340,7 @@ _02218C68:
ldr r0, [r4]
ldr r1, [r4, #0x10]
add r2, r7, #0
- bl FUN_02230014
+ bl MOD11_02230014
add r6, r0, #0
ldr r0, [r5, #0x10]
mov r1, #0x2e
@@ -13376,7 +13376,7 @@ _02218CDA:
str r0, [sp]
ldr r0, [r4]
ldr r1, [r4, #0x10]
- bl FUN_02230370
+ bl MOD11_02230370
cmp r0, #1
bne _02218D00
ldr r2, _02218E38 ; =0x0000114D
@@ -13391,7 +13391,7 @@ _02218D00:
cmp r6, #3
bne _02218D68
ldr r0, [r4]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #1
tst r0, r1
bne _02218D22
@@ -13500,10 +13500,10 @@ _02218DCE:
_02218DF2:
ldr r0, [r4]
ldr r1, [r4, #0x10]
- bl FUN_0222FF88
+ bl MOD11_0222FF88
add r6, r0, #0
ldr r0, [r4]
- bl FUN_02230290
+ bl MOD11_02230290
add r4, r0, #0
add r0, r6, #0
bl FUN_0206B9AC
@@ -13674,7 +13674,7 @@ _02218F0C:
cmp r0, #0
beq _02218F78
ldr r0, [r1]
- bl FUN_02230218
+ bl MOD11_02230218
add r6, r0, #0
mov r4, #0
_02218F4E:
@@ -13740,7 +13740,7 @@ _02218FB8: ; jump table
.short _0221906E - _02218FB8 - 2 ; case 4
_02218FC2:
ldr r0, [r4, #0x38]
- bl FUN_0225D824
+ bl MOD11_0225D824
cmp r0, #1
bne _02218FFA
ldr r0, _022190C0 ; =0x000005DD
@@ -13780,7 +13780,7 @@ _02219004:
b _022190B6
_02219014:
ldr r0, [r4, #0x38]
- bl FUN_0225D824
+ bl MOD11_0225D824
cmp r0, #1
bne _02219054
ldr r0, _022190C0 ; =0x000005DD
@@ -13824,7 +13824,7 @@ _0221905E:
b _022190B6
_0221906E:
ldr r0, [r4, #0x38]
- bl FUN_0225D824
+ bl MOD11_0225D824
cmp r0, #1
bne _022190AE
ldr r0, _022190C0 ; =0x000005DD
@@ -14044,7 +14044,7 @@ MOD09_022191C0: ; 0x022191C0
bl FUN_020030E8
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02230E44
+ bl MOD11_02230E44
add r4, r0, #0
bl FUN_0200CD60
add r1, r0, #0
@@ -14263,11 +14263,11 @@ _02219420: .word 0x0000114C
thumb_func_start MOD09_02219424
MOD09_02219424: ; 0x02219424
- ldr r3, _0221942C ; =0x02020989
+ ldr r3, _0221942C ; =FUN_02020988
add r0, r1, #0
bx r3
nop
-_0221942C: .word 0x02020989
+_0221942C: .word FUN_02020988
thumb_func_start MOD09_02219430
MOD09_02219430: ; 0x02219430
@@ -14275,13 +14275,13 @@ MOD09_02219430: ; 0x02219430
add r5, r0, #0
ldr r4, [r5]
ldr r0, [r4]
- bl FUN_0222FF78
+ bl MOD11_0222FF78
add r1, r0, #0
ldr r0, [r5]
ldr r3, [r4, #0x10]
ldr r0, [r0]
mov r2, #2
- bl FUN_0224C474
+ bl MOD11_0224C474
pop {r3, r4, r5, pc}
thumb_func_start MOD09_0221944C
@@ -14291,13 +14291,13 @@ MOD09_0221944C: ; 0x0221944C
add r7, r3, #0
add r5, r0, #0
add r6, r2, #0
- bl FUN_02230214
+ bl MOD11_02230214
add r1, r4, #0
mov r2, #1
add r3, r7, #0
bl FUN_0206EDD4
add r0, r5, #0
- bl FUN_02230218
+ bl MOD11_02230218
add r1, r4, #0
add r2, r6, #0
bl FUN_0206F1E4
@@ -14391,11 +14391,11 @@ MOD09_02219510: ; 0x02219510
add r1, r0, #0
ldr r0, [r1, #0x2c]
add r1, #0x30
- ldr r3, _0221951C ; =0x020191A5
+ ldr r3, _0221951C ; =FUN_020191A4
ldrb r1, [r1]
bx r3
.align 2, 0
-_0221951C: .word 0x020191A5
+_0221951C: .word FUN_020191A4
thumb_func_start MOD09_02219520
MOD09_02219520: ; 0x02219520
@@ -15246,7 +15246,7 @@ MOD09_02219C08: ; 0x02219C08
bl FUN_02002B60
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02230E54
+ bl MOD11_02230E54
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
@@ -15514,7 +15514,7 @@ MOD09_02219DF4: ; 0x02219DF4
stmia r2!, {r0, r1}
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
bl FUN_0200BB34
mov r1, #0xc3
@@ -15542,7 +15542,7 @@ MOD09_02219E40: ; 0x02219E40
add r6, r0, #0
ldr r0, [r6]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
add r7, r0, #0
mov r4, #0
_02219E52:
@@ -15624,7 +15624,7 @@ MOD09_02219EEC: ; 0x02219EEC
add r6, r1, #0
ldr r0, [r0]
add r4, r2, #0
- bl FUN_02230078
+ bl MOD11_02230078
add r7, r0, #0
add r0, r6, #0
mov r1, #1
@@ -15676,7 +15676,7 @@ MOD09_02219F54: ; 0x02219F54
ldr r0, [r5]
add r4, r1, #0
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
mov r2, #0
add r1, sp, #0
strh r2, [r1]
@@ -15745,7 +15745,7 @@ MOD09_02219FE4: ; 0x02219FE4
add r7, r0, #0
ldr r0, [r7]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
mov r6, #0x31
str r0, [sp]
mov r4, #0
@@ -15933,7 +15933,7 @@ MOD09_0221A158: ; 0x0221A158
add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
ldr r3, _0221A1AC ; =0x0000B4BE
add r4, r0, #0
str r3, [sp]
@@ -15944,7 +15944,7 @@ MOD09_0221A158: ; 0x0221A158
lsl r1, r1, #2
ldr r1, [r5, r1]
ldr r2, [r5, #8]
- bl FUN_0225D3EC
+ bl MOD11_0225D3EC
ldr r3, _0221A1AC ; =0x0000B4BE
mov r1, #0xc3
str r3, [sp]
@@ -15960,7 +15960,7 @@ MOD09_0221A158: ; 0x0221A158
ldr r1, [r5, r1]
ldr r2, [r2, #0xc]
add r0, r4, #0
- bl FUN_0225D484
+ bl MOD11_0225D484
add r1, r0, #0
ldr r0, [r5, #0x34]
bl MOD09_0221AC30
@@ -15976,7 +15976,7 @@ MOD09_0221A1B0: ; 0x0221A1B0
add r4, r0, #0
ldr r0, [r4, #0x34]
bl MOD09_0221AC24
- bl FUN_0225D508
+ bl MOD11_0225D508
ldr r3, _0221A1D8 ; =0x0000B4B9
mov r0, #0xc3
add r1, r3, #5
@@ -15984,7 +15984,7 @@ MOD09_0221A1B0: ; 0x0221A1B0
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
- bl FUN_0225D45C
+ bl MOD11_0225D45C
add sp, #4
pop {r3, r4, pc}
nop
@@ -16037,7 +16037,7 @@ MOD09_0221A224: ; 0x0221A224
bl MOD09_0221AC5C
ldr r0, [r4, #0x34]
bl MOD09_0221AC24
- bl FUN_0225D648
+ bl MOD11_0225D648
pop {r4, pc}
.align 2, 0
@@ -16048,7 +16048,7 @@ MOD09_0221A244: ; 0x0221A244
add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
ldr r3, _0221A290 ; =0x0000B4BD
add r4, r0, #0
str r3, [sp]
@@ -16059,7 +16059,7 @@ MOD09_0221A244: ; 0x0221A244
lsl r1, r1, #2
ldr r1, [r5, r1]
ldr r2, [r5, #8]
- bl FUN_0225D6A4
+ bl MOD11_0225D6A4
ldr r3, _0221A290 ; =0x0000B4BD
mov r1, #0xc3
str r3, [sp]
@@ -16074,7 +16074,7 @@ MOD09_0221A244: ; 0x0221A244
ldr r1, [r5, r1]
ldr r2, [r2, #0xc]
add r0, r4, #0
- bl FUN_0225D73C
+ bl MOD11_0225D73C
str r0, [r5, #0x38]
add sp, #0x14
pop {r4, r5, pc}
@@ -16087,7 +16087,7 @@ MOD09_0221A294: ; 0x0221A294
sub sp, #4
add r4, r0, #0
ldr r0, [r4, #0x38]
- bl FUN_0225D7B8
+ bl MOD11_0225D7B8
ldr r3, _0221A2B8 ; =0x0000B4B8
mov r0, #0xc3
add r1, r3, #5
@@ -16095,7 +16095,7 @@ MOD09_0221A294: ; 0x0221A294
lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
- bl FUN_0225D714
+ bl MOD11_0225D714
add sp, #4
pop {r3, r4, pc}
nop
@@ -16115,14 +16115,14 @@ MOD09_0221A2BC: ; 0x0221A2BC
ldr r0, [r4, #0x38]
ldr r1, [r1, r3]
ldr r2, [r2, r3]
- bl FUN_0225D800
+ bl MOD11_0225D800
ldr r0, [r4, #0x38]
mov r1, #0x3c
- bl FUN_0225D820
+ bl MOD11_0225D820
pop {r4, pc}
_0221A2E2:
ldr r0, [r4, #0x38]
- bl FUN_0225D80C
+ bl MOD11_0225D80C
pop {r4, pc}
nop
_0221A2EC: .word 0x0221BDC8
@@ -17275,10 +17275,10 @@ _0221AC12:
thumb_func_start MOD09_0221AC1C
MOD09_0221AC1C: ; 0x0221AC1C
- ldr r3, _0221AC20 ; =0x02016A19
+ ldr r3, _0221AC20 ; =FUN_02016A18
bx r3
.align 2, 0
-_0221AC20: .word 0x02016A19
+_0221AC20: .word FUN_02016A18
thumb_func_start MOD09_0221AC24
MOD09_0221AC24: ; 0x0221AC24
@@ -17318,7 +17318,7 @@ MOD09_0221AC34: ; 0x0221AC34
ldrb r2, [r3, #2]
ldrb r3, [r3, #1]
ldr r0, [r0]
- bl FUN_0225D5DC
+ bl MOD11_0225D5DC
_0221AC58:
add sp, #4
pop {r3, r4, pc}
@@ -17352,7 +17352,7 @@ MOD09_0221AC68: ; 0x0221AC68
ldrb r2, [r3, #2]
ldrb r3, [r3, #1]
ldr r0, [r4]
- bl FUN_0225D5DC
+ bl MOD11_0225D5DC
_0221AC92:
pop {r3, r4, r5, pc}
@@ -17389,7 +17389,7 @@ _0221ACA8:
ldrb r2, [r3, #2]
ldrb r3, [r3, #1]
ldr r0, [r0]
- bl FUN_0225D5DC
+ bl MOD11_0225D5DC
ldr r0, _0221ACE0 ; =0x000005DC
bl FUN_020054C8
_0221ACD4:
@@ -17622,7 +17622,7 @@ _0221AE70:
ldrb r2, [r3, #1]
ldrb r3, [r3, #2]
ldr r0, [r5]
- bl FUN_0225D5DC
+ bl MOD11_0225D5DC
ldr r0, _0221AEC0 ; =0x000005DC
bl FUN_020054C8
_0221AE8A:
@@ -17658,6 +17658,6 @@ _0221AEBC: .word 0x021C48B8
_0221AEC0: .word 0x000005DC
_0221AEC4: .word 0x000005DD
- .section .data
+ .section .rodata
; 0x0221AEC8
- .incbin "baserom.nds", 0x1AC068, 0x1138
+ .incbin "baserom.nds", 0x1AC068, 0x1120
diff --git a/arm9/modules/10/asm/module_10_dummy.s b/arm9/modules/10/asm/module_10_dummy.s
index bae0dc2d..8b137891 100644
--- a/arm9/modules/10/asm/module_10_dummy.s
+++ b/arm9/modules/10/asm/module_10_dummy.s
@@ -1,5 +1 @@
- .include "asm/macros.inc"
- .include "global.inc"
- .section .data
- .balign 4, 0
- .space 32
+
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index 8288a770..9112a837 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -879,7 +879,7 @@ _0222DC42:
bl MOD11_02231390
bl MOD11_0222EFDC
mov r0, #5
- bl FUN_02211F5C
+ bl MOD08_02211F5C
add r1, r4, #0
add r1, #0x8c
str r0, [r1]
@@ -1316,7 +1316,7 @@ _0222E10A:
add r0, r4, #0
add r0, #0x8c
ldr r0, [r0]
- bl FUN_02212024
+ bl MOD08_02212024
ldr r0, [r4, #0x30]
bl MOD11_0223D284
ldr r0, [r4, #0x44]
@@ -3053,10 +3053,10 @@ _0222EFD0: .word 0x04000580
thumb_func_start MOD11_0222EFD4
MOD11_0222EFD4: ; 0x0222EFD4
- ldr r3, _0222EFD8 ; =0x020223BD
+ ldr r3, _0222EFD8 ; =FUN_020223BC
bx r3
.align 2, 0
-_0222EFD8: .word 0x020223BD
+_0222EFD8: .word FUN_020223BC
thumb_func_start MOD11_0222EFDC
MOD11_0222EFDC: ; 0x0222EFDC
@@ -3211,7 +3211,7 @@ MOD11_0222F100: ; 0x0222F100
_0222F118:
cmp r0, #0
bne _0222F120
- bl FUN_02215A44
+ bl MOD08_02215A44
_0222F120:
add r0, r4, #0
add r0, #0x88
@@ -3379,7 +3379,7 @@ _0222F27C:
_0222F280: .word 0x00002434
thumb_func_start MOD11_0222F284
-MOD11_0222F284: ; 0x0222F284
+MOD11_0222F284: ; 0x0222F284 __sinit
push {r3, lr}
bl FUN_02033590
cmp r0, #0
@@ -4358,7 +4358,7 @@ _0222FAA4:
mov r0, #7
lsl r0, r0, #6
ldr r0, [r4, r0]
- bl FUN_02211E60
+ bl MOD07_02211E60
mov r0, #1
pop {r4, r5, r6, pc}
nop
@@ -4547,7 +4547,7 @@ _0222FC2A:
mov r0, #7
lsl r0, r0, #6
ldr r0, [r4, r0]
- bl FUN_02211E60
+ bl MOD07_02211E60
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
@@ -4813,7 +4813,7 @@ _0222FE40:
strb r1, [r0]
_0222FE48:
add r0, r6, #0
- bl FUN_02211E60
+ bl MOD07_02211E60
mov r0, #1
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
@@ -5432,11 +5432,11 @@ MOD11_02230218: ; 0x02230218
MOD11_0223021C: ; 0x0223021C
lsl r1, r1, #2
add r0, r0, r1
- ldr r3, _02230228 ; =0x020239CD
+ ldr r3, _02230228 ; =FUN_020239CC
ldr r0, [r0, #0x48]
bx r3
nop
-_02230228: .word 0x020239CD
+_02230228: .word FUN_020239CC
thumb_func_start MOD11_0223022C
MOD11_0223022C: ; 0x0223022C
@@ -7002,11 +7002,11 @@ _02230E40:
MOD11_02230E44: ; 0x02230E44
mov r1, #0x6d
lsl r1, r1, #2
- ldr r3, _02230E50 ; =0x02025085
+ ldr r3, _02230E50 ; =FUN_02025084
ldr r0, [r0, r1]
bx r3
nop
-_02230E50: .word 0x02025085
+_02230E50: .word FUN_02025084
thumb_func_start MOD11_02230E54
MOD11_02230E54: ; 0x02230E54
@@ -7029,11 +7029,11 @@ _02230E62:
MOD11_02230E70: ; 0x02230E70
mov r1, #0x6d
lsl r1, r1, #2
- ldr r3, _02230E7C ; =0x02025049
+ ldr r3, _02230E7C ; =FUN_02025048
ldr r0, [r0, r1]
bx r3
nop
-_02230E7C: .word 0x02025049
+_02230E7C: .word FUN_02025048
thumb_func_start MOD11_02230E80
MOD11_02230E80: ; 0x02230E80
@@ -7605,22 +7605,22 @@ _02231288: .word 0x0000242C
MOD11_0223128C: ; 0x0223128C
mov r2, #0x86
lsl r2, r2, #2
- ldr r3, _02231298 ; =0x0202A0E9
+ ldr r3, _02231298 ; =FUN_0202A0E8
ldr r0, [r0, r2]
bx r3
nop
-_02231298: .word 0x0202A0E9
+_02231298: .word FUN_0202A0E8
thumb_func_start MOD11_0223129C
MOD11_0223129C: ; 0x0223129C
mov r1, #0x86
lsl r1, r1, #2
ldr r0, [r0, r1]
- ldr r3, _022312A8 ; =0x0202A171
+ ldr r3, _022312A8 ; =FUN_0202A170
mov r1, #0x16
bx r3
.align 2, 0
-_022312A8: .word 0x0202A171
+_022312A8: .word FUN_0202A170
thumb_func_start MOD11_022312AC
MOD11_022312AC: ; 0x022312AC
@@ -8186,13 +8186,13 @@ _02231664:
thumb_func_start MOD11_02231668
MOD11_02231668: ; 0x02231668
- ldr r3, _02231674 ; =0x02024595
+ ldr r3, _02231674 ; =FUN_02024594
lsl r1, r1, #0x10
ldr r0, [r0, #0x60]
lsr r1, r1, #0x10
bx r3
nop
-_02231674: .word 0x02024595
+_02231674: .word FUN_02024594
thumb_func_start MOD11_02231678
MOD11_02231678: ; 0x02231678
@@ -9450,19 +9450,19 @@ MOD11_022320C8: ; 0x022320C8
thumb_func_start MOD11_022320EC
MOD11_022320EC: ; 0x022320EC
- ldr r3, _022320F4 ; =0x0200AD5D
+ ldr r3, _022320F4 ; =FUN_0200AD5C
ldr r0, [r0, #0x14]
bx r3
nop
-_022320F4: .word 0x0200AD5D
+_022320F4: .word FUN_0200AD5C
thumb_func_start MOD11_022320F8
MOD11_022320F8: ; 0x022320F8
- ldr r3, _02232100 ; =0x0200AE39
+ ldr r3, _02232100 ; =FUN_0200AE38
ldr r0, [r0, #0x14]
bx r3
nop
-_02232100: .word 0x0200AE39
+_02232100: .word FUN_0200AE38
thumb_func_start MOD11_02232104
MOD11_02232104: ; 0x02232104
@@ -9504,35 +9504,35 @@ _02232134:
thumb_func_start MOD11_02232148
MOD11_02232148: ; 0x02232148
- ldr r3, _02232150 ; =0x0200AF19
+ ldr r3, _02232150 ; =FUN_0200AF18
ldr r0, [r0, #0x14]
bx r3
nop
-_02232150: .word 0x0200AF19
+_02232150: .word FUN_0200AF18
thumb_func_start MOD11_02232154
MOD11_02232154: ; 0x02232154
- ldr r3, _0223215C ; =0x0200ADCD
+ ldr r3, _0223215C ; =FUN_0200ADCC
ldr r0, [r0, #0x14]
bx r3
nop
-_0223215C: .word 0x0200ADCD
+_0223215C: .word FUN_0200ADCC
thumb_func_start MOD11_02232160
MOD11_02232160: ; 0x02232160
- ldr r3, _02232168 ; =0x0200AF51
+ ldr r3, _02232168 ; =FUN_0200AF50
ldr r0, [r0, #0x14]
bx r3
nop
-_02232168: .word 0x0200AF51
+_02232168: .word FUN_0200AF50
thumb_func_start MOD11_0223216C
MOD11_0223216C: ; 0x0223216C
- ldr r3, _02232174 ; =0x0200AF89
+ ldr r3, _02232174 ; =FUN_0200AF88
ldr r0, [r0, #0x14]
bx r3
nop
-_02232174: .word 0x0200AF89
+_02232174: .word FUN_0200AF88
thumb_func_start MOD11_02232178
MOD11_02232178: ; 0x02232178
@@ -9560,11 +9560,11 @@ MOD11_0223219C: ; 0x0223219C
thumb_func_start MOD11_022321A0
MOD11_022321A0: ; 0x022321A0
- ldr r3, _022321A8 ; =0x0200AFBD
+ ldr r3, _022321A8 ; =FUN_0200AFBC
ldr r0, [r0, #0x14]
bx r3
nop
-_022321A8: .word 0x0200AFBD
+_022321A8: .word FUN_0200AFBC
thumb_func_start MOD11_022321AC
MOD11_022321AC: ; 0x022321AC
@@ -28775,7 +28775,7 @@ _0223B916:
bl FUN_0201D658
str r0, [r4, #0x54]
add r0, sp, #0xd0
- bl FUN_021EEF0C
+ bl MOD16_021EEF0C
str r0, [r4, #0x50]
mov r0, #0xd
add sp, #0x158
@@ -28783,7 +28783,7 @@ _0223B916:
pop {r3, r4, r5, r6, r7, pc}
_0223B990:
ldr r0, [r4, #0x50]
- bl FUN_021EEF84
+ bl MOD16_021EEF84
cmp r0, #0
beq _0223BA4C
ldr r0, _0223BBE0 ; =0x021C48B8
@@ -28818,12 +28818,12 @@ _0223B9BC:
bl FUN_02003210
ldr r0, [r4, #0x50]
mov r1, #0
- bl FUN_021EEF9C
+ bl MOD05_021EEF9C
add sp, #0x158
pop {r3, r4, r5, r6, r7, pc}
_0223B9E4:
ldr r0, [r4, #0x50]
- bl FUN_021EEF98
+ bl MOD16_021EEF98
add r5, r0, #0
mov r1, #0
mov r2, #4
@@ -28843,7 +28843,7 @@ _0223B9E4:
pop {r3, r4, r5, r6, r7, pc}
_0223BA12:
ldr r0, [r4, #0x50]
- bl FUN_021EEF68
+ bl MOD05_021EEF68
ldr r0, [r4, #0x54]
bl FUN_0201D674
ldr r0, [r4]
@@ -31766,7 +31766,7 @@ MOD11_0223D1DC: ; 0x0223D1DC
add r0, r5, #0
add r1, r4, #0
add r3, r2, #0
- bl FUN_021EFBF4
+ bl MOD16_021EFBF4
_0223D216:
ldr r0, _0223D230 ; =0x000003DE
add r0, r4, r0
@@ -69264,16 +69264,16 @@ _0224F1AA:
strb r0, [r4, #0x12]
pop {r3, r4, r5, r6, pc}
_0224F1B2:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
beq _0224F1C2
_0224F1C0:
b _0224F2D8
_0224F1C2:
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
mov r0, #0xff
add sp, #0x6c
strb r0, [r4, #0x12]
@@ -69929,7 +69929,7 @@ _0224F6F6:
cmp r0, #0
beq _0224F772
mov r0, #5
- bl FUN_02211F5C
+ bl MOD08_02211F5C
str r0, [r4, #0x24]
add r0, r4, #0
add r0, #0x81
@@ -69962,15 +69962,15 @@ _0224F772:
pop {r4, r5, pc}
_0224F77C:
ldr r0, [r4, #0x24]
- bl FUN_02212384
+ bl MOD08_02212384
ldr r0, [r4, #0x24]
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _0224F7C0
ldr r0, [r4, #0x24]
- bl FUN_022123B0
+ bl MOD08_022123B0
ldr r0, [r4, #0x24]
- bl FUN_02212024
+ bl MOD08_02212024
mov r0, #0xff
add r4, #0x83
add sp, #0x9c
@@ -70142,7 +70142,7 @@ _0224F84C:
bl FUN_02007558
ldr r0, [r4]
mov r1, #5
- bl FUN_0221590C
+ bl MOD08_0221590C
str r0, [r4, #0x10]
add r0, r4, #0
add r0, #0x83
@@ -70211,7 +70211,7 @@ _0224F980:
b _0224FD86
_0224F982:
ldr r0, [r4, #0x10]
- bl FUN_02215918
+ bl MOD08_02215918
add r0, r4, #0
add r0, #0x8e
ldrh r0, [r0]
@@ -70576,13 +70576,13 @@ _0224FC92:
strb r0, [r4]
pop {r3, r4, r5, r6, pc}
_0224FC9C:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _0224FD86
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x83
ldrb r0, [r0]
@@ -70801,16 +70801,16 @@ _0224FE10:
strb r0, [r4]
pop {r4, r5, r6, pc}
_0224FE6C:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
beq _0224FE7C
_0224FE7A:
b _0224FFDE
_0224FE7C:
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x6b
ldrb r0, [r0]
@@ -72875,7 +72875,7 @@ MOD11_02250F44: ; 0x02250F44
ldrb r1, [r4, #9]
add r5, r0, #0
ldr r0, [r4]
- bl FUN_021F45A4
+ bl MOD16_021F45A4
add r2, r0, #0
ldrb r1, [r4, #9]
ldr r0, [r4]
@@ -73200,7 +73200,7 @@ _022511FA:
_02251206:
ldrb r1, [r6, #0x1d]
ldr r0, [r6]
- bl FUN_021EFD8C
+ bl MOD16_021EFD8C
cmp r0, #0xff
beq _0225128C
add r4, r0, #1
@@ -73651,7 +73651,7 @@ _02251540:
ldr r0, [r4, #4]
str r1, [r0, #0x18]
ldr r0, [r4, #4]
- bl FUN_022186F0
+ bl MOD09_022186F0
add sp, #0x1fc
mov r0, #3
add sp, #0x14
@@ -73663,7 +73663,7 @@ _022515C2:
add r0, #0x25
strb r1, [r0]
ldr r0, [r4, #4]
- bl FUN_022186F0
+ bl MOD09_022186F0
ldrb r0, [r4, #0xe]
add r0, r0, #1
strb r0, [r4, #0xe]
@@ -73872,7 +73872,7 @@ _0225175C:
str r1, [r0, #0x1c]
ldr r0, [r4, #8]
ldr r0, [r0, #4]
- bl FUN_02211E60
+ bl MOD07_02211E60
ldrb r0, [r4, #0xe]
add sp, #0x1fc
add sp, #0x14
@@ -74908,15 +74908,15 @@ _02251F76:
_02251FA2:
ldr r0, [r4]
bl MOD11_02230070
- bl FUN_02212384
+ bl MOD08_02212384
ldr r0, [r4]
bl MOD11_02230070
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _02251FEA
ldr r0, [r4]
bl MOD11_02230070
- bl FUN_022123B0
+ bl MOD08_022123B0
ldrb r0, [r4, #0xe]
add sp, #0x1fc
add sp, #0x14
@@ -75381,7 +75381,7 @@ _0225239C:
strb r1, [r0, #0x15]
_022523A2:
ldr r0, [r4, #4]
- bl FUN_02211E60
+ bl MOD07_02211E60
ldrb r0, [r4, #0xa]
add sp, #0x24
add r0, r0, #1
@@ -75499,13 +75499,13 @@ _02252490:
_0225249A:
ldr r0, [r5]
add r1, r6, #0
- bl FUN_021F4A30
+ bl MOD16_021F4A30
add r4, r0, #0
cmp r4, #6
bne _022524FE
ldr r0, [r5]
add r1, r6, #0
- bl FUN_021F4698
+ bl MOD16_021F4698
add r4, r0, #0
cmp r4, #6
bne _022524FE
@@ -76114,13 +76114,13 @@ _02252974:
pop {r3, r4, r5, pc}
_02252996:
ldr r0, [r4, #0xc]
- bl FUN_02212384
+ bl MOD08_02212384
ldr r0, [r4, #0xc]
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _022529B8
ldr r0, [r4, #0xc]
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x6a
ldrb r0, [r0]
@@ -76437,13 +76437,13 @@ _02252BBA:
strb r0, [r4]
pop {r4, r5, r6, pc}
_02252C16:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _02252C8A
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x66
ldrb r0, [r0]
@@ -76862,13 +76862,13 @@ _02252F18:
strb r0, [r4]
pop {r4, r5, r6, pc}
_02252F74:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _02252FB6
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x62
ldrb r0, [r0]
@@ -77477,7 +77477,7 @@ _02253440:
add r1, #0x32
strb r0, [r1]
ldr r0, [r4, #4]
- bl FUN_02211E60
+ bl MOD07_02211E60
ldrb r0, [r4, #0xa]
add sp, #0xc
add r0, r0, #1
@@ -77782,7 +77782,7 @@ _022536EE:
ldrb r2, [r4, #0xd]
ldr r0, [r4]
mov r1, #5
- bl FUN_022156C0
+ bl MOD08_022156C0
ldr r1, [r4, #4]
add r1, #0x8c
str r0, [r1]
@@ -77817,7 +77817,7 @@ _02253734:
ldr r0, [r4, #4]
add r0, #0x8c
ldr r0, [r0]
- bl FUN_02215988
+ bl MOD08_02215988
cmp r0, #3
bne _0225374E
ldrb r0, [r4, #0xe]
@@ -77831,7 +77831,7 @@ _0225374E:
ldrb r1, [r4, #0xd]
add r0, #0x8c
ldr r0, [r0]
- bl FUN_0221594C
+ bl MOD08_0221594C
ldr r0, [r4, #4]
mov r1, #0
add r0, #0x8c
@@ -79584,7 +79584,7 @@ _02254452:
ldr r1, [sp, #0xc]
lsr r2, r2, #0x10
add r3, sp, #0x1c
- bl FUN_02212048
+ bl MOD08_02212048
add sp, #0xac
pop {r4, r5, r6, r7, pc}
@@ -91571,11 +91571,11 @@ _0225A3F0: .word MOD11_0225A3F4
thumb_func_start MOD11_0225A3F4
MOD11_0225A3F4: ; 0x0225A3F4
- ldr r3, _0225A3FC ; =0x0200C5A9
+ ldr r3, _0225A3FC ; =FUN_0200C5A8
add r0, r1, #0
bx r3
nop
-_0225A3FC: .word 0x0200C5A9
+_0225A3FC: .word FUN_0200C5A8
thumb_func_start MOD11_0225A400
MOD11_0225A400: ; 0x0225A400
@@ -92513,7 +92513,7 @@ MOD11_0225AB34: ; 0x0225AB34
mov r2, #5
mov r3, #1
str r4, [sp]
- bl FUN_02211E7C
+ bl MOD08_02211E7C
pop {r3, r4, r5, pc}
thumb_func_start MOD11_0225AB50
@@ -98209,12 +98209,12 @@ _0225D650:
thumb_func_start MOD11_0225D664
MOD11_0225D664: ; 0x0225D664
- ldr r3, _0225D66C ; =0x0200C645
+ ldr r3, _0225D66C ; =FUN_0200C644
ldr r0, [r0, #0x10]
mov r1, #0
bx r3
.align 2, 0
-_0225D66C: .word 0x0200C645
+_0225D66C: .word FUN_0200C644
thumb_func_start MOD11_0225D670
MOD11_0225D670: ; 0x0225D670
@@ -98632,6 +98632,20 @@ MOD11_0225D98C: ; 0x0225D98C
strb r1, [r0, #0x1e]
bx lr
- .section .data
+ .section .rodata
; 0x0225D998
- .incbin "baserom.nds", 0x1dd7d8, 0x2608
+ .incbin "baserom.nds", 0x1dd7d8, 0x2580
+
+ ; Stupid hack to override alignment
+ ; .section .sinit
+ ; 0x0225FF18
+ .global SDK_OVERLAY.MODULE_11.SINIT_START
+ .global SDK_OVERLAY.MODULE_11.SINIT_END
+SDK_OVERLAY.MODULE_11.SINIT_START:
+ .word MOD11_0222F284
+ .word 0
+SDK_OVERLAY.MODULE_11.SINIT_END:
+
+ .section .data
+ ; 0x0225FF20
+ .incbin "baserom.nds", 0x1dfd60, 0x80
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index 36381bcf..f7999898 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -154,10 +154,10 @@ MOD12_0222D5C0: ; 0x0222D5C0
str r0, [r4, #0x10]
bl MOD12_0222DCAC
mov r0, #0x15
- bl FUN_02211F5C
+ bl MOD08_02211F5C
mov r1, #1
str r0, [r4, #0x2c]
- bl FUN_02211FF0
+ bl MOD08_02211FF0
mov r0, #0
mov r1, #0x1a
mov r2, #0xbf
@@ -434,7 +434,7 @@ MOD12_0222D9B0: ; 0x0222D9B0
add r4, r0, #0
bl FUN_02012EAC
ldr r0, [r4, #0x2c]
- bl FUN_02212024
+ bl MOD08_02212024
add r0, r4, #0
bl MOD12_0222DDC4
add r0, r4, #0
@@ -568,7 +568,7 @@ MOD12_0222DB18: ; 0x0222DB18
bne _0222DB3E
ldr r0, [r4, #0x10]
bl FUN_02006ED4
- bl FUN_02215A44
+ bl MOD08_02215A44
ldr r0, [r4, #0x28]
bl FUN_0200BC1C
bl FUN_0200BC38
@@ -3637,7 +3637,7 @@ _0222F3A4:
ldr r0, [r5, r7]
cmp r0, #0
beq _0222F3AE
- bl FUN_021DD540
+ bl MOD17_021DD540
_0222F3AE:
add r6, r6, #1
add r5, #0x10
@@ -3748,7 +3748,7 @@ _0222F4B0:
ldr r0, [r5, r7]
cmp r0, #0
beq _0222F4BA
- bl FUN_021DD58C
+ bl MOD17_021DD58C
_0222F4BA:
add r4, r4, #1
add r5, #0x10
@@ -3791,13 +3791,13 @@ _0222F50E:
ldr r0, [r5, r7]
cmp r0, #0
beq _0222F518
- bl FUN_021DD518
+ bl MOD17_021DD518
_0222F518:
add r4, r4, #1
add r5, #0x10
cmp r4, #4
blt _0222F50E
- bl FUN_02215A44
+ bl MOD08_02215A44
ldr r0, [r6, #0x2c]
bl FUN_0200BC1C
bl FUN_0200BC38
@@ -4162,12 +4162,12 @@ _0222F820: .word 0x000080EA
thumb_func_start MOD12_0222F824
MOD12_0222F824: ; 0x0222F824
- ldr r3, _0222F82C ; =0x0200C369
+ ldr r3, _0222F82C ; =FUN_0200C368
ldr r0, [r0, #0x2c]
ldr r1, _0222F830 ; =0x000080EA
bx r3
.align 2, 0
-_0222F82C: .word 0x0200C369
+_0222F82C: .word FUN_0200C368
_0222F830: .word 0x000080EA
thumb_func_start MOD12_0222F834
@@ -5629,7 +5629,7 @@ _0223045A:
ldr r0, [r5, #0x18]
cmp r0, #0
beq _02230464
- bl FUN_021DD58C
+ bl MOD17_021DD58C
_02230464:
add r6, r6, #1
add r5, #0x10
@@ -5737,13 +5737,13 @@ _0223053C:
ldr r0, [r5, #0x18]
cmp r0, #0
beq _02230546
- bl FUN_021DD518
+ bl MOD17_021DD518
_02230546:
add r4, r4, #1
add r5, #0x10
cmp r4, #4
blt _0223053C
- bl FUN_02215A44
+ bl MOD08_02215A44
ldr r0, [r6, #0x70]
bl FUN_0200BC1C
bl FUN_0200BC38
@@ -5933,10 +5933,10 @@ MOD12_022306A4: ; 0x022306A4
thumb_func_start MOD12_022306F0
MOD12_022306F0: ; 0x022306F0
- ldr r3, _022306F4 ; =0x02012CC9
+ ldr r3, _022306F4 ; =FUN_02012CC8
bx r3
.align 2, 0
-_022306F4: .word 0x02012CC9
+_022306F4: .word FUN_02012CC8
thumb_func_start MOD12_022306F8
MOD12_022306F8: ; 0x022306F8
@@ -7445,7 +7445,7 @@ _022312B4: .word 0x00001158
_022312B8: .word 0x00000127
thumb_func_start MOD12_022312BC
-MOD12_022312BC: ; 0x022312BC
+MOD12_022312BC: ; 0x022312BC __sinit
push {r3, lr}
ldr r0, _022312D0 ; =SDK_OVERLAY_MODULE_08_ID
mov r1, #2
@@ -7537,10 +7537,10 @@ _02231374: .word 0x04000580
thumb_func_start MOD12_02231378
MOD12_02231378: ; 0x02231378
- ldr r3, _0223137C ; =0x020223BD
+ ldr r3, _0223137C ; =FUN_020223BC
bx r3
.align 2, 0
-_0223137C: .word 0x020223BD
+_0223137C: .word FUN_020223BC
thumb_func_start MOD12_02231380
MOD12_02231380: ; 0x02231380
@@ -7680,12 +7680,12 @@ MOD12_02231490: ; 0x02231490
lsr r3, r3, #1
sub r1, r1, r3
_0223149A:
- ldr r3, _022314A4 ; =0x020118C5
+ ldr r3, _022314A4 ; =FUN_020118C4
ldr r0, [r0]
sub r2, #8
bx r3
nop
-_022314A4: .word 0x020118C5
+_022314A4: .word FUN_020118C4
thumb_func_start MOD12_022314A8
MOD12_022314A8: ; 0x022314A8
@@ -11875,10 +11875,10 @@ _02233498: .word 0x000080F6
thumb_func_start MOD12_0223349C
MOD12_0223349C: ; 0x0223349C
- ldr r3, _022334A0 ; =0x0200C3DD
+ ldr r3, _022334A0 ; =FUN_0200C3DC
bx r3
.align 2, 0
-_022334A0: .word 0x0200C3DD
+_022334A0: .word FUN_0200C3DC
thumb_func_start MOD12_022334A4
MOD12_022334A4: ; 0x022334A4
@@ -11953,10 +11953,10 @@ _02233530: .word 0x0224519C
thumb_func_start MOD12_02233534
MOD12_02233534: ; 0x02233534
- ldr r3, _02233538 ; =0x0200C3DD
+ ldr r3, _02233538 ; =FUN_0200C3DC
bx r3
.align 2, 0
-_02233538: .word 0x0200C3DD
+_02233538: .word FUN_0200C3DC
thumb_func_start MOD12_0223353C
MOD12_0223353C: ; 0x0223353C
@@ -12621,10 +12621,10 @@ _02233A60: .word 0x0224533C
thumb_func_start MOD12_02233A64
MOD12_02233A64: ; 0x02233A64
- ldr r3, _02233A68 ; =0x0200C3DD
+ ldr r3, _02233A68 ; =FUN_0200C3DC
bx r3
.align 2, 0
-_02233A68: .word 0x0200C3DD
+_02233A68: .word FUN_0200C3DC
thumb_func_start MOD12_02233A6C
MOD12_02233A6C: ; 0x02233A6C
@@ -18670,7 +18670,7 @@ _022368EA:
ldrh r2, [r4, r2]
ldr r0, [r0, #0x2c]
add r1, sp, #0xbc
- bl FUN_02212048
+ bl MOD08_02212048
ldr r0, [r4]
ldr r1, [r0, #0xc]
ldrb r0, [r4, #0xd]
@@ -18745,15 +18745,15 @@ _0223696A:
_022369D6:
ldr r0, [r4]
ldr r0, [r0, #0x2c]
- bl FUN_02212384
+ bl MOD08_02212384
ldr r0, [r4]
ldr r0, [r0, #0x2c]
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _02236A8E
ldr r0, [r4]
ldr r0, [r0, #0x2c]
- bl FUN_022123B0
+ bl MOD08_022123B0
add r1, r5, #0
add r1, #0xf2
ldrb r0, [r4, r1]
@@ -25566,12 +25566,12 @@ _02239B78: .word 0x02245F4A
thumb_func_start MOD12_02239B7C
MOD12_02239B7C: ; 0x02239B7C
- ldr r3, _02239B84 ; =0x0201BD71
+ ldr r3, _02239B84 ; =FUN_0201BD70
add r0, #0xd0
ldrb r0, [r0]
bx r3
.align 2, 0
-_02239B84: .word 0x0201BD71
+_02239B84: .word FUN_0201BD70
thumb_func_start MOD12_02239B88
MOD12_02239B88: ; 0x02239B88
@@ -25709,7 +25709,7 @@ _02239C6C:
ldr r0, [r1, r0]
cmp r0, #0
beq _02239C8E
- bl FUN_021DD540
+ bl MOD17_021DD540
ldr r1, [r4]
lsl r0, r5, #4
add r2, r1, r0
@@ -25755,7 +25755,7 @@ _02239C90:
add r1, r2, r1
add r1, #0xf8
ldr r1, [r1]
- bl FUN_021DD4F4
+ bl MOD17_021DD4F4
ldrb r1, [r7]
lsl r1, r1, #4
add r2, r6, r1
@@ -25767,7 +25767,7 @@ _02239C90:
add r0, r6, r0
ldr r0, [r0, r1]
mov r1, #0
- bl FUN_021DD594
+ bl MOD17_021DD594
ldr r0, _02239D78 ; =0x04000048
mov r2, #0x3f
ldrh r1, [r0]
@@ -25888,7 +25888,7 @@ _02239DB4:
add r2, #8
ldr r1, [r5, r1]
ldr r2, [r5, r2]
- bl FUN_021DD678
+ bl MOD17_021DD678
ldrb r0, [r4, #0x11]
ldr r1, [r4]
lsl r0, r0, #4
@@ -25897,7 +25897,7 @@ _02239DB4:
lsl r0, r0, #4
ldr r0, [r1, r0]
mov r1, #1
- bl FUN_021DD594
+ bl MOD17_021DD594
ldrb r0, [r4, #0x10]
add r0, r0, #1
strb r0, [r4, #0x10]
@@ -26577,7 +26577,7 @@ _0223A32C:
ldr r1, [r4, #0x14]
asr r2, r2, #8
asr r1, r1, #8
- bl FUN_021DD678
+ bl MOD17_021DD678
pop {r3, r4, r5, pc}
_0223A348:
ldrb r0, [r4, #0x11]
@@ -26587,7 +26587,7 @@ _0223A348:
mov r0, #0xf2
lsl r0, r0, #4
ldr r0, [r1, r0]
- bl FUN_021DD540
+ bl MOD17_021DD540
ldrb r0, [r4, #0x11]
mov r2, #0
ldr r1, [r4]
@@ -27456,7 +27456,7 @@ _0223A9A8:
add r1, r2, r1
add r1, #0xf8
ldr r1, [r1]
- bl FUN_021DD4F4
+ bl MOD17_021DD4F4
add r1, r5, #0
add r1, #0x46
ldrb r1, [r1]
@@ -27474,7 +27474,7 @@ _0223A9A8:
add r0, r2, r0
ldr r0, [r0, r1]
mov r1, #0
- bl FUN_021DD594
+ bl MOD17_021DD594
ldrb r0, [r5, #0x10]
add sp, #0x10
add r0, r0, #1
@@ -27722,7 +27722,7 @@ _0223ABFA:
ldr r0, [r0, r3]
add r2, r1, #0
add r3, #0xe0
- bl FUN_021DD60C
+ bl MOD05_021DD60C
ldrb r1, [r4, #0xe]
ldr r2, [r4]
mov r0, #0x80
@@ -27744,7 +27744,7 @@ _0223ABFA:
sub r0, r1, #4
ldr r0, [r2, r0]
mov r1, #1
- bl FUN_021DD594
+ bl MOD17_021DD594
ldrb r0, [r4, #0xc]
add r0, r0, #1
strb r0, [r4, #0xc]
@@ -27775,7 +27775,7 @@ _0223AC68:
ldr r1, [r4, #4]
ldr r2, [r4, #8]
add r3, #0xe0
- bl FUN_021DD60C
+ bl MOD05_021DD60C
ldrb r0, [r4, #0xe]
mov r2, #0xf2
lsl r2, r2, #4
@@ -27788,7 +27788,7 @@ _0223AC68:
ldr r1, [r3, r1]
ldr r2, [r3, r2]
add r3, r6, #0
- bl FUN_021DD678
+ bl MOD17_021DD678
mov r0, #1
ldr r1, [r4, #4]
lsl r0, r0, #0xc
@@ -30653,26 +30653,26 @@ _0223C27C:
add r1, r2, r1
add r1, #0xf8
ldr r1, [r1]
- bl FUN_021DD4F4
+ bl MOD17_021DD4F4
lsl r1, r6, #4
add r2, r5, r1
str r0, [r2, #0x18]
ldr r1, [r2, #0x1c]
ldr r2, [r2, #0x20]
- bl FUN_021DD620
+ bl MOD17_021DD620
cmp r4, #0
ble _0223C2EE
lsl r0, r6, #4
add r0, r5, r0
ldr r0, [r0, #0x18]
mov r1, #0
- bl FUN_021DD59C
+ bl MOD17_021DD59C
lsl r0, r6, #4
add r0, r5, r0
mov r1, #0x63
ldr r0, [r0, #0x18]
mvn r1, r1
- bl FUN_021DD6CC
+ bl MOD17_021DD6CC
_0223C2EE:
add r4, r4, #1
_0223C2F0:
@@ -30692,7 +30692,7 @@ MOD12_0223C300: ; 0x0223C300
add r6, r4, #0
_0223C308:
ldr r0, [r5, #4]
- bl FUN_021DD540
+ bl MOD17_021DD540
add r0, r5, #0
add r0, #0x98
add r4, r4, #1
@@ -31736,11 +31736,11 @@ _0223CB14: .word 0x00009CAE
MOD12_0223CB18: ; 0x0223CB18
mov r1, #2
lsl r1, r1, #8
- ldr r3, _0223CB24 ; =0x0200CAB5
+ ldr r3, _0223CB24 ; =FUN_0200CAB4
ldr r0, [r0, r1]
bx r3
nop
-_0223CB24: .word 0x0200CAB5
+_0223CB24: .word FUN_0200CAB4
thumb_func_start MOD12_0223CB28
MOD12_0223CB28: ; 0x0223CB28
@@ -32469,7 +32469,7 @@ _0223D0BC:
ldr r0, [r4]
add r2, r1, #0
lsl r3, r3, #0xc
- bl FUN_021DD60C
+ bl MOD05_021DD60C
pop {r4, pc}
.align 2, 0
@@ -33486,7 +33486,7 @@ _0223D836:
str r2, [r4, #8]
ldr r0, [r4]
ldr r1, [r4, #4]
- bl FUN_021DD620
+ bl MOD17_021DD620
ldr r0, [sp, #4]
add sp, #0xc
pop {r4, r5, r6, r7, pc}
@@ -33692,7 +33692,7 @@ _0223D9BE:
str r2, [r6, #8]
ldr r0, [r6]
ldr r1, [r6, #4]
- bl FUN_021DD620
+ bl MOD17_021DD620
ldr r0, [sp, #0xc]
add sp, #0x14
pop {r4, r5, r6, r7, pc}
@@ -33896,7 +33896,7 @@ _0223DB8A:
ldr r0, [r4]
lsl r1, r1, #8
lsr r1, r1, #0x10
- bl FUN_021DD604
+ bl MOD17_021DD604
ldr r0, [sp]
cmp r0, #0
bne _0223DBA0
@@ -33947,7 +33947,7 @@ _0223DBB0:
str r2, [r4, #8]
ldr r0, [r4]
ldr r1, [r4, #4]
- bl FUN_021DD620
+ bl MOD17_021DD620
ldr r0, [sp, #0x10]
add sp, #0x1c
pop {r4, r5, r6, r7, pc}
@@ -34529,7 +34529,7 @@ _0223E01C:
ldr r0, [r2]
ldr r1, [r2, #4]
ldr r2, [r2, #8]
- bl FUN_021DD620
+ bl MOD17_021DD620
_0223E054:
pop {r3, r4, r5, r6, r7, pc}
nop
@@ -34820,12 +34820,12 @@ _0223E2A4: .word 0x02246226
thumb_func_start MOD12_0223E2A8
MOD12_0223E2A8: ; 0x0223E2A8
ldr r1, _0223E2B0 ; =0x00000AB8
- ldr r3, _0223E2B4 ; =0x0201BD71
+ ldr r3, _0223E2B4 ; =FUN_0201BD70
ldrb r0, [r0, r1]
bx r3
.align 2, 0
_0223E2B0: .word 0x00000AB8
-_0223E2B4: .word 0x0201BD71
+_0223E2B4: .word FUN_0201BD70
thumb_func_start MOD12_0223E2B8
MOD12_0223E2B8: ; 0x0223E2B8
@@ -34963,11 +34963,11 @@ _0223E3CA:
strb r0, [r1, #0xc]
_0223E3CE:
ldr r0, [r1, #4]
- ldr r3, _0223E3D8 ; =0x0200C59D
+ ldr r3, _0223E3D8 ; =FUN_0200C59C
ldr r0, [r0]
bx r3
nop
-_0223E3D8: .word 0x0200C59D
+_0223E3D8: .word FUN_0200C59C
thumb_func_start MOD12_0223E3DC
MOD12_0223E3DC: ; 0x0223E3DC
@@ -35014,12 +35014,12 @@ _0223E438: .word 0x00027100
thumb_func_start MOD12_0223E43C
MOD12_0223E43C: ; 0x0223E43C
- ldr r3, _0223E444 ; =0x0200C645
+ ldr r3, _0223E444 ; =FUN_0200C644
ldr r0, [r0, #4]
mov r1, #0
bx r3
.align 2, 0
-_0223E444: .word 0x0200C645
+_0223E444: .word FUN_0200C644
thumb_func_start MOD12_0223E448
MOD12_0223E448: ; 0x0223E448
@@ -35306,7 +35306,7 @@ _0223E66A:
ldr r0, [r2]
ldr r1, [r2, #4]
ldr r2, [r2, #8]
- bl FUN_021DD620
+ bl MOD17_021DD620
pop {r3, r4, r5, pc}
_0223E686:
ldr r0, [r4, #0xc]
@@ -35385,7 +35385,7 @@ _0223E702:
ldr r0, [r2]
ldr r1, [r2, #4]
ldr r2, [r2, #8]
- bl FUN_021DD620
+ bl MOD17_021DD620
pop {r3, r4, r5, pc}
_0223E720:
ldr r0, [r4, #0xc]
@@ -36094,11 +36094,11 @@ _0223EC9E:
ldr r0, [r5, #0x18]
bne _0223ECAE
add r1, r7, #0
- bl FUN_021DD6B8
+ bl MOD17_021DD6B8
b _0223ECB4
_0223ECAE:
add r1, r6, #0
- bl FUN_021DD6B8
+ bl MOD17_021DD6B8
_0223ECB4:
add r4, r4, #1
add r5, #0x10
@@ -36121,7 +36121,7 @@ MOD12_0223ECD0: ; 0x0223ECD0
_0223ECD8:
ldr r0, [r5, #0x18]
add r1, r6, #0
- bl FUN_021DD6B8
+ bl MOD17_021DD6B8
add r4, r4, #1
add r5, #0x10
cmp r4, #4
@@ -36273,7 +36273,7 @@ MOD12_0223EDAC: ; 0x0223EDAC
_0223EDF4:
ldr r0, [r4]
add r1, r6, #0
- bl FUN_021DD6B8
+ bl MOD17_021DD6B8
ldr r0, _0223EE0C ; =MOD12_0223EE14
ldr r2, _0223EE10 ; =0x00009C40
add r1, r4, #0
@@ -36313,7 +36313,7 @@ _0223EE30:
add r1, sp, #4
ldrh r1, [r1]
ldr r0, [r5]
- bl FUN_021DD6B8
+ bl MOD17_021DD6B8
ldrb r0, [r5, #0x10]
cmp r4, r0
blt _0223EE6A
@@ -38823,11 +38823,11 @@ _0224013C:
str r0, [r5, #0x10]
ldr r0, [r5, #8]
ldr r0, [r0]
- bl FUN_021DD59C
+ bl MOD17_021DD59C
ldr r0, [r5, #8]
mov r1, #0x64
ldr r0, [r0]
- bl FUN_021DD6CC
+ bl MOD17_021DD6CC
b _02240184
_02240164:
bl MOD12_0223C210
@@ -38837,12 +38837,12 @@ _02240164:
ldr r0, [r5, #8]
mov r1, #0
ldr r0, [r0]
- bl FUN_021DD59C
+ bl MOD17_021DD59C
ldr r0, [r5, #8]
mov r1, #0x63
ldr r0, [r0]
mvn r1, r1
- bl FUN_021DD6CC
+ bl MOD17_021DD6CC
_02240184:
ldr r0, [r5]
mov r1, #2
@@ -38936,7 +38936,7 @@ _0224021C:
ldr r0, [r2]
ldr r1, [r2, #4]
ldr r2, [r2, #8]
- bl FUN_021DD620
+ bl MOD17_021DD620
ldr r0, [r5, #4]
ldr r1, [r5, #8]
bl MOD12_0223D09C
@@ -40568,10 +40568,10 @@ MOD12_02240E34: ; 0x02240E34
thumb_func_start MOD12_02240E7C
MOD12_02240E7C: ; 0x02240E7C
- ldr r3, _02240E80 ; =0x0200C359
+ ldr r3, _02240E80 ; =FUN_0200C358
bx r3
.align 2, 0
-_02240E80: .word 0x0200C359
+_02240E80: .word FUN_0200C358
thumb_func_start MOD12_02240E84
MOD12_02240E84: ; 0x02240E84
@@ -40612,10 +40612,10 @@ _02240EA6:
thumb_func_start MOD12_02240EC8
MOD12_02240EC8: ; 0x02240EC8
- ldr r3, _02240ECC ; =0x0200C3DD
+ ldr r3, _02240ECC ; =FUN_0200C3DC
bx r3
.align 2, 0
-_02240ECC: .word 0x0200C3DD
+_02240ECC: .word FUN_0200C3DC
thumb_func_start MOD12_02240ED0
MOD12_02240ED0: ; 0x02240ED0
@@ -41734,7 +41734,7 @@ MOD12_0224182C: ; 0x0224182C
bne _02241854
ldr r0, [r4, #0x14]
bl FUN_02006ED4
- bl FUN_02215A44
+ bl MOD08_02215A44
ldr r0, [r4, #0x2c]
bl FUN_0200BC1C
bl FUN_0200BC38
@@ -43608,11 +43608,11 @@ _022426A8: .word 0x0224664E
MOD12_022426AC: ; 0x022426AC
mov r1, #0xe6
lsl r1, r1, #2
- ldr r3, _022426B8 ; =0x0201BD71
+ ldr r3, _022426B8 ; =FUN_0201BD70
ldrb r0, [r0, r1]
bx r3
nop
-_022426B8: .word 0x0201BD71
+_022426B8: .word FUN_0201BD70
thumb_func_start MOD12_022426BC
MOD12_022426BC: ; 0x022426BC
@@ -48103,6 +48103,9 @@ _0224496A:
_02244988:
pop {r4, r5, r6, pc}
- .section .data
+ .section .rodata
; 0x0224498C
- .incbin "baserom.nds", 0x1F71CC, 0x1E94
+ .incbin "baserom.nds", 0x1F71CC, 0x1E84
+
+ .section .sinit
+ .word MOD12_022312BC
diff --git a/arm9/modules/13/asm/module_13_arm1.s b/arm9/modules/13/asm/module_13_arm1.s
index edb71ead..ffde9a27 100644
--- a/arm9/modules/13/asm/module_13_arm1.s
+++ b/arm9/modules/13/asm/module_13_arm1.s
@@ -6049,3 +6049,15 @@ MOD13_022172A0: ; 0x022172A0
bx lr
.align 2, 0
_022172D8: .word 0x02240B28
+
+ .section .rodata
+ ; 0x0223C420
+ .incbin "baserom.nds", 0x2237C0, 0x24
+
+ .section .data
+ ; 0x0223F780
+ .incbin "baserom.nds", 0x226B20, 0x38
+
+ .section .bss
+ ; 0x02240A40
+ .space 0xF4
diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s
index 7910e1a0..41959f32 100644
--- a/arm9/modules/13/asm/module_13_arm2.s
+++ b/arm9/modules/13/asm/module_13_arm2.s
@@ -5214,7 +5214,7 @@ MOD13_02222D0C: ; 0x02222D0C
sub sp, sp, #4
ldr r0, _02222D74 ; =0x02243048
ldr r0, [r0]
- blx MOD13_02219798
+ bl MOD13_02219798
cmp r0, #0
ldreq r1, _02222D78 ; =0x02243044
moveq r0, #1
@@ -5246,7 +5246,7 @@ _02222D78: .word 0x02243044
MOD13_02222D7C: ; 0x02222D7C
stmdb sp!, {r4, lr}
mov r4, r0
- blx MOD13_02219C9C
+ bl MOD13_02219C9C
cmp r4, #0
beq _02222DC0
ldr r0, _02222DCC ; =0x02243048
@@ -5329,7 +5329,7 @@ _02222E48:
bl OS_GetMacAddress
ldr r0, _02222EE0 ; =MOD13_02222CFC
ldr r1, _02222EE4 ; =MOD13_02222CF0
- blx MOD13_02219D58
+ bl MOD13_02219D58
cmp r0, #0
addeq sp, sp, #0x104
ldmeqia sp!, {pc}
@@ -6270,7 +6270,7 @@ MOD13_02223AF8: ; 0x02223AF8
stmdb sp!, {lr}
sub sp, sp, #0xec
add r0, sp, #0
- blx MOD13_0221A794
+ bl MOD13_0221A794
cmp r0, #1
beq _02223B14
bl OS_Terminate
@@ -6313,7 +6313,7 @@ _02223B7C:
ldmia sp!, {pc}
_02223B88:
add r0, sp, #0
- blx MOD13_0221A794
+ bl MOD13_0221A794
cmp r0, #1
beq _02223B9C
bl OS_Terminate
@@ -6344,7 +6344,7 @@ _02223BDC: .word 0x02243078
MOD13_02223BE0: ; 0x02223BE0
stmdb sp!, {lr}
sub sp, sp, #4
- blx MOD13_0221A7EC
+ bl MOD13_0221A7EC
cmp r0, #1
beq _02223BF8
bl OS_Terminate
@@ -6373,7 +6373,7 @@ MOD13_02223C0C: ; 0x02223C0C
mov r0, #0xf
mov r1, #0x40
str ip, [sp, #4]
- blx MOD13_0221A8A4
+ bl MOD13_0221A8A4
cmp r0, #1
beq _02223C58
bl OS_Terminate
@@ -21960,7 +21960,7 @@ MOD13_02231018: ; 0x02231018
stmdb sp!, {r4, r5, lr}
sub sp, sp, #4
mov r5, r0
- bl FUN_021EBB80
+ bl MOD04_021EBB80
movs r4, r0
addeq sp, sp, #4
ldmeqia sp!, {r4, r5, pc}
@@ -21975,7 +21975,7 @@ MOD13_02231018: ; 0x02231018
bl MOD13_0223424C
b _0223106C
_0223105C:
- bl FUN_021EBAE8
+ bl MOD04_021EBAE8
bl MOD13_0222B0BC
mov r0, #0x12
bl MOD13_0223424C
@@ -21996,7 +21996,7 @@ MOD13_02231090: ; 0x02231090
stmdb sp!, {r4, lr}
bl MOD13_022338FC
mov r4, r0
- bl FUN_021EB9D8
+ bl MOD04_021EB9D8
cmp r0, #0
ldmeqia sp!, {r4, pc}
bl FUN_02095324
@@ -22162,7 +22162,7 @@ MOD13_0223126C: ; 0x0223126C
addne r0, r0, #1
strneb r0, [sp, #0xe]
add r0, sp, #4
- bl FUN_021EBC60
+ bl MOD04_021EBC60
cmp r0, #0
bne _022312C8
bl OS_Terminate
@@ -22172,7 +22172,7 @@ _022312C8:
bne _022312E0
ldrb r0, [r4, #0xf4]
mov r1, r4
- bl FUN_021EB9A4
+ bl MOD04_021EB9A4
_022312E0:
mov r0, #0
ldr r1, _02231300 ; =MOD13_02231018
@@ -35364,10 +35364,14 @@ _0223C330:
_0223C418: .word 0x0224320C
_0223C41C: .word 0x0223F764
+ .section .rodata
+ ; 0x0223EC6C
+ .incbin "baserom.nds", 0x22600C, 0xafc
+
.section .data
; 0x0223C420
- .incbin "baserom.nds", 0x2237C0, 0x4620
+ .incbin "baserom.nds", 0x226CD4, 0x110C
.section .bss
- ; 0x02240A40
- .space 0x27E0
+ ; 0x02242FE4
+ .space 0x23C
diff --git a/arm9/modules/13/asm/module_13_thumb.s b/arm9/modules/13/asm/module_13_thumb.s
index b180ff6b..c231800c 100644
--- a/arm9/modules/13/asm/module_13_thumb.s
+++ b/arm9/modules/13/asm/module_13_thumb.s
@@ -14777,3 +14777,15 @@ _0221E556:
bx r3
.align 2, 0
_0221E55C: .word 0x02241B30
+
+ .section .rodata
+ ; 0x0223C444
+ .incbin "baserom.nds", 0x2237e4, 0x2828
+
+ .section .data
+ ; 0x0223F7B8
+ .incbin "baserom.nds", 0x226B58, 0x17C
+
+ .section .bss
+ ; 0x02240B34
+ .space 0x24B0
diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s
index 42e1c73b..0f23da14 100644
--- a/arm9/modules/14/asm/module_14.s
+++ b/arm9/modules/14/asm/module_14.s
@@ -5820,7 +5820,7 @@ _021DA41E:
mov r2, #1
mov r3, #0
bl FUN_0206E314
- ldr r0, _021DA5DC ; =0x0000004B
+ ldr r0, _021DA5DC ; =SDK_OVERLAY_MODULE_75_ID
mov r1, #2
bl HandleLoadOverlay
mov r1, #0x85
@@ -5860,7 +5860,7 @@ _021DA498:
lsl r0, r0, #2
ldr r0, [r4, r0]
bl FUN_02016A18
- ldr r0, _021DA5DC ; =0x0000004B
+ ldr r0, _021DA5DC ; =SDK_OVERLAY_MODULE_75_ID
bl UnloadOverlayByID
ldr r0, _021DA5E4 ; =0x021E6A00
ldr r6, [r0, #8]
@@ -5992,7 +5992,7 @@ _021DA5D6:
pop {r4, r5, r6, pc}
.align 2, 0
_021DA5D8: .word 0x021E6264
-_021DA5DC: .word 0x0000004B
+_021DA5DC: .word SDK_OVERLAY_MODULE_75_ID
_021DA5E0: .word 0x021EC68C
_021DA5E4: .word 0x021E6A00
_021DA5E8: .word 0x021C48B8
@@ -7805,11 +7805,11 @@ MOD14_021DB470: ; 0x021DB470
thumb_func_start MOD14_021DB490
MOD14_021DB490: ; 0x021DB490
- ldr r3, _021DB498 ; =0x02016A19
+ ldr r3, _021DB498 ; =FUN_02016A18
ldr r0, [r0]
bx r3
nop
-_021DB498: .word 0x02016A19
+_021DB498: .word FUN_02016A18
thumb_func_start MOD14_021DB49C
MOD14_021DB49C: ; 0x021DB49C
@@ -7829,11 +7829,11 @@ MOD14_021DB49C: ; 0x021DB49C
thumb_func_start MOD14_021DB4BC
MOD14_021DB4BC: ; 0x021DB4BC
- ldr r3, _021DB4C4 ; =0x02021A21
+ ldr r3, _021DB4C4 ; =FUN_02021A20
ldr r0, [r0, #4]
bx r3
nop
-_021DB4C4: .word 0x02021A21
+_021DB4C4: .word FUN_02021A20
thumb_func_start MOD14_021DB4C8
MOD14_021DB4C8: ; 0x021DB4C8
@@ -9849,11 +9849,11 @@ MOD14_021DC3AC: ; 0x021DC3AC
MOD14_021DC3B4: ; 0x021DC3B4
mov r1, #0x69
lsl r1, r1, #2
- ldr r3, _021DC3C0 ; =0x02025085
+ ldr r3, _021DC3C0 ; =FUN_02025084
ldr r0, [r0, r1]
bx r3
nop
-_021DC3C0: .word 0x02025085
+_021DC3C0: .word FUN_02025084
thumb_func_start MOD14_021DC3C4
MOD14_021DC3C4: ; 0x021DC3C4
@@ -13176,10 +13176,10 @@ _021DDD3C:
thumb_func_start MOD14_021DDD40
MOD14_021DDD40: ; 0x021DDD40
- ldr r3, _021DDD44 ; =0x0200CA61
+ ldr r3, _021DDD44 ; =FUN_0200CA60
bx r3
.align 2, 0
-_021DDD44: .word 0x0200CA61
+_021DDD44: .word FUN_0200CA60
thumb_func_start MOD14_021DDD48
MOD14_021DDD48: ; 0x021DDD48
@@ -17686,12 +17686,12 @@ _021E0024:
thumb_func_start MOD14_021E002C
MOD14_021E002C: ; 0x021E002C
- ldr r3, _021E0034 ; =0x02020131
+ ldr r3, _021E0034 ; =FUN_02020130
ldr r0, [r0, #4]
mov r1, #1
bx r3
.align 2, 0
-_021E0034: .word 0x02020131
+_021E0034: .word FUN_02020130
thumb_func_start MOD14_021E0038
MOD14_021E0038: ; 0x021E0038
@@ -19244,11 +19244,11 @@ _021E0C64:
_021E0C66:
ldr r0, [r1]
ldrh r1, [r1, #0x2c]
- ldr r3, _021E0C70 ; =0x02020249
+ ldr r3, _021E0C70 ; =FUN_02020248
add r1, r1, r2
bx r3
.align 2, 0
-_021E0C70: .word 0x02020249
+_021E0C70: .word FUN_02020248
thumb_func_start MOD14_021E0C74
MOD14_021E0C74: ; 0x021E0C74
@@ -27001,12 +27001,12 @@ _021E4762:
thumb_func_start MOD14_021E4764
MOD14_021E4764: ; 0x021E4764
- ldr r3, _021E476C ; =0x0201797D
+ ldr r3, _021E476C ; =FUN_0201797C
mov r0, #4
mov r1, #0
bx r3
.align 2, 0
-_021E476C: .word 0x0201797D
+_021E476C: .word FUN_0201797C
thumb_func_start MOD14_021E4770
MOD14_021E4770: ; 0x021E4770
@@ -30394,9 +30394,13 @@ MOD14_021E6220: ; 0x021E6220
ldr r0, [r0, #0x74]
bx lr
- .section .data
+ .section .rodata
; 0x021E6224
- .incbin "baserom.nds", 0x236b44, 0x7dc
+ .incbin "baserom.nds", 0x236b44, 0x7a4
+
+ .section .data
+ ; 0x021E69E0
+ .incbin "baserom.nds", 0x237300, 0x1C
.section .bss
; 0x021E69FC
diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s
index bd9eb99a..88e9d55a 100644
--- a/arm9/modules/15/asm/module_15.s
+++ b/arm9/modules/15/asm/module_15.s
@@ -2402,11 +2402,11 @@ MOD15_021D86E4: ; 0x021D86E4
thumb_func_start MOD15_021D86E8
MOD15_021D86E8: ; 0x021D86E8
- ldr r3, _021D86F0 ; =0x02085411
+ ldr r3, _021D86F0 ; =FUN_02085410
ldr r0, [r0]
bx r3
nop
-_021D86F0: .word 0x02085411
+_021D86F0: .word FUN_02085410
thumb_func_start MOD15_021D86F4
MOD15_021D86F4: ; 0x021D86F4
@@ -2417,11 +2417,11 @@ MOD15_021D86F4: ; 0x021D86F4
thumb_func_start MOD15_021D86FC
MOD15_021D86FC: ; 0x021D86FC
- ldr r3, _021D8704 ; =0x02013921
+ ldr r3, _021D8704 ; =FUN_02013920
add r0, #8
bx r3
nop
-_021D8704: .word 0x02013921
+_021D8704: .word FUN_02013920
thumb_func_start MOD15_021D8708
MOD15_021D8708: ; 0x021D8708
@@ -2440,11 +2440,11 @@ _021D8718:
thumb_func_start MOD15_021D8720
MOD15_021D8720: ; 0x021D8720
- ldr r3, _021D8728 ; =0x02013841
+ ldr r3, _021D8728 ; =FUN_02013840
add r0, #8
bx r3
nop
-_021D8728: .word 0x02013841
+_021D8728: .word FUN_02013840
thumb_func_start MOD15_021D872C
MOD15_021D872C: ; 0x021D872C
@@ -2560,11 +2560,11 @@ _021D87DC:
thumb_func_start MOD15_021D87E0
MOD15_021D87E0: ; 0x021D87E0
- ldr r3, _021D87E8 ; =0x02085415
+ ldr r3, _021D87E8 ; =FUN_02085414
ldr r0, [r0]
bx r3
nop
-_021D87E8: .word 0x02085415
+_021D87E8: .word FUN_02085414
thumb_func_start MOD15_021D87EC
MOD15_021D87EC: ; 0x021D87EC
@@ -2676,10 +2676,10 @@ _021D88CE:
thumb_func_start MOD15_021D88D0
MOD15_021D88D0: ; 0x021D88D0
- ldr r3, _021D88D4 ; =0x0200CA61
+ ldr r3, _021D88D4 ; =FUN_0200CA60
bx r3
.align 2, 0
-_021D88D4: .word 0x0200CA61
+_021D88D4: .word FUN_0200CA60
thumb_func_start MOD15_021D88D8
MOD15_021D88D8: ; 0x021D88D8
@@ -4967,11 +4967,11 @@ _021D9B2C: .word 0x0000FFFE
thumb_func_start MOD15_021D9B30
MOD15_021D9B30: ; 0x021D9B30
- ldr r3, _021D9B38 ; =0x02021A21
+ ldr r3, _021D9B38 ; =FUN_02021A20
ldr r0, [r0]
bx r3
nop
-_021D9B38: .word 0x02021A21
+_021D9B38: .word FUN_02021A20
thumb_func_start MOD15_021D9B3C
MOD15_021D9B3C: ; 0x021D9B3C
@@ -5718,37 +5718,37 @@ MOD15_021DA0B8: ; 0x021DA0B8
thumb_func_start MOD15_021DA0F4
MOD15_021DA0F4: ; 0x021DA0F4
- ldr r3, _021DA0FC ; =0x02020131
+ ldr r3, _021DA0FC ; =FUN_02020130
ldr r0, [r0, #0xc]
mov r1, #3
bx r3
.align 2, 0
-_021DA0FC: .word 0x02020131
+_021DA0FC: .word FUN_02020130
thumb_func_start MOD15_021DA100
MOD15_021DA100: ; 0x021DA100
- ldr r3, _021DA108 ; =0x02020131
+ ldr r3, _021DA108 ; =FUN_02020130
ldr r0, [r0, #0xc]
mov r1, #2
bx r3
.align 2, 0
-_021DA108: .word 0x02020131
+_021DA108: .word FUN_02020130
thumb_func_start MOD15_021DA10C
MOD15_021DA10C: ; 0x021DA10C
- ldr r3, _021DA114 ; =0x020200A1
+ ldr r3, _021DA114 ; =FUN_020200A0
ldr r0, [r0, #0xc]
bx r3
nop
-_021DA114: .word 0x020200A1
+_021DA114: .word FUN_020200A0
thumb_func_start MOD15_021DA118
MOD15_021DA118: ; 0x021DA118
- ldr r3, _021DA120 ; =0x02020129
+ ldr r3, _021DA120 ; =FUN_02020128
ldr r0, [r0, #0xc]
bx r3
nop
-_021DA120: .word 0x02020129
+_021DA120: .word FUN_02020128
thumb_func_start MOD15_021DA124
MOD15_021DA124: ; 0x021DA124
@@ -8748,6 +8748,6 @@ _021DB85C:
.align 2, 0
_021DB868: .word 0x021DBA55
- .section .data
+ .section .rodata
; 0x021DB86C
- .incbin "baserom.nds", 0x23B78C, 0x2F4
+ .incbin "baserom.nds", 0x23B78C, 0x2F0
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s
index 7d62c0f0..4c66bac5 100644
--- a/arm9/modules/16/asm/module_16.s
+++ b/arm9/modules/16/asm/module_16.s
@@ -229,10 +229,10 @@ MOD16_021D7684: ; 0x021D7684
thumb_func_start MOD16_021D76A4
MOD16_021D76A4: ; 0x021D76A4
- ldr r3, _021D76A8 ; =0x0200E309
+ ldr r3, _021D76A8 ; =FUN_0200E308
bx r3
.align 2, 0
-_021D76A8: .word 0x0200E309
+_021D76A8: .word FUN_0200E308
thumb_func_end MOD16_021D76A4
thumb_func_start MOD16_021D76AC
@@ -2954,11 +2954,11 @@ _021D8B1C:
thumb_func_start MOD16_021D8B30
MOD16_021D8B30: ; 0x021D8B30
- ldr r3, _021D8B38 ; =0x02020129
+ ldr r3, _021D8B38 ; =FUN_02020128
ldr r0, [r0]
bx r3
nop
-_021D8B38: .word 0x02020129
+_021D8B38: .word FUN_02020128
thumb_func_end MOD16_021D8B30
thumb_func_start MOD16_021D8B3C
@@ -3527,11 +3527,11 @@ MOD16_021D8F60: ; 0x021D8F60
thumb_func_start MOD16_021D8F90
MOD16_021D8F90: ; 0x021D8F90
- ldr r3, _021D8F98 ; =0x02019179
+ ldr r3, _021D8F98 ; =FUN_02019178
add r0, r0, #4
bx r3
nop
-_021D8F98: .word 0x02019179
+_021D8F98: .word FUN_02019178
thumb_func_end MOD16_021D8F90
thumb_func_start MOD16_021D8F9C
@@ -4322,11 +4322,11 @@ _021D95E0: .word MOD16_021D95F4
MOD16_021D95E4: ; 0x021D95E4
mov r1, #0x9d
lsl r1, r1, #2
- ldr r3, _021D95F0 ; =0x0200CAB5
+ ldr r3, _021D95F0 ; =FUN_0200CAB4
ldr r0, [r0, r1]
bx r3
nop
-_021D95F0: .word 0x0200CAB5
+_021D95F0: .word FUN_0200CAB4
thumb_func_end MOD16_021D95E4
thumb_func_start MOD16_021D95F4
@@ -4712,13 +4712,13 @@ _021D98D8: .word 0x00001748
thumb_func_start MOD16_021D98DC
MOD16_021D98DC: ; 0x021D98DC
- ldr r3, _021D98E8 ; =0x02024675
+ ldr r3, _021D98E8 ; =FUN_02024674
lsl r1, r1, #0x10
ldr r0, [r0]
lsr r1, r1, #0x10
bx r3
nop
-_021D98E8: .word 0x02024675
+_021D98E8: .word FUN_02024674
thumb_func_end MOD16_021D98DC
thumb_func_start MOD16_021D98EC
@@ -4882,84 +4882,84 @@ _021D99F0:
thumb_func_start MOD16_021D99F4
MOD16_021D99F4: ; 0x021D99F4
- ldr r3, _021D99FC ; =0x0202471D
+ ldr r3, _021D99FC ; =FUN_0202471C
ldr r0, [r0]
bx r3
nop
-_021D99FC: .word 0x0202471D
+_021D99FC: .word FUN_0202471C
thumb_func_end MOD16_021D99F4
thumb_func_start MOD16_021D9A00
MOD16_021D9A00: ; 0x021D9A00
- ldr r3, _021D9A08 ; =0x020247A5
+ ldr r3, _021D9A08 ; =FUN_020247A4
ldr r0, [r0]
bx r3
nop
-_021D9A08: .word 0x020247A5
+_021D9A08: .word FUN_020247A4
thumb_func_end MOD16_021D9A00
thumb_func_start MOD16_021D9A0C
MOD16_021D9A0C: ; 0x021D9A0C
- ldr r3, _021D9A14 ; =0x02024829
+ ldr r3, _021D9A14 ; =FUN_02024828
ldr r0, [r0]
bx r3
nop
-_021D9A14: .word 0x02024829
+_021D9A14: .word FUN_02024828
thumb_func_end MOD16_021D9A0C
thumb_func_start MOD16_021D9A18
MOD16_021D9A18: ; 0x021D9A18
- ldr r3, _021D9A20 ; =0x0202489D
+ ldr r3, _021D9A20 ; =FUN_0202489C
ldr r0, [r0]
bx r3
nop
-_021D9A20: .word 0x0202489D
+_021D9A20: .word FUN_0202489C
thumb_func_end MOD16_021D9A18
thumb_func_start MOD16_021D9A24
MOD16_021D9A24: ; 0x021D9A24
- ldr r3, _021D9A2C ; =0x0202490D
+ ldr r3, _021D9A2C ; =FUN_0202490C
ldr r0, [r0]
bx r3
nop
-_021D9A2C: .word 0x0202490D
+_021D9A2C: .word FUN_0202490C
thumb_func_end MOD16_021D9A24
thumb_func_start MOD16_021D9A30
MOD16_021D9A30: ; 0x021D9A30
- ldr r3, _021D9A38 ; =0x02024649
+ ldr r3, _021D9A38 ; =FUN_02024648
ldr r0, [r0]
mov r1, #0
bx r3
.align 2, 0
-_021D9A38: .word 0x02024649
+_021D9A38: .word FUN_02024648
thumb_func_end MOD16_021D9A30
thumb_func_start MOD16_021D9A3C
MOD16_021D9A3C: ; 0x021D9A3C
- ldr r3, _021D9A44 ; =0x02024931
+ ldr r3, _021D9A44 ; =FUN_02024930
ldr r0, [r0]
bx r3
nop
-_021D9A44: .word 0x02024931
+_021D9A44: .word FUN_02024930
thumb_func_end MOD16_021D9A3C
thumb_func_start MOD16_021D9A48
MOD16_021D9A48: ; 0x021D9A48
- ldr r3, _021D9A50 ; =0x02024971
+ ldr r3, _021D9A50 ; =FUN_02024970
ldr r0, [r0]
bx r3
nop
-_021D9A50: .word 0x02024971
+_021D9A50: .word FUN_02024970
thumb_func_end MOD16_021D9A48
thumb_func_start MOD16_021D9A54
MOD16_021D9A54: ; 0x021D9A54
- ldr r3, _021D9A5C ; =0x02024CA5
+ ldr r3, _021D9A5C ; =FUN_02024CA4
ldr r0, [r0]
bx r3
nop
-_021D9A5C: .word 0x02024CA5
+_021D9A5C: .word FUN_02024CA4
thumb_func_end MOD16_021D9A54
thumb_func_start MOD16_021D9A60
@@ -5709,11 +5709,11 @@ _021D9F72:
thumb_func_start MOD16_021D9F80
MOD16_021D9F80: ; 0x021D9F80
- ldr r3, _021D9F88 ; =0x02024CC5
+ ldr r3, _021D9F88 ; =FUN_02024CC4
ldr r0, [r0]
bx r3
nop
-_021D9F88: .word 0x02024CC5
+_021D9F88: .word FUN_02024CC4
thumb_func_end MOD16_021D9F80
thumb_func_start MOD16_021D9F8C
@@ -8453,11 +8453,11 @@ MOD16_021DB388: ; 0x021DB388
thumb_func_start MOD16_021DB3BC
MOD16_021DB3BC: ; 0x021DB3BC
- ldr r3, _021DB3C4 ; =0x020191A5
+ ldr r3, _021DB3C4 ; =FUN_020191A4
mov r1, #1
bx r3
nop
-_021DB3C4: .word 0x020191A5
+_021DB3C4: .word FUN_020191A4
thumb_func_end MOD16_021DB3BC
thumb_func_start MOD16_021DB3C8
@@ -8590,10 +8590,10 @@ _021DB49E:
thumb_func_start MOD16_021DB4A8
MOD16_021DB4A8: ; 0x021DB4A8
- ldr r3, _021DB4AC ; =0x02016A19
+ ldr r3, _021DB4AC ; =FUN_02016A18
bx r3
.align 2, 0
-_021DB4AC: .word 0x02016A19
+_021DB4AC: .word FUN_02016A18
thumb_func_end MOD16_021DB4A8
thumb_func_start MOD16_021DB4B0
@@ -9663,22 +9663,22 @@ _021DBBA8:
thumb_func_start MOD16_021DBBAC
MOD16_021DBBAC: ; 0x021DBBAC
- ldr r3, _021DBBB0 ; =0x02021A21
+ ldr r3, _021DBBB0 ; =FUN_02021A20
bx r3
.align 2, 0
-_021DBBB0: .word 0x02021A21
+_021DBBB0: .word FUN_02021A20
thumb_func_end MOD16_021DBBAC
thumb_func_start MOD16_021DBBB4
MOD16_021DBBB4: ; 0x021DBBB4
add r1, r0, #1
ldr r0, _021DBBC0 ; =0x021FF568
- ldr r3, _021DBBC4 ; =0x02087A39
+ ldr r3, _021DBBC4 ; =FUN_02087A38
ldrb r0, [r0, r1]
bx r3
nop
_021DBBC0: .word 0x021FF568
-_021DBBC4: .word 0x02087A39
+_021DBBC4: .word FUN_02087A38
thumb_func_end MOD16_021DBBB4
thumb_func_start MOD16_021DBBC8
@@ -28228,22 +28228,22 @@ _021E4534:
thumb_func_start MOD16_021E4538
MOD16_021E4538: ; 0x021E4538
- ldr r3, _021E4540 ; =0x02020399
+ ldr r3, _021E4540 ; =FUN_02020398
ldr r0, [r0]
mov r1, #1
bx r3
.align 2, 0
-_021E4540: .word 0x02020399
+_021E4540: .word FUN_02020398
thumb_func_end MOD16_021E4538
thumb_func_start MOD16_021E4544
MOD16_021E4544: ; 0x021E4544
- ldr r3, _021E454C ; =0x02020399
+ ldr r3, _021E454C ; =FUN_02020398
ldr r0, [r0]
mov r1, #0
bx r3
.align 2, 0
-_021E454C: .word 0x02020399
+_021E454C: .word FUN_02020398
thumb_func_end MOD16_021E4544
thumb_func_start MOD16_021E4550
@@ -28576,11 +28576,11 @@ _021E47D4: .word 0x0000083F
thumb_func_start MOD16_021E47D8
MOD16_021E47D8: ; 0x021E47D8
- ldr r3, _021E47E0 ; =0x0201FFC9
+ ldr r3, _021E47E0 ; =FUN_0201FFC8
ldr r0, [r0]
bx r3
nop
-_021E47E0: .word 0x0201FFC9
+_021E47E0: .word FUN_0201FFC8
thumb_func_end MOD16_021E47D8
thumb_func_start MOD16_021E47E4
@@ -44846,13 +44846,13 @@ _021EC10C: .word 0x0000FFFF
thumb_func_start MOD16_021EC110
MOD16_021EC110: ; 0x021EC110
- ldr r3, _021EC11C ; =0x02004829
+ ldr r3, _021EC11C ; =FUN_02004828
add r1, r0, #0
mov r0, #8
mov r2, #0
bx r3
nop
-_021EC11C: .word 0x02004829
+_021EC11C: .word FUN_02004828
thumb_func_end MOD16_021EC110
thumb_func_start MOD16_021EC120
@@ -45330,22 +45330,22 @@ _021EC456:
thumb_func_start MOD16_021EC45C
MOD16_021EC45C: ; 0x021EC45C
- ldr r3, _021EC464 ; =0x02020399
+ ldr r3, _021EC464 ; =FUN_02020398
ldr r0, [r0, #0x10]
mov r1, #1
bx r3
.align 2, 0
-_021EC464: .word 0x02020399
+_021EC464: .word FUN_02020398
thumb_func_end MOD16_021EC45C
thumb_func_start MOD16_021EC468
MOD16_021EC468: ; 0x021EC468
- ldr r3, _021EC470 ; =0x02020399
+ ldr r3, _021EC470 ; =FUN_02020398
ldr r0, [r0, #0x10]
mov r1, #0
bx r3
.align 2, 0
-_021EC470: .word 0x02020399
+_021EC470: .word FUN_02020398
thumb_func_end MOD16_021EC468
thumb_func_start MOD16_021EC474
@@ -45767,11 +45767,11 @@ _021EC7D0: .word 0x00001748
thumb_func_start MOD16_021EC7D4
MOD16_021EC7D4: ; 0x021EC7D4
- ldr r3, _021EC7DC ; =0x0201FFC9
+ ldr r3, _021EC7DC ; =FUN_0201FFC8
ldr r0, [r0, #0x10]
bx r3
nop
-_021EC7DC: .word 0x0201FFC9
+_021EC7DC: .word FUN_0201FFC8
thumb_func_end MOD16_021EC7D4
thumb_func_start MOD16_021EC7E0
@@ -46079,13 +46079,13 @@ MOD16_021ECA48: ; 0x021ECA48
thumb_func_start MOD16_021ECA64
MOD16_021ECA64: ; 0x021ECA64
- ldr r3, _021ECA70 ; =0x02007559
+ ldr r3, _021ECA70 ; =FUN_02007558
add r2, r1, #0
mov r1, #1
add r2, #0x58
bx r3
nop
-_021ECA70: .word 0x02007559
+_021ECA70: .word FUN_02007558
thumb_func_end MOD16_021ECA64
thumb_func_start MOD16_021ECA74
@@ -49068,11 +49068,11 @@ MOD16_021EE110: ; 0x021EE110
thumb_func_start MOD16_021EE14C
MOD16_021EE14C: ; 0x021EE14C
- ldr r3, _021EE154 ; =0x02013EA9
+ ldr r3, _021EE154 ; =FUN_02013EA8
ldr r0, [r0, #0xc]
bx r3
nop
-_021EE154: .word 0x02013EA9
+_021EE154: .word FUN_02013EA8
thumb_func_end MOD16_021EE14C
thumb_func_start MOD16_021EE158
@@ -50660,11 +50660,11 @@ _021EECF4: .word 0x0000083F
thumb_func_start MOD16_021EECF8
MOD16_021EECF8: ; 0x021EECF8
- ldr r3, _021EED00 ; =0x0201FFC9
+ ldr r3, _021EED00 ; =FUN_0201FFC8
ldr r0, [r0]
bx r3
nop
-_021EED00: .word 0x0201FFC9
+_021EED00: .word FUN_0201FFC8
thumb_func_end MOD16_021EECF8
thumb_func_start MOD16_021EED04
@@ -51798,11 +51798,11 @@ _021EF5DA:
thumb_func_start MOD16_021EF5E0
MOD16_021EF5E0: ; 0x021EF5E0
- ldr r3, _021EF5E8 ; =0x0201FFC9
+ ldr r3, _021EF5E8 ; =FUN_0201FFC8
ldr r0, [r0]
bx r3
nop
-_021EF5E8: .word 0x0201FFC9
+_021EF5E8: .word FUN_0201FFC8
thumb_func_end MOD16_021EF5E0
thumb_func_start MOD16_021EF5EC
@@ -51848,11 +51848,11 @@ _021EF62E:
thumb_func_start MOD16_021EF63C
MOD16_021EF63C: ; 0x021EF63C
- ldr r3, _021EF644 ; =0x0201FFC9
+ ldr r3, _021EF644 ; =FUN_0201FFC8
ldr r0, [r0]
bx r3
nop
-_021EF644: .word 0x0201FFC9
+_021EF644: .word FUN_0201FFC8
thumb_func_end MOD16_021EF63C
thumb_func_start MOD16_021EF648
@@ -52482,10 +52482,10 @@ _021EFB14: .word 0x00200010
thumb_func_start MOD16_021EFB18
MOD16_021EFB18: ; 0x021EFB18
- ldr r3, _021EFB1C ; =0x0201D12D
+ ldr r3, _021EFB1C ; =FUN_0201D12C
bx r3
.align 2, 0
-_021EFB1C: .word 0x0201D12D
+_021EFB1C: .word FUN_0201D12C
thumb_func_end MOD16_021EFB18
thumb_func_start MOD16_021EFB20
@@ -54527,7 +54527,7 @@ _021F0A90:
ldr r1, _021F0B14 ; =0x000003CF
add r0, r5, #0
ldrb r1, [r4, r1]
- bl FUN_022302BC
+ bl MOD11_022302BC
add r1, r0, #0
add r0, r4, #0
mov r2, #0x1b
@@ -54542,7 +54542,7 @@ _021F0AAE:
lsl r1, r1, #4
ldrb r1, [r4, r1]
add r0, r5, #0
- bl FUN_022302BC
+ bl MOD11_022302BC
add r1, r0, #0
add r0, r4, #0
mov r2, #0x1b
@@ -54556,7 +54556,7 @@ _021F0ACE:
ldr r1, _021F0B14 ; =0x000003CF
add r0, r5, #0
ldrb r1, [r4, r1]
- bl FUN_022302BC
+ bl MOD11_022302BC
add r1, r0, #0
add r0, r4, #0
mov r2, #0x1c
@@ -54571,7 +54571,7 @@ _021F0AEC:
lsl r1, r1, #4
ldrb r1, [r4, r1]
add r0, r5, #0
- bl FUN_022302BC
+ bl MOD11_022302BC
add r1, r0, #0
add r0, r4, #0
mov r2, #0x1b
@@ -54982,7 +54982,7 @@ MOD16_021F0DF4: ; 0x021F0DF4
str r0, [sp]
ldr r1, [sp]
add r0, r7, #0
- bl FUN_0222FF88
+ bl MOD11_0222FF88
str r0, [sp, #0xc]
ldr r1, [r7, #0x2c]
mov r0, #2
@@ -54995,7 +54995,7 @@ MOD16_021F0DF4: ; 0x021F0DF4
ldr r1, [sp]
str r0, [sp, #8]
add r0, r7, #0
- bl FUN_022302BC
+ bl MOD11_022302BC
add r1, r5, r0
ldr r0, _021F0EC8 ; =0x0000219C
ldrb r0, [r1, r0]
@@ -55540,7 +55540,7 @@ MOD16_021F1210: ; 0x021F1210
add r1, r6, #0
str r0, [sp, #8]
add r0, r7, #0
- bl FUN_022302BC
+ bl MOD11_022302BC
ldr r1, [sp]
add r1, r1, r0
ldr r0, _021F12FC ; =0x0000219C
@@ -55557,7 +55557,7 @@ _021F126A:
_021F1276:
add r0, r7, #0
add r1, r6, #0
- bl FUN_0222FF88
+ bl MOD11_0222FF88
str r0, [sp, #0x14]
add r0, r7, #0
add r1, r6, #0
@@ -55655,7 +55655,7 @@ MOD16_021F1304: ; 0x021F1304
add r1, r6, #0
str r0, [sp, #8]
add r0, r7, #0
- bl FUN_022302BC
+ bl MOD11_022302BC
ldr r1, [sp]
add r1, r1, r0
ldr r0, _021F13F0 ; =0x0000219C
@@ -55672,7 +55672,7 @@ _021F135E:
_021F136A:
add r0, r7, #0
add r1, r6, #0
- bl FUN_0222FF88
+ bl MOD11_0222FF88
str r0, [sp, #0x14]
add r0, r7, #0
add r1, r6, #0
@@ -57066,7 +57066,7 @@ _021F1E2C:
add r0, r5, #0
add r1, r6, #0
add r2, r4, #0
- bl FUN_02230014
+ bl MOD11_02230014
ldr r2, [sp, #4]
ldr r1, _021F1E78 ; =0x0000219C
str r0, [sp, #0xc]
@@ -57136,7 +57136,7 @@ _021F1EBE:
ldr r0, [sp]
ldr r1, [sp, #8]
add r2, r7, #0
- bl FUN_02230014
+ bl MOD11_02230014
add r5, r0, #0
ldr r1, [sp, #0xc]
ldr r0, _021F1F1C ; =0x0000219C
@@ -57551,7 +57551,7 @@ _021F21D8:
ldr r0, [sp, #0x18]
ldr r1, [sp, #0x28]
add r2, r7, #0
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
@@ -58256,7 +58256,7 @@ _021F2728:
ldr r1, _021F27FC ; =0x000003CF
ldr r0, [sp, #0x18]
ldrb r1, [r6, r1]
- bl FUN_022302BC
+ bl MOD11_022302BC
add r7, r0, #0
ldr r0, [sp, #0x1c]
cmp r0, #0
@@ -60314,7 +60314,7 @@ MOD16_021F364C: ; 0x021F364C
str r0, [sp, #0x14]
add r5, r1, #0
str r2, [sp, #0x18]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #2
tst r0, r1
beq _021F3666
@@ -60394,7 +60394,7 @@ _021F36EC:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x20]
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
@@ -60530,7 +60530,7 @@ MOD16_021F3810: ; 0x021F3810
str r0, [sp, #0x14]
add r5, r1, #0
str r2, [sp, #0x18]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r4, #2
tst r0, r4
beq _021F3828
@@ -60654,12 +60654,12 @@ _021F3900:
lsr r0, r0, #0x18
str r0, [sp, #0x64]
ldr r0, [sp, #0x14]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #0x10
tst r0, r1
bne _021F3920
ldr r0, [sp, #0x14]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #8
tst r0, r1
beq _021F3926
@@ -60670,7 +60670,7 @@ _021F3920:
_021F3926:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
- bl FUN_022302BC
+ bl MOD11_022302BC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x60]
@@ -60696,7 +60696,7 @@ _021F3956:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x2c]
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
str r0, [sp, #0x50]
@@ -60930,7 +60930,7 @@ _021F3B3C:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x30]
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
str r0, [sp, #0x20]
@@ -61178,7 +61178,7 @@ MOD16_021F3D3C: ; 0x021F3D3C
add r1, r4, #0
add r6, r0, #0
str r3, [sp, #0x10]
- bl FUN_02230260
+ bl MOD11_02230260
mov r1, #1
eor r0, r1
lsl r0, r0, #0x18
@@ -61252,7 +61252,7 @@ _021F3DD6:
blt _021F3D78
_021F3DE2:
add r0, r6, #0
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #2
tst r0, r1
bne _021F3DF4
@@ -61262,7 +61262,7 @@ _021F3DE2:
_021F3DF4:
ldr r1, [sp, #0x24]
add r0, r6, #0
- bl FUN_022302BC
+ bl MOD11_022302BC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x1c]
@@ -61418,12 +61418,12 @@ _021F3F1E:
lsl r0, r0, #0x18
lsr r4, r0, #0x18
ldr r0, [sp]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #0x10
tst r0, r1
bne _021F3F3C
ldr r0, [sp]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #8
tst r0, r1
beq _021F3F40
@@ -61433,7 +61433,7 @@ _021F3F3C:
_021F3F40:
ldr r0, [sp]
ldr r1, [sp, #8]
- bl FUN_022302BC
+ bl MOD11_022302BC
lsl r0, r0, #0x18
lsr r6, r0, #0x18
_021F3F4C:
@@ -61451,7 +61451,7 @@ _021F3F62:
ldr r0, [sp]
ldr r1, [sp, #8]
add r2, r5, #0
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
add r4, r0, #0
@@ -61562,12 +61562,12 @@ _021F4042:
ldr r1, [sp, #0x18]
lsl r1, r1, #0x18
lsr r4, r1, #0x18
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #0x10
tst r0, r1
bne _021F405E
ldr r0, [sp, #0x14]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #8
tst r0, r1
beq _021F4062
@@ -61577,7 +61577,7 @@ _021F405E:
_021F4062:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
- bl FUN_022302BC
+ bl MOD11_022302BC
lsl r0, r0, #0x18
lsr r7, r0, #0x18
_021F406E:
@@ -61604,7 +61604,7 @@ _021F4094:
ldr r0, [sp, #0x14]
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x34]
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
add r6, r0, #0
@@ -62041,12 +62041,12 @@ _021F4412:
lsl r0, r6, #0x18
lsr r4, r0, #0x18
ldr r0, [sp, #4]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #0x10
tst r0, r1
bne _021F4432
ldr r0, [sp, #4]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #8
tst r0, r1
beq _021F4436
@@ -62056,7 +62056,7 @@ _021F4432:
_021F4436:
ldr r0, [sp, #4]
add r1, r6, #0
- bl FUN_022302BC
+ bl MOD11_022302BC
lsl r0, r0, #0x18
lsr r7, r0, #0x18
_021F4442:
@@ -62076,7 +62076,7 @@ _021F445C:
ldr r0, [sp, #4]
add r1, r6, #0
add r2, r5, #0
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
add r4, r0, #0
@@ -62240,7 +62240,7 @@ MOD16_021F45A4: ; 0x021F45A4
add r1, r0, #0
str r0, [sp]
ldr r5, [r1, #0x30]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
add r6, r0, #0
mov r0, #1
tst r0, r6
@@ -62285,7 +62285,7 @@ _021F4602:
_021F4608:
ldr r0, [sp]
add r1, r7, #0
- bl FUN_022302BC
+ bl MOD11_022302BC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #8]
@@ -62305,7 +62305,7 @@ _021F462E:
ldr r0, [sp]
add r1, r7, #0
add r2, r4, #0
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
bl FUN_020671BC
@@ -62366,12 +62366,12 @@ MOD16_021F4698: ; 0x021F4698
lsl r1, r1, #0x18
ldr r5, [r7, #0x30]
lsr r4, r1, #0x18
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #0x10
tst r0, r1
bne _021F46BC
add r0, r7, #0
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #8
tst r0, r1
beq _021F46C0
@@ -62381,7 +62381,7 @@ _021F46BC:
_021F46C0:
ldr r1, [sp, #0x18]
add r0, r7, #0
- bl FUN_022302BC
+ bl MOD11_022302BC
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x44]
@@ -62416,7 +62416,7 @@ _021F4704:
ldr r1, [sp, #0x18]
add r0, r7, #0
add r2, r4, #0
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x68]
@@ -62533,7 +62533,7 @@ _021F47F8:
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x38]
add r0, r7, #0
- bl FUN_02230014
+ bl MOD11_02230014
add r4, r0, #0
mov r0, #0
str r0, [sp, #0x20]
@@ -62644,7 +62644,7 @@ _021F48E0:
ldr r1, [sp, #0x18]
ldr r2, [sp, #0x24]
add r0, r7, #0
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xad
mov r2, #0
str r0, [sp, #0x1c]
@@ -62838,7 +62838,7 @@ MOD16_021F4A40: ; 0x021F4A40
str r1, [sp]
cmp r2, #0x4b
bne _021F4A76
- bl FUN_02230260
+ bl MOD11_02230260
cmp r0, #4
bne _021F4A76
add sp, #0x20
@@ -62863,7 +62863,7 @@ _021F4A76:
_021F4A94:
ldr r1, [sp]
add r0, r5, #0
- bl FUN_0222FF88
+ bl MOD11_0222FF88
add r7, r0, #0
mov r5, #0
bl FUN_0206B9AC
@@ -63320,6 +63320,6 @@ _021F4E2C: .word 0x000003D1
_021F4E30: .word 0x000003D6
thumb_func_end MOD16_021F4A40
- .section .data
+ .section .rodata
; 0x021F4E34
- .incbin "baserom.nds", 0x259554, 0xABAC
+ .incbin "baserom.nds", 0x259554, 0xAB90
diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s
index 884302f2..68f06a9b 100644
--- a/arm9/modules/17/asm/module_17.s
+++ b/arm9/modules/17/asm/module_17.s
@@ -159,11 +159,11 @@ MOD17_021D75DC: ; 0x021D75DC
thumb_func_start MOD17_021D75F4
MOD17_021D75F4: ; 0x021D75F4
- ldr r3, _021D75FC ; =0x02013EC5
+ ldr r3, _021D75FC ; =FUN_02013EC4
ldr r0, [r0, #4]
bx r3
nop
-_021D75FC: .word 0x02013EC5
+_021D75FC: .word FUN_02013EC4
thumb_func_end MOD17_021D75F4
thumb_func_start MOD17_021D7600
@@ -222,29 +222,29 @@ MOD17_021D7630: ; 0x021D7630
thumb_func_start MOD17_021D7660
MOD17_021D7660: ; 0x021D7660
- ldr r3, _021D7668 ; =0x02013EB1
+ ldr r3, _021D7668 ; =FUN_02013EB0
ldr r0, [r0, #4]
bx r3
nop
-_021D7668: .word 0x02013EB1
+_021D7668: .word FUN_02013EB0
thumb_func_end MOD17_021D7660
thumb_func_start MOD17_021D766C
MOD17_021D766C: ; 0x021D766C
- ldr r3, _021D7674 ; =0x02013EFD
+ ldr r3, _021D7674 ; =FUN_02013EFC
ldr r0, [r0, #4]
bx r3
nop
-_021D7674: .word 0x02013EFD
+_021D7674: .word FUN_02013EFC
thumb_func_end MOD17_021D766C
thumb_func_start MOD17_021D7678
MOD17_021D7678: ; 0x021D7678
- ldr r3, _021D7680 ; =0x02013F01
+ ldr r3, _021D7680 ; =FUN_02013F00
ldr r0, [r0, #4]
bx r3
nop
-_021D7680: .word 0x02013F01
+_021D7680: .word FUN_02013F00
thumb_func_end MOD17_021D7678
thumb_func_start MOD17_021D7684
@@ -1016,21 +1016,21 @@ MOD17_021D7BE4: ; 0x021D7BE4
thumb_func_start MOD17_021D7C10
MOD17_021D7C10: ; 0x021D7C10
- ldr r3, _021D7C18 ; =0x020178A1
+ ldr r3, _021D7C18 ; =FUN_020178A0
ldr r0, [r0, #0x38]
mov r1, #2
bx r3
.align 2, 0
-_021D7C18: .word 0x020178A1
+_021D7C18: .word FUN_020178A0
thumb_func_end MOD17_021D7C10
thumb_func_start MOD17_021D7C1C
MOD17_021D7C1C: ; 0x021D7C1C
- ldr r3, _021D7C24 ; =0x020081C5
+ ldr r3, _021D7C24 ; =FUN_020081C4
ldr r0, [r0, #0x20]
bx r3
nop
-_021D7C24: .word 0x020081C5
+_021D7C24: .word FUN_020081C4
thumb_func_end MOD17_021D7C1C
thumb_func_start MOD17_021D7C28
@@ -1330,11 +1330,11 @@ MOD17_021D7E58: ; 0x021D7E58
thumb_func_start MOD17_021D7E68
MOD17_021D7E68: ; 0x021D7E68
- ldr r3, _021D7E70 ; =0x02013D5D
+ ldr r3, _021D7E70 ; =FUN_02013D5C
ldr r0, [r0]
bx r3
nop
-_021D7E70: .word 0x02013D5D
+_021D7E70: .word FUN_02013D5C
thumb_func_end MOD17_021D7E68
thumb_func_start MOD17_021D7E74
@@ -1730,11 +1730,11 @@ _021D8178:
thumb_func_start MOD17_021D8194
MOD17_021D8194: ; 0x021D8194
- ldr r3, _021D819C ; =0x0201FDED
+ ldr r3, _021D819C ; =FUN_0201FDEC
ldr r0, [r0, #0x3c]
bx r3
nop
-_021D819C: .word 0x0201FDED
+_021D819C: .word FUN_0201FDEC
thumb_func_end MOD17_021D8194
thumb_func_start MOD17_021D81A0
@@ -1956,11 +1956,11 @@ _021D8348: .word 0xFFFF0000
thumb_func_start MOD17_021D834C
MOD17_021D834C: ; 0x021D834C
- ldr r3, _021D8354 ; =0x020072E9
+ ldr r3, _021D8354 ; =FUN_020072E8
ldr r0, [r0, #0x20]
bx r3
nop
-_021D8354: .word 0x020072E9
+_021D8354: .word FUN_020072E8
thumb_func_end MOD17_021D834C
thumb_func_start MOD17_021D8358
@@ -8952,23 +8952,23 @@ _021DB7CE:
thumb_func_start MOD17_021DB7D8
MOD17_021DB7D8: ; 0x021DB7D8
- ldr r3, _021DB7E4 ; =0x02007559
+ ldr r3, _021DB7E4 ; =FUN_02007558
add r2, r1, #0
ldr r0, [r0]
mov r1, #2
bx r3
nop
-_021DB7E4: .word 0x02007559
+_021DB7E4: .word FUN_02007558
thumb_func_end MOD17_021DB7D8
thumb_func_start MOD17_021DB7E8
MOD17_021DB7E8: ; 0x021DB7E8
- ldr r3, _021DB7F0 ; =0x0200782D
+ ldr r3, _021DB7F0 ; =FUN_0200782C
ldr r0, [r0]
mov r1, #2
bx r3
.align 2, 0
-_021DB7F0: .word 0x0200782D
+_021DB7F0: .word FUN_0200782C
thumb_func_end MOD17_021DB7E8
thumb_func_start MOD17_021DB7F4
@@ -9011,20 +9011,20 @@ MOD17_021DB7F4: ; 0x021DB7F4
thumb_func_start MOD17_021DB840
MOD17_021DB840: ; 0x021DB840
- ldr r3, _021DB848 ; =0x02020A41
+ ldr r3, _021DB848 ; =FUN_02020A40
add r0, r0, #4
bx r3
nop
-_021DB848: .word 0x02020A41
+_021DB848: .word FUN_02020A40
thumb_func_end MOD17_021DB840
thumb_func_start MOD17_021DB84C
MOD17_021DB84C: ; 0x021DB84C
- ldr r3, _021DB854 ; =0x02020AE9
+ ldr r3, _021DB854 ; =FUN_02020AE8
add r0, r0, #4
bx r3
nop
-_021DB854: .word 0x02020AE9
+_021DB854: .word FUN_02020AE8
thumb_func_end MOD17_021DB84C
thumb_func_start MOD17_021DB858
@@ -10513,32 +10513,32 @@ MOD17_021DC2DC: ; 0x021DC2DC
thumb_func_start MOD17_021DC2E0
MOD17_021DC2E0: ; 0x021DC2E0
- ldr r3, _021DC2E8 ; =0x02020209
+ ldr r3, _021DC2E8 ; =FUN_02020208
ldr r0, [r0]
mov r1, #2
bx r3
.align 2, 0
-_021DC2E8: .word 0x02020209
+_021DC2E8: .word FUN_02020208
thumb_func_end MOD17_021DC2E0
thumb_func_start MOD17_021DC2EC
MOD17_021DC2EC: ; 0x021DC2EC
- ldr r3, _021DC2F4 ; =0x02020209
+ ldr r3, _021DC2F4 ; =FUN_02020208
ldr r0, [r0]
mov r1, #0
bx r3
.align 2, 0
-_021DC2F4: .word 0x02020209
+_021DC2F4: .word FUN_02020208
thumb_func_end MOD17_021DC2EC
thumb_func_start MOD17_021DC2F8
MOD17_021DC2F8: ; 0x021DC2F8
- ldr r3, _021DC300 ; =0x02020209
+ ldr r3, _021DC300 ; =FUN_02020208
ldr r0, [r0]
mov r1, #1
bx r3
.align 2, 0
-_021DC300: .word 0x02020209
+_021DC300: .word FUN_02020208
thumb_func_end MOD17_021DC2F8
thumb_func_start MOD17_021DC304
@@ -11304,11 +11304,11 @@ _021DC8F4: .word 0x00010203
thumb_func_start MOD17_021DC8F8
MOD17_021DC8F8: ; 0x021DC8F8
- ldr r3, _021DC900 ; =0x020191A5
+ ldr r3, _021DC900 ; =FUN_020191A4
mov r1, #1
bx r3
nop
-_021DC900: .word 0x020191A5
+_021DC900: .word FUN_020191A4
thumb_func_end MOD17_021DC8F8
thumb_func_start MOD17_021DC904
@@ -11844,11 +11844,11 @@ _021DCCDC: .word MOD17_021DBD4C
thumb_func_start MOD17_021DCCE0
MOD17_021DCCE0: ; 0x021DCCE0
- ldr r3, _021DCCE8 ; =0x020191A5
+ ldr r3, _021DCCE8 ; =FUN_020191A4
mov r1, #1
bx r3
nop
-_021DCCE8: .word 0x020191A5
+_021DCCE8: .word FUN_020191A4
thumb_func_end MOD17_021DCCE0
thumb_func_start MOD17_021DCCEC
@@ -14601,6 +14601,6 @@ _021DE24C: .word 0x00000151
_021DE250: .word 0x00010200
thumb_func_end MOD17_021DE0F4
- .section .data
+ .section .rodata
; 0x021DE254
- .incbin "baserom.nds", 0x26AF74, 0x10C
+ .incbin "baserom.nds", 0x26AF74, 0x100
diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s
index 767c2f6c..4a32f55f 100644
--- a/arm9/modules/18/asm/module_18.s
+++ b/arm9/modules/18/asm/module_18.s
@@ -2459,7 +2459,7 @@ _0223AA08:
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
- bl FUN_021F4608
+ bl MOD05_021F4608
mov r0, #6
str r0, [sp]
mov r0, #1
@@ -2487,11 +2487,11 @@ _0223AA5C:
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
- bl FUN_021F4608
+ bl MOD05_021F4608
ldr r0, [r4, #0x10]
ldr r0, [r0, #4]
ldr r0, [r0, #0x1c]
- bl FUN_021F45E8
+ bl MOD05_021F45E8
mov r3, #0x80
str r3, [sp]
mov r0, #4
@@ -2711,7 +2711,7 @@ MOD18_0223AC24: ; 0x0223AC24
str r5, [r4, #0x10]
ldr r0, [r5, #4]
ldr r0, [r0, #0x1c]
- bl FUN_021F4608
+ bl MOD05_021F4608
ldr r0, [r5, #0xc]
bl FUN_020462AC
bl FUN_0205EDBC
@@ -6785,10 +6785,10 @@ _0223CB58: .word 0x00000808
thumb_func_start MOD18_0223CB5C
MOD18_0223CB5C: ; 0x0223CB5C
- ldr r3, _0223CB60 ; =0x0204F7FD
+ ldr r3, _0223CB60 ; =FUN_0204F7FC
bx r3
.align 2, 0
-_0223CB60: .word 0x0204F7FD
+_0223CB60: .word FUN_0204F7FC
thumb_func_end MOD18_0223CB5C
thumb_func_start MOD18_0223CB64
@@ -11161,10 +11161,10 @@ _0223ECD8: .word 0x022513A0
thumb_func_start MOD18_0223ECDC
MOD18_0223ECDC: ; 0x0223ECDC
- ldr r3, _0223ECE0 ; =0x0204F7FD
+ ldr r3, _0223ECE0 ; =FUN_0204F7FC
bx r3
.align 2, 0
-_0223ECE0: .word 0x0204F7FD
+_0223ECE0: .word FUN_0204F7FC
thumb_func_end MOD18_0223ECDC
thumb_func_start MOD18_0223ECE4
@@ -11550,7 +11550,7 @@ _0223EF78: .word MOD18_02240C8C
thumb_func_start MOD18_0223EF7C
MOD18_0223EF7C: ; 0x0223EF7C
ldr r1, _0223EF90 ; =0x022513A0
- ldr r3, _0223EF94 ; =0x0203105D
+ ldr r3, _0223EF94 ; =FUN_0203105C
ldr r2, [r1, #4]
mov r1, #0xa9
lsl r1, r1, #2
@@ -11560,7 +11560,7 @@ MOD18_0223EF7C: ; 0x0223EF7C
bx r3
nop
_0223EF90: .word 0x022513A0
-_0223EF94: .word 0x0203105D
+_0223EF94: .word FUN_0203105C
thumb_func_end MOD18_0223EF7C
thumb_func_start MOD18_0223EF98
@@ -13519,20 +13519,20 @@ MOD18_0223FE98: ; 0x0223FE98
thumb_func_start MOD18_0223FEAC
MOD18_0223FEAC: ; 0x0223FEAC
- ldr r3, _0223FEB4 ; =0x0204E759
+ ldr r3, _0223FEB4 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_0223FEB4: .word 0x0204E759
+_0223FEB4: .word FUN_0204E758
thumb_func_end MOD18_0223FEAC
thumb_func_start MOD18_0223FEB8
MOD18_0223FEB8: ; 0x0223FEB8
- ldr r3, _0223FEC0 ; =0x0204E759
+ ldr r3, _0223FEC0 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_0223FEC0: .word 0x0204E759
+_0223FEC0: .word FUN_0204E758
thumb_func_end MOD18_0223FEB8
thumb_func_start MOD18_0223FEC4
@@ -13549,82 +13549,82 @@ MOD18_0223FEC4: ; 0x0223FEC4
thumb_func_start MOD18_0223FED8
MOD18_0223FED8: ; 0x0223FED8
- ldr r3, _0223FEE0 ; =0x0204E179
+ ldr r3, _0223FEE0 ; =FUN_0204E178
mov r1, #0
add r2, r1, #0
bx r3
.align 2, 0
-_0223FEE0: .word 0x0204E179
+_0223FEE0: .word FUN_0204E178
thumb_func_end MOD18_0223FED8
thumb_func_start MOD18_0223FEE4
MOD18_0223FEE4: ; 0x0223FEE4
- ldr r3, _0223FEEC ; =0x0204E179
+ ldr r3, _0223FEEC ; =FUN_0204E178
mov r1, #1
mov r2, #0
bx r3
.align 2, 0
-_0223FEEC: .word 0x0204E179
+_0223FEEC: .word FUN_0204E178
thumb_func_end MOD18_0223FEE4
thumb_func_start MOD18_0223FEF0
MOD18_0223FEF0: ; 0x0223FEF0
- ldr r3, _0223FEF8 ; =0x0204E179
+ ldr r3, _0223FEF8 ; =FUN_0204E178
mov r1, #2
mov r2, #0
bx r3
.align 2, 0
-_0223FEF8: .word 0x0204E179
+_0223FEF8: .word FUN_0204E178
thumb_func_end MOD18_0223FEF0
thumb_func_start MOD18_0223FEFC
MOD18_0223FEFC: ; 0x0223FEFC
- ldr r3, _0223FF04 ; =0x0204E179
+ ldr r3, _0223FF04 ; =FUN_0204E178
mov r1, #3
mov r2, #0
bx r3
.align 2, 0
-_0223FF04: .word 0x0204E179
+_0223FF04: .word FUN_0204E178
thumb_func_end MOD18_0223FEFC
thumb_func_start MOD18_0223FF08
MOD18_0223FF08: ; 0x0223FF08
- ldr r3, _0223FF10 ; =0x0204E179
+ ldr r3, _0223FF10 ; =FUN_0204E178
mov r1, #0
mov r2, #1
bx r3
.align 2, 0
-_0223FF10: .word 0x0204E179
+_0223FF10: .word FUN_0204E178
thumb_func_end MOD18_0223FF08
thumb_func_start MOD18_0223FF14
MOD18_0223FF14: ; 0x0223FF14
- ldr r3, _0223FF1C ; =0x0204E179
+ ldr r3, _0223FF1C ; =FUN_0204E178
mov r1, #1
add r2, r1, #0
bx r3
.align 2, 0
-_0223FF1C: .word 0x0204E179
+_0223FF1C: .word FUN_0204E178
thumb_func_end MOD18_0223FF14
thumb_func_start MOD18_0223FF20
MOD18_0223FF20: ; 0x0223FF20
- ldr r3, _0223FF28 ; =0x0204E179
+ ldr r3, _0223FF28 ; =FUN_0204E178
mov r1, #2
mov r2, #1
bx r3
.align 2, 0
-_0223FF28: .word 0x0204E179
+_0223FF28: .word FUN_0204E178
thumb_func_end MOD18_0223FF20
thumb_func_start MOD18_0223FF2C
MOD18_0223FF2C: ; 0x0223FF2C
- ldr r3, _0223FF34 ; =0x0204E179
+ ldr r3, _0223FF34 ; =FUN_0204E178
mov r1, #3
mov r2, #1
bx r3
.align 2, 0
-_0223FF34: .word 0x0204E179
+_0223FF34: .word FUN_0204E178
thumb_func_end MOD18_0223FF2C
thumb_func_start MOD18_0223FF38
@@ -13863,7 +13863,7 @@ MOD18_022400A0: ; 0x022400A0
ldr r0, [r0, #4]
mov r2, #0
ldr r0, [r0, #0x40]
- bl FUN_021E5B30
+ bl MOD05_021E5B30
bl MOD18_0223D638
ldr r2, _022400F8 ; =0x022513A0
mov r1, #0
@@ -18630,11 +18630,11 @@ _022425C4: .word 0x022513A0
thumb_func_start MOD18_022425C8
MOD18_022425C8: ; 0x022425C8
- ldr r3, _022425D0 ; =0x0204E759
+ ldr r3, _022425D0 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_022425D0: .word 0x0204E759
+_022425D0: .word FUN_0204E758
thumb_func_end MOD18_022425C8
thumb_func_start MOD18_022425D4
@@ -20189,11 +20189,11 @@ _0224321C: .word 0x022513A0
thumb_func_start MOD18_02243220
MOD18_02243220: ; 0x02243220
- ldr r3, _02243228 ; =0x0204E759
+ ldr r3, _02243228 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_02243228: .word 0x0204E759
+_02243228: .word FUN_0204E758
thumb_func_end MOD18_02243220
thumb_func_start MOD18_0224322C
@@ -20943,11 +20943,11 @@ _02243808: .word 0x022513A0
thumb_func_start MOD18_0224380C
MOD18_0224380C: ; 0x0224380C
- ldr r3, _02243814 ; =0x0204E759
+ ldr r3, _02243814 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_02243814: .word 0x0204E759
+_02243814: .word FUN_0204E758
thumb_func_end MOD18_0224380C
thumb_func_start MOD18_02243818
@@ -21213,11 +21213,11 @@ _02243A14: .word 0x022513A0
thumb_func_start MOD18_02243A18
MOD18_02243A18: ; 0x02243A18
- ldr r3, _02243A20 ; =0x0204E759
+ ldr r3, _02243A20 ; =FUN_0204E758
mov r1, #2
bx r3
nop
-_02243A20: .word 0x0204E759
+_02243A20: .word FUN_0204E758
thumb_func_end MOD18_02243A18
thumb_func_start MOD18_02243A24
@@ -24592,10 +24592,10 @@ _022453DC: .word 0x00001284
thumb_func_start MOD18_022453E0
MOD18_022453E0: ; 0x022453E0
- ldr r3, _022453E4 ; =0x0204F7FD
+ ldr r3, _022453E4 ; =FUN_0204F7FC
bx r3
.align 2, 0
-_022453E4: .word 0x0204F7FD
+_022453E4: .word FUN_0204F7FC
thumb_func_end MOD18_022453E0
thumb_func_start MOD18_022453E8
@@ -26007,11 +26007,11 @@ _02245F18: .word 0x000013E6
thumb_func_start MOD18_02245F1C
MOD18_02245F1C: ; 0x02245F1C
- ldr r3, _02245F24 ; =0x020311DD
+ ldr r3, _02245F24 ; =FUN_020311DC
mov r0, #0x38
bx r3
nop
-_02245F24: .word 0x020311DD
+_02245F24: .word FUN_020311DC
thumb_func_end MOD18_02245F1C
thumb_func_start MOD18_02245F28
@@ -26605,7 +26605,7 @@ _02246394:
ldr r1, [r1]
add r1, #0xa0
ldr r1, [r1]
- bl FUN_021E7C80
+ bl MOD05_021E7C80
_022463C2:
ldr r0, [sp, #8]
ldr r2, _02246428 ; =0x000001AD
@@ -26634,7 +26634,7 @@ _022463C2:
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r1, #0x2c]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
ldr r1, _02246414 ; =0x022513EC
ldr r1, [r1]
add r2, r1, r5
@@ -26672,7 +26672,7 @@ MOD18_02246430: ; 0x02246430
ldr r1, [r2]
add r1, #0xa0
ldr r1, [r1]
- bl FUN_021E7C80
+ bl MOD05_021E7C80
ldr r1, _02246464 ; =0x022513EC
mov r3, #0xff
ldr r0, [r1]
@@ -26764,7 +26764,7 @@ MOD18_022464D0: ; 0x022464D0
b _0224650E
_022464EE:
add r0, r5, #0
- bl FUN_02037350
+ bl LoadOverlay_MODULE_05
ldr r0, [r4, #0x10]
add r0, r0, #1
str r0, [r4, #0x10]
@@ -27303,7 +27303,7 @@ _02246934:
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
mov r0, #3
str r0, [r4, #0xc]
b _02246A80
@@ -27442,7 +27442,7 @@ _02246A80:
add r0, r5, #0
add r1, r6, #0
mov r2, #0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
ldr r0, [sp, #4]
bl FUN_0200CAB4
add r0, r4, #0
@@ -28484,17 +28484,17 @@ MOD18_022472C8: ; 0x022472C8
ldr r0, [r0]
add r0, #0xa0
ldr r0, [r0]
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r1, r0, #0
add r0, sp, #8
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r1, _0224731C ; =0x022513EC
mov r0, #0
ldr r1, [r1]
ldr r1, [r1]
add r1, #0xa0
ldr r1, [r1]
- bl FUN_021E7C80
+ bl MOD05_021E7C80
ldr r0, _0224731C ; =0x022513EC
ldr r2, _02247320 ; =0x0000013D
ldr r0, [r0]
@@ -28510,7 +28510,7 @@ MOD18_022472C8: ; 0x022472C8
add r2, r3, r2
ldr r1, [r1, #0x2c]
add r3, sp, #8
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
add sp, #0x14
pop {r3, r4, pc}
.align 2, 0
@@ -31952,22 +31952,22 @@ _02248E68: .word 0x00002710
thumb_func_start MOD18_02248E6C
MOD18_02248E6C: ; 0x02248E6C
- ldr r3, _02248E74 ; =0x02030C4D
+ ldr r3, _02248E74 ; =FUN_02030C4C
mov r0, #0x4b
add r1, r2, #0
bx r3
.align 2, 0
-_02248E74: .word 0x02030C4D
+_02248E74: .word FUN_02030C4C
thumb_func_end MOD18_02248E6C
thumb_func_start MOD18_02248E78
MOD18_02248E78: ; 0x02248E78
- ldr r3, _02248E80 ; =0x02030C4D
+ ldr r3, _02248E80 ; =FUN_02030C4C
mov r0, #0x4c
add r1, r2, #0
bx r3
.align 2, 0
-_02248E80: .word 0x02030C4D
+_02248E80: .word FUN_02030C4C
thumb_func_end MOD18_02248E78
thumb_func_start MOD18_02248E84
@@ -32040,12 +32040,12 @@ MOD18_02248EF0: ; 0x02248EF0
thumb_func_start MOD18_02248EF4
MOD18_02248EF4: ; 0x02248EF4
- ldr r3, _02248EFC ; =0x02030C4D
+ ldr r3, _02248EFC ; =FUN_02030C4C
mov r0, #0x4e
add r1, r2, #0
bx r3
.align 2, 0
-_02248EFC: .word 0x02030C4D
+_02248EFC: .word FUN_02030C4C
thumb_func_end MOD18_02248EF4
thumb_func_start MOD18_02248F00
@@ -32114,12 +32114,12 @@ MOD18_02248F74: ; 0x02248F74
thumb_func_start MOD18_02248F78
MOD18_02248F78: ; 0x02248F78
- ldr r3, _02248F80 ; =0x02030C4D
+ ldr r3, _02248F80 ; =FUN_02030C4C
mov r0, #0x50
add r1, r2, #0
bx r3
.align 2, 0
-_02248F80: .word 0x02030C4D
+_02248F80: .word FUN_02030C4C
thumb_func_end MOD18_02248F78
thumb_func_start MOD18_02248F84
@@ -32230,7 +32230,7 @@ MOD18_02249010: ; 0x02249010
add r0, #0x74
mov r2, #8
mov r3, #0xb
- bl FUN_021D959C
+ bl MOD05_021D959C
mov r0, #2
str r0, [sp]
mov r0, #1
@@ -32243,7 +32243,7 @@ MOD18_02249010: ; 0x02249010
add r0, #0x74
mov r2, #9
mov r3, #0
- bl FUN_021D967C
+ bl MOD05_021D967C
mov r0, #0xe3
lsl r0, r0, #6
str r0, [sp]
@@ -32252,7 +32252,7 @@ MOD18_02249010: ; 0x02249010
add r0, #0x74
mov r2, #1
mov r3, #0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
mov r0, #0xe3
lsl r0, r0, #6
str r0, [sp]
@@ -32261,7 +32261,7 @@ MOD18_02249010: ; 0x02249010
add r0, #0x74
mov r1, #0x42
add r3, r2, #0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r0, #1
str r0, [sp]
mov r0, #0xe3
@@ -32272,11 +32272,11 @@ MOD18_02249010: ; 0x02249010
add r0, #0x74
mov r2, #2
mov r3, #0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r0, [sp, #0xc]
ldr r1, _022491C0 ; =0x022505F0
add r0, #0x74
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r2, #0x76
ldr r1, [sp, #0xc]
lsl r2, r2, #2
@@ -32294,7 +32294,7 @@ MOD18_02249010: ; 0x02249010
mov r2, #8
add r0, #0x74
mov r3, #0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _022491C4 ; =0x000038C1
mov r1, #0x42
str r0, [sp]
@@ -32302,7 +32302,7 @@ MOD18_02249010: ; 0x02249010
mov r2, #7
add r0, #0x74
mov r3, #0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r0, #1
str r0, [sp]
ldr r0, _022491C4 ; =0x000038C1
@@ -32312,7 +32312,7 @@ MOD18_02249010: ; 0x02249010
mov r2, #0xa
add r0, #0x74
mov r3, #0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r0, [sp, #0x14]
mov r4, #0
cmp r0, #0
@@ -32364,7 +32364,7 @@ _02249128:
strh r1, [r0, #6]
ldr r0, [sp, #0x18]
add r1, sp, #0x68
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r1, #0x77
lsl r1, r1, #2
add r2, sp, #0x5c
@@ -32450,7 +32450,7 @@ _022491E8:
_022491FE:
add r5, #0x74
add r0, r5, #0
- bl FUN_021D99F8
+ bl MOD05_021D99F8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end MOD18_022491D0
@@ -32612,12 +32612,12 @@ _02249324: .word 0x022513F8
thumb_func_start MOD18_02249328
MOD18_02249328: ; 0x02249328
ldr r0, _02249330 ; =0x022513F8
- ldr r3, _02249334 ; =0x02016A19
+ ldr r3, _02249334 ; =FUN_02016A18
ldr r0, [r0]
bx r3
.align 2, 0
_02249330: .word 0x022513F8
-_02249334: .word 0x02016A19
+_02249334: .word FUN_02016A18
thumb_func_end MOD18_02249328
thumb_func_start MOD18_02249338
@@ -32823,26 +32823,26 @@ _0224949C: .word 0x022513F8
MOD18_022494A0: ; 0x022494A0
add r1, r0, #0
ldr r0, _022494AC ; =0x022513F8
- ldr r3, _022494B0 ; =0x02026299
+ ldr r3, _022494B0 ; =FUN_02026298
ldr r0, [r0]
ldr r0, [r0]
bx r3
.align 2, 0
_022494AC: .word 0x022513F8
-_022494B0: .word 0x02026299
+_022494B0: .word FUN_02026298
thumb_func_end MOD18_022494A0
thumb_func_start MOD18_022494B4
MOD18_022494B4: ; 0x022494B4
add r1, r0, #0
ldr r0, _022494C0 ; =0x022513F8
- ldr r3, _022494C4 ; =0x02025FD9
+ ldr r3, _022494C4 ; =FUN_02025FD8
ldr r0, [r0]
ldr r0, [r0]
bx r3
.align 2, 0
_022494C0: .word 0x022513F8
-_022494C4: .word 0x02025FD9
+_022494C4: .word FUN_02025FD8
thumb_func_end MOD18_022494B4
thumb_func_start MOD18_022494C8
@@ -34102,7 +34102,7 @@ MOD18_02249EF4: ; 0x02249EF4
str r1, [r0, r2]
ldr r1, _02249F24 ; =MOD18_02249EBC
str r1, [r0, #0x60]
- ldr r1, _02249F28 ; =0x020260ED
+ ldr r1, _02249F28 ; =FUN_020260EC
bx r3
nop
_02249F14: .word MOD18_022493C8
@@ -34110,7 +34110,7 @@ _02249F18: .word MOD18_022493F4
_02249F1C: .word MOD18_0224940C
_02249F20: .word MOD18_02249F8C
_02249F24: .word MOD18_02249EBC
-_02249F28: .word 0x020260ED
+_02249F28: .word FUN_020260EC
thumb_func_end MOD18_02249EF4
thumb_func_start MOD18_02249F2C
@@ -34145,7 +34145,7 @@ MOD18_02249F2C: ; 0x02249F2C
ldr r0, [r4, r0]
add r1, #0x1c
strh r0, [r4, r1]
- ldr r1, _02249F88 ; =0x020260ED
+ ldr r1, _02249F88 ; =FUN_020260EC
add r0, r4, #0
bl MOD18_02249F8C
pop {r4, pc}
@@ -34154,7 +34154,7 @@ _02249F78: .word MOD18_022493C8
_02249F7C: .word MOD18_022493F4
_02249F80: .word MOD18_0224940C
_02249F84: .word MOD18_02249EBC
-_02249F88: .word 0x020260ED
+_02249F88: .word FUN_020260EC
thumb_func_end MOD18_02249F2C
thumb_func_start MOD18_02249F8C
@@ -35487,7 +35487,7 @@ MOD18_0224AA4C: ; 0x0224AA4C
ldr r0, [r4, r0]
add r1, #0x1c
strh r0, [r4, r1]
- ldr r1, _0224AAA0 ; =0x02025FFD
+ ldr r1, _0224AAA0 ; =FUN_02025FFC
add r0, r4, #0
bl MOD18_0224AB08
pop {r4, pc}
@@ -35495,7 +35495,7 @@ MOD18_0224AA4C: ; 0x0224AA4C
_0224AA94: .word MOD18_02249378
_0224AA98: .word MOD18_0224938C
_0224AA9C: .word MOD18_0224A9B4
-_0224AAA0: .word 0x02025FFD
+_0224AAA0: .word FUN_02025FFC
thumb_func_end MOD18_0224AA4C
thumb_func_start MOD18_0224AAA4
@@ -35512,14 +35512,14 @@ MOD18_0224AAA4: ; 0x0224AAA4
str r1, [r0, #0x60]
mov r1, #0
str r1, [r0, #0x64]
- ldr r1, _0224AAD0 ; =0x02025FFD
+ ldr r1, _0224AAD0 ; =FUN_02025FFC
bx r3
.align 2, 0
_0224AAC0: .word MOD18_02249378
_0224AAC4: .word MOD18_0224938C
_0224AAC8: .word MOD18_0224A9B4
_0224AACC: .word MOD18_0224AB08
-_0224AAD0: .word 0x02025FFD
+_0224AAD0: .word FUN_02025FFC
thumb_func_end MOD18_0224AAA4
thumb_func_start MOD18_0224AAD4
@@ -35536,7 +35536,7 @@ MOD18_0224AAD4: ; 0x0224AAD4
str r1, [r0, #0x60]
ldr r1, _0224AB00 ; =MOD18_0224A9EC
str r1, [r0, #0x64]
- ldr r1, _0224AB04 ; =0x02025E21
+ ldr r1, _0224AB04 ; =FUN_02025E20
bx r3
.align 2, 0
_0224AAF0: .word MOD18_0224934C
@@ -35544,7 +35544,7 @@ _0224AAF4: .word MOD18_02249360
_0224AAF8: .word MOD18_0224A9B4
_0224AAFC: .word MOD18_0224AB08
_0224AB00: .word MOD18_0224A9EC
-_0224AB04: .word 0x02025E21
+_0224AB04: .word FUN_02025E20
thumb_func_end MOD18_0224AAD4
thumb_func_start MOD18_0224AB08
@@ -36307,11 +36307,11 @@ _0224B118:
thumb_func_start MOD18_0224B11C
MOD18_0224B11C: ; 0x0224B11C
- ldr r3, _0224B124 ; =0x0204F775
+ ldr r3, _0224B124 ; =FUN_0204F774
mov r0, #0x40
bx r3
nop
-_0224B124: .word 0x0204F775
+_0224B124: .word FUN_0204F774
thumb_func_end MOD18_0224B11C
thumb_func_start MOD18_0224B128
@@ -40932,11 +40932,11 @@ MOD18_0224D734: ; 0x0224D734
add r3, r1, #0
add r1, r2, #0
add r2, r3, #0
- ldr r3, _0224D740 ; =0x02030BC5
+ ldr r3, _0224D740 ; =FUN_02030BC4
mov r0, #0x52
bx r3
.align 2, 0
-_0224D740: .word 0x02030BC5
+_0224D740: .word FUN_02030BC4
thumb_func_end MOD18_0224D734
thumb_func_start MOD18_0224D744
@@ -40990,10 +40990,10 @@ _0224D790: .word 0x022513FC
thumb_func_start MOD18_0224D794
MOD18_0224D794: ; 0x0224D794
- ldr r3, _0224D798 ; =0x0204F7FD
+ ldr r3, _0224D798 ; =FUN_0204F7FC
bx r3
.align 2, 0
-_0224D798: .word 0x0204F7FD
+_0224D798: .word FUN_0204F7FC
thumb_func_end MOD18_0224D794
thumb_func_start MOD18_0224D79C
@@ -42024,11 +42024,11 @@ MOD18_0224DF40: ; 0x0224DF40
thumb_func_start MOD18_0224DF54
MOD18_0224DF54: ; 0x0224DF54
- ldr r3, _0224DF5C ; =0x0200B7A9
+ ldr r3, _0224DF5C ; =FUN_0200B7A8
ldr r0, [r0, #0x28]
bx r3
nop
-_0224DF5C: .word 0x0200B7A9
+_0224DF5C: .word FUN_0200B7A8
thumb_func_end MOD18_0224DF54
thumb_func_start MOD18_0224DF60
@@ -42156,12 +42156,12 @@ _0224E018: .word 0x0225074A
thumb_func_start MOD18_0224E01C
MOD18_0224E01C: ; 0x0224E01C
- ldr r3, _0224E024 ; =0x02016999
+ ldr r3, _0224E024 ; =FUN_02016998
mov r0, #4
mov r1, #0x44
bx r3
.align 2, 0
-_0224E024: .word 0x02016999
+_0224E024: .word FUN_02016998
thumb_func_end MOD18_0224E01C
thumb_func_start MOD18_0224E028
@@ -42194,10 +42194,10 @@ _0224E058: .word 0x000003D9
thumb_func_start MOD18_0224E05C
MOD18_0224E05C: ; 0x0224E05C
- ldr r3, _0224E060 ; =0x02016A19
+ ldr r3, _0224E060 ; =FUN_02016A18
bx r3
.align 2, 0
-_0224E060: .word 0x02016A19
+_0224E060: .word FUN_02016A18
thumb_func_end MOD18_0224E05C
thumb_func_start MOD18_0224E064
@@ -42508,12 +42508,12 @@ _0224E2CC:
thumb_func_start MOD18_0224E2D8
MOD18_0224E2D8: ; 0x0224E2D8
- ldr r3, _0224E2E0 ; =0x02016999
+ ldr r3, _0224E2E0 ; =FUN_02016998
mov r0, #4
mov r1, #0x4c
bx r3
.align 2, 0
-_0224E2E0: .word 0x02016999
+_0224E2E0: .word FUN_02016998
thumb_func_end MOD18_0224E2D8
thumb_func_start MOD18_0224E2E4
@@ -42555,10 +42555,10 @@ MOD18_0224E314: ; 0x0224E314
thumb_func_start MOD18_0224E320
MOD18_0224E320: ; 0x0224E320
- ldr r3, _0224E324 ; =0x02016A19
+ ldr r3, _0224E324 ; =FUN_02016A18
bx r3
.align 2, 0
-_0224E324: .word 0x02016A19
+_0224E324: .word FUN_02016A18
thumb_func_end MOD18_0224E320
thumb_func_start MOD18_0224E328
@@ -42930,7 +42930,7 @@ _0224E5CE:
ldr r0, _0224E6A0 ; =MOD18_0224E3F0
str r7, [sp, #0x4c]
str r0, [sp, #0x34]
- ldr r0, _0224E6A4 ; =0x02025E21
+ ldr r0, _0224E6A4 ; =FUN_02025E20
str r0, [sp]
str r7, [sp, #4]
mov r0, #1
@@ -42978,7 +42978,7 @@ _0224E694: .word 0x00000115
_0224E698: .word 0x022507D0
_0224E69C: .word MOD18_0224E2B4
_0224E6A0: .word MOD18_0224E3F0
-_0224E6A4: .word 0x02025E21
+_0224E6A4: .word FUN_02025E20
thumb_func_end MOD18_0224E430
thumb_func_start MOD18_0224E6A8
@@ -43121,7 +43121,7 @@ _0224E776:
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r6, #0x2c]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
str r0, [r4, #0x10]
mov r0, #0x10
str r0, [r7, #0x3c]
@@ -43142,13 +43142,13 @@ _0224E776:
thumb_func_start MOD18_0224E7E4
MOD18_0224E7E4: ; 0x0224E7E4
add r2, r0, #0
- ldr r3, _0224E7F0 ; =0x021E7C81
+ ldr r3, _0224E7F0 ; =MOD05_021E7C80
add r2, #0xa0
add r0, r1, #0
ldr r1, [r2]
bx r3
.align 2, 0
-_0224E7F0: .word 0x021E7C81
+_0224E7F0: .word MOD05_021E7C80
thumb_func_end MOD18_0224E7E4
thumb_func_start MOD18_0224E7F4
@@ -43474,7 +43474,7 @@ MOD18_0224EA74: ; 0x0224EA74
ldr r1, _0224EAC8 ; =0x0000050C
str r0, [r4, r1]
ldr r0, [r4, r1]
- bl FUN_021D80E4
+ bl MOD05_021D80E4
ldr r1, _0224EACC ; =0x000004FC
add r2, r4, #0
str r0, [r4, r1]
@@ -43687,11 +43687,11 @@ _0224EC3A:
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r4, #0x4c]
- bl FUN_021E7EEC
+ bl MOD05_021E7EEC
add r6, r0, #0
add r0, sp, #0xc
add r1, r6, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r1, [sp, #0xc]
ldr r0, [sp]
add r0, r1, r0
@@ -43704,7 +43704,7 @@ _0224EC3A:
lsl r0, r0, #0xc
str r0, [sp, #0x10]
add r0, r6, #0
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
_0224EC88:
ldr r0, _0224EDC8 ; =0x021C48B8
ldr r2, [r0, #0x48]
@@ -44894,11 +44894,11 @@ _0224F604:
ldr r1, [r4, #0x4c]
add r0, #0xa0
ldr r0, [r0]
- bl FUN_021E7EEC
+ bl MOD05_021E7EEC
add r6, r0, #0
add r0, sp, #8
add r1, r6, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r0, [sp, #8]
add r1, sp, #8
add r0, r0, r7
@@ -44910,7 +44910,7 @@ _0224F604:
lsl r0, r0, #0xc
str r0, [sp, #0xc]
add r0, r6, #0
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
_0224F650:
ldr r0, _0224F75C ; =0x021C48B8
ldr r2, [r0, #0x48]
@@ -45489,7 +45489,7 @@ _0224FA66:
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r5, #0x2c]
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
str r0, [r4, #0x14]
_0224FAA8:
add r6, r6, #1
@@ -45572,10 +45572,10 @@ _0224FB1E:
ldr r1, [r4, #0x10]
add r0, #0xa0
ldr r0, [r0]
- bl FUN_021E7EEC
+ bl MOD05_021E7EEC
add r1, r0, #0
add r0, sp, #0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
add r3, sp, #0
add r2, r5, #0
ldmia r3!, {r0, r1}
@@ -45617,10 +45617,10 @@ _0224FB7A:
ldr r1, [r4, #0x2c]
add r0, #0xa0
ldr r0, [r0]
- bl FUN_021E7EEC
+ bl MOD05_021E7EEC
add r4, #0x10
add r1, r4, #0
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
pop {r4, pc}
thumb_func_end MOD18_0224FB64
@@ -45659,11 +45659,11 @@ _0224FBC4: .word 0x02251350
thumb_func_start MOD18_0224FBC8
MOD18_0224FBC8: ; 0x0224FBC8
- ldr r3, _0224FBD0 ; =0x02016A19
+ ldr r3, _0224FBD0 ; =FUN_02016A18
ldr r0, [r0, #0x54]
bx r3
nop
-_0224FBD0: .word 0x02016A19
+_0224FBD0: .word FUN_02016A18
thumb_func_end MOD18_0224FBC8
thumb_func_start MOD18_0224FBD4
@@ -45802,9 +45802,9 @@ MOD18_0224FC18: ; 0x0224FC18
add r0, #0xa0
str r0, [sp]
ldr r0, [r0]
- bl FUN_021E7EEC
+ bl MOD05_021E7EEC
add r1, sp, #8
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
_0224FCCE:
add sp, #0x24
pop {r4, r5, r6, r7, pc}
@@ -46159,9 +46159,9 @@ MOD18_0224FF24: ; 0x0224FF24
str r1, [r4, #0xc]
ldr r0, [r0]
ldr r1, [r4]
- bl FUN_021E7EEC
+ bl MOD05_021E7EEC
ldr r1, [r4, #0xc]
- bl FUN_021E7EC0
+ bl MOD05_021E7EC0
_0224FF60:
pop {r4, pc}
.align 2, 0
@@ -46176,9 +46176,9 @@ MOD18_0224FF64: ; 0x0224FF64
add r0, #0xa0
ldr r0, [r0]
ldr r1, [r1]
- bl FUN_021E7EEC
+ bl MOD05_021E7EEC
mov r1, #0
- bl FUN_021E7EC0
+ bl MOD05_021E7EC0
_0224FF7C:
pop {r3, pc}
.align 2, 0
@@ -46251,9 +46251,13 @@ _0224FFDC: .word 0x02250834
_0224FFE0: .word 0x022507F0
thumb_func_end MOD18_0224FFA0
- .section .data
+ .section .rodata
; 0x0224FFE4
- .incbin "baserom.nds", 0x281B44, 0x139C
+ .incbin "baserom.nds", 0x281B44, 0x874
+
+ .section .data
+ ; 0x02250860
+ .incbin "baserom.nds", 0x2823C0, 0xB20
.section .bss
; 0x02251380
diff --git a/arm9/modules/19/asm/module_19.s b/arm9/modules/19/asm/module_19.s
index 76dad3e4..52c045cc 100644
--- a/arm9/modules/19/asm/module_19.s
+++ b/arm9/modules/19/asm/module_19.s
@@ -101,6 +101,6 @@ MOD19_02252504: ; 0x02252504
bx lr
thumb_func_end MOD19_02252504
- .section .data
+ .section .rodata
; 0x02252508
- .incbin "baserom.nds", 0x2830C8, 0x38
+ .incbin "baserom.nds", 0x2830C8, 0x1c
diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s
index afe8646c..2975c2d8 100644
--- a/arm9/modules/20/asm/module_20.s
+++ b/arm9/modules/20/asm/module_20.s
@@ -5,10 +5,10 @@
thumb_func_start MOD20_02252440
MOD20_02252440: ; 0x02252440
- ldr r3, _02252444 ; =0x02037791
+ ldr r3, _02252444 ; =FUN_02037790
bx r3
.align 2, 0
-_02252444: .word 0x02037791
+_02252444: .word FUN_02037790
thumb_func_end MOD20_02252440
thumb_func_start MOD20_02252448
@@ -1136,11 +1136,11 @@ _02252C04:
thumb_func_start MOD20_02252C08
MOD20_02252C08: ; 0x02252C08
- ldr r3, _02252C10 ; =0x0204646D
+ ldr r3, _02252C10 ; =FUN_0204646C
ldr r0, [r0, #0x5c]
bx r3
nop
-_02252C10: .word 0x0204646D
+_02252C10: .word FUN_0204646C
thumb_func_end MOD20_02252C08
thumb_func_start MOD20_02252C14
@@ -4565,6 +4565,6 @@ _022544BC: .word 0x022547C4
_022544C0: .word 0x022547C5
thumb_func_end MOD20_02254488
- .section .data
+ .section .rodata
; 0x022544C4
- .incbin "baserom.nds", 0x285284, 0x37C
+ .incbin "baserom.nds", 0x285284, 0x374
diff --git a/arm9/modules/21/asm/module_21.s b/arm9/modules/21/asm/module_21.s
index cea8f6e8..45ec356b 100644
--- a/arm9/modules/21/asm/module_21.s
+++ b/arm9/modules/21/asm/module_21.s
@@ -423,20 +423,20 @@ _02254B30: .word 0x02254DAC
thumb_func_start MOD21_02254B34
MOD21_02254B34: ; 0x02254B34
- ldr r3, _02254B3C ; =0x02253795
+ ldr r3, _02254B3C ; =MOD20_02253794
add r0, #8
bx r3
nop
-_02254B3C: .word 0x02253795
+_02254B3C: .word MOD20_02253794
thumb_func_end MOD21_02254B34
thumb_func_start MOD21_02254B40
MOD21_02254B40: ; 0x02254B40
- ldr r3, _02254B48 ; =0x022537B9
+ ldr r3, _02254B48 ; =MOD20_022537B8
add r0, #8
bx r3
nop
-_02254B48: .word 0x022537B9
+_02254B48: .word MOD20_022537B8
thumb_func_end MOD21_02254B40
thumb_func_start MOD21_02254B4C
@@ -721,6 +721,15 @@ _02254D78: .word 0x040002A0
_02254D7C: .word 0x040002A8
thumb_func_end MOD21_02254C5C
- .section .data
+ .section .rodata
; 0x02254D80
- .incbin "baserom.nds", 0x285B40, 0x80
+ .incbin "baserom.nds", 0x285B40, 0x68
+
+ ; Dumb hack because the compiler aligns to 16 instead of 8
+ ;.section .sinit
+ .global SDK_OVERLAY.MODULE_21.SINIT_START
+ .global SDK_OVERLAY.MODULE_21.SINIT_END
+SDK_OVERLAY.MODULE_21.SINIT_START:
+ .word MOD21_02254840
+ .word 0
+SDK_OVERLAY.MODULE_21.SINIT_END:
diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s
index 77e6bff4..5a63c8bc 100644
--- a/arm9/modules/22/asm/module_22.s
+++ b/arm9/modules/22/asm/module_22.s
@@ -626,11 +626,11 @@ _02254CD0: .word MOD22_02254CE0
thumb_func_start MOD22_02254CD4
MOD22_02254CD4: ; 0x02254CD4
- ldr r3, _02254CDC ; =0x02254199
+ ldr r3, _02254CDC ; =MOD20_02254198
ldr r0, [r0, #0x5c]
bx r3
nop
-_02254CDC: .word 0x02254199
+_02254CDC: .word MOD20_02254198
thumb_func_end MOD22_02254CD4
thumb_func_start MOD22_02254CE0
@@ -1124,20 +1124,20 @@ _02255068: .word 0x02255670
thumb_func_start MOD22_0225506C
MOD22_0225506C: ; 0x0225506C
- ldr r3, _02255074 ; =0x02253795
+ ldr r3, _02255074 ; =MOD20_02253794
add r0, #8
bx r3
nop
-_02255074: .word 0x02253795
+_02255074: .word MOD20_02253794
thumb_func_end MOD22_0225506C
thumb_func_start MOD22_02255078
MOD22_02255078: ; 0x02255078
- ldr r3, _02255080 ; =0x022537B9
+ ldr r3, _02255080 ; =MOD20_022537B8
add r0, #8
bx r3
nop
-_02255080: .word 0x022537B9
+_02255080: .word MOD20_022537B8
thumb_func_end MOD22_02255078
thumb_func_start MOD22_02255084
@@ -1840,6 +1840,9 @@ _02255604:
.align 2, 0
thumb_func_end MOD22_022555FC
- .section .data
+ .section .rodata
; 0x02255618
- .incbin "baserom.nds", 0x2869D8, 0x128
+ .incbin "baserom.nds", 0x2869D8, 0x118
+
+ .section .sinit
+ .word MOD22_02254840
diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s
index 6688578e..acb9bed3 100644
--- a/arm9/modules/23/asm/module_23.s
+++ b/arm9/modules/23/asm/module_23.s
@@ -1123,20 +1123,20 @@ _02255058: .word 0x02256040
thumb_func_start MOD23_0225505C
MOD23_0225505C: ; 0x0225505C
- ldr r3, _02255064 ; =0x02253795
+ ldr r3, _02255064 ; =MOD20_02253794
add r0, #8
bx r3
nop
-_02255064: .word 0x02253795
+_02255064: .word MOD20_02253794
thumb_func_end MOD23_0225505C
thumb_func_start MOD23_02255068
MOD23_02255068: ; 0x02255068
- ldr r3, _02255070 ; =0x022537B9
+ ldr r3, _02255070 ; =MOD20_022537B8
add r0, #8
bx r3
nop
-_02255070: .word 0x022537B9
+_02255070: .word MOD20_022537B8
thumb_func_end MOD23_02255068
thumb_func_start MOD23_02255074
@@ -1746,10 +1746,10 @@ _0225553C:
thumb_func_start MOD23_02255540
MOD23_02255540: ; 0x02255540
- ldr r3, _02255544 ; =0x02016A19
+ ldr r3, _02255544 ; =FUN_02016A18
bx r3
.align 2, 0
-_02255544: .word 0x02016A19
+_02255544: .word FUN_02016A18
thumb_func_end MOD23_02255540
thumb_func_start MOD23_02255548
@@ -2789,6 +2789,14 @@ _02255C96:
_02255CB8: .word 0x022560D0
thumb_func_end MOD23_02255C6C
- .section .data
+ .section .rodata
; 0x02255CBC
- .incbin "baserom.nds", 0x28807C, 0x484
+ .incbin "baserom.nds", 0x28807C, 0x46C
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_23.SINIT_START
+ .global SDK_OVERLAY.MODULE_23.SINIT_END
+SDK_OVERLAY.MODULE_23.SINIT_START:
+ .word MOD23_02254840
+ .word 0
+SDK_OVERLAY.MODULE_23.SINIT_END:
diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s
index e3b9a327..ba2c3f32 100644
--- a/arm9/modules/24/asm/module_24.s
+++ b/arm9/modules/24/asm/module_24.s
@@ -1179,6 +1179,9 @@ _022550DC:
.align 2, 0
thumb_func_end MOD24_022550D4
- .section .data
+ .section .rodata
; 0x022550F8
- .incbin "baserom.nds", 0x288EB8, 0xE8
+ .incbin "baserom.nds", 0x288EB8, 0xC8
+
+ .section .sinit
+ .word MOD24_02254840
diff --git a/arm9/modules/25/asm/module_25.s b/arm9/modules/25/asm/module_25.s
index 6df522da..e1d7b555 100644
--- a/arm9/modules/25/asm/module_25.s
+++ b/arm9/modules/25/asm/module_25.s
@@ -658,6 +658,9 @@ _02254CE6:
pop {r4, r5, r6, pc}
thumb_func_end MOD25_02254CD8
- .section .data
+ .section .rodata
; 0x02254CF8
- .incbin "baserom.nds", 0x2894B8, 0xA8
+ .incbin "baserom.nds", 0x2894B8, 0x88
+
+ .section .sinit
+ .word MOD25_02254840
diff --git a/arm9/modules/26/asm/module_26.s b/arm9/modules/26/asm/module_26.s
index 2511101e..0b8d99df 100644
--- a/arm9/modules/26/asm/module_26.s
+++ b/arm9/modules/26/asm/module_26.s
@@ -788,6 +788,9 @@ _02254DC2:
_02254DE0: .word 0x02254FD0
thumb_func_end MOD26_02254DAC
- .section .data
+ .section .rodata
; 0x02254DE4
- .incbin "baserom.nds", 0x289BA4, 0x25C
+ .incbin "baserom.nds", 0x289BA4, 0x23C
+
+ .section .sinit
+ .word MOD26_02254840
diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s
index b9a2d1ca..13a97851 100644
--- a/arm9/modules/27/asm/module_27.s
+++ b/arm9/modules/27/asm/module_27.s
@@ -1448,6 +1448,14 @@ MOD27_022552D0: ; 0x022552D0
_02255338: .word 0x00000669
thumb_func_end MOD27_022552D0
- .section .data
+ .section .rodata
; 0x0225533C
- .incbin "baserom.nds", 0x28A8FC, 0xA4
+ .incbin "baserom.nds", 0x28A8FC, 0x88
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_27.SINIT_START
+ .global SDK_OVERLAY.MODULE_27.SINIT_END
+SDK_OVERLAY.MODULE_27.SINIT_START:
+ .word MOD27_02254840
+ .word 0
+SDK_OVERLAY.MODULE_27.SINIT_END:
diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s
index 0ad10077..42733627 100644
--- a/arm9/modules/28/asm/module_28.s
+++ b/arm9/modules/28/asm/module_28.s
@@ -5,12 +5,12 @@
thumb_func_start MOD28_02254840
MOD28_02254840: ; 0x02254840
- ldr r3, _02254848 ; =0x02252979
+ ldr r3, _02254848 ; =MOD20_02252978
ldr r0, _0225484C ; =MOD28_02254854
ldr r1, _02254850 ; =MOD28_022549F4
bx r3
.align 2, 0
-_02254848: .word 0x02252979
+_02254848: .word MOD20_02252978
_0225484C: .word MOD28_02254854
_02254850: .word MOD28_022549F4
thumb_func_end MOD28_02254840
@@ -519,20 +519,20 @@ _02254BE8: .word 0x02255EF4
thumb_func_start MOD28_02254BEC
MOD28_02254BEC: ; 0x02254BEC
- ldr r3, _02254BF4 ; =0x02253795
+ ldr r3, _02254BF4 ; =MOD20_02253794
add r0, #8
bx r3
nop
-_02254BF4: .word 0x02253795
+_02254BF4: .word MOD20_02253794
thumb_func_end MOD28_02254BEC
thumb_func_start MOD28_02254BF8
MOD28_02254BF8: ; 0x02254BF8
- ldr r3, _02254C00 ; =0x022537B9
+ ldr r3, _02254C00 ; =MOD20_022537B8
add r0, #8
bx r3
nop
-_02254C00: .word 0x022537B9
+_02254C00: .word MOD20_022537B8
thumb_func_end MOD28_02254BF8
thumb_func_start MOD28_02254C04
@@ -1531,11 +1531,11 @@ MOD28_02255344: ; 0x02255344
mov r0, #0x4e
lsl r0, r0, #2
ldr r0, [r1, r0]
- ldr r3, _02255358 ; =0x02253F79
+ ldr r3, _02255358 ; =MOD20_02253F78
mov r1, #1
bx r3
nop
-_02255358: .word 0x02253F79
+_02255358: .word MOD20_02253F78
thumb_func_end MOD28_02255344
thumb_func_start MOD28_0225535C
@@ -2963,5 +2963,19 @@ _02255E6E:
nop
_02255E74: .word 0x00000163
thumb_func_end MOD28_02255920
+
+ .section .rodata
; 0x02255E78
- .incbin "baserom.nds", 0x28C038, 0x148
+ .incbin "baserom.nds", 0x28C038, 0xa0
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_28.SINIT_START
+ .global SDK_OVERLAY.MODULE_28.SINIT_END
+SDK_OVERLAY.MODULE_28.SINIT_START:
+ .word MOD28_02254840
+ .word 0
+SDK_OVERLAY.MODULE_28.SINIT_END:
+
+ .section .data
+ ; 0x02255F20
+ .incbin "baserom.nds", 0x28C0E0, 0xa0
diff --git a/arm9/modules/29/asm/module_29.s b/arm9/modules/29/asm/module_29.s
index 818f41aa..65873dcc 100644
--- a/arm9/modules/29/asm/module_29.s
+++ b/arm9/modules/29/asm/module_29.s
@@ -383,7 +383,7 @@ _02254AE0:
mul r1, r0
add r0, r2, r1
lsl r0, r0, #0xc
- blx FX_Sqrt
+ bl FX_Sqrt
ldrb r1, [r5, #4]
lsl r2, r1, #2
ldr r1, _02254B6C ; =0x022550A8
@@ -724,13 +724,13 @@ MOD29_02254D10: ; 0x02254D10
add r0, r4, #0
add r0, #0x70
mov r1, #0x20
- blx DC_FlushRange
+ bl DC_FlushRange
add r0, r4, #0
mov r1, #0x1a
add r0, #0x70
lsl r1, r1, #4
mov r2, #0x20
- blx GXS_LoadOBJPltt
+ bl GXS_LoadOBJPltt
add r0, r4, #0
add r0, #0x8e
ldrh r1, [r0]
@@ -740,13 +740,13 @@ MOD29_02254D10: ; 0x02254D10
add r0, r4, #0
add r0, #0x70
mov r1, #0x20
- blx DC_FlushRange
+ bl DC_FlushRange
add r0, r4, #0
mov r1, #7
add r0, #0x70
lsl r1, r1, #6
mov r2, #0x20
- blx GXS_LoadOBJPltt
+ bl GXS_LoadOBJPltt
ldr r0, [r4, #4]
mov r1, #6
bl FUN_02017CD0
@@ -1121,6 +1121,14 @@ MOD29_0225508C: ; 0x0225508C
.align 2, 0
thumb_func_end MOD29_0225508C
- .section .data
+ .section .rodata
; 0x0225509C
- .incbin "baserom.nds", 0x28CA5C, 0xA4
+ .incbin "baserom.nds", 0x28CA5C, 0x90
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_29.SINIT_START
+ .global SDK_OVERLAY.MODULE_29.SINIT_END
+SDK_OVERLAY.MODULE_29.SINIT_START:
+ .word MOD29_02254840
+ .word 0
+SDK_OVERLAY.MODULE_29.SINIT_END:
diff --git a/arm9/modules/30/asm/module_30.s b/arm9/modules/30/asm/module_30.s
index 36581e76..924f7ad0 100644
--- a/arm9/modules/30/asm/module_30.s
+++ b/arm9/modules/30/asm/module_30.s
@@ -731,4 +731,12 @@ _02254D9C: .word 0x040002A8
.section .data
; 0x02254DA0
- .incbin "baserom.nds", 0x28D160, 0xA0
+ .incbin "baserom.nds", 0x28D160, 0x88
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_30.SINIT_START
+ .global SDK_OVERLAY.MODULE_30.SINIT_END
+SDK_OVERLAY.MODULE_30.SINIT_START:
+ .word MOD30_02254840
+ .word 0
+SDK_OVERLAY.MODULE_30.SINIT_END:
diff --git a/arm9/modules/31/asm/module_31.s b/arm9/modules/31/asm/module_31.s
index cdf3282a..e9c70424 100644
--- a/arm9/modules/31/asm/module_31.s
+++ b/arm9/modules/31/asm/module_31.s
@@ -719,6 +719,9 @@ _02254D90: .word 0x040002A0
_02254D94: .word 0x040002A8
thumb_func_end MOD31_02254D1C
- .section .data
+ .section .rodata
; 0x02254D98
- .incbin "baserom.nds", 0x28D758, 0xA8
+ .incbin "baserom.nds", 0x28D758, 0x88
+
+ .section .sinit
+ .word MOD31_02254840
diff --git a/arm9/modules/32/asm/module_32.s b/arm9/modules/32/asm/module_32.s
index 135a9b15..299432f1 100644
--- a/arm9/modules/32/asm/module_32.s
+++ b/arm9/modules/32/asm/module_32.s
@@ -571,6 +571,14 @@ _02254C48:
_02254C50: .word 0x00000663
thumb_func_end MOD32_02254C08
- .section .data
+ .section .rodata
; 0x02254C54
- .incbin "baserom.nds", 0x28DC14, 0x8C
+ .incbin "baserom.nds", 0x28DC14, 0x70
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_32.SINIT_START
+ .global SDK_OVERLAY.MODULE_32.SINIT_END
+SDK_OVERLAY.MODULE_32.SINIT_START:
+ .word MOD32_02254840
+ .word 0
+SDK_OVERLAY.MODULE_32.SINIT_END:
diff --git a/arm9/modules/33/asm/module_33.s b/arm9/modules/33/asm/module_33.s
new file mode 100644
index 00000000..67ec554d
--- /dev/null
+++ b/arm9/modules/33/asm/module_33.s
@@ -0,0 +1,399 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD33_02254840
+MOD33_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD33_02254854
+ ldr r1, _02254850 ; =MOD33_02254908
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD33_02254854
+_02254850: .word MOD33_02254908
+ thumb_func_end MOD33_02254840
+
+ thumb_func_start MOD33_02254854
+MOD33_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x10
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD33_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD33_022548D4
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD33_022548D4
+ thumb_func_end MOD33_02254854
+
+ thumb_func_start MOD33_0225489C
+MOD33_0225489C: ; 0x0225489C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #8
+ add r1, r5, #4
+ bl MOD33_022549AC
+ cmp r0, #0
+ beq _022548BC
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022548BC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD33_0225489C
+
+ thumb_func_start MOD33_022548C0
+MOD33_022548C0: ; 0x022548C0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD33_022549DC
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD33_022548C0
+
+ thumb_func_start MOD33_022548D4
+MOD33_022548D4: ; 0x022548D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhs _02254900
+ lsl r2, r1, #2
+ ldr r1, _02254904 ; =0x02254AF4
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254900
+ add r0, r4, #0
+ bl MOD33_022548C0
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_02254900:
+ pop {r3, r4, r5, pc}
+ nop
+_02254904: .word 0x02254AF4
+ thumb_func_end MOD33_022548D4
+
+ thumb_func_start MOD33_02254908
+MOD33_02254908: ; 0x02254908
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD33_02254908
+
+ thumb_func_start MOD33_02254910
+MOD33_02254910: ; 0x02254910
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254918
+ b _0225491A
+_02254918:
+ mov r1, #2
+_0225491A:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD33_02254910
+
+ thumb_func_start MOD33_02254924
+MOD33_02254924: ; 0x02254924
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254934
+ cmp r0, #1
+ beq _02254944
+ b _0225495E
+_02254934:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD33_022549E8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _0225495E
+_02254944:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD33_02254A0C
+ cmp r0, #0
+ beq _0225495E
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD33_02254910
+_0225495E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD33_02254924
+
+ thumb_func_start MOD33_02254964
+MOD33_02254964: ; 0x02254964
+ push {r3, lr}
+ ldrb r1, [r0, #2]
+ cmp r1, #0
+ beq _02254972
+ mov r1, #2
+ bl MOD33_02254910
+_02254972:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD33_02254964
+
+ thumb_func_start MOD33_02254978
+MOD33_02254978: ; 0x02254978
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254988
+ cmp r0, #1
+ beq _02254998
+ b _022549A6
+_02254988:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD33_022549E8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549A6
+_02254998:
+ ldr r0, [r4, #8]
+ bl MOD33_02254A18
+ cmp r0, #0
+ beq _022549A6
+ mov r0, #1
+ pop {r4, pc}
+_022549A6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD33_02254978
+
+ thumb_func_start MOD33_022549AC
+MOD33_022549AC: ; 0x022549AC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x30
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _022549D8
+ add r0, #8
+ mov r1, #8
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ cmp r0, #0
+ beq _022549D8
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022549D8:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD33_022549AC
+
+ thumb_func_start MOD33_022549DC
+MOD33_022549DC: ; 0x022549DC
+ push {r3, lr}
+ cmp r0, #0
+ beq _022549E6
+ bl FUN_02016A18
+_022549E6:
+ pop {r3, pc}
+ thumb_func_end MOD33_022549DC
+
+ thumb_func_start MOD33_022549E8
+MOD33_022549E8: ; 0x022549E8
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254A08 ; =0x02254B1C
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254A08: .word 0x02254B1C
+ thumb_func_end MOD33_022549E8
+
+ thumb_func_start MOD33_02254A0C
+MOD33_02254A0C: ; 0x02254A0C
+ ldr r3, _02254A14 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254A14: .word MOD20_02253794
+ thumb_func_end MOD33_02254A0C
+
+ thumb_func_start MOD33_02254A18
+MOD33_02254A18: ; 0x02254A18
+ ldr r3, _02254A20 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254A20: .word MOD20_022537B8
+ thumb_func_end MOD33_02254A18
+
+ thumb_func_start MOD33_02254A24
+MOD33_02254A24: ; 0x02254A24
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD33_02254A24
+
+ thumb_func_start MOD33_02254A38
+MOD33_02254A38: ; 0x02254A38
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254ACC ; =0x02254B00
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #8
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r3, #6
+ bl FUN_0200687C
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #4]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mov r1, #9
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ ldr r0, [r5, #4]
+ mov r1, #0xc
+ mov r2, #6
+ bl MOD20_02253AA4
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254AD0 ; =0x04001000
+ ldr r0, _02254AD4 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD33_02254A24
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254ACC: .word 0x02254B00
+_02254AD0: .word 0x04001000
+_02254AD4: .word 0xFFFFE0FF
+ thumb_func_end MOD33_02254A38
+
+ thumb_func_start MOD33_02254AD8
+MOD33_02254AD8: ; 0x02254AD8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ ldr r0, [r0, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD33_02254A24
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD33_02254AD8
+
+ .section .rodata
+ ; 0x02254AF4
+ .incbin "baserom.nds", 0x28E0B4, 0x4C
+
+ .section .sinit
+ .word MOD33_02254840
diff --git a/arm9/modules/34/asm/module_34.s b/arm9/modules/34/asm/module_34.s
new file mode 100644
index 00000000..a12d1a4a
--- /dev/null
+++ b/arm9/modules/34/asm/module_34.s
@@ -0,0 +1,601 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD34_02254840
+MOD34_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD34_02254854
+ ldr r1, _02254850 ; =MOD34_02254948
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD34_02254854
+_02254850: .word MOD34_02254948
+ thumb_func_end MOD34_02254840
+
+ thumb_func_start MOD34_02254854
+MOD34_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x38
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD34_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD34_0225490C
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD34_0225490C
+ thumb_func_end MOD34_02254854
+
+ thumb_func_start MOD34_0225489C
+MOD34_0225489C: ; 0x0225489C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0x24
+ add r1, r5, #4
+ bl MOD34_02254A5C
+ cmp r0, #0
+ beq _022548DC
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r4, [r5, #0x28]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _022548E0 ; =0x02254C7C
+ ldr r2, _022548E4 ; =MOD34_02254904
+ mov r1, #6
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x2c]
+ mov r1, #0
+ str r1, [r5, #0x30]
+ mov r0, #1
+_022548D0:
+ add r1, r1, #1
+ str r0, [r5, #8]
+ add r5, r5, #4
+ cmp r1, #6
+ blt _022548D0
+ pop {r3, r4, r5, pc}
+_022548DC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022548E0: .word 0x02254C7C
+_022548E4: .word MOD34_02254904
+ thumb_func_end MOD34_0225489C
+
+ thumb_func_start MOD34_022548E8
+MOD34_022548E8: ; 0x022548E8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ beq _022548F6
+ bl MOD20_02254198
+_022548F6:
+ ldr r0, [r4, #0x24]
+ bl MOD34_02254A8C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD34_022548E8
+
+ thumb_func_start MOD34_02254904
+MOD34_02254904: ; 0x02254904
+ str r1, [r3, #0x30]
+ str r0, [r3, #0x34]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD34_02254904
+
+ thumb_func_start MOD34_0225490C
+MOD34_0225490C: ; 0x0225490C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254942
+ ldr r0, [r4, #0x28]
+ ldr r1, [r4, #0x2c]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254944 ; =0x02254C70
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254942
+ add r0, r4, #0
+ bl MOD34_022548E8
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x28]
+ bl MOD20_022529A0
+_02254942:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254944: .word 0x02254C70
+ thumb_func_end MOD34_0225490C
+
+ thumb_func_start MOD34_02254948
+MOD34_02254948: ; 0x02254948
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD34_02254948
+
+ thumb_func_start MOD34_02254950
+MOD34_02254950: ; 0x02254950
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254958
+ b _0225495A
+_02254958:
+ mov r1, #2
+_0225495A:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD34_02254950
+
+ thumb_func_start MOD34_02254964
+MOD34_02254964: ; 0x02254964
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254974
+ cmp r0, #1
+ beq _02254984
+ b _0225499E
+_02254974:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl MOD34_02254A98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _0225499E
+_02254984:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl MOD34_02254ABC
+ cmp r0, #0
+ beq _0225499E
+ ldr r0, [r4, #0x28]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD34_02254950
+_0225499E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD34_02254964
+
+ thumb_func_start MOD34_022549A4
+MOD34_022549A4: ; 0x022549A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549B8
+ mov r1, #2
+ bl MOD34_02254950
+ mov r0, #0
+ pop {r4, pc}
+_022549B8:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549C4
+ cmp r0, #1
+ beq _022549F6
+ b _02254A1A
+_022549C4:
+ ldr r0, [r4, #0x30]
+ cmp r0, #1
+ bne _02254A1A
+ ldr r1, [r4, #0x34]
+ lsl r0, r1, #2
+ add r0, r4, r0
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _022549EE
+ strh r1, [r4, #0x20]
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl MOD34_02254A98
+ ldr r0, _02254A20 ; =0x00000663
+ bl MOD20_02252B28
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A1A
+_022549EE:
+ ldr r0, _02254A24 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254A1A
+_022549F6:
+ ldr r0, [r4, #0x30]
+ cmp r0, #2
+ bne _02254A0A
+ ldr r0, [r4, #0x24]
+ mov r1, #3
+ bl MOD34_02254A98
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254A1A
+_02254A0A:
+ cmp r0, #3
+ bne _02254A1A
+ ldr r0, [r4, #0x24]
+ mov r1, #3
+ bl MOD34_02254A98
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254A1A:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254A20: .word 0x00000663
+_02254A24: .word 0x0000066E
+ thumb_func_end MOD34_022549A4
+
+ thumb_func_start MOD34_02254A28
+MOD34_02254A28: ; 0x02254A28
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A38
+ cmp r0, #1
+ beq _02254A48
+ b _02254A56
+_02254A38:
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl MOD34_02254A98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A56
+_02254A48:
+ ldr r0, [r4, #0x24]
+ bl MOD34_02254AC8
+ cmp r0, #0
+ beq _02254A56
+ mov r0, #1
+ pop {r4, pc}
+_02254A56:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD34_02254A28
+
+ thumb_func_start MOD34_02254A5C
+MOD34_02254A5C: ; 0x02254A5C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x20
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254A88
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ cmp r0, #0
+ beq _02254A88
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254A88:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD34_02254A5C
+
+ thumb_func_start MOD34_02254A8C
+MOD34_02254A8C: ; 0x02254A8C
+ push {r3, lr}
+ cmp r0, #0
+ beq _02254A96
+ bl FUN_02016A18
+_02254A96:
+ pop {r3, pc}
+ thumb_func_end MOD34_02254A8C
+
+ thumb_func_start MOD34_02254A98
+MOD34_02254A98: ; 0x02254A98
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254AB8 ; =0x02254CBC
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254AB8: .word 0x02254CBC
+ thumb_func_end MOD34_02254A98
+
+ thumb_func_start MOD34_02254ABC
+MOD34_02254ABC: ; 0x02254ABC
+ ldr r3, _02254AC4 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254AC4: .word MOD20_02253794
+ thumb_func_end MOD34_02254ABC
+
+ thumb_func_start MOD34_02254AC8
+MOD34_02254AC8: ; 0x02254AC8
+ ldr r3, _02254AD0 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254AD0: .word MOD20_022537B8
+ thumb_func_end MOD34_02254AC8
+
+ thumb_func_start MOD34_02254AD4
+MOD34_02254AD4: ; 0x02254AD4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD34_02254AD4
+
+ thumb_func_start MOD34_02254AE8
+MOD34_02254AE8: ; 0x02254AE8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x10]
+ add r0, r1, #0
+ bl MOD20_022538A0
+ add r6, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538A4
+ add r5, r0, #0
+ ldr r0, [r6, #4]
+ ldr r2, _02254B8C ; =0x02254CA0
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #4]
+ mov r0, #0xc
+ mov r1, #0x3b
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #4]
+ mov r0, #0xc
+ mov r1, #0x3a
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ mov r4, #0
+ add r7, r4, #0
+_02254B4A:
+ ldr r2, [r5, #4]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r7, #0
+ bl MOD34_02254C1C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02254B4A
+ ldr r0, [r6, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r0, _02254B90 ; =0x04001000
+ ldr r1, _02254B94 ; =0xFFFFE0FF
+ ldr r2, [r0]
+ ldr r4, [r0]
+ add r3, r2, #0
+ and r3, r1
+ lsl r1, r4, #0x13
+ lsr r2, r1, #0x1b
+ mov r1, #4
+ orr r1, r2
+ lsl r1, r1, #8
+ orr r1, r3
+ str r1, [r0]
+ ldr r0, [sp, #0x10]
+ str r4, [sp, #0x14]
+ bl MOD34_02254AD4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254B8C: .word 0x02254CA0
+_02254B90: .word 0x04001000
+_02254B94: .word 0xFFFFE0FF
+ thumb_func_end MOD34_02254AE8
+
+ thumb_func_start MOD34_02254B98
+MOD34_02254B98: ; 0x02254B98
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ ldr r0, [r0, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD34_02254AD4
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD34_02254B98
+
+ thumb_func_start MOD34_02254BB4
+MOD34_02254BB4: ; 0x02254BB4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r3, r0, #0
+ ldrh r1, [r3, #0x1c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ add r2, r3, r2
+ ldr r2, [r2, #4]
+ mov r3, #1
+ bl MOD34_02254C1C
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl MOD34_02254AD4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD34_02254BB4
+
+ thumb_func_start MOD34_02254BE8
+MOD34_02254BE8: ; 0x02254BE8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r3, r0, #0
+ ldrh r1, [r3, #0x1c]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ add r2, r3, r2
+ ldr r2, [r2, #4]
+ mov r3, #0
+ bl MOD34_02254C1C
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl MOD34_02254AD4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD34_02254BE8
+
+ thumb_func_start MOD34_02254C1C
+MOD34_02254C1C: ; 0x02254C1C
+ push {r4, r5, r6, lr}
+ ldr r0, [r0, #4]
+ add r5, r1, #0
+ mov r1, #6
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0201886C
+ ldr r1, _02254C6C ; =0x02254C94
+ lsl r2, r5, #1
+ ldrh r1, [r1, r2]
+ lsl r1, r1, #1
+ add r2, r0, r1
+ cmp r4, #0
+ beq _02254C44
+ add r1, r5, #1
+ mov r0, #0x48
+ add r5, r1, #0
+ mul r5, r0
+ b _02254C46
+_02254C44:
+ mov r5, #0
+_02254C46:
+ cmp r6, #0
+ beq _02254C4C
+ add r5, #0x24
+_02254C4C:
+ mov r3, #0
+ add r0, r3, #0
+_02254C50:
+ add r1, r0, #0
+ add r4, r2, #0
+_02254C54:
+ add r1, r1, #1
+ strh r5, [r4]
+ add r5, r5, #1
+ add r4, r4, #2
+ cmp r1, #6
+ blt _02254C54
+ add r3, r3, #1
+ add r2, #0x40
+ cmp r3, #6
+ blt _02254C50
+ pop {r4, r5, r6, pc}
+ nop
+_02254C6C: .word 0x02254C94
+ thumb_func_end MOD34_02254C1C
+
+ .section .rodata
+ ; 0x02254C70
+ .incbin "baserom.nds", 0x28e630, 0x88
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_34.SINIT_START
+ .global SDK_OVERLAY.MODULE_34.SINIT_END
+SDK_OVERLAY.MODULE_34.SINIT_START:
+ .word MOD34_02254840
+ .word 0
+SDK_OVERLAY.MODULE_34.SINIT_END:
diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s
new file mode 100644
index 00000000..fe5b7b14
--- /dev/null
+++ b/arm9/modules/35/asm/module_35.s
@@ -0,0 +1,1142 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD35_02254840
+MOD35_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD35_02254854
+ ldr r1, _02254850 ; =MOD35_02254924
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD35_02254854
+_02254850: .word MOD35_02254924
+ thumb_func_end MOD35_02254840
+
+ thumb_func_start MOD35_02254854
+MOD35_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x34
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD35_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD35_022548F0
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD35_022548F0
+ thumb_func_end MOD35_02254854
+
+ thumb_func_start MOD35_0225489C
+MOD35_0225489C: ; 0x0225489C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r6, r2, #0
+ bl MOD20_02252C40
+ bl FUN_02023D58
+ str r0, [r5, #0x30]
+ ldr r1, [r5, #0x30]
+ add r0, r5, #4
+ bl MOD35_02254A50
+ add r0, r5, #0
+ add r0, #0x28
+ add r1, r5, #4
+ add r2, r6, #0
+ bl MOD35_02254ADC
+ cmp r0, #0
+ beq _022548D6
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r4, [r5, #0x2c]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022548D6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD35_0225489C
+
+ thumb_func_start MOD35_022548DC
+MOD35_022548DC: ; 0x022548DC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ bl MOD35_02254B38
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD35_022548DC
+
+ thumb_func_start MOD35_022548F0
+MOD35_022548F0: ; 0x022548F0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhs _0225491C
+ lsl r2, r1, #2
+ ldr r1, _02254920 ; =0x022550B8
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _0225491C
+ add r0, r4, #0
+ bl MOD35_022548DC
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x2c]
+ bl MOD20_022529A0
+_0225491C:
+ pop {r3, r4, r5, pc}
+ nop
+_02254920: .word 0x022550B8
+ thumb_func_end MOD35_022548F0
+
+ thumb_func_start MOD35_02254924
+MOD35_02254924: ; 0x02254924
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD35_02254924
+
+ thumb_func_start MOD35_0225492C
+MOD35_0225492C: ; 0x0225492C
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254934
+ b _02254936
+_02254934:
+ mov r1, #2
+_02254936:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD35_0225492C
+
+ thumb_func_start MOD35_02254940
+MOD35_02254940: ; 0x02254940
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254950
+ cmp r0, #1
+ beq _02254960
+ b _0225497A
+_02254950:
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD35_02254C48
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _0225497A
+_02254960:
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD35_02254C6C
+ cmp r0, #0
+ beq _0225497A
+ ldr r0, [r4, #0x2c]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD35_0225492C
+_0225497A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD35_02254940
+
+ thumb_func_start MOD35_02254980
+MOD35_02254980: ; 0x02254980
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254994
+ mov r1, #2
+ bl MOD35_0225492C
+ mov r0, #0
+ pop {r4, pc}
+_02254994:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _022549A0
+ cmp r1, #1
+ beq _022549C0
+ b _022549D0
+_022549A0:
+ bl MOD35_02254A08
+ cmp r0, #0
+ beq _022549D0
+ ldr r1, [r4, #0x30]
+ add r0, r4, #4
+ bl MOD35_02254A50
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl MOD35_02254C48
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549D0
+_022549C0:
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl MOD35_02254C6C
+ cmp r0, #0
+ beq _022549D0
+ mov r0, #0
+ strb r0, [r4, #1]
+_022549D0:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD35_02254980
+
+ thumb_func_start MOD35_022549D4
+MOD35_022549D4: ; 0x022549D4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549E4
+ cmp r0, #1
+ beq _022549F4
+ b _02254A02
+_022549E4:
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl MOD35_02254C48
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A02
+_022549F4:
+ ldr r0, [r4, #0x28]
+ bl MOD35_02254C78
+ cmp r0, #0
+ beq _02254A02
+ mov r0, #1
+ pop {r4, pc}
+_02254A02:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD35_022549D4
+
+ thumb_func_start MOD35_02254A08
+MOD35_02254A08: ; 0x02254A08
+ push {r3, lr}
+ sub sp, #8
+ ldr r0, [r0, #0x2c]
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02254A48
+ add r0, sp, #4
+ add r1, sp, #0
+ bl FUN_02020ACC
+ cmp r0, #0
+ beq _02254A48
+ ldr r0, [sp, #4]
+ sub r0, #0x10
+ cmp r0, #0xbf
+ bhs _02254A2E
+ mov r1, #1
+ b _02254A30
+_02254A2E:
+ mov r1, #0
+_02254A30:
+ ldr r0, [sp]
+ sub r0, #0x10
+ cmp r0, #0x9f
+ bhs _02254A3C
+ mov r0, #1
+ b _02254A3E
+_02254A3C:
+ mov r0, #0
+_02254A3E:
+ tst r0, r1
+ beq _02254A48
+ add sp, #8
+ mov r0, #1
+ pop {r3, pc}
+_02254A48:
+ mov r0, #0
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD35_02254A08
+
+ thumb_func_start MOD35_02254A50
+MOD35_02254A50: ; 0x02254A50
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ add r0, r1, #0
+ str r1, [sp, #4]
+ bl MOD05_021EC464
+ ldr r1, [sp]
+ strb r0, [r1]
+ ldr r0, [sp, #4]
+ bl FUN_02023C90
+ ldr r1, [sp]
+ mov r7, #0
+ strb r0, [r1, #1]
+ add r0, r1, #0
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _02254AD6
+ add r5, r1, #0
+ add r6, r1, #0
+_02254A7A:
+ ldr r0, [sp, #4]
+ add r1, r7, #0
+ bl FUN_02023C74
+ str r0, [sp, #8]
+ bl FUN_02023C7C
+ add r4, r0, #0
+ bl FUN_02066A6C
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ bl FUN_0206B688
+ str r0, [r5, #4]
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r6, #0x1c]
+ add r0, r4, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020672BC
+ strh r0, [r6, #0x20]
+ ldr r0, [sp, #8]
+ bl MOD05_021EC7B4
+ str r0, [r5, #0xc]
+ add r0, r4, #0
+ bl FUN_020689E8
+ str r0, [r5, #0x14]
+ ldr r1, [sp, #0xc]
+ add r0, r4, #0
+ bl FUN_02066A94
+ ldr r0, [sp]
+ add r7, r7, #1
+ ldrb r0, [r0]
+ add r5, r5, #4
+ add r6, r6, #2
+ cmp r7, r0
+ blt _02254A7A
+_02254AD6:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD35_02254A50
+
+ thumb_func_start MOD35_02254ADC
+MOD35_02254ADC: ; 0x02254ADC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x90
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254B2E
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x88
+ str r2, [r0]
+ ldr r0, _02254B34 ; =MOD35_02254E60
+ add r1, r4, #0
+ bl FUN_0200CA98
+ add r1, r4, #0
+ add r1, #0x8c
+ str r0, [r1]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD35_02254B54
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02254B2E
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254B2E:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02254B34: .word MOD35_02254E60
+ thumb_func_end MOD35_02254ADC
+
+ thumb_func_start MOD35_02254B38
+MOD35_02254B38: ; 0x02254B38
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254B52
+ bl MOD35_02254C18
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254B52:
+ pop {r4, pc}
+ thumb_func_end MOD35_02254B38
+
+ thumb_func_start MOD35_02254B54
+MOD35_02254B54: ; 0x02254B54
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r7, r0, #0
+ mov r0, #1
+ str r1, [sp, #0xc]
+ bl MOD20_022539C4
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x54
+ bl FUN_02006A34
+ mov r1, #0x14
+ bl _u32_div_f
+ ldr r1, [sp, #0xc]
+ str r0, [sp, #0x14]
+ str r0, [r7, #0x78]
+ bl MOD35_02254E88
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x50
+ mov r1, #0xc
+ mov r2, #0x52
+ mov r3, #0x53
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x64
+ mov r1, #0xc
+ mov r2, #5
+ mov r3, #6
+ bl MOD20_02253FBC
+ add r0, r7, #0
+ str r0, [sp, #0x1c]
+ add r0, #0x50
+ str r0, [sp, #0x1c]
+ add r0, r7, #0
+ mov r4, #0
+ str r0, [sp, #0x18]
+ add r0, #0x64
+ ldr r6, _02254C14 ; =0x02255110
+ add r5, r7, #0
+ str r4, [sp, #0x10]
+ str r0, [sp, #0x18]
+_02254BC2:
+ cmp r4, #0
+ blt _02254BE2
+ cmp r4, #2
+ bgt _02254BE2
+ ldr r0, [r7, #0x20]
+ ldr r2, [sp, #0x18]
+ add r1, r6, #0
+ bl MOD20_02253E74
+ ldr r2, [sp, #0x14]
+ ldr r1, [sp, #0x10]
+ str r0, [r5, #0x24]
+ add r1, r2, r1
+ bl MOD20_02253FA4
+ b _02254BEE
+_02254BE2:
+ ldr r0, [r7, #0x20]
+ ldr r2, [sp, #0x1c]
+ add r1, r6, #0
+ bl MOD20_02253E74
+ str r0, [r5, #0x24]
+_02254BEE:
+ ldr r0, [r5, #0x24]
+ mov r1, #1
+ bl MOD20_02253FAC
+ ldr r0, [sp, #0x10]
+ add r4, r4, #1
+ add r0, #0x20
+ add r6, #0x10
+ add r5, r5, #4
+ str r0, [sp, #0x10]
+ cmp r4, #0xb
+ blt _02254BC2
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD35_02254EC8
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254C14: .word 0x02255110
+ thumb_func_end MOD35_02254B54
+
+ thumb_func_start MOD35_02254C18
+MOD35_02254C18: ; 0x02254C18
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02254C20:
+ ldr r1, [r5, #0x24]
+ cmp r1, #0
+ beq _02254C2C
+ ldr r0, [r6, #0x20]
+ bl MOD20_02253F14
+_02254C2C:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xb
+ blt _02254C20
+ add r0, r6, #0
+ add r0, #0x64
+ bl MOD20_02254014
+ add r6, #0x50
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD35_02254C18
+
+ thumb_func_start MOD35_02254C48
+MOD35_02254C48: ; 0x02254C48
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254C68 ; =0x022550E0
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254C68: .word 0x022550E0
+ thumb_func_end MOD35_02254C48
+
+ thumb_func_start MOD35_02254C6C
+MOD35_02254C6C: ; 0x02254C6C
+ ldr r3, _02254C74 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254C74: .word MOD20_02253794
+ thumb_func_end MOD35_02254C6C
+
+ thumb_func_start MOD35_02254C78
+MOD35_02254C78: ; 0x02254C78
+ ldr r3, _02254C80 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254C80: .word MOD20_022537B8
+ thumb_func_end MOD35_02254C78
+
+ thumb_func_start MOD35_02254C84
+MOD35_02254C84: ; 0x02254C84
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD35_02254C84
+
+ thumb_func_start MOD35_02254C98
+MOD35_02254C98: ; 0x02254C98
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254D24 ; =0x022550C4
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x51
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x50
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254D28 ; =0x0400104C
+ mov r0, #0
+ strb r0, [r1]
+ strb r0, [r1, #1]
+ sub r1, #0x4c
+ ldr r3, [r1]
+ ldr r2, [r1]
+ ldr r0, _02254D2C ; =0xFFFFE0FF
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD35_02254C84
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254D24: .word 0x022550C4
+_02254D28: .word 0x0400104C
+_02254D2C: .word 0xFFFFE0FF
+ thumb_func_end MOD35_02254C98
+
+ thumb_func_start MOD35_02254D30
+MOD35_02254D30: ; 0x02254D30
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02254D4C
+ cmp r0, #1
+ beq _02254D5A
+ pop {r3, r4, r5, pc}
+_02254D4C:
+ mov r0, #1
+ add r4, #0x84
+ str r0, [r4]
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02254D5A:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD35_02254C6C
+ cmp r0, #0
+ beq _02254D7C
+ ldr r0, _02254D80 ; =0x0400104C
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #1]
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD35_02254C84
+_02254D7C:
+ pop {r3, r4, r5, pc}
+ nop
+_02254D80: .word 0x0400104C
+ thumb_func_end MOD35_02254D30
+
+ thumb_func_start MOD35_02254D84
+MOD35_02254D84: ; 0x02254D84
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #3
+ bhi _02254E50
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254DAE: ; jump table
+ .short _02254DB6 - _02254DAE - 2 ; case 0
+ .short _02254DDC - _02254DAE - 2 ; case 1
+ .short _02254DF4 - _02254DAE - 2 ; case 2
+ .short _02254E4A - _02254DAE - 2 ; case 3
+_02254DB6:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ mov r0, #0xa
+ str r0, [r4, #0x7c]
+ add r0, r4, #0
+ bl MOD35_02254E58
+ ldr r0, _02254E54 ; =0x00000678
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02254DDC:
+ ldr r0, [r4, #0x78]
+ add r1, r6, #0
+ bl MOD35_02254E88
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD35_02254EC8
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02254DF4:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02254E10
+ mov r0, #0
+ str r0, [r4, #0x7c]
+ add r0, r4, #0
+ bl MOD35_02254E58
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02254E10:
+ 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, #4
+ blo _02254E50
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x80
+ str r1, [r0]
+ ldr r0, [r4, #0x7c]
+ sub r0, r0, #1
+ str r0, [r4, #0x7c]
+ add r0, r4, #0
+ bl MOD35_02254E58
+ ldr r0, [r4, #0x7c]
+ cmp r0, #0
+ bne _02254E50
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02254E4A:
+ add r0, r5, #0
+ bl MOD35_02254C84
+_02254E50:
+ pop {r4, r5, r6, pc}
+ nop
+_02254E54: .word 0x00000678
+ thumb_func_end MOD35_02254D84
+
+ thumb_func_start MOD35_02254E58
+MOD35_02254E58: ; 0x02254E58
+ mov r1, #1
+ add r0, #0x88
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD35_02254E58
+
+ thumb_func_start MOD35_02254E60
+MOD35_02254E60: ; 0x02254E60
+ add r0, r1, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02254E82
+ ldr r2, [r1, #0x7c]
+ ldr r3, _02254E84 ; =0x0400104C
+ lsl r0, r2, #4
+ orr r0, r2
+ strb r0, [r3]
+ ldr r2, [r1, #0x7c]
+ add r1, #0x88
+ lsl r0, r2, #4
+ orr r0, r2
+ strb r0, [r3, #1]
+ mov r0, #0
+ str r0, [r1]
+_02254E82:
+ bx lr
+ .align 2, 0
+_02254E84: .word 0x0400104C
+ thumb_func_end MOD35_02254E60
+
+ thumb_func_start MOD35_02254E88
+MOD35_02254E88: ; 0x02254E88
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #1
+ add r4, r1, #0
+ add r1, r0, #0
+ mov r2, #0
+ bl FUN_0206B6D4
+ ldrb r1, [r4]
+ cmp r1, #0
+ beq _02254EA4
+ ldr r1, [r4, #4]
+ b _02254EA6
+_02254EA4:
+ add r1, r0, #0
+_02254EA6:
+ str r1, [sp]
+ ldrb r1, [r4]
+ cmp r1, #1
+ bls _02254EB2
+ ldr r1, [r4, #8]
+ b _02254EB4
+_02254EB2:
+ add r1, r0, #0
+_02254EB4:
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, sp, #0
+ mov r2, #3
+ mov r3, #1
+ bl MOD20_02253A04
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD35_02254E88
+
+ thumb_func_start MOD35_02254EC8
+MOD35_02254EC8: ; 0x02254EC8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0
+ add r6, r1, #0
+ str r0, [sp]
+ ldrb r0, [r6]
+ cmp r0, #0
+ ble _02254F00
+ add r4, r6, #0
+ add r5, r7, #0
+_02254EDC:
+ ldrh r0, [r4, #0x1c]
+ ldrh r1, [r4, #0x20]
+ mov r2, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [r5, #0x24]
+ add r1, r1, #1
+ bl MOD20_02253F9C
+ ldr r0, [sp]
+ ldrb r1, [r6]
+ add r0, r0, #1
+ add r4, r4, #2
+ add r5, r5, #4
+ str r0, [sp]
+ cmp r0, r1
+ blt _02254EDC
+_02254F00:
+ mov r0, #1
+ mov r1, #0
+ add r2, r0, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [r7, #0x2c]
+ add r1, r1, #1
+ bl MOD20_02253F9C
+ ldrb r0, [r6]
+ cmp r0, #0
+ beq _02254F36
+ ldrh r0, [r6, #0x1c]
+ mov r1, #0x1c
+ bl FUN_02068678
+ cmp r0, #0
+ ldr r0, [r7, #0x24]
+ beq _02254F30
+ mov r1, #6
+ bl MOD20_02253F28
+ b _02254F36
+_02254F30:
+ mov r1, #7
+ bl MOD20_02253F28
+_02254F36:
+ add r0, r7, #0
+ ldr r1, [r6, #0xc]
+ add r0, #0x30
+ bl MOD35_02254FD8
+ add r0, r7, #0
+ ldr r1, [r6, #0x10]
+ add r0, #0x3c
+ bl MOD35_02254FD8
+ ldr r0, [r7, #0x48]
+ ldr r1, [r6, #0x14]
+ bl MOD35_02255094
+ ldr r0, [r7, #0x4c]
+ ldr r1, [r6, #0x18]
+ bl MOD35_02255094
+ ldrb r0, [r6]
+ cmp r0, #0
+ bne _02254F64
+ mov r4, #1
+ b _02254F66
+_02254F64:
+ mov r4, #0
+_02254F66:
+ ldr r0, [r7, #0x24]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r7, #0x30]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r7, #0x34]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r7, #0x38]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r7, #0x48]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldrb r0, [r6]
+ cmp r0, #1
+ bhi _02254F98
+ mov r4, #1
+ b _02254F9A
+_02254F98:
+ mov r4, #0
+_02254F9A:
+ ldr r0, [r7, #0x28]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r7, #0x3c]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r7, #0x40]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r7, #0x44]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r7, #0x4c]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldrb r0, [r6, #1]
+ cmp r0, #0
+ bne _02254FCC
+ mov r1, #1
+ b _02254FCE
+_02254FCC:
+ mov r1, #0
+_02254FCE:
+ ldr r0, [r7, #0x2c]
+ bl MOD20_02253F78
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD35_02254EC8
+
+ thumb_func_start MOD35_02254FD8
+MOD35_02254FD8: ; 0x02254FD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r1, #0
+ str r0, [sp]
+ cmp r7, #0x64
+ bls _02254FE6
+ mov r7, #0x64
+_02254FE6:
+ ldr r2, _02255088 ; =0x04000280
+ mov r3, #0
+ strh r3, [r2]
+ add r0, r2, #0
+ str r7, [r2, #0x10]
+ mov r1, #0x64
+ add r0, #0x18
+ str r1, [r0]
+ str r3, [r0, #4]
+ lsr r0, r2, #0xb
+_02254FFA:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _02254FFA
+ ldr r0, _0225508C ; =0x040002A0
+ ldr r4, _02255088 ; =0x04000280
+ ldr r0, [r0]
+ str r0, [sp, #4]
+ lsr r0, r4, #0xb
+_0225500A:
+ ldrh r1, [r4]
+ tst r1, r0
+ bne _0225500A
+ ldr r3, _02255090 ; =0x040002A8
+ mov r1, #0
+ ldr r2, [r3]
+ add r0, r3, #0
+ strh r1, [r4]
+ sub r0, #0x18
+ str r2, [r0]
+ mov r0, #0xa
+ sub r3, #0x10
+ str r0, [r3]
+ ldr r2, _02255088 ; =0x04000280
+ str r1, [r3, #4]
+ lsr r0, r2, #0xb
+_0225502A:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0225502A
+ ldr r0, _0225508C ; =0x040002A0
+ ldr r2, _02255088 ; =0x04000280
+ ldr r0, [r0]
+ str r0, [sp, #8]
+ lsr r0, r2, #0xb
+_0225503A:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0225503A
+ ldr r0, _02255090 ; =0x040002A8
+ ldr r5, [sp]
+ ldr r0, [r0]
+ mov r6, #0
+ str r0, [sp, #0xc]
+ add r4, sp, #4
+_0225504C:
+ ldr r0, [r5]
+ ldr r1, [r4]
+ bl MOD20_02253F28
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #3
+ blt _0225504C
+ cmp r7, #0x64
+ bhs _02255066
+ mov r1, #1
+ b _02255068
+_02255066:
+ mov r1, #0
+_02255068:
+ ldr r0, [sp]
+ ldr r0, [r0]
+ bl MOD20_02253F78
+ cmp r7, #0xa
+ bhs _02255078
+ mov r1, #1
+ b _0225507A
+_02255078:
+ mov r1, #0
+_0225507A:
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ bl MOD20_02253F78
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255088: .word 0x04000280
+_0225508C: .word 0x040002A0
+_02255090: .word 0x040002A8
+ thumb_func_end MOD35_02254FD8
+
+ thumb_func_start MOD35_02255094
+MOD35_02255094: ; 0x02255094
+ push {r3, lr}
+ cmp r1, #0
+ beq _022550A0
+ cmp r1, #1
+ beq _022550A8
+ b _022550B0
+_022550A0:
+ mov r1, #0xa
+ bl MOD20_02253F28
+ pop {r3, pc}
+_022550A8:
+ mov r1, #0xb
+ bl MOD20_02253F28
+ pop {r3, pc}
+_022550B0:
+ mov r1, #0xc
+ bl MOD20_02253F28
+ pop {r3, pc}
+ thumb_func_end MOD35_02255094
+
+ .section .rodata
+ ; 0x022550B8
+ .incbin "baserom.nds", 0x28f078, 0x108
+
+ .section .sinit
+ .word MOD35_02254840
diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s
new file mode 100644
index 00000000..47ccf2cc
--- /dev/null
+++ b/arm9/modules/36/asm/module_36.s
@@ -0,0 +1,1571 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD36_02254840
+MOD36_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD36_02254854
+ ldr r1, _02254850 ; =MOD36_02254990
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD36_02254854
+_02254850: .word MOD36_02254990
+ thumb_func_end MOD36_02254840
+
+ thumb_func_start MOD36_02254854
+MOD36_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ ldr r1, _02254898 ; =0x00005B90
+ mov r0, #8
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD36_022548A0
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _0225489C ; =MOD36_02254938
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word 0x00005B90
+_0225489C: .word MOD36_02254938
+ thumb_func_end MOD36_02254854
+
+ thumb_func_start MOD36_022548A0
+MOD36_022548A0: ; 0x022548A0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, _02254904 ; =0x00005B78
+ str r3, [r5, #0xc]
+ mov r0, #0
+ strb r0, [r5, r1]
+ mov r6, #1
+ add r3, r1, #1
+ strb r6, [r5, r3]
+ add r3, r1, #2
+ strb r0, [r5, r3]
+ add r0, r1, #4
+ add r0, r5, r0
+ add r1, r5, #4
+ bl MOD36_02254E30
+ cmp r0, #0
+ beq _022548FC
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ strb r0, [r5, #3]
+ add r0, r5, #4
+ bl MOD36_02254E10
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254908 ; =0x022553E8
+ ldr r2, _0225490C ; =MOD36_02254980
+ mov r1, #3
+ add r3, r5, #0
+ bl MOD20_02254130
+ ldr r1, _02254910 ; =0x00005B84
+ mov r2, #0
+ str r0, [r5, r1]
+ add r0, r1, #4
+ str r2, [r5, r0]
+ sub r0, r1, #4
+ str r4, [r5, r0]
+ add sp, #4
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, pc}
+_022548FC:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254904: .word 0x00005B78
+_02254908: .word 0x022553E8
+_0225490C: .word MOD36_02254980
+_02254910: .word 0x00005B84
+ thumb_func_end MOD36_022548A0
+
+ thumb_func_start MOD36_02254914
+MOD36_02254914: ; 0x02254914
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02254930 ; =0x00005B84
+ ldr r0, [r4, r0]
+ bl MOD20_02254198
+ ldr r0, _02254934 ; =0x00005B7C
+ ldr r0, [r4, r0]
+ bl MOD36_02254E78
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+_02254930: .word 0x00005B84
+_02254934: .word 0x00005B7C
+ thumb_func_end MOD36_02254914
+
+ thumb_func_start MOD36_02254938
+MOD36_02254938: ; 0x02254938
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254974
+ ldr r1, _02254978 ; =0x00005B80
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _0225497C ; =0x022553F4
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254974
+ add r0, r4, #0
+ bl MOD36_02254914
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, _02254978 ; =0x00005B80
+ ldr r0, [r4, r0]
+ bl MOD20_022529A0
+_02254974:
+ pop {r3, r4, r5, pc}
+ nop
+_02254978: .word 0x00005B80
+_0225497C: .word 0x022553F4
+ thumb_func_end MOD36_02254938
+
+ thumb_func_start MOD36_02254980
+MOD36_02254980: ; 0x02254980
+ ldr r2, _0225498C ; =0x00005B88
+ str r1, [r3, r2]
+ add r1, r2, #4
+ str r0, [r3, r1]
+ bx lr
+ nop
+_0225498C: .word 0x00005B88
+ thumb_func_end MOD36_02254980
+
+ thumb_func_start MOD36_02254990
+MOD36_02254990: ; 0x02254990
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD36_02254990
+
+ thumb_func_start MOD36_02254998
+MOD36_02254998: ; 0x02254998
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _022549A0
+ b _022549A2
+_022549A0:
+ mov r1, #2
+_022549A2:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD36_02254998
+
+ thumb_func_start MOD36_022549AC
+MOD36_022549AC: ; 0x022549AC
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549BC
+ cmp r0, #1
+ beq _022549CE
+ b _022549EC
+_022549BC:
+ ldr r0, _022549F0 ; =0x00005B7C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl MOD36_02254F0C
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549EC
+_022549CE:
+ ldr r0, _022549F0 ; =0x00005B7C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl MOD36_02254F30
+ cmp r0, #0
+ beq _022549EC
+ ldr r0, _022549F4 ; =0x00005B80
+ ldr r0, [r4, r0]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD36_02254998
+_022549EC:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_022549F0: .word 0x00005B7C
+_022549F4: .word 0x00005B80
+ thumb_func_end MOD36_022549AC
+
+ thumb_func_start MOD36_022549F8
+MOD36_022549F8: ; 0x022549F8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254A0A
+ mov r1, #2
+ bl MOD36_02254998
+_02254A0A:
+ ldrb r0, [r4, #1]
+ cmp r0, #3
+ bhi _02254A30
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254A1C: ; jump table
+ .short _02254A24 - _02254A1C - 2 ; case 0
+ .short _02254AF4 - _02254A1C - 2 ; case 1
+ .short _02254B4E - _02254A1C - 2 ; case 2
+ .short _02254B7C - _02254A1C - 2 ; case 3
+_02254A24:
+ ldr r0, _02254BCC ; =0x00005B80
+ ldr r0, [r4, r0]
+ bl MOD20_02252C08
+ cmp r0, #0
+ beq _02254A32
+_02254A30:
+ b _02254BC4
+_02254A32:
+ ldr r1, _02254BD0 ; =0x00005B88
+ ldr r0, [r4, r1]
+ cmp r0, #1
+ bne _02254AAE
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02254A4C
+ cmp r0, #1
+ beq _02254A82
+ cmp r0, #2
+ beq _02254A8A
+ b _02254AA6
+_02254A4C:
+ add r0, r1, #0
+ mov r3, #1
+ sub r0, #0x10
+ strb r3, [r4, r0]
+ add r0, r1, #0
+ mov r2, #0
+ sub r0, #0xf
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0xe
+ sub r1, #0xc
+ strb r3, [r4, r0]
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD36_02254F0C
+ ldr r0, _02254BD4 ; =0x00005B7C
+ mov r1, #7
+ ldr r0, [r4, r0]
+ bl MOD36_02254F0C
+ ldr r0, _02254BD8 ; =0x00000663
+ bl MOD20_02252B28
+ mov r0, #1
+ strb r0, [r4, #1]
+ b _02254AA6
+_02254A82:
+ ldr r0, _02254BDC ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254AA6
+_02254A8A:
+ add r0, r1, #0
+ mov r2, #1
+ sub r0, #0xe
+ sub r1, #0xc
+ strb r2, [r4, r0]
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD36_02254F0C
+ ldr r0, _02254BD8 ; =0x00000663
+ bl MOD20_02252B28
+ mov r0, #3
+ strb r0, [r4, #1]
+_02254AA6:
+ ldr r0, _02254BD0 ; =0x00005B88
+ mov r1, #0
+ str r1, [r4, r0]
+ b _02254BC4
+_02254AAE:
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ beq _02254ADA
+ add r0, r4, #0
+ ldr r6, [r4, #4]
+ ldr r5, [r4, #8]
+ bl MOD36_02254C44
+ cmp r0, #0
+ beq _02254AD4
+ ldr r0, [r4, #8]
+ add r1, r6, #0
+ str r0, [sp]
+ ldr r3, [r4, #4]
+ add r0, r4, #0
+ add r2, r5, #0
+ bl MOD36_02254C90
+ b _02254BC4
+_02254AD4:
+ mov r0, #0
+ strb r0, [r4, #3]
+ b _02254BC4
+_02254ADA:
+ add r0, r4, #0
+ bl MOD36_02254BE4
+ cmp r0, #0
+ beq _02254BC4
+ ldr r0, _02254BD4 ; =0x00005B7C
+ mov r1, #3
+ ldr r0, [r4, r0]
+ bl MOD36_02254F0C
+ mov r0, #1
+ strb r0, [r4, #3]
+ b _02254BC4
+_02254AF4:
+ ldr r1, _02254BD0 ; =0x00005B88
+ ldr r0, [r4, r1]
+ cmp r0, #1
+ bne _02254BC4
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02254B0C
+ cmp r0, #1
+ beq _02254B14
+ cmp r0, #2
+ bne _02254B46
+_02254B0C:
+ ldr r0, _02254BDC ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254B46
+_02254B14:
+ add r0, r1, #0
+ mov r2, #1
+ sub r0, #0x10
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0xf
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0xe
+ sub r1, #0xc
+ strb r2, [r4, r0]
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD36_02254F0C
+ ldr r0, _02254BD4 ; =0x00005B7C
+ mov r1, #8
+ ldr r0, [r4, r0]
+ bl MOD36_02254F0C
+ ldr r0, _02254BD8 ; =0x00000663
+ bl MOD20_02252B28
+ mov r0, #2
+ strb r0, [r4, #1]
+_02254B46:
+ ldr r0, _02254BD0 ; =0x00005B88
+ mov r1, #0
+ str r1, [r4, r0]
+ b _02254BC4
+_02254B4E:
+ ldr r0, _02254BD4 ; =0x00005B7C
+ mov r1, #8
+ ldr r0, [r4, r0]
+ bl MOD36_02254F30
+ cmp r0, #0
+ beq _02254BC4
+ ldr r0, _02254BE0 ; =0x00005B78
+ mov r3, #0
+ strb r3, [r4, r0]
+ mov r2, #1
+ add r1, r0, #1
+ strb r2, [r4, r1]
+ add r1, r0, #2
+ strb r3, [r4, r1]
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl MOD36_02254F0C
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254BC4
+_02254B7C:
+ ldr r1, _02254BD0 ; =0x00005B88
+ ldr r0, [r4, r1]
+ cmp r0, #2
+ bne _02254B9C
+ add r0, r1, #0
+ mov r2, #0
+ sub r0, #0xe
+ sub r1, #0xc
+ strb r2, [r4, r0]
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl MOD36_02254F0C
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254BC4
+_02254B9C:
+ cmp r0, #3
+ bne _02254BC4
+ mov r0, #0
+ sub r1, #0xe
+ strb r0, [r4, r1]
+ add r0, r4, #4
+ bl MOD36_02254E10
+ ldr r0, _02254BD4 ; =0x00005B7C
+ mov r1, #5
+ ldr r0, [r4, r0]
+ bl MOD36_02254F0C
+ ldr r0, _02254BD4 ; =0x00005B7C
+ mov r1, #6
+ ldr r0, [r4, r0]
+ bl MOD36_02254F0C
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254BC4:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254BCC: .word 0x00005B80
+_02254BD0: .word 0x00005B88
+_02254BD4: .word 0x00005B7C
+_02254BD8: .word 0x00000663
+_02254BDC: .word 0x0000066E
+_02254BE0: .word 0x00005B78
+ thumb_func_end MOD36_022549F8
+
+ thumb_func_start MOD36_02254BE4
+MOD36_02254BE4: ; 0x02254BE4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r0, sp, #4
+ add r1, sp, #0
+ bl MOD20_02252B68
+ cmp r0, #0
+ beq _02254C3E
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ sub r1, #0x10
+ sub r2, #0x10
+ cmp r1, #0x9b
+ bhs _02254C06
+ mov r0, #1
+ b _02254C08
+_02254C06:
+ mov r0, #0
+_02254C08:
+ cmp r2, #0x95
+ bhs _02254C10
+ mov r3, #1
+ b _02254C12
+_02254C10:
+ mov r3, #0
+_02254C12:
+ tst r0, r3
+ beq _02254C3E
+ lsr r3, r1, #1
+ lsr r1, r2, #1
+ add r2, r4, #0
+ mov r0, #0x96
+ add r2, #0x10
+ mul r0, r3
+ str r3, [sp, #4]
+ str r1, [sp]
+ add r2, r2, r0
+ ldrb r0, [r2, r1]
+ cmp r0, #0
+ bne _02254C3E
+ mov r0, #1
+ strb r0, [r2, r1]
+ ldr r1, [sp, #4]
+ str r1, [r4, #4]
+ ldr r1, [sp]
+ add sp, #8
+ str r1, [r4, #8]
+ pop {r4, pc}
+_02254C3E:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ thumb_func_end MOD36_02254BE4
+
+ thumb_func_start MOD36_02254C44
+MOD36_02254C44: ; 0x02254C44
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r0, sp, #4
+ add r1, sp, #0
+ bl MOD20_02252B68
+ cmp r0, #0
+ beq _02254C8A
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ sub r1, #0x10
+ sub r2, #0x10
+ cmp r1, #0x9b
+ bhs _02254C66
+ mov r0, #1
+ b _02254C68
+_02254C66:
+ mov r0, #0
+_02254C68:
+ cmp r2, #0x95
+ bhs _02254C70
+ mov r3, #1
+ b _02254C72
+_02254C70:
+ mov r3, #0
+_02254C72:
+ tst r0, r3
+ beq _02254C8A
+ lsr r1, r1, #1
+ lsr r0, r2, #1
+ str r1, [sp, #4]
+ str r0, [sp]
+ str r1, [r4, #4]
+ ldr r0, [sp]
+ add sp, #8
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+_02254C8A:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ thumb_func_end MOD36_02254C44
+
+ thumb_func_start MOD36_02254C90
+MOD36_02254C90: ; 0x02254C90
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [sp, #0x28]
+ add r4, r2, #0
+ add r5, r1, #0
+ str r3, [sp]
+ str r0, [sp, #0x28]
+ cmp r4, r0
+ bne _02254CAC
+ add r0, r3, #0
+ cmp r5, r0
+ bne _02254CAC
+ b _02254DCC
+_02254CAC:
+ ldr r0, [sp]
+ cmp r0, r5
+ bls _02254CB6
+ sub r1, r0, r5
+ b _02254CB8
+_02254CB6:
+ sub r1, r5, r0
+_02254CB8:
+ ldr r0, [sp, #0x28]
+ cmp r0, r4
+ bls _02254CC2
+ sub r2, r0, r4
+ b _02254CC4
+_02254CC2:
+ sub r2, r4, r0
+_02254CC4:
+ cmp r1, r2
+ bls _02254D46
+ ldr r0, [sp]
+ cmp r0, r5
+ bls _02254CD4
+ mov r0, #1
+ str r0, [sp, #4]
+ b _02254CDA
+_02254CD4:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #4]
+_02254CDA:
+ cmp r1, #0
+ beq _02254CEC
+ ldr r0, [sp, #0x28]
+ sub r0, r0, r4
+ lsl r0, r0, #0xc
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+ b _02254CF0
+_02254CEC:
+ mov r0, #0
+ str r0, [sp, #0x10]
+_02254CF0:
+ ldr r0, [sp, #0x10]
+ lsl r1, r4, #0xc
+ add r7, r1, r0
+ ldr r0, [sp, #4]
+ add r5, r5, r0
+ ldr r0, [sp]
+ cmp r5, r0
+ beq _02254DB0
+ mov r1, #0x96
+ add r0, r5, #0
+ mul r0, r1
+ add r4, r6, r0
+ ldr r0, [sp, #4]
+ mul r1, r0
+ str r1, [sp, #0xc]
+_02254D0E:
+ asr r1, r7, #0xc
+ cmp r5, #0x9c
+ bhs _02254D32
+ cmp r1, #0x96
+ bhs _02254D32
+ add r0, r4, r1
+ ldrb r2, [r0, #0x10]
+ cmp r2, #0
+ bne _02254D32
+ mov r2, #0
+ strb r2, [r0, #0x10]
+ str r5, [r6, #4]
+ str r1, [r6, #8]
+ ldr r0, _02254DD0 ; =0x00005B7C
+ mov r1, #3
+ ldr r0, [r6, r0]
+ bl MOD36_02254F0C
+_02254D32:
+ ldr r0, [sp, #0xc]
+ add r4, r4, r0
+ ldr r0, [sp, #4]
+ add r5, r5, r0
+ ldr r0, [sp, #0x10]
+ add r7, r7, r0
+ ldr r0, [sp]
+ cmp r5, r0
+ bne _02254D0E
+ b _02254DB0
+_02254D46:
+ ldr r0, [sp, #0x28]
+ cmp r0, r4
+ bls _02254D50
+ mov r7, #1
+ b _02254D54
+_02254D50:
+ mov r7, #0
+ mvn r7, r7
+_02254D54:
+ cmp r2, #0
+ beq _02254D68
+ ldr r0, [sp]
+ add r1, r2, #0
+ sub r0, r0, r5
+ lsl r0, r0, #0xc
+ bl _s32_div_f
+ str r0, [sp, #8]
+ b _02254D6C
+_02254D68:
+ mov r0, #0
+ str r0, [sp, #8]
+_02254D6C:
+ ldr r0, [sp, #8]
+ lsl r1, r5, #0xc
+ add r5, r1, r0
+ ldr r0, [sp, #0x28]
+ add r4, r4, r7
+ cmp r4, r0
+ beq _02254DB0
+_02254D7A:
+ asr r1, r5, #0xc
+ cmp r4, #0x96
+ bhs _02254DA4
+ cmp r1, #0x9c
+ bhs _02254DA4
+ mov r0, #0x96
+ mul r0, r1
+ add r0, r6, r0
+ add r0, r0, r4
+ ldrb r2, [r0, #0x10]
+ cmp r2, #0
+ bne _02254DA4
+ mov r2, #1
+ strb r2, [r0, #0x10]
+ str r1, [r6, #4]
+ ldr r0, _02254DD0 ; =0x00005B7C
+ str r4, [r6, #8]
+ ldr r0, [r6, r0]
+ mov r1, #3
+ bl MOD36_02254F0C
+_02254DA4:
+ ldr r0, [sp, #8]
+ add r4, r4, r7
+ add r5, r5, r0
+ ldr r0, [sp, #0x28]
+ cmp r4, r0
+ bne _02254D7A
+_02254DB0:
+ ldr r0, [sp, #0x28]
+ cmp r0, #0x96
+ bhs _02254DCC
+ ldr r0, [sp]
+ cmp r0, #0x9c
+ bhs _02254DCC
+ str r0, [r6, #4]
+ ldr r0, [sp, #0x28]
+ mov r1, #3
+ str r0, [r6, #8]
+ ldr r0, _02254DD0 ; =0x00005B7C
+ ldr r0, [r6, r0]
+ bl MOD36_02254F0C
+_02254DCC:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254DD0: .word 0x00005B7C
+ thumb_func_end MOD36_02254C90
+
+ thumb_func_start MOD36_02254DD4
+MOD36_02254DD4: ; 0x02254DD4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254DE4
+ cmp r0, #1
+ beq _02254DF6
+ b _02254E06
+_02254DE4:
+ ldr r0, _02254E0C ; =0x00005B7C
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl MOD36_02254F0C
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254E06
+_02254DF6:
+ ldr r0, _02254E0C ; =0x00005B7C
+ ldr r0, [r4, r0]
+ bl MOD36_02254F3C
+ cmp r0, #0
+ beq _02254E06
+ mov r0, #1
+ pop {r4, pc}
+_02254E06:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254E0C: .word 0x00005B7C
+ thumb_func_end MOD36_02254DD4
+
+ thumb_func_start MOD36_02254E10
+MOD36_02254E10: ; 0x02254E10
+ push {r4, r5}
+ mov r4, #0
+ add r2, r4, #0
+ add r3, r4, #0
+_02254E18:
+ add r5, r3, #0
+_02254E1A:
+ add r1, r0, r5
+ add r5, r5, #1
+ strb r2, [r1, #0xc]
+ cmp r5, #0x96
+ blt _02254E1A
+ add r4, r4, #1
+ add r0, #0x96
+ cmp r4, #0x9c
+ blt _02254E18
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD36_02254E10
+
+ thumb_func_start MOD36_02254E30
+MOD36_02254E30: ; 0x02254E30
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x70
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254E74
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x68
+ strh r1, [r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD36_02254E8C
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02254E74
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254E74:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD36_02254E30
+
+ thumb_func_start MOD36_02254E78
+MOD36_02254E78: ; 0x02254E78
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254E88
+ bl MOD36_02254EE4
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254E88:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD36_02254E78
+
+ thumb_func_start MOD36_02254E8C
+MOD36_02254E8C: ; 0x02254E8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r7, r0, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x59
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x34
+ mov r1, #0xc
+ mov r2, #0x57
+ mov r3, #0x58
+ bl MOD20_02253FBC
+ add r0, r7, #0
+ str r0, [sp, #0xc]
+ add r0, #0x34
+ ldr r4, _02254EE0 ; =0x02255440
+ mov r6, #0
+ add r5, r7, #0
+ str r0, [sp, #0xc]
+_02254EC6:
+ ldr r0, [r7, #0x20]
+ ldr r2, [sp, #0xc]
+ add r1, r4, #0
+ bl MOD20_02253E74
+ str r0, [r5, #0x24]
+ add r6, r6, #1
+ add r4, #0x10
+ add r5, r5, #4
+ cmp r6, #4
+ blt _02254EC6
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254EE0: .word 0x02255440
+ thumb_func_end MOD36_02254E8C
+
+ thumb_func_start MOD36_02254EE4
+MOD36_02254EE4: ; 0x02254EE4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02254EEC:
+ ldr r1, [r5, #0x24]
+ cmp r1, #0
+ beq _02254EF8
+ ldr r0, [r6, #0x20]
+ bl MOD20_02253F14
+_02254EF8:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02254EEC
+ add r6, #0x34
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD36_02254EE4
+
+ thumb_func_start MOD36_02254F0C
+MOD36_02254F0C: ; 0x02254F0C
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254F2C ; =0x02255480
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254F2C: .word 0x02255480
+ thumb_func_end MOD36_02254F0C
+
+ thumb_func_start MOD36_02254F30
+MOD36_02254F30: ; 0x02254F30
+ ldr r3, _02254F38 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254F38: .word MOD20_02253794
+ thumb_func_end MOD36_02254F30
+
+ thumb_func_start MOD36_02254F3C
+MOD36_02254F3C: ; 0x02254F3C
+ ldr r3, _02254F44 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254F44: .word MOD20_022537B8
+ thumb_func_end MOD36_02254F3C
+
+ thumb_func_start MOD36_02254F48
+MOD36_02254F48: ; 0x02254F48
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD36_02254F48
+
+ thumb_func_start MOD36_02254F5C
+MOD36_02254F5C: ; 0x02254F5C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ mov r0, #8
+ add r5, r1, #0
+ bl FUN_02016B90
+ cmp r0, #0
+ bne _02254F70
+ bl ErrorHandling
+_02254F70:
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _0225502C ; =0x02255408
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #4]
+ ldr r2, _02255030 ; =0x02255424
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #8
+ bl FUN_02016B90
+ cmp r0, #0
+ bne _02254F9E
+ bl ErrorHandling
+_02254F9E:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0xc
+ mov r1, #0x56
+ mov r3, #6
+ bl FUN_0200687C
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0xc
+ mov r1, #0x55
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ mov r0, #8
+ bl FUN_02016B90
+ cmp r0, #0
+ bne _02254FEA
+ bl ErrorHandling
+_02254FEA:
+ add r0, r4, #0
+ lsr r1, r6, #5
+ bl MOD36_0225503C
+ ldr r0, [r4, #4]
+ mov r1, #7
+ bl FUN_02017CD0
+ ldr r1, _02255034 ; =0x04001000
+ ldr r0, _02255038 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #0x14
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r5, #0
+ bl MOD36_02254F48
+ mov r0, #8
+ bl FUN_02016B90
+ cmp r0, #0
+ bne _02255028
+ bl ErrorHandling
+_02255028:
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0225502C: .word 0x02255408
+_02255030: .word 0x02255424
+_02255034: .word 0x04001000
+_02255038: .word 0xFFFFE0FF
+ thumb_func_end MOD36_02254F5C
+
+ thumb_func_start MOD36_0225503C
+MOD36_0225503C: ; 0x0225503C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r3, _02255098 ; =0x02255400
+ add r4, r0, #0
+ ldrh r5, [r3]
+ add r0, sp, #0
+ add r2, sp, #0
+ strh r5, [r0]
+ ldrh r5, [r3, #2]
+ strh r5, [r0, #2]
+ ldrh r5, [r3, #4]
+ ldrh r3, [r3, #6]
+ strh r5, [r0, #4]
+ strh r3, [r0, #6]
+ str r1, [r4, #0x58]
+ strh r1, [r0, #6]
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ bl FUN_02019150
+ ldr r0, [r4]
+ mov r2, #0xbe
+ ldr r0, [r0, #8]
+ ldr r1, [r4, #0x54]
+ lsl r2, r2, #6
+ bl FUN_0208946C
+ cmp r0, #0
+ bne _02255082
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #4
+ bl FUN_02019620
+_02255082:
+ add r0, r4, #0
+ add r0, #0x48
+ bl FUN_02019270
+ add r4, #0x48
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02255098: .word 0x02255400
+ thumb_func_end MOD36_0225503C
+
+ thumb_func_start MOD36_0225509C
+MOD36_0225509C: ; 0x0225509C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _022550B8
+ cmp r0, #1
+ beq _022550C4
+ pop {r3, r4, r5, pc}
+_022550B8:
+ mov r0, #1
+ str r0, [r4, #0x5c]
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_022550C4:
+ ldr r0, [r4]
+ mov r2, #0xbe
+ ldr r0, [r0, #8]
+ ldr r1, [r4, #0x54]
+ lsl r2, r2, #6
+ bl FUN_02089444
+ add r0, r4, #0
+ add r0, #0x48
+ bl FUN_02019178
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #7
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD36_02254F48
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD36_0225509C
+
+ thumb_func_start MOD36_022550F4
+MOD36_022550F4: ; 0x022550F4
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r0, #0x48
+ bl FUN_02019548
+ add r0, r4, #0
+ bl MOD36_02254F48
+ pop {r4, pc}
+ thumb_func_end MOD36_022550F4
+
+ thumb_func_start MOD36_0225510C
+MOD36_0225510C: ; 0x0225510C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r1, [r4]
+ ldr r0, [r1]
+ lsl r2, r0, #1
+ ldr r0, [r1, #4]
+ mov r1, #0x14
+ lsl r3, r0, #1
+ asr r5, r3, #3
+ asr r0, r2, #3
+ mul r1, r5
+ add r5, r0, r1
+ mov r0, #2
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, #0x48
+ mov r1, #1
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ ldr r1, [r4, #0x54]
+ lsl r0, r5, #5
+ add r0, r1, r0
+ ldr r1, [r4, #0x58]
+ mov r2, #0x20
+ add r1, r1, r5
+ lsl r1, r1, #5
+ bl GXS_LoadBG3Char
+ add r0, r6, #0
+ bl MOD36_02254F48
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD36_0225510C
+
+ thumb_func_start MOD36_02255164
+MOD36_02255164: ; 0x02255164
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r0, #0x48
+ bl FUN_02019548
+ add r0, r4, #0
+ bl MOD36_02254F48
+ pop {r4, pc}
+ thumb_func_end MOD36_02255164
+
+ thumb_func_start MOD36_0225517C
+MOD36_0225517C: ; 0x0225517C
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r5, r0, #0
+ ldr r0, _022551D4 ; =0x00005B74
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _0225519C
+ mov r1, #2
+ b _0225519E
+_0225519C:
+ mov r1, #1
+_0225519E:
+ ldr r0, [r4, #0x28]
+ bl MOD20_02253F28
+ ldr r0, _022551D8 ; =0x00005B75
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _022551B0
+ mov r1, #4
+ b _022551B2
+_022551B0:
+ mov r1, #3
+_022551B2:
+ ldr r0, [r4, #0x2c]
+ bl MOD20_02253F28
+ ldr r0, _022551DC ; =0x00005B76
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _022551C4
+ mov r1, #6
+ b _022551C6
+_022551C4:
+ mov r1, #5
+_022551C6:
+ ldr r0, [r4, #0x30]
+ bl MOD20_02253F28
+ add r0, r6, #0
+ bl MOD36_02254F48
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022551D4: .word 0x00005B74
+_022551D8: .word 0x00005B75
+_022551DC: .word 0x00005B76
+ thumb_func_end MOD36_0225517C
+
+ thumb_func_start MOD36_022551E0
+MOD36_022551E0: ; 0x022551E0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #4
+ bl FUN_02019620
+ add r4, #0x48
+ add r0, r4, #0
+ bl FUN_02019548
+ add r0, r5, #0
+ bl MOD36_02254F48
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD36_022551E0
+
+ thumb_func_start MOD36_0225520C
+MOD36_0225520C: ; 0x0225520C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02255236
+ ldr r1, [r4, #0x5c]
+ cmp r1, #0
+ beq _02255236
+ add r0, r5, #0
+ bl MOD36_02254F48
+ pop {r3, r4, r5, pc}
+_02255236:
+ cmp r0, #4
+ bls _0225523C
+ b _0225539A
+_0225523C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02255248: ; jump table
+ .short _02255252 - _02255248 - 2 ; case 0
+ .short _02255286 - _02255248 - 2 ; case 1
+ .short _022552D8 - _02255248 - 2 ; case 2
+ .short _02255322 - _02255248 - 2 ; case 3
+ .short _02255356 - _02255248 - 2 ; case 4
+_02255252:
+ add r0, r4, #0
+ add r0, #0x68
+ ldrh r0, [r0]
+ mov r1, #0x15
+ lsl r1, r1, #4
+ add r2, r0, r1
+ add r0, r4, #0
+ add r0, #0x68
+ strh r2, [r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ strh r1, [r0]
+ add r1, r4, #0
+ add r1, #0x68
+ ldrh r1, [r1]
+ ldr r0, [r4, #0x24]
+ bl MOD20_02253FB4
+ mov r0, #0
+ str r0, [r4, #0x64]
+ str r0, [r4, #0x60]
+ str r0, [r4, #0x5c]
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02255286:
+ add r0, r4, #0
+ add r0, #0x68
+ ldrh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrh r0, [r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x68
+ strh r1, [r0]
+ add r1, r4, #0
+ add r1, #0x68
+ ldrh r1, [r1]
+ ldr r0, [r4, #0x24]
+ bl MOD20_02253FB4
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrh r1, [r0]
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x6a
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ mov r1, #3
+ ldrh r0, [r0]
+ lsl r1, r1, #0xc
+ cmp r0, r1
+ blo _0225539A
+ add r0, r4, #0
+ add r0, #0x6a
+ strh r1, [r0]
+ mov r0, #1
+ str r0, [r4, #0x64]
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_022552D8:
+ add r0, r4, #0
+ add r0, #0x68
+ ldrh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrh r0, [r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x68
+ strh r1, [r0]
+ add r1, r4, #0
+ add r1, #0x68
+ ldrh r1, [r1]
+ ldr r0, [r4, #0x24]
+ bl MOD20_02253FB4
+ ldr r0, [r4, #0x60]
+ cmp r0, #0
+ beq _0225539A
+ bl FUN_0201BA60
+ mov r1, #7
+ and r0, r1
+ str r0, [r4, #0x6c]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrh r1, [r0]
+ mov r0, #0x1a
+ lsl r0, r0, #8
+ cmp r1, r0
+ bls _0225531A
+ add r4, #0x6a
+ strh r0, [r4]
+_0225531A:
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02255322:
+ add r0, r4, #0
+ add r0, #0x68
+ ldrh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrh r0, [r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x68
+ strh r1, [r0]
+ add r1, r4, #0
+ add r1, #0x68
+ ldrh r1, [r1]
+ ldr r0, [r4, #0x24]
+ bl MOD20_02253FB4
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0
+ bne _0225534E
+ sub r0, r0, #1
+ str r0, [r4, #0x6c]
+ pop {r3, r4, r5, pc}
+_0225534E:
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02255356:
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrh r0, [r0]
+ cmp r0, #0x50
+ bls _0225538E
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ sub r1, #0x50
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x68
+ ldrh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x6a
+ ldrh r0, [r0]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x68
+ strh r1, [r0]
+ ldr r0, [r4, #0x24]
+ add r4, #0x68
+ ldrh r1, [r4]
+ bl MOD20_02253FB4
+ pop {r3, r4, r5, pc}
+_0225538E:
+ mov r0, #0
+ add r4, #0x6a
+ strh r0, [r4]
+ add r0, r5, #0
+ bl MOD36_02254F48
+_0225539A:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD36_0225520C
+
+ thumb_func_start MOD36_0225539C
+MOD36_0225539C: ; 0x0225539C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _022553BE
+ cmp r0, #1
+ beq _022553CA
+ pop {r3, r4, r5, pc}
+_022553BE:
+ mov r0, #1
+ str r0, [r4, #0x60]
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_022553CA:
+ add r0, r4, #0
+ mov r1, #7
+ bl MOD36_02254F30
+ cmp r0, #0
+ beq _022553E2
+ ldr r0, _022553E4 ; =0x0000066A
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD36_02254F48
+_022553E2:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022553E4: .word 0x0000066A
+ thumb_func_end MOD36_0225539C
+
+ .section .rodata
+ ; 0x022553E8
+ .incbin "baserom.nds", 0x28fda8, 0x110
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_36.SINIT_START
+ .global SDK_OVERLAY.MODULE_36.SINIT_END
+SDK_OVERLAY.MODULE_36.SINIT_START:
+ .word MOD36_02254840
+ .word 0
+SDK_OVERLAY.MODULE_36.SINIT_END:
diff --git a/arm9/modules/37/asm/module_37.s b/arm9/modules/37/asm/module_37.s
new file mode 100644
index 00000000..3cbe599b
--- /dev/null
+++ b/arm9/modules/37/asm/module_37.s
@@ -0,0 +1,681 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD37_02254840
+MOD37_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD37_02254854
+ ldr r1, _02254850 ; =MOD37_02254934
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD37_02254854
+_02254850: .word MOD37_02254934
+ thumb_func_end MOD37_02254840
+
+ thumb_func_start MOD37_02254854
+MOD37_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x14
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD37_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD37_02254900
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD37_02254900
+ thumb_func_end MOD37_02254854
+
+ thumb_func_start MOD37_0225489C
+MOD37_0225489C: ; 0x0225489C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, r5, #0
+ add r6, r2, #0
+ add r0, r3, #0
+ add r1, #8
+ mov r2, #4
+ str r3, [r5, #4]
+ bl FUN_02089418
+ cmp r0, #0
+ bne _022548BA
+ mov r0, #1
+ str r0, [r5, #8]
+_022548BA:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xc
+ add r1, #8
+ add r2, r6, #0
+ bl MOD37_02254A54
+ cmp r0, #0
+ beq _022548DA
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r4, [r5, #0x10]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022548DA:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD37_0225489C
+
+ thumb_func_start MOD37_022548E0
+MOD37_022548E0: ; 0x022548E0
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #8
+ mov r2, #4
+ bl FUN_020893F0
+ ldr r0, [r4, #0xc]
+ bl MOD37_02254B0C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_022548E0
+
+ thumb_func_start MOD37_02254900
+MOD37_02254900: ; 0x02254900
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhs _0225492C
+ lsl r2, r1, #2
+ ldr r1, _02254930 ; =0x02254D28
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _0225492C
+ add r0, r4, #0
+ bl MOD37_022548E0
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x10]
+ bl MOD20_022529A0
+_0225492C:
+ pop {r3, r4, r5, pc}
+ nop
+_02254930: .word 0x02254D28
+ thumb_func_end MOD37_02254900
+
+ thumb_func_start MOD37_02254934
+MOD37_02254934: ; 0x02254934
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD37_02254934
+
+ thumb_func_start MOD37_0225493C
+MOD37_0225493C: ; 0x0225493C
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254944
+ b _02254946
+_02254944:
+ mov r1, #2
+_02254946:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD37_0225493C
+
+ thumb_func_start MOD37_02254950
+MOD37_02254950: ; 0x02254950
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254960
+ cmp r0, #1
+ beq _02254970
+ b _0225498A
+_02254960:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD37_02254B20
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _0225498A
+_02254970:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD37_02254B44
+ cmp r0, #0
+ beq _0225498A
+ ldr r0, [r4, #0x10]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD37_0225493C
+_0225498A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254950
+
+ thumb_func_start MOD37_02254990
+MOD37_02254990: ; 0x02254990
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549A0
+ mov r1, #2
+ bl MOD37_0225493C
+_022549A0:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549AC
+ cmp r0, #1
+ beq _022549CE
+ b _022549DE
+_022549AC:
+ bl MOD37_02254A18
+ cmp r0, #0
+ beq _022549DE
+ bl FUN_0201BA60
+ mov r1, #1
+ and r0, r1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl MOD37_02254B20
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549DE
+_022549CE:
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl MOD37_02254B44
+ cmp r0, #0
+ beq _022549DE
+ mov r0, #0
+ strb r0, [r4, #1]
+_022549DE:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254990
+
+ thumb_func_start MOD37_022549E4
+MOD37_022549E4: ; 0x022549E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549F4
+ cmp r0, #1
+ beq _02254A04
+ b _02254A12
+_022549F4:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD37_02254B20
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A12
+_02254A04:
+ ldr r0, [r4, #0xc]
+ bl MOD37_02254B50
+ cmp r0, #0
+ beq _02254A12
+ mov r0, #1
+ pop {r4, pc}
+_02254A12:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_022549E4
+
+ thumb_func_start MOD37_02254A18
+MOD37_02254A18: ; 0x02254A18
+ push {r3, lr}
+ sub sp, #8
+ add r0, sp, #4
+ add r1, sp, #0
+ bl MOD20_02252BB8
+ cmp r0, #0
+ beq _02254A4E
+ ldr r1, [sp, #4]
+ mov r0, #0x70
+ sub r0, r0, r1
+ add r3, r0, #0
+ mul r3, r0
+ ldr r1, [sp]
+ mov r0, #0x90
+ sub r2, r0, r1
+ add r1, r2, #0
+ mul r1, r2
+ str r1, [sp]
+ add r1, r3, r1
+ lsl r0, r0, #2
+ str r3, [sp, #4]
+ cmp r1, r0
+ bhs _02254A4E
+ add sp, #8
+ mov r0, #1
+ pop {r3, pc}
+_02254A4E:
+ mov r0, #0
+ add sp, #8
+ pop {r3, pc}
+ thumb_func_end MOD37_02254A18
+
+ thumb_func_start MOD37_02254A54
+MOD37_02254A54: ; 0x02254A54
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x48
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254A94
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ bl MOD37_02254AA0
+ ldr r1, _02254A98 ; =0xFFFF5800
+ ldr r0, _02254A9C ; =0x02254DA0
+ str r1, [r0]
+ mov r1, #0xb
+ lsl r1, r1, #8
+ str r1, [r0, #4]
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254A94:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254A98: .word 0xFFFF5800
+_02254A9C: .word 0x02254DA0
+ thumb_func_end MOD37_02254A54
+
+ thumb_func_start MOD37_02254AA0
+MOD37_02254AA0: ; 0x02254AA0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r4, r0, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x39
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #0xc
+ mov r2, #0x37
+ mov r3, #0x38
+ bl MOD20_02253FBC
+ add r2, r4, #0
+ ldr r0, [r4, #0x20]
+ ldr r1, _02254AF0 ; =0x02254D34
+ add r2, #0x28
+ bl MOD20_02253E74
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02254AEA
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl MOD20_02253F28
+_02254AEA:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02254AF0: .word 0x02254D34
+ thumb_func_end MOD37_02254AA0
+
+ thumb_func_start MOD37_02254AF4
+MOD37_02254AF4: ; 0x02254AF4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x24]
+ bl MOD20_02253F14
+ add r4, #0x28
+ add r0, r4, #0
+ bl MOD20_02254014
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254AF4
+
+ thumb_func_start MOD37_02254B0C
+MOD37_02254B0C: ; 0x02254B0C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254B1C
+ bl MOD37_02254AF4
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254B1C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254B0C
+
+ thumb_func_start MOD37_02254B20
+MOD37_02254B20: ; 0x02254B20
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254B40 ; =0x02254D60
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254B40: .word 0x02254D60
+ thumb_func_end MOD37_02254B20
+
+ thumb_func_start MOD37_02254B44
+MOD37_02254B44: ; 0x02254B44
+ ldr r3, _02254B4C ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254B4C: .word MOD20_02253794
+ thumb_func_end MOD37_02254B44
+
+ thumb_func_start MOD37_02254B50
+MOD37_02254B50: ; 0x02254B50
+ ldr r3, _02254B58 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254B58: .word MOD20_022537B8
+ thumb_func_end MOD37_02254B50
+
+ thumb_func_start MOD37_02254B5C
+MOD37_02254B5C: ; 0x02254B5C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254B5C
+
+ thumb_func_start MOD37_02254B70
+MOD37_02254B70: ; 0x02254B70
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254BF4 ; =0x02254D44
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x36
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x35
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254BF8 ; =0x04001000
+ ldr r0, _02254BFC ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD37_02254B5C
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254BF4: .word 0x02254D44
+_02254BF8: .word 0x04001000
+_02254BFC: .word 0xFFFFE0FF
+ thumb_func_end MOD37_02254B70
+
+ thumb_func_start MOD37_02254C00
+MOD37_02254C00: ; 0x02254C00
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02254C1C
+ cmp r0, #1
+ beq _02254C26
+ pop {r3, r4, r5, pc}
+_02254C1C:
+ mov r0, #1
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_02254C26:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD37_02254B44
+ cmp r0, #0
+ beq _02254C40
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD37_02254B5C
+_02254C40:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254C00
+
+ thumb_func_start MOD37_02254C44
+MOD37_02254C44: ; 0x02254C44
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02254C6C
+ cmp r0, #1
+ beq _02254C90
+ cmp r0, #2
+ beq _02254D10
+ pop {r4, r5, r6, pc}
+_02254C6C:
+ ldr r0, _02254D18 ; =0x00000675
+ bl MOD20_02252B28
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl MOD20_02253F28
+ mov r0, #9
+ lsl r0, r0, #0x10
+ str r0, [r4, #0x3c]
+ ldr r0, _02254D1C ; =0x02254DA0
+ ldr r0, [r0]
+ str r0, [r4, #0x40]
+ mov r0, #0
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_02254C90:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ beq _02254C9E
+ add r0, r5, #0
+ bl MOD37_02254B5C
+ pop {r4, r5, r6, pc}
+_02254C9E:
+ ldr r1, [r4, #0x3c]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [r4, #0x3c]
+ ldr r0, _02254D1C ; =0x02254DA0
+ ldr r1, [r4, #0x40]
+ ldr r0, [r0, #4]
+ add r1, r1, r0
+ str r1, [r4, #0x40]
+ cmp r1, #0
+ ble _02254D02
+ mov r0, #9
+ ldr r2, [r4, #0x3c]
+ lsl r0, r0, #0x10
+ cmp r2, r0
+ blt _02254D02
+ mov r0, #0x38
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ neg r1, r0
+ ldr r0, _02254D20 ; =0xFFFFE000
+ str r1, [r4, #0x40]
+ cmp r1, r0
+ ldr r0, _02254D24 ; =0x00000676
+ bge _02254CE0
+ bl MOD20_02252B28
+ mov r0, #9
+ lsl r0, r0, #0x10
+ str r0, [r4, #0x3c]
+ b _02254D02
+_02254CE0:
+ bl MOD20_02252B28
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _02254CEE
+ mov r1, #1
+ b _02254CF0
+_02254CEE:
+ mov r1, #2
+_02254CF0:
+ ldr r0, [r4, #0x24]
+ bl MOD20_02253F28
+ mov r0, #9
+ lsl r0, r0, #0x10
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_02254D02:
+ mov r1, #7
+ ldr r0, [r4, #0x24]
+ ldr r2, [r4, #0x3c]
+ lsl r1, r1, #0x10
+ bl MOD20_02253F64
+ pop {r4, r5, r6, pc}
+_02254D10:
+ add r0, r5, #0
+ bl MOD37_02254B5C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254D18: .word 0x00000675
+_02254D1C: .word 0x02254DA0
+_02254D20: .word 0xFFFFE000
+_02254D24: .word 0x00000676
+ thumb_func_end MOD37_02254C44
+
+ .section .rodata
+ ; 0x02254D28
+ .incbin "baserom.nds", 0x2904E8, 0x68
+
+ .section .sinit
+ .word MOD37_02254840
+
+ .section .bss
+ ; 0x02254DA0
+ .space 8
diff --git a/arm9/modules/38/asm/module_38.s b/arm9/modules/38/asm/module_38.s
new file mode 100644
index 00000000..e6f0160a
--- /dev/null
+++ b/arm9/modules/38/asm/module_38.s
@@ -0,0 +1,1193 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD38_02254840
+MOD38_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD38_02254854
+ ldr r1, _02254850 ; =MOD38_02254990
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD38_02254854
+_02254850: .word MOD38_02254990
+ thumb_func_end MOD38_02254840
+
+ thumb_func_start MOD38_02254854
+MOD38_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x24
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD38_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD38_0225494C
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD38_0225494C
+ thumb_func_end MOD38_02254854
+
+ thumb_func_start MOD38_0225489C
+MOD38_0225489C: ; 0x0225489C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, r5, #0
+ add r6, r2, #0
+ add r0, r3, #0
+ add r1, #8
+ mov r2, #0xc
+ str r3, [r5, #4]
+ bl FUN_02089418
+ cmp r0, #0
+ bne _022548C0
+ add r0, r5, #0
+ add r0, #8
+ bl MOD38_02254908
+_022548C0:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x14
+ add r1, #8
+ add r2, r6, #0
+ bl MOD38_02254BC4
+ cmp r0, #0
+ beq _022548F8
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254900 ; =0x0225511C
+ ldr r2, _02254904 ; =MOD38_02254988
+ mov r1, #6
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x1c]
+ mov r0, #0
+ str r0, [r5, #0x20]
+ add sp, #4
+ str r4, [r5, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_022548F8:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254900: .word 0x0225511C
+_02254904: .word MOD38_02254988
+ thumb_func_end MOD38_0225489C
+
+ thumb_func_start MOD38_02254908
+MOD38_02254908: ; 0x02254908
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [r4]
+ strh r0, [r4, #6]
+ strh r0, [r4, #8]
+ mov r0, #0x12
+ strh r0, [r4, #0xa]
+ ldrh r0, [r4, #6]
+ ldrh r1, [r4, #8]
+ ldrh r2, [r4, #0xa]
+ bl MOD38_02254B2C
+ strh r0, [r4, #4]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254908
+
+ thumb_func_start MOD38_02254928
+MOD38_02254928: ; 0x02254928
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #8
+ mov r2, #0xc
+ bl FUN_020893F0
+ ldr r0, [r4, #0x1c]
+ bl MOD20_02254198
+ ldr r0, [r4, #0x14]
+ bl MOD38_02254D04
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD38_02254928
+
+ thumb_func_start MOD38_0225494C
+MOD38_0225494C: ; 0x0225494C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254982
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x1c]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254984 ; =0x02255110
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254982
+ add r0, r4, #0
+ bl MOD38_02254928
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x18]
+ bl MOD20_022529A0
+_02254982:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254984: .word 0x02255110
+ thumb_func_end MOD38_0225494C
+
+ thumb_func_start MOD38_02254988
+MOD38_02254988: ; 0x02254988
+ str r0, [r3, #8]
+ str r1, [r3, #0x20]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD38_02254988
+
+ thumb_func_start MOD38_02254990
+MOD38_02254990: ; 0x02254990
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD38_02254990
+
+ thumb_func_start MOD38_02254998
+MOD38_02254998: ; 0x02254998
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _022549A0
+ b _022549A2
+_022549A0:
+ mov r1, #2
+_022549A2:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD38_02254998
+
+ thumb_func_start MOD38_022549AC
+MOD38_022549AC: ; 0x022549AC
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549BC
+ cmp r0, #1
+ beq _022549CC
+ b _022549E6
+_022549BC:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl MOD38_02254D34
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549E6
+_022549CC:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl MOD38_02254D58
+ cmp r0, #0
+ beq _022549E6
+ ldr r0, [r4, #0x18]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD38_02254998
+_022549E6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD38_022549AC
+
+ thumb_func_start MOD38_022549EC
+MOD38_022549EC: ; 0x022549EC
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ beq _02254A0C
+ ldr r0, [r4, #0x14]
+ bl MOD38_02254D64
+ cmp r0, #0
+ beq _02254A08
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD38_02254998
+_02254A08:
+ mov r0, #0
+ pop {r4, pc}
+_02254A0C:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A1C
+ cmp r0, #1
+ beq _02254A32
+ cmp r0, #2
+ beq _02254AE4
+ b _02254AF2
+_02254A1C:
+ ldr r0, [r4, #0x20]
+ cmp r0, #1
+ bne _02254AF2
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl MOD38_02254D34
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254AF2
+_02254A32:
+ ldr r0, [r4, #0x20]
+ cmp r0, #2
+ bne _02254A46
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ bl MOD38_02254D34
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254AF2
+_02254A46:
+ cmp r0, #3
+ bne _02254AF2
+ ldr r0, [r4, #8]
+ cmp r0, #5
+ bhi _02254AC0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254A5C: ; jump table
+ .short _02254A68 - _02254A5C - 2 ; case 0
+ .short _02254A78 - _02254A5C - 2 ; case 1
+ .short _02254A86 - _02254A5C - 2 ; case 2
+ .short _02254A96 - _02254A5C - 2 ; case 3
+ .short _02254AA4 - _02254A5C - 2 ; case 4
+ .short _02254AB4 - _02254A5C - 2 ; case 5
+_02254A68:
+ ldrh r0, [r4, #0xe]
+ mov r1, #0
+ mvn r1, r1
+ mov r2, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0xe]
+ b _02254AC0
+_02254A78:
+ ldrh r0, [r4, #0xe]
+ mov r1, #1
+ mov r2, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0xe]
+ b _02254AC0
+_02254A86:
+ ldrh r0, [r4, #0x10]
+ mov r1, #0
+ mvn r1, r1
+ mov r2, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0x10]
+ b _02254AC0
+_02254A96:
+ ldrh r0, [r4, #0x10]
+ mov r1, #1
+ mov r2, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0x10]
+ b _02254AC0
+_02254AA4:
+ ldrh r0, [r4, #0x12]
+ mov r1, #0
+ mvn r1, r1
+ mov r2, #1
+ bl MOD38_02254B6C
+ strh r0, [r4, #0x12]
+ b _02254AC0
+_02254AB4:
+ ldrh r0, [r4, #0x12]
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0x12]
+_02254AC0:
+ ldrh r0, [r4, #0xe]
+ ldrh r1, [r4, #0x10]
+ ldrh r2, [r4, #0x12]
+ bl MOD38_02254B2C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ bl MOD38_02254D34
+ ldr r0, [r4, #0x14]
+ mov r1, #4
+ bl MOD38_02254D34
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254AF2
+_02254AE4:
+ ldr r0, [r4, #0x14]
+ bl MOD38_02254D64
+ cmp r0, #0
+ beq _02254AF2
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254AF2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD38_022549EC
+
+ thumb_func_start MOD38_02254AF8
+MOD38_02254AF8: ; 0x02254AF8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254B08
+ cmp r0, #1
+ beq _02254B18
+ b _02254B26
+_02254B08:
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl MOD38_02254D34
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B26
+_02254B18:
+ ldr r0, [r4, #0x14]
+ bl MOD38_02254D64
+ cmp r0, #0
+ beq _02254B26
+ mov r0, #1
+ pop {r4, pc}
+_02254B26:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254AF8
+
+ thumb_func_start MOD38_02254B2C
+MOD38_02254B2C: ; 0x02254B2C
+ push {r4, r5}
+ ldr r5, _02254B68 ; =0x02255134
+ mov r3, #0x12
+ add r4, r0, #0
+ mul r4, r3
+ add r4, r5, r4
+ add r0, r3, #0
+ ldrsb r5, [r4, r1]
+ sub r0, #0x1c
+ cmp r5, r0
+ beq _02254B4E
+ cmp r2, #0x12
+ beq _02254B54
+ ldrsb r0, [r4, r2]
+ sub r3, #0x1c
+ cmp r0, r3
+ bne _02254B54
+_02254B4E:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02254B54:
+ mov r0, #3
+ add r0, r0, r5
+ cmp r2, #0x12
+ beq _02254B64
+ cmp r2, r1
+ beq _02254B64
+ ldrsb r1, [r4, r2]
+ add r0, r0, r1
+_02254B64:
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02254B68: .word 0x02255134
+ thumb_func_end MOD38_02254B2C
+
+ thumb_func_start MOD38_02254B6C
+MOD38_02254B6C: ; 0x02254B6C
+ push {r4, r5}
+ ldr r5, _02254BC0 ; =0x02255278
+ mov r4, #0
+_02254B72:
+ ldrb r3, [r5]
+ cmp r3, r0
+ beq _02254B80
+ add r4, r4, #1
+ add r5, r5, #1
+ cmp r4, #0x11
+ blo _02254B72
+_02254B80:
+ cmp r4, #0x11
+ bne _02254B94
+ cmp r1, #0
+ ble _02254B8E
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02254B8E:
+ mov r0, #8
+ pop {r4, r5}
+ bx lr
+_02254B94:
+ add r4, r4, r1
+ cmp r4, #0x11
+ blt _02254BA6
+ cmp r2, #0
+ beq _02254BA4
+ mov r0, #0x12
+ pop {r4, r5}
+ bx lr
+_02254BA4:
+ mov r4, #0
+_02254BA6:
+ cmp r4, #0
+ bge _02254BB6
+ cmp r2, #0
+ beq _02254BB4
+ mov r0, #0x12
+ pop {r4, r5}
+ bx lr
+_02254BB4:
+ mov r4, #0x10
+_02254BB6:
+ ldr r0, _02254BC0 ; =0x02255278
+ ldrb r0, [r0, r4]
+ pop {r4, r5}
+ bx lr
+ nop
+_02254BC0: .word 0x02255278
+ thumb_func_end MOD38_02254B6C
+
+ thumb_func_start MOD38_02254BC4
+MOD38_02254BC4: ; 0x02254BC4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0xc0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254C2A
+ add r0, #8
+ mov r1, #8
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x30]
+ ldr r2, _02254C30 ; =0x00000235
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #8
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xb4
+ str r0, [r1]
+ ldr r2, _02254C34 ; =0x00000195
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #8
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xb8
+ str r0, [r1]
+ mov r0, #0x80
+ mov r1, #8
+ bl FUN_020219F4
+ add r1, r4, #0
+ add r1, #0xbc
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD38_02254C38
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254C2A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02254C30: .word 0x00000235
+_02254C34: .word 0x00000195
+ thumb_func_end MOD38_02254BC4
+
+ thumb_func_start MOD38_02254C38
+MOD38_02254C38: ; 0x02254C38
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r6, r0, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x40
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r6, #0
+ add r0, #0x60
+ mov r1, #0xc
+ mov r2, #0x3e
+ mov r3, #0x3f
+ bl MOD20_02253FBC
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ add r0, #0x60
+ ldr r4, _02254CBC ; =0x02255300
+ mov r7, #0
+ add r5, r6, #0
+ str r0, [sp, #0xc]
+_02254C72:
+ ldr r0, [r6, #0x30]
+ ldr r2, [sp, #0xc]
+ add r1, r4, #0
+ bl MOD20_02253E74
+ str r0, [r5, #0x34]
+ add r7, r7, #1
+ add r4, #0x10
+ add r5, r5, #4
+ cmp r7, #6
+ blt _02254C72
+ add r0, r6, #0
+ str r0, [sp, #0x10]
+ add r0, #0x60
+ mov r7, #0
+ add r4, r6, #0
+ mov r5, #0x2c
+ str r0, [sp, #0x10]
+_02254C96:
+ ldr r0, [r6, #0x30]
+ ldr r1, _02254CC0 ; =0x0225528C
+ ldr r2, [sp, #0x10]
+ bl MOD20_02253E74
+ mov r2, #3
+ lsl r1, r5, #0xc
+ lsl r2, r2, #0x10
+ str r0, [r4, #0x4c]
+ bl MOD20_02253F64
+ add r7, r7, #1
+ add r4, r4, #4
+ add r5, #8
+ cmp r7, #5
+ blt _02254C96
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254CBC: .word 0x02255300
+_02254CC0: .word 0x0225528C
+ thumb_func_end MOD38_02254C38
+
+ thumb_func_start MOD38_02254CC4
+MOD38_02254CC4: ; 0x02254CC4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+_02254CCC:
+ ldr r1, [r4, #0x34]
+ cmp r1, #0
+ beq _02254CD8
+ ldr r0, [r5, #0x30]
+ bl MOD20_02253F14
+_02254CD8:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _02254CCC
+ mov r6, #0
+ add r4, r5, #0
+_02254CE4:
+ ldr r1, [r4, #0x4c]
+ cmp r1, #0
+ beq _02254CF0
+ ldr r0, [r5, #0x30]
+ bl MOD20_02253F14
+_02254CF0:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #5
+ blt _02254CE4
+ add r5, #0x60
+ add r0, r5, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254CC4
+
+ thumb_func_start MOD38_02254D04
+MOD38_02254D04: ; 0x02254D04
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254D32
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl MOD38_02254CC4
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254D32:
+ pop {r4, pc}
+ thumb_func_end MOD38_02254D04
+
+ thumb_func_start MOD38_02254D34
+MOD38_02254D34: ; 0x02254D34
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254D54 ; =0x022552B8
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254D54: .word 0x022552B8
+ thumb_func_end MOD38_02254D34
+
+ thumb_func_start MOD38_02254D58
+MOD38_02254D58: ; 0x02254D58
+ ldr r3, _02254D60 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254D60: .word MOD20_02253794
+ thumb_func_end MOD38_02254D58
+
+ thumb_func_start MOD38_02254D64
+MOD38_02254D64: ; 0x02254D64
+ ldr r3, _02254D6C ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254D6C: .word MOD20_022537B8
+ thumb_func_end MOD38_02254D64
+
+ thumb_func_start MOD38_02254D70
+MOD38_02254D70: ; 0x02254D70
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254D70
+
+ thumb_func_start MOD38_02254D84
+MOD38_02254D84: ; 0x02254D84
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r7, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254E1C ; =0x0225529C
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x3d
+ mov r3, #6
+ bl FUN_0200687C
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x3c
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ add r0, r5, #0
+ add r1, r7, #0
+ lsr r2, r4, #5
+ bl MOD38_02254E28
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254E20 ; =0x04001000
+ ldr r0, _02254E24 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r6, #0
+ bl MOD38_02254D70
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254E1C: .word 0x0225529C
+_02254E20: .word 0x04001000
+_02254E24: .word 0xFFFFE0FF
+ thumb_func_end MOD38_02254D84
+
+ thumb_func_start MOD38_02254E28
+MOD38_02254E28: ; 0x02254E28
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0xf
+ add r4, r2, #0
+ str r0, [sp]
+ mov r2, #6
+ str r2, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ add r6, r1, #0
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ ldr r0, [r5, #4]
+ add r1, #0x74
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #4
+ str r0, [sp]
+ mov r2, #6
+ add r1, r5, #0
+ str r2, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0xc
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, #0x84
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #8
+ str r0, [sp]
+ mov r2, #6
+ add r1, r5, #0
+ str r2, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x18
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, #0x94
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x16
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r5, #0
+ add r4, #0x24
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, #0xa4
+ mov r2, #6
+ mov r3, #3
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x74
+ bl FUN_02019270
+ add r0, r5, #0
+ add r0, #0x84
+ bl FUN_02019270
+ add r0, r5, #0
+ add r0, #0x94
+ bl FUN_02019270
+ add r0, r5, #0
+ add r0, #0xa4
+ bl FUN_02019270
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD38_02254FCC
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254E28
+
+ thumb_func_start MOD38_02254EF4
+MOD38_02254EF4: ; 0x02254EF4
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x74
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x84
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x94
+ bl FUN_02019178
+ add r4, #0xa4
+ add r0, r4, #0
+ bl FUN_02019178
+ pop {r4, pc}
+ thumb_func_end MOD38_02254EF4
+
+ thumb_func_start MOD38_02254F18
+MOD38_02254F18: ; 0x02254F18
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ bl MOD38_02254EF4
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD38_02254D70
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD38_02254F18
+
+ thumb_func_start MOD38_02254F38
+MOD38_02254F38: ; 0x02254F38
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ ldr r2, [r0]
+ mov r1, #1
+ add r0, r2, #0
+ tst r0, r1
+ beq _02254F56
+ mov r1, #3
+_02254F56:
+ lsl r0, r2, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x34]
+ bl MOD20_02253F28
+ ldr r0, _02254F70 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD38_02254D70
+ pop {r3, r4, r5, pc}
+ nop
+_02254F70: .word 0x00000663
+ thumb_func_end MOD38_02254F38
+
+ thumb_func_start MOD38_02254F74
+MOD38_02254F74: ; 0x02254F74
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ ldr r2, [r0]
+ mov r0, #1
+ tst r0, r2
+ beq _02254F92
+ mov r1, #2
+ b _02254F94
+_02254F92:
+ mov r1, #0
+_02254F94:
+ lsl r0, r2, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x34]
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD38_02254D70
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254F74
+
+ thumb_func_start MOD38_02254FA8
+MOD38_02254FA8: ; 0x02254FA8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD38_02254FCC
+ add r0, r5, #0
+ bl MOD38_02254D70
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254FA8
+
+ thumb_func_start MOD38_02254FCC
+MOD38_02254FCC: ; 0x02254FCC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r5, #0
+ ldrh r2, [r4, #6]
+ add r1, #0x74
+ bl MOD38_0225500C
+ add r1, r5, #0
+ ldrh r2, [r4, #8]
+ add r0, r5, #0
+ add r1, #0x84
+ bl MOD38_0225500C
+ add r1, r5, #0
+ ldrh r2, [r4, #0xa]
+ add r0, r5, #0
+ add r1, #0x94
+ bl MOD38_0225500C
+ add r1, r5, #0
+ ldrh r2, [r4, #4]
+ add r0, r5, #0
+ add r1, #0xa4
+ bl MOD38_02255084
+ ldrh r1, [r4, #4]
+ add r0, r5, #0
+ bl MOD38_022550D0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254FCC
+
+ thumb_func_start MOD38_0225500C
+MOD38_0225500C: ; 0x0225500C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #4
+ add r6, r2, #0
+ bl FUN_02019620
+ cmp r6, #0x12
+ bne _02255036
+ add r0, r5, #0
+ add r2, r5, #0
+ add r0, #0xb8
+ add r2, #0xbc
+ ldr r0, [r0]
+ ldr r2, [r2]
+ mov r1, #6
+ bl FUN_0200A8E0
+ b _02255048
+_02255036:
+ add r0, r5, #0
+ add r2, r5, #0
+ add r0, #0xb4
+ add r2, #0xbc
+ ldr r0, [r0]
+ ldr r2, [r2]
+ add r1, r6, #0
+ bl FUN_0200A8E0
+_02255048:
+ add r1, r5, #0
+ add r1, #0xbc
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255080 ; =0x00010104
+ add r5, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5]
+ mov r5, #0x30
+ sub r3, r5, r3
+ add r0, r4, #0
+ lsr r3, r3, #1
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02255080: .word 0x00010104
+ thumb_func_end MOD38_0225500C
+
+ thumb_func_start MOD38_02255084
+MOD38_02255084: ; 0x02255084
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #4
+ add r6, r2, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r2, r5, #0
+ add r0, #0xb8
+ add r2, #0xbc
+ ldr r0, [r0]
+ ldr r2, [r2]
+ add r1, r6, #0
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022550CC ; =0x00010104
+ add r5, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022550CC: .word 0x00010104
+ thumb_func_end MOD38_02255084
+
+ thumb_func_start MOD38_022550D0
+MOD38_022550D0: ; 0x022550D0
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r6, r1, #0
+ ldr r4, _0225510C ; =0x00000000
+ beq _022550EE
+ add r5, r0, #0
+ mov r7, #4
+_022550DE:
+ ldr r0, [r5, #0x4c]
+ add r1, r7, #0
+ bl MOD20_02253F28
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r6
+ blo _022550DE
+_022550EE:
+ cmp r4, #5
+ bhs _0225510A
+ ldr r0, [sp]
+ lsl r1, r4, #2
+ add r5, r0, r1
+ mov r6, #5
+_022550FA:
+ ldr r0, [r5, #0x4c]
+ add r1, r6, #0
+ bl MOD20_02253F28
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blo _022550FA
+_0225510A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225510C: .word 0x00000000
+ thumb_func_end MOD38_022550D0
+
+ .section .rodata
+ ; 0x02255110
+ .incbin "baserom.nds", 0x290ED0, 0x250
+
+ .section .sinit
+ .word MOD38_02254840
diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s
new file mode 100644
index 00000000..c5946d62
--- /dev/null
+++ b/arm9/modules/39/asm/module_39.s
@@ -0,0 +1,1457 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD39_02254840
+MOD39_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD39_02254854
+ ldr r1, _02254850 ; =MOD39_022549D4
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD39_02254854
+_02254850: .word MOD39_022549D4
+ thumb_func_end MOD39_02254840
+
+ thumb_func_start MOD39_02254854
+MOD39_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x68
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD39_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD39_02254998
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD39_02254998
+ thumb_func_end MOD39_02254854
+
+ thumb_func_start MOD39_0225489C
+MOD39_0225489C: ; 0x0225489C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ bl MOD20_02252C40
+ bl FUN_0206BB1C
+ str r0, [sp, #0x10]
+ bl FUN_0206B9AC
+ ldr r1, [sp, #4]
+ mov r6, #0
+ add r1, #0x34
+ strb r0, [r1]
+ ldr r0, [sp, #4]
+ add r0, #0x34
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _02254906
+ ldr r4, [sp, #4]
+ add r5, r4, #0
+_022548CC:
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r7, r0, #0
+ bl FUN_0206B688
+ str r0, [r4, #4]
+ add r0, r7, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r5, #0x1c]
+ add r0, r7, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r5, #0x28]
+ ldr r0, [sp, #4]
+ str r7, [r4, #0x48]
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #2
+ cmp r6, r0
+ blt _022548CC
+_02254906:
+ ldr r0, [sp, #4]
+ mov r1, #0
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ add r0, #0x34
+ ldrb r0, [r0]
+ cmp r0, #1
+ bls _0225491A
+ mov r1, #1
+_0225491A:
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ add r0, #0x37
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, #0x38
+ add r1, r1, #4
+ bl MOD39_02254C1C
+ cmp r0, #0
+ beq _02254964
+ ldr r0, [sp, #4]
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #1]
+ strb r1, [r0, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _0225496C ; =0x02255300
+ ldr r2, _02254970 ; =MOD39_0225498C
+ ldr r3, [sp, #4]
+ mov r1, #3
+ bl MOD20_02254130
+ ldr r1, [sp, #4]
+ str r0, [r1, #0x40]
+ ldr r0, [sp, #4]
+ mov r1, #0
+ add r0, #0x46
+ strh r1, [r0]
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #4]
+ add sp, #0x14
+ str r1, [r0, #0x3c]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02254964:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225496C: .word 0x02255300
+_02254970: .word MOD39_0225498C
+ thumb_func_end MOD39_0225489C
+
+ thumb_func_start MOD39_02254974
+MOD39_02254974: ; 0x02254974
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ bl MOD20_02254198
+ ldr r0, [r4, #0x38]
+ bl MOD39_02254C58
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD39_02254974
+
+ thumb_func_start MOD39_0225498C
+MOD39_0225498C: ; 0x0225498C
+ add r2, r3, #0
+ add r2, #0x44
+ strh r0, [r2]
+ add r3, #0x46
+ strh r1, [r3]
+ bx lr
+ thumb_func_end MOD39_0225498C
+
+ thumb_func_start MOD39_02254998
+MOD39_02254998: ; 0x02254998
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _022549CE
+ ldr r0, [r4, #0x3c]
+ ldr r1, [r4, #0x40]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _022549D0 ; =0x0225530C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _022549CE
+ add r0, r4, #0
+ bl MOD39_02254974
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x3c]
+ bl MOD20_022529A0
+_022549CE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022549D0: .word 0x0225530C
+ thumb_func_end MOD39_02254998
+
+ thumb_func_start MOD39_022549D4
+MOD39_022549D4: ; 0x022549D4
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD39_022549D4
+
+ thumb_func_start MOD39_022549DC
+MOD39_022549DC: ; 0x022549DC
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _022549E4
+ b _022549E6
+_022549E4:
+ mov r1, #2
+_022549E6:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD39_022549DC
+
+ thumb_func_start MOD39_022549F0
+MOD39_022549F0: ; 0x022549F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A00
+ cmp r0, #1
+ beq _02254A10
+ b _02254A2A
+_02254A00:
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD39_02254DA4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A2A
+_02254A10:
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD39_02254DC8
+ cmp r0, #0
+ beq _02254A2A
+ ldr r0, [r4, #0x3c]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD39_022549DC
+_02254A2A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD39_022549F0
+
+ thumb_func_start MOD39_02254A30
+MOD39_02254A30: ; 0x02254A30
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254A44
+ mov r1, #2
+ bl MOD39_022549DC
+ mov r0, #0
+ pop {r4, pc}
+_02254A44:
+ ldrb r1, [r4, #1]
+ cmp r1, #3
+ bhi _02254B48
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02254A56: ; jump table
+ .short _02254A5E - _02254A56 - 2 ; case 0
+ .short _02254ACC - _02254A56 - 2 ; case 1
+ .short _02254ADC - _02254A56 - 2 ; case 2
+ .short _02254B38 - _02254A56 - 2 ; case 3
+_02254A5E:
+ add r1, r4, #0
+ add r1, #0x46
+ ldrh r1, [r1]
+ cmp r1, #1
+ bne _02254B48
+ add r1, r4, #0
+ add r1, #0x44
+ ldrh r1, [r1]
+ cmp r1, #0
+ beq _02254AA8
+ cmp r1, #1
+ beq _02254A7C
+ cmp r1, #2
+ beq _02254A92
+ b _02254AC4
+_02254A7C:
+ bl MOD39_02254B50
+ cmp r0, #0
+ beq _02254AC4
+ ldr r0, [r4, #0x38]
+ mov r1, #4
+ bl MOD39_02254DA4
+ mov r0, #1
+ strb r0, [r4, #1]
+ b _02254AC4
+_02254A92:
+ bl MOD39_02254B9C
+ cmp r0, #0
+ beq _02254AC4
+ ldr r0, [r4, #0x38]
+ mov r1, #5
+ bl MOD39_02254DA4
+ mov r0, #1
+ strb r0, [r4, #1]
+ b _02254AC4
+_02254AA8:
+ add r0, #0x34
+ ldrb r0, [r0]
+ cmp r0, #1
+ bls _02254ABE
+ ldr r0, [r4, #0x38]
+ mov r1, #2
+ bl MOD39_02254DA4
+ mov r0, #2
+ strb r0, [r4, #1]
+ b _02254AC4
+_02254ABE:
+ ldr r0, _02254B4C ; =0x0000066E
+ bl MOD20_02252B28
+_02254AC4:
+ mov r0, #0
+ add r4, #0x46
+ strh r0, [r4]
+ b _02254B48
+_02254ACC:
+ ldr r0, [r4, #0x38]
+ bl MOD39_02254DD4
+ cmp r0, #0
+ beq _02254B48
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254B48
+_02254ADC:
+ add r0, #0x46
+ ldrh r0, [r0]
+ cmp r0, #2
+ bne _02254AF2
+ ldr r0, [r4, #0x38]
+ mov r1, #3
+ bl MOD39_02254DA4
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254B48
+_02254AF2:
+ cmp r0, #3
+ bne _02254B48
+ add r0, r4, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x48]
+ str r0, [r4, #0x60]
+ add r0, r4, #0
+ add r0, #0x37
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x48]
+ str r0, [r4, #0x64]
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD05_021ED9B4
+ add r1, r4, #0
+ add r1, #0x35
+ strb r0, [r1]
+ ldr r0, [r4, #0x38]
+ mov r1, #3
+ bl MOD39_02254DA4
+ ldr r0, [r4, #0x38]
+ mov r1, #6
+ bl MOD39_02254DA4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B48
+_02254B38:
+ ldr r0, [r4, #0x38]
+ mov r1, #6
+ bl MOD39_02254DC8
+ cmp r0, #0
+ beq _02254B48
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254B48:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02254B4C: .word 0x0000066E
+ thumb_func_end MOD39_02254A30
+
+ thumb_func_start MOD39_02254B50
+MOD39_02254B50: ; 0x02254B50
+ push {r3, r4}
+ add r1, r0, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ cmp r1, #2
+ bls _02254B94
+ add r2, r0, #0
+ mov r1, #0
+ add r2, #0x36
+_02254B62:
+ ldrb r3, [r2]
+ add r3, r3, #1
+ strb r3, [r2]
+ add r3, r0, #0
+ add r3, #0x36
+ ldrb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x34
+ ldrb r3, [r3]
+ cmp r4, r3
+ blo _02254B7E
+ add r3, r0, #0
+ add r3, #0x36
+ strb r1, [r3]
+_02254B7E:
+ add r3, r0, #0
+ add r3, #0x36
+ ldrb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x37
+ ldrb r3, [r3]
+ cmp r4, r3
+ beq _02254B62
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_02254B94:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD39_02254B50
+
+ thumb_func_start MOD39_02254B9C
+MOD39_02254B9C: ; 0x02254B9C
+ push {r3, r4}
+ add r1, r0, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ cmp r1, #2
+ bls _02254BE0
+ add r2, r0, #0
+ mov r1, #0
+ add r2, #0x37
+_02254BAE:
+ ldrb r3, [r2]
+ add r3, r3, #1
+ strb r3, [r2]
+ add r3, r0, #0
+ add r3, #0x37
+ ldrb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x34
+ ldrb r3, [r3]
+ cmp r4, r3
+ blo _02254BCA
+ add r3, r0, #0
+ add r3, #0x37
+ strb r1, [r3]
+_02254BCA:
+ add r3, r0, #0
+ add r3, #0x37
+ ldrb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x36
+ ldrb r3, [r3]
+ cmp r4, r3
+ beq _02254BAE
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_02254BE0:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD39_02254B9C
+
+ thumb_func_start MOD39_02254BE8
+MOD39_02254BE8: ; 0x02254BE8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254BF8
+ cmp r0, #1
+ beq _02254C08
+ b _02254C16
+_02254BF8:
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD39_02254DA4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254C16
+_02254C08:
+ ldr r0, [r4, #0x38]
+ bl MOD39_02254DD4
+ cmp r0, #0
+ beq _02254C16
+ mov r0, #1
+ pop {r4, pc}
+_02254C16:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254BE8
+
+ thumb_func_start MOD39_02254C1C
+MOD39_02254C1C: ; 0x02254C1C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x88
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254C52
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD39_02254C6C
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254C52:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254C1C
+
+ thumb_func_start MOD39_02254C58
+MOD39_02254C58: ; 0x02254C58
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254C68
+ bl MOD39_02254D78
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254C68:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254C58
+
+ thumb_func_start MOD39_02254C6C
+MOD39_02254C6C: ; 0x02254C6C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #1
+ str r1, [sp, #0xc]
+ bl MOD20_022539C4
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x4a
+ bl FUN_02006A34
+ mov r1, #0x14
+ bl _u32_div_f
+ ldr r1, [sp, #0xc]
+ str r0, [r5, #0x64]
+ add r2, r1, #0
+ add r2, #0x30
+ ldrb r2, [r2]
+ mov r3, #0
+ bl MOD20_02253A04
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x3c
+ mov r1, #0xc
+ mov r2, #0x48
+ mov r3, #0x49
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x50
+ mov r1, #0xc
+ mov r2, #5
+ mov r3, #6
+ bl MOD20_02253FBC
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x3c
+ ldr r7, _02254D74 ; =0x02255408
+ mov r4, #0
+ add r6, r5, #0
+ str r0, [sp, #0x10]
+_02254CD6:
+ ldr r0, [r5, #0x20]
+ ldr r2, [sp, #0x10]
+ add r1, r7, #0
+ bl MOD20_02253E74
+ str r0, [r6, #0x24]
+ add r4, r4, #1
+ add r7, #0x10
+ add r6, r6, #4
+ cmp r4, #4
+ blt _02254CD6
+ cmp r4, #6
+ bge _02254D18
+ ldr r1, _02254D74 ; =0x02255408
+ lsl r0, r4, #4
+ add r7, r1, r0
+ lsl r0, r4, #2
+ add r6, r5, r0
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x50
+ str r0, [sp, #0x14]
+_02254D02:
+ ldr r0, [r5, #0x20]
+ ldr r2, [sp, #0x14]
+ add r1, r7, #0
+ bl MOD20_02253E74
+ str r0, [r6, #0x24]
+ add r4, r4, #1
+ add r7, #0x10
+ add r6, r6, #4
+ cmp r4, #6
+ blt _02254D02
+_02254D18:
+ ldr r0, [sp, #0xc]
+ add r0, #0x32
+ ldrb r2, [r0]
+ ldr r0, [sp, #0xc]
+ lsl r1, r2, #1
+ add r3, r0, r1
+ ldrh r0, [r3, #0x24]
+ mov r1, #4
+ str r0, [sp]
+ ldrh r3, [r3, #0x18]
+ add r0, r5, #0
+ bl MOD39_02254FA4
+ ldr r0, [sp, #0xc]
+ add r0, #0x33
+ ldrb r2, [r0]
+ ldr r0, [sp, #0xc]
+ lsl r1, r2, #1
+ add r3, r0, r1
+ ldrh r0, [r3, #0x24]
+ mov r1, #5
+ str r0, [sp]
+ ldrh r3, [r3, #0x18]
+ add r0, r5, #0
+ bl MOD39_02254FA4
+ ldr r0, [sp, #0xc]
+ add r0, #0x30
+ str r0, [sp, #0xc]
+ ldrb r0, [r0]
+ cmp r0, #1
+ bhi _02254D70
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x24]
+ mov r1, #0xa
+ bl MOD20_02253F28
+_02254D70:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254D74: .word 0x02255408
+ thumb_func_end MOD39_02254C6C
+
+ thumb_func_start MOD39_02254D78
+MOD39_02254D78: ; 0x02254D78
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r0, #0x50
+ bl MOD20_02254014
+ add r0, r6, #0
+ add r0, #0x3c
+ bl MOD20_02254014
+ mov r4, #0
+ add r5, r6, #0
+_02254D8E:
+ ldr r1, [r5, #0x24]
+ cmp r1, #0
+ beq _02254D9A
+ ldr r0, [r6, #0x20]
+ bl MOD20_02253F14
+_02254D9A:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02254D8E
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD39_02254D78
+
+ thumb_func_start MOD39_02254DA4
+MOD39_02254DA4: ; 0x02254DA4
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254DC4 ; =0x022553A8
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254DC4: .word 0x022553A8
+ thumb_func_end MOD39_02254DA4
+
+ thumb_func_start MOD39_02254DC8
+MOD39_02254DC8: ; 0x02254DC8
+ ldr r3, _02254DD0 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254DD0: .word MOD20_02253794
+ thumb_func_end MOD39_02254DC8
+
+ thumb_func_start MOD39_02254DD4
+MOD39_02254DD4: ; 0x02254DD4
+ ldr r3, _02254DDC ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254DDC: .word MOD20_022537B8
+ thumb_func_end MOD39_02254DD4
+
+ thumb_func_start MOD39_02254DE0
+MOD39_02254DE0: ; 0x02254DE0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254DE0
+
+ thumb_func_start MOD39_02254DF4
+MOD39_02254DF4: ; 0x02254DF4
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD20_022538A4
+ ldr r0, [r5, #4]
+ ldr r2, _02254E7C ; =0x02255330
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x47
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x46
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254E80 ; =0x04001000
+ ldr r0, _02254E84 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD39_02254DE0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_02254E7C: .word 0x02255330
+_02254E80: .word 0x04001000
+_02254E84: .word 0xFFFFE0FF
+ thumb_func_end MOD39_02254DF4
+
+ thumb_func_start MOD39_02254E88
+MOD39_02254E88: ; 0x02254E88
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02254EA4
+ cmp r0, #1
+ beq _02254EB0
+ pop {r3, r4, r5, pc}
+_02254EA4:
+ mov r0, #1
+ str r0, [r4, #0x68]
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02254EB0:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD39_02254DC8
+ cmp r0, #0
+ beq _02254ECA
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD39_02254DE0
+_02254ECA:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD39_02254E88
+
+ thumb_func_start MOD39_02254ECC
+MOD39_02254ECC: ; 0x02254ECC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ ldr r0, _02254EF4 ; =0x00000669
+ bl MOD20_02252B28
+ ldr r0, [r4, #0x24]
+ mov r1, #0xa
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD39_02254DE0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254EF4: .word 0x00000669
+ thumb_func_end MOD39_02254ECC
+
+ thumb_func_start MOD39_02254EF8
+MOD39_02254EF8: ; 0x02254EF8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ ldr r0, [r4, #0x24]
+ mov r1, #9
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD39_02254DE0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254EF8
+
+ thumb_func_start MOD39_02254F1C
+MOD39_02254F1C: ; 0x02254F1C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r7, r0, #0
+ add r0, #0x32
+ ldrb r5, [r0]
+ ldr r0, _02254F5C ; =0x00000663
+ bl MOD20_02252B28
+ lsl r0, r5, #1
+ add r3, r7, r0
+ ldrh r0, [r3, #0x24]
+ mov r1, #4
+ add r2, r5, #0
+ str r0, [sp]
+ ldrh r3, [r3, #0x18]
+ add r0, r4, #0
+ bl MOD39_02254FA4
+ add r0, r4, #0
+ bl MOD39_02254FF8
+ add r0, r6, #0
+ bl MOD39_02254DE0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254F5C: .word 0x00000663
+ thumb_func_end MOD39_02254F1C
+
+ thumb_func_start MOD39_02254F60
+MOD39_02254F60: ; 0x02254F60
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r7, r0, #0
+ add r0, #0x33
+ ldrb r5, [r0]
+ ldr r0, _02254FA0 ; =0x00000663
+ bl MOD20_02252B28
+ lsl r0, r5, #1
+ add r3, r7, r0
+ ldrh r0, [r3, #0x24]
+ mov r1, #5
+ add r2, r5, #0
+ str r0, [sp]
+ ldrh r3, [r3, #0x18]
+ add r0, r4, #0
+ bl MOD39_02254FA4
+ add r0, r4, #0
+ bl MOD39_02254FF8
+ add r0, r6, #0
+ bl MOD39_02254DE0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254FA0: .word 0x00000663
+ thumb_func_end MOD39_02254F60
+
+ thumb_func_start MOD39_02254FA4
+MOD39_02254FA4: ; 0x02254FA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ add r6, r2, #0
+ add r7, r3, #0
+ ldr r4, [r0, #0x24]
+ cmp r1, #5
+ bne _02254FBA
+ mov r1, #4
+ b _02254FCC
+_02254FBA:
+ add r0, r7, #0
+ mov r1, #0x1c
+ bl FUN_02068678
+ cmp r0, #0
+ beq _02254FCA
+ mov r1, #4
+ b _02254FCC
+_02254FCA:
+ mov r1, #5
+_02254FCC:
+ add r0, r4, #0
+ bl MOD20_02253F28
+ ldr r2, [r5, #0x64]
+ lsl r1, r6, #4
+ add r0, r4, #0
+ add r1, r2, r1
+ bl MOD20_02253FA4
+ add r1, sp, #8
+ ldrh r1, [r1, #0x10]
+ add r0, r7, #0
+ mov r2, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ add r0, r4, #0
+ add r1, r1, #1
+ bl MOD20_02253F9C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254FA4
+
+ thumb_func_start MOD39_02254FF8
+MOD39_02254FF8: ; 0x02254FF8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #3
+ mov r2, #0x16
+ ldr r0, [r4, #0x2c]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ bl MOD20_02253F64
+ mov r1, #0xb
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x30]
+ lsr r2, r1, #1
+ bl MOD20_02253F64
+ ldr r0, [r4, #0x2c]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x30]
+ mov r1, #6
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD20_02253F28
+ pop {r4, pc}
+ thumb_func_end MOD39_02254FF8
+
+ thumb_func_start MOD39_02255030
+MOD39_02255030: ; 0x02255030
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _0225505C
+ ldr r0, [r4, #0x68]
+ cmp r0, #0
+ beq _0225505C
+ add r0, r5, #0
+ bl MOD39_02254DE0
+ pop {r4, r5, r6, pc}
+_0225505C:
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _0225506C
+ cmp r0, #1
+ beq _02255086
+ pop {r4, r5, r6, pc}
+_0225506C:
+ mov r0, #0
+ str r0, [r4, #0x68]
+ add r0, r4, #0
+ bl MOD39_02254FF8
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD39_0225509C
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02255086:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD39_02255114
+ cmp r0, #0
+ beq _02255098
+ add r0, r5, #0
+ bl MOD39_02254DE0
+_02255098:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02255030
+
+ thumb_func_start MOD39_0225509C
+MOD39_0225509C: ; 0x0225509C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ mov r1, #0
+ str r1, [r4, #0x70]
+ str r1, [r4, #0x74]
+ str r1, [r4, #0x78]
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x31
+ ldrb r0, [r0]
+ cmp r0, #3
+ bhi _022550FA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022550C4: ; jump table
+ .short _022550EE - _022550C4 - 2 ; case 0
+ .short _022550E0 - _022550C4 - 2 ; case 1
+ .short _022550D2 - _022550C4 - 2 ; case 2
+ .short _022550CC - _022550C4 - 2 ; case 3
+_022550CC:
+ ldr r0, _02255104 ; =0x02255378
+ str r0, [r4, #0x6c]
+ b _022550FA
+_022550D2:
+ ldr r0, _02255108 ; =0x02255318
+ mov r1, #1
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x28]
+ bl MOD20_02253F28
+ b _022550FA
+_022550E0:
+ ldr r0, _0225510C ; =0x0225534C
+ mov r1, #2
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x28]
+ bl MOD20_02253F28
+ b _022550FA
+_022550EE:
+ ldr r0, _02255110 ; =0x02255468
+ mov r1, #3
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x28]
+ bl MOD20_02253F28
+_022550FA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD39_02255114
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02255104: .word 0x02255378
+_02255108: .word 0x02255318
+_0225510C: .word 0x0225534C
+_02255110: .word 0x02255468
+ thumb_func_end MOD39_0225509C
+
+ thumb_func_start MOD39_02255114
+MOD39_02255114: ; 0x02255114
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r4, #0
+ add r6, r4, #0
+ mov r7, #0x16
+ add r5, #0x84
+ add r6, #0x78
+ lsl r7, r7, #0xe
+_02255124:
+ ldr r0, [r4, #0x70]
+ cmp r0, #0
+ beq _02255138
+ cmp r0, #1
+ bne _02255130
+ b _02255280
+_02255130:
+ cmp r0, #2
+ bne _02255136
+ b _022552DC
+_02255136:
+ b _022552FA
+_02255138:
+ beq _0225513C
+ b _022552FA
+_0225513C:
+ add r6, r4, #0
+ add r5, r4, #0
+ add r6, #0x7c
+ mov r7, #1
+ add r5, #0x74
+_02255146:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r0, r0, #7
+ cmp r0, #6
+ bls _0225515C
+ b _02255276
+_0225515C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02255168: ; jump table
+ .short _02255252 - _02255168 - 2 ; case 0
+ .short _02255240 - _02255168 - 2 ; case 1
+ .short _0225522C - _02255168 - 2 ; case 2
+ .short _02255212 - _02255168 - 2 ; case 3
+ .short _022551C2 - _02255168 - 2 ; case 4
+ .short _0225517A - _02255168 - 2 ; case 5
+ .short _02255176 - _02255168 - 2 ; case 6
+_02255176:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225517A:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r1, [r0, r1]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ str r0, [r4, #0x7c]
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [r6]
+ ldr r1, [r4, #0x78]
+ ldr r0, [r4, #0x7c]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r1, r4, #0
+ add r1, #0x84
+ ldr r0, [r6]
+ ldr r1, [r1]
+ bl _u32_div_f
+ str r0, [r6]
+ str r7, [r4, #0x70]
+ b _02255276
+_022551C2:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r1, [r0, r1]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #0
+ str r0, [r4, #0x7c]
+ ldr r0, [r6]
+ mvn r1, r1
+ lsl r0, r0, #0xc
+ mul r1, r0
+ str r1, [r6]
+ ldr r1, [r4, #0x78]
+ ldr r0, [r4, #0x7c]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r1, r4, #0
+ add r1, #0x84
+ ldr r0, [r6]
+ ldr r1, [r1]
+ bl _u32_div_f
+ str r0, [r6]
+ mov r0, #1
+ str r0, [r4, #0x70]
+ b _02255276
+_02255212:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r1, [r0, r1]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ mov r0, #2
+ str r0, [r4, #0x70]
+ b _02255276
+_0225522C:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bl MOD20_02252B28
+ b _02255276
+_02255240:
+ ldr r0, [r4, #0x2c]
+ mov r1, #6
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x30]
+ mov r1, #5
+ bl MOD20_02253F28
+ b _02255276
+_02255252:
+ ldr r1, [r5]
+ ldr r0, [r4, #0x74]
+ add r1, r1, #1
+ str r1, [r5]
+ ldr r2, [r4, #0x6c]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ ldr r2, [r4, #0x74]
+ add r1, r1, #1
+ str r1, [r5]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r1, [r4, #0x6c]
+ lsl r2, r2, #2
+ ldr r0, [r0, #0x24]
+ ldr r1, [r1, r2]
+ bl MOD20_02253F28
+_02255276:
+ ldr r0, [r4, #0x70]
+ cmp r0, #0
+ bne _0225527E
+ b _02255146
+_0225527E:
+ b _022552FA
+_02255280:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022552CC
+ ldr r0, [r5]
+ sub r0, r0, #1
+ str r0, [r5]
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022552A4
+ ldr r1, [r6]
+ ldr r0, [r4, #0x7c]
+ add r0, r1, r0
+ str r0, [r6]
+ b _022552AC
+_022552A4:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ str r0, [r4, #0x78]
+_022552AC:
+ mov r1, #3
+ ldr r2, [r4, #0x78]
+ lsl r1, r1, #0x10
+ add r1, r2, r1
+ ldr r0, [r4, #0x2c]
+ add r2, r7, #0
+ bl MOD20_02253F64
+ mov r1, #0xb
+ ldr r2, [r4, #0x78]
+ lsl r1, r1, #0x10
+ sub r1, r1, r2
+ ldr r0, [r4, #0x30]
+ add r2, r7, #0
+ bl MOD20_02253F64
+_022552CC:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022552FA
+ mov r0, #0
+ str r0, [r4, #0x70]
+ b _02255124
+_022552DC:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022552F4
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ add r4, #0x84
+ sub r0, r0, #1
+ str r0, [r4]
+ b _022552FA
+_022552F4:
+ mov r0, #0
+ str r0, [r4, #0x70]
+ b _02255124
+_022552FA:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02255114
+
+ .section .rodata
+ ; 0x02255300
+ .incbin "baserom.nds", 0x291cc0, 0x1E4
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_39.SINIT_START
+ .global SDK_OVERLAY.MODULE_39.SINIT_END
+SDK_OVERLAY.MODULE_39.SINIT_START:
+ .word MOD39_02254840
+ .word 0
+SDK_OVERLAY.MODULE_39.SINIT_END:
diff --git a/arm9/modules/40/asm/module_40.s b/arm9/modules/40/asm/module_40.s
new file mode 100644
index 00000000..bc8e79f1
--- /dev/null
+++ b/arm9/modules/40/asm/module_40.s
@@ -0,0 +1,1417 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD40_02254840
+MOD40_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD40_02254854
+ ldr r1, _02254850 ; =MOD40_022549D4
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD40_02254854
+_02254850: .word MOD40_022549D4
+ thumb_func_end MOD40_02254840
+
+ thumb_func_start MOD40_02254854
+MOD40_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x34
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD40_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD40_02254998
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD40_02254998
+ thumb_func_end MOD40_02254854
+
+ thumb_func_start MOD40_0225489C
+MOD40_0225489C: ; 0x0225489C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r6, r2, #0
+ bl MOD20_02252C3C
+ str r0, [r5, #0x10]
+ bl FUN_0204BF94
+ strb r0, [r5, #3]
+ ldr r0, [r5, #0x10]
+ add r1, sp, #8
+ add r2, sp, #4
+ bl FUN_0204BF9C
+ ldr r0, [sp, #8]
+ strb r0, [r5, #6]
+ ldr r0, [sp, #4]
+ strb r0, [r5, #7]
+ add r0, r5, #3
+ bl MOD40_02254940
+ add r0, r5, #0
+ add r0, #8
+ add r1, r5, #3
+ add r2, r6, #0
+ bl MOD40_02254D6C
+ cmp r0, #0
+ beq _02254930
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254938 ; =0x02255328
+ ldr r2, _0225493C ; =MOD40_02254990
+ mov r1, #6
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x14]
+ mov r0, #0
+ str r0, [r5, #0x1c]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x14]
+ mov r1, #3
+ mov r2, #4
+ bl MOD20_022542C0
+ mov r1, #4
+ ldr r0, [r5, #0x14]
+ add r2, r1, #0
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x14]
+ mov r1, #5
+ mov r2, #4
+ bl MOD20_022542C0
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_02254930:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254938: .word 0x02255328
+_0225493C: .word MOD40_02254990
+ thumb_func_end MOD40_0225489C
+
+ thumb_func_start MOD40_02254940
+MOD40_02254940: ; 0x02254940
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, sp, #0
+ bl FUN_02012690
+ ldr r0, [sp]
+ cmp r0, #0x18
+ blo _0225495A
+ mov r1, #0x18
+ bl _u32_div_f
+ str r1, [sp]
+_0225495A:
+ ldr r0, [sp, #4]
+ cmp r0, #0x3c
+ blo _0225496A
+ ldr r0, [sp]
+ mov r1, #0x3c
+ bl _u32_div_f
+ str r1, [sp]
+_0225496A:
+ ldr r0, [sp]
+ strb r0, [r4, #1]
+ ldr r0, [sp, #4]
+ strb r0, [r4, #2]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254940
+
+ thumb_func_start MOD40_02254978
+MOD40_02254978: ; 0x02254978
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl MOD20_02254198
+ ldr r0, [r4, #8]
+ bl MOD40_02254DA8
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD40_02254978
+
+ thumb_func_start MOD40_02254990
+MOD40_02254990: ; 0x02254990
+ str r0, [r3, #0x18]
+ str r1, [r3, #0x1c]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_02254990
+
+ thumb_func_start MOD40_02254998
+MOD40_02254998: ; 0x02254998
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #5
+ bhs _022549CE
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _022549D0 ; =0x02255314
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _022549CE
+ add r0, r4, #0
+ bl MOD40_02254978
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_022549CE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022549D0: .word 0x02255314
+ thumb_func_end MOD40_02254998
+
+ thumb_func_start MOD40_022549D4
+MOD40_022549D4: ; 0x022549D4
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_022549D4
+
+ thumb_func_start MOD40_022549DC
+MOD40_022549DC: ; 0x022549DC
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _022549E4
+ b _022549E6
+_022549E4:
+ mov r1, #4
+_022549E6:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_022549DC
+
+ thumb_func_start MOD40_022549F0
+MOD40_022549F0: ; 0x022549F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A00
+ cmp r0, #1
+ beq _02254A10
+ b _02254A3A
+_02254A00:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD40_02254F98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A3A
+_02254A10:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD40_02254FBC
+ cmp r0, #0
+ beq _02254A3A
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ beq _02254A32
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD40_022549DC
+ b _02254A3A
+_02254A32:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD40_022549DC
+_02254A3A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_022549F0
+
+ thumb_func_start MOD40_02254A40
+MOD40_02254A40: ; 0x02254A40
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254A54
+ mov r1, #4
+ bl MOD40_022549DC
+ mov r0, #0
+ pop {r4, pc}
+_02254A54:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A60
+ cmp r0, #1
+ beq _02254B32
+ b _02254B46
+_02254A60:
+ ldr r1, [r4, #0x1c]
+ cmp r1, #1
+ bne _02254A9A
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02254A9A
+ mov r0, #1
+ strb r0, [r4, #3]
+ add r0, r4, #3
+ bl MOD40_02254940
+ mov r2, #6
+ mov r3, #7
+ ldrsb r2, [r4, r2]
+ ldrsb r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0204BFB0
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD40_02254F98
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B46
+_02254A9A:
+ cmp r1, #1
+ bne _02254AB0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254AB0
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldr r0, _02254B4C ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254B46
+_02254AB0:
+ cmp r1, #1
+ beq _02254AB8
+ cmp r1, #7
+ bne _02254B46
+_02254AB8:
+ ldr r0, [r4, #0x18]
+ cmp r0, #5
+ bhi _02254B24
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254ACA: ; jump table
+ .short _02254B24 - _02254ACA - 2 ; case 0
+ .short _02254B24 - _02254ACA - 2 ; case 1
+ .short _02254AD6 - _02254ACA - 2 ; case 2
+ .short _02254AEA - _02254ACA - 2 ; case 3
+ .short _02254AFE - _02254ACA - 2 ; case 4
+ .short _02254B12 - _02254ACA - 2 ; case 5
+_02254AD6:
+ mov r0, #6
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #6]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x17
+ ble _02254B24
+ mov r0, #0
+ strb r0, [r4, #6]
+ b _02254B24
+_02254AEA:
+ mov r0, #6
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, #6]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bge _02254B24
+ mov r0, #0x17
+ strb r0, [r4, #6]
+ b _02254B24
+_02254AFE:
+ mov r0, #7
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x3b
+ ble _02254B24
+ mov r0, #0
+ strb r0, [r4, #7]
+ b _02254B24
+_02254B12:
+ mov r0, #7
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, #7]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bge _02254B24
+ mov r0, #0x3b
+ strb r0, [r4, #7]
+_02254B24:
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD40_02254F98
+ b _02254B46
+_02254B32:
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD40_02254FBC
+ cmp r0, #0
+ beq _02254B46
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD40_022549DC
+_02254B46:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254B4C: .word 0x0000066E
+ thumb_func_end MOD40_02254A40
+
+ thumb_func_start MOD40_02254B50
+MOD40_02254B50: ; 0x02254B50
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254B68
+ mov r1, #4
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254B68:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254B74
+ cmp r0, #1
+ beq _02254C02
+ b _02254C12
+_02254B74:
+ add r0, r4, #3
+ bl MOD40_02254D4C
+ cmp r0, #0
+ beq _02254B8C
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254B8C:
+ ldr r1, [r4, #0x1c]
+ cmp r1, #1
+ bne _02254BB2
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254BB2
+ mov r0, #0
+ strb r0, [r4, #3]
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD40_02254F98
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD40_022549DC
+ b _02254C12
+_02254BB2:
+ cmp r1, #1
+ bne _02254BC4
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02254BC4
+ ldr r0, _02254C18 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254C12
+_02254BC4:
+ add r0, r4, #0
+ bl MOD40_02254CE4
+ cmp r0, #0
+ bne _02254BD4
+ add r0, r4, #0
+ bl MOD40_02254CE8
+_02254BD4:
+ add r0, r4, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD40_02254D00
+ cmp r0, #0
+ beq _02254C12
+ mov r0, #5
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp]
+ cmp r1, r0
+ beq _02254C12
+ strb r1, [r4, #5]
+ ldr r0, [sp, #4]
+ mov r1, #4
+ strb r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD40_02254F98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254C12
+_02254C02:
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD40_02254FBC
+ cmp r0, #0
+ beq _02254C12
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254C12:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_02254C18: .word 0x0000066E
+ thumb_func_end MOD40_02254B50
+
+ thumb_func_start MOD40_02254C1C
+MOD40_02254C1C: ; 0x02254C1C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254C34
+ mov r1, #4
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254C34:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254C40
+ cmp r0, #1
+ beq _02254C50
+ b _02254CDC
+_02254C40:
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD40_02254F98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254CDC
+_02254C50:
+ add r0, r4, #3
+ bl MOD40_02254D4C
+ cmp r0, #0
+ bne _02254C76
+ ldr r0, [r4, #8]
+ bl MOD40_0225530C
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD40_02254F98
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254C76:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _02254CA6
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254CA6
+ mov r0, #0
+ strb r0, [r4, #3]
+ ldr r0, [r4, #8]
+ bl MOD40_0225530C
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD40_02254F98
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254CA6:
+ add r0, r4, #0
+ bl MOD40_02254CE4
+ cmp r0, #0
+ bne _02254CB6
+ add r0, r4, #0
+ bl MOD40_02254CE8
+_02254CB6:
+ add r0, r4, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD40_02254D00
+ cmp r0, #0
+ beq _02254CDC
+ mov r0, #5
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp]
+ cmp r1, r0
+ beq _02254CDC
+ strb r1, [r4, #5]
+ ldr r0, [sp, #4]
+ mov r1, #4
+ strb r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD40_02254F98
+_02254CDC:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254C1C
+
+ thumb_func_start MOD40_02254CE4
+MOD40_02254CE4: ; 0x02254CE4
+ ldr r0, [r0, #0x2c]
+ bx lr
+ thumb_func_end MOD40_02254CE4
+
+ thumb_func_start MOD40_02254CE8
+MOD40_02254CE8: ; 0x02254CE8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ bne _02254CFE
+ add r0, r4, #0
+ add r0, #0x20
+ bl FUN_02012690
+ mov r0, #1
+ str r0, [r4, #0x30]
+_02254CFE:
+ pop {r4, pc}
+ thumb_func_end MOD40_02254CE8
+
+ thumb_func_start MOD40_02254D00
+MOD40_02254D00: ; 0x02254D00
+ ldr r3, [r0, #0x30]
+ cmp r3, #0
+ beq _02254D12
+ ldr r3, [r0, #0x20]
+ str r3, [r1]
+ ldr r0, [r0, #0x24]
+ str r0, [r2]
+ mov r0, #1
+ bx lr
+_02254D12:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_02254D00
+
+ thumb_func_start MOD40_02254D18
+MOD40_02254D18: ; 0x02254D18
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254D28
+ cmp r0, #1
+ beq _02254D38
+ b _02254D46
+_02254D28:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD40_02254F98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254D46
+_02254D38:
+ ldr r0, [r4, #8]
+ bl MOD40_02254FC8
+ cmp r0, #0
+ beq _02254D46
+ mov r0, #1
+ pop {r4, pc}
+_02254D46:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254D18
+
+ thumb_func_start MOD40_02254D4C
+MOD40_02254D4C: ; 0x02254D4C
+ mov r1, #1
+ mov r2, #3
+ ldrsb r3, [r0, r1]
+ ldrsb r2, [r0, r2]
+ cmp r3, r2
+ bne _02254D64
+ mov r2, #2
+ ldrsb r3, [r0, r2]
+ mov r2, #4
+ ldrsb r0, [r0, r2]
+ cmp r3, r0
+ beq _02254D66
+_02254D64:
+ mov r1, #0
+_02254D66:
+ add r0, r1, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_02254D4C
+
+ thumb_func_start MOD40_02254D6C
+MOD40_02254D6C: ; 0x02254D6C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x9c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254DA2
+ add r0, #8
+ mov r1, #8
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x30]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD40_02254DBC
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254DA2:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254D6C
+
+ thumb_func_start MOD40_02254DA8
+MOD40_02254DA8: ; 0x02254DA8
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254DB8
+ bl MOD40_02254EE4
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254DB8:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254DA8
+
+ thumb_func_start MOD40_02254DBC
+MOD40_02254DBC: ; 0x02254DBC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r5, r0, #0
+ str r1, [sp, #0xc]
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #2
+ bl FUN_02006A34
+ mov r0, #0
+ str r0, [sp]
+ mov r2, #1
+ mov r3, #0xa
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x4f
+ lsl r3, r3, #8
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x68
+ mov r1, #0xc
+ mov r2, #0x4d
+ mov r3, #0x4e
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x7c
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #4
+ bl MOD20_02253FBC
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x68
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x7c
+ ldr r7, _02254EE0 ; =0x022553B0
+ mov r4, #0
+ add r6, r5, #0
+ str r0, [sp, #0x10]
+_02254E2A:
+ cmp r4, #9
+ blt _02254E40
+ cmp r4, #0xc
+ bgt _02254E40
+ ldr r0, [r5, #0x30]
+ ldr r2, [sp, #0x10]
+ add r1, r7, #0
+ bl MOD20_02253E74
+ str r0, [r6, #0x34]
+ b _02254E52
+_02254E40:
+ ldr r0, [r5, #0x30]
+ ldr r2, [sp, #0x14]
+ add r1, r7, #0
+ bl MOD20_02253E74
+ mov r1, #0x50
+ str r0, [r6, #0x34]
+ bl MOD20_02253FA4
+_02254E52:
+ add r4, r4, #1
+ add r7, #0x10
+ add r6, r6, #4
+ cmp r4, #0xd
+ blt _02254E2A
+ ldr r0, [sp, #0xc]
+ ldrb r0, [r0]
+ cmp r0, #0
+ ldr r0, [r5, #0x34]
+ beq _02254EB2
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x40]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x44]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x4c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x50]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r1, [sp, #0xc]
+ mov r2, #1
+ ldrsb r1, [r1, r2]
+ ldr r2, [sp, #0xc]
+ mov r3, #2
+ ldrsb r2, [r2, r3]
+ add r0, r5, #0
+ bl MOD40_02254F14
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_02254EB2:
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x40]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x44]
+ mov r1, #4
+ bl MOD20_02253F28
+ ldr r1, [sp, #0xc]
+ mov r2, #3
+ ldrsb r1, [r1, r2]
+ ldr r2, [sp, #0xc]
+ mov r3, #4
+ ldrsb r2, [r2, r3]
+ add r0, r5, #0
+ bl MOD40_02254F14
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254EE0: .word 0x022553B0
+ thumb_func_end MOD40_02254DBC
+
+ thumb_func_start MOD40_02254EE4
+MOD40_02254EE4: ; 0x02254EE4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02254EEC:
+ ldr r1, [r5, #0x34]
+ cmp r1, #0
+ beq _02254EF8
+ ldr r0, [r6, #0x30]
+ bl MOD20_02253F14
+_02254EF8:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xd
+ blt _02254EEC
+ add r0, r6, #0
+ add r0, #0x68
+ bl MOD20_02254014
+ add r6, #0x7c
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254EE4
+
+ thumb_func_start MOD40_02254F14
+MOD40_02254F14: ; 0x02254F14
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02254F8C ; =0x04000280
+ mov r3, #0
+ strh r3, [r0]
+ str r1, [r0, #0x10]
+ add r1, r0, #0
+ add r4, r2, #0
+ mov r2, #0xa
+ add r1, #0x18
+ str r2, [r1]
+ str r3, [r1, #4]
+ lsr r1, r0, #0xb
+_02254F2E:
+ ldrh r2, [r0]
+ tst r2, r1
+ bne _02254F2E
+ ldr r1, _02254F90 ; =0x040002A0
+ ldr r0, [r5, #0x58]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+ ldr r2, _02254F8C ; =0x04000280
+ lsr r0, r2, #0xb
+_02254F42:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _02254F42
+ ldr r1, _02254F94 ; =0x040002A8
+ ldr r0, [r5, #0x5c]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+ ldr r0, _02254F8C ; =0x04000280
+ mov r3, #0
+ strh r3, [r0]
+ add r1, r0, #0
+ str r4, [r0, #0x10]
+ mov r2, #0xa
+ add r1, #0x18
+ str r2, [r1]
+ str r3, [r1, #4]
+ lsr r1, r0, #0xb
+_02254F66:
+ ldrh r2, [r0]
+ tst r2, r1
+ bne _02254F66
+ ldr r1, _02254F90 ; =0x040002A0
+ ldr r0, [r5, #0x60]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+ ldr r2, _02254F8C ; =0x04000280
+ lsr r0, r2, #0xb
+_02254F7A:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _02254F7A
+ ldr r1, _02254F94 ; =0x040002A8
+ ldr r0, [r5, #0x64]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254F8C: .word 0x04000280
+_02254F90: .word 0x040002A0
+_02254F94: .word 0x040002A8
+ thumb_func_end MOD40_02254F14
+
+ thumb_func_start MOD40_02254F98
+MOD40_02254F98: ; 0x02254F98
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254FB8 ; =0x0225535C
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254FB8: .word 0x0225535C
+ thumb_func_end MOD40_02254F98
+
+ thumb_func_start MOD40_02254FBC
+MOD40_02254FBC: ; 0x02254FBC
+ ldr r3, _02254FC4 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254FC4: .word MOD20_02253794
+ thumb_func_end MOD40_02254FBC
+
+ thumb_func_start MOD40_02254FC8
+MOD40_02254FC8: ; 0x02254FC8
+ ldr r3, _02254FD0 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254FD0: .word MOD20_022537B8
+ thumb_func_end MOD40_02254FC8
+
+ thumb_func_start MOD40_02254FD4
+MOD40_02254FD4: ; 0x02254FD4
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254FD4
+
+ thumb_func_start MOD40_02254FE8
+MOD40_02254FE8: ; 0x02254FE8
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _0225506C ; =0x02255340
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x4c
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x4b
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02255070 ; =0x04001000
+ ldr r0, _02255074 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD40_02254FD4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_0225506C: .word 0x02255340
+_02255070: .word 0x04001000
+_02255074: .word 0xFFFFE0FF
+ thumb_func_end MOD40_02254FE8
+
+ thumb_func_start MOD40_02255078
+MOD40_02255078: ; 0x02255078
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02255094
+ cmp r0, #1
+ beq _022550A2
+ pop {r3, r4, r5, pc}
+_02255094:
+ add r0, r4, #0
+ bl MOD40_0225530C
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_022550A2:
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD40_02254FBC
+ cmp r0, #0
+ beq _022550BC
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD40_02254FD4
+_022550BC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02255078
+
+ thumb_func_start MOD40_022550C0
+MOD40_022550C0: ; 0x022550C0
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r4, r0, #0
+ ldr r0, _02255138 ; =0x00000663
+ bl MOD20_02252B28
+ ldr r0, [r5, #0x34]
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x40]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x44]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x4c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x50]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ bl MOD20_02253F78
+ mov r1, #1
+ mov r2, #2
+ ldrsb r1, [r4, r1]
+ ldrsb r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD40_02254F14
+ add r0, r6, #0
+ bl MOD40_02254FD4
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02255138: .word 0x00000663
+ thumb_func_end MOD40_022550C0
+
+ thumb_func_start MOD40_0225513C
+MOD40_0225513C: ; 0x0225513C
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r4, r0, #0
+ ldr r0, _022551B4 ; =0x00000663
+ bl MOD20_02252B28
+ ldr r0, [r5, #0x34]
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x40]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x44]
+ mov r1, #4
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x48]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x4c]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x50]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl MOD20_02253F78
+ mov r1, #3
+ mov r2, #4
+ ldrsb r1, [r4, r1]
+ ldrsb r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD40_02254F14
+ add r0, r6, #0
+ bl MOD40_02254FD4
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022551B4: .word 0x00000663
+ thumb_func_end MOD40_0225513C
+
+ thumb_func_start MOD40_022551B8
+MOD40_022551B8: ; 0x022551B8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r2, r0, #0
+ ldrb r0, [r2]
+ cmp r0, #0
+ beq _022551E2
+ mov r1, #1
+ mov r3, #2
+ ldrsb r1, [r2, r1]
+ ldrsb r2, [r2, r3]
+ add r0, r4, #0
+ bl MOD40_02254F14
+ b _022551F0
+_022551E2:
+ mov r1, #3
+ mov r3, #4
+ ldrsb r1, [r2, r1]
+ ldrsb r2, [r2, r3]
+ add r0, r4, #0
+ bl MOD40_02254F14
+_022551F0:
+ add r0, r5, #0
+ bl MOD40_02254FD4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD40_022551B8
+
+ thumb_func_start MOD40_022551F8
+MOD40_022551F8: ; 0x022551F8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _0225521A
+ cmp r0, #1
+ beq _02255262
+ pop {r3, r4, r5, pc}
+_0225521A:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x90
+ str r1, [r0]
+ ldr r0, [r4, #0x40]
+ mov r1, #4
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x44]
+ mov r1, #4
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F28
+ ldr r0, _02255304 ; =0x00000663
+ bl MOD20_02252B28
+ ldr r0, _02255308 ; =0x00000126
+ bl MOD20_02252B48
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r4, #0x98
+ add r0, r5, #0
+ str r1, [r4]
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02255262:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02255294
+ ldr r0, [r4, #0x58]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x60]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ bl MOD20_02253F78
+ add r0, r5, #0
+ bl MOD40_02254FD4
+ pop {r3, r4, r5, pc}
+_02255294:
+ bl FUN_02005670
+ cmp r0, #0
+ bne _022552A2
+ ldr r0, _02255308 ; =0x00000126
+ bl MOD20_02252B48
+_022552A2:
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ cmp r0, #0xf
+ blo _02255300
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r1, [r0]
+ mov r0, #1
+ eor r1, r0
+ add r0, r4, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r0, [r4, #0x58]
+ ldr r1, [r1]
+ bl MOD20_02253F78
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r0, [r4, #0x5c]
+ ldr r1, [r1]
+ bl MOD20_02253F78
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r0, [r4, #0x60]
+ ldr r1, [r1]
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x64]
+ add r4, #0x98
+ ldr r1, [r4]
+ bl MOD20_02253F78
+_02255300:
+ pop {r3, r4, r5, pc}
+ nop
+_02255304: .word 0x00000663
+_02255308: .word 0x00000126
+ thumb_func_end MOD40_022551F8
+
+ thumb_func_start MOD40_0225530C
+MOD40_0225530C: ; 0x0225530C
+ mov r1, #1
+ add r0, #0x90
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD40_0225530C
+
+ .section .rodata
+ ; 0x02255314
+ .incbin "baserom.nds", 0x292AD4, 0x16C
+
+ .section .sinit
+ .word MOD40_02254840
diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s
new file mode 100644
index 00000000..d0b3e013
--- /dev/null
+++ b/arm9/modules/41/asm/module_41.s
@@ -0,0 +1,2032 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD41_02254840
+MOD41_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD41_02254854
+ ldr r1, _02254850 ; =MOD41_02254AD8
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD41_02254854
+_02254850: .word MOD41_02254AD8
+ thumb_func_end MOD41_02254840
+
+ thumb_func_start MOD41_02254854
+MOD41_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x90
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD41_02254990
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD41_02254A88
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD41_02254A88
+ thumb_func_end MOD41_02254854
+
+ thumb_func_start MOD41_0225489C
+MOD41_0225489C: ; 0x0225489C
+ push {r4, r5}
+ mov r4, #0
+ add r5, r0, #0
+ mov r3, #1
+ add r2, r4, #0
+_022548A6:
+ add r1, r0, r4
+ str r3, [r5, #0x5c]
+ add r1, #0x4c
+ add r4, r4, #1
+ add r5, r5, #4
+ strb r2, [r1]
+ cmp r4, #3
+ blt _022548A6
+ str r3, [r0, #0x44]
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD41_0225489C
+
+ thumb_func_start MOD41_022548BC
+MOD41_022548BC: ; 0x022548BC
+ lsl r3, r1, #2
+ add r3, r0, r3
+ str r2, [r3, #0x5c]
+ cmp r2, #0
+ beq _022548CA
+ mov r2, #0
+ b _022548CC
+_022548CA:
+ mov r2, #1
+_022548CC:
+ add r1, r0, r1
+ add r1, #0x4c
+ strb r2, [r1]
+ mov r1, #1
+ str r1, [r0, #0x44]
+ bx lr
+ thumb_func_end MOD41_022548BC
+
+ thumb_func_start MOD41_022548D8
+MOD41_022548D8: ; 0x022548D8
+ lsl r3, r1, #2
+ add r3, r0, r3
+ ldr r3, [r3, #0x5c]
+ cmp r3, #0
+ beq _022548EC
+ add r1, r0, r1
+ add r1, #0x4c
+ strb r2, [r1]
+ mov r1, #1
+ str r1, [r0, #0x44]
+_022548EC:
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD41_022548D8
+
+ thumb_func_start MOD41_022548F0
+MOD41_022548F0: ; 0x022548F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r1, #0
+ bl MOD41_0225578C
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ mov r2, #0x48
+ bl FUN_020893F0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_022548F0
+
+ thumb_func_start MOD41_0225490C
+MOD41_0225490C: ; 0x0225490C
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #0x48
+ bl FUN_02089418
+ cmp r0, #0
+ beq _0225494C
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _02254952
+ add r0, r4, #0
+ bl MOD41_02255108
+ add r0, r4, #0
+ bl MOD41_022550F8
+ cmp r0, #0
+ beq _02254952
+ add r0, r4, #0
+ mov r1, #4
+ add r0, #0x8c
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r4, #0x50]
+ mov r0, #2
+ str r0, [r4, #0x54]
+ pop {r4, pc}
+_0225494C:
+ add r0, r4, #0
+ bl MOD41_02254954
+_02254952:
+ pop {r4, pc}
+ thumb_func_end MOD41_0225490C
+
+ thumb_func_start MOD41_02254954
+MOD41_02254954: ; 0x02254954
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r3, r4, #0
+ mov r2, #1
+ add r1, #0x8c
+ str r2, [r1]
+ mov r1, #0
+ add r3, #0x48
+ strb r1, [r3]
+ add r3, r4, #0
+ add r3, #0x49
+ strb r1, [r3]
+ add r3, r4, #0
+ add r3, #0x4a
+ strb r1, [r3]
+ add r3, r4, #0
+ add r3, #0x4b
+ strb r1, [r3]
+ str r2, [r4, #0x50]
+ str r1, [r4, #0x54]
+ str r1, [r4, #0x58]
+ bl MOD41_0225489C
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ pop {r4, pc}
+ thumb_func_end MOD41_02254954
+
+ thumb_func_start MOD41_02254990
+MOD41_02254990: ; 0x02254990
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ str r3, [r5, #4]
+ bl MOD41_0225490C
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #8
+ add r1, #0x48
+ add r2, r6, #0
+ bl MOD41_0225524C
+ cmp r0, #0
+ beq _02254A28
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #3]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254A30 ; =0x022557B0
+ ldr r2, _02254A34 ; =MOD41_02254A58
+ mov r1, #0xb
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x10]
+ mov r0, #0
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x10]
+ mov r1, #3
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #5
+ mov r2, #4
+ bl MOD20_022542C0
+ mov r1, #4
+ ldr r0, [r5, #0x10]
+ add r2, r1, #0
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #6
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #7
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #9
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #8
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #0xa
+ mov r2, #4
+ bl MOD20_022542C0
+ add sp, #4
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_02254A28:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254A30: .word 0x022557B0
+_02254A34: .word MOD41_02254A58
+ thumb_func_end MOD41_02254990
+
+ thumb_func_start MOD41_02254A38
+MOD41_02254A38: ; 0x02254A38
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0x48
+ bl MOD41_022548F0
+ ldr r0, [r4, #0x10]
+ bl MOD20_02254198
+ ldr r0, [r4, #8]
+ bl MOD41_0225528C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD41_02254A38
+
+ thumb_func_start MOD41_02254A58
+MOD41_02254A58: ; 0x02254A58
+ push {r3, lr}
+ add r2, r0, #0
+ str r2, [r3, #0x14]
+ str r1, [r3, #0x18]
+ cmp r2, #3
+ bhs _02254A84
+ cmp r1, #1
+ bne _02254A74
+ add r1, r2, #0
+ add r0, r3, #0
+ mov r2, #1
+ bl MOD41_022548D8
+ pop {r3, pc}
+_02254A74:
+ sub r0, r1, #2
+ cmp r0, #1
+ bhi _02254A84
+ add r1, r2, #0
+ add r0, r3, #0
+ mov r2, #0
+ bl MOD41_022548D8
+_02254A84:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02254A58
+
+ thumb_func_start MOD41_02254A88
+MOD41_02254A88: ; 0x02254A88
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #7
+ bhs _02254AD0
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ bl MOD20_02252C14
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ beq _02254AAE
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ mov r0, #0
+ str r0, [r4, #0x44]
+_02254AAE:
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254AD4 ; =0x02255794
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254AD0
+ add r0, r4, #0
+ bl MOD41_02254A38
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_02254AD0:
+ pop {r3, r4, r5, pc}
+ nop
+_02254AD4: .word 0x02255794
+ thumb_func_end MOD41_02254A88
+
+ thumb_func_start MOD41_02254AD8
+MOD41_02254AD8: ; 0x02254AD8
+ mov r1, #1
+ strb r1, [r0, #3]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD41_02254AD8
+
+ thumb_func_start MOD41_02254AE0
+MOD41_02254AE0: ; 0x02254AE0
+ ldrb r3, [r0, #3]
+ ldrb r2, [r0]
+ cmp r3, #0
+ beq _02254AEA
+ mov r1, #6
+_02254AEA:
+ strb r1, [r0]
+ cmp r1, #0
+ beq _02254AFA
+ cmp r1, #6
+ beq _02254AFA
+ add r3, r0, #0
+ add r3, #0x8c
+ str r2, [r3]
+_02254AFA:
+ cmp r1, #6
+ bhi _02254B50
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02254B0A: ; jump table
+ .short _02254B50 - _02254B0A - 2 ; case 0
+ .short _02254B18 - _02254B0A - 2 ; case 1
+ .short _02254B22 - _02254B0A - 2 ; case 2
+ .short _02254B2C - _02254B0A - 2 ; case 3
+ .short _02254B36 - _02254B0A - 2 ; case 4
+ .short _02254B40 - _02254B0A - 2 ; case 5
+ .short _02254B4A - _02254B0A - 2 ; case 6
+_02254B18:
+ mov r1, #1
+ str r1, [r0, #0x50]
+ mov r1, #0
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B22:
+ mov r1, #0
+ str r1, [r0, #0x50]
+ mov r1, #1
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B2C:
+ mov r1, #0
+ str r1, [r0, #0x50]
+ mov r1, #1
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B36:
+ mov r1, #0
+ str r1, [r0, #0x50]
+ mov r1, #2
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B40:
+ mov r1, #0
+ str r1, [r0, #0x50]
+ mov r1, #3
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B4A:
+ add r1, r0, #0
+ add r1, #0x8c
+ str r2, [r1]
+_02254B50:
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD41_02254AE0
+
+ thumb_func_start MOD41_02254B58
+MOD41_02254B58: ; 0x02254B58
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254B68
+ cmp r0, #1
+ beq _02254B78
+ b _02254B94
+_02254B68:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD41_022553A4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B94
+_02254B78:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD41_022553C8
+ cmp r0, #0
+ beq _02254B94
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ add r4, #0x8c
+ ldr r1, [r4]
+ bl MOD41_02254AE0
+_02254B94:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD41_02254B58
+
+ thumb_func_start MOD41_02254B98
+MOD41_02254B98: ; 0x02254B98
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254BAC
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254BAC:
+ ldr r0, [r4, #8]
+ bl MOD41_022553D4
+ cmp r0, #0
+ bne _02254BBA
+ mov r0, #0
+ pop {r4, pc}
+_02254BBA:
+ ldr r1, [r4, #0x18]
+ cmp r1, #1
+ bne _02254C36
+ ldr r0, [r4, #0x14]
+ cmp r0, #2
+ bhi _02254C36
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254BEE
+ cmp r0, #1
+ beq _02254C2C
+ cmp r0, #2
+ bne _02254C32
+ add r0, r4, #0
+ bl MOD41_02255170
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ ldr r0, _02254D18 ; =0x00000663
+ bl MOD20_02252B28
+ b _02254C32
+_02254BEE:
+ ldr r0, _02254D18 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ bl MOD41_0225504C
+ mov r3, #0
+ mov r2, #0
+ eor r1, r3
+ eor r0, r2
+ orr r0, r1
+ beq _02254C32
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD41_02254AE0
+ b _02254C32
+_02254C2C:
+ ldr r0, _02254D1C ; =0x0000066E
+ bl MOD20_02252B28
+_02254C32:
+ mov r0, #0
+ pop {r4, pc}
+_02254C36:
+ cmp r1, #1
+ beq _02254C3E
+ cmp r1, #7
+ bne _02254D12
+_02254C3E:
+ ldr r1, [r4, #0x14]
+ add r0, r4, #0
+ add r0, #0x48
+ cmp r1, #0xa
+ bhi _02254D06
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02254C54: ; jump table
+ .short _02254D06 - _02254C54 - 2 ; case 0
+ .short _02254D06 - _02254C54 - 2 ; case 1
+ .short _02254D06 - _02254C54 - 2 ; case 2
+ .short _02254C6A - _02254C54 - 2 ; case 3
+ .short _02254C7C - _02254C54 - 2 ; case 4
+ .short _02254C90 - _02254C54 - 2 ; case 5
+ .short _02254CA4 - _02254C54 - 2 ; case 6
+ .short _02254CB8 - _02254C54 - 2 ; case 7
+ .short _02254CCC - _02254C54 - 2 ; case 8
+ .short _02254CE0 - _02254C54 - 2 ; case 9
+ .short _02254CF4 - _02254C54 - 2 ; case 10
+_02254C6A:
+ mov r1, #0
+ ldrsb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0]
+ ldrsb r2, [r0, r1]
+ cmp r2, #9
+ ble _02254D06
+ strb r1, [r0]
+ b _02254D06
+_02254C7C:
+ mov r1, #1
+ ldrsb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0, #1]
+ ldrsb r1, [r0, r1]
+ cmp r1, #9
+ ble _02254D06
+ mov r1, #0
+ strb r1, [r0, #1]
+ b _02254D06
+_02254C90:
+ mov r1, #0
+ ldrsb r2, [r0, r1]
+ sub r2, r2, #1
+ strb r2, [r0]
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bge _02254D06
+ mov r1, #9
+ strb r1, [r0]
+ b _02254D06
+_02254CA4:
+ mov r1, #1
+ ldrsb r2, [r0, r1]
+ sub r2, r2, #1
+ strb r2, [r0, #1]
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bge _02254D06
+ mov r1, #9
+ strb r1, [r0, #1]
+ b _02254D06
+_02254CB8:
+ mov r1, #2
+ ldrsb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0, #2]
+ ldrsb r1, [r0, r1]
+ cmp r1, #5
+ ble _02254D06
+ mov r1, #0
+ strb r1, [r0, #2]
+ b _02254D06
+_02254CCC:
+ mov r1, #3
+ ldrsb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0, #3]
+ ldrsb r1, [r0, r1]
+ cmp r1, #9
+ ble _02254D06
+ mov r1, #0
+ strb r1, [r0, #3]
+ b _02254D06
+_02254CE0:
+ mov r1, #2
+ ldrsb r2, [r0, r1]
+ sub r2, r2, #1
+ strb r2, [r0, #2]
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bge _02254D06
+ mov r1, #5
+ strb r1, [r0, #2]
+ b _02254D06
+_02254CF4:
+ mov r1, #3
+ ldrsb r2, [r0, r1]
+ sub r2, r2, #1
+ strb r2, [r0, #3]
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bge _02254D06
+ mov r1, #9
+ strb r1, [r0, #3]
+_02254D06:
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ mov r0, #0
+ str r0, [r4, #0x18]
+_02254D12:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254D18: .word 0x00000663
+_02254D1C: .word 0x0000066E
+ thumb_func_end MOD41_02254B98
+
+ thumb_func_start MOD41_02254D20
+MOD41_02254D20: ; 0x02254D20
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254D34
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254D34:
+ bl MOD41_02255108
+ cmp r0, #0
+ beq _02254D6C
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ add r0, r4, #0
+ bl MOD41_022550F8
+ cmp r0, #0
+ beq _02254D6C
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254D6C:
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254E00
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254D86
+ cmp r0, #1
+ beq _02254D8E
+ cmp r0, #2
+ beq _02254DC0
+ b _02254E00
+_02254D86:
+ ldr r0, _02254E04 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254E00
+_02254D8E:
+ ldr r0, _02254E08 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_022550BC
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD41_02254AE0
+ b _02254E00
+_02254DC0:
+ ldr r0, _02254E08 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_02255170
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD41_02254AE0
+_02254E00:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02254E04: .word 0x0000066E
+_02254E08: .word 0x00000663
+ thumb_func_end MOD41_02254D20
+
+ thumb_func_start MOD41_02254E0C
+MOD41_02254E0C: ; 0x02254E0C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254E20
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254E20:
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254EAC
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254E3A
+ cmp r0, #1
+ beq _02254E64
+ cmp r0, #2
+ beq _02254E6C
+ b _02254EAC
+_02254E3A:
+ ldr r0, _02254EB0 ; =0x00000663
+ bl MOD20_02252B28
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_022550D0
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD41_02254AE0
+ b _02254EAC
+_02254E64:
+ ldr r0, _02254EB4 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254EAC
+_02254E6C:
+ ldr r0, _02254EB0 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_02255170
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD41_02254AE0
+_02254EAC:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02254EB0: .word 0x00000663
+_02254EB4: .word 0x0000066E
+ thumb_func_end MOD41_02254E0C
+
+ thumb_func_start MOD41_02254EB8
+MOD41_02254EB8: ; 0x02254EB8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254ECC
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254ECC:
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254F52
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254EE6
+ cmp r0, #1
+ beq _02254EEE
+ cmp r0, #2
+ beq _02254F20
+ b _02254F52
+_02254EE6:
+ ldr r0, _02254F58 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254F52
+_02254EEE:
+ ldr r0, _02254F5C ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD41_02254AE0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254F52
+_02254F20:
+ ldr r0, _02254F5C ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD41_02254AE0
+_02254F52:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254F58: .word 0x0000066E
+_02254F5C: .word 0x00000663
+ thumb_func_end MOD41_02254EB8
+
+ thumb_func_start MOD41_02254F60
+MOD41_02254F60: ; 0x02254F60
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254F74
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254F74:
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _0225500A
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254F8E
+ cmp r0, #1
+ beq _02254FBA
+ cmp r0, #2
+ beq _02254FC2
+ b _0225500A
+_02254F8E:
+ ldr r0, _02255010 ; =0x00000663
+ bl MOD20_02252B28
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD41_02254AE0
+ b _0225500A
+_02254FBA:
+ ldr r0, _02255014 ; =0x0000066E
+ bl MOD20_02252B28
+ b _0225500A
+_02254FC2:
+ ldr r0, _02255010 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_02255170
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD41_02254AE0
+_0225500A:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02255010: .word 0x00000663
+_02255014: .word 0x0000066E
+ thumb_func_end MOD41_02254F60
+
+ thumb_func_start MOD41_02255018
+MOD41_02255018: ; 0x02255018
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02255028
+ cmp r0, #1
+ beq _02255038
+ b _02255046
+_02255028:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD41_022553A4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02255046
+_02255038:
+ ldr r0, [r4, #8]
+ bl MOD41_022553D4
+ cmp r0, #0
+ beq _02255046
+ mov r0, #1
+ pop {r4, pc}
+_02255046:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255018
+
+ thumb_func_start MOD41_0225504C
+MOD41_0225504C: ; 0x0225504C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x48
+ bl FUN_02020BF4
+ str r0, [r5, #0x68]
+ str r1, [r5, #0x6c]
+ mov r2, #0
+ str r2, [r5, #0x70]
+ add r0, r5, #0
+ str r2, [r5, #0x74]
+ mov r1, #1
+ add r0, #0x88
+ str r1, [r0]
+ str r2, [r5, #0x78]
+ str r2, [r5, #0x7c]
+ mov r2, #2
+ ldrsb r3, [r4, r2]
+ mov r0, #3
+ ldrsb r0, [r4, r0]
+ add r6, r3, #0
+ ldrsb r3, [r4, r1]
+ mov r1, #0x48
+ mov r2, #0xa
+ mul r6, r2
+ ldrsb r1, [r5, r1]
+ add r0, r0, r6
+ mul r2, r1
+ add r2, r3, r2
+ mov r1, #0x3c
+ mul r1, r2
+ add r2, r0, r1
+ add r0, r5, #0
+ add r0, #0x80
+ str r2, [r0]
+ add r0, r5, #0
+ asr r1, r2, #0x1f
+ add r0, #0x84
+ str r1, [r0]
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0x80
+ add r2, #0x84
+ ldr r1, [r1]
+ ldr r2, [r2]
+ add r0, r5, #0
+ bl MOD41_02255190
+ add r0, r5, #0
+ add r0, #0x80
+ add r5, #0x84
+ ldr r0, [r0]
+ ldr r1, [r5]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD41_0225504C
+
+ thumb_func_start MOD41_022550BC
+MOD41_022550BC: ; 0x022550BC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ add r0, #0x88
+ str r1, [r0]
+ bl FUN_02020BF4
+ str r0, [r4, #0x70]
+ str r1, [r4, #0x74]
+ pop {r4, pc}
+ thumb_func_end MOD41_022550BC
+
+ thumb_func_start MOD41_022550D0
+MOD41_022550D0: ; 0x022550D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ bl FUN_02020BF4
+ add r5, r4, #0
+ add r5, #0x68
+ ldr r7, [r4, #0x70]
+ ldr r2, [r4, #0x68]
+ ldr r6, [r4, #0x74]
+ sub r0, r0, r7
+ sbc r1, r6
+ ldr r3, [r5, #4]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r4, #0x68]
+ str r3, [r5, #4]
+ mov r0, #1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD41_022550D0
+
+ thumb_func_start MOD41_022550F8
+MOD41_022550F8: ; 0x022550F8
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02255104
+ mov r0, #1
+ bx lr
+_02255104:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD41_022550F8
+
+ thumb_func_start MOD41_02255108
+MOD41_02255108: ; 0x02255108
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225516A
+ bl FUN_02020BF4
+ ldr r3, [r4, #0x68]
+ ldr r2, [r4, #0x6c]
+ sub r0, r0, r3
+ sbc r1, r2
+ bl FUN_02020C14
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x80
+ add r6, r1, #0
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r2, [r0]
+ sub r0, r5, r1
+ mov ip, r6
+ mov r0, ip
+ sbc r0, r2
+ blo _02255148
+ add r0, r4, #0
+ bl MOD41_02255170
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02255148:
+ ldr r3, [r4, #0x78]
+ ldr r0, [r4, #0x7c]
+ eor r3, r5
+ eor r0, r6
+ orr r0, r3
+ beq _02255166
+ add r0, r4, #0
+ sub r1, r1, r5
+ sbc r2, r6
+ bl MOD41_02255190
+ str r5, [r4, #0x78]
+ str r6, [r4, #0x7c]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02255166:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0225516A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255108
+
+ thumb_func_start MOD41_02255170
+MOD41_02255170: ; 0x02255170
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0x88
+ str r2, [r1]
+ add r1, r0, #0
+ add r1, #0x48
+ strb r2, [r1]
+ add r1, r0, #0
+ add r1, #0x49
+ strb r2, [r1]
+ add r1, r0, #0
+ add r1, #0x4a
+ strb r2, [r1]
+ add r0, #0x4b
+ strb r2, [r0]
+ bx lr
+ thumb_func_end MOD41_02255170
+
+ thumb_func_start MOD41_02255190
+MOD41_02255190: ; 0x02255190
+ push {r3, r4, r5, r6}
+ add r3, r0, #0
+ ldr r0, _02255240 ; =0x04000280
+ mov r4, #1
+ strh r4, [r0]
+ add r4, r0, #0
+ add r4, #0x10
+ str r1, [r4]
+ str r2, [r4, #4]
+ add r1, r0, #0
+ mov r4, #0x3c
+ add r1, #0x18
+ mov r2, #0
+ str r4, [r1]
+ str r2, [r1, #4]
+ lsr r1, r0, #0xb
+_022551B0:
+ ldrh r2, [r0]
+ tst r2, r1
+ bne _022551B0
+ ldr r0, _02255244 ; =0x040002A0
+ ldr r6, _02255240 ; =0x04000280
+ ldr r0, [r0]
+ lsr r1, r6, #0xb
+_022551BE:
+ ldrh r2, [r6]
+ tst r2, r1
+ bne _022551BE
+ ldr r5, _02255248 ; =0x040002A8
+ mov r4, #0
+ ldr r2, [r5]
+ add r1, r5, #0
+ strh r4, [r6]
+ sub r1, #0x18
+ str r0, [r1]
+ mov r0, #0xa
+ sub r5, #0x10
+ str r0, [r5]
+ str r4, [r5, #4]
+ ldr r4, _02255240 ; =0x04000280
+ lsr r0, r4, #0xb
+_022551DE:
+ ldrh r1, [r4]
+ tst r1, r0
+ bne _022551DE
+ ldr r0, _02255244 ; =0x040002A0
+ ldr r1, [r0]
+ add r0, r3, #0
+ add r0, #0x48
+ strb r1, [r0]
+ ldr r1, _02255240 ; =0x04000280
+ lsr r0, r1, #0xb
+_022551F2:
+ ldrh r4, [r1]
+ tst r4, r0
+ bne _022551F2
+ ldr r0, _02255248 ; =0x040002A8
+ add r4, r3, #0
+ ldr r5, [r0]
+ add r4, #0x49
+ strb r5, [r4]
+ mov r4, #0
+ strh r4, [r1]
+ add r1, r0, #0
+ sub r1, #0x18
+ str r2, [r1]
+ mov r1, #0xa
+ sub r0, #0x10
+ str r1, [r0]
+ ldr r2, _02255240 ; =0x04000280
+ str r4, [r0, #4]
+ lsr r0, r2, #0xb
+_02255218:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _02255218
+ ldr r0, _02255244 ; =0x040002A0
+ ldr r2, _02255240 ; =0x04000280
+ ldr r1, [r0]
+ add r0, r3, #0
+ add r0, #0x4a
+ strb r1, [r0]
+ lsr r0, r2, #0xb
+_0225522C:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0225522C
+ ldr r0, _02255248 ; =0x040002A8
+ add r3, #0x4b
+ ldr r0, [r0]
+ strb r0, [r3]
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_02255240: .word 0x04000280
+_02255244: .word 0x040002A0
+_02255248: .word 0x040002A8
+ thumb_func_end MOD41_02255190
+
+ thumb_func_start MOD41_0225524C
+MOD41_0225524C: ; 0x0225524C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0xac
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02255288
+ add r0, #8
+ mov r1, #8
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x30]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD41_022552A0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02255288
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02255288:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD41_0225524C
+
+ thumb_func_start MOD41_0225528C
+MOD41_0225528C: ; 0x0225528C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0225529C
+ bl MOD41_02255374
+ add r0, r4, #0
+ bl FUN_02016A18
+_0225529C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD41_0225528C
+
+ thumb_func_start MOD41_022552A0
+MOD41_022552A0: ; 0x022552A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r7, r0, #0
+ str r1, [sp, #0xc]
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #2
+ bl FUN_02006A34
+ mov r0, #0
+ str r0, [sp]
+ mov r2, #1
+ mov r3, #0xa
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x5e
+ lsl r3, r3, #8
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x78
+ mov r1, #0xc
+ mov r2, #0x5c
+ mov r3, #0x5d
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x8c
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #4
+ bl MOD20_02253FBC
+ add r0, r7, #0
+ str r0, [sp, #0x14]
+ add r0, #0x78
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ str r0, [sp, #0x10]
+ add r0, #0x8c
+ ldr r6, _02255370 ; =0x02255864
+ mov r4, #0
+ add r5, r7, #0
+ str r0, [sp, #0x10]
+_0225530E:
+ cmp r4, #0xd
+ blt _02255324
+ cmp r4, #0x10
+ bgt _02255324
+ ldr r0, [r7, #0x30]
+ ldr r2, [sp, #0x10]
+ add r1, r6, #0
+ bl MOD20_02253E74
+ str r0, [r5, #0x34]
+ b _02255336
+_02255324:
+ ldr r0, [r7, #0x30]
+ ldr r2, [sp, #0x14]
+ add r1, r6, #0
+ bl MOD20_02253E74
+ mov r1, #0x50
+ str r0, [r5, #0x34]
+ bl MOD20_02253FA4
+_02255336:
+ add r4, r4, #1
+ add r6, #0x10
+ add r5, r5, #4
+ cmp r4, #0x11
+ blt _0225530E
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD41_022556D4
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD41_02255714
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ bne _0225535C
+ mov r1, #1
+ b _0225535E
+_0225535C:
+ mov r1, #0
+_0225535E:
+ add r0, r7, #0
+ bl MOD41_02255744
+ mov r0, #0
+ add r7, #0xa8
+ str r0, [r7]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255370: .word 0x02255864
+ thumb_func_end MOD41_022552A0
+
+ thumb_func_start MOD41_02255374
+MOD41_02255374: ; 0x02255374
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0225537C:
+ ldr r1, [r5, #0x34]
+ cmp r1, #0
+ beq _02255388
+ ldr r0, [r6, #0x30]
+ bl MOD20_02253F14
+_02255388:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x11
+ blt _0225537C
+ add r0, r6, #0
+ add r0, #0x78
+ bl MOD20_02254014
+ add r6, #0x8c
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255374
+
+ thumb_func_start MOD41_022553A4
+MOD41_022553A4: ; 0x022553A4
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _022553C4 ; =0x022557F8
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_022553C4: .word 0x022557F8
+ thumb_func_end MOD41_022553A4
+
+ thumb_func_start MOD41_022553C8
+MOD41_022553C8: ; 0x022553C8
+ ldr r3, _022553D0 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_022553D0: .word MOD20_02253794
+ thumb_func_end MOD41_022553C8
+
+ thumb_func_start MOD41_022553D4
+MOD41_022553D4: ; 0x022553D4
+ ldr r3, _022553DC ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_022553DC: .word MOD20_022537B8
+ thumb_func_end MOD41_022553D4
+
+ thumb_func_start MOD41_022553E0
+MOD41_022553E0: ; 0x022553E0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD41_022553E0
+
+ thumb_func_start MOD41_022553F4
+MOD41_022553F4: ; 0x022553F4
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _022554CC ; =0x022557DC
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0xc
+ mov r1, #0x5b
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0xc
+ mov r1, #0x5a
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _022554D0 ; =0x04001000
+ ldr r0, _022554D4 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ ldr r1, [r4]
+ ldr r0, [r1, #0xc]
+ cmp r0, #1
+ beq _02255488
+ cmp r0, #2
+ beq _0225547E
+ cmp r0, #3
+ beq _0225549A
+ b _022554C0
+_0225547E:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD41_022553A4
+ b _022554C0
+_02255488:
+ ldr r0, [r4, #0x34]
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ b _022554C0
+_0225549A:
+ ldr r0, [r1, #0x10]
+ cmp r0, #0
+ ldr r0, [r4, #0x34]
+ beq _022554B2
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ b _022554C0
+_022554B2:
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+_022554C0:
+ add r0, r5, #0
+ bl MOD41_022553E0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_022554CC: .word 0x022557DC
+_022554D0: .word 0x04001000
+_022554D4: .word 0xFFFFE0FF
+ thumb_func_end MOD41_022553F4
+
+ thumb_func_start MOD41_022554D8
+MOD41_022554D8: ; 0x022554D8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _022554FA
+ cmp r0, #1
+ beq _02255508
+ pop {r3, r4, r5, pc}
+_022554FA:
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_02255508:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD41_022553C8
+ cmp r0, #0
+ beq _02255522
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD41_022553E0
+_02255522:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD41_022554D8
+
+ thumb_func_start MOD41_02255524
+MOD41_02255524: ; 0x02255524
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD41_02255744
+ ldr r0, [r4, #0x34]
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255524
+
+ thumb_func_start MOD41_02255558
+MOD41_02255558: ; 0x02255558
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD41_02255744
+ ldr r0, [r4, #0x34]
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255558
+
+ thumb_func_start MOD41_0225558C
+MOD41_0225558C: ; 0x0225558C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD41_022556D4
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_0225558C
+
+ thumb_func_start MOD41_022555B0
+MOD41_022555B0: ; 0x022555B0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD41_02255714
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_022555B0
+
+ thumb_func_start MOD41_022555D4
+MOD41_022555D4: ; 0x022555D4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _022555F6
+ cmp r0, #1
+ beq _0225561A
+ pop {r3, r4, r5, pc}
+_022555F6:
+ ldr r0, [r4, #0x34]
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xa4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_0225561A:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225562C
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+_0225562C:
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ cmp r0, #8
+ blo _0225568A
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r1, [r0]
+ mov r0, #1
+ eor r1, r0
+ add r0, r4, #0
+ add r0, #0xa8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ ldr r0, [r4, #0x34]
+ beq _02255670
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ b _0225567E
+_02255670:
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+_0225567E:
+ ldr r0, _0225568C ; =0x00000677
+ bl MOD20_02252B28
+ mov r0, #0
+ add r4, #0xa4
+ str r0, [r4]
+_0225568A:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225568C: .word 0x00000677
+ thumb_func_end MOD41_022555D4
+
+ thumb_func_start MOD41_02255690
+MOD41_02255690: ; 0x02255690
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _022556B2
+ cmp r0, #1
+ beq _022556C0
+ pop {r3, r4, r5, pc}
+_022556B2:
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_022556C0:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD41_022553C8
+ cmp r0, #0
+ beq _022556D2
+ add r0, r5, #0
+ bl MOD41_022553E0
+_022556D2:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD41_02255690
+
+ thumb_func_start MOD41_022556D4
+MOD41_022556D4: ; 0x022556D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ beq _022556E4
+ mov r1, #6
+ b _022556E6
+_022556E4:
+ mov r1, #5
+_022556E6:
+ ldr r0, [r5, #0x3c]
+ bl MOD20_02253F28
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _022556F6
+ mov r1, #8
+ b _022556F8
+_022556F6:
+ mov r1, #7
+_022556F8:
+ ldr r0, [r5, #0x40]
+ bl MOD20_02253F28
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ beq _02255708
+ mov r1, #0xa
+ b _0225570A
+_02255708:
+ mov r1, #9
+_0225570A:
+ ldr r0, [r5, #0x44]
+ bl MOD20_02253F28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_022556D4
+
+ thumb_func_start MOD41_02255714
+MOD41_02255714: ; 0x02255714
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, #0x68]
+ bl MOD20_02253F28
+ mov r1, #1
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, #0x6c]
+ bl MOD20_02253F28
+ mov r1, #2
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, #0x70]
+ bl MOD20_02253F28
+ mov r1, #3
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, #0x74]
+ bl MOD20_02253F28
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD41_02255714
+
+ thumb_func_start MOD41_02255744
+MOD41_02255744: ; 0x02255744
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x48]
+ add r4, r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x50]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x54]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x58]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x5c]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x60]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x64]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255744
+
+ thumb_func_start MOD41_0225578C
+MOD41_0225578C: ; 0x0225578C
+ add r0, #0xa8
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD41_0225578C
+
+ .section .rodata
+ ; 0x02255794
+ .incbin "baserom.nds", 0x293d54, 0x1E0
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_41.SINIT_START
+ .global SDK_OVERLAY.MODULE_41.SINIT_END
+SDK_OVERLAY.MODULE_41.SINIT_START:
+ .word MOD41_02254840
+ .word 0
+SDK_OVERLAY.MODULE_41.SINIT_END:
diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s
new file mode 100644
index 00000000..6ec9b916
--- /dev/null
+++ b/arm9/modules/42/asm/module_42.s
@@ -0,0 +1,1161 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD42_02254840
+MOD42_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD42_02254854
+ ldr r1, _02254850 ; =MOD42_02254A38
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD42_02254854
+_02254850: .word MOD42_02254A38
+ thumb_func_end MOD42_02254840
+
+ thumb_func_start MOD42_02254854
+MOD42_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x78
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD42_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD42_02254A04
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD42_02254A04
+ thumb_func_end MOD42_02254854
+
+ thumb_func_start MOD42_0225489C
+MOD42_0225489C: ; 0x0225489C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r0, r1, #0
+ str r1, [sp]
+ str r2, [sp, #4]
+ bl MOD20_02252C3C
+ str r0, [r5, #0x60]
+ add r0, r5, #0
+ str r0, [sp, #8]
+ add r0, #0x11
+ add r7, r5, #0
+ mov r6, #0
+ add r4, r5, #0
+ str r0, [sp, #8]
+ add r7, #0x10
+_022548BE:
+ mov r0, #1
+ strb r0, [r4, #0x13]
+ strb r6, [r4, #0x12]
+ ldr r0, [r5, #0x60]
+ ldr r3, [sp, #8]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl FUN_0204C0A4
+ ldrb r0, [r4, #0x10]
+ add r7, r7, #4
+ add r0, #0x10
+ strb r0, [r4, #0x10]
+ ldrb r0, [r4, #0x11]
+ add r0, #0x10
+ strb r0, [r4, #0x11]
+ mov r0, #0
+ strb r0, [r4, #0x13]
+ add r0, r5, r6
+ add r0, #0x70
+ strb r6, [r0]
+ ldr r0, [sp, #8]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r4, r4, #4
+ str r0, [sp, #8]
+ cmp r6, #6
+ blt _022548BE
+ mov r0, #0
+ str r0, [r5, #0x28]
+ str r0, [r5, #0x2c]
+ str r0, [r5, #0xc]
+ ldr r0, [sp]
+ bl MOD20_02252C40
+ bl FUN_020462AC
+ add r7, r0, #0
+ mov r4, #0
+ add r6, r5, #0
+_0225490E:
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_0205F524
+ str r0, [r6, #0x30]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, #4
+ blt _0225490E
+ ldr r0, [sp]
+ bl MOD20_02252C40
+ bl FUN_0202A9B0
+ str r0, [sp, #0xc]
+ mov r4, #0
+ add r7, r5, #0
+ add r6, r5, #0
+_02254932:
+ lsl r1, r4, #0x18
+ ldr r0, [sp, #0xc]
+ lsr r1, r1, #0x18
+ bl FUN_0202AAA0
+ mov r1, #8
+ str r0, [r7, #0x64]
+ bl FUN_0202AAB8
+ str r0, [r6, #0x40]
+ add r1, r5, #0
+ add r1, #0x76
+ mov r0, #0
+ add r4, r4, #1
+ strb r0, [r1]
+ add r7, r7, #4
+ add r6, #8
+ cmp r4, #3
+ blt _02254932
+ ldr r0, [sp]
+ bl MOD20_02252C38
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DCC
+ add r6, r0, #0
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02034908
+ cmp r0, #0
+ beq _02254984
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #8]
+ str r0, [r5, #4]
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0xc]
+ b _0225498A
+_02254984:
+ ldr r0, [r6, #8]
+ str r0, [r5, #4]
+ ldr r0, [r6, #0xc]
+_0225498A:
+ str r0, [r5, #8]
+ ldr r1, [r5, #4]
+ ldr r2, [sp, #4]
+ asr r0, r1, #4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r0, r0, #5
+ str r0, [r5, #4]
+ ldr r1, [r5, #8]
+ asr r0, r1, #4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r0, r0, #5
+ str r0, [r5, #8]
+ add r0, r5, #0
+ add r0, #0x58
+ add r1, r5, #4
+ bl MOD42_02254CB4
+ cmp r0, #0
+ beq _022549C6
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ ldr r0, [sp]
+ add sp, #0x10
+ str r0, [r5, #0x5c]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022549C6:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD42_0225489C
+
+ thumb_func_start MOD42_022549CC
+MOD42_022549CC: ; 0x022549CC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_022549D4:
+ ldrb r2, [r5, #0x10]
+ ldrb r3, [r5, #0x11]
+ ldr r0, [r6, #0x60]
+ sub r2, #0x10
+ sub r3, #0x10
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ add r1, r4, #0
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0204C080
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _022549D4
+ ldr r0, [r6, #0x58]
+ bl MOD42_02254CF0
+ add r0, r6, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD42_022549CC
+
+ thumb_func_start MOD42_02254A04
+MOD42_02254A04: ; 0x02254A04
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #4
+ bhs _02254A30
+ lsl r2, r1, #2
+ ldr r1, _02254A34 ; =0x022550CC
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254A30
+ add r0, r4, #0
+ bl MOD42_022549CC
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x5c]
+ bl MOD20_022529A0
+_02254A30:
+ pop {r3, r4, r5, pc}
+ nop
+_02254A34: .word 0x022550CC
+ thumb_func_end MOD42_02254A04
+
+ thumb_func_start MOD42_02254A38
+MOD42_02254A38: ; 0x02254A38
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD42_02254A38
+
+ thumb_func_start MOD42_02254A40
+MOD42_02254A40: ; 0x02254A40
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254A48
+ b _02254A4A
+_02254A48:
+ mov r1, #3
+_02254A4A:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD42_02254A40
+
+ thumb_func_start MOD42_02254A54
+MOD42_02254A54: ; 0x02254A54
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A64
+ cmp r0, #1
+ beq _02254A74
+ b _02254A8E
+_02254A64:
+ ldr r0, [r4, #0x58]
+ mov r1, #0
+ bl MOD42_02254EEC
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A8E
+_02254A74:
+ ldr r0, [r4, #0x58]
+ mov r1, #0
+ bl MOD42_02254F10
+ cmp r0, #0
+ beq _02254A8E
+ ldr r0, [r4, #0x5c]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD42_02254A40
+_02254A8E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD42_02254A54
+
+ thumb_func_start MOD42_02254A94
+MOD42_02254A94: ; 0x02254A94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254AAC
+ mov r1, #3
+ bl MOD42_02254A40
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_02254AAC:
+ bl MOD42_02254C04
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x2c]
+ add r0, sp, #8
+ add r1, sp, #4
+ bl MOD20_02252BB8
+ cmp r0, #0
+ beq _02254B20
+ ldr r5, [sp, #8]
+ ldr r6, [sp, #4]
+ mov r3, #0
+_02254AC8:
+ add r0, r4, r3
+ add r0, #0x70
+ ldrb r7, [r0]
+ lsl r0, r7, #2
+ add r2, r4, r0
+ str r0, [sp]
+ ldrb r0, [r2, #0x10]
+ sub r1, r0, r5
+ mov r0, #7
+ mvn r0, r0
+ cmp r1, r0
+ blt _02254B1A
+ cmp r1, #8
+ bgt _02254B1A
+ ldrb r0, [r2, #0x11]
+ sub r1, r0, r6
+ mov r0, #7
+ mvn r0, r0
+ cmp r1, r0
+ blt _02254B1A
+ cmp r1, #8
+ bgt _02254B1A
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD42_02254BB4
+ ldr r0, [sp]
+ ldr r2, [sp, #8]
+ add r1, r4, r0
+ strb r2, [r1, #0x10]
+ ldr r0, [sp, #4]
+ strb r0, [r1, #0x11]
+ mov r0, #1
+ strb r0, [r1, #0x13]
+ str r7, [r4, #0x28]
+ str r0, [r4, #0x2c]
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD42_02254A40
+ b _02254B20
+_02254B1A:
+ add r3, r3, #1
+ cmp r3, #6
+ blt _02254AC8
+_02254B20:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD42_02254A94
+
+ thumb_func_start MOD42_02254B28
+MOD42_02254B28: ; 0x02254B28
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254B40
+ mov r1, #3
+ bl MOD42_02254A40
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254B40:
+ bl MOD42_02254C04
+ str r0, [r4, #0xc]
+ add r0, sp, #4
+ add r1, sp, #0
+ bl MOD20_02252B68
+ cmp r0, #0
+ beq _02254B68
+ ldr r0, [r4, #0x28]
+ ldr r1, [sp, #4]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ strb r1, [r0, #0x10]
+ ldr r0, [r4, #0x28]
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ strb r1, [r0, #0x11]
+ b _02254B7A
+_02254B68:
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ lsl r0, r0, #2
+ add r0, r4, r0
+ strb r1, [r0, #0x13]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD42_02254A40
+_02254B7A:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ thumb_func_end MOD42_02254B28
+
+ thumb_func_start MOD42_02254B80
+MOD42_02254B80: ; 0x02254B80
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254B90
+ cmp r0, #1
+ beq _02254BA0
+ b _02254BAE
+_02254B90:
+ ldr r0, [r4, #0x58]
+ mov r1, #1
+ bl MOD42_02254EEC
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254BAE
+_02254BA0:
+ ldr r0, [r4, #0x58]
+ bl MOD42_02254F1C
+ cmp r0, #0
+ beq _02254BAE
+ mov r0, #1
+ pop {r4, pc}
+_02254BAE:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD42_02254B80
+
+ thumb_func_start MOD42_02254BB4
+MOD42_02254BB4: ; 0x02254BB4
+ push {r3, r4}
+ add r2, r0, #0
+ add r2, #0x70
+ ldrb r2, [r2]
+ cmp r2, r1
+ beq _02254C00
+ mov r4, #0
+_02254BC2:
+ add r2, r0, r4
+ add r2, #0x70
+ ldrb r2, [r2]
+ cmp r1, r2
+ beq _02254BD2
+ add r4, r4, #1
+ cmp r4, #6
+ blt _02254BC2
+_02254BD2:
+ cmp r4, #0
+ beq _02254BE6
+_02254BD6:
+ add r2, r0, r4
+ add r2, #0x6f
+ ldrb r3, [r2]
+ add r2, r0, r4
+ add r2, #0x70
+ strb r3, [r2]
+ sub r4, r4, #1
+ bne _02254BD6
+_02254BE6:
+ add r2, r0, #0
+ add r2, #0x70
+ strb r1, [r2]
+ mov r2, #0
+_02254BEE:
+ add r1, r0, r2
+ add r1, #0x70
+ ldrb r1, [r1]
+ lsl r1, r1, #2
+ add r1, r0, r1
+ strb r2, [r1, #0x12]
+ add r2, r2, #1
+ cmp r2, #6
+ blt _02254BEE
+_02254C00:
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD42_02254BB4
+
+ thumb_func_start MOD42_02254C04
+MOD42_02254C04: ; 0x02254C04
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x5c]
+ mov r7, #0
+ bl MOD20_02252C30
+ cmp r0, #0
+ beq _02254CAE
+ ldr r0, [r5, #0x5c]
+ bl MOD20_02252C38
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DCC
+ add r6, r0, #0
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02034908
+ cmp r0, #0
+ beq _02254C3C
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r1, #8]
+ ldr r1, [r1, #0xc]
+ b _02254C40
+_02254C3C:
+ ldr r0, [r6, #8]
+ ldr r1, [r6, #0xc]
+_02254C40:
+ asr r2, r0, #4
+ lsr r2, r2, #0x1b
+ add r2, r0, r2
+ asr r0, r2, #5
+ asr r2, r1, #4
+ lsr r2, r2, #0x1b
+ add r2, r1, r2
+ asr r1, r2, #5
+ ldr r2, [r5, #4]
+ cmp r0, r2
+ bne _02254C5C
+ ldr r2, [r5, #8]
+ cmp r1, r2
+ beq _02254C62
+_02254C5C:
+ str r0, [r5, #4]
+ str r1, [r5, #8]
+ mov r7, #1
+_02254C62:
+ add r0, r5, #0
+ add r0, #0x76
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x76
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x76
+ ldrb r0, [r0]
+ cmp r0, #5
+ blo _02254CAE
+ mov r6, #0
+ add r4, r5, #0
+_02254C7E:
+ ldr r0, [r5, #0x40]
+ cmp r0, #0
+ bne _02254C94
+ ldr r0, [r4, #0x64]
+ mov r1, #8
+ bl FUN_0202AAB8
+ str r0, [r5, #0x40]
+ cmp r0, #0
+ beq _02254C94
+ mov r7, #1
+_02254C94:
+ cmp r0, #0
+ beq _02254CA4
+ ldr r0, [r4, #0x64]
+ mov r1, #1
+ bl FUN_0202AAB8
+ str r0, [r5, #0x44]
+ mov r7, #1
+_02254CA4:
+ add r6, r6, #1
+ add r5, #8
+ add r4, r4, #4
+ cmp r6, #3
+ blt _02254C7E
+_02254CAE:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD42_02254C04
+
+ thumb_func_start MOD42_02254CB4
+MOD42_02254CB4: ; 0x02254CB4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x74
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254CEA
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD42_02254D04
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254CEA:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD42_02254CB4
+
+ thumb_func_start MOD42_02254CF0
+MOD42_02254CF0: ; 0x02254CF0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254D00
+ bl MOD42_02254E7C
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254D00:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD42_02254CF0
+
+ thumb_func_start MOD42_02254D04
+MOD42_02254D04: ; 0x02254D04
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r5, r0, #0
+ add r7, r1, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x78
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x5c
+ mov r1, #0xc
+ mov r2, #0x76
+ mov r3, #0x77
+ bl MOD20_02253FBC
+ mov r2, #0
+ add r0, sp, #0x24
+ strb r2, [r0, #0x12]
+ mov r1, #2
+ strb r1, [r0, #0x13]
+ strb r2, [r0, #0x15]
+ ldr r0, [r7]
+ ldr r1, [r7, #4]
+ add r2, sp, #0x28
+ add r3, sp, #0x24
+ bl MOD20_02254420
+ ldr r0, [sp, #0x28]
+ add r2, r5, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x24]
+ mov r1, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x30]
+ add r0, sp, #0x24
+ strb r1, [r0, #0x14]
+ mov r1, #0
+ strh r1, [r0, #0x10]
+ ldr r0, [r5, #0x20]
+ add r1, sp, #0x2c
+ add r2, #0x5c
+ bl MOD20_02253E74
+ str r0, [r5, #0x58]
+ mov r1, #1
+ add r0, sp, #0x24
+ strb r1, [r0, #0x15]
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x5c
+ mov r6, #0
+ add r4, r7, #0
+ str r5, [sp, #0xc]
+ str r0, [sp, #0x14]
+_02254D82:
+ ldrb r0, [r4, #0xc]
+ ldr r2, [sp, #0x14]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x2c]
+ ldrb r0, [r4, #0xd]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x30]
+ ldrb r0, [r4, #0xe]
+ add r1, r0, #2
+ add r0, sp, #0x24
+ strb r1, [r0, #0x14]
+ add r1, r6, #1
+ strh r1, [r0, #0x10]
+ ldr r0, [r5, #0x20]
+ add r1, sp, #0x2c
+ bl MOD20_02253E74
+ ldr r1, [sp, #0xc]
+ add r6, r6, #1
+ str r0, [r1, #0x24]
+ add r0, r1, #0
+ add r0, r0, #4
+ add r4, r4, #4
+ str r0, [sp, #0xc]
+ cmp r6, #6
+ blt _02254D82
+ add r0, r5, #0
+ str r0, [sp, #0x18]
+ add r0, #0x5c
+ mov r6, #0
+ add r4, r5, #0
+ str r7, [sp, #0x10]
+ str r0, [sp, #0x18]
+_02254DC4:
+ add r0, r6, #0
+ add r1, sp, #0x28
+ add r2, sp, #0x24
+ bl MOD20_02254460
+ ldr r0, [sp, #0x28]
+ mov r1, #9
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x18]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x30]
+ add r0, sp, #0x24
+ strb r1, [r0, #0x14]
+ add r1, r6, #0
+ add r1, #0xe
+ strh r1, [r0, #0x10]
+ ldr r0, [r5, #0x20]
+ add r1, sp, #0x2c
+ bl MOD20_02253E74
+ str r0, [r4, #0x3c]
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0, #0x2c]
+ cmp r0, #0
+ bne _02254E02
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F78
+_02254E02:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r0, r0, #4
+ add r4, r4, #4
+ str r0, [sp, #0x10]
+ cmp r6, #4
+ blt _02254DC4
+ add r0, r5, #0
+ str r0, [sp, #0x20]
+ add r0, #0x5c
+ mov r6, #0
+ add r4, r5, #0
+ str r0, [sp, #0x20]
+_02254E1C:
+ ldr r0, [r7, #0x40]
+ add r1, sp, #0x28
+ add r2, sp, #0x24
+ bl MOD20_02254488
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x28]
+ mov r1, #8
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x2c]
+ ldr r0, [sp, #0x24]
+ ldr r2, [sp, #0x20]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x30]
+ add r0, sp, #0x24
+ strb r1, [r0, #0x14]
+ mov r1, #0x12
+ strh r1, [r0, #0x10]
+ ldr r0, [r5, #0x20]
+ add r1, sp, #0x2c
+ bl MOD20_02253E74
+ str r0, [r4, #0x4c]
+ ldr r0, [r7, #0x3c]
+ cmp r0, #0
+ beq _02254E56
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ bne _02254E5E
+_02254E56:
+ ldr r0, [r4, #0x4c]
+ mov r1, #1
+ bl MOD20_02253F78
+_02254E5E:
+ add r6, r6, #1
+ add r7, #8
+ add r4, r4, #4
+ cmp r6, #3
+ blt _02254E1C
+ ldr r0, _02254E78 ; =MOD42_02254FE8
+ add r1, r5, #0
+ mov r2, #3
+ bl FUN_0200CA44
+ str r0, [r5, #0x70]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254E78: .word MOD42_02254FE8
+ thumb_func_end MOD42_02254D04
+
+ thumb_func_start MOD42_02254E7C
+MOD42_02254E7C: ; 0x02254E7C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x70]
+ bl FUN_0200CAB4
+ mov r6, #0
+ add r4, r5, #0
+ add r7, r6, #0
+_02254E8C:
+ ldr r1, [r4, #0x24]
+ cmp r1, #0
+ beq _02254E9A
+ ldr r0, [r5, #0x20]
+ bl MOD20_02253F14
+ str r7, [r4, #0x24]
+_02254E9A:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _02254E8C
+ mov r6, #0
+ add r4, r5, #0
+ add r7, r6, #0
+_02254EA8:
+ ldr r1, [r4, #0x3c]
+ cmp r1, #0
+ beq _02254EB6
+ ldr r0, [r5, #0x20]
+ bl MOD20_02253F14
+ str r7, [r4, #0x3c]
+_02254EB6:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02254EA8
+ mov r6, #0
+ add r4, r5, #0
+ add r7, r6, #0
+_02254EC4:
+ ldr r1, [r4, #0x4c]
+ cmp r1, #0
+ beq _02254ED2
+ ldr r0, [r5, #0x20]
+ bl MOD20_02253F14
+ str r7, [r4, #0x4c]
+_02254ED2:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #3
+ blt _02254EC4
+ ldr r0, [r5, #0x20]
+ ldr r1, [r5, #0x58]
+ bl MOD20_02253F14
+ add r5, #0x5c
+ add r0, r5, #0
+ bl MOD20_02254014
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD42_02254E7C
+
+ thumb_func_start MOD42_02254EEC
+MOD42_02254EEC: ; 0x02254EEC
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254F0C ; =0x022550F8
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254F0C: .word 0x022550F8
+ thumb_func_end MOD42_02254EEC
+
+ thumb_func_start MOD42_02254F10
+MOD42_02254F10: ; 0x02254F10
+ ldr r3, _02254F18 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254F18: .word MOD20_02253794
+ thumb_func_end MOD42_02254F10
+
+ thumb_func_start MOD42_02254F1C
+MOD42_02254F1C: ; 0x02254F1C
+ ldr r3, _02254F24 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254F24: .word MOD20_022537B8
+ thumb_func_end MOD42_02254F1C
+
+ thumb_func_start MOD42_02254F28
+MOD42_02254F28: ; 0x02254F28
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD42_02254F28
+
+ thumb_func_start MOD42_02254F3C
+MOD42_02254F3C: ; 0x02254F3C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254FC0 ; =0x022550DC
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x75
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x73
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254FC4 ; =0x04001000
+ ldr r0, _02254FC8 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD42_02254F28
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254FC0: .word 0x022550DC
+_02254FC4: .word 0x04001000
+_02254FC8: .word 0xFFFFE0FF
+ thumb_func_end MOD42_02254F3C
+
+ thumb_func_start MOD42_02254FCC
+MOD42_02254FCC: ; 0x02254FCC
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ ldr r0, [r0, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD42_02254F28
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD42_02254FCC
+
+ thumb_func_start MOD42_02254FE8
+MOD42_02254FE8: ; 0x02254FE8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ ldr r4, [r5]
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _0225505E
+ ldr r7, [r4, #0x24]
+ lsl r6, r7, #2
+ add r2, r4, r6
+ ldrb r0, [r2, #0xf]
+ cmp r0, #0
+ beq _02255028
+ add r0, r5, #0
+ str r0, [sp, #4]
+ add r0, #0x24
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r0, r6
+ str r0, [sp]
+ ldr r0, [r5, #0x20]
+ ldr r1, [r1, r6]
+ mov r2, #0
+ bl MOD20_02253F80
+ ldr r0, [sp, #4]
+ add r7, #8
+ ldr r0, [r0, r6]
+ add r1, r7, #0
+ bl MOD20_02253F28
+ b _0225504C
+_02255028:
+ add r0, r5, #0
+ str r0, [sp, #8]
+ add r0, #0x24
+ str r0, [sp, #8]
+ ldr r1, [sp, #8]
+ ldrb r2, [r2, #0xe]
+ add r0, r0, r6
+ str r0, [sp]
+ ldr r0, [r5, #0x20]
+ ldr r1, [r1, r6]
+ add r2, r2, #2
+ bl MOD20_02253F80
+ ldr r0, [sp, #8]
+ add r1, r7, #1
+ ldr r0, [r0, r6]
+ bl MOD20_02253F28
+_0225504C:
+ add r2, r4, r6
+ ldrb r1, [r2, #0xc]
+ ldr r0, [sp]
+ ldrb r2, [r2, #0xd]
+ ldr r0, [r0]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD20_02253F64
+_0225505E:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ beq _022550C8
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ add r2, sp, #0x10
+ add r3, sp, #0xc
+ bl MOD20_02254420
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ ldr r0, [r5, #0x58]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD20_02253F64
+ mov r6, #0
+ add r7, sp, #0x10
+_02255082:
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ beq _022550B6
+ ldr r0, [r4, #0x40]
+ add r1, r7, #0
+ add r2, sp, #0xc
+ bl MOD20_02254488
+ cmp r0, #0
+ ldr r0, [r5, #0x4c]
+ beq _022550AE
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0xc]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD20_02253F64
+ ldr r0, [r5, #0x4c]
+ mov r1, #0
+ bl MOD20_02253F78
+ b _022550BE
+_022550AE:
+ mov r1, #1
+ bl MOD20_02253F78
+ b _022550BE
+_022550B6:
+ ldr r0, [r5, #0x4c]
+ mov r1, #1
+ bl MOD20_02253F78
+_022550BE:
+ add r6, r6, #1
+ add r4, #8
+ add r5, r5, #4
+ cmp r6, #3
+ blo _02255082
+_022550C8:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD42_02254FE8
+
+ .section .rodata
+ ; 0x022550CC
+ .incbin "baserom.nds", 0x29488c, 0x50
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_42.SINIT_START
+ .global SDK_OVERLAY.MODULE_42.SINIT_END
+SDK_OVERLAY.MODULE_42.SINIT_START:
+ .word MOD42_02254840
+ .word 0
+SDK_OVERLAY.MODULE_42.SINIT_END:
diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s
new file mode 100644
index 00000000..78bb538f
--- /dev/null
+++ b/arm9/modules/43/asm/module_43.s
@@ -0,0 +1,1140 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD43_02254840
+MOD43_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD43_02254854
+ ldr r1, _02254850 ; =MOD43_02254970
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD43_02254854
+_02254850: .word MOD43_02254970
+ thumb_func_end MOD43_02254840
+
+ thumb_func_start MOD43_02254854
+MOD43_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0xb0
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD43_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD43_0225493C
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD43_0225493C
+ thumb_func_end MOD43_02254854
+
+ thumb_func_start MOD43_0225489C
+MOD43_0225489C: ; 0x0225489C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r1, r5, #0
+ add r1, #0xac
+ str r7, [r1]
+ str r2, [sp]
+ bl MOD43_02254A88
+ str r0, [r5, #0xc]
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl MOD20_02252C38
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DCC
+ add r6, r0, #0
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02034908
+ cmp r0, #0
+ beq _022548E0
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #8]
+ str r0, [r5, #4]
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #0xc]
+ b _022548E6
+_022548E0:
+ ldr r0, [r6, #8]
+ str r0, [r5, #4]
+ ldr r0, [r6, #0xc]
+_022548E6:
+ str r0, [r5, #8]
+ ldr r1, [r5, #4]
+ asr r0, r1, #4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r0, r0, #5
+ str r0, [r5, #4]
+ ldr r1, [r5, #8]
+ asr r0, r1, #4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r0, r0, #5
+ str r0, [r5, #8]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD43_02254B60
+ add r0, r5, #0
+ ldr r2, [sp]
+ add r0, #0xa8
+ add r1, r5, #4
+ bl MOD43_02254B8C
+ cmp r0, #0
+ beq _02254924
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02254924:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD43_0225489C
+
+ thumb_func_start MOD43_02254928
+MOD43_02254928: ; 0x02254928
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ bl MOD43_02254BCC
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD43_02254928
+
+ thumb_func_start MOD43_0225493C
+MOD43_0225493C: ; 0x0225493C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhs _0225496A
+ lsl r2, r1, #2
+ ldr r1, _0225496C ; =0x022550A8
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _0225496A
+ add r0, r4, #0
+ bl MOD43_02254928
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r4, #0xac
+ ldr r0, [r4]
+ bl MOD20_022529A0
+_0225496A:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225496C: .word 0x022550A8
+ thumb_func_end MOD43_0225493C
+
+ thumb_func_start MOD43_02254970
+MOD43_02254970: ; 0x02254970
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD43_02254970
+
+ thumb_func_start MOD43_02254978
+MOD43_02254978: ; 0x02254978
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254980
+ b _02254982
+_02254980:
+ mov r1, #2
+_02254982:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD43_02254978
+
+ thumb_func_start MOD43_0225498C
+MOD43_0225498C: ; 0x0225498C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _0225499C
+ cmp r0, #1
+ beq _022549B0
+ b _022549D2
+_0225499C:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD43_02254BD8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549D2
+_022549B0:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD43_02254BFC
+ cmp r0, #0
+ beq _022549D2
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD43_02254978
+_022549D2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD43_0225498C
+
+ thumb_func_start MOD43_022549D8
+MOD43_022549D8: ; 0x022549D8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549F0
+ mov r1, #2
+ bl MOD43_02254978
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_022549F0:
+ bl MOD43_02254AF8
+ add r1, r4, #0
+ add r1, #0x94
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ mov r1, #2
+ bl MOD43_02254BFC
+ cmp r0, #0
+ beq _02254A48
+ add r0, sp, #4
+ add r1, sp, #0
+ bl MOD20_02252BB8
+ cmp r0, #0
+ beq _02254A48
+ ldr r0, [sp, #4]
+ sub r0, #0x10
+ cmp r0, #0xc0
+ bhs _02254A22
+ mov r1, #1
+ b _02254A24
+_02254A22:
+ mov r1, #0
+_02254A24:
+ ldr r0, [sp]
+ sub r0, #0x10
+ cmp r0, #0xc0
+ bhs _02254A30
+ mov r0, #1
+ b _02254A32
+_02254A30:
+ mov r0, #0
+_02254A32:
+ tst r0, r1
+ beq _02254A48
+ add r0, r4, #0
+ bl MOD43_02254A88
+ str r0, [r4, #0xc]
+ add r4, #0xa8
+ ldr r0, [r4]
+ mov r1, #2
+ bl MOD43_02254BD8
+_02254A48:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD43_022549D8
+
+ thumb_func_start MOD43_02254A50
+MOD43_02254A50: ; 0x02254A50
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A60
+ cmp r0, #1
+ beq _02254A74
+ b _02254A84
+_02254A60:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD43_02254BD8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A84
+_02254A74:
+ add r4, #0xa8
+ ldr r0, [r4]
+ bl MOD43_02254C08
+ cmp r0, #0
+ beq _02254A84
+ mov r0, #1
+ pop {r4, pc}
+_02254A84:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD43_02254A50
+
+ thumb_func_start MOD43_02254A88
+MOD43_02254A88: ; 0x02254A88
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl MOD20_02252C40
+ bl FUN_02024ECC
+ mov r4, #0
+ add r6, r0, #0
+ add r7, r4, #0
+_02254A9E:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_020252B8
+ cmp r0, #1
+ bne _02254AEA
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_02025238
+ cmp r0, #5
+ bne _02254AEA
+ ldr r1, _02254AF4 ; =0x022550B4
+ lsl r0, r4, #1
+ ldr r2, _02254AF4 ; =0x022550B4
+ add r1, r1, r0
+ ldrb r0, [r2, r0]
+ strb r0, [r5, #0x10]
+ ldrb r0, [r1, #1]
+ strb r0, [r5, #0x11]
+ b _02254ACC
+_02254AC8:
+ add r1, r1, #2
+ add r4, r4, #1
+_02254ACC:
+ add r0, r4, #1
+ cmp r0, #0x76
+ bhs _02254AE2
+ ldrb r2, [r5, #0x10]
+ ldrb r0, [r1, #2]
+ cmp r2, r0
+ bne _02254AE2
+ ldrb r2, [r5, #0x11]
+ ldrb r0, [r1, #3]
+ cmp r2, r0
+ beq _02254AC8
+_02254AE2:
+ add r7, r7, #1
+ add r5, r5, #2
+ cmp r7, #0x40
+ bge _02254AF0
+_02254AEA:
+ add r4, r4, #1
+ cmp r4, #0x76
+ blo _02254A9E
+_02254AF0:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254AF4: .word 0x022550B4
+ thumb_func_end MOD43_02254A88
+
+ thumb_func_start MOD43_02254AF8
+MOD43_02254AF8: ; 0x02254AF8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ mov r6, #0
+ bl MOD20_02252C30
+ cmp r0, #0
+ beq _02254B5C
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl MOD20_02252C38
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl FUN_02034E30
+ bl FUN_02034DCC
+ add r7, r0, #0
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02034908
+ cmp r0, #0
+ beq _02254B36
+ ldr r1, [r4, #0x1c]
+ ldr r0, [r1, #8]
+ ldr r1, [r1, #0xc]
+ b _02254B3A
+_02254B36:
+ ldr r0, [r7, #8]
+ ldr r1, [r7, #0xc]
+_02254B3A:
+ asr r2, r0, #4
+ lsr r2, r2, #0x1b
+ add r2, r0, r2
+ asr r0, r2, #5
+ asr r2, r1, #4
+ lsr r2, r2, #0x1b
+ add r2, r1, r2
+ asr r1, r2, #5
+ ldr r2, [r5, #4]
+ cmp r0, r2
+ bne _02254B56
+ ldr r2, [r5, #8]
+ cmp r1, r2
+ beq _02254B5C
+_02254B56:
+ str r0, [r5, #4]
+ str r1, [r5, #8]
+ mov r6, #1
+_02254B5C:
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD43_02254AF8
+
+ thumb_func_start MOD43_02254B60
+MOD43_02254B60: ; 0x02254B60
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ bl MOD20_02252C40
+ bl FUN_020462AC
+ add r6, r0, #0
+ mov r4, #0
+_02254B72:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0205F524
+ add r1, r5, #0
+ add r1, #0x98
+ add r4, r4, #1
+ add r5, r5, #4
+ str r0, [r1]
+ cmp r4, #4
+ blt _02254B72
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD43_02254B60
+
+ thumb_func_start MOD43_02254B8C
+MOD43_02254B8C: ; 0x02254B8C
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ mov r1, #0x16
+ add r6, r0, #0
+ mov r0, #8
+ lsl r1, r1, #4
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254BC6
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r5, #0x8c
+ mov r0, #0x15
+ ldr r1, [r5]
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254BC6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD43_02254B8C
+
+ thumb_func_start MOD43_02254BCC
+MOD43_02254BCC: ; 0x02254BCC
+ push {r3, lr}
+ cmp r0, #0
+ beq _02254BD6
+ bl FUN_02016A18
+_02254BD6:
+ pop {r3, pc}
+ thumb_func_end MOD43_02254BCC
+
+ thumb_func_start MOD43_02254BD8
+MOD43_02254BD8: ; 0x02254BD8
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254BF8 ; =0x022551BC
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254BF8: .word 0x022551BC
+ thumb_func_end MOD43_02254BD8
+
+ thumb_func_start MOD43_02254BFC
+MOD43_02254BFC: ; 0x02254BFC
+ ldr r3, _02254C04 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254C04: .word MOD20_02253794
+ thumb_func_end MOD43_02254BFC
+
+ thumb_func_start MOD43_02254C08
+MOD43_02254C08: ; 0x02254C08
+ ldr r3, _02254C10 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254C10: .word MOD20_022537B8
+ thumb_func_end MOD43_02254C08
+
+ thumb_func_start MOD43_02254C14
+MOD43_02254C14: ; 0x02254C14
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD43_02254C14
+
+ thumb_func_start MOD43_02254C28
+MOD43_02254C28: ; 0x02254C28
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, _02254CC0 ; =0x0400104C
+ mov r3, #0
+ strb r3, [r0]
+ strb r3, [r0, #1]
+ ldr r0, [r5, #4]
+ ldr r2, _02254CC4 ; =0x022551A0
+ mov r1, #6
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x75
+ mov r3, #6
+ bl FUN_0200687C
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x74
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ add r0, r5, #0
+ lsr r1, r4, #5
+ bl MOD43_02254CD0
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254CC8 ; =0x04001000
+ ldr r0, _02254CCC ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r5, #0
+ bl MOD43_02254E78
+ add r0, r6, #0
+ bl MOD43_02254C14
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02254CC0: .word 0x0400104C
+_02254CC4: .word 0x022551A0
+_02254CC8: .word 0x04001000
+_02254CCC: .word 0xFFFFE0FF
+ thumb_func_end MOD43_02254C28
+
+ thumb_func_start MOD43_02254CD0
+MOD43_02254CD0: ; 0x02254CD0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ add r4, r1, #0
+ mov r1, #0x66
+ add r5, r0, #0
+ mov r0, #0x1a
+ lsl r1, r1, #2
+ mov r2, #0
+ mov r3, #8
+ bl FUN_0200A738
+ add r6, r0, #0
+ beq _02254D44
+ mov r0, #0x14
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, sp, #0x14
+ mov r2, #6
+ mov r3, #0x12
+ bl FUN_02019064
+ add r0, sp, #0x14
+ mov r1, #4
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02254D48 ; =0x00010104
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, sp, #0x14
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, sp, #0x14
+ bl FUN_02019270
+ add r0, sp, #0x14
+ bl FUN_02019548
+ add r0, sp, #0x14
+ bl FUN_02019178
+ add r0, r6, #0
+ bl FUN_02021A20
+_02254D44:
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02254D48: .word 0x00010104
+ thumb_func_end MOD43_02254CD0
+
+ thumb_func_start MOD43_02254D4C
+MOD43_02254D4C: ; 0x02254D4C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02254D68
+ cmp r0, #1
+ beq _02254D78
+ pop {r3, r4, r5, pc}
+_02254D68:
+ mov r0, #0x57
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02254D78:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD43_02254BFC
+ cmp r0, #0
+ beq _02254DA0
+ add r0, r4, #0
+ bl MOD43_02255000
+ ldr r0, _02254DA4 ; =0x0400104C
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #1]
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD43_02254C14
+_02254DA0:
+ pop {r3, r4, r5, pc}
+ nop
+_02254DA4: .word 0x0400104C
+ thumb_func_end MOD43_02254D4C
+
+ thumb_func_start MOD43_02254DA8
+MOD43_02254DA8: ; 0x02254DA8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02254DCE
+ cmp r0, #1
+ beq _02254E02
+ cmp r0, #2
+ beq _02254E10
+ pop {r3, r4, r5, pc}
+_02254DCE:
+ mov r1, #0x55
+ mov r0, #6
+ 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]
+ ldr r2, [r4, r1]
+ lsl r0, r2, #4
+ orr r0, r2
+ ldr r2, _02254E70 ; =0x0400104C
+ strb r0, [r2]
+ ldr r1, [r4, r1]
+ lsl r0, r1, #4
+ orr r0, r1
+ strb r0, [r2, #1]
+ ldr r0, _02254E74 ; =0x00000678
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02254E02:
+ add r0, r4, #0
+ bl MOD43_02254F9C
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02254E10:
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02254E22
+ add r0, r5, #0
+ bl MOD43_02254C14
+ pop {r3, r4, r5, pc}
+_02254E22:
+ sub r1, r0, #4
+ ldr r1, [r4, r1]
+ add r2, r1, #1
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ ldr r1, [r4, r1]
+ cmp r1, #3
+ blt _02254E6E
+ mov r2, #0
+ sub r1, r0, #4
+ str r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #8
+ ldr r1, [r4, r1]
+ sub r2, r1, #1
+ add r1, r0, #0
+ sub r1, #8
+ str r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #8
+ ldr r2, [r4, r1]
+ lsl r1, r2, #4
+ orr r2, r1
+ ldr r1, _02254E70 ; =0x0400104C
+ strb r2, [r1]
+ add r2, r0, #0
+ sub r2, #8
+ ldr r3, [r4, r2]
+ sub r0, #8
+ lsl r2, r3, #4
+ orr r2, r3
+ strb r2, [r1, #1]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _02254E6E
+ add r0, r5, #0
+ bl MOD43_02254C14
+_02254E6E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254E70: .word 0x0400104C
+_02254E74: .word 0x00000678
+ thumb_func_end MOD43_02254DA8
+
+ thumb_func_start MOD43_02254E78
+MOD43_02254E78: ; 0x02254E78
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r6, r0, #0
+ ldr r7, [r6]
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x78
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ add r0, r6, r0
+ mov r1, #0xc
+ mov r2, #0x76
+ mov r3, #0x77
+ bl MOD20_02253FBC
+ mov r2, #0
+ add r0, sp, #0xc
+ strb r2, [r0, #0x12]
+ mov r1, #2
+ strb r1, [r0, #0x13]
+ strb r2, [r0, #0x15]
+ ldr r0, [r7]
+ ldr r1, [r7, #4]
+ add r2, sp, #0x10
+ add r3, sp, #0xc
+ bl MOD20_02254420
+ ldr r0, [sp, #0x10]
+ mov r2, #0x4e
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ lsl r2, r2, #2
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x18]
+ mov r1, #0
+ add r0, sp, #0xc
+ strb r1, [r0, #0x14]
+ strh r1, [r0, #0x10]
+ ldr r0, [r6, #0x20]
+ add r1, sp, #0x14
+ add r2, r6, r2
+ bl MOD20_02253E74
+ mov r1, #1
+ str r0, [r6, #0x24]
+ bl MOD20_02253FAC
+ mov r1, #1
+ add r0, sp, #0xc
+ strb r1, [r0, #0x14]
+ mov r1, #7
+ strh r1, [r0, #0x10]
+ mov r5, #0
+ str r5, [sp, #0x14]
+ str r5, [sp, #0x18]
+ add r4, r6, #0
+_02254EFC:
+ mov r2, #0x4e
+ lsl r2, r2, #2
+ ldr r0, [r6, #0x20]
+ add r1, sp, #0x14
+ add r2, r6, r2
+ bl MOD20_02253E74
+ mov r1, #1
+ str r0, [r4, #0x28]
+ bl MOD20_02253FAC
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #0x40
+ blt _02254EFC
+ add r0, r6, #0
+ bl MOD43_02254F9C
+ mov r5, #0
+ add r4, r6, #0
+_02254F24:
+ add r0, r5, #0
+ add r1, sp, #0x10
+ add r2, sp, #0xc
+ bl MOD20_02254460
+ ldr r0, [sp, #0x10]
+ mov r1, #2
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x4e
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x18]
+ add r0, sp, #0xc
+ strb r1, [r0, #0x14]
+ add r1, r5, #0
+ add r1, #0xe
+ strh r1, [r0, #0x10]
+ lsl r2, r2, #2
+ ldr r0, [r6, #0x20]
+ add r1, sp, #0x14
+ add r2, r6, r2
+ bl MOD20_02253E74
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD20_02253FAC
+ add r0, r7, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02254F7A
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl MOD20_02253F78
+_02254F7A:
+ add r5, r5, #1
+ add r4, r4, #4
+ add r7, r7, #4
+ cmp r5, #4
+ blt _02254F24
+ ldr r0, _02254F98 ; =MOD43_02255078
+ add r1, r6, #0
+ mov r2, #3
+ bl FUN_0200CA44
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254F98: .word MOD43_02255078
+ thumb_func_end MOD43_02254E78
+
+ thumb_func_start MOD43_02254F9C
+MOD43_02254F9C: ; 0x02254F9C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ ldr r1, [r7]
+ mov r4, #0
+ ldr r0, [r1, #8]
+ cmp r0, #0
+ ble _02254FE2
+ add r6, r4, #0
+ add r5, r7, #0
+_02254FB0:
+ add r1, r1, r6
+ ldrb r0, [r1, #0xc]
+ ldrb r1, [r1, #0xd]
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD20_02254420
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ ldr r0, [r5, #0x28]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD20_02253F64
+ ldr r0, [r5, #0x28]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r1, [r7]
+ add r4, r4, #1
+ ldr r0, [r1, #8]
+ add r6, r6, #2
+ add r5, r5, #4
+ cmp r4, r0
+ blt _02254FB0
+_02254FE2:
+ cmp r4, #0x40
+ bge _02254FFC
+ lsl r0, r4, #2
+ add r5, r7, r0
+ mov r6, #1
+_02254FEC:
+ ldr r0, [r5, #0x28]
+ add r1, r6, #0
+ bl MOD20_02253F78
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x40
+ blt _02254FEC
+_02254FFC:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD43_02254F9C
+
+ thumb_func_start MOD43_02255000
+MOD43_02255000: ; 0x02255000
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0225501A
+ bl FUN_0200CAB4
+ mov r0, #0x53
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_0225501A:
+ mov r6, #0
+ add r4, r5, #0
+ add r7, r6, #0
+_02255020:
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02255036
+ ldr r0, [r5, #0x20]
+ bl MOD20_02253F14
+ mov r0, #0x4a
+ lsl r0, r0, #2
+ str r7, [r4, r0]
+_02255036:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _02255020
+ mov r6, #0
+ add r4, r5, #0
+ add r7, r6, #0
+_02255044:
+ ldr r1, [r4, #0x28]
+ cmp r1, #0
+ beq _02255052
+ ldr r0, [r5, #0x20]
+ bl MOD20_02253F14
+ str r7, [r4, #0x28]
+_02255052:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #0x40
+ blt _02255044
+ ldr r1, [r5, #0x24]
+ cmp r1, #0
+ beq _0225506A
+ ldr r0, [r5, #0x20]
+ bl MOD20_02253F14
+ mov r0, #0
+ str r0, [r5, #0x24]
+_0225506A:
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl MOD20_02254014
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD43_02255000
+
+ thumb_func_start MOD43_02255078
+MOD43_02255078: ; 0x02255078
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r0, r1, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022550A2
+ ldmia r1!, {r0, r1}
+ add r2, sp, #4
+ add r3, sp, #0
+ bl MOD20_02254420
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ ldr r0, [r4, #0x24]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD20_02253F64
+_022550A2:
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD43_02255078
+
+ .section .rodata
+ ; 0x022550A8
+ .incbin "baserom.nds", 0x295268, 0x144
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_43.SINIT_START
+ .global SDK_OVERLAY.MODULE_43.SINIT_END
+SDK_OVERLAY.MODULE_43.SINIT_START:
+ .word MOD43_02254840
+ .word 0
+SDK_OVERLAY.MODULE_43.SINIT_END:
diff --git a/arm9/modules/44/asm/module_44.s b/arm9/modules/44/asm/module_44.s
new file mode 100644
index 00000000..a9743a1e
--- /dev/null
+++ b/arm9/modules/44/asm/module_44.s
@@ -0,0 +1,580 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD44_02254840
+MOD44_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD44_02254854
+ ldr r1, _02254850 ; =MOD44_02254920
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD44_02254854
+_02254850: .word MOD44_02254920
+ thumb_func_end MOD44_02254840
+
+ thumb_func_start MOD44_02254854
+MOD44_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x14
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD44_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD44_022548EC
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD44_022548EC
+ thumb_func_end MOD44_02254854
+
+ thumb_func_start MOD44_0225489C
+MOD44_0225489C: ; 0x0225489C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r6, r2, #0
+ bl MOD20_02252C3C
+ str r0, [r5, #0x10]
+ bl FUN_0204BF44
+ str r0, [r5, #4]
+ strb r0, [r5, #3]
+ add r0, r5, #0
+ add r0, #8
+ add r1, r5, #4
+ add r2, r6, #0
+ bl MOD44_02254A54
+ cmp r0, #0
+ beq _022548D2
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022548D2:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD44_0225489C
+
+ thumb_func_start MOD44_022548D8
+MOD44_022548D8: ; 0x022548D8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD44_02254B00
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD44_022548D8
+
+ thumb_func_start MOD44_022548EC
+MOD44_022548EC: ; 0x022548EC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhs _02254918
+ lsl r2, r1, #2
+ ldr r1, _0225491C ; =0x02254C54
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254918
+ add r0, r4, #0
+ bl MOD44_022548D8
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_02254918:
+ pop {r3, r4, r5, pc}
+ nop
+_0225491C: .word 0x02254C54
+ thumb_func_end MOD44_022548EC
+
+ thumb_func_start MOD44_02254920
+MOD44_02254920: ; 0x02254920
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD44_02254920
+
+ thumb_func_start MOD44_02254928
+MOD44_02254928: ; 0x02254928
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254930
+ b _02254932
+_02254930:
+ mov r1, #2
+_02254932:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD44_02254928
+
+ thumb_func_start MOD44_0225493C
+MOD44_0225493C: ; 0x0225493C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _0225494C
+ cmp r0, #1
+ beq _0225495C
+ b _02254976
+_0225494C:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD44_02254B14
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254976
+_0225495C:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD44_02254B38
+ cmp r0, #0
+ beq _02254976
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD44_02254928
+_02254976:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD44_0225493C
+
+ thumb_func_start MOD44_0225497C
+MOD44_0225497C: ; 0x0225497C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254990
+ mov r1, #2
+ bl MOD44_02254928
+ mov r0, #0
+ pop {r4, pc}
+_02254990:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _0225499C
+ cmp r1, #1
+ beq _022549B4
+ b _022549C4
+_0225499C:
+ bl MOD44_022549C8
+ cmp r0, #0
+ beq _022549C4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD44_02254B14
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549C4
+_022549B4:
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD44_02254B38
+ cmp r0, #0
+ beq _022549C4
+ mov r0, #0
+ strb r0, [r4, #1]
+_022549C4:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD44_0225497C
+
+ thumb_func_start MOD44_022549C8
+MOD44_022549C8: ; 0x022549C8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02254A18
+ add r0, sp, #4
+ add r1, sp, #0
+ bl FUN_02020AB0
+ cmp r0, #0
+ beq _02254A18
+ ldr r0, [sp]
+ cmp r0, #0x88
+ blo _02254A18
+ cmp r0, #0xa0
+ bhs _02254A18
+ ldr r0, [sp, #4]
+ cmp r0, #0x30
+ blo _02254A18
+ cmp r0, #0xb8
+ bhs _02254A18
+ sub r0, #0x30
+ lsr r1, r0, #4
+ cmp r1, #8
+ blo _02254A02
+ mov r1, #7
+_02254A02:
+ ldrb r0, [r4, #3]
+ cmp r1, r0
+ beq _02254A18
+ str r1, [r4, #4]
+ strb r1, [r4, #3]
+ ldr r0, [r4, #0x10]
+ bl FUN_0204BF58
+ add sp, #8
+ mov r0, #1
+ pop {r4, pc}
+_02254A18:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD44_022549C8
+
+ thumb_func_start MOD44_02254A20
+MOD44_02254A20: ; 0x02254A20
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A30
+ cmp r0, #1
+ beq _02254A40
+ b _02254A4E
+_02254A30:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD44_02254B14
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A4E
+_02254A40:
+ ldr r0, [r4, #8]
+ bl MOD44_02254B44
+ cmp r0, #0
+ beq _02254A4E
+ mov r0, #1
+ pop {r4, pc}
+_02254A4E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD44_02254A20
+
+ thumb_func_start MOD44_02254A54
+MOD44_02254A54: ; 0x02254A54
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254A8A
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD44_02254A90
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254A8A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD44_02254A54
+
+ thumb_func_start MOD44_02254A90
+MOD44_02254A90: ; 0x02254A90
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r5, r0, #0
+ add r4, r1, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x45
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x28
+ mov r1, #0xc
+ mov r2, #0x43
+ mov r3, #0x44
+ bl MOD20_02253FBC
+ add r2, r5, #0
+ ldr r0, [r5, #0x20]
+ ldr r1, _02254AE0 ; =0x02254C60
+ add r2, #0x28
+ bl MOD20_02253E74
+ str r0, [r5, #0x24]
+ ldr r1, [r4]
+ mov r2, #0x25
+ lsl r1, r1, #4
+ add r1, #0x38
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xe
+ bl MOD20_02253F64
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02254AE0: .word 0x02254C60
+ thumb_func_end MOD44_02254A90
+
+ thumb_func_start MOD44_02254AE4
+MOD44_02254AE4: ; 0x02254AE4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x24]
+ cmp r1, #0
+ beq _02254AF4
+ ldr r0, [r4, #0x20]
+ bl MOD20_02253F14
+_02254AF4:
+ add r4, #0x28
+ add r0, r4, #0
+ bl MOD20_02254014
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD44_02254AE4
+
+ thumb_func_start MOD44_02254B00
+MOD44_02254B00: ; 0x02254B00
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254B10
+ bl MOD44_02254AE4
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254B10:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD44_02254B00
+
+ thumb_func_start MOD44_02254B14
+MOD44_02254B14: ; 0x02254B14
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254B34 ; =0x02254C8C
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254B34: .word 0x02254C8C
+ thumb_func_end MOD44_02254B14
+
+ thumb_func_start MOD44_02254B38
+MOD44_02254B38: ; 0x02254B38
+ ldr r3, _02254B40 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254B40: .word MOD20_02253794
+ thumb_func_end MOD44_02254B38
+
+ thumb_func_start MOD44_02254B44
+MOD44_02254B44: ; 0x02254B44
+ ldr r3, _02254B4C ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254B4C: .word MOD20_022537B8
+ thumb_func_end MOD44_02254B44
+
+ thumb_func_start MOD44_02254B50
+MOD44_02254B50: ; 0x02254B50
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD44_02254B50
+
+ thumb_func_start MOD44_02254B64
+MOD44_02254B64: ; 0x02254B64
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD20_022538A4
+ ldr r0, [r5, #4]
+ ldr r2, _02254BEC ; =0x02254C70
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x42
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x41
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254BF0 ; =0x04001000
+ ldr r0, _02254BF4 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD44_02254B50
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_02254BEC: .word 0x02254C70
+_02254BF0: .word 0x04001000
+_02254BF4: .word 0xFFFFE0FF
+ thumb_func_end MOD44_02254B64
+
+ thumb_func_start MOD44_02254BF8
+MOD44_02254BF8: ; 0x02254BF8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ ldr r0, [r0, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD44_02254B50
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD44_02254BF8
+
+ thumb_func_start MOD44_02254C14
+MOD44_02254C14: ; 0x02254C14
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r4, r0, #0
+ ldr r0, _02254C50 ; =0x00000663
+ bl MOD20_02252B28
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r1, [r4]
+ mov r2, #0x25
+ lsl r1, r1, #4
+ add r1, #0x38
+ ldr r0, [r5, #0x24]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xe
+ bl MOD20_02253F64
+ add r0, r6, #0
+ bl MOD44_02254B50
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254C50: .word 0x00000663
+ thumb_func_end MOD44_02254C14
+
+ .section .rodata
+ ; 0x02254C54
+ .incbin "baserom.nds", 0x295814, 0x68
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_44.SINIT_START
+ .global SDK_OVERLAY.MODULE_44.SINIT_END
+SDK_OVERLAY.MODULE_44.SINIT_START:
+ .word MOD44_02254840
+ .word 0
+SDK_OVERLAY.MODULE_44.SINIT_END:
diff --git a/arm9/modules/45/asm/module_45.s b/arm9/modules/45/asm/module_45.s
new file mode 100644
index 00000000..96762d44
--- /dev/null
+++ b/arm9/modules/45/asm/module_45.s
@@ -0,0 +1,1061 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD45_02254840
+MOD45_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD45_02254854
+ ldr r1, _02254850 ; =MOD45_02254A30
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD45_02254854
+_02254850: .word MOD45_02254A30
+ thumb_func_end MOD45_02254840
+
+ thumb_func_start MOD45_02254854
+MOD45_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0xb0
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD45_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD45_022549EC
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD45_022549EC
+ thumb_func_end MOD45_02254854
+
+ thumb_func_start MOD45_0225489C
+MOD45_0225489C: ; 0x0225489C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, sp, #4
+ add r6, r2, #0
+ bl FUN_020126B4
+ add r0, r4, #0
+ bl MOD20_02252C3C
+ add r1, r5, #0
+ add r1, #0x98
+ str r0, [r1]
+ add r0, r5, #4
+ add r1, r5, #0
+ add r2, sp, #4
+ bl MOD45_0225492C
+ add r0, r5, #0
+ ldrb r1, [r5, #0x12]
+ add r0, #0xa8
+ add r2, r6, #0
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xa8
+ ldr r1, [r0]
+ ldr r0, [r5, #8]
+ sub r0, r0, #1
+ add r1, r1, r0
+ add r0, r5, #0
+ add r0, #0xac
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x90
+ add r1, r5, #4
+ bl MOD45_02254B90
+ cmp r0, #0
+ beq _0225491C
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254924 ; =0x02255018
+ ldr r2, _02254928 ; =MOD45_022549E0
+ mov r1, #0x25
+ add r3, r5, #0
+ bl MOD20_02254130
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xa0
+ str r1, [r0]
+ add r5, #0x94
+ add sp, #0x14
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_0225491C:
+ mov r0, #0
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254924: .word 0x02255018
+_02254928: .word MOD45_022549E0
+ thumb_func_end MOD45_0225489C
+
+ thumb_func_start MOD45_0225492C
+MOD45_0225492C: ; 0x0225492C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ str r1, [sp]
+ str r0, [r6]
+ ldr r0, [r4, #8]
+ str r0, [r6, #8]
+ ldr r1, [r6]
+ ldr r0, _022549BC ; =0x022550AB
+ ldrb r0, [r0, r1]
+ str r0, [r6, #4]
+ ldr r0, [r6]
+ cmp r0, #2
+ bne _02254970
+ ldr r5, [r4]
+ mov r1, #0x19
+ add r0, r5, #0
+ lsl r1, r1, #4
+ bl _u32_div_f
+ cmp r1, #0
+ beq _0225496C
+ add r0, r5, #0
+ mov r1, #0x64
+ bl _u32_div_f
+ cmp r1, #0
+ beq _02254970
+ mov r0, #3
+ tst r0, r5
+ bne _02254970
+_0225496C:
+ mov r0, #0x1d
+ str r0, [r6, #4]
+_02254970:
+ ldr r0, [r4, #8]
+ mov r1, #7
+ sub r0, r0, #1
+ bl _u32_div_f
+ mov r2, #7
+ ldr r3, [r4, #0xc]
+ sub r0, r2, r1
+ add r7, r3, r0
+ cmp r7, #7
+ blo _02254990
+ add r0, r7, #0
+ add r1, r2, #0
+ bl _u32_div_f
+ add r7, r1, #0
+_02254990:
+ ldr r0, [r6, #4]
+ mov r4, #0
+ cmp r0, #0
+ bls _022549BA
+ add r5, r6, #0
+_0225499A:
+ ldr r0, [sp]
+ add r2, r4, #1
+ strh r2, [r5, #0xc]
+ add r0, #0x98
+ ldr r0, [r0]
+ ldr r1, [r6]
+ bl FUN_0204C064
+ strb r0, [r5, #0xf]
+ add r0, r7, r4
+ strb r0, [r5, #0xe]
+ ldr r0, [r6, #4]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blo _0225499A
+_022549BA:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022549BC: .word 0x022550AB
+ thumb_func_end MOD45_0225492C
+
+ thumb_func_start MOD45_022549C0
+MOD45_022549C0: ; 0x022549C0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl MOD20_02254198
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ bl MOD45_02254BCC
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD45_022549C0
+
+ thumb_func_start MOD45_022549E0
+MOD45_022549E0: ; 0x022549E0
+ add r2, r3, #0
+ add r2, #0xa4
+ str r0, [r2]
+ add r3, #0xa0
+ str r1, [r3]
+ bx lr
+ thumb_func_end MOD45_022549E0
+
+ thumb_func_start MOD45_022549EC
+MOD45_022549EC: ; 0x022549EC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254A2A
+ add r0, r4, #0
+ add r0, #0x94
+ add r1, #0x9c
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254A2C ; =0x0225500C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254A2A
+ add r0, r4, #0
+ bl MOD45_022549C0
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r4, #0x94
+ ldr r0, [r4]
+ bl MOD20_022529A0
+_02254A2A:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254A2C: .word 0x0225500C
+ thumb_func_end MOD45_022549EC
+
+ thumb_func_start MOD45_02254A30
+MOD45_02254A30: ; 0x02254A30
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD45_02254A30
+
+ thumb_func_start MOD45_02254A38
+MOD45_02254A38: ; 0x02254A38
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254A40
+ b _02254A42
+_02254A40:
+ mov r1, #2
+_02254A42:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD45_02254A38
+
+ thumb_func_start MOD45_02254A4C
+MOD45_02254A4C: ; 0x02254A4C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A5C
+ cmp r0, #1
+ beq _02254A70
+ b _02254A92
+_02254A5C:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD45_02254C7C
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A92
+_02254A70:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD45_02254CA0
+ cmp r0, #0
+ beq _02254A92
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD45_02254A38
+_02254A92:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254A4C
+
+ thumb_func_start MOD45_02254A98
+MOD45_02254A98: ; 0x02254A98
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r1, [r5, #2]
+ cmp r1, #0
+ beq _02254AAC
+ mov r1, #2
+ bl MOD45_02254A38
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02254AAC:
+ ldrb r0, [r5, #1]
+ cmp r0, #0
+ beq _02254AB8
+ cmp r0, #1
+ beq _02254B3E
+ b _02254B52
+_02254AB8:
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _02254B52
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xa8
+ ldr r2, [r0]
+ add r0, r5, #0
+ add r0, #0xa4
+ ldr r1, [r0]
+ cmp r1, r2
+ blo _02254B52
+ add r0, r5, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ cmp r1, r0
+ bhi _02254B52
+ add r0, r5, #0
+ add r0, #0x98
+ sub r4, r1, r2
+ ldr r0, [r0]
+ ldr r1, [r5, #4]
+ add r2, r4, #1
+ bl FUN_0204C064
+ cmp r0, #0
+ beq _02254B08
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ ldr r1, [r5, #4]
+ add r2, r4, #1
+ bl FUN_0204C02C
+ b _02254B16
+_02254B08:
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ ldr r1, [r5, #4]
+ add r2, r4, #1
+ bl FUN_0204BFF0
+_02254B16:
+ add r3, r5, #0
+ add r3, #0x13
+ lsl r2, r4, #2
+ ldrb r1, [r3, r2]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r3, r2]
+ add r0, r5, #0
+ add r0, #0x8c
+ str r4, [r0]
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ mov r1, #2
+ bl MOD45_02254C7C
+ ldrb r0, [r5, #1]
+ add r0, r0, #1
+ strb r0, [r5, #1]
+ b _02254B52
+_02254B3E:
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ mov r1, #2
+ bl MOD45_02254CA0
+ cmp r0, #0
+ beq _02254B52
+ mov r0, #0
+ strb r0, [r5, #1]
+_02254B52:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254A98
+
+ thumb_func_start MOD45_02254B58
+MOD45_02254B58: ; 0x02254B58
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254B68
+ cmp r0, #1
+ beq _02254B7C
+ b _02254B8C
+_02254B68:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ mov r1, #1
+ bl MOD45_02254C7C
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B8C
+_02254B7C:
+ add r4, #0x90
+ ldr r0, [r4]
+ bl MOD45_02254CAC
+ cmp r0, #0
+ beq _02254B8C
+ mov r0, #1
+ pop {r4, pc}
+_02254B8C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD45_02254B58
+
+ thumb_func_start MOD45_02254B90
+MOD45_02254B90: ; 0x02254B90
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254BC6
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD45_02254BE0
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254BC6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254B90
+
+ thumb_func_start MOD45_02254BCC
+MOD45_02254BCC: ; 0x02254BCC
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254BDC
+ bl MOD45_02254C64
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254BDC:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254BCC
+
+ thumb_func_start MOD45_02254BE0
+MOD45_02254BE0: ; 0x02254BE0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r5, r0, #0
+ add r4, r1, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x72
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x28
+ mov r1, #0xc
+ mov r2, #0x70
+ mov r3, #0x71
+ bl MOD20_02253FBC
+ add r2, r5, #0
+ ldr r0, [r5, #0x20]
+ ldr r1, _02254C2C ; =0x022550B8
+ add r2, #0x28
+ bl MOD20_02253E74
+ str r0, [r5, #0x24]
+ ldr r1, [r4, #8]
+ lsl r1, r1, #2
+ add r1, r4, r1
+ ldrb r1, [r1, #0xa]
+ bl MOD45_02254C30
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02254C2C: .word 0x022550B8
+ thumb_func_end MOD45_02254BE0
+
+ thumb_func_start MOD45_02254C30
+MOD45_02254C30: ; 0x02254C30
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #7
+ bl _u32_div_f
+ add r4, r1, #0
+ add r0, r6, #0
+ mov r1, #7
+ bl _u32_div_f
+ add r2, r0, #0
+ lsl r1, r4, #1
+ lsl r3, r2, #1
+ add r1, r4, r1
+ add r2, r2, r3
+ add r1, r1, #5
+ add r2, r2, #6
+ add r0, r5, #0
+ lsl r1, r1, #0xf
+ lsl r2, r2, #0xf
+ bl MOD20_02253F64
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254C30
+
+ thumb_func_start MOD45_02254C64
+MOD45_02254C64: ; 0x02254C64
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x24]
+ bl MOD20_02253F14
+ add r4, #0x28
+ add r0, r4, #0
+ bl MOD20_02254014
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254C64
+
+ thumb_func_start MOD45_02254C7C
+MOD45_02254C7C: ; 0x02254C7C
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254C9C ; =0x02255140
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254C9C: .word 0x02255140
+ thumb_func_end MOD45_02254C7C
+
+ thumb_func_start MOD45_02254CA0
+MOD45_02254CA0: ; 0x02254CA0
+ ldr r3, _02254CA8 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254CA8: .word MOD20_02253794
+ thumb_func_end MOD45_02254CA0
+
+ thumb_func_start MOD45_02254CAC
+MOD45_02254CAC: ; 0x02254CAC
+ ldr r3, _02254CB4 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254CB4: .word MOD20_022537B8
+ thumb_func_end MOD45_02254CAC
+
+ thumb_func_start MOD45_02254CB8
+MOD45_02254CB8: ; 0x02254CB8
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254CB8
+
+ thumb_func_start MOD45_02254CCC
+MOD45_02254CCC: ; 0x02254CCC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r4, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254D60 ; =0x022550FC
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #4]
+ ldr r2, _02254D64 ; =0x022550E0
+ mov r1, #7
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD45_02254DDC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD45_02254E74
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x6f
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r0, [r5, #4]
+ mov r1, #7
+ bl FUN_02017CD0
+ ldr r1, _02254D68 ; =0x04001000
+ ldr r0, _02254D6C ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #0xc
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r6, #0
+ bl MOD45_02254CB8
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02254D60: .word 0x022550FC
+_02254D64: .word 0x022550E0
+_02254D68: .word 0x04001000
+_02254D6C: .word 0xFFFFE0FF
+ thumb_func_end MOD45_02254CCC
+
+ thumb_func_start MOD45_02254D70
+MOD45_02254D70: ; 0x02254D70
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #7
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD45_02254CB8
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD45_02254D70
+
+ thumb_func_start MOD45_02254D94
+MOD45_02254D94: ; 0x02254D94
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD20_022538A4
+ add r2, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ lsl r3, r0, #2
+ add r0, r2, r3
+ ldrb r0, [r0, #0xf]
+ cmp r0, #0
+ beq _02254DBA
+ mov r1, #0x8f
+ b _02254DBC
+_02254DBA:
+ mov r1, #0x83
+_02254DBC:
+ add r2, r2, r3
+ ldrb r2, [r2, #0xe]
+ lsl r1, r1, #0x10
+ ldr r0, [r5, #4]
+ lsr r1, r1, #0x10
+ bl MOD45_02254E28
+ ldr r0, [r5, #4]
+ mov r1, #7
+ bl FUN_02017CD0
+ add r0, r4, #0
+ bl MOD45_02254CB8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254D94
+
+ thumb_func_start MOD45_02254DDC
+MOD45_02254DDC: ; 0x02254DDC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ add r6, r1, #0
+ ldr r2, [r7, #4]
+ mov r0, #0xc
+ mov r1, #0x6e
+ mov r3, #7
+ bl FUN_020068C8
+ ldr r0, [r6, #4]
+ mov r4, #0
+ cmp r0, #0
+ bls _02254E22
+ add r5, r6, #0
+_02254E08:
+ ldrb r0, [r5, #0xf]
+ cmp r0, #0
+ beq _02254E18
+ ldrb r2, [r5, #0xe]
+ ldr r0, [r7, #4]
+ mov r1, #0x8f
+ bl MOD45_02254E28
+_02254E18:
+ ldr r0, [r6, #4]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blo _02254E08
+_02254E22:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254DDC
+
+ thumb_func_start MOD45_02254E28
+MOD45_02254E28: ; 0x02254E28
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r2, #0
+ add r5, r0, #0
+ add r6, r1, #0
+ add r0, r7, #0
+ mov r1, #7
+ bl _u32_div_f
+ add r4, r1, #0
+ add r0, r7, #0
+ mov r1, #7
+ bl _u32_div_f
+ lsl r1, r0, #1
+ add r0, r0, r1
+ add r0, r0, #5
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ lsl r3, r4, #1
+ str r0, [sp]
+ mov r0, #2
+ add r3, r4, r3
+ str r0, [sp, #4]
+ add r3, r3, #4
+ str r0, [sp, #8]
+ mov r0, #0
+ lsl r3, r3, #0x18
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ mov r1, #7
+ add r2, r6, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD45_02254E28
+
+ thumb_func_start MOD45_02254E74
+MOD45_02254E74: ; 0x02254E74
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r3, #0
+ add r7, r0, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ add r6, r1, #0
+ ldr r0, [r7, #4]
+ mov r1, #6
+ mov r2, #0x82
+ bl FUN_02018540
+ ldr r0, [r7, #4]
+ ldr r1, [r6]
+ bl MOD45_02254EBC
+ ldr r0, [r6, #4]
+ mov r4, #0
+ cmp r0, #0
+ bls _02254EB8
+ add r5, r6, #0
+_02254EA4:
+ ldrb r2, [r5, #0xe]
+ ldr r0, [r7, #4]
+ add r1, r4, #1
+ bl MOD45_02254F14
+ ldr r0, [r6, #4]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blo _02254EA4
+_02254EB8:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD45_02254E74
+
+ thumb_func_start MOD45_02254EBC
+MOD45_02254EBC: ; 0x02254EBC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ ldr r0, _02254F10 ; =0x022550C6
+ lsl r1, r1, #1
+ ldrh r4, [r0, r1]
+ mov r0, #0
+ str r0, [sp, #0x10]
+_02254ECC:
+ ldr r0, [sp, #0x10]
+ mov r5, #0
+ add r0, r0, #2
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+_02254ED6:
+ add r3, r5, #0
+ add r2, r4, r5
+ add r3, #0xc
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x18
+ str r6, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ mov r1, #6
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r5, r5, #1
+ cmp r5, #4
+ blt _02254ED6
+ ldr r0, [sp, #0x10]
+ add r4, #0xc
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #2
+ blt _02254ECC
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254F10: .word 0x022550C6
+ thumb_func_end MOD45_02254EBC
+
+ thumb_func_start MOD45_02254F14
+MOD45_02254F14: ; 0x02254F14
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r2, #0
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, r5, #0
+ mov r1, #7
+ bl _u32_div_f
+ add r6, r1, #0
+ lsl r0, r6, #1
+ add r0, r6, r0
+ add r4, r0, #4
+ add r0, r5, #0
+ mov r1, #7
+ bl _u32_div_f
+ lsl r1, r0, #1
+ add r0, r0, r1
+ add r5, r0, #5
+ cmp r6, #0
+ bne _02254F44
+ mov r6, #1
+ b _02254F46
+_02254F44:
+ mov r6, #0
+_02254F46:
+ ldr r0, [sp, #0x14]
+ mov r1, #0xa
+ bl _u32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #0x14]
+ mov r1, #0xa
+ bl _u32_div_f
+ str r1, [sp, #0x18]
+ cmp r7, #0
+ beq _02254FAE
+ mov r0, #0x14
+ add r2, r6, #0
+ mul r2, r0
+ ldr r0, _02255008 ; =0x02255118
+ lsl r1, r7, #1
+ add r0, r0, r2
+ ldrh r7, [r1, r0]
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r3, r4, #0x18
+ ldr r0, [sp, #0x10]
+ mov r1, #6
+ add r2, r7, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r7, #0xc
+ str r0, [sp, #0xc]
+ lsl r2, r7, #0x10
+ lsl r3, r4, #0x18
+ ldr r0, [sp, #0x10]
+ mov r1, #6
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+_02254FAE:
+ mov r0, #0x14
+ add r3, r6, #0
+ mul r3, r0
+ ldr r0, [sp, #0x18]
+ ldr r2, _02255008 ; =0x02255118
+ lsl r1, r0, #1
+ add r0, r2, r3
+ ldrh r6, [r1, r0]
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r3, r4, #1
+ str r0, [sp, #0xc]
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ mov r1, #6
+ add r2, r6, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r6, #0xc
+ add r3, r4, #1
+ str r0, [sp, #0xc]
+ lsl r2, r6, #0x10
+ lsl r3, r3, #0x18
+ ldr r0, [sp, #0x10]
+ mov r1, #6
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02255008: .word 0x02255118
+ thumb_func_end MOD45_02254F14
+
+ .section .rodata
+ ; 0x0225500C
+ .incbin "baserom.nds", 0x2961CC, 0x164
+
+ .section .sinit
+ .word MOD45_02254840
diff --git a/arm9/modules/46/asm/module_46.s b/arm9/modules/46/asm/module_46.s
new file mode 100644
index 00000000..600e0c5b
--- /dev/null
+++ b/arm9/modules/46/asm/module_46.s
@@ -0,0 +1,399 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD46_02254840
+MOD46_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD46_02254854
+ ldr r1, _02254850 ; =MOD46_02254908
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD46_02254854
+_02254850: .word MOD46_02254908
+ thumb_func_end MOD46_02254840
+
+ thumb_func_start MOD46_02254854
+MOD46_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x10
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD46_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD46_022548D4
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD46_022548D4
+ thumb_func_end MOD46_02254854
+
+ thumb_func_start MOD46_0225489C
+MOD46_0225489C: ; 0x0225489C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #8
+ add r1, r5, #4
+ bl MOD46_022549AC
+ cmp r0, #0
+ beq _022548BC
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022548BC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD46_0225489C
+
+ thumb_func_start MOD46_022548C0
+MOD46_022548C0: ; 0x022548C0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD46_022549DC
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD46_022548C0
+
+ thumb_func_start MOD46_022548D4
+MOD46_022548D4: ; 0x022548D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhs _02254900
+ lsl r2, r1, #2
+ ldr r1, _02254904 ; =0x02254AF4
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254900
+ add r0, r4, #0
+ bl MOD46_022548C0
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_02254900:
+ pop {r3, r4, r5, pc}
+ nop
+_02254904: .word 0x02254AF4
+ thumb_func_end MOD46_022548D4
+
+ thumb_func_start MOD46_02254908
+MOD46_02254908: ; 0x02254908
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD46_02254908
+
+ thumb_func_start MOD46_02254910
+MOD46_02254910: ; 0x02254910
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254918
+ b _0225491A
+_02254918:
+ mov r1, #2
+_0225491A:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD46_02254910
+
+ thumb_func_start MOD46_02254924
+MOD46_02254924: ; 0x02254924
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254934
+ cmp r0, #1
+ beq _02254944
+ b _0225495E
+_02254934:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD46_022549E8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _0225495E
+_02254944:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD46_02254A0C
+ cmp r0, #0
+ beq _0225495E
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD46_02254910
+_0225495E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD46_02254924
+
+ thumb_func_start MOD46_02254964
+MOD46_02254964: ; 0x02254964
+ push {r3, lr}
+ ldrb r1, [r0, #2]
+ cmp r1, #0
+ beq _02254972
+ mov r1, #2
+ bl MOD46_02254910
+_02254972:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD46_02254964
+
+ thumb_func_start MOD46_02254978
+MOD46_02254978: ; 0x02254978
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254988
+ cmp r0, #1
+ beq _02254998
+ b _022549A6
+_02254988:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD46_022549E8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549A6
+_02254998:
+ ldr r0, [r4, #8]
+ bl MOD46_02254A18
+ cmp r0, #0
+ beq _022549A6
+ mov r0, #1
+ pop {r4, pc}
+_022549A6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD46_02254978
+
+ thumb_func_start MOD46_022549AC
+MOD46_022549AC: ; 0x022549AC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x30
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _022549D8
+ add r0, #8
+ mov r1, #8
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ cmp r0, #0
+ beq _022549D8
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022549D8:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD46_022549AC
+
+ thumb_func_start MOD46_022549DC
+MOD46_022549DC: ; 0x022549DC
+ push {r3, lr}
+ cmp r0, #0
+ beq _022549E6
+ bl FUN_02016A18
+_022549E6:
+ pop {r3, pc}
+ thumb_func_end MOD46_022549DC
+
+ thumb_func_start MOD46_022549E8
+MOD46_022549E8: ; 0x022549E8
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254A08 ; =0x02254B1C
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254A08: .word 0x02254B1C
+ thumb_func_end MOD46_022549E8
+
+ thumb_func_start MOD46_02254A0C
+MOD46_02254A0C: ; 0x02254A0C
+ ldr r3, _02254A14 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254A14: .word MOD20_02253794
+ thumb_func_end MOD46_02254A0C
+
+ thumb_func_start MOD46_02254A18
+MOD46_02254A18: ; 0x02254A18
+ ldr r3, _02254A20 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254A20: .word MOD20_022537B8
+ thumb_func_end MOD46_02254A18
+
+ thumb_func_start MOD46_02254A24
+MOD46_02254A24: ; 0x02254A24
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD46_02254A24
+
+ thumb_func_start MOD46_02254A38
+MOD46_02254A38: ; 0x02254A38
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254ACC ; =0x02254B00
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #8
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r3, #6
+ bl FUN_0200687C
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #4]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mov r1, #9
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ ldr r0, [r5, #4]
+ mov r1, #0x1a
+ mov r2, #6
+ bl MOD20_02253AA4
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254AD0 ; =0x04001000
+ ldr r0, _02254AD4 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD46_02254A24
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254ACC: .word 0x02254B00
+_02254AD0: .word 0x04001000
+_02254AD4: .word 0xFFFFE0FF
+ thumb_func_end MOD46_02254A38
+
+ thumb_func_start MOD46_02254AD8
+MOD46_02254AD8: ; 0x02254AD8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ ldr r0, [r0, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD46_02254A24
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD46_02254AD8
+
+ .section .rodata
+ ; 0x02254AF4
+ .incbin "baserom.nds", 0x2966b4, 0x4c
+
+ .section .sinit
+ .word MOD46_02254840
diff --git a/arm9/modules/47/asm/module_47.s b/arm9/modules/47/asm/module_47.s
new file mode 100644
index 00000000..c10b696b
--- /dev/null
+++ b/arm9/modules/47/asm/module_47.s
@@ -0,0 +1,1497 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD47_02254840
+MOD47_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD47_02254854
+ ldr r1, _02254850 ; =MOD47_0225491C
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD47_02254854
+_02254850: .word MOD47_0225491C
+ thumb_func_end MOD47_02254840
+
+ thumb_func_start MOD47_02254854
+MOD47_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x24
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD47_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD47_022548E0
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD47_022548E0
+ thumb_func_end MOD47_02254854
+
+ thumb_func_start MOD47_0225489C
+MOD47_0225489C: ; 0x0225489C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0x14
+ add r1, r5, #4
+ bl MOD47_02254D14
+ cmp r0, #0
+ beq _022548C8
+ mov r1, #0
+ strb r1, [r5]
+ strb r1, [r5, #1]
+ add r0, r5, #0
+ strb r1, [r5, #2]
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x21
+ strb r1, [r0]
+ str r4, [r5, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022548C8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD47_0225489C
+
+ thumb_func_start MOD47_022548CC
+MOD47_022548CC: ; 0x022548CC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl MOD47_02254D6C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_022548CC
+
+ thumb_func_start MOD47_022548E0
+MOD47_022548E0: ; 0x022548E0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #6
+ bhs _02254914
+ add r0, r4, #0
+ bl MOD47_02254C6C
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254918 ; =0x022553B8
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254914
+ add r0, r4, #0
+ bl MOD47_022548CC
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x18]
+ bl MOD20_022529A0
+_02254914:
+ pop {r3, r4, r5, pc}
+ nop
+_02254918: .word 0x022553B8
+ thumb_func_end MOD47_022548E0
+
+ thumb_func_start MOD47_0225491C
+MOD47_0225491C: ; 0x0225491C
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD47_0225491C
+
+ thumb_func_start MOD47_02254924
+MOD47_02254924: ; 0x02254924
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _0225492C
+ b _0225492E
+_0225492C:
+ mov r1, #5
+_0225492E:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD47_02254924
+
+ thumb_func_start MOD47_02254938
+MOD47_02254938: ; 0x02254938
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254948
+ cmp r0, #1
+ beq _02254958
+ b _02254972
+_02254948:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl MOD47_02254E24
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254972
+_02254958:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl MOD47_02254E48
+ cmp r0, #0
+ beq _02254972
+ ldr r0, [r4, #0x18]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD47_02254924
+_02254972:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254938
+
+ thumb_func_start MOD47_02254978
+MOD47_02254978: ; 0x02254978
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _0225498C
+ mov r1, #5
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0225498C:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ bne _022549DA
+ bl MOD47_02254BD4
+ cmp r0, #0
+ beq _022549DA
+ add r0, r4, #0
+ bl MOD47_02254D04
+ cmp r0, #0
+ beq _022549D4
+ ldr r0, [r4, #0x18]
+ bl MOD20_02252C38
+ add r5, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ bl MOD47_02254E24
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02034984
+ cmp r0, #0
+ beq _022549CA
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD47_02254924
+ b _022549DA
+_022549CA:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD47_02254924
+ b _022549DA
+_022549D4:
+ ldr r0, _022549E0 ; =0x0000066E
+ bl MOD20_02252B28
+_022549DA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022549E0: .word 0x0000066E
+ thumb_func_end MOD47_02254978
+
+ thumb_func_start MOD47_022549E4
+MOD47_022549E4: ; 0x022549E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549F8
+ mov r1, #5
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_022549F8:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _02254A08
+ cmp r1, #1
+ beq _02254A18
+ cmp r1, #2
+ beq _02254A60
+ b _02254AAC
+_02254A08:
+ bl MOD47_02254CCC
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254AAC
+_02254A18:
+ bl MOD47_02254AB0
+ cmp r0, #0
+ beq _02254A2C
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_02254A2C:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x3c
+ bhs _02254A36
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_02254A36:
+ add r0, r4, #0
+ bl MOD47_02254CEC
+ cmp r0, #0
+ beq _02254AAC
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x3c
+ blo _02254AAC
+ add r0, r4, #0
+ bl MOD47_02254C1C
+ ldr r0, [r4, #0x14]
+ mov r1, #6
+ bl MOD47_02254E24
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254AAC
+_02254A60:
+ bl MOD47_02254AB0
+ cmp r0, #0
+ bne _02254A72
+ add r0, r4, #0
+ bl MOD47_02254BD4
+ cmp r0, #0
+ beq _02254A8C
+_02254A72:
+ add r0, r4, #0
+ bl MOD47_02254CFC
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl MOD47_02254E24
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_02254A8C:
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ cmp r0, #0x1e
+ blo _02254AAC
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD47_02254C1C
+ cmp r0, #0
+ beq _02254AAC
+ ldr r0, [r4, #0x14]
+ mov r1, #6
+ bl MOD47_02254E24
+_02254AAC:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD47_022549E4
+
+ thumb_func_start MOD47_02254AB0
+MOD47_02254AB0: ; 0x02254AB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ bl MOD20_02252C08
+ cmp r0, #0
+ beq _02254AC2
+ mov r0, #1
+ pop {r4, pc}
+_02254AC2:
+ ldr r0, [r4, #0x18]
+ bl MOD20_02252C30
+ cmp r0, #0
+ beq _02254AD0
+ mov r0, #1
+ pop {r4, pc}
+_02254AD0:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD47_02254AB0
+
+ thumb_func_start MOD47_02254AD4
+MOD47_02254AD4: ; 0x02254AD4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254AE8
+ mov r1, #5
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_02254AE8:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _02254AF8
+ cmp r1, #1
+ beq _02254B02
+ cmp r1, #2
+ beq _02254B1C
+ b _02254B34
+_02254AF8:
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+_02254B02:
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ cmp r0, #0x3c
+ blo _02254B34
+ ldr r0, [r4, #0x14]
+ mov r1, #4
+ bl MOD47_02254E24
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B34
+_02254B1C:
+ bl MOD47_02254BD4
+ cmp r0, #0
+ beq _02254B34
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl MOD47_02254E24
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD47_02254924
+_02254B34:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD47_02254AD4
+
+ thumb_func_start MOD47_02254B38
+MOD47_02254B38: ; 0x02254B38
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254B4C
+ mov r1, #5
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_02254B4C:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _02254B58
+ cmp r1, #1
+ beq _02254B6C
+ b _02254B84
+_02254B58:
+ bl MOD47_02254CFC
+ ldr r0, [r4, #0x14]
+ mov r1, #5
+ bl MOD47_02254E24
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B84
+_02254B6C:
+ bl MOD47_02254BD4
+ cmp r0, #0
+ beq _02254B84
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl MOD47_02254E24
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD47_02254924
+_02254B84:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD47_02254B38
+
+ thumb_func_start MOD47_02254B88
+MOD47_02254B88: ; 0x02254B88
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _02254B9C
+ cmp r1, #1
+ beq _02254BA6
+ cmp r1, #2
+ beq _02254BC0
+ b _02254BCE
+_02254B9C:
+ bl MOD47_02254CFC
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+_02254BA6:
+ add r0, r4, #0
+ bl MOD47_02254D04
+ cmp r0, #0
+ beq _02254BCE
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl MOD47_02254E24
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254BCE
+_02254BC0:
+ ldr r0, [r4, #0x14]
+ bl MOD47_02254E54
+ cmp r0, #0
+ beq _02254BCE
+ mov r0, #1
+ pop {r4, pc}
+_02254BCE:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254B88
+
+ thumb_func_start MOD47_02254BD4
+MOD47_02254BD4: ; 0x02254BD4
+ push {r3, lr}
+ sub sp, #8
+ ldr r0, [r0, #0x18]
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02254C14
+ add r0, sp, #4
+ add r1, sp, #0
+ bl FUN_02020ACC
+ cmp r0, #0
+ beq _02254C14
+ ldr r0, [sp, #4]
+ sub r0, #0x10
+ cmp r0, #0xbf
+ bhs _02254BFA
+ mov r1, #1
+ b _02254BFC
+_02254BFA:
+ mov r1, #0
+_02254BFC:
+ ldr r0, [sp]
+ sub r0, #0x10
+ cmp r0, #0x9f
+ bhs _02254C08
+ mov r0, #1
+ b _02254C0A
+_02254C08:
+ mov r0, #0
+_02254C0A:
+ tst r0, r1
+ beq _02254C14
+ add sp, #8
+ mov r0, #1
+ pop {r3, pc}
+_02254C14:
+ mov r0, #0
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254BD4
+
+ thumb_func_start MOD47_02254C1C
+MOD47_02254C1C: ; 0x02254C1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ mov r0, #0
+ ldr r5, _02254C68 ; =0x022553D0
+ str r0, [sp]
+ str r0, [sp, #4]
+_02254C2A:
+ ldr r0, [r5, #4]
+ mov r4, #0
+ add r6, r4, #0
+ cmp r0, #0
+ bls _02254C46
+_02254C34:
+ ldr r0, [r5]
+ ldrb r0, [r0, r4]
+ bl FUN_0202F0DC
+ add r6, r6, r0
+ ldr r0, [r5, #4]
+ add r4, r4, #1
+ cmp r4, r0
+ blo _02254C34
+_02254C46:
+ ldr r0, [r7, #4]
+ cmp r6, r0
+ beq _02254C52
+ mov r0, #1
+ str r6, [r7, #4]
+ str r0, [sp]
+_02254C52:
+ ldr r0, [sp, #4]
+ add r5, #8
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #4]
+ cmp r0, #4
+ blo _02254C2A
+ ldr r0, [sp]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254C68: .word 0x022553D0
+ thumb_func_end MOD47_02254C1C
+
+ thumb_func_start MOD47_02254C6C
+MOD47_02254C6C: ; 0x02254C6C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #3
+ bhi _02254CC8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254C84: ; jump table
+ .short _02254CC8 - _02254C84 - 2 ; case 0
+ .short _02254C8C - _02254C84 - 2 ; case 1
+ .short _02254C9C - _02254C84 - 2 ; case 2
+ .short _02254CBA - _02254C84 - 2 ; case 3
+_02254C8C:
+ bl FUN_02032C28
+ cmp r0, #0
+ beq _02254CC8
+ mov r0, #2
+ add r4, #0x20
+ strb r0, [r4]
+ pop {r4, pc}
+_02254C9C:
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02254CC8
+ bl FUN_02032C0C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x21
+ strb r1, [r0]
+ mov r0, #3
+ add r4, #0x20
+ strb r0, [r4]
+ pop {r4, pc}
+_02254CBA:
+ bl FUN_02030F40
+ cmp r0, #0
+ bne _02254CC8
+ mov r0, #0
+ add r4, #0x20
+ strb r0, [r4]
+_02254CC8:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254C6C
+
+ thumb_func_start MOD47_02254CCC
+MOD47_02254CCC: ; 0x02254CCC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02254CE8
+ ldr r0, [r4, #0x18]
+ bl MOD20_02252C40
+ bl FUN_02032BD0
+ mov r0, #1
+ add r4, #0x20
+ strb r0, [r4]
+_02254CE8:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254CCC
+
+ thumb_func_start MOD47_02254CEC
+MOD47_02254CEC: ; 0x02254CEC
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _02254CF8
+ mov r0, #1
+ bx lr
+_02254CF8:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD47_02254CEC
+
+ thumb_func_start MOD47_02254CFC
+MOD47_02254CFC: ; 0x02254CFC
+ mov r1, #1
+ add r0, #0x21
+ strb r1, [r0]
+ bx lr
+ thumb_func_end MOD47_02254CFC
+
+ thumb_func_start MOD47_02254D04
+MOD47_02254D04: ; 0x02254D04
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02254D10
+ mov r0, #1
+ bx lr
+_02254D10:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD47_02254D04
+
+ thumb_func_start MOD47_02254D14
+MOD47_02254D14: ; 0x02254D14
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x60
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254D62
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x30]
+ ldr r2, _02254D68 ; =0x0000019A
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #8
+ bl FUN_0200A86C
+ str r0, [r4, #0x58]
+ mov r0, #0x60
+ mov r1, #8
+ bl FUN_020219F4
+ str r0, [r4, #0x5c]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD47_02254D8C
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254D62:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02254D68: .word 0x0000019A
+ thumb_func_end MOD47_02254D14
+
+ thumb_func_start MOD47_02254D6C
+MOD47_02254D6C: ; 0x02254D6C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254D8A
+ ldr r0, [r4, #0x5c]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x58]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl MOD47_02254DFC
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254D8A:
+ pop {r4, pc}
+ thumb_func_end MOD47_02254D6C
+
+ thumb_func_start MOD47_02254D8C
+MOD47_02254D8C: ; 0x02254D8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r6, r0, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x63
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r6, #0
+ add r0, #0x44
+ mov r1, #0xc
+ mov r2, #0x61
+ mov r3, #0x62
+ bl MOD20_02253FBC
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ add r0, #0x44
+ ldr r4, _02254DF8 ; =0x02255410
+ mov r7, #0
+ add r5, r6, #0
+ str r0, [sp, #0xc]
+_02254DC6:
+ ldr r0, [r6, #0x30]
+ ldr r2, [sp, #0xc]
+ add r1, r4, #0
+ bl MOD20_02253E74
+ str r0, [r5, #0x34]
+ add r7, r7, #1
+ add r4, #0x10
+ add r5, r5, #4
+ cmp r7, #4
+ blt _02254DC6
+ ldr r0, [r6, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r6, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r6, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254DF8: .word 0x02255410
+ thumb_func_end MOD47_02254D8C
+
+ thumb_func_start MOD47_02254DFC
+MOD47_02254DFC: ; 0x02254DFC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02254E04:
+ ldr r1, [r5, #0x34]
+ cmp r1, #0
+ beq _02254E10
+ ldr r0, [r6, #0x30]
+ bl MOD20_02253F14
+_02254E10:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02254E04
+ add r6, #0x44
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254DFC
+
+ thumb_func_start MOD47_02254E24
+MOD47_02254E24: ; 0x02254E24
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254E44 ; =0x02255450
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254E44: .word 0x02255450
+ thumb_func_end MOD47_02254E24
+
+ thumb_func_start MOD47_02254E48
+MOD47_02254E48: ; 0x02254E48
+ ldr r3, _02254E50 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254E50: .word MOD20_02253794
+ thumb_func_end MOD47_02254E48
+
+ thumb_func_start MOD47_02254E54
+MOD47_02254E54: ; 0x02254E54
+ ldr r3, _02254E5C ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254E5C: .word MOD20_022537B8
+ thumb_func_end MOD47_02254E54
+
+ thumb_func_start MOD47_02254E60
+MOD47_02254E60: ; 0x02254E60
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254E60
+
+ thumb_func_start MOD47_02254E74
+MOD47_02254E74: ; 0x02254E74
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254F28 ; =0x022553F4
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x60
+ mov r3, #6
+ bl FUN_0200687C
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x5f
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ mov r3, #2
+ add r1, r5, #0
+ str r3, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0xb
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, #0x20
+ mov r2, #6
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x20
+ bl FUN_02019270
+ add r0, r5, #0
+ bl MOD47_022550FC
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254F2C ; =0x04001000
+ ldr r0, _02254F30 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x14]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r6, #0
+ bl MOD47_02254E60
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254F28: .word 0x022553F4
+_02254F2C: .word 0x04001000
+_02254F30: .word 0xFFFFE0FF
+ thumb_func_end MOD47_02254E74
+
+ thumb_func_start MOD47_02254F34
+MOD47_02254F34: ; 0x02254F34
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, #0x20
+ bl FUN_02019178
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254F34
+
+ thumb_func_start MOD47_02254F58
+MOD47_02254F58: ; 0x02254F58
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ add r0, r4, #0
+ bl MOD47_022550FC
+ ldr r0, _02254F98 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254F98: .word 0x00000663
+ thumb_func_end MOD47_02254F58
+
+ thumb_func_start MOD47_02254F9C
+MOD47_02254F9C: ; 0x02254F9C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ add r0, r4, #0
+ bl MOD47_02255184
+ ldr r0, _02254FE4 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254FE4: .word 0x00000663
+ thumb_func_end MOD47_02254F9C
+
+ thumb_func_start MOD47_02254FE8
+MOD47_02254FE8: ; 0x02254FE8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #2
+ bl MOD20_02253F28
+ add r0, r4, #0
+ bl MOD47_022551D8
+ ldr r0, _02255030 ; =0x0000066E
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02255030: .word 0x0000066E
+ thumb_func_end MOD47_02254FE8
+
+ thumb_func_start MOD47_02255034
+MOD47_02255034: ; 0x02255034
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #2
+ bl MOD20_02253F28
+ add r0, r4, #0
+ bl MOD47_02255250
+ ldr r0, _0225507C ; =0x0000066E
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225507C: .word 0x0000066E
+ thumb_func_end MOD47_02255034
+
+ thumb_func_start MOD47_02255080
+MOD47_02255080: ; 0x02255080
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r6, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl MOD20_02253F28
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD47_022552D8
+ ldr r0, _022550D4 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r4, r5, r6, pc}
+ nop
+_022550D4: .word 0x00000663
+ thumb_func_end MOD47_02255080
+
+ thumb_func_start MOD47_022550D8
+MOD47_022550D8: ; 0x022550D8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD47_022552D8
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD47_022550D8
+
+ thumb_func_start MOD47_022550FC
+MOD47_022550FC: ; 0x022550FC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255180 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #0xa
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #0x38
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255180 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ add r4, #0x20
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02255180: .word 0x00010104
+ thumb_func_end MOD47_022550FC
+
+ thumb_func_start MOD47_02255184
+MOD47_02255184: ; 0x02255184
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002F08
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022551D4 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ add r4, #0x20
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_022551D4: .word 0x00010104
+ thumb_func_end MOD47_02255184
+
+ thumb_func_start MOD47_022551D8
+MOD47_022551D8: ; 0x022551D8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #2
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0225524C ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #3
+ bl FUN_0200A8E0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0225524C ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ mov r3, #0x10
+ bl FUN_0201BDE0
+ add r4, #0x20
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0225524C: .word 0x00010104
+ thumb_func_end MOD47_022551D8
+
+ thumb_func_start MOD47_02255250
+MOD47_02255250: ; 0x02255250
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #2
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022552D4 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #4
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002F08
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022552D4 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ add r4, #0x20
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_022552D4: .word 0x00010104
+ thumb_func_end MOD47_02255250
+
+ thumb_func_start MOD47_022552D8
+MOD47_022552D8: ; 0x022552D8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r7, r1, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r5, #0x58]
+ ldr r2, [r5, #0x5c]
+ mov r1, #5
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r5, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255398 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r5, #0
+ ldr r2, [r5, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ mov r0, #0
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x20
+ ldr r6, _0225539C ; =0x022553F0
+ mov r4, #0x20
+ str r0, [sp, #0x14]
+_0225532C:
+ ldrb r1, [r6]
+ ldr r0, [r5, #0x58]
+ ldr r2, [r5, #0x5c]
+ bl FUN_0200A8E0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255398 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ ldr r2, [r5, #0x5c]
+ mov r3, #8
+ bl FUN_0201BDE0
+ mov r0, #1
+ str r0, [sp]
+ mov r2, #2
+ ldr r0, [r5, #0x5c]
+ ldr r1, [r7]
+ add r3, r2, #0
+ bl FUN_02021B04
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255398 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ ldr r2, [r5, #0x5c]
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r0, r0, #1
+ add r4, #0x10
+ add r7, r7, #4
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ blt _0225532C
+ add r5, #0x20
+ add r0, r5, #0
+ bl FUN_02019548
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255398: .word 0x00010104
+_0225539C: .word 0x022553F0
+ thumb_func_end MOD47_022552D8
+
+ .section .rodata
+ ; 0x022553A0
+ .incbin "baserom.nds", 0x297360, 0x11C
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_47.SINIT_START
+ .global SDK_OVERLAY.MODULE_47.SINIT_END
+SDK_OVERLAY.MODULE_47.SINIT_START:
+ .word MOD47_02254840
+ .word 0
+SDK_OVERLAY.MODULE_47.SINIT_END:
diff --git a/arm9/modules/48/asm/module_48.s b/arm9/modules/48/asm/module_48.s
new file mode 100644
index 00000000..bcb3b7b4
--- /dev/null
+++ b/arm9/modules/48/asm/module_48.s
@@ -0,0 +1,960 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD48_02254840
+MOD48_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD48_02254854
+ ldr r1, _02254850 ; =MOD48_0225498C
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD48_02254854
+_02254850: .word MOD48_0225498C
+ thumb_func_end MOD48_02254840
+
+ thumb_func_start MOD48_02254854
+MOD48_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x40
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD48_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD48_02254950
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD48_02254950
+ thumb_func_end MOD48_02254854
+
+ thumb_func_start MOD48_0225489C
+MOD48_0225489C: ; 0x0225489C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ add r0, r1, #0
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ bl MOD20_02252C38
+ add r6, r0, #0
+ bl MOD06_02245824
+ str r0, [r7, #8]
+ cmp r0, #0
+ beq _022548C0
+ add r0, r6, #0
+ bl MOD06_0224582C
+ b _022548C2
+_022548C0:
+ mov r0, #0
+_022548C2:
+ str r0, [r7, #4]
+ mov r4, #0
+ add r5, r7, #0
+_022548C8:
+ lsl r1, r4, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD06_022457F8
+ lsl r1, r4, #0x18
+ str r0, [r5, #0x18]
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD06_022457CC
+ str r0, [r5, #0xc]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _022548C8
+ add r0, r6, #0
+ bl MOD06_022457A8
+ str r0, [r7, #0x24]
+ add r0, r7, #0
+ ldr r2, [sp, #8]
+ add r0, #0x2c
+ add r1, r7, #4
+ bl MOD48_02254AA0
+ cmp r0, #0
+ beq _0225492A
+ mov r0, #0
+ strb r0, [r7]
+ strb r0, [r7, #1]
+ strb r0, [r7, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254930 ; =0x02254F60
+ ldr r2, _02254934 ; =MOD48_02254994
+ mov r1, #3
+ add r3, r7, #0
+ bl MOD20_02254130
+ str r0, [r7, #0x34]
+ mov r0, #0
+ str r0, [r7, #0x38]
+ str r0, [r7, #0x3c]
+ ldr r0, [sp, #4]
+ add sp, #0xc
+ str r0, [r7, #0x30]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_0225492A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254930: .word 0x02254F60
+_02254934: .word MOD48_02254994
+ thumb_func_end MOD48_0225489C
+
+ thumb_func_start MOD48_02254938
+MOD48_02254938: ; 0x02254938
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ bl MOD20_02254198
+ ldr r0, [r4, #0x2c]
+ bl MOD48_02254AD4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD48_02254938
+
+ thumb_func_start MOD48_02254950
+MOD48_02254950: ; 0x02254950
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254986
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #0x34]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254988 ; =0x02254F6C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254986
+ add r0, r4, #0
+ bl MOD48_02254938
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x30]
+ bl MOD20_022529A0
+_02254986:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254988: .word 0x02254F6C
+ thumb_func_end MOD48_02254950
+
+ thumb_func_start MOD48_0225498C
+MOD48_0225498C: ; 0x0225498C
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD48_0225498C
+
+ thumb_func_start MOD48_02254994
+MOD48_02254994: ; 0x02254994
+ str r0, [r3, #0x3c]
+ str r1, [r3, #0x38]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD48_02254994
+
+ thumb_func_start MOD48_0225499C
+MOD48_0225499C: ; 0x0225499C
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _022549A4
+ b _022549A6
+_022549A4:
+ mov r1, #2
+_022549A6:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD48_0225499C
+
+ thumb_func_start MOD48_022549B0
+MOD48_022549B0: ; 0x022549B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549C0
+ cmp r0, #1
+ beq _022549D0
+ b _022549EA
+_022549C0:
+ ldr r0, [r4, #0x2c]
+ mov r1, #0
+ bl MOD48_02254AE0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549EA
+_022549D0:
+ ldr r0, [r4, #0x2c]
+ mov r1, #0
+ bl MOD48_02254B04
+ cmp r0, #0
+ beq _022549EA
+ ldr r0, [r4, #0x30]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD48_0225499C
+_022549EA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD48_022549B0
+
+ thumb_func_start MOD48_022549F0
+MOD48_022549F0: ; 0x022549F0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254A04
+ mov r1, #2
+ bl MOD48_0225499C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02254A04:
+ ldr r0, [r4, #0x30]
+ bl MOD20_02252C38
+ add r5, r0, #0
+ bl MOD06_02245824
+ str r0, [r4, #8]
+ cmp r0, #0
+ bne _02254A1A
+ mov r0, #0
+ b _02254A20
+_02254A1A:
+ add r0, r5, #0
+ bl MOD06_0224582C
+_02254A20:
+ ldr r1, [r4, #4]
+ cmp r0, r1
+ beq _02254A34
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x2c]
+ mov r1, #2
+ bl MOD48_02254AE0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02254A34:
+ ldr r0, [r4, #0x2c]
+ mov r1, #3
+ bl MOD48_02254B04
+ cmp r0, #0
+ beq _02254A66
+ ldr r0, [r4, #0x38]
+ cmp r0, #1
+ bne _02254A66
+ ldr r1, [r4, #0x3c]
+ ldr r0, [r4, #0x24]
+ cmp r1, r0
+ bhs _02254A62
+ lsl r0, r1, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x18]
+ cmp r0, #0
+ beq _02254A62
+ str r1, [r4, #0x28]
+ ldr r0, [r4, #0x2c]
+ mov r1, #3
+ bl MOD48_02254AE0
+_02254A62:
+ mov r0, #0
+ str r0, [r4, #0x38]
+_02254A66:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD48_022549F0
+
+ thumb_func_start MOD48_02254A6C
+MOD48_02254A6C: ; 0x02254A6C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A7C
+ cmp r0, #1
+ beq _02254A8C
+ b _02254A9A
+_02254A7C:
+ ldr r0, [r4, #0x2c]
+ mov r1, #1
+ bl MOD48_02254AE0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A9A
+_02254A8C:
+ ldr r0, [r4, #0x2c]
+ bl MOD48_02254B10
+ cmp r0, #0
+ beq _02254A9A
+ mov r0, #1
+ pop {r4, pc}
+_02254A9A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD48_02254A6C
+
+ thumb_func_start MOD48_02254AA0
+MOD48_02254AA0: ; 0x02254AA0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0xb0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254ACE
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254ACE:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD48_02254AA0
+
+ thumb_func_start MOD48_02254AD4
+MOD48_02254AD4: ; 0x02254AD4
+ push {r3, lr}
+ cmp r0, #0
+ beq _02254ADE
+ bl FUN_02016A18
+_02254ADE:
+ pop {r3, pc}
+ thumb_func_end MOD48_02254AD4
+
+ thumb_func_start MOD48_02254AE0
+MOD48_02254AE0: ; 0x02254AE0
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254B00 ; =0x02254F94
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254B00: .word 0x02254F94
+ thumb_func_end MOD48_02254AE0
+
+ thumb_func_start MOD48_02254B04
+MOD48_02254B04: ; 0x02254B04
+ ldr r3, _02254B0C ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254B0C: .word MOD20_02253794
+ thumb_func_end MOD48_02254B04
+
+ thumb_func_start MOD48_02254B10
+MOD48_02254B10: ; 0x02254B10
+ ldr r3, _02254B18 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254B18: .word MOD20_022537B8
+ thumb_func_end MOD48_02254B10
+
+ thumb_func_start MOD48_02254B1C
+MOD48_02254B1C: ; 0x02254B1C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD48_02254B1C
+
+ thumb_func_start MOD48_02254B30
+MOD48_02254B30: ; 0x02254B30
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _02254BBC ; =0x02254F78
+ mov r1, #6
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0xc
+ mov r1, #0x7a
+ 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, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0xc
+ mov r1, #0x79
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD48_02254D2C
+ ldr r1, _02254BC0 ; =0x04001000
+ ldr r0, _02254BC4 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r5, #0
+ bl MOD48_02254B1C
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254BBC: .word 0x02254F78
+_02254BC0: .word 0x04001000
+_02254BC4: .word 0xFFFFE0FF
+ thumb_func_end MOD48_02254B30
+
+ thumb_func_start MOD48_02254BC8
+MOD48_02254BC8: ; 0x02254BC8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ bl MOD48_02254EC0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD48_02254B1C
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD48_02254BC8
+
+ thumb_func_start MOD48_02254BE8
+MOD48_02254BE8: ; 0x02254BE8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r0, r7, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MOD20_022538A4
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02254C3C
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_0206B6D4
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xac
+ mov r2, #1
+ ldr r0, [r0]
+ add r1, sp, #0
+ add r3, r2, #0
+ bl MOD20_02253A04
+ mov r1, #0
+ ldr r0, [r4]
+ add r2, r1, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [r5, #0x24]
+ add r1, r1, #1
+ bl MOD20_02253F9C
+ add r5, #0x34
+ ldr r1, [r4, #4]
+ add r0, r5, #0
+ bl MOD48_02254EF4
+ b _02254C58
+_02254C3C:
+ ldr r0, [r5, #0x24]
+ mov r1, #1
+ bl MOD20_02253F78
+ mov r4, #0
+ mov r6, #1
+_02254C48:
+ ldr r0, [r5, #0x34]
+ add r1, r6, #0
+ bl MOD20_02253F78
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _02254C48
+_02254C58:
+ add r0, r7, #0
+ bl MOD48_02254B1C
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD48_02254BE8
+
+ thumb_func_start MOD48_02254C60
+MOD48_02254C60: ; 0x02254C60
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r0, r7, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r7, #0
+ bl MOD20_022538A4
+ add r6, r0, #0
+ add r0, r7, #0
+ bl MOD20_022538AC
+ add r5, r0, #0
+ beq _02254C84
+ cmp r5, #0x10
+ beq _02254CFE
+ b _02254CC6
+_02254C84:
+ ldr r0, [r6, #0x24]
+ add r2, r4, #0
+ add r0, r0, #1
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r1, [r0, #0x24]
+ add r0, r4, #0
+ add r0, #0x9c
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x9c
+ add r1, r4, #0
+ ldr r0, [r0]
+ add r1, #0xa4
+ add r2, #0xa0
+ bl MOD20_02253F6C
+ ldr r0, [r6, #0x24]
+ lsl r0, r0, #2
+ add r0, r6, r0
+ ldr r0, [r0, #8]
+ bl MOD20_02252B48
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ mov r1, #6
+ bl MOD20_02253F28
+ add r0, r7, #0
+ bl MOD20_022538B0
+ add r5, r5, #1
+_02254CC6:
+ add r0, r4, #0
+ add r1, r4, #0
+ add r4, #0xa0
+ mov r3, #0x2d
+ ldr r2, [r4]
+ lsl r3, r3, #0xa
+ add r4, r5, #0
+ mul r4, r3
+ mov r3, #2
+ lsl r3, r3, #0xa
+ add r3, r4, r3
+ asr r3, r3, #0xc
+ lsl r4, r3, #2
+ ldr r3, _02254D28 ; =0x020EDF50
+ add r0, #0x9c
+ ldr r4, [r3, r4]
+ add r1, #0xa4
+ mov r3, #0x18
+ mul r3, r4
+ ldr r0, [r0]
+ ldr r1, [r1]
+ sub r2, r2, r3
+ bl MOD20_02253F64
+ add r0, r7, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, r6, r7, pc}
+_02254CFE:
+ add r0, r4, #0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r0, #0x9c
+ add r1, #0xa4
+ add r2, #0xa0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD20_02253F64
+ add r4, #0x9c
+ ldr r0, [r4]
+ mov r1, #4
+ bl MOD20_02253F28
+ add r0, r7, #0
+ bl MOD48_02254B1C
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254D28: .word 0x020EDF50
+ thumb_func_end MOD48_02254C60
+
+ thumb_func_start MOD48_02254D2C
+MOD48_02254D2C: ; 0x02254D2C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ add r4, r0, #0
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ str r1, [sp, #0xc]
+ add r0, #0x78
+ mov r1, #0xc
+ mov r2, #5
+ mov r3, #6
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xc
+ mov r2, #0x7b
+ mov r3, #0x7c
+ bl MOD20_02253FBC
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x7d
+ bl FUN_02006A34
+ add r1, r4, #0
+ lsr r0, r0, #5
+ add r1, #0xac
+ str r0, [r1]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0xc]
+ ldr r2, [sp, #0xc]
+ ldr r0, [r0]
+ mov r1, #0
+ str r0, [sp, #0x30]
+ add r3, sp, #0x30
+_02254D82:
+ ldr r0, [r2, #8]
+ add r1, r1, #1
+ str r0, [r3, #4]
+ add r2, r2, #4
+ add r3, r3, #4
+ cmp r1, #3
+ blt _02254D82
+ mov r7, #0
+ add r5, sp, #0x30
+ add r6, r4, #0
+_02254D96:
+ ldr r0, [r5]
+ cmp r0, #0
+ bne _02254D9E
+ mov r0, #1
+_02254D9E:
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_0206B6D4
+ add r1, r6, #0
+ add r1, #0x8c
+ add r7, r7, #1
+ str r0, [r1]
+ add r5, r5, #4
+ add r6, r6, #4
+ cmp r7, #4
+ blt _02254D96
+ add r1, r4, #0
+ ldr r0, [sp, #0x28]
+ add r1, #0x8c
+ mov r2, #4
+ mov r3, #1
+ bl MOD20_02253A04
+ mov r0, #1
+ bl MOD20_022539C4
+ mov r2, #0
+ add r0, r2, #0
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+_02254DD2:
+ ldr r0, [sp, #0x10]
+ add r2, r2, #1
+ str r0, [r1, #0x24]
+ add r1, r1, #4
+ cmp r2, #0x10
+ blt _02254DD2
+ ldr r0, _02254EBC ; =0x02254FD0
+ str r4, [sp, #0x20]
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x10]
+ mov r6, #4
+ str r0, [sp, #0x1c]
+ add r0, sp, #0x30
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ str r0, [sp, #0x14]
+_02254DF2:
+ add r2, r4, #0
+ ldr r0, [r4, #0x20]
+ ldr r1, [sp, #0x24]
+ add r2, #0x78
+ bl MOD20_02253E74
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x28]
+ str r0, [r1, #0x24]
+ ldr r1, [sp, #0x1c]
+ add r1, r2, r1
+ bl MOD20_02253FA4
+ add r0, r4, #0
+ str r0, [sp, #0x2c]
+ add r0, #0x64
+ mov r5, #0
+ str r0, [sp, #0x2c]
+_02254E16:
+ add r7, r5, r6
+ ldr r1, _02254EBC ; =0x02254FD0
+ lsl r2, r7, #4
+ add r1, r1, r2
+ ldr r0, [r4, #0x20]
+ ldr r2, [sp, #0x2c]
+ bl MOD20_02253E74
+ lsl r1, r7, #2
+ add r1, r4, r1
+ add r5, r5, #1
+ str r0, [r1, #0x24]
+ cmp r5, #3
+ blt _02254E16
+ ldr r0, [sp, #0x18]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02254E5E
+ ldr r0, [sp, #0x20]
+ mov r1, #1
+ ldr r0, [r0, #0x24]
+ bl MOD20_02253F78
+ mov r5, #0
+ mov r7, #1
+_02254E48:
+ add r0, r5, r6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x24]
+ add r1, r7, #0
+ bl MOD20_02253F78
+ add r5, r5, #1
+ cmp r5, #3
+ blt _02254E48
+ b _02254E8E
+_02254E5E:
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ add r1, r1, #1
+ ldr r0, [r0, #0x24]
+ bl MOD20_02253F9C
+ ldr r0, [sp, #0x10]
+ cmp r0, #0
+ bne _02254E7E
+ ldr r0, [sp, #0xc]
+ ldr r1, [r0, #4]
+ b _02254E82
+_02254E7E:
+ ldr r0, [sp, #0x14]
+ ldr r1, [r0, #0x10]
+_02254E82:
+ add r2, r4, #0
+ add r2, #0x24
+ lsl r0, r6, #2
+ add r0, r2, r0
+ bl MOD48_02254EF4
+_02254E8E:
+ ldr r0, [sp, #0x24]
+ add r6, r6, #3
+ add r0, #0x10
+ str r0, [sp, #0x24]
+ ldr r0, [sp, #0x20]
+ add r0, r0, #4
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r0, #0x20
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r0, r0, #4
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #4
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r0, r0, #1
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ blt _02254DF2
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254EBC: .word 0x02254FD0
+ thumb_func_end MOD48_02254D2C
+
+ thumb_func_start MOD48_02254EC0
+MOD48_02254EC0: ; 0x02254EC0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+ add r7, r4, #0
+_02254ECA:
+ ldr r1, [r5, #0x24]
+ cmp r1, #0
+ beq _02254ED8
+ ldr r0, [r6, #0x20]
+ bl MOD20_02253F14
+ str r7, [r5, #0x24]
+_02254ED8:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x10
+ blt _02254ECA
+ add r0, r6, #0
+ add r0, #0x78
+ bl MOD20_02254014
+ add r6, #0x64
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD48_02254EC0
+
+ thumb_func_start MOD48_02254EF4
+MOD48_02254EF4: ; 0x02254EF4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r1, _02254F5C ; =0x000003E7
+ ldr r0, [sp]
+ cmp r0, r1
+ bls _02254F0A
+ str r1, [sp]
+_02254F0A:
+ mov r4, #0
+ mov r6, #0x64
+_02254F0E:
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl _u32_div_f
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ beq _02254F26
+ cmp r7, #0
+ bne _02254F26
+ cmp r4, #2
+ bne _02254F34
+_02254F26:
+ ldr r0, [r5]
+ add r1, r7, #0
+ bl MOD20_02253F28
+ mov r0, #1
+ str r0, [sp, #4]
+ b _02254F3C
+_02254F34:
+ ldr r0, [r5]
+ mov r1, #1
+ bl MOD20_02253F78
+_02254F3C:
+ add r1, r7, #0
+ ldr r0, [sp]
+ mul r1, r6
+ sub r0, r0, r1
+ str r0, [sp]
+ add r0, r6, #0
+ mov r1, #0xa
+ add r5, r5, #4
+ add r4, r4, #1
+ bl _s32_div_f
+ add r6, r0, #0
+ cmp r4, #3
+ blt _02254F0E
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254F5C: .word 0x000003E7
+ thumb_func_end MOD48_02254EF4
+
+ .section .rodata
+ ; 0x02254F60
+ .incbin "baserom.nds", 0x297d20, 0x170
+
+ .section .sinit
+ .word MOD48_02254840
diff --git a/arm9/modules/49/asm/module_49.s b/arm9/modules/49/asm/module_49.s
new file mode 100644
index 00000000..46ab8f05
--- /dev/null
+++ b/arm9/modules/49/asm/module_49.s
@@ -0,0 +1,638 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD49_02254840
+MOD49_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD49_02254854
+ ldr r1, _02254850 ; =MOD49_02254974
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD49_02254854
+_02254850: .word MOD49_02254974
+ thumb_func_end MOD49_02254840
+
+ thumb_func_start MOD49_02254854
+MOD49_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x7c
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD49_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD49_02254938
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD49_02254938
+ thumb_func_end MOD49_02254854
+
+ thumb_func_start MOD49_0225489C
+MOD49_0225489C: ; 0x0225489C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ add r0, r1, #0
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ bl MOD20_02252C3C
+ str r0, [sp, #0xc]
+ bl FUN_0204C158
+ mov r6, #0
+ str r0, [r7, #0x64]
+ cmp r0, #0
+ bls _022548D8
+ add r4, r7, #0
+ add r4, #8
+ add r5, r7, #4
+_022548C0:
+ ldr r0, [sp, #0xc]
+ add r1, r6, #0
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0204C174
+ ldr r0, [r7, #0x64]
+ add r6, r6, #1
+ add r4, #8
+ add r5, #8
+ cmp r6, r0
+ blo _022548C0
+_022548D8:
+ add r0, r7, #0
+ ldr r2, [sp, #8]
+ add r0, #0x68
+ add r1, r7, #4
+ bl MOD49_02254A44
+ cmp r0, #0
+ beq _02254912
+ mov r0, #0
+ strb r0, [r7]
+ strb r0, [r7, #1]
+ strb r0, [r7, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254918 ; =0x02254CF0
+ ldr r2, _0225491C ; =MOD49_0225497C
+ mov r1, #0xc
+ add r3, r7, #0
+ bl MOD20_02254130
+ str r0, [r7, #0x70]
+ mov r0, #0
+ str r0, [r7, #0x74]
+ str r0, [r7, #0x78]
+ ldr r0, [sp, #4]
+ add sp, #0x10
+ str r0, [r7, #0x6c]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02254912:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254918: .word 0x02254CF0
+_0225491C: .word MOD49_0225497C
+ thumb_func_end MOD49_0225489C
+
+ thumb_func_start MOD49_02254920
+MOD49_02254920: ; 0x02254920
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x70]
+ bl MOD20_02254198
+ ldr r0, [r4, #0x68]
+ bl MOD49_02254A78
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD49_02254920
+
+ thumb_func_start MOD49_02254938
+MOD49_02254938: ; 0x02254938
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _0225496E
+ ldr r0, [r4, #0x6c]
+ ldr r1, [r4, #0x70]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254970 ; =0x02254CE4
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _0225496E
+ add r0, r4, #0
+ bl MOD49_02254920
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x6c]
+ bl MOD20_022529A0
+_0225496E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254970: .word 0x02254CE4
+ thumb_func_end MOD49_02254938
+
+ thumb_func_start MOD49_02254974
+MOD49_02254974: ; 0x02254974
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD49_02254974
+
+ thumb_func_start MOD49_0225497C
+MOD49_0225497C: ; 0x0225497C
+ str r0, [r3, #0x78]
+ str r1, [r3, #0x74]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD49_0225497C
+
+ thumb_func_start MOD49_02254984
+MOD49_02254984: ; 0x02254984
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _0225498C
+ b _0225498E
+_0225498C:
+ mov r1, #2
+_0225498E:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD49_02254984
+
+ thumb_func_start MOD49_02254998
+MOD49_02254998: ; 0x02254998
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549A8
+ cmp r0, #1
+ beq _022549B8
+ b _022549D2
+_022549A8:
+ ldr r0, [r4, #0x68]
+ mov r1, #0
+ bl MOD49_02254A84
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549D2
+_022549B8:
+ ldr r0, [r4, #0x68]
+ mov r1, #0
+ bl MOD49_02254AA8
+ cmp r0, #0
+ beq _022549D2
+ ldr r0, [r4, #0x6c]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD49_02254984
+_022549D2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD49_02254998
+
+ thumb_func_start MOD49_022549D8
+MOD49_022549D8: ; 0x022549D8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549EC
+ mov r1, #2
+ bl MOD49_02254984
+ mov r0, #0
+ pop {r4, pc}
+_022549EC:
+ ldr r0, [r4, #0x74]
+ cmp r0, #1
+ bne _02254A0C
+ ldr r1, [r4, #0x78]
+ mov r0, #0xb
+ sub r1, r0, r1
+ ldr r0, [r4, #0x64]
+ cmp r1, r0
+ bhs _02254A08
+ lsl r0, r1, #3
+ add r0, r4, r0
+ ldr r0, [r0, #4]
+ bl MOD20_02252B48
+_02254A08:
+ mov r0, #0
+ str r0, [r4, #0x74]
+_02254A0C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD49_022549D8
+
+ thumb_func_start MOD49_02254A10
+MOD49_02254A10: ; 0x02254A10
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A20
+ cmp r0, #1
+ beq _02254A30
+ b _02254A3E
+_02254A20:
+ ldr r0, [r4, #0x68]
+ mov r1, #1
+ bl MOD49_02254A84
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A3E
+_02254A30:
+ ldr r0, [r4, #0x68]
+ bl MOD49_02254AB4
+ cmp r0, #0
+ beq _02254A3E
+ mov r0, #1
+ pop {r4, pc}
+_02254A3E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD49_02254A10
+
+ thumb_func_start MOD49_02254A44
+MOD49_02254A44: ; 0x02254A44
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x98
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254A72
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254A72:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD49_02254A44
+
+ thumb_func_start MOD49_02254A78
+MOD49_02254A78: ; 0x02254A78
+ push {r3, lr}
+ cmp r0, #0
+ beq _02254A82
+ bl FUN_02016A18
+_02254A82:
+ pop {r3, pc}
+ thumb_func_end MOD49_02254A78
+
+ thumb_func_start MOD49_02254A84
+MOD49_02254A84: ; 0x02254A84
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254AA4 ; =0x02254D3C
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254AA4: .word 0x02254D3C
+ thumb_func_end MOD49_02254A84
+
+ thumb_func_start MOD49_02254AA8
+MOD49_02254AA8: ; 0x02254AA8
+ ldr r3, _02254AB0 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254AB0: .word MOD20_02253794
+ thumb_func_end MOD49_02254AA8
+
+ thumb_func_start MOD49_02254AB4
+MOD49_02254AB4: ; 0x02254AB4
+ ldr r3, _02254ABC ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254ABC: .word MOD20_022537B8
+ thumb_func_end MOD49_02254AB4
+
+ thumb_func_start MOD49_02254AC0
+MOD49_02254AC0: ; 0x02254AC0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD49_02254AC0
+
+ thumb_func_start MOD49_02254AD4
+MOD49_02254AD4: ; 0x02254AD4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r7, r1, #0
+ add r0, r7, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r7, #0
+ bl MOD20_022538A4
+ str r0, [sp, #0x14]
+ ldr r0, [r5, #4]
+ ldr r2, _02254BD0 ; =0x02254D20
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r5, #4]
+ mov r1, #6
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02017F48
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #4]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ mov r3, #2
+ str r3, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, sp, #0x1c
+ mov r2, #6
+ bl FUN_02019064
+ add r0, sp, #0x1c
+ mov r1, #4
+ bl FUN_02019620
+ add r0, sp, #0x1c
+ bl FUN_02019270
+ ldr r1, _02254BD4 ; =0x00000197
+ mov r0, #0x1a
+ mov r2, #0
+ mov r3, #8
+ bl FUN_0200A738
+ add r4, r0, #0
+ beq _02254B94
+ mov r0, #0
+ add r1, r4, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0
+ add r6, r0, #0
+ mov r3, #0xc0
+ sub r3, r3, r6
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02254BD8 ; =0x00010104
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, sp, #0x1c
+ lsr r3, r3, #1
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, sp, #0x1c
+ bl FUN_02019548
+ add r0, r4, #0
+ bl FUN_02021A20
+_02254B94:
+ add r0, sp, #0x1c
+ bl FUN_02019178
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, [sp, #0x14]
+ add r0, r5, #0
+ bl MOD49_02254C04
+ ldr r1, _02254BDC ; =0x04001000
+ ldr r0, _02254BE0 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x18]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r7, #0
+ bl MOD49_02254AC0
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254BD0: .word 0x02254D20
+_02254BD4: .word 0x00000197
+_02254BD8: .word 0x00010104
+_02254BDC: .word 0x04001000
+_02254BE0: .word 0xFFFFE0FF
+ thumb_func_end MOD49_02254AD4
+
+ thumb_func_start MOD49_02254BE4
+MOD49_02254BE4: ; 0x02254BE4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ bl MOD49_02254CB8
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD49_02254AC0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD49_02254BE4
+
+ thumb_func_start MOD49_02254C04
+MOD49_02254C04: ; 0x02254C04
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #4]
+ mov r0, #0
+ str r1, [sp, #8]
+ bl MOD20_022539C4
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ mov r1, #0xc
+ add r0, #0x54
+ mov r2, #5
+ mov r3, #6
+ bl MOD20_02253FBC
+ ldr r0, [sp, #8]
+ mov r4, #0
+ ldr r0, [r0, #0x60]
+ cmp r0, #0
+ bls _02254C86
+ ldr r5, [sp, #4]
+ ldr r6, [sp, #8]
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x54
+ ldr r7, _02254CB4 ; =0x02254D60
+ str r4, [sp, #0xc]
+ str r0, [sp, #0x10]
+_02254C3E:
+ ldr r0, [r6]
+ ldr r2, [r6, #4]
+ mov r1, #0
+ bl FUN_0206B6D4
+ str r0, [r5, #0x68]
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0x10]
+ ldr r0, [r0, #0x20]
+ add r1, r7, #0
+ bl MOD20_02253E74
+ ldr r1, [sp, #0xc]
+ str r0, [r5, #0x24]
+ bl MOD20_02253FA4
+ ldr r0, [r6]
+ ldr r1, [r6, #4]
+ mov r2, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [r5, #0x24]
+ bl MOD20_02253F9C
+ ldr r0, [sp, #0xc]
+ add r4, r4, #1
+ add r0, #0x10
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r6, #8
+ ldr r0, [r0, #0x60]
+ add r5, r5, #4
+ add r7, #0x10
+ cmp r4, r0
+ blo _02254C3E
+_02254C86:
+ cmp r4, #0xc
+ bge _02254C9C
+ ldr r0, [sp, #4]
+ lsl r1, r4, #2
+ add r1, r0, r1
+ mov r0, #0
+_02254C92:
+ add r4, r4, #1
+ str r0, [r1, #0x24]
+ add r1, r1, #4
+ cmp r4, #0xc
+ blt _02254C92
+_02254C9C:
+ ldr r2, [sp, #8]
+ ldr r1, [sp, #4]
+ mov r0, #0
+ add r1, #0x68
+ ldr r2, [r2, #0x60]
+ add r3, r0, #0
+ str r1, [sp, #4]
+ bl MOD20_02253A04
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254CB4: .word 0x02254D60
+ thumb_func_end MOD49_02254C04
+
+ thumb_func_start MOD49_02254CB8
+MOD49_02254CB8: ; 0x02254CB8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+ add r7, r4, #0
+_02254CC2:
+ ldr r1, [r5, #0x24]
+ cmp r1, #0
+ beq _02254CD0
+ ldr r0, [r6, #0x20]
+ bl MOD20_02253F14
+ str r7, [r5, #0x24]
+_02254CD0:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xc
+ blt _02254CC2
+ add r6, #0x54
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD49_02254CB8
+
+ .section .rodata
+ ; 0x02254CE4
+ .incbin "baserom.nds", 0x2984a4, 0x13C
+
+ .section .sinit
+ .word MOD49_02254840
diff --git a/arm9/modules/50/asm/module_50.s b/arm9/modules/50/asm/module_50.s
new file mode 100644
index 00000000..734eadea
--- /dev/null
+++ b/arm9/modules/50/asm/module_50.s
@@ -0,0 +1,409 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD50_02254840
+MOD50_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD50_02254854
+ ldr r1, _02254850 ; =MOD50_02254908
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD50_02254854
+_02254850: .word MOD50_02254908
+ thumb_func_end MOD50_02254840
+
+ thumb_func_start MOD50_02254854
+MOD50_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #8
+ mov r1, #0x10
+ str r2, [sp]
+ add r5, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254894
+ ldr r2, [sp]
+ add r1, r7, #0
+ add r3, r5, #0
+ bl MOD50_0225489C
+ cmp r0, #0
+ beq _0225488E
+ ldr r0, _02254898 ; =MOD50_022548D4
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488E
+ str r4, [r6]
+ str r5, [r4, #4]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488E:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254894:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254898: .word MOD50_022548D4
+ thumb_func_end MOD50_02254854
+
+ thumb_func_start MOD50_0225489C
+MOD50_0225489C: ; 0x0225489C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #8
+ add r1, r5, #4
+ bl MOD50_022549AC
+ cmp r0, #0
+ beq _022548BC
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022548BC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD50_0225489C
+
+ thumb_func_start MOD50_022548C0
+MOD50_022548C0: ; 0x022548C0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl MOD50_022549E0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD50_022548C0
+
+ thumb_func_start MOD50_022548D4
+MOD50_022548D4: ; 0x022548D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhs _02254900
+ lsl r2, r1, #2
+ ldr r1, _02254904 ; =0x02254B04
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254900
+ add r0, r4, #0
+ bl MOD50_022548C0
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_02254900:
+ pop {r3, r4, r5, pc}
+ nop
+_02254904: .word 0x02254B04
+ thumb_func_end MOD50_022548D4
+
+ thumb_func_start MOD50_02254908
+MOD50_02254908: ; 0x02254908
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD50_02254908
+
+ thumb_func_start MOD50_02254910
+MOD50_02254910: ; 0x02254910
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254918
+ b _0225491A
+_02254918:
+ mov r1, #2
+_0225491A:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD50_02254910
+
+ thumb_func_start MOD50_02254924
+MOD50_02254924: ; 0x02254924
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254934
+ cmp r0, #1
+ beq _02254944
+ b _0225495E
+_02254934:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD50_022549F8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _0225495E
+_02254944:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD50_02254A1C
+ cmp r0, #0
+ beq _0225495E
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD50_02254910
+_0225495E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD50_02254924
+
+ thumb_func_start MOD50_02254964
+MOD50_02254964: ; 0x02254964
+ push {r3, lr}
+ ldrb r1, [r0, #2]
+ cmp r1, #0
+ beq _02254972
+ mov r1, #2
+ bl MOD50_02254910
+_02254972:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD50_02254964
+
+ thumb_func_start MOD50_02254978
+MOD50_02254978: ; 0x02254978
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254988
+ cmp r0, #1
+ beq _02254998
+ b _022549A6
+_02254988:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD50_022549F8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549A6
+_02254998:
+ ldr r0, [r4, #8]
+ bl MOD50_02254A28
+ cmp r0, #0
+ beq _022549A6
+ mov r0, #1
+ pop {r4, pc}
+_022549A6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD50_02254978
+
+ thumb_func_start MOD50_022549AC
+MOD50_022549AC: ; 0x022549AC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x30
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _022549DA
+ add r0, #8
+ mov r1, #8
+ bl MOD20_022536F4
+ mov r0, #8
+ str r6, [r4]
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ cmp r0, #0
+ beq _022549DA
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022549DA:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD50_022549AC
+
+ thumb_func_start MOD50_022549E0
+MOD50_022549E0: ; 0x022549E0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _022549F6
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022549F0
+ bl FUN_02016A18
+_022549F0:
+ add r0, r4, #0
+ bl FUN_02016A18
+_022549F6:
+ pop {r4, pc}
+ thumb_func_end MOD50_022549E0
+
+ thumb_func_start MOD50_022549F8
+MOD50_022549F8: ; 0x022549F8
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254A18 ; =0x02254B2C
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254A18: .word 0x02254B2C
+ thumb_func_end MOD50_022549F8
+
+ thumb_func_start MOD50_02254A1C
+MOD50_02254A1C: ; 0x02254A1C
+ ldr r3, _02254A24 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254A24: .word MOD20_02253794
+ thumb_func_end MOD50_02254A1C
+
+ thumb_func_start MOD50_02254A28
+MOD50_02254A28: ; 0x02254A28
+ ldr r3, _02254A30 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254A30: .word MOD20_022537B8
+ thumb_func_end MOD50_02254A28
+
+ thumb_func_start MOD50_02254A34
+MOD50_02254A34: ; 0x02254A34
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD50_02254A34
+
+ thumb_func_start MOD50_02254A48
+MOD50_02254A48: ; 0x02254A48
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254ADC ; =0x02254B10
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #8
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r3, #6
+ bl FUN_0200687C
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #4]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mov r1, #9
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ ldr r1, [r5]
+ ldr r0, [r5, #4]
+ ldr r1, [r1]
+ mov r2, #6
+ bl MOD20_02253AA4
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254AE0 ; =0x04001000
+ ldr r0, _02254AE4 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD50_02254A34
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_02254ADC: .word 0x02254B10
+_02254AE0: .word 0x04001000
+_02254AE4: .word 0xFFFFE0FF
+ thumb_func_end MOD50_02254A48
+
+ thumb_func_start MOD50_02254AE8
+MOD50_02254AE8: ; 0x02254AE8
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ ldr r0, [r0, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD50_02254A34
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD50_02254AE8
+
+ .section .rodata
+ ; 0x02254B04
+ .incbin "baserom.nds", 0x2988c4, 0x4C
+
+ .section .sinit
+ .word MOD50_02254840
diff --git a/arm9/modules/51/asm/module_51.s b/arm9/modules/51/asm/module_51.s
new file mode 100644
index 00000000..94a4dd93
--- /dev/null
+++ b/arm9/modules/51/asm/module_51.s
@@ -0,0 +1,1911 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD51_02254840
+MOD51_02254840: ; 0x02254840
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ ldr r1, [r1, #0x7c]
+ cmp r1, #0
+ beq _022548EE
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _022548EE
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02254860: ; jump table
+ .short _02254868 - _02254860 - 2 ; case 0
+ .short _0225487A - _02254860 - 2 ; case 1
+ .short _022548D0 - _02254860 - 2 ; case 2
+ .short _022548EE - _02254860 - 2 ; case 3
+_02254868:
+ bl MOD51_02254B54
+ add r0, r4, #0
+ bl MOD51_022548F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_0225487A:
+ add r0, r4, #0
+ bl MOD51_02254C80
+ add r0, r4, #0
+ bl MOD51_02254D50
+ mov r0, #1
+ mov r1, #4
+ bl FUN_02002C84
+ mov r1, #0x72
+ lsl r1, r1, #2
+ ldr r0, [r4, #0x14]
+ add r1, r4, r1
+ bl MOD51_02254944
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E74C
+ add r0, r4, #0
+ bl MOD51_0225571C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r4, pc}
+_022548D0:
+ add r0, r4, #0
+ bl MOD51_02255690
+ add r0, r4, #0
+ bl MOD51_02255030
+ add r0, r4, #0
+ bl MOD51_022552FC
+ add r0, r4, #0
+ bl MOD51_02254F30
+ ldr r0, [r4, #0x28]
+ bl FUN_0201FDEC
+_022548EE:
+ pop {r4, pc}
+ thumb_func_end MOD51_02254840
+
+ thumb_func_start MOD51_022548F0
+MOD51_022548F0: ; 0x022548F0
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r1, #0xa1
+ lsl r1, r1, #2
+ add r4, r0, #0
+ mov r2, #0
+ add r0, r1, #0
+ str r2, [r4, r1]
+ sub r0, #0x10
+ strh r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0xe
+ strh r2, [r4, r0]
+ add r0, r1, #0
+ sub r0, #0xc
+ strh r2, [r4, r0]
+ sub r1, #0xa
+ mov r0, #4
+ strh r2, [r4, r1]
+ bl FUN_0200AA80
+ mov r2, #9
+ str r0, [r4, #0x18]
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #6
+ mov r3, #4
+ bl FUN_0200A86C
+ str r0, [r4, #0x1c]
+ mov r0, #4
+ add r3, r4, #0
+ str r0, [sp]
+ mov r0, #0x4a
+ mov r1, #3
+ mov r2, #1
+ add r3, #0x24
+ bl FUN_02006BDC
+ str r0, [r4, #0x20]
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD51_022548F0
+
+ thumb_func_start MOD51_02254944
+MOD51_02254944: ; 0x02254944
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r7, r0, #0
+ mov r0, #0xa0
+ str r0, [sp, #0x20]
+ mov r0, #0xd0
+ str r0, [sp, #0x1c]
+ mov r0, #3
+ str r0, [sp, #0x18]
+ ldr r0, _02254A3C ; =0x00000265
+ add r5, r1, #0
+ mov r4, #0
+ mov r6, #1
+ str r0, [sp, #0x14]
+_02254960:
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x20]
+ add r2, r4, #4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r2, r2, #0x18
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ add r1, r5, #0
+ lsr r2, r2, #0x18
+ mov r3, #1
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ bl FUN_020191D0
+ ldr r0, [sp, #0x18]
+ add r2, r4, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ add r1, r5, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r2, r2, #0x18
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ add r1, #0x10
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x10
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x10
+ bl FUN_020191D0
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ add r2, r4, #4
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r1, r5, #0
+ lsl r2, r2, #0x18
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ add r1, #0x20
+ lsr r2, r2, #0x18
+ mov r3, #0xc
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x20
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0x20
+ bl FUN_020191D0
+ ldr r0, [sp, #0x20]
+ add r4, r4, #1
+ add r0, #0x10
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r6, #8
+ add r0, #0x87
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r5, #0x38
+ add r0, #8
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, #0x1e
+ str r0, [sp, #0x14]
+ cmp r4, #3
+ blt _02254960
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254A3C: .word 0x00000265
+ thumb_func_end MOD51_02254944
+
+ thumb_func_start MOD51_02254A40
+MOD51_02254A40: ; 0x02254A40
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_02254A46:
+ add r0, r5, #0
+ add r0, #0x10
+ bl FUN_02019178
+ add r0, r5, #0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0x20
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x38
+ cmp r4, #3
+ blt _02254A46
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD51_02254A40
+
+ thumb_func_start MOD51_02254A68
+MOD51_02254A68: ; 0x02254A68
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r1, #0xa3
+ mov r2, #4
+ ldr r0, _02254AB0 ; =MOD51_02254840
+ lsl r1, r1, #2
+ add r3, r2, #0
+ bl FUN_020061E8
+ add r6, r0, #0
+ bl FUN_0201B6C8
+ add r4, r0, #0
+ str r5, [r4, #0xc]
+ ldr r0, [r5, #8]
+ str r0, [r4, #0x14]
+ ldr r0, [r5, #0x7c]
+ str r0, [r4, #4]
+ ldr r0, [r5, #0x78]
+ str r0, [r4, #8]
+ ldr r0, [r5, #0xc]
+ bl FUN_020238F4
+ str r0, [r4, #0x10]
+ mov r0, #0
+ mov r1, #0xa2
+ str r0, [r4]
+ lsl r1, r1, #2
+ str r6, [r4, r1]
+ ldr r2, [r5, #0x7c]
+ ldr r0, _02254AB4 ; =0x000004DC
+ sub r1, #0x18
+ ldr r0, [r2, r0]
+ str r0, [r4, r1]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254AB0: .word MOD51_02254840
+_02254AB4: .word 0x000004DC
+ thumb_func_end MOD51_02254A68
+
+ thumb_func_start MOD51_02254AB8
+MOD51_02254AB8: ; 0x02254AB8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ cmp r0, #2
+ bne _02254B2C
+ ldr r0, [r6, #0x14]
+ str r0, [sp]
+ mov r0, #3
+ str r0, [r6]
+ mov r0, #1
+ bl FUN_02002CC0
+ mov r0, #0x59
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x55
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02254AEC:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02254AEC
+ ldr r0, [r6, #0x28]
+ bl FUN_0201FD58
+ ldr r0, [r6, #0x1c]
+ bl FUN_0200A8B8
+ ldr r0, [r6, #0x18]
+ bl FUN_0200AB18
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl MOD51_02254A40
+ ldr r0, [sp]
+ bl MOD51_02254B30
+ ldr r0, [r6, #0x20]
+ bl FUN_02016A18
+ mov r0, #0xa2
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_0200621C
+_02254B2C:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD51_02254AB8
+
+ thumb_func_start MOD51_02254B30
+MOD51_02254B30: ; 0x02254B30
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_020178A0
+ pop {r4, pc}
+ thumb_func_end MOD51_02254B30
+
+ thumb_func_start MOD51_02254B54
+MOD51_02254B54: ; 0x02254B54
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ add r4, r0, #0
+ bl MOD51_02254B30
+ ldr r5, _02254C70 ; =0x022557A8
+ add r3, sp, #0x64
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ ldr r5, _02254C74 ; =0x0225578C
+ add r3, sp, #0x48
+ 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
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_02018744
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ ldr r5, _02254C78 ; =0x022557C4
+ add r3, sp, #0x2c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #6
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_02018744
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ ldr r5, _02254C7C ; =0x02255754
+ add r3, sp, #0x10
+ 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
+ mov r0, #8
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0x60
+ mov r1, #0
+ str r0, [sp]
+ mov r2, #4
+ mov r0, #0x4a
+ add r3, r1, #0
+ str r2, [sp, #4]
+ 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, #4
+ str r0, [sp, #0xc]
+ mov r0, #0x4a
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #7
+ 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 r1, #4
+ mov r0, #0x4a
+ add r2, r4, #0
+ mov r3, #7
+ str r1, [sp, #0xc]
+ bl FUN_020068C8
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02054590
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ nop
+_02254C70: .word 0x022557A8
+_02254C74: .word 0x0225578C
+_02254C78: .word 0x022557C4
+_02254C7C: .word 0x02255754
+ thumb_func_end MOD51_02254B54
+
+ thumb_func_start MOD51_02254C80
+MOD51_02254C80: ; 0x02254C80
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ add r1, r6, #0
+ mov r0, #0xa
+ add r1, #0x2c
+ mov r2, #4
+ bl FUN_02008C9C
+ mov r7, #0x55
+ str r0, [r6, #0x28]
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02254C9C:
+ mov r0, #1
+ add r1, r4, #0
+ mov r2, #4
+ bl FUN_02008DEC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02254C9C
+ ldr r0, _02254D4C ; =0x000003E7
+ mov r1, #0x4a
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r2, #5
+ mov r3, #1
+ bl FUN_02008F34
+ mov r1, #0x59
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ ldr r0, _02254D4C ; =0x000003E7
+ mov r2, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ mov r0, #4
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r6, r1]
+ mov r1, #0x4a
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ ldr r0, _02254D4C ; =0x000003E7
+ sub r1, #0xc
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x4a
+ mov r2, #6
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ ldr r0, _02254D4C ; =0x000003E7
+ sub r1, #0xc
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x4a
+ mov r2, #7
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x17
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ sub r1, #0xc
+ ldr r0, [r6, r1]
+ bl FUN_02009B04
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009D68
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254D4C: .word 0x000003E7
+ thumb_func_end MOD51_02254C80
+
+ thumb_func_start MOD51_02254D50
+MOD51_02254D50: ; 0x02254D50
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ ldr r1, _02254E28 ; =0x000003E7
+ add r5, r0, #0
+ mov r0, #0
+ str r1, [sp]
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r3, #0x55
+ str r0, [sp, #0x10]
+ lsl r3, r3, #2
+ ldr r2, [r5, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ add r3, #0x20
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r5, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ ldr r0, [r5, #0x28]
+ mov r4, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ mov r7, #0x3f
+ str r4, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r4, [r0, #0x20]
+ mov r0, #2
+ str r0, [sp, #0x54]
+ mov r0, #4
+ ldr r6, _02254E2C ; =0x02255734
+ str r4, [sp, #0x50]
+ str r0, [sp, #0x58]
+ lsl r7, r7, #0x18
+_02254DC4:
+ mov r0, #0x3a
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x34]
+ ldr r0, [r6]
+ cmp r0, #0
+ ble _02254DE0
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ add r0, r7, #0
+ bl _fadd
+ b _02254DEC
+_02254DE0:
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r7, #0
+ bl _fsub
+_02254DEC:
+ bl _ffix
+ mov r1, #3
+ lsl r1, r1, #0x12
+ add r0, r0, r1
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02020130
+ add r4, r4, #1
+ add r6, r6, #4
+ add r5, r5, #4
+ cmp r4, #3
+ blt _02254DC4
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254E28: .word 0x000003E7
+_02254E2C: .word 0x02255734
+ thumb_func_end MOD51_02254D50
+
+ thumb_func_start MOD51_02254E30
+MOD51_02254E30: ; 0x02254E30
+ add r1, r1, #1
+ cmp r1, #0x1e
+ bne _02254E38
+ mov r1, #0
+_02254E38:
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD51_02254E30
+
+ thumb_func_start MOD51_02254E3C
+MOD51_02254E3C: ; 0x02254E3C
+ add r0, r0, r1
+ cmp r0, #0x1e
+ blt _02254E44
+ sub r0, #0x1e
+_02254E44:
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD51_02254E3C
+
+ thumb_func_start MOD51_02254E48
+MOD51_02254E48: ; 0x02254E48
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r3, r1, #0
+ add r5, r0, #0
+ add r4, r3, #0
+ mov r0, #0x38
+ mul r4, r0
+ mov r0, #0x7e
+ add r6, r2, #0
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, [r6, #0x10]
+ mov r2, #8
+ str r0, [r1, r4]
+ mov r0, #0x20
+ str r0, [sp]
+ str r2, [sp, #4]
+ ldr r2, [r5, #0x24]
+ mov r7, #0
+ add r2, #0xc
+ str r2, [sp, #8]
+ str r7, [sp, #0xc]
+ ldr r2, [r1, r4]
+ mov r1, #0x18
+ mul r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ mov r0, #0x30
+ str r0, [sp, #0x18]
+ lsl r3, r3, #0x1b
+ ldr r0, [r5, #0x14]
+ mov r1, #7
+ add r2, r7, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018170
+ mov r0, #0x72
+ lsl r0, r0, #2
+ add r7, r5, r0
+ add r0, r7, r4
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x76
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x1c]
+ add r0, r0, r4
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ add r5, r5, r0
+ add r0, r5, r4
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02254F2C ; =0x00010200
+ mov r3, #0
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r2, [r6]
+ add r0, r7, r4
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02254F2C ; =0x00010200
+ mov r3, #0
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ ldr r2, [r6, #4]
+ add r0, r0, r4
+ mov r1, #1
+ bl FUN_0201BDE0
+ add r0, r7, r4
+ bl FUN_02019220
+ ldr r0, [sp, #0x1c]
+ add r0, r0, r4
+ bl FUN_02019220
+ ldr r2, [r6, #8]
+ cmp r2, #0
+ beq _02254F22
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02254F2C ; =0x00010200
+ mov r3, #0
+ str r0, [sp, #8]
+ add r0, r5, r4
+ mov r1, #1
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+_02254F22:
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254F2C: .word 0x00010200
+ thumb_func_end MOD51_02254E48
+
+ thumb_func_start MOD51_02254F30
+MOD51_02254F30: ; 0x02254F30
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x27
+ add r5, r0, #0
+ lsl r1, r1, #4
+ add r0, r1, #0
+ ldr r2, [r5, r1]
+ add r1, #8
+ add r0, #0xdc
+ ldrh r1, [r5, r1]
+ ldr r0, [r2, r0]
+ bl MOD51_02254E3C
+ add r6, r0, #0
+ mov r0, #0x27
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ add r0, #0xd8
+ ldr r7, [r1, r0]
+ cmp r7, #3
+ ble _02254F5A
+ mov r7, #3
+_02254F5A:
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ ldrh r1, [r5, r0]
+ add r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r1, r0
+ beq _02254F78
+ add r0, r5, #0
+ bl MOD51_0225571C
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ ldrh r1, [r5, r0]
+ add r0, r0, #4
+ str r1, [r5, r0]
+_02254F78:
+ mov r0, #0xa1
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #1
+ bne _02254FE2
+ mov r4, #0
+ cmp r7, #0
+ ble _02254FB0
+_02254F88:
+ mov r2, #0x27
+ lsl r2, r2, #4
+ mov r3, #0x1c
+ ldr r2, [r5, r2]
+ mul r3, r6
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r2, r3
+ bl MOD51_02254E48
+ mov r0, #0x27
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl MOD51_02254E30
+ add r4, r4, #1
+ add r6, r0, #0
+ cmp r4, r7
+ blt _02254F88
+_02254FB0:
+ ldr r0, [r5, #0x14]
+ mov r1, #7
+ bl FUN_0201886C
+ mov r1, #6
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [r5, #0x14]
+ mov r1, #7
+ bl FUN_0201886C
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #6
+ ldr r0, [r5, #0x14]
+ mov r1, #7
+ lsl r3, r3, #8
+ bl FUN_02017CE8
+ mov r0, #0xa1
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02254FE2:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD51_02254F30
+
+ thumb_func_start MOD51_02254FE4
+MOD51_02254FE4: ; 0x02254FE4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0x3a
+ lsl r0, r0, #0xe
+ str r0, [sp]
+ cmp r1, #0
+ ble _02255006
+ lsl r0, r1, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _02255014
+_02255006:
+ lsl r0, r1, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_02255014:
+ bl _ffix
+ mov r1, #3
+ lsl r1, r1, #0x12
+ 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 {r3, r4, pc}
+ thumb_func_end MOD51_02254FE4
+
+ thumb_func_start MOD51_02255030
+MOD51_02255030: ; 0x02255030
+ push {r4, lr}
+ mov r1, #0x27
+ add r4, r0, #0
+ lsl r1, r1, #4
+ add r0, r1, #0
+ ldr r2, [r4, r1]
+ add r0, #0xd8
+ ldr r2, [r2, r0]
+ add r0, r1, #4
+ strh r2, [r4, r0]
+ ldrh r0, [r4, r0]
+ cmp r0, #3
+ bls _02255060
+ add r0, r1, #6
+ ldrh r0, [r4, r0]
+ cmp r0, #3
+ bhi _02255060
+ add r0, r1, #0
+ mov r2, #1
+ add r0, #0xa
+ strh r2, [r4, r0]
+ mov r0, #0
+ add r1, #8
+ strh r0, [r4, r1]
+_02255060:
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ add r1, #0xda
+ ldrh r1, [r4, r1]
+ bl FUN_020200A0
+ ldr r0, _022550AC ; =0x0000027A
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ beq _022550A0
+ bl FUN_02020A98
+ cmp r0, #0
+ bne _022550A0
+ mov r1, #0x9e
+ lsl r1, r1, #2
+ ldrh r2, [r4, r1]
+ sub r1, r1, #4
+ ldrh r1, [r4, r1]
+ mov r0, #0x60
+ mul r0, r2
+ sub r1, r1, #3
+ bl _s32_div_f
+ add r1, r0, #0
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, #0x30
+ bl MOD51_02254FE4
+_022550A0:
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldrh r1, [r4, r0]
+ add r0, r0, #2
+ strh r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_022550AC: .word 0x0000027A
+ thumb_func_end MOD51_02255030
+
+ thumb_func_start MOD51_022550B0
+MOD51_022550B0: ; 0x022550B0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _022551D8 ; =0x02255770
+ bl FUN_02020988
+ add r7, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r7, r0
+ bne _022550C6
+ b _022551D2
+_022550C6:
+ cmp r7, #0
+ beq _022550D4
+ cmp r7, #1
+ beq _02255100
+ cmp r7, #5
+ beq _022551CA
+ b _02255132
+_022550D4:
+ lsl r0, r7, #2
+ add r1, r5, r0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, r7, #4
+ bl FUN_02020130
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ beq _022551CA
+ ldr r0, _022551DC ; =0x000005E5
+ bl FUN_020054C8
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ ldrh r1, [r5, r0]
+ sub r1, r1, #1
+ strh r1, [r5, r0]
+ b _022551CA
+_02255100:
+ lsl r0, r7, #2
+ add r1, r5, r0
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, r7, #4
+ bl FUN_02020130
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ ldrh r1, [r5, r0]
+ sub r0, r0, #4
+ ldrh r0, [r5, r0]
+ sub r0, r0, #3
+ cmp r1, r0
+ bge _022551CA
+ ldr r0, _022551DC ; =0x000005E5
+ bl FUN_020054C8
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ ldrh r1, [r5, r0]
+ add r1, r1, #1
+ strh r1, [r5, r0]
+ b _022551CA
+_02255132:
+ mov r2, #0x27
+ lsl r2, r2, #4
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #0xd8
+ ldr r3, [r0, r1]
+ sub r1, r7, #1
+ cmp r3, r1
+ blt _022551CA
+ add r1, r2, #0
+ add r1, #0xdc
+ add r2, #8
+ ldr r0, [r0, r1]
+ ldrh r1, [r5, r2]
+ add r1, r1, r7
+ sub r1, r1, #2
+ bl MOD51_02254E3C
+ mov r1, #0x1c
+ mov r4, #0
+ mul r1, r0
+ add r6, r4, #0
+ str r1, [sp]
+_02255160:
+ add r0, r4, #0
+ bl FUN_0202EF18
+ cmp r0, #0
+ beq _0225519C
+ ldr r1, [r5, #4]
+ add r0, #0x50
+ add r1, r1, r6
+ ldrb r1, [r1, #0xd]
+ cmp r1, #2
+ bne _0225519C
+ mov r1, #0x27
+ lsl r1, r1, #4
+ ldr r2, [r5, r1]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ add r1, r1, r2
+ ldr r1, [r1, #0xc]
+ cmp r0, r1
+ bne _0225519C
+ ldr r0, _022551DC ; =0x000005E5
+ bl FUN_020054C8
+ mov r1, #0x18
+ ldr r2, [r5, #4]
+ mul r1, r4
+ mov r0, #1
+ add r1, r2, r1
+ strb r0, [r1, #0xf]
+ b _022551A4
+_0225519C:
+ add r4, r4, #1
+ add r6, #0x18
+ cmp r4, #0xa
+ blt _02255160
+_022551A4:
+ bl FUN_0202EF70
+ bl FUN_020239BC
+ mov r1, #0x27
+ lsl r1, r1, #4
+ ldr r2, [r5, r1]
+ ldr r1, [sp]
+ add r1, r2, r1
+ ldr r1, [r1, #0xc]
+ cmp r1, r0
+ bne _022551CA
+ ldr r0, _022551DC ; =0x000005E5
+ bl FUN_020054C8
+ ldr r1, [r5, #4]
+ ldr r0, _022551E0 ; =0x000004BF
+ mov r2, #1
+ strb r2, [r1, r0]
+_022551CA:
+ mov r0, #0x71
+ sub r1, r7, #2
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_022551D2:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022551D8: .word 0x02255770
+_022551DC: .word 0x000005E5
+_022551E0: .word 0x000004BF
+ thumb_func_end MOD51_022550B0
+
+ thumb_func_start MOD51_022551E4
+MOD51_022551E4: ; 0x022551E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ ldr r0, _02255290 ; =0x02255740
+ bl FUN_02020968
+ mov r1, #0
+ mvn r1, r1
+ str r0, [sp]
+ cmp r0, r1
+ beq _0225528A
+ cmp r0, #0
+ bne _02255256
+ add r0, sp, #8
+ add r1, sp, #4
+ bl FUN_02020AB0
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r7, r0]
+ ldr r1, [sp, #4]
+ bl MOD51_02254FE4
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldrh r0, [r7, r0]
+ cmp r0, #3
+ bls _0225528A
+ sub r4, r0, #2
+ mov r0, #0x60
+ add r1, r4, #0
+ bl _s32_div_f
+ mov r1, #0
+ cmp r4, #0
+ ble _0225528A
+ ldr r5, [sp, #4]
+ add r2, r1, #0
+ add r3, r1, #0
+_02255232:
+ add r6, r2, #0
+ add r6, #0x30
+ cmp r5, r6
+ blo _0225524A
+ add r6, r3, r0
+ add r6, #0x30
+ cmp r5, r6
+ bhs _0225524A
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ strh r1, [r7, r0]
+ b _0225528A
+_0225524A:
+ add r1, r1, #1
+ add r2, r2, r0
+ add r3, r3, r0
+ cmp r1, r4
+ blt _02255232
+ b _0225528A
+_02255256:
+ mov r1, #0x27
+ lsl r1, r1, #4
+ add r0, r1, #0
+ ldr r2, [r7, r1]
+ add r0, #0xd8
+ ldr r2, [r2, r0]
+ ldr r0, [sp]
+ cmp r2, r0
+ blt _0225528A
+ add r0, r1, #0
+ sub r0, #0xac
+ ldr r2, [r7, r0]
+ ldr r0, [sp]
+ sub r3, r0, #1
+ cmp r2, r3
+ bne _0225528A
+ sub r1, #0x74
+ add r2, r7, r1
+ mov r0, #0x38
+ add r1, r3, #0
+ mul r1, r0
+ ldr r0, [r2, r1]
+ cmp r0, #5
+ bge _0225528A
+ add r0, r0, #1
+ str r0, [r2, r1]
+_0225528A:
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02255290: .word 0x02255740
+ thumb_func_end MOD51_022551E4
+
+ thumb_func_start MOD51_02255294
+MOD51_02255294: ; 0x02255294
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _022552F4 ; =0x021C48B8
+ mov r1, #2
+ ldr r2, [r0, #0x48]
+ lsl r1, r1, #8
+ add r0, r2, #0
+ tst r0, r1
+ beq _022552C6
+ sub r1, #0x68
+ ldr r0, [r4, r1]
+ mov r1, #4
+ bl FUN_02020130
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ ldrh r1, [r4, r0]
+ cmp r1, #0
+ beq _022552F0
+ sub r1, r1, #1
+ strh r1, [r4, r0]
+ ldr r0, _022552F8 ; =0x000005E5
+ bl FUN_020054C8
+ pop {r4, pc}
+_022552C6:
+ lsr r0, r1, #1
+ tst r0, r2
+ beq _022552F0
+ sub r1, #0x64
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl FUN_02020130
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ sub r1, r0, #4
+ ldrh r1, [r4, r1]
+ ldrh r2, [r4, r0]
+ sub r1, r1, #3
+ cmp r2, r1
+ bge _022552F0
+ add r1, r2, #1
+ strh r1, [r4, r0]
+ ldr r0, _022552F8 ; =0x000005E5
+ bl FUN_020054C8
+_022552F0:
+ pop {r4, pc}
+ nop
+_022552F4: .word 0x021C48B8
+_022552F8: .word 0x000005E5
+ thumb_func_end MOD51_02255294
+
+ thumb_func_start MOD51_022552FC
+MOD51_022552FC: ; 0x022552FC
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0xc]
+ mov r4, #0
+ mvn r4, r4
+ bl FUN_0204646C
+ cmp r0, #0
+ bne _02255332
+ add r0, r5, #0
+ bl MOD51_022550B0
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD51_022551E4
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02255332
+ cmp r4, r0
+ bne _02255332
+ add r0, r5, #0
+ bl MOD51_02255294
+_02255332:
+ mov r2, #0x27
+ lsl r2, r2, #4
+ add r0, r2, #0
+ ldr r1, [r5, r2]
+ add r0, #0xd8
+ ldr r0, [r1, r0]
+ sub r3, r4, #1
+ str r0, [sp]
+ add r0, r2, #0
+ add r0, #0x10
+ add r0, r5, r0
+ str r0, [sp, #4]
+ sub r2, #0xa8
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x24]
+ add r2, r5, r2
+ bl MOD51_0225535C
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD51_022552FC
+
+ thumb_func_start MOD51_0225535C
+MOD51_0225535C: ; 0x0225535C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x40]
+ str r1, [sp, #0x20]
+ add r5, r2, #0
+ mov r1, #0
+ str r0, [sp, #0x40]
+ ldr r4, [sp, #0x44]
+ cmp r0, #3
+ ble _02255376
+ mov r0, #3
+ str r0, [sp, #0x40]
+_02255376:
+ ldr r2, [sp, #0x40]
+ mov r0, #0
+ cmp r2, #0
+ ble _0225539C
+ add r2, r5, #0
+_02255380:
+ cmp r3, r0
+ beq _0225538E
+ ldr r6, [r2, #0x34]
+ cmp r6, #0
+ beq _0225538E
+ sub r6, r6, #1
+ str r6, [r2, #0x34]
+_0225538E:
+ ldr r6, [r2, #0x34]
+ add r0, r0, #1
+ add r1, r1, r6
+ ldr r6, [sp, #0x40]
+ add r2, #0x38
+ cmp r0, r6
+ blt _02255380
+_0225539C:
+ cmp r1, #0
+ bne _022553AC
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _022553AC
+ add sp, #0x28
+ str r1, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+_022553AC:
+ ldr r0, [sp, #0x40]
+ str r1, [r4]
+ mov r4, #0
+ cmp r0, #0
+ ble _02255422
+ ldr r0, [sp, #0x20]
+ add r7, r4, #0
+ add r0, #0xc
+ str r0, [sp, #0x20]
+_022553BE:
+ ldr r1, [r5, #0x34]
+ lsl r3, r7, #0x18
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r0, r0, #1
+ str r0, [sp, #0x24]
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x20]
+ lsr r3, r3, #0x18
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ ldr r1, [r5, #0x30]
+ lsl r2, r0, #3
+ mov r0, #0x18
+ mul r0, r1
+ add r0, r2, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x10]
+ mov r0, #0x20
+ str r0, [sp, #0x14]
+ mov r0, #0x30
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x1c]
+ mov r1, #7
+ mov r2, #0
+ bl FUN_02018170
+ ldr r3, [sp, #0x24]
+ add r1, r4, #4
+ lsl r6, r3, #2
+ ldr r3, _02255450 ; =0x02255728
+ lsl r1, r1, #0x18
+ ldr r0, [sp, #0x1c]
+ ldr r3, [r3, r6]
+ lsr r1, r1, #0x18
+ mov r2, #3
+ bl FUN_020179E0
+ ldr r0, [sp, #0x40]
+ add r4, r4, #1
+ add r5, #0x38
+ add r7, #8
+ cmp r4, r0
+ blt _022553BE
+_02255422:
+ ldr r0, [sp, #0x1c]
+ mov r1, #7
+ bl FUN_0201886C
+ mov r1, #6
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #0x1c]
+ mov r1, #7
+ bl FUN_0201886C
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #6
+ ldr r0, [sp, #0x1c]
+ mov r1, #7
+ lsl r3, r3, #8
+ bl FUN_02017CE8
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02255450: .word 0x02255728
+ thumb_func_end MOD51_0225535C
+
+ thumb_func_start MOD51_02255454
+MOD51_02255454: ; 0x02255454
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ mov r4, #0
+ ldr r0, [sp, #0x28]
+ add r5, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #8]
+ str r4, [sp, #0xc]
+ bl FUN_020239BC
+ cmp r5, r0
+ beq _02255478
+ add r0, r6, #0
+ add r1, r5, #0
+ bl FUN_02025614
+ add r4, r0, #0
+_02255478:
+ cmp r4, #0
+ ble _022554D8
+ cmp r4, #1
+ bne _0225548C
+ ldr r2, [sp, #0x28]
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_0200ABC0
+ b _022554CA
+_0225548C:
+ cmp r4, #2
+ blt _022554CA
+ sub r5, r4, #2
+ mov r0, #0xa
+ mov r1, #0x59
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r5, #0
+ bl FUN_020254F0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02021E28
+ add r0, r6, #0
+ add r1, r5, #0
+ bl FUN_020254F8
+ mov r1, #0
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_0200ABB4
+ add r0, r4, #0
+ bl FUN_02021A20
+_022554CA:
+ ldr r1, [sp, #8]
+ add r0, r7, #0
+ mov r2, #0xce
+ mov r3, #0x59
+ bl FUN_0200A9C4
+ str r0, [sp, #0xc]
+_022554D8:
+ ldr r0, [sp, #0xc]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD51_02255454
+
+ thumb_func_start MOD51_022554E0
+MOD51_022554E0: ; 0x022554E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ add r6, r2, #0
+ ldr r2, [r7, #4]
+ ldr r0, _022555BC ; =0x000004D8
+ str r1, [sp, #4]
+ mov r1, #0x27
+ ldr r0, [r2, r0]
+ lsl r1, r1, #4
+ str r0, [sp, #0xc]
+ add r0, r1, #0
+ ldr r4, [r7, r1]
+ add r0, #0xd8
+ ldr r0, [r4, r0]
+ str r3, [sp, #8]
+ cmp r0, #0x1e
+ bne _02255508
+ add r1, #0xdc
+ b _0225550A
+_02255508:
+ add r1, #0xd8
+_0225550A:
+ add r5, r4, r1
+ ldr r1, [r5]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _0225551E
+ bl FUN_02021A20
+_0225551E:
+ ldr r1, [r5]
+ mov r0, #0x1c
+ mul r0, r1
+ add r0, r4, r0
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _02255530
+ bl FUN_02021A20
+_02255530:
+ ldr r0, [sp, #8]
+ bl FUN_0202398C
+ add r1, r0, #0
+ ldr r2, [r5]
+ mov r0, #0x1c
+ mul r0, r2
+ ldr r0, [r4, r0]
+ bl FUN_02021E28
+ ldr r0, [r5]
+ mov r1, #0x1c
+ add r2, r0, #0
+ mul r2, r1
+ add r0, r4, r2
+ ldrh r2, [r6]
+ strh r2, [r0, #0x14]
+ ldrh r2, [r6, #2]
+ strh r2, [r0, #0x16]
+ ldrh r2, [r6, #4]
+ strh r2, [r0, #0x18]
+ ldrh r2, [r6, #6]
+ strh r2, [r0, #0x1a]
+ ldr r0, [r5]
+ mul r1, r0
+ ldr r0, [sp, #4]
+ add r1, r4, r1
+ str r0, [r1, #0xc]
+ ldr r0, [sp, #8]
+ bl FUN_020239CC
+ ldr r2, [r5]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r4, r1
+ str r0, [r1, #0x10]
+ add r0, r6, #0
+ mov r1, #0x59
+ bl FUN_020137D4
+ ldr r2, [r5]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r4, r1
+ str r0, [r1, #4]
+ ldr r0, [r7, #0x10]
+ ldr r1, [sp, #4]
+ str r0, [sp]
+ ldr r0, [sp, #0xc]
+ ldr r2, [r7, #0x18]
+ ldr r3, [r7, #0x1c]
+ bl MOD51_02255454
+ ldr r2, [r5]
+ mov r1, #0x1c
+ mul r1, r2
+ add r1, r4, r1
+ str r0, [r1, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0x1e
+ bne _022555B8
+ mov r1, #0
+ str r1, [r4, r0]
+_022555B8:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022555BC: .word 0x000004D8
+ thumb_func_end MOD51_022554E0
+
+ thumb_func_start MOD51_022555C0
+MOD51_022555C0: ; 0x022555C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r0, r1, #0
+ str r1, [sp]
+ add r7, r2, #0
+ bl FUN_0201385C
+ cmp r0, #0
+ bne _022555D6
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022555D6:
+ mov r1, #0x27
+ lsl r1, r1, #4
+ ldr r0, [r6, r1]
+ add r1, #0xd8
+ ldr r1, [r0, r1]
+ mov r4, #0
+ cmp r1, #0
+ ble _02255610
+ add r5, r4, #0
+_022555E8:
+ add r1, r0, r5
+ ldr r0, [r1, #0xc]
+ cmp r7, r0
+ bne _022555FC
+ ldr r0, [sp]
+ add r1, #0x14
+ bl FUN_02013928
+ cmp r0, #0
+ bne _02255610
+_022555FC:
+ mov r0, #0x27
+ lsl r0, r0, #4
+ mov r1, #0xd2
+ ldr r0, [r6, r0]
+ lsl r1, r1, #2
+ ldr r1, [r0, r1]
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, r1
+ blt _022555E8
+_02255610:
+ mov r0, #0x27
+ lsl r0, r0, #4
+ ldr r1, [r6, r0]
+ add r0, #0xd8
+ ldr r0, [r1, r0]
+ cmp r4, r0
+ beq _02255626
+ cmp r0, #0
+ beq _02255626
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02255626:
+ mov r0, #0x1c
+ mul r0, r4
+ add r1, r1, r0
+ ldr r0, [r1, #0xc]
+ cmp r7, r0
+ beq _0225563A
+ ldr r0, [sp]
+ add r1, #0x14
+ bl FUN_02013928
+_0225563A:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD51_022555C0
+
+ thumb_func_start MOD51_02255640
+MOD51_02255640: ; 0x02255640
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ mov r1, #0x9e
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldrh r0, [r4, r1]
+ sub r1, r1, #4
+ ldrh r1, [r4, r1]
+ mov r5, #0
+ sub r1, r1, #3
+ cmp r0, r1
+ bne _0225565A
+ mov r5, #1
+_0225565A:
+ add r1, r3, #0
+ add r0, r4, #0
+ add r3, r6, #0
+ bl MOD51_022554E0
+ ldr r1, _0225568C ; =0x0000027A
+ ldrh r0, [r4, r1]
+ cmp r0, #0
+ beq _02255682
+ cmp r5, #0
+ beq _02255682
+ add r0, r1, #0
+ sub r0, #0xa
+ ldr r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xce
+ ldr r0, [r2, r0]
+ sub r2, r0, #3
+ sub r0, r1, #2
+ strh r2, [r4, r0]
+_02255682:
+ add r0, r4, #0
+ bl MOD51_0225571C
+ pop {r4, r5, r6, pc}
+ nop
+_0225568C: .word 0x0000027A
+ thumb_func_end MOD51_02255640
+
+ thumb_func_start MOD51_02255690
+MOD51_02255690: ; 0x02255690
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ ldr r0, [r0, #0xc]
+ bl FUN_0204646C
+ cmp r0, #0
+ bne _02255714
+ mov r0, #4
+ bl FUN_02023928
+ str r0, [sp, #4]
+ mov r6, #0
+_022556AA:
+ add r0, r6, #0
+ bl FUN_0202EF18
+ add r7, r0, #0
+ beq _022556E6
+ add r4, r7, #0
+ add r4, #0x50
+ ldr r0, _02255718 ; =0x02255800
+ add r5, r4, #0
+ add r5, #8
+ str r4, [r0, #4]
+ str r5, [r0]
+ add r0, r4, #0
+ ldr r1, [sp, #4]
+ add r0, #0x10
+ bl FUN_0202393C
+ ldr r0, [sp]
+ ldr r2, [r7, #0x50]
+ add r1, r5, #0
+ bl MOD51_022555C0
+ cmp r0, #0
+ beq _022556E6
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r3, [r4]
+ add r2, r5, #0
+ bl MOD51_02255640
+_022556E6:
+ add r6, r6, #1
+ cmp r6, #0x10
+ blt _022556AA
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_02052CF0
+ add r4, r0, #0
+ beq _0225570E
+ ldr r0, [sp]
+ ldr r0, [r0, #0x10]
+ bl FUN_020239BC
+ add r3, r0, #0
+ ldr r0, [sp]
+ add r2, r4, #0
+ add r1, r0, #0
+ ldr r1, [r1, #0x10]
+ bl MOD51_02255640
+_0225570E:
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+_02255714:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02255718: .word 0x02255800
+ thumb_func_end MOD51_02255690
+
+ thumb_func_start MOD51_0225571C
+MOD51_0225571C: ; 0x0225571C
+ mov r1, #0xa1
+ mov r2, #1
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD51_0225571C
+
+ .section .rodata
+ ; 0x02255728
+ .incbin "baserom.nds", 0x2998E8, 0xB8
+
+ .section .bss
+ ; 0x2255800
+ .space 4
diff --git a/arm9/modules/52/asm/module_52.s b/arm9/modules/52/asm/module_52.s
new file mode 100644
index 00000000..24ecbec1
--- /dev/null
+++ b/arm9/modules/52/asm/module_52.s
@@ -0,0 +1,250 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD52_021D74E0
+MOD52_021D74E0: ; 0x021D74E0
+ push {r3, lr}
+ mov r2, #2
+ mov r0, #3
+ mov r1, #0x4d
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ bl FUN_02000FA4
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD52_021D74E0
+
+ thumb_func_start MOD52_021D74F8
+MOD52_021D74F8: ; 0x021D74F8
+ push {r3, lr}
+ bl FUN_0200628C
+ ldr r1, [r0, #8]
+ mov r0, #0x4d
+ bl MOD52_021D769C
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD52_021D74F8
+
+ thumb_func_start MOD52_021D750C
+MOD52_021D750C: ; 0x021D750C
+ push {r3, lr}
+ mov r0, #0x4d
+ bl FUN_020168D0
+ mov r0, #0
+ ldr r1, _021D7524 ; =0x020FD144
+ mvn r0, r0
+ bl FUN_02000E7C
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_021D7524: .word 0x020FD144
+ thumb_func_end MOD52_021D750C
+
+ thumb_func_start MOD52_021D7528
+MOD52_021D7528: ; 0x021D7528
+ push {r3, lr}
+ mov r2, #2
+ mov r0, #3
+ mov r1, #0x4d
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ bl FUN_02000FA4
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD52_021D7528
+
+ thumb_func_start MOD52_021D7540
+MOD52_021D7540: ; 0x021D7540
+ push {r4, lr}
+ bl FUN_0200628C
+ ldr r4, [r0, #8]
+ mov r0, #0x4d
+ add r1, r4, #0
+ mov r2, #1
+ bl MOD52_021D7604
+ add r0, r4, #0
+ bl FUN_02023918
+ bl FUN_02015E3C
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD52_021D7540
+
+ thumb_func_start MOD52_021D7560
+MOD52_021D7560: ; 0x021D7560
+ push {r3, lr}
+ mov r0, #0x4d
+ bl FUN_020168D0
+ mov r0, #0
+ ldr r1, _021D7578 ; =0x020F2B7C
+ mvn r0, r0
+ bl FUN_02000E7C
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_021D7578: .word 0x020F2B7C
+ thumb_func_end MOD52_021D7560
+
+ thumb_func_start MOD52_021D757C
+MOD52_021D757C: ; 0x021D757C
+ push {r3, lr}
+ mov r2, #2
+ mov r0, #3
+ mov r1, #0x4d
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ bl FUN_02000FA4
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD52_021D757C
+
+ thumb_func_start MOD52_021D7594
+MOD52_021D7594: ; 0x021D7594
+ push {r3, r4, r5, lr}
+ bl FUN_0200628C
+ ldr r4, [r0, #8]
+ add r0, r4, #0
+ bl FUN_02023788
+ add r5, r0, #0
+ mov r0, #0x4d
+ add r1, r4, #0
+ bl MOD52_021D7688
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02024F9C
+ add r0, r5, #0
+ bl FUN_020237CC
+ cmp r0, #0
+ beq _021D75C8
+ add r0, r5, #0
+ bl FUN_020237FC
+ cmp r0, #0
+ bne _021D75D8
+_021D75C8:
+ add r0, r4, #0
+ bl FUN_02023794
+ bl FUN_020238A4
+ add r0, r5, #0
+ bl FUN_020237A0
+_021D75D8:
+ add r0, r4, #0
+ bl FUN_02023918
+ bl FUN_02015E3C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD52_021D7594
+
+ thumb_func_start MOD52_021D75E8
+MOD52_021D75E8: ; 0x021D75E8
+ push {r3, lr}
+ mov r0, #0x4d
+ bl FUN_020168D0
+ mov r0, #0
+ ldr r1, _021D7600 ; =0x020F2B8C
+ mvn r0, r0
+ bl FUN_02000E7C
+ mov r0, #1
+ pop {r3, pc}
+ nop
+_021D7600: .word 0x020F2B8C
+ thumb_func_end MOD52_021D75E8
+
+ thumb_func_start MOD52_021D7604
+MOD52_021D7604: ; 0x021D7604
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r6, r2, #0
+ bl FUN_02023788
+ bl FUN_020237A0
+ add r0, r5, #0
+ bl FUN_02023794
+ bl FUN_02023840
+ add r0, r5, #0
+ bl FUN_0202881C
+ add r4, r0, #0
+ bl FUN_0201BA60
+ add r2, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02028788
+ add r0, r5, #0
+ bl FUN_0206007C
+ add r0, r5, #0
+ bl FUN_020238F4
+ add r4, r0, #0
+ bl FUN_0201BA60
+ add r7, r0, #0
+ cmp r6, #0
+ beq _021D7656
+ add r0, r4, #0
+ add r1, r7, #0
+ bl FUN_020239B8
+_021D7656:
+ add r0, r4, #0
+ bl FUN_020239CC
+ add r1, r0, #0
+ add r0, r7, #0
+ mov r2, #0
+ bl FUN_02053678
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl FUN_02023A2C
+ add r0, r5, #0
+ bl FUN_02024ECC
+ ldr r1, [sp]
+ ldr r2, _021D7684 ; =0x021D76F8
+ mov r3, #0x76
+ bl FUN_020250C4
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7684: .word 0x021D76F8
+ thumb_func_end MOD52_021D7604
+
+ thumb_func_start MOD52_021D7688
+MOD52_021D7688: ; 0x021D7688
+ push {r3, lr}
+ add r0, r1, #0
+ bl FUN_020226FC
+ cmp r0, #0
+ bne _021D769A
+ mov r0, #0
+ bl OS_ResetSystem
+_021D769A:
+ pop {r3, pc}
+ thumb_func_end MOD52_021D7688
+
+ thumb_func_start MOD52_021D769C
+MOD52_021D769C: ; 0x021D769C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl FUN_020227DC
+ add r0, r4, #0
+ bl FUN_020377E0
+ add r0, r4, #0
+ bl FUN_020238F4
+ ldr r1, _021D76C4 ; =0x00000BB8
+ bl FUN_02023A14
+ add r0, r4, #0
+ bl FUN_020462AC
+ bl FUN_0205ECD4
+ pop {r4, pc}
+ .align 2, 0
+_021D76C4: .word 0x00000BB8
+ thumb_func_end MOD52_021D769C
+
+ .section .rodata
+ ; 0x021D76C8
+ .global MOD52_UNK_021D76C8
+MOD52_UNK_021D76C8: ; 0x021D76C8
+ .incbin "baserom.nds", 0x299BE8, 0x208
diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s
new file mode 100644
index 00000000..ce93b6bc
--- /dev/null
+++ b/arm9/modules/53/asm/module_53.s
@@ -0,0 +1,4051 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD53_021D74E0
+MOD53_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D74F6
+ cmp r1, #1
+ bne _021D74F4
+ b _021D7622
+_021D74F4:
+ b _021D7630
+_021D74F6:
+ 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, _021D7638 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D763C ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #3
+ mov r1, #0x27
+ lsl r2, r2, #6
+ bl FUN_0201681C
+ ldr r1, _021D7640 ; =0x0000940C
+ add r0, r6, #0
+ mov r2, #0x27
+ bl FUN_02006268
+ ldr r2, _021D7640 ; =0x0000940C
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x27
+ bl FUN_02016B94
+ str r0, [r4]
+ mov r0, #0x27
+ bl FUN_0200AA80
+ str r0, [r4, #0xc]
+ ldr r2, _021D7644 ; =0x00000176
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x27
+ bl FUN_0200A86C
+ str r0, [r4, #0x10]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ bl MOD53_021D78D0
+ ldr r0, [r4]
+ bl MOD53_021D78F0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x27
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r6, #0
+ bl FUN_0200628C
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD53_021D7B60
+ bl FUN_0201CC08
+ mov r0, #2
+ bl FUN_0201CC24
+ ldr r0, _021D7648 ; =MOD53_021D78A8
+ ldr r1, [r4]
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD53_021D79F8
+ bl MOD53_021D7C54
+ add r0, r4, #0
+ bl MOD53_021D7C84
+ add r0, r4, #0
+ bl MOD53_021D7E08
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD53_021D7FDC
+ mov r1, #0
+ mov r0, #0x34
+ add r2, r1, #0
+ bl FUN_0200433C
+ ldr r2, _021D764C ; =0x04000304
+ ldr r0, _021D7650 ; =0xFFFF7FFF
+ ldrh r1, [r2]
+ and r0, r1
+ strh r0, [r2]
+ add r0, r4, #0
+ bl FUN_02083D48
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020334E8
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D7602
+ mov r0, #3
+ bl FUN_02032B6C
+_021D7602:
+ bl FUN_02033E74
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D761A
+ mov r0, #1
+ bl FUN_02052B74
+ mov r0, #1
+ bl FUN_0202EEB0
+_021D761A:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7630
+_021D7622:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7630:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7638: .word 0xFFFFE0FF
+_021D763C: .word 0x04001000
+_021D7640: .word 0x0000940C
+_021D7644: .word 0x00000176
+_021D7648: .word MOD53_021D78A8
+_021D764C: .word 0x04000304
+_021D7650: .word 0xFFFF7FFF
+ thumb_func_end MOD53_021D74E0
+
+ thumb_func_start MOD53_021D7654
+MOD53_021D7654: ; 0x021D7654
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D767A
+ ldr r0, _021D7750 ; =0x000093B4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D767A
+ bl FUN_0202CB8C
+ ldr r1, _021D7750 ; =0x000093B4
+ ldr r2, [r4, r1]
+ and r0, r2
+ str r0, [r4, r1]
+_021D767A:
+ mov r0, #3
+ ldr r1, [r5]
+ lsl r0, r0, #8
+ str r1, [r4, r0]
+ ldr r1, [r5]
+ add r0, r4, #0
+ bl MOD53_021D93E8
+ ldr r1, [r5]
+ cmp r1, #3
+ bhi _021D7744
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D769C: ; jump table
+ .short _021D76A4 - _021D769C - 2 ; case 0
+ .short _021D76D2 - _021D769C - 2 ; case 1
+ .short _021D7718 - _021D769C - 2 ; case 2
+ .short _021D7738 - _021D769C - 2 ; case 3
+_021D76A4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7744
+ bl FUN_02031190
+ cmp r0, #0
+ beq _021D76CC
+ bl MOD53_021D9160
+ cmp r0, #2
+ blt _021D7744
+ mov r1, #0
+ mov r0, #0x80
+ add r2, r1, #0
+ bl FUN_02030ADC
+ mov r0, #1
+ str r0, [r5]
+ b _021D7744
+_021D76CC:
+ mov r0, #1
+ str r0, [r5]
+ b _021D7744
+_021D76D2:
+ mov r0, #0xc1
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ lsl r2, r0, #3
+ ldr r0, _021D7754 ; =0x021D98A0
+ ldr r2, [r0, r2]
+ cmp r2, #0
+ beq _021D76E8
+ add r0, r4, #0
+ blx r2
+ str r0, [r5]
+_021D76E8:
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ ldr r2, _021D7758 ; =0x000E0D0F
+ add r0, r4, r0
+ mov r1, #0
+ add r3, r4, #0
+ bl MOD53_021D9014
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D770E
+ add r0, r4, #0
+ bl MOD53_021D928C
+ ldr r1, [r5]
+ cmp r1, #1
+ bne _021D770E
+ str r0, [r5]
+_021D770E:
+ ldr r0, _021D775C ; =0x00004374
+ add r0, r4, r0
+ bl MOD53_021D8FB8
+ b _021D7744
+_021D7718:
+ mov r0, #0xc1
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ lsl r3, r0, #3
+ ldr r0, _021D7754 ; =0x021D98A0
+ ldr r2, [r0, r3]
+ cmp r2, #0
+ beq _021D7744
+ ldr r0, _021D7760 ; =0x021D98A4
+ ldr r0, [r0, r3]
+ cmp r0, #0
+ beq _021D7744
+ add r0, r4, #0
+ blx r2
+ str r0, [r5]
+ b _021D7744
+_021D7738:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7744
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D7744:
+ ldr r0, [r4, #0x34]
+ bl FUN_0201FDEC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D7750: .word 0x000093B4
+_021D7754: .word 0x021D98A0
+_021D7758: .word 0x000E0D0F
+_021D775C: .word 0x00004374
+_021D7760: .word 0x021D98A4
+ thumb_func_end MOD53_021D7654
+
+ thumb_func_start MOD53_021D7764
+MOD53_021D7764: ; 0x021D7764
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ bl FUN_02006278
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r4, r0, #0
+ ldr r0, [r7]
+ cmp r0, #3
+ bls _021D7780
+ b _021D789E
+_021D7780:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D778C: ; jump table
+ .short _021D7794 - _021D778C - 2 ; case 0
+ .short _021D7820 - _021D778C - 2 ; case 1
+ .short _021D784E - _021D778C - 2 ; case 2
+ .short _021D786E - _021D778C - 2 ; case 3
+_021D7794:
+ mov r0, #0x27
+ bl FUN_020294A8
+ add r1, r0, #0
+ ldr r0, [r4, #4]
+ mov r2, #4
+ bl FUN_02028AD4
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x17
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r4, #0
+ add r5, r6, #0
+_021D77D8:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D77D8
+ ldr r0, [r6, #0x34]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ add r0, r6, #0
+ bl MOD53_021D8104
+ ldr r0, [r6]
+ bl MOD53_021D7B24
+ bl FUN_0201CD04
+ ldr r0, [r6, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r6, #0xc]
+ bl FUN_0200AB18
+ ldr r0, [r7]
+ add r0, r0, #1
+ str r0, [r7]
+ b _021D789E
+_021D7820:
+ mov r0, #1
+ bl FUN_02032B6C
+ bl FUN_02031B50
+ ldr r0, [r4]
+ bl FUN_02052F8C
+ ldr r2, _021D78A4 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ mov r0, #0
+ bl FUN_02052B74
+ mov r0, #0
+ bl FUN_0202EEB0
+ ldr r0, [r7]
+ add r0, r0, #1
+ str r0, [r7]
+ b _021D789E
+_021D784E:
+ mov r1, #0x25
+ lsl r1, r1, #0xa
+ ldr r1, [r6, r1]
+ cmp r1, #0
+ beq _021D7868
+ bl FUN_0202CB8C
+ cmp r0, #1
+ bne _021D789E
+ ldr r0, [r7]
+ add r0, r0, #1
+ str r0, [r7]
+ b _021D789E
+_021D7868:
+ add r0, r0, #1
+ str r0, [r7]
+ b _021D789E
+_021D786E:
+ mov r0, #2
+ bl FUN_02032B6C
+ add r0, r6, #0
+ bl MOD53_021D7AE8
+ ldr r0, [r6, #8]
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x27
+ bl FUN_020168D0
+ mov r0, #2
+ bl FUN_02032B6C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D789E:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D78A4: .word 0x04000304
+ thumb_func_end MOD53_021D7764
+
+ thumb_func_start MOD53_021D78A8
+MOD53_021D78A8: ; 0x021D78A8
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ add r0, r4, #0
+ bl FUN_0201AB60
+ ldr r3, _021D78C8 ; =0x027E0000
+ ldr r1, _021D78CC ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D78C8: .word 0x027E0000
+_021D78CC: .word 0x00003FF8
+ thumb_func_end MOD53_021D78A8
+
+ thumb_func_start MOD53_021D78D0
+MOD53_021D78D0: ; 0x021D78D0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D78EC ; =0x021D95A4
+ add r3, sp, #0
+ mov r2, #5
+_021D78DA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D78DA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D78EC: .word 0x021D95A4
+ thumb_func_end MOD53_021D78D0
+
+ thumb_func_start MOD53_021D78F0
+MOD53_021D78F0: ; 0x021D78F0
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _021D79E0 ; =0x021D94F8
+ 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, _021D79E4 ; =0x021D9518
+ 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, _021D79E8 ; =0x021D9550
+ 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, _021D79EC ; =0x021D956C
+ 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, _021D79F0 ; =0x021D9588
+ 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, _021D79F4 ; =0x021D9534
+ 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, #0x27
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x27
+ bl FUN_02017F18
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ nop
+_021D79E0: .word 0x021D94F8
+_021D79E4: .word 0x021D9518
+_021D79E8: .word 0x021D9550
+_021D79EC: .word 0x021D956C
+_021D79F0: .word 0x021D9588
+_021D79F4: .word 0x021D9534
+ thumb_func_end MOD53_021D78F0
+
+ thumb_func_start MOD53_021D79F8
+MOD53_021D79F8: ; 0x021D79F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D7ACC ; =0x0000438A
+ add r6, r7, #0
+ add r4, r7, r0
+ mov r0, #0x38
+ add r5, r7, #0
+ str r0, [sp, #4]
+_021D7A0E:
+ mov r0, #8
+ mov r1, #0x27
+ bl FUN_020219F4
+ str r0, [r6, #0x14]
+ ldrb r1, [r4]
+ ldr r0, [sp, #4]
+ bic r1, r0
+ strb r1, [r4]
+ ldr r0, _021D7AD0 ; =0x000043B6
+ mov r1, #0
+ strh r1, [r6, r0]
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r4, #0xa
+ add r5, #8
+ str r0, [sp]
+ cmp r0, #5
+ blt _021D7A0E
+ mov r0, #0xa
+ mov r1, #0x27
+ bl FUN_020219F4
+ str r0, [r7, #0x28]
+ mov r0, #0x50
+ mov r1, #0x27
+ bl FUN_020219F4
+ str r0, [r7, #0x2c]
+ ldr r0, _021D7AD4 ; =0x00004376
+ mov r2, #0
+ strb r2, [r7, r0]
+ mov r1, #1
+ add r0, r0, #1
+ strb r1, [r7, r0]
+ ldr r0, _021D7AD8 ; =0x000093F4
+ str r1, [r7, r0]
+ add r0, r0, #4
+ str r2, [r7, r0]
+ mov r0, #0xc6
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r7, r0]
+ bl FUN_0202CB8C
+ mov r1, #0xc7
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ ldr r2, _021D7ADC ; =0x000093FC
+ mov r3, #0
+ str r3, [r7, r2]
+ add r0, r2, #4
+ str r3, [r7, r0]
+ add r0, r2, #0
+ sub r1, #0x18
+ str r3, [r7, r1]
+ add r0, #8
+ str r3, [r7, r0]
+ add r2, #0xc
+ str r3, [r7, r2]
+ bl FUN_02031190
+ add r0, r7, #0
+ mov r1, #4
+ bl MOD53_021D93E0
+ ldr r0, [r7, #0x10]
+ ldr r2, [r7, #0x28]
+ mov r1, #7
+ bl FUN_0200A8E0
+ mov r1, #0xf
+ mov r0, #0x27
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ ldr r1, _021D7AE0 ; =0x000043C8
+ str r0, [r7, r1]
+ mov r0, #0x27
+ bl FUN_02014590
+ ldr r1, _021D7AE4 ; =0x000093F0
+ str r0, [r7, r1]
+ mov r0, #0xc5
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r7, r0]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7ACC: .word 0x0000438A
+_021D7AD0: .word 0x000043B6
+_021D7AD4: .word 0x00004376
+_021D7AD8: .word 0x000093F4
+_021D7ADC: .word 0x000093FC
+_021D7AE0: .word 0x000043C8
+_021D7AE4: .word 0x000093F0
+ thumb_func_end MOD53_021D79F8
+
+ thumb_func_start MOD53_021D7AE8
+MOD53_021D7AE8: ; 0x021D7AE8
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, _021D7B1C ; =0x000043C8
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ ldr r0, _021D7B20 ; =0x000093F0
+ ldr r0, [r6, r0]
+ bl FUN_020145A8
+ mov r4, #0
+ add r5, r6, #0
+_021D7B00:
+ ldr r0, [r5, #0x14]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _021D7B00
+ ldr r0, [r6, #0x2c]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x28]
+ bl FUN_02021A20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D7B1C: .word 0x000043C8
+_021D7B20: .word 0x000093F0
+ thumb_func_end MOD53_021D7AE8
+
+ thumb_func_start MOD53_021D7B24
+MOD53_021D7B24: ; 0x021D7B24
+ 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, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD53_021D7B24
+
+ thumb_func_start MOD53_021D7B60
+MOD53_021D7B60: ; 0x021D7B60
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5]
+ mov r0, #0x40
+ mov r1, #0
+ str r0, [sp]
+ mov r0, #0x27
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0x27
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ mov r1, #1
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x27
+ bl FUN_02002EEC
+ mov r1, #0x1a
+ mov r0, #4
+ lsl r1, r1, #4
+ mov r2, #0x27
+ bl FUN_02002EEC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x27
+ mov r1, #2
+ str r0, [sp, #0xc]
+ mov r0, #0x4e
+ 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 r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x27
+ str r0, [sp, #0xc]
+ mov r0, #0x4e
+ mov r1, #4
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x27
+ str r0, [sp, #0xc]
+ mov r0, #0x4e
+ mov r1, #3
+ 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, #0x27
+ mov r1, #5
+ str r0, [sp, #0xc]
+ mov r0, #0x4e
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_020068C8
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #8]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x27
+ 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, #0x27
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD53_021D7B60
+
+ thumb_func_start MOD53_021D7C54
+MOD53_021D7C54: ; 0x021D7C54
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021D7C80 ; =0x021D9508
+ 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, #0x27
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7C80: .word 0x021D9508
+ thumb_func_end MOD53_021D7C54
+
+ thumb_func_start MOD53_021D7C84
+MOD53_021D7C84: ; 0x021D7C84
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ 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, #0x27
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r5, #0
+ mov r0, #0x35
+ add r1, #0x38
+ mov r2, #0x27
+ bl FUN_02008C9C
+ str r0, [r5, #0x34]
+ add r0, r5, #0
+ mov r2, #1
+ add r0, #0x38
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0x16
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #4
+_021D7CCA:
+ mov r0, #2
+ add r1, r6, #0
+ mov r2, #0x27
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _021D7CCA
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x27
+ str r0, [sp, #8]
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x4e
+ mov r2, #6
+ bl FUN_02008F34
+ mov r1, #0x17
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ mov r0, #0x27
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x4e
+ add r3, r2, #0
+ bl FUN_02008FEC
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x4e
+ mov r2, #7
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x4e
+ mov r2, #8
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x4e
+ mov r2, #6
+ bl FUN_02008F34
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0x27
+ mov r2, #0
+ sub r1, #0x1c
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x4e
+ add r3, r2, #0
+ bl FUN_02008FEC
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x4e
+ mov r2, #7
+ bl FUN_020090AC
+ mov r1, #0x62
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x4e
+ mov r2, #8
+ bl FUN_020090AC
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ bl FUN_02009A50
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD53_021D7C84
+
+ thumb_func_start MOD53_021D7E08
+MOD53_021D7E08: ; 0x021D7E08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ 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]
+ mov r2, #0x16
+ str r1, [sp, #0x10]
+ lsl r2, r2, #4
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r5, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r1, #1
+ mov r3, #0x16
+ 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, [r5, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ add r3, #0x54
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r5, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ ldr r0, [r5, #0x34]
+ mov r6, #0
+ str r0, [sp, #0x34]
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r0, r5, r0
+ str r0, [sp, #0x38]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r6, [sp, #0x44]
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x4c]
+ str r0, [sp, #0x50]
+ add r0, sp, #0x34
+ strh r6, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x58]
+ str r0, [sp, #0x5c]
+ mov r0, #0x27
+ str r0, [sp, #0x60]
+ mov r0, #0x6d
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r7, #0x18
+ add r4, r5, #0
+ str r0, [sp, #0x2c]
+_021D7EBC:
+ ldr r0, [sp, #0x2c]
+ str r0, [sp, #0x38]
+ lsl r0, r7, #0xc
+ str r0, [sp, #0x3c]
+ mov r0, #1
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x40]
+ mov r0, #2
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x34
+ bl FUN_0201FE94
+ mov r1, #0x76
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x76
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ bl FUN_02020130
+ mov r0, #0x76
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r7, #0x28
+ add r4, r4, #4
+ cmp r6, #5
+ blt _021D7EBC
+ mov r0, #0x6d
+ lsl r0, r0, #2
+ add r0, r5, r0
+ ldr r6, _021D7FD8 ; =0x021D9600
+ mov r7, #0
+ add r4, r5, #0
+ str r0, [sp, #0x30]
+_021D7F14:
+ ldr r0, [sp, #0x30]
+ str r0, [sp, #0x38]
+ ldrh r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x3c]
+ ldrh r0, [r6, #2]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x40]
+ add r0, sp, #0x34
+ bl FUN_0201FE94
+ mov r1, #0x92
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x92
+ lsl r0, r0, #2
+ ldrh r1, [r6, #4]
+ ldr r0, [r4, r0]
+ bl FUN_02020130
+ cmp r7, #8
+ blt _021D7F56
+ mov r0, #0x92
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl FUN_02020238
+_021D7F56:
+ add r7, r7, #1
+ add r6, r6, #6
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _021D7F14
+ mov r0, #0x92
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_02020130
+ mov r7, #6
+ mov r6, #0
+ mov r4, #0x20
+ lsl r7, r7, #0xe
+_021D7F74:
+ mov r0, #1
+ lsl r1, r4, #0xc
+ lsl r0, r0, #0x14
+ add r0, r1, r0
+ str r0, [sp, #0x40]
+ add r0, sp, #0x34
+ str r7, [sp, #0x3c]
+ bl FUN_0201FE94
+ mov r1, #0x21
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_02020130
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020310
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r4, #0x20
+ add r5, r5, #4
+ cmp r6, #5
+ blt _021D7F74
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7FD8: .word 0x021D9600
+ thumb_func_end MOD53_021D7E08
+
+ thumb_func_start MOD53_021D7FDC
+MOD53_021D7FDC: ; 0x021D7FDC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ mov r0, #1
+ 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
+ mov r1, #0xb6
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r7]
+ add r1, r7, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r0, r7, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #0xf
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r2, #1
+ str r0, [sp, #0xc]
+ str r2, [sp, #0x10]
+ mov r1, #0xb2
+ lsl r1, r1, #2
+ ldr r0, [r7]
+ add r1, r7, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0xb2
+ lsl r0, r0, #2
+ add r0, r7, r0
+ mov r1, #2
+ 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, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D80F8 ; =0x000001C3
+ mov r1, #0xba
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r7]
+ add r1, r7, r1
+ mov r2, #1
+ mov r3, #0x19
+ bl FUN_02019064
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r7, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r1, [r7, #0x28]
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0x30
+ bl FUN_02002F40
+ add r3, r0, #0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D80FC ; =0x00070100
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xba
+ lsl r0, r0, #2
+ ldr r2, [r7, #0x28]
+ add r0, r7, r0
+ mov r1, #1
+ add r3, r3, #2
+ bl FUN_0201BDE0
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ mov r6, #1
+ mov r4, #3
+ add r5, r7, r0
+_021D80A8:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xa
+ 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]
+ add r1, r5, #0
+ mov r2, #4
+ mov r3, #5
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x14]
+ add r6, #0x14
+ add r0, r0, #1
+ add r4, r4, #4
+ add r5, #0x10
+ str r0, [sp, #0x14]
+ cmp r0, #5
+ blt _021D80A8
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ ldr r2, _021D8100 ; =0x000E0D0F
+ add r0, r7, r0
+ mov r1, #0
+ add r3, r7, #0
+ bl MOD53_021D9014
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D80F8: .word 0x000001C3
+_021D80FC: .word 0x00070100
+_021D8100: .word 0x000E0D0F
+ thumb_func_end MOD53_021D7FDC
+
+ thumb_func_start MOD53_021D8104
+MOD53_021D8104: ; 0x021D8104
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r0, #0x9e
+ lsl r0, r0, #2
+ mov r4, #0
+ add r5, r6, r0
+_021D8110:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #5
+ blt _021D8110
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+ mov r0, #0xb2
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD53_021D8104
+
+ thumb_func_start MOD53_021D8140
+MOD53_021D8140: ; 0x021D8140
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r1, #0
+ ble _021D815E
+ lsl r0, r1, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D816C
+_021D815E:
+ lsl r0, r1, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D816C:
+ bl _ffix
+ sub r5, #8
+ str r0, [sp]
+ cmp r5, #0
+ ble _021D818A
+ lsl r0, r5, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D8198
+_021D818A:
+ lsl r0, r5, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D8198:
+ 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}
+ .align 2, 0
+ thumb_func_end MOD53_021D8140
+
+ thumb_func_start MOD53_021D81B0
+MOD53_021D81B0: ; 0x021D81B0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _021D83AC ; =0x021D95CC
+ bl FUN_02020988
+ mov r1, #0
+ mvn r1, r1
+ str r0, [sp, #8]
+ cmp r0, r1
+ beq _021D81FE
+ cmp r0, #0xb
+ bhi _021D81FE
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D81DA: ; jump table
+ .short _021D81F2 - _021D81DA - 2 ; case 0
+ .short _021D81F2 - _021D81DA - 2 ; case 1
+ .short _021D81F2 - _021D81DA - 2 ; case 2
+ .short _021D81F2 - _021D81DA - 2 ; case 3
+ .short _021D81F2 - _021D81DA - 2 ; case 4
+ .short _021D81F2 - _021D81DA - 2 ; case 5
+ .short _021D81F2 - _021D81DA - 2 ; case 6
+ .short _021D81F2 - _021D81DA - 2 ; case 7
+ .short _021D821A - _021D81DA - 2 ; case 8
+ .short _021D82BE - _021D81DA - 2 ; case 9
+ .short _021D82BE - _021D81DA - 2 ; case 10
+ .short _021D82BE - _021D81DA - 2 ; case 11
+_021D81F2:
+ ldr r2, _021D83B0 ; =0x00004376
+ ldr r0, [sp]
+ ldrb r1, [r0, r2]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _021D8200
+_021D81FE:
+ b _021D8316
+_021D8200:
+ add r1, r0, #0
+ ldr r0, [sp]
+ strb r1, [r0, r2]
+ mov r1, #0x92
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r1, [sp, #8]
+ bl MOD53_021D83DC
+ ldr r0, _021D83B4 ; =0x000005DC
+ bl FUN_020054C8
+ b _021D8316
+_021D821A:
+ mov r1, #0xc1
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ cmp r0, #4
+ bne _021D8316
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8280
+ bl FUN_0202CB8C
+ mov r2, #0xc7
+ ldr r1, [sp]
+ lsl r2, r2, #2
+ ldr r1, [r1, r2]
+ cmp r1, r0
+ beq _021D8246
+ ldr r0, _021D83B8 ; =0x000005F2
+ bl FUN_020054C8
+ b _021D8316
+_021D8246:
+ bl FUN_02030F20
+ bl FUN_02032B6C
+ ldr r1, _021D83BC ; =0x000093F4
+ ldr r0, [sp]
+ mov r2, #2
+ str r2, [r0, r1]
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD53_021D91C8
+ ldr r0, [sp]
+ mov r1, #5
+ bl MOD53_021D93E0
+ mov r1, #0x92
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ mov r1, #1
+ bl MOD53_021D840C
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021D83B4 ; =0x000005DC
+ bl FUN_020054C8
+ b _021D8316
+_021D8280:
+ ldr r1, _021D83C0 ; =0x0000438B
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ cmp r0, #2
+ bne _021D8292
+ ldr r0, _021D83B8 ; =0x000005F2
+ bl FUN_020054C8
+ b _021D8316
+_021D8292:
+ mov r1, #1
+ ldr r0, [sp]
+ add r2, r1, #0
+ bl MOD53_021D91C8
+ ldr r0, [sp]
+ mov r1, #5
+ bl MOD53_021D93E0
+ mov r1, #0x92
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ mov r1, #1
+ bl MOD53_021D840C
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021D83B4 ; =0x000005DC
+ bl FUN_020054C8
+ b _021D8316
+_021D82BE:
+ ldr r0, [sp, #8]
+ ldr r5, [sp]
+ str r0, [sp, #0xc]
+ sub r0, #9
+ mov r4, #0
+ mov r7, #0x1e
+ mov r6, #0x1d
+ str r0, [sp, #0xc]
+_021D82CE:
+ ldr r0, [sp, #0xc]
+ cmp r0, r4
+ bne _021D82E2
+ mov r0, #0x9b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ bl FUN_02020130
+ b _021D82EE
+_021D82E2:
+ mov r0, #0x9b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_02020130
+_021D82EE:
+ add r4, r4, #1
+ add r7, r7, #2
+ add r5, r5, #4
+ add r6, r6, #2
+ cmp r4, #3
+ blt _021D82CE
+ ldr r2, _021D83C4 ; =0x00004377
+ ldr r0, [sp]
+ ldrb r1, [r0, r2]
+ ldr r0, [sp, #8]
+ sub r0, #9
+ str r0, [sp, #8]
+ cmp r1, r0
+ beq _021D8316
+ add r1, r0, #0
+ ldr r0, [sp]
+ strb r1, [r0, r2]
+ ldr r0, _021D83C8 ; =0x000005E5
+ bl FUN_020054C8
+_021D8316:
+ ldr r0, _021D83CC ; =0x021D94F0
+ bl FUN_02020968
+ add r4, r0, #0
+ bl FUN_02031190
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ add r1, r0, r1
+ mov r0, #0x76
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _021D836C
+ bl FUN_02031190
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ ldr r2, _021D83D0 ; =0x021C48F8
+ add r1, r0, r1
+ mov r0, #0x76
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldrh r1, [r2, #0x1c]
+ ldrh r2, [r2, #0x1e]
+ bl MOD53_021D8140
+ bl FUN_02031190
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ add r1, r0, r1
+ mov r0, #0x76
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D836C:
+ add r0, sp, #0x10
+ mov r1, #4
+ mov r2, #0x40
+ bl FUN_0201CD38
+ cmp r0, #1
+ bne _021D83A6
+ ldr r3, _021D83D4 ; =0x00004378
+ ldr r0, [sp]
+ ldr r2, [sp]
+ sub r4, r3, #2
+ ldrb r2, [r2, r4]
+ add r0, r0, r3
+ sub r4, r3, #1
+ ldr r3, [sp]
+ add r1, sp, #0x10
+ ldrb r3, [r3, r4]
+ bl MOD53_021D947C
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _021D83A6
+ ldr r1, _021D83D8 ; =0x00004380
+ ldr r0, [sp]
+ ldrb r2, [r0, r1]
+ mov r0, #0x38
+ bic r2, r0
+ ldr r0, [sp]
+ strb r2, [r0, r1]
+_021D83A6:
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D83AC: .word 0x021D95CC
+_021D83B0: .word 0x00004376
+_021D83B4: .word 0x000005DC
+_021D83B8: .word 0x000005F2
+_021D83BC: .word 0x000093F4
+_021D83C0: .word 0x0000438B
+_021D83C4: .word 0x00004377
+_021D83C8: .word 0x000005E5
+_021D83CC: .word 0x021D94F0
+_021D83D0: .word 0x021C48F8
+_021D83D4: .word 0x00004378
+_021D83D8: .word 0x00004380
+ thumb_func_end MOD53_021D81B0
+
+ thumb_func_start MOD53_021D83DC
+MOD53_021D83DC: ; 0x021D83DC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, _021D8408 ; =0x021D9600
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r6, #0
+_021D83E6:
+ cmp r6, r7
+ ldr r0, [r5]
+ bne _021D83F6
+ ldrh r1, [r4, #4]
+ add r1, r1, #1
+ bl FUN_02020130
+ b _021D83FC
+_021D83F6:
+ ldrh r1, [r4, #4]
+ bl FUN_02020130
+_021D83FC:
+ add r6, r6, #1
+ add r4, r4, #6
+ add r5, r5, #4
+ cmp r6, #8
+ blt _021D83E6
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8408: .word 0x021D9600
+ thumb_func_end MOD53_021D83DC
+
+ thumb_func_start MOD53_021D840C
+MOD53_021D840C: ; 0x021D840C
+ push {r3, lr}
+ cmp r1, #1
+ ldr r0, [r0, #0x20]
+ bne _021D841C
+ mov r1, #0x16
+ bl FUN_02020130
+ pop {r3, pc}
+_021D841C:
+ mov r1, #0x15
+ bl FUN_02020130
+ pop {r3, pc}
+ thumb_func_end MOD53_021D840C
+
+ thumb_func_start MOD53_021D8424
+MOD53_021D8424: ; 0x021D8424
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD53_021D81B0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8446
+ bl MOD53_021D8FF8
+ cmp r0, #1
+ beq _021D844C
+ add r0, r5, #0
+ bl MOD53_021D90F8
+ b _021D844C
+_021D8446:
+ add r0, r5, #0
+ bl MOD53_021D90F8
+_021D844C:
+ add r0, r5, #0
+ bl MOD53_021D8F50
+ ldr r2, _021D846C ; =0x00004382
+ mov r0, #0xb2
+ lsl r0, r0, #2
+ add r1, r5, r2
+ add r2, #0x32
+ add r0, r5, r0
+ add r2, r5, r2
+ mov r3, #1
+ bl MOD53_021D8E84
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D846C: .word 0x00004382
+ thumb_func_end MOD53_021D8424
+
+ thumb_func_start MOD53_021D8470
+MOD53_021D8470: ; 0x021D8470
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD53_021D8F50
+ ldr r2, _021D8490 ; =0x00004382
+ mov r0, #0xb2
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0x32
+ add r0, r4, r0
+ add r2, r4, r2
+ mov r3, #0
+ bl MOD53_021D8E84
+ pop {r4, pc}
+ nop
+_021D8490: .word 0x00004382
+ thumb_func_end MOD53_021D8470
+
+ thumb_func_start MOD53_021D8494
+MOD53_021D8494: ; 0x021D8494
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ mov r1, #0x32
+ lsl r1, r1, #4
+ ldr r1, [r5, r1]
+ cmp r1, r0
+ bne _021D84B4
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0
+ bl MOD53_021D91C8
+ b _021D84BE
+_021D84B4:
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD53_021D91C8
+_021D84BE:
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD53_021D93E0
+ ldr r0, _021D84E4 ; =0x000005E4
+ bl FUN_020054C8
+ mov r1, #0x1e
+ add r2, r1, #0
+ ldr r0, _021D84E8 ; =0x04000050
+ sub r2, #0x24
+ bl G2x_SetBlendBrightness_
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D84E4: .word 0x000005E4
+_021D84E8: .word 0x04000050
+ thumb_func_end MOD53_021D8494
+
+ thumb_func_start MOD53_021D84EC
+MOD53_021D84EC: ; 0x021D84EC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r4, pc}
+ thumb_func_end MOD53_021D84EC
+
+ thumb_func_start MOD53_021D84F8
+MOD53_021D84F8: ; 0x021D84F8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _021D8524 ; =0x04000050
+ mov r2, #0
+ strh r2, [r1]
+ add r5, r0, #0
+ mov r1, #1
+ bl MOD53_021D926C
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD53_021D93E0
+ add r0, r5, #0
+ bl MOD53_021D8470
+ ldr r0, _021D8528 ; =0x00009404
+ mov r1, #0
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8524: .word 0x04000050
+_021D8528: .word 0x00009404
+ thumb_func_end MOD53_021D84F8
+
+ thumb_func_start MOD53_021D852C
+MOD53_021D852C: ; 0x021D852C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x30]
+ add r4, r1, #0
+ bl MOD53_021D923C
+ cmp r0, #0
+ beq _021D8570
+ ldr r0, [r5]
+ mov r1, #0x19
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0xb4
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ add r0, sp, #0
+ strb r1, [r0, #0x10]
+ mov r1, #6
+ strb r1, [r0, #0x11]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl MOD53_021D941C
+ cmp r0, #0
+ bne _021D8568
+ bl ErrorHandling
+_021D8568:
+ add r0, r5, #0
+ mov r1, #6
+ bl MOD53_021D93E0
+_021D8570:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ thumb_func_end MOD53_021D852C
+
+ thumb_func_start MOD53_021D857C
+MOD53_021D857C: ; 0x021D857C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _021D86C8 ; =0x00004380
+ mov r0, #0x38
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ strb r2, [r5, r1]
+ add r1, #0xb
+ ldrb r0, [r5, r1]
+ cmp r0, #2
+ bne _021D85BA
+ bl FUN_02031190
+ cmp r0, #0
+ beq _021D85BA
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r5, #0
+ bl MOD53_021D9460
+ cmp r0, #0
+ beq _021D85B4
+ ldr r0, _021D86CC ; =0x000005F2
+ bl FUN_020054C8
+_021D85B4:
+ add sp, #4
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, pc}
+_021D85BA:
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D85D6
+ ldr r0, _021D86D0 ; =0x000093B4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D85D6
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add sp, #4
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, pc}
+_021D85D6:
+ bl MOD53_021D9160
+ add r6, r0, #0
+ bl FUN_02030F20
+ cmp r6, r0
+ beq _021D85F0
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add sp, #4
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, pc}
+_021D85F0:
+ ldr r0, _021D86D4 ; =0x000093F0
+ ldr r0, [r5, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _021D8602
+ cmp r0, #2
+ beq _021D8672
+ b _021D86BA
+_021D8602:
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D861E
+ add r0, r5, #0
+ mov r1, #0xd
+ bl MOD53_021D93E0
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #1
+ bl MOD53_021D91C8
+ b _021D8660
+_021D861E:
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r1, #0
+ add r0, sp, #0
+ strb r1, [r0, #2]
+ bl FUN_02031190
+ add r1, sp, #0
+ strb r0, [r1]
+ ldr r0, _021D86D8 ; =0x000093BC
+ mov r1, #1
+ strb r1, [r5, r0]
+ mov r1, #0
+ sub r0, r0, #2
+ strh r1, [r5, r0]
+ add r0, r5, #0
+ mov r1, #7
+ bl MOD53_021D93E0
+ mov r0, #0x7e
+ add r1, sp, #0
+ mov r2, #4
+ bl FUN_02030ADC
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+_021D8660:
+ add r0, r5, #0
+ bl MOD53_021D9440
+ mov r0, #0xb2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_020191D0
+ b _021D86BA
+_021D8672:
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD53_021D93E0
+ mov r0, #0x92
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl MOD53_021D840C
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ bl MOD53_021D9440
+ mov r0, #0xb2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_020191D0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D86BA
+ bl FUN_02030F20
+ add r0, r0, #1
+ bl FUN_02032B6C
+ ldr r0, _021D86DC ; =0x000093F4
+ mov r1, #1
+ str r1, [r5, r0]
+_021D86BA:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D86C8: .word 0x00004380
+_021D86CC: .word 0x000005F2
+_021D86D0: .word 0x000093B4
+_021D86D4: .word 0x000093F0
+_021D86D8: .word 0x000093BC
+_021D86DC: .word 0x000093F4
+ thumb_func_end MOD53_021D857C
+
+ thumb_func_start MOD53_021D86E0
+MOD53_021D86E0: ; 0x021D86E0
+ push {r4, lr}
+ ldr r2, _021D86FC ; =0x00004380
+ add r4, r1, #0
+ ldrb r3, [r0, r2]
+ mov r1, #0x38
+ bic r3, r1
+ strb r3, [r0, r2]
+ ldr r1, _021D8700 ; =0x000093BA
+ mov r2, #0
+ strh r2, [r0, r1]
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D86FC: .word 0x00004380
+_021D8700: .word 0x000093BA
+ thumb_func_end MOD53_021D86E0
+
+ thumb_func_start MOD53_021D8704
+MOD53_021D8704: ; 0x021D8704
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _021D8790 ; =0x00004380
+ mov r0, #0x38
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ strb r2, [r5, r1]
+ bl FUN_02030F20
+ ldr r1, _021D8794 ; =0x000093B8
+ ldrh r1, [r5, r1]
+ cmp r1, r0
+ bne _021D872C
+ bl MOD53_021D9160
+ ldr r1, _021D8794 ; =0x000093B8
+ ldrh r2, [r5, r1]
+ cmp r2, r0
+ beq _021D8744
+_021D872C:
+ ldr r0, _021D8798 ; =0x000093BA
+ mov r1, #0
+ strh r1, [r5, r0]
+ add r0, r5, #0
+ mov r1, #9
+ bl MOD53_021D93E0
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021D8744:
+ add r0, r1, #2
+ ldrsh r0, [r5, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r5, r0]
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x1e
+ ble _021D8784
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r1, #1
+ add r0, sp, #0
+ strb r1, [r0, #2]
+ bl FUN_02031190
+ add r1, sp, #0
+ strb r0, [r1]
+ mov r0, #0x7e
+ add r1, sp, #0
+ mov r2, #4
+ bl FUN_02030ADC
+ ldr r0, _021D8798 ; =0x000093BA
+ mov r1, #0
+ strh r1, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0xa
+ bl MOD53_021D93E0
+_021D8784:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8790: .word 0x00004380
+_021D8794: .word 0x000093B8
+_021D8798: .word 0x000093BA
+ thumb_func_end MOD53_021D8704
+
+ thumb_func_start MOD53_021D879C
+MOD53_021D879C: ; 0x021D879C
+ push {r3, r4, r5, lr}
+ ldr r2, _021D87D0 ; =0x00004380
+ add r5, r0, #0
+ ldrb r3, [r5, r2]
+ add r4, r1, #0
+ mov r1, #0x38
+ bic r3, r1
+ strb r3, [r5, r2]
+ ldr r1, _021D87D4 ; =0x000093BC
+ mov r2, #0
+ strb r2, [r5, r1]
+ mov r1, #4
+ bl MOD53_021D93E0
+ mov r0, #0x92
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl MOD53_021D840C
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D87D0: .word 0x00004380
+_021D87D4: .word 0x000093BC
+ thumb_func_end MOD53_021D879C
+
+ thumb_func_start MOD53_021D87D8
+MOD53_021D87D8: ; 0x021D87D8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #6
+ mov r2, #1
+ bl MOD53_021D91C8
+ add r0, r5, #0
+ mov r1, #0xb
+ bl MOD53_021D93E0
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD53_021D87D8
+
+ thumb_func_start MOD53_021D87F8
+MOD53_021D87F8: ; 0x021D87F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x30]
+ add r4, r1, #0
+ bl MOD53_021D923C
+ cmp r0, #0
+ beq _021D8818
+ mov r0, #0x31
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0xc
+ bl MOD53_021D93E0
+_021D8818:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD53_021D87F8
+
+ thumb_func_start MOD53_021D8824
+MOD53_021D8824: ; 0x021D8824
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x31
+ lsl r0, r0, #4
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ ldr r0, [r5, r0]
+ cmp r0, #0x3c
+ ble _021D8854
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x27
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r4, #3
+_021D8854:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD53_021D8824
+
+ thumb_func_start MOD53_021D8860
+MOD53_021D8860: ; 0x021D8860
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x30]
+ add r4, r1, #0
+ bl MOD53_021D923C
+ cmp r0, #0
+ beq _021D88A4
+ ldr r0, [r5]
+ mov r1, #0x19
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0xb4
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ add r0, sp, #0
+ strb r1, [r0, #0x10]
+ mov r1, #6
+ strb r1, [r0, #0x11]
+ add r0, r5, #0
+ add r1, sp, #0
+ bl MOD53_021D941C
+ cmp r0, #0
+ bne _021D889C
+ bl ErrorHandling
+_021D889C:
+ add r0, r5, #0
+ mov r1, #0xe
+ bl MOD53_021D93E0
+_021D88A4:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ thumb_func_end MOD53_021D8860
+
+ thumb_func_start MOD53_021D88B0
+MOD53_021D88B0: ; 0x021D88B0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021D8960 ; =0x000093F0
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0201466C
+ add r4, r0, #0
+ bl MOD53_021D9160
+ mov r1, #0xc6
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ cmp r1, r0
+ bne _021D88D6
+ ldr r0, _021D8964 ; =0x000093B4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D88E0
+_021D88D6:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_021D88E0:
+ cmp r4, #1
+ beq _021D88EA
+ cmp r4, #2
+ beq _021D8916
+ b _021D8954
+_021D88EA:
+ add r0, r5, #0
+ mov r1, #0xf
+ bl MOD53_021D93E0
+ mov r1, #0
+ mov r0, #0x7f
+ add r2, r1, #0
+ bl FUN_02030BC4
+ mov r0, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r6, #2
+ bl MOD53_021D9440
+ b _021D8954
+_021D8916:
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD53_021D93E0
+ mov r0, #0x92
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl MOD53_021D840C
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ bl MOD53_021D9440
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8954
+ bl FUN_02030F20
+ add r0, r0, #1
+ bl FUN_02032B6C
+ ldr r0, _021D8968 ; =0x000093F4
+ mov r1, #1
+ str r1, [r5, r0]
+_021D8954:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ nop
+_021D8960: .word 0x000093F0
+_021D8964: .word 0x000093B4
+_021D8968: .word 0x000093F4
+ thumb_func_end MOD53_021D88B0
+
+ thumb_func_start MOD53_021D896C
+MOD53_021D896C: ; 0x021D896C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #3
+ mov r2, #1
+ bl MOD53_021D91C8
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD53_021D93E0
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD53_021D896C
+
+ thumb_func_start MOD53_021D89A0
+MOD53_021D89A0: ; 0x021D89A0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x30]
+ add r4, r1, #0
+ bl MOD53_021D923C
+ cmp r0, #0
+ beq _021D89BE
+ add r0, r5, #0
+ mov r1, #0x11
+ bl MOD53_021D93E0
+ mov r0, #0xc8
+ bl FUN_02031588
+_021D89BE:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD53_021D89A0
+
+ thumb_func_start MOD53_021D89C8
+MOD53_021D89C8: ; 0x021D89C8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0xc8
+ add r5, r1, #0
+ bl FUN_020315D8
+ cmp r0, #0
+ bne _021D89E2
+ bl FUN_02030F20
+ cmp r0, #1
+ bne _021D89FA
+_021D89E2:
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x27
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r5, #3
+_021D89FA:
+ add r0, r4, #0
+ bl MOD53_021D8470
+ add r0, r5, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD53_021D89C8
+
+ thumb_func_start MOD53_021D8A08
+MOD53_021D8A08: ; 0x021D8A08
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD53_021D8A08
+
+ thumb_func_start MOD53_021D8A0C
+MOD53_021D8A0C: ; 0x021D8A0C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #5
+ mov r2, #1
+ bl MOD53_021D91C8
+ add r0, r5, #0
+ mov r1, #0x14
+ bl MOD53_021D93E0
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD53_021D8A0C
+
+ thumb_func_start MOD53_021D8A2C
+MOD53_021D8A2C: ; 0x021D8A2C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x30]
+ add r4, r1, #0
+ bl MOD53_021D923C
+ cmp r0, #0
+ beq _021D8A44
+ add r0, r5, #0
+ mov r1, #0xc
+ bl MOD53_021D93E0
+_021D8A44:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD53_021D8A2C
+
+ thumb_func_start MOD53_021D8A50
+MOD53_021D8A50: ; 0x021D8A50
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x30]
+ add r4, r1, #0
+ cmp r0, #0xff
+ beq _021D8A6E
+ bl MOD53_021D923C
+ cmp r0, #0
+ bne _021D8A6E
+ ldr r0, [r5, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+_021D8A6E:
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #1
+ bl MOD53_021D91C8
+ add r0, r5, #0
+ mov r1, #0x16
+ bl MOD53_021D93E0
+ ldr r0, _021D8AA8 ; =0x000005E4
+ bl FUN_020054C8
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8A96
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD53_021D926C
+_021D8A96:
+ bl FUN_02030F20
+ ldr r1, _021D8AAC ; =0x000093B0
+ str r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8AA8: .word 0x000005E4
+_021D8AAC: .word 0x000093B0
+ thumb_func_end MOD53_021D8A50
+
+ thumb_func_start MOD53_021D8AB0
+MOD53_021D8AB0: ; 0x021D8AB0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D8AF4 ; =0x000093B0
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D8ACE
+ bl FUN_02030F20
+ ldr r1, _021D8AF4 ; =0x000093B0
+ ldr r2, [r5, r1]
+ cmp r2, r0
+ beq _021D8ACE
+ mov r0, #0
+ str r0, [r5, r1]
+_021D8ACE:
+ ldr r0, [r5, #0x30]
+ bl MOD53_021D923C
+ cmp r0, #0
+ beq _021D8AE8
+ add r0, r5, #0
+ mov r1, #0x17
+ bl MOD53_021D93E0
+ mov r0, #0x31
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D8AE8:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8AF4: .word 0x000093B0
+ thumb_func_end MOD53_021D8AB0
+
+ thumb_func_start MOD53_021D8AF8
+MOD53_021D8AF8: ; 0x021D8AF8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D8B5C ; =0x000093B0
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D8B16
+ bl FUN_02030F20
+ ldr r1, _021D8B5C ; =0x000093B0
+ ldr r2, [r5, r1]
+ cmp r2, r0
+ beq _021D8B16
+ mov r0, #0
+ str r0, [r5, r1]
+_021D8B16:
+ mov r0, #0x31
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ ldr r0, [r5, r0]
+ cmp r0, #0x3c
+ ble _021D8B50
+ ldr r0, _021D8B5C ; =0x000093B0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _021D8B50
+ add r0, r5, #0
+ bl MOD53_021D925C
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD53_021D93E0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8B50
+ ldr r0, _021D8B60 ; =0x000093F4
+ mov r1, #1
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD53_021D926C
+_021D8B50:
+ add r0, r5, #0
+ bl MOD53_021D8470
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8B5C: .word 0x000093B0
+_021D8B60: .word 0x000093F4
+ thumb_func_end MOD53_021D8AF8
+
+ thumb_func_start MOD53_021D8B64
+MOD53_021D8B64: ; 0x021D8B64
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ add r6, r2, #0
+ cmp r5, #0xf
+ bgt _021D8B96
+ bge _021D8C42
+ cmp r5, #9
+ bhi _021D8C4A
+ add r1, r5, r5
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8B82: ; jump table
+ .short _021D8C40 - _021D8B82 - 2 ; case 0
+ .short _021D8B9C - _021D8B82 - 2 ; case 1
+ .short _021D8C40 - _021D8B82 - 2 ; case 2
+ .short _021D8BDA - _021D8B82 - 2 ; case 3
+ .short _021D8C40 - _021D8B82 - 2 ; case 4
+ .short _021D8C40 - _021D8B82 - 2 ; case 5
+ .short _021D8C40 - _021D8B82 - 2 ; case 6
+ .short _021D8C40 - _021D8B82 - 2 ; case 7
+ .short _021D8C42 - _021D8B82 - 2 ; case 8
+ .short _021D8C42 - _021D8B82 - 2 ; case 9
+_021D8B96:
+ cmp r5, #0x15
+ beq _021D8BE0
+ pop {r4, r5, r6, pc}
+_021D8B9C:
+ mov r0, #0xc1
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #6
+ beq _021D8BAA
+ cmp r0, #0xe
+ bne _021D8BB0
+_021D8BAA:
+ add r0, r4, #0
+ bl MOD53_021D9440
+_021D8BB0:
+ mov r0, #0x92
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD53_021D840C
+ add r0, r6, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ mov r0, #0x32
+ lsl r0, r0, #4
+ str r6, [r4, r0]
+ ldr r0, _021D8C4C ; =0x000093B4
+ mov r1, #0
+ str r1, [r4, r0]
+ b _021D8C42
+_021D8BDA:
+ bl MOD53_021D925C
+ b _021D8C42
+_021D8BE0:
+ ldr r0, _021D8C50 ; =0x000093BC
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ beq _021D8C4A
+ add r0, r6, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ bl FUN_02031190
+ cmp r6, r0
+ beq _021D8C4A
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8C14
+ ldr r1, _021D8C4C ; =0x000093B4
+ ldr r0, _021D8C54 ; =0x0000FFFF
+ ldr r2, [r4, r1]
+ eor r0, r6
+ and r0, r2
+ str r0, [r4, r1]
+_021D8C14:
+ mov r0, #0xc1
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #6
+ beq _021D8C22
+ cmp r0, #0xe
+ bne _021D8C32
+_021D8C22:
+ add r0, r4, #0
+ bl MOD53_021D9440
+ mov r0, #0xb2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_020191D0
+_021D8C32:
+ mov r0, #0x92
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD53_021D840C
+ b _021D8C42
+_021D8C40:
+ pop {r4, r5, r6, pc}
+_021D8C42:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD53_021D93E0
+_021D8C4A:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8C4C: .word 0x000093B4
+_021D8C50: .word 0x000093BC
+_021D8C54: .word 0x0000FFFF
+ thumb_func_end MOD53_021D8B64
+
+ thumb_func_start MOD53_021D8C58
+MOD53_021D8C58: ; 0x021D8C58
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ ldr r4, [sp, #0x38]
+ mov ip, r1
+ add r6, r2, #0
+ add r7, r3, #0
+ str r0, [sp, #0x18]
+ ldr r3, [sp, #0x3c]
+ ldr r2, [sp, #0x40]
+ ldr r1, [sp, #0x44]
+ cmp r4, #0
+ bge _021D8C84
+ neg r0, r4
+ cmp r0, r2
+ ble _021D8C78
+ add r0, r2, #0
+_021D8C78:
+ ldr r5, [sp, #0x30]
+ mov r4, #0
+ sub r5, r5, r0
+ add r6, r6, r0
+ str r5, [sp, #0x30]
+ sub r2, r2, r0
+_021D8C84:
+ cmp r3, #0
+ bge _021D8C9C
+ neg r0, r3
+ cmp r0, r1
+ ble _021D8C90
+ add r0, r1, #0
+_021D8C90:
+ ldr r5, [sp, #0x34]
+ mov r3, #0
+ sub r5, r5, r0
+ add r7, r7, r0
+ str r5, [sp, #0x34]
+ sub r1, r1, r0
+_021D8C9C:
+ ldr r0, [sp, #0x30]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ lsl r0, r3, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x14]
+ lsl r2, r6, #0x10
+ lsl r3, r7, #0x10
+ ldr r0, [sp, #0x18]
+ mov r1, ip
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02019658
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD53_021D8C58
+
+ thumb_func_start MOD53_021D8CD8
+MOD53_021D8CD8: ; 0x021D8CD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x50]
+ str r1, [sp, #0x1c]
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x50]
+ str r3, [sp, #0x24]
+ ldr r4, [r0]
+ ldr r0, [sp, #0x54]
+ ldr r5, [r0]
+ add r0, r2, #0
+ str r0, [sp, #0x38]
+ add r0, r3, #0
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0
+ bne _021D8D18
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0
+ bne _021D8D18
+ ldr r0, [sp, #0x50]
+ add r1, r2, #0
+ str r1, [r0]
+ ldr r0, [sp, #0x54]
+ add r1, r3, #0
+ str r1, [r0]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+_021D8D18:
+ ldr r0, [sp, #0x20]
+ sub r0, r0, r4
+ str r0, [sp, #0x34]
+ bpl _021D8D24
+ neg r0, r0
+ str r0, [sp, #0x34]
+_021D8D24:
+ ldr r0, [sp, #0x24]
+ sub r7, r0, r5
+ bpl _021D8D2C
+ neg r7, r7
+_021D8D2C:
+ ldr r0, [sp, #0x34]
+ cmp r0, r7
+ ble _021D8DBA
+ ldr r0, [sp, #0x20]
+ cmp r4, r0
+ ble _021D8D52
+ ldr r0, [sp, #0x24]
+ cmp r5, r0
+ ble _021D8D44
+ mov r0, #1
+ str r0, [sp, #0x2c]
+ b _021D8D4A
+_021D8D44:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x2c]
+_021D8D4A:
+ str r4, [sp, #0x38]
+ ldr r4, [sp, #0x20]
+ ldr r5, [sp, #0x24]
+ b _021D8D64
+_021D8D52:
+ ldr r0, [sp, #0x24]
+ cmp r5, r0
+ bge _021D8D5E
+ mov r0, #1
+ str r0, [sp, #0x2c]
+ b _021D8D64
+_021D8D5E:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x2c]
+_021D8D64:
+ mov r0, #6
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ str r5, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r3, r2, #0
+ bl MOD53_021D8C58
+ ldr r0, [sp, #0x34]
+ add r4, r4, #1
+ asr r6, r0, #1
+ ldr r0, [sp, #0x38]
+ cmp r4, r0
+ bgt _021D8E3E
+_021D8D8A:
+ sub r6, r6, r7
+ bpl _021D8D96
+ ldr r0, [sp, #0x34]
+ add r6, r6, r0
+ ldr r0, [sp, #0x2c]
+ add r5, r5, r0
+_021D8D96:
+ mov r0, #6
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ str r5, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r3, r2, #0
+ bl MOD53_021D8C58
+ ldr r0, [sp, #0x38]
+ add r4, r4, #1
+ cmp r4, r0
+ ble _021D8D8A
+ b _021D8E3E
+_021D8DBA:
+ ldr r0, [sp, #0x24]
+ cmp r5, r0
+ ble _021D8DDA
+ ldr r0, [sp, #0x20]
+ cmp r4, r0
+ ble _021D8DCC
+ mov r0, #1
+ str r0, [sp, #0x28]
+ b _021D8DD2
+_021D8DCC:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x28]
+_021D8DD2:
+ str r5, [sp, #0x30]
+ ldr r5, [sp, #0x24]
+ ldr r4, [sp, #0x20]
+ b _021D8DEC
+_021D8DDA:
+ ldr r0, [sp, #0x20]
+ cmp r4, r0
+ bge _021D8DE6
+ mov r0, #1
+ str r0, [sp, #0x28]
+ b _021D8DEC
+_021D8DE6:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x28]
+_021D8DEC:
+ mov r0, #6
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ str r5, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r3, r2, #0
+ bl MOD53_021D8C58
+ ldr r0, [sp, #0x30]
+ add r5, r5, #1
+ asr r6, r7, #1
+ cmp r5, r0
+ bgt _021D8E3E
+_021D8E10:
+ ldr r0, [sp, #0x34]
+ sub r6, r6, r0
+ bpl _021D8E1C
+ ldr r0, [sp, #0x28]
+ add r6, r6, r7
+ add r4, r4, r0
+_021D8E1C:
+ mov r0, #6
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ str r5, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r3, r2, #0
+ bl MOD53_021D8C58
+ ldr r0, [sp, #0x30]
+ add r5, r5, #1
+ cmp r5, r0
+ ble _021D8E10
+_021D8E3E:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x50]
+ str r1, [r0]
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD53_021D8CD8
+
+ thumb_func_start MOD53_021D8E50
+MOD53_021D8E50: ; 0x021D8E50
+ mov r2, #0
+_021D8E52:
+ ldrb r3, [r0, #8]
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x1d
+ strh r3, [r1, #2]
+ ldrb r3, [r0, #8]
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x1d
+ beq _021D8E76
+ add r3, r0, r3
+ sub r3, r3, #1
+ ldrb r3, [r3]
+ strb r3, [r1]
+ ldrb r3, [r0, #8]
+ lsl r3, r3, #0x1a
+ lsr r3, r3, #0x1d
+ add r3, r0, r3
+ ldrb r3, [r3, #3]
+ strb r3, [r1, #1]
+_021D8E76:
+ add r2, r2, #1
+ add r0, #0xa
+ add r1, r1, #4
+ cmp r2, #5
+ blt _021D8E52
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD53_021D8E50
+
+ thumb_func_start MOD53_021D8E84
+MOD53_021D8E84: ; 0x021D8E84
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r1, [sp, #0x14]
+ str r2, [sp, #0x18]
+ str r3, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ str r0, [sp, #0x24]
+ add r5, r1, #0
+ add r7, r2, #0
+_021D8E9A:
+ ldrb r0, [r5, #8]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1d
+ beq _021D8F0A
+ ldrh r0, [r7, #2]
+ cmp r0, #0
+ beq _021D8EB4
+ ldrb r0, [r7]
+ sub r0, #9
+ str r0, [sp, #0x2c]
+ ldrb r0, [r7, #1]
+ sub r0, #0x11
+ str r0, [sp, #0x28]
+_021D8EB4:
+ ldrb r0, [r5, #8]
+ mov r4, #0
+ lsl r0, r0, #0x1a
+ lsr r1, r0, #0x1d
+ cmp r1, #0
+ ble _021D8F0A
+ mov r0, #1
+ str r0, [sp, #0x20]
+ cmp r1, #0
+ ble _021D8F0A
+_021D8EC8:
+ add r0, sp, #0x2c
+ str r0, [sp]
+ add r0, sp, #0x28
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ ldrh r0, [r7, #2]
+ mov r6, #0xc0
+ add r3, r5, r4
+ str r0, [sp, #0xc]
+ ldrb r1, [r5, #8]
+ ldrb r3, [r3, #4]
+ ldr r0, [sp, #0x10]
+ lsl r2, r1, #0x18
+ lsr r2, r2, #0x1e
+ mul r6, r2
+ ldr r2, _021D8F4C ; =0x021D9648
+ lsl r1, r1, #0x1d
+ add r2, r2, r6
+ lsr r6, r1, #0x1d
+ mov r1, #0x18
+ mul r1, r6
+ add r1, r2, r1
+ ldrb r2, [r5, r4]
+ sub r3, #0x11
+ sub r2, #9
+ bl MOD53_021D8CD8
+ ldrb r0, [r5, #8]
+ add r4, r4, #1
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1d
+ cmp r4, r0
+ blt _021D8EC8
+_021D8F0A:
+ ldr r0, [sp, #0x24]
+ add r5, #0xa
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0x24]
+ cmp r0, #5
+ blt _021D8E9A
+ ldr r0, [sp, #0x20]
+ cmp r0, #0
+ beq _021D8F2A
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _021D8F2A
+ ldr r0, [sp, #0x10]
+ bl FUN_020191D0
+_021D8F2A:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ bl MOD53_021D8E50
+ mov r3, #0
+ mov r1, #0x38
+_021D8F36:
+ ldr r0, [sp, #0x14]
+ add r3, r3, #1
+ ldrb r2, [r0, #8]
+ bic r2, r1
+ strb r2, [r0, #8]
+ add r0, #0xa
+ str r0, [sp, #0x14]
+ cmp r3, #5
+ blt _021D8F36
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8F4C: .word 0x021D9648
+ thumb_func_end MOD53_021D8E84
+
+ thumb_func_start MOD53_021D8F50
+MOD53_021D8F50: ; 0x021D8F50
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _021D8FB4 ; =0x00004382
+ mov r7, #0x76
+ mov r6, #0
+ add r4, r5, r0
+ lsl r7, r7, #2
+_021D8F5E:
+ bl FUN_02031190
+ cmp r6, r0
+ beq _021D8FA6
+ ldrb r0, [r4, #8]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1d
+ beq _021D8F9A
+ add r0, r6, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _021D8F9A
+ mov r0, #0x76
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldrb r0, [r4, #8]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1d
+ add r2, r4, r0
+ sub r1, r2, #1
+ ldrb r1, [r1]
+ ldrb r2, [r2, #3]
+ ldr r0, [r5, r7]
+ bl MOD53_021D8140
+ b _021D8FA6
+_021D8F9A:
+ mov r0, #0x76
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_021D8FA6:
+ add r6, r6, #1
+ add r4, #0xa
+ add r5, r5, #4
+ cmp r6, #5
+ blt _021D8F5E
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8FB4: .word 0x00004382
+ thumb_func_end MOD53_021D8F50
+
+ thumb_func_start MOD53_021D8FB8
+MOD53_021D8FB8: ; 0x021D8FB8
+ push {r3, lr}
+ ldrh r1, [r0]
+ add r1, #0x14
+ strh r1, [r0]
+ ldrh r2, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ cmp r2, r1
+ bls _021D8FCE
+ mov r1, #0
+ strh r1, [r0]
+_021D8FCE:
+ ldrh r0, [r0]
+ bl FUN_0201B970
+ mov r1, #0xa
+ mul r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ add r0, #0xf
+ lsl r1, r0, #5
+ mov r0, #0x1d
+ orr r1, r0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, sp, #0
+ mov r1, #0x18
+ mov r2, #2
+ bl GX_LoadOBJPltt
+ pop {r3, pc}
+ thumb_func_end MOD53_021D8FB8
+
+ thumb_func_start MOD53_021D8FF8
+MOD53_021D8FF8: ; 0x021D8FF8
+ push {r3, r4, r5, lr}
+ mov r5, #0
+ add r4, r5, #0
+_021D8FFE:
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _021D900A
+ add r5, r5, #1
+_021D900A:
+ add r4, r4, #1
+ cmp r4, #5
+ blt _021D8FFE
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD53_021D8FF8
+
+ thumb_func_start MOD53_021D9014
+MOD53_021D9014: ; 0x021D9014
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r3, #0
+ add r5, r0, #0
+ str r2, [sp, #0x10]
+ bl FUN_02031190
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ bl MOD53_021D9184
+ cmp r0, #0
+ beq _021D90EE
+ mov r0, #0
+ str r0, [sp, #0x18]
+ add r6, r7, #0
+ add r4, r7, #0
+_021D9036:
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bne _021D904E
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021D905A
+_021D904E:
+ mov r0, #0x21
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D905A:
+ ldr r0, [sp, #0x18]
+ add r6, #8
+ add r0, r0, #1
+ add r4, r4, #4
+ str r0, [sp, #0x18]
+ cmp r0, #5
+ blt _021D9036
+ mov r6, #0
+ add r4, r5, #0
+_021D906C:
+ mov r0, #0x50
+ mov r1, #0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, #5
+ blt _021D906C
+ mov r6, #0
+ add r4, r7, #0
+_021D908C:
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ cmp r0, #0
+ beq _021D90DC
+ ldr r1, [r4, #0x14]
+ bl FUN_02023990
+ ldr r0, [sp, #0x14]
+ cmp r0, r6
+ bne _021D90C0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D90F4 ; =0x0003040F
+ mov r1, #1
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_0201BDE0
+ b _021D90DC
+_021D90C0:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x10]
+ mov r1, #1
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x14]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_0201BDE0
+_021D90DC:
+ add r0, r5, #0
+ bl FUN_020191D0
+ add r6, r6, #1
+ add r7, #8
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #5
+ blt _021D908C
+_021D90EE:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D90F4: .word 0x0003040F
+ thumb_func_end MOD53_021D9014
+
+ thumb_func_start MOD53_021D90F8
+MOD53_021D90F8: ; 0x021D90F8
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D9138
+ bl FUN_02031370
+ cmp r0, #0
+ beq _021D914C
+ ldr r1, _021D9150 ; =0x000093F4
+ ldr r0, _021D9154 ; =0x00004381
+ ldr r2, [r4, r1]
+ sub r1, #0x37
+ strb r2, [r4, r0]
+ sub r0, #9
+ add r2, r4, r1
+ add r3, r4, r0
+ mov r1, #0xa
+_021D911E:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _021D911E
+ ldr r1, _021D9158 ; =0x000093BD
+ mov r0, #0x78
+ add r1, r4, r1
+ mov r2, #0x32
+ bl FUN_02030BC4
+ pop {r4, pc}
+_021D9138:
+ bl FUN_02031388
+ cmp r0, #0
+ beq _021D914C
+ ldr r1, _021D915C ; =0x00004378
+ mov r0, #0x77
+ add r1, r4, r1
+ mov r2, #0xa
+ bl FUN_02030ADC
+_021D914C:
+ pop {r4, pc}
+ nop
+_021D9150: .word 0x000093F4
+_021D9154: .word 0x00004381
+_021D9158: .word 0x000093BD
+_021D915C: .word 0x00004378
+ thumb_func_end MOD53_021D90F8
+
+ thumb_func_start MOD53_021D9160
+MOD53_021D9160: ; 0x021D9160
+ push {r3, r4, r5, lr}
+ mov r5, #0
+ add r4, r5, #0
+_021D9166:
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _021D9172
+ add r5, r5, #1
+_021D9172:
+ add r4, r4, #1
+ cmp r4, #5
+ blt _021D9166
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD53_021D9160
+
+ thumb_func_start MOD53_021D917C
+MOD53_021D917C: ; 0x021D917C
+ ldr r3, _021D9180 ; =MOD53_021D9160
+ bx r3
+ .align 2, 0
+_021D9180: .word MOD53_021D9160
+ thumb_func_end MOD53_021D917C
+
+ thumb_func_start MOD53_021D9184
+MOD53_021D9184: ; 0x021D9184
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r7, #0
+ add r6, r7, #0
+ add r4, r5, #0
+_021D918E:
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r6, #0
+ bl FUN_0202DFA4
+ mov r1, #0xcd
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #5
+ blt _021D918E
+ mov r6, #0
+ mov r2, #1
+ add r0, r1, #4
+_021D91B2:
+ ldr r4, [r5, r0]
+ ldr r3, [r5, r1]
+ cmp r4, r3
+ beq _021D91BC
+ add r7, r2, #0
+_021D91BC:
+ add r6, r6, #1
+ add r5, #8
+ cmp r6, #5
+ blt _021D91B2
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD53_021D9184
+
+ thumb_func_start MOD53_021D91C8
+MOD53_021D91C8: ; 0x021D91C8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #0x50
+ mov r1, #0x27
+ add r4, r2, #0
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r0, [r5, #0x10]
+ add r1, r7, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0xc]
+ ldr r1, [r5, #0x2c]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ cmp r4, #0
+ bne _021D9218
+ mov r4, #0
+_021D9218:
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xb6
+ lsl r0, r0, #2
+ ldr r2, [r5, #0x2c]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ str r0, [r5, #0x30]
+ cmp r4, #0
+ bne _021D9238
+ mov r0, #0xff
+ str r0, [r5, #0x30]
+_021D9238:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD53_021D91C8
+
+ thumb_func_start MOD53_021D923C
+MOD53_021D923C: ; 0x021D923C
+ push {r3, lr}
+ cmp r0, #0xff
+ bne _021D9246
+ mov r0, #1
+ pop {r3, pc}
+_021D9246:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D9256
+ mov r0, #1
+ pop {r3, pc}
+_021D9256:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD53_021D923C
+
+ thumb_func_start MOD53_021D925C
+MOD53_021D925C: ; 0x021D925C
+ mov r1, #0xb6
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _021D9268 ; =FUN_0200D0E0
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_021D9268: .word FUN_0200D0E0
+ thumb_func_end MOD53_021D925C
+
+ thumb_func_start MOD53_021D926C
+MOD53_021D926C: ; 0x021D926C
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D9288
+ bl FUN_02030F20
+ add r0, r4, r0
+ cmp r0, #5
+ ble _021D9284
+ mov r0, #5
+_021D9284:
+ bl FUN_02032B6C
+_021D9288:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD53_021D926C
+
+ thumb_func_start MOD53_021D928C
+MOD53_021D928C: ; 0x021D928C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl MOD53_021D9160
+ add r5, r0, #0
+ cmp r5, #5
+ bhi _021D932A
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D92A6: ; jump table
+ .short _021D932A - _021D92A6 - 2 ; case 0
+ .short _021D92B2 - _021D92A6 - 2 ; case 1
+ .short _021D92F8 - _021D92A6 - 2 ; case 2
+ .short _021D92F8 - _021D92A6 - 2 ; case 3
+ .short _021D92F8 - _021D92A6 - 2 ; case 4
+ .short _021D9324 - _021D92A6 - 2 ; case 5
+_021D92B2:
+ mov r0, #0xc1
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0xe
+ bgt _021D932A
+ bl FUN_0202CB8C
+ cmp r0, #1
+ beq _021D92CC
+ mov r0, #0x25
+ mov r1, #1
+ lsl r0, r0, #0xa
+ str r1, [r4, r0]
+_021D92CC:
+ mov r0, #0xc2
+ mov r1, #0x13
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ bl FUN_02032B6C
+ ldr r0, _021D93CC ; =0x000093F8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D92F4
+ add r0, r4, #0
+ bl MOD53_021D9440
+ mov r0, #0x9a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x15
+ bl FUN_02020130
+_021D92F4:
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021D92F8:
+ mov r0, #1
+ bl FUN_02052B74
+ mov r0, #0xc5
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r5, r0
+ bge _021D932A
+ ldr r0, _021D93D0 ; =0x000093F4
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ bne _021D931A
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD53_021D926C
+ b _021D932A
+_021D931A:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD53_021D926C
+ b _021D932A
+_021D9324:
+ mov r0, #8
+ bl FUN_02052B74
+_021D932A:
+ mov r0, #0xc5
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r5, r0
+ bge _021D9374
+ bl FUN_02030F20
+ mov r1, #0xc6
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ bl FUN_0202CB8C
+ mov r1, #0xc7
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, _021D93D4 ; =0x00009404
+ ldr r2, [r4, r0]
+ cmp r2, #0
+ beq _021D9374
+ add r0, r0, #4
+ ldr r1, [r4, r1]
+ ldr r0, [r4, r0]
+ tst r0, r1
+ bne _021D9374
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD53_021D926C
+ ldr r1, _021D93D0 ; =0x000093F4
+ mov r0, #1
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x10
+ str r2, [r4, r0]
+ add r1, #0x14
+ str r2, [r4, r1]
+_021D9374:
+ bl MOD53_021D9160
+ mov r1, #0xc5
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ bl FUN_02030F20
+ mov r1, #0xc6
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ cmp r1, r0
+ bge _021D93C8
+ ldr r0, _021D93D0 ; =0x000093F4
+ mov r1, #2
+ str r1, [r4, r0]
+ mov r1, #1
+ add r0, #0x10
+ str r1, [r4, r0]
+ bl FUN_0202CB8C
+ mov r1, #0xc7
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ eor r0, r1
+ ldr r1, _021D93D8 ; =0x00009408
+ str r0, [r4, r1]
+ ldr r1, [r4, r1]
+ mov r0, #0
+ sub r1, r1, #2
+ cmp r1, #0xe
+ bhi _021D93C0
+ mov r2, #1
+ add r3, r2, #0
+ lsl r3, r1
+ ldr r1, _021D93DC ; =0x00004045
+ tst r1, r3
+ beq _021D93C0
+ add r0, r2, #0
+_021D93C0:
+ cmp r0, #0
+ bne _021D93C8
+ bl ErrorHandling
+_021D93C8:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D93CC: .word 0x000093F8
+_021D93D0: .word 0x000093F4
+_021D93D4: .word 0x00009404
+_021D93D8: .word 0x00009408
+_021D93DC: .word 0x00004045
+ thumb_func_end MOD53_021D928C
+
+ thumb_func_start MOD53_021D93E0
+MOD53_021D93E0: ; 0x021D93E0
+ mov r2, #0xc2
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ bx lr
+ thumb_func_end MOD53_021D93E0
+
+ thumb_func_start MOD53_021D93E8
+MOD53_021D93E8: ; 0x021D93E8
+ push {r3, r4}
+ mov r3, #0xc2
+ lsl r3, r3, #2
+ sub r4, r3, #4
+ ldr r2, [r0, r3]
+ ldr r4, [r0, r4]
+ cmp r4, r2
+ beq _021D9412
+ cmp r1, #2
+ beq _021D9404
+ sub r1, r3, #4
+ str r2, [r0, r1]
+ pop {r3, r4}
+ bx lr
+_021D9404:
+ ldr r1, _021D9418 ; =0x021D98A4
+ lsl r4, r2, #3
+ ldr r1, [r1, r4]
+ cmp r1, #0
+ beq _021D9412
+ sub r1, r3, #4
+ str r2, [r0, r1]
+_021D9412:
+ pop {r3, r4}
+ bx lr
+ nop
+_021D9418: .word 0x021D98A4
+ thumb_func_end MOD53_021D93E8
+
+ thumb_func_start MOD53_021D941C
+MOD53_021D941C: ; 0x021D941C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D943C ; =0x000093F8
+ ldr r2, [r4, r0]
+ cmp r2, #0
+ bne _021D9438
+ sub r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_020145C8
+ ldr r1, _021D943C ; =0x000093F8
+ mov r0, #1
+ str r0, [r4, r1]
+ pop {r4, pc}
+_021D9438:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D943C: .word 0x000093F8
+ thumb_func_end MOD53_021D941C
+
+ thumb_func_start MOD53_021D9440
+MOD53_021D9440: ; 0x021D9440
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D945C ; =0x000093F8
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D945A
+ sub r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ ldr r0, _021D945C ; =0x000093F8
+ mov r1, #0
+ str r1, [r4, r0]
+_021D945A:
+ pop {r4, pc}
+ .align 2, 0
+_021D945C: .word 0x000093F8
+ thumb_func_end MOD53_021D9440
+
+ thumb_func_start MOD53_021D9460
+MOD53_021D9460: ; 0x021D9460
+ push {r3, lr}
+ ldr r0, _021D9478 ; =0x021D94E8
+ bl FUN_02020988
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D9474
+ mov r0, #1
+ pop {r3, pc}
+_021D9474:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021D9478: .word 0x021D94E8
+ thumb_func_end MOD53_021D9460
+
+ thumb_func_start MOD53_021D947C
+MOD53_021D947C: ; 0x021D947C
+ push {r4, r5}
+ ldrh r4, [r1]
+ cmp r4, #0
+ beq _021D949C
+ ldrh r4, [r1, #2]
+ strb r4, [r0]
+ ldrh r4, [r1, #4]
+ strb r4, [r0, #4]
+ ldrh r4, [r1]
+ sub r4, r4, #1
+ lsl r4, r4, #3
+ add r5, r1, r4
+ ldrh r4, [r5, #2]
+ strb r4, [r0, #1]
+ ldrh r4, [r5, #4]
+ strb r4, [r0, #5]
+_021D949C:
+ ldrh r5, [r1]
+ cmp r5, #2
+ blo _021D94AC
+ ldrb r4, [r0, #8]
+ mov r1, #0x38
+ bic r4, r1
+ mov r1, #0x10
+ b _021D94BA
+_021D94AC:
+ ldrb r1, [r0, #8]
+ mov r4, #0x38
+ bic r1, r4
+ lsl r4, r5, #0x18
+ lsr r4, r4, #0x18
+ lsl r4, r4, #0x1d
+ lsr r4, r4, #0x1a
+_021D94BA:
+ orr r1, r4
+ strb r1, [r0, #8]
+ ldrb r1, [r0, #8]
+ mov r4, #7
+ lsl r2, r2, #0x18
+ bic r1, r4
+ lsr r4, r2, #0x18
+ mov r2, #7
+ and r2, r4
+ orr r1, r2
+ strb r1, [r0, #8]
+ ldrb r2, [r0, #8]
+ mov r1, #0xc0
+ bic r2, r1
+ lsl r1, r3, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x18
+ orr r1, r2
+ strb r1, [r0, #8]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD53_021D947C
+
+ .section .rodata
+ ; 0x021D94E8
+ .incbin "baserom.nds", 0x29BE08, 0x3A0
+
+ .section .data
+ ; 0x021D98A0
+ .incbin "baserom.nds", 0x29C1C0, 0xC0
diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s
new file mode 100644
index 00000000..c3e477c6
--- /dev/null
+++ b/arm9/modules/54/asm/module_54.s
@@ -0,0 +1,4382 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD54_021D74E0
+MOD54_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D74F6
+ cmp r1, #1
+ bne _021D74F4
+ b _021D761A
+_021D74F4:
+ b _021D7628
+_021D74F6:
+ 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, _021D7630 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7634 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r2, #0x41
+ mov r0, #3
+ mov r1, #0x33
+ lsl r2, r2, #0xc
+ bl FUN_0201681C
+ ldr r1, _021D7638 ; =0x00004A60
+ add r0, r6, #0
+ mov r2, #0x33
+ bl FUN_02006268
+ ldr r2, _021D7638 ; =0x00004A60
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x33
+ bl FUN_02016B94
+ str r0, [r4]
+ add r0, r6, #0
+ bl FUN_0200628C
+ str r0, [r4, #8]
+ ldr r1, [r0]
+ ldr r0, _021D763C ; =0x00004A38
+ str r1, [r4, r0]
+ mov r0, #0x33
+ bl FUN_0200AA80
+ str r0, [r4, #0x24]
+ ldr r2, _021D7640 ; =0x000001E2
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x33
+ bl FUN_0200A86C
+ str r0, [r4, #0x28]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ bl MOD54_021D7874
+ ldr r0, [r4]
+ bl MOD54_021D7894
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x33
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD54_021D7AA0
+ ldr r0, _021D7644 ; =MOD54_021D784C
+ add r1, r4, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD54_021D799C
+ bl MOD54_021D7B8C
+ add r0, r4, #0
+ bl MOD54_021D7BBC
+ add r0, r4, #0
+ bl MOD54_021D7CAC
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD54_021D7DB4
+ mov r1, #0
+ mov r0, #0x34
+ add r2, r1, #0
+ bl FUN_0200433C
+ add r0, r4, #0
+ bl FUN_02084098
+ bl FUN_020328E4
+ mov r0, #3
+ bl FUN_02032B6C
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D75F4
+ mov r0, #2
+ bl FUN_02052B74
+_021D75F4:
+ bl FUN_02033E74
+ ldr r0, _021D763C ; =0x00004A38
+ mov r1, #0xed
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ add r1, r4, r1
+ bl MOD54_021D9570
+ ldr r0, _021D7648 ; =MOD54_021D77E8
+ add r1, r4, #0
+ mov r2, #5
+ bl FUN_0200CA60
+ str r0, [r4, #0x20]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7628
+_021D761A:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7628:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7630: .word 0xFFFFE0FF
+_021D7634: .word 0x04001000
+_021D7638: .word 0x00004A60
+_021D763C: .word 0x00004A38
+_021D7640: .word 0x000001E2
+_021D7644: .word MOD54_021D784C
+_021D7648: .word MOD54_021D77E8
+ thumb_func_end MOD54_021D74E0
+
+ thumb_func_start MOD54_021D764C
+MOD54_021D764C: ; 0x021D764C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D7672
+ ldr r0, _021D7730 ; =0x00004A50
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D7672
+ bl FUN_0202CB8C
+ ldr r1, _021D7730 ; =0x00004A50
+ ldr r2, [r4, r1]
+ and r0, r2
+ str r0, [r4, r1]
+_021D7672:
+ ldr r1, [r5]
+ cmp r1, #3
+ bhi _021D7726
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7684: ; jump table
+ .short _021D768C - _021D7684 - 2 ; case 0
+ .short _021D76B4 - _021D7684 - 2 ; case 1
+ .short _021D7702 - _021D7684 - 2 ; case 2
+ .short _021D771A - _021D7684 - 2 ; case 3
+_021D768C:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7726
+ mov r0, #1
+ str r0, [r5]
+ bl FUN_02031190
+ cmp r0, #0
+ beq _021D7726
+ bl MOD54_021D8C08
+ cmp r0, #2
+ ble _021D7726
+ mov r1, #0
+ mov r0, #0x72
+ add r2, r1, #0
+ bl FUN_02030ADC
+ b _021D7726
+_021D76B4:
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ lsl r2, r0, #2
+ ldr r0, _021D7734 ; =0x021D97E0
+ ldr r2, [r0, r2]
+ cmp r2, #0
+ beq _021D76CA
+ add r0, r4, #0
+ blx r2
+ str r0, [r5]
+_021D76CA:
+ ldr r0, _021D7738 ; =0x00004A40
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021D76E2
+ mov r0, #0xa6
+ lsl r0, r0, #2
+ ldr r2, _021D773C ; =0x00010300
+ add r0, r4, r0
+ mov r1, #0
+ add r3, r4, #0
+ bl MOD54_021D8AF8
+_021D76E2:
+ add r0, r4, #0
+ bl MOD54_021D8D50
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D7726
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD54_021D8F94
+ ldr r1, [r5]
+ cmp r1, #1
+ bne _021D7726
+ str r0, [r5]
+ b _021D7726
+_021D7702:
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ lsl r2, r0, #2
+ ldr r0, _021D7734 ; =0x021D97E0
+ ldr r2, [r0, r2]
+ cmp r2, #0
+ beq _021D7726
+ add r0, r4, #0
+ blx r2
+ str r0, [r5]
+ b _021D7726
+_021D771A:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7726
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D7726:
+ ldr r0, [r4, #0x50]
+ bl FUN_0201FDEC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7730: .word 0x00004A50
+_021D7734: .word 0x021D97E0
+_021D7738: .word 0x00004A40
+_021D773C: .word 0x00010300
+ thumb_func_end MOD54_021D764C
+
+ thumb_func_start MOD54_021D7740
+MOD54_021D7740: ; 0x021D7740
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ bl FUN_02006278
+ add r6, r0, #0
+ ldr r0, [r6, #0x20]
+ bl FUN_0200CAB4
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x5f
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_021D776C:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D776C
+ ldr r0, [r6, #0x50]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ add r0, r6, #0
+ bl MOD54_021D7EDC
+ ldr r0, [r6]
+ bl MOD54_021D7A6C
+ mov r0, #2
+ bl FUN_02032B6C
+ bl FUN_02031B50
+ ldr r0, [r6, #8]
+ ldr r0, [r0, #4]
+ bl FUN_02052F8C
+ ldr r0, [r6, #0x28]
+ bl FUN_0200A8B8
+ ldr r0, [r6, #0x24]
+ bl FUN_0200AB18
+ add r0, r6, #0
+ bl MOD54_021D7A34
+ ldr r0, [sp]
+ bl FUN_0200627C
+ ldr r2, _021D77E4 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ mov r0, #0
+ bl FUN_02052B74
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x33
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D77E4: .word 0x04000304
+ thumb_func_end MOD54_021D7740
+
+ thumb_func_start MOD54_021D77E8
+MOD54_021D77E8: ; 0x021D77E8
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r0, [r4, #0xc]
+ add r1, #0xc
+ cmp r0, #0
+ beq _021D7842
+ ldr r0, [r1, #4]
+ ldr r3, [r1, #8]
+ lsl r2, r0, #1
+ ldr r0, _021D7844 ; =0x021D968A
+ ldrb r0, [r0, r2]
+ cmp r3, r0
+ ble _021D7832
+ mov r0, #0
+ str r0, [r1, #8]
+ ldr r2, [r1, #4]
+ add r2, r2, #1
+ str r2, [r1, #4]
+ lsl r3, r2, #1
+ ldr r2, _021D7848 ; =0x021D968B
+ ldrb r2, [r2, r3]
+ cmp r2, #0xff
+ bne _021D7818
+ str r0, [r1, #4]
+_021D7818:
+ ldr r0, [r1, #0x10]
+ ldr r1, [r1, #4]
+ ldr r0, [r0, #0xc]
+ lsl r2, r1, #1
+ ldr r1, _021D7848 ; =0x021D968B
+ ldrb r1, [r1, r2]
+ mov r2, #0x20
+ lsl r1, r1, #5
+ add r0, r0, r1
+ mov r1, #0
+ bl GX_LoadOBJPltt
+ b _021D7838
+_021D7832:
+ ldr r0, [r4, #0x14]
+ add r0, r0, #1
+ str r0, [r4, #0x14]
+_021D7838:
+ mov r0, #0xe9
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD54_021D8A90
+_021D7842:
+ pop {r4, pc}
+ .align 2, 0
+_021D7844: .word 0x021D968A
+_021D7848: .word 0x021D968B
+ thumb_func_end MOD54_021D77E8
+
+ thumb_func_start MOD54_021D784C
+MOD54_021D784C: ; 0x021D784C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ add r0, r4, #0
+ bl FUN_0201AB60
+ ldr r3, _021D786C ; =0x027E0000
+ ldr r1, _021D7870 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D786C: .word 0x027E0000
+_021D7870: .word 0x00003FF8
+ thumb_func_end MOD54_021D784C
+
+ thumb_func_start MOD54_021D7874
+MOD54_021D7874: ; 0x021D7874
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7890 ; =0x021D9758
+ add r3, sp, #0
+ mov r2, #5
+_021D787E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D787E
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7890: .word 0x021D9758
+ thumb_func_end MOD54_021D7874
+
+ thumb_func_start MOD54_021D7894
+MOD54_021D7894: ; 0x021D7894
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _021D7984 ; =0x021D9694
+ 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, _021D7988 ; =0x021D9720
+ 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, #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, _021D798C ; =0x021D973C
+ 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, #5
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_02018744
+ ldr r5, _021D7990 ; =0x021D96CC
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #6
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7994 ; =0x021D96E8
+ 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, #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, _021D7998 ; =0x021D9704
+ 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, #1
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x33
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x33
+ bl FUN_02017F18
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ nop
+_021D7984: .word 0x021D9694
+_021D7988: .word 0x021D9720
+_021D798C: .word 0x021D973C
+_021D7990: .word 0x021D96CC
+_021D7994: .word 0x021D96E8
+_021D7998: .word 0x021D9704
+ thumb_func_end MOD54_021D7894
+
+ thumb_func_start MOD54_021D799C
+MOD54_021D799C: ; 0x021D799C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, r7, #0
+_021D79A6:
+ mov r0, #8
+ mov r1, #0x33
+ bl FUN_020219F4
+ str r0, [r4, #0x2c]
+ mov r0, #0xd9
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r0, #4
+ str r1, [r5, r0]
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #8
+ cmp r6, #5
+ blt _021D79A6
+ mov r0, #0xb4
+ mov r1, #0x33
+ bl FUN_020219F4
+ str r0, [r7, #0x44]
+ mov r0, #0x28
+ mov r1, #0x33
+ bl FUN_020219F4
+ str r0, [r7, #0x48]
+ mov r0, #0xd1
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r7, r0]
+ ldr r0, [r7, #0x28]
+ ldr r2, [r7, #0x48]
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ add r0, r7, #0
+ bl MOD54_021D8E64
+ mov r0, #0x33
+ bl FUN_02053708
+ mov r1, #0xea
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ mov r0, #0
+ str r0, [r7, #0xc]
+ str r0, [r7, #0x14]
+ add r2, r7, #0
+ str r0, [r7, #0x10]
+ mov r0, #0x56
+ mov r1, #1
+ add r2, #0x1c
+ mov r3, #0x33
+ bl FUN_02006C08
+ str r0, [r7, #0x18]
+ mov r1, #0x32
+ ldr r0, _021D7A30 ; =0x00004A44
+ mov r2, #0
+ str r2, [r7, r0]
+ lsl r1, r1, #4
+ str r2, [r7, r1]
+ mov r1, #2
+ add r0, r0, #4
+ str r1, [r7, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7A30: .word 0x00004A44
+ thumb_func_end MOD54_021D799C
+
+ thumb_func_start MOD54_021D7A34
+MOD54_021D7A34: ; 0x021D7A34
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl MOD54_021D8F0C
+ ldr r0, [r6, #0x18]
+ bl FUN_02016A18
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ mov r4, #0
+ add r5, r6, #0
+_021D7A50:
+ ldr r0, [r5, #0x2c]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _021D7A50
+ ldr r0, [r6, #0x48]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x44]
+ bl FUN_02021A20
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD54_021D7A34
+
+ thumb_func_start MOD54_021D7A6C
+MOD54_021D7A6C: ; 0x021D7A6C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D7A6C
+
+ thumb_func_start MOD54_021D7AA0
+MOD54_021D7AA0: ; 0x021D7AA0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #2
+ ldr r4, [r5]
+ mov r1, #0
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x33
+ str r0, [sp, #4]
+ mov r0, #0x56
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x33
+ str r0, [sp, #4]
+ mov r0, #0xc
+ add r1, r0, #0
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x33
+ bl FUN_02002EEC
+ mov r1, #0x1a
+ mov r0, #4
+ lsl r1, r1, #4
+ mov r2, #0x33
+ bl FUN_02002EEC
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x33
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ mov r1, #0xa
+ add r2, r4, #0
+ 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, #0x33
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ mov r1, #0xb
+ add r2, r4, #0
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r3, #1
+ str r3, [sp, #8]
+ mov r0, #0x33
+ str r0, [sp, #0xc]
+ mov r0, #0x56
+ mov r1, #2
+ 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, #0x33
+ str r0, [sp, #0xc]
+ mov r0, #0x56
+ mov r1, #3
+ add r2, r4, #0
+ bl FUN_020068C8
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #8]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x33
+ 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, #0x33
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D7AA0
+
+ thumb_func_start MOD54_021D7B8C
+MOD54_021D7B8C: ; 0x021D7B8C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021D7BB8 ; =0x021D96A4
+ 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, #0x33
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7BB8: .word 0x021D96A4
+ thumb_func_end MOD54_021D7B8C
+
+ thumb_func_start MOD54_021D7BBC
+MOD54_021D7BBC: ; 0x021D7BBC
+ 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, #0x33
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r6, #0
+ mov r0, #0x1e
+ add r1, #0x54
+ mov r2, #0x33
+ bl FUN_02008C9C
+ str r0, [r6, #0x50]
+ add r0, r6, #0
+ mov r2, #1
+ add r0, #0x54
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0x5f
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_021D7C02:
+ mov r0, #3
+ add r1, r4, #0
+ mov r2, #0x33
+ bl FUN_02008DEC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D7C02
+ mov r0, #2
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x33
+ str r0, [sp, #8]
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0x56
+ mov r2, #0xc
+ bl FUN_02008F34
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r0, #2
+ str r0, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r0, #0xf
+ str r0, [sp, #8]
+ mov r0, #0x33
+ sub r1, #0x2c
+ str r0, [sp, #0xc]
+ ldr r0, [r6, r1]
+ mov r1, #0x56
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x1b
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ mov r0, #2
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x33
+ sub r1, #0x2c
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x56
+ mov r2, #0xd
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x6d
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x33
+ sub r1, #0x2c
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x56
+ mov r2, #0xe
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ sub r1, #0xc
+ ldr r0, [r6, r1]
+ bl FUN_02009A50
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD54_021D7BBC
+
+ thumb_func_start MOD54_021D7CAC
+MOD54_021D7CAC: ; 0x021D7CAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ mov r1, #2
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #3
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r3, #0x5f
+ str r0, [sp, #0xc]
+ mov r2, #1
+ lsl r3, r3, #2
+ str r2, [sp, #0x10]
+ ldr r2, [r5, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ add r3, #0x88
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r5, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ ldr r0, [r5, #0x50]
+ mov r1, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0x81
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r1, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r1, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x50]
+ str r0, [sp, #0x54]
+ mov r0, #0x33
+ str r0, [sp, #0x58]
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x34]
+ mov r0, #0x15
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x8a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r7, #0x8b
+ ldr r4, _021D7DB0 ; =0x021D96B4
+ mov r6, #0
+ lsl r7, r7, #2
+_021D7D4C:
+ ldrh r0, [r4, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldrh r0, [r4, #6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ sub r1, r6, #1
+ lsl r1, r1, #1
+ ldr r0, [r5, r0]
+ add r1, #0x1b
+ 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, #5
+ blt _021D7D4C
+ mov r0, #6
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x34]
+ mov r0, #0x1a
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x38]
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7DB0: .word 0x021D96B4
+ thumb_func_end MOD54_021D7CAC
+
+ thumb_func_start MOD54_021D7DB4
+MOD54_021D7DB4: ; 0x021D7DB4
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x14
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D7E90 ; =0x000001C3
+ mov r1, #0xbe
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r4]
+ add r1, r4, r1
+ mov r2, #5
+ mov r3, #0x1a
+ bl FUN_02019064
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ mov r1, #0xba
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ mov r0, #0x94
+ mov r1, #0xc2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #3
+ bl FUN_02019064
+ mov r0, #0xc2
+ lsl r0, r0, #2
+ ldr r1, [r4, #0x48]
+ add r0, r4, r0
+ mov r2, #0
+ bl MOD54_021D7E98
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0xb
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ mov r0, #0xc8
+ mov r1, #0xa6
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r4]
+ add r1, r4, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0xa6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0xa6
+ lsl r0, r0, #2
+ ldr r2, _021D7E94 ; =0x00010300
+ add r0, r4, r0
+ mov r1, #0
+ add r3, r4, #0
+ bl MOD54_021D8AF8
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D7E90: .word 0x000001C3
+_021D7E94: .word 0x00010300
+ thumb_func_end MOD54_021D7DB4
+
+ thumb_func_start MOD54_021D7E98
+MOD54_021D7E98: ; 0x021D7E98
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r0, #1
+ mov r2, #0
+ add r7, r1, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #1
+ str r1, [sp]
+ mov r0, #0x41
+ mov r3, #0xd0
+ str r4, [sp, #4]
+ sub r4, r3, r6
+ lsl r0, r0, #0xa
+ lsr r3, r4, #0x1f
+ str r0, [sp, #8]
+ mov r0, #0
+ add r3, r4, r3
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r2, r7, #0
+ asr r3, r3, #1
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D7E98
+
+ thumb_func_start MOD54_021D7EDC
+MOD54_021D7EDC: ; 0x021D7EDC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xa6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0xc2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D7EDC
+
+ thumb_func_start MOD54_021D7F0C
+MOD54_021D7F0C: ; 0x021D7F0C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020334E8
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D7F2E
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #0
+ bl MOD54_021D8C90
+ b _021D7F38
+_021D7F2E:
+ add r0, r5, #0
+ mov r1, #8
+ mov r2, #0
+ bl MOD54_021D8C90
+_021D7F38:
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD54_021D80BC
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD54_021D7F0C
+
+ thumb_func_start MOD54_021D7F44
+MOD54_021D7F44: ; 0x021D7F44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD54_021D7F70
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D7F66
+ bl MOD54_021D8ADC
+ cmp r0, #1
+ beq _021D7F6C
+ add r0, r5, #0
+ bl MOD54_021D8C04
+ b _021D7F6C
+_021D7F66:
+ add r0, r5, #0
+ bl MOD54_021D8C04
+_021D7F6C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD54_021D7F44
+
+ thumb_func_start MOD54_021D7F70
+MOD54_021D7F70: ; 0x021D7F70
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, _021D808C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021D7FD6
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8086
+ bl MOD54_021D8C08
+ ldr r1, _021D8090 ; =0x00004A48
+ ldr r2, [r4, r1]
+ cmp r2, r0
+ bne _021D7FCC
+ add r1, #8
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _021D7FCC
+ mov r1, #1
+ add r0, sp, #0
+ strb r1, [r0, #2]
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #0
+ bl MOD54_021D8C90
+ add r0, r4, #0
+ mov r1, #0x16
+ bl MOD54_021D80BC
+ add r1, sp, #0
+ mov r0, #0x75
+ add r1, #2
+ mov r2, #1
+ bl FUN_02030ADC
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD54_021D8F40
+ add sp, #4
+ pop {r3, r4, pc}
+_021D7FCC:
+ ldr r0, _021D8094 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #4
+ pop {r3, r4, pc}
+_021D7FD6:
+ mov r0, #2
+ tst r0, r1
+ beq _021D805A
+ bl FUN_02031190
+ cmp r0, #0
+ beq _021D800C
+ ldr r0, _021D8098 ; =0x00004A3C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D8002
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #0
+ bl MOD54_021D8C90
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD54_021D80BC
+ add sp, #4
+ pop {r3, r4, pc}
+_021D8002:
+ ldr r0, _021D8094 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #4
+ pop {r3, r4, pc}
+_021D800C:
+ bl FUN_02030F20
+ ldr r1, _021D8090 ; =0x00004A48
+ ldr r2, [r4, r1]
+ cmp r2, r0
+ bne _021D8050
+ add r1, #8
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _021D8050
+ mov r1, #1
+ add r0, sp, #0
+ strb r1, [r0, #1]
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #0
+ bl MOD54_021D8C90
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD54_021D80BC
+ add r1, sp, #0
+ mov r0, #0x75
+ add r1, #1
+ mov r2, #1
+ bl FUN_02030ADC
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD54_021D8F40
+ add sp, #4
+ pop {r3, r4, pc}
+_021D8050:
+ ldr r0, _021D8094 ; =0x000005F2
+ bl FUN_020054C8
+ add sp, #4
+ pop {r3, r4, pc}
+_021D805A:
+ ldr r0, _021D809C ; =0x00004A4C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D8086
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8086
+ bl FUN_02030F20
+ ldr r1, _021D8090 ; =0x00004A48
+ ldr r1, [r4, r1]
+ cmp r1, r0
+ bne _021D8086
+ mov r1, #0
+ add r0, sp, #0
+ strb r1, [r0]
+ mov r0, #0x75
+ add r1, sp, #0
+ mov r2, #1
+ bl FUN_02030ADC
+_021D8086:
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D808C: .word 0x021C48B8
+_021D8090: .word 0x00004A48
+_021D8094: .word 0x000005F2
+_021D8098: .word 0x00004A3C
+_021D809C: .word 0x00004A4C
+ thumb_func_end MOD54_021D7F70
+
+ thumb_func_start MOD54_021D80A0
+MOD54_021D80A0: ; 0x021D80A0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD54_021D80A0
+
+ thumb_func_start MOD54_021D80A4
+MOD54_021D80A4: ; 0x021D80A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #2
+ bl MOD54_021D80BC
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D80A4
+
+ thumb_func_start MOD54_021D80BC
+MOD54_021D80BC: ; 0x021D80BC
+ mov r2, #0xd1
+ mov r3, #0x1e
+ lsl r2, r2, #2
+ str r3, [r0, r2]
+ add r2, r2, #4
+ str r1, [r0, r2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD54_021D80BC
+
+ thumb_func_start MOD54_021D80CC
+MOD54_021D80CC: ; 0x021D80CC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x4c]
+ add r4, r1, #0
+ bl MOD54_021D8D20
+ cmp r0, #0
+ beq _021D80E6
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ sub r0, r0, #4
+ str r1, [r5, r0]
+_021D80E6:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD54_021D80CC
+
+ thumb_func_start MOD54_021D80F0
+MOD54_021D80F0: ; 0x021D80F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D810C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x75
+ add r1, sp, #0
+ mov r2, #1
+ bl FUN_02030ADC
+_021D810C:
+ mov r0, #0xd1
+ mov r1, #3
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D80F0
+
+ thumb_func_start MOD54_021D8120
+MOD54_021D8120: ; 0x021D8120
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x33
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r1, _021D814C ; =0x021D9678
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x32
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #5
+ add r1, #0x24
+ str r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D814C: .word 0x021D9678
+ thumb_func_end MOD54_021D8120
+
+ thumb_func_start MOD54_021D8150
+MOD54_021D8150: ; 0x021D8150
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ cmp r0, #0
+ beq _021D8184
+ ldr r0, _021D826C ; =0x00004A3C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D81A8
+ ldr r0, _021D8270 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xc3
+ tst r0, r1
+ beq _021D8178
+ ldr r0, _021D8274 ; =0x000005F2
+ bl FUN_020054C8
+_021D8178:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add sp, #8
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021D8184:
+ ldr r0, _021D8278 ; =0x00004A50
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D81A8
+ ldr r0, _021D8270 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xc3
+ tst r0, r1
+ beq _021D819C
+ ldr r0, _021D8274 ; =0x000005F2
+ bl FUN_020054C8
+_021D819C:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add sp, #8
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021D81A8:
+ bl MOD54_021D8C08
+ add r6, r0, #0
+ bl FUN_02030F20
+ cmp r6, r0
+ beq _021D81C2
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add sp, #8
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021D81C2:
+ mov r0, #0x32
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x33
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D825E
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _021D8204
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D81FA
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x75
+ add r1, sp, #4
+ mov r2, #1
+ bl FUN_02030ADC
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD54_021D8F40
+_021D81FA:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD54_021D80BC
+ b _021D8256
+_021D8204:
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8220
+ add r0, r5, #0
+ mov r1, #0xb
+ bl MOD54_021D80BC
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD54_021D8C90
+ b _021D8256
+_021D8220:
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r1, #0
+ add r0, sp, #0
+ strb r1, [r0, #2]
+ bl FUN_02031190
+ add r1, sp, #0
+ strb r0, [r1]
+ ldr r0, _021D827C ; =0x00004A54
+ mov r1, #1
+ strb r1, [r5, r0]
+ mov r1, #0
+ add r0, #0xa
+ strh r1, [r5, r0]
+ mov r0, #0xd1
+ mov r1, #6
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x70
+ add r1, sp, #0
+ mov r2, #4
+ bl FUN_02030ADC
+_021D8256:
+ mov r0, #0x32
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D825E:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_021D826C: .word 0x00004A3C
+_021D8270: .word 0x021C48B8
+_021D8274: .word 0x000005F2
+_021D8278: .word 0x00004A50
+_021D827C: .word 0x00004A54
+ thumb_func_end MOD54_021D8150
+
+ thumb_func_start MOD54_021D8280
+MOD54_021D8280: ; 0x021D8280
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, _021D8294 ; =0x00004A5E
+ mov r2, #0
+ strh r2, [r0, r1]
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r4, pc}
+ nop
+_021D8294: .word 0x00004A5E
+ thumb_func_end MOD54_021D8280
+
+ thumb_func_start MOD54_021D8298
+MOD54_021D8298: ; 0x021D8298
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02030F20
+ ldr r1, _021D8318 ; =0x00004A5C
+ ldrh r1, [r5, r1]
+ cmp r1, r0
+ bne _021D82B6
+ bl MOD54_021D8C08
+ ldr r1, _021D8318 ; =0x00004A5C
+ ldrh r2, [r5, r1]
+ cmp r2, r0
+ beq _021D82CE
+_021D82B6:
+ ldr r0, _021D831C ; =0x00004A5E
+ mov r1, #0
+ strh r1, [r5, r0]
+ mov r0, #0xd1
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021D82CE:
+ add r0, r1, #2
+ ldrsh r0, [r5, r0]
+ add r2, r0, #1
+ add r0, r1, #2
+ strh r2, [r5, r0]
+ ldrsh r0, [r5, r0]
+ cmp r0, #0x1e
+ ble _021D830E
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #4
+ bl MI_CpuFill8
+ mov r1, #1
+ add r0, sp, #0
+ strb r1, [r0, #2]
+ bl FUN_02031190
+ add r1, sp, #0
+ strb r0, [r1]
+ mov r0, #0x70
+ add r1, sp, #0
+ mov r2, #4
+ bl FUN_02030ADC
+ ldr r0, _021D831C ; =0x00004A5E
+ mov r1, #0
+ strh r1, [r5, r0]
+ mov r0, #0xd1
+ mov r1, #9
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_021D830E:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8318: .word 0x00004A5C
+_021D831C: .word 0x00004A5E
+ thumb_func_end MOD54_021D8298
+
+ thumb_func_start MOD54_021D8320
+MOD54_021D8320: ; 0x021D8320
+ push {r3, r4, r5, lr}
+ ldr r2, _021D833C ; =0x00004A54
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ strb r1, [r5, r2]
+ bl MOD54_021D80BC
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D833C: .word 0x00004A54
+ thumb_func_end MOD54_021D8320
+
+ thumb_func_start MOD54_021D8340
+MOD54_021D8340: ; 0x021D8340
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x33
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r1, _021D836C ; =0x021D9678
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x32
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #0x17
+ add r1, #0x24
+ str r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D836C: .word 0x021D9678
+ thumb_func_end MOD54_021D8340
+
+ thumb_func_start MOD54_021D8370
+MOD54_021D8370: ; 0x021D8370
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD54_021D8C08
+ ldr r1, _021D8410 ; =0x00004A48
+ ldr r2, [r5, r1]
+ cmp r2, r0
+ bne _021D838A
+ add r1, #8
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ beq _021D83A4
+_021D838A:
+ ldr r0, _021D8414 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xc3
+ tst r0, r1
+ beq _021D839A
+ ldr r0, _021D8418 ; =0x000005F2
+ bl FUN_020054C8
+_021D839A:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021D83A4:
+ mov r0, #0x32
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x33
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D8404
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _021D83DE
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x75
+ add r1, sp, #0
+ mov r2, #1
+ bl FUN_02030ADC
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD54_021D8F40
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD54_021D80BC
+ b _021D83FC
+_021D83DE:
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D83F8
+ mov r0, #0xd1
+ mov r1, #0x18
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ bl MOD54_021D8C08
+ ldr r1, _021D841C ; =0x00004A56
+ strb r0, [r5, r1]
+ b _021D83FC
+_021D83F8:
+ bl ErrorHandling
+_021D83FC:
+ mov r0, #0x32
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D8404:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8410: .word 0x00004A48
+_021D8414: .word 0x021C48B8
+_021D8418: .word 0x000005F2
+_021D841C: .word 0x00004A56
+ thumb_func_end MOD54_021D8370
+
+ thumb_func_start MOD54_021D8420
+MOD54_021D8420: ; 0x021D8420
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D8448 ; =0x00004A57
+ add r4, r1, #0
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _021D8442
+ mov r1, #0
+ mov r0, #0x73
+ add r2, r1, #0
+ bl FUN_02030ADC
+ cmp r0, #1
+ bne _021D8442
+ ldr r0, _021D8448 ; =0x00004A57
+ mov r1, #1
+ strb r1, [r5, r0]
+_021D8442:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8448: .word 0x00004A57
+ thumb_func_end MOD54_021D8420
+
+ thumb_func_start MOD54_021D844C
+MOD54_021D844C: ; 0x021D844C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x48]
+ mov r1, #0x12
+ bl FUN_0200A8E0
+ mov r0, #0xc2
+ lsl r0, r0, #2
+ ldr r1, [r4, #0x48]
+ add r0, r4, r0
+ mov r2, #0
+ bl MOD54_021D7E98
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x25
+ bl FUN_02020130
+ mov r0, #1
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D844C
+
+ thumb_func_start MOD54_021D847C
+MOD54_021D847C: ; 0x021D847C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D848E
+ bl FUN_02030F20
+_021D848E:
+ bl FUN_02030F20
+ ldr r1, _021D84A8 ; =0x00004A34
+ ldr r1, [r5, r1]
+ cmp r1, r0
+ bne _021D84A2
+ mov r0, #0xd1
+ mov r1, #0x1a
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_021D84A2:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D84A8: .word 0x00004A34
+ thumb_func_end MOD54_021D847C
+
+ thumb_func_start MOD54_021D84AC
+MOD54_021D84AC: ; 0x021D84AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D84CC ; =0x00004A38
+ add r4, r1, #0
+ ldr r1, _021D84D0 ; =0x00000F74
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ bl MOD54_021D95CC
+ mov r0, #0xd1
+ mov r1, #0x1b
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D84CC: .word 0x00004A38
+_021D84D0: .word 0x00000F74
+ thumb_func_end MOD54_021D84AC
+
+ thumb_func_start MOD54_021D84D4
+MOD54_021D84D4: ; 0x021D84D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r0, _021D8514 ; =0x021C4918
+ mov r1, #1
+ strb r1, [r0, #8]
+ mov r0, #0x33
+ bl FUN_020294F4
+ add r1, r0, #0
+ ldr r0, [r5, #8]
+ mov r2, #4
+ ldr r0, [r0, #0x10]
+ bl FUN_02028AD4
+ ldr r0, [r5, #8]
+ mov r1, #0x14
+ ldr r0, [r0, #0xc]
+ bl FUN_0202A170
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_020336C0
+ mov r0, #0xd1
+ mov r1, #0x1c
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8514: .word 0x021C4918
+ thumb_func_end MOD54_021D84D4
+
+ thumb_func_start MOD54_021D8518
+MOD54_021D8518: ; 0x021D8518
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D852A
+ bl FUN_02030F20
+_021D852A:
+ ldr r0, [r5, #8]
+ mov r2, #0x3a
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ mov r1, #2
+ add r2, r5, r2
+ bl FUN_020336C8
+ cmp r0, #0
+ beq _021D8576
+ ldr r0, _021D857C ; =0x00000658
+ mov r1, #8
+ bl FUN_020054F0
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0
+ bl MOD54_021D8C90
+ add r0, r5, #0
+ mov r1, #0x1d
+ bl MOD54_021D80BC
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020130
+ mov r1, #0
+ mov r0, #0x35
+ str r1, [r5, #0xc]
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, _021D8580 ; =0x021C4918
+ strb r1, [r0, #8]
+ ldr r0, _021D8584 ; =0x00004A40
+ strb r1, [r5, r0]
+_021D8576:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D857C: .word 0x00000658
+_021D8580: .word 0x021C4918
+_021D8584: .word 0x00004A40
+ thumb_func_end MOD54_021D8518
+
+ thumb_func_start MOD54_021D8588
+MOD54_021D8588: ; 0x021D8588
+ push {r3, r4}
+ mov r2, #0x35
+ lsl r2, r2, #4
+ ldr r4, [r0, r2]
+ add r3, r4, #1
+ str r3, [r0, r2]
+ cmp r4, #0x3c
+ ble _021D859E
+ mov r3, #0xf
+ sub r2, #0xc
+ str r3, [r0, r2]
+_021D859E:
+ add r0, r1, #0
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD54_021D8588
+
+ thumb_func_start MOD54_021D85A4
+MOD54_021D85A4: ; 0x021D85A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #5
+ mov r2, #0
+ bl MOD54_021D8C90
+ add r0, r5, #0
+ mov r1, #0xa
+ bl MOD54_021D80BC
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD54_021D85A4
+
+ thumb_func_start MOD54_021D85C4
+MOD54_021D85C4: ; 0x021D85C4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x35
+ lsl r0, r0, #4
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ add r1, r1, #1
+ str r1, [r5, r0]
+ ldr r0, [r5, r0]
+ cmp r0, #0x3c
+ ble _021D85F4
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x33
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r4, #3
+_021D85F4:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD54_021D85C4
+
+ thumb_func_start MOD54_021D8600
+MOD54_021D8600: ; 0x021D8600
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x33
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r1, _021D862C ; =0x021D9678
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x32
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #0xc
+ add r1, #0x24
+ str r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D862C: .word 0x021D9678
+ thumb_func_end MOD54_021D8600
+
+ thumb_func_start MOD54_021D8630
+MOD54_021D8630: ; 0x021D8630
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD54_021D8C08
+ ldr r1, _021D86D0 ; =0x00004A48
+ ldr r2, [r5, r1]
+ cmp r2, r0
+ bne _021D864A
+ add r1, #8
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ beq _021D8664
+_021D864A:
+ ldr r0, _021D86D4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0xc3
+ tst r0, r1
+ beq _021D865A
+ ldr r0, _021D86D8 ; =0x000005F2
+ bl FUN_020054C8
+_021D865A:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021D8664:
+ mov r0, #0x32
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x33
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D86C6
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _021D869C
+ mov r1, #0
+ mov r0, #0xd1
+ str r1, [sp]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #0x75
+ add r1, sp, #0
+ mov r2, #1
+ bl FUN_02030ADC
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD54_021D8F40
+ b _021D86BE
+_021D869C:
+ mov r0, #0xd1
+ mov r1, #0xd
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0
+ mov r0, #0x71
+ add r2, r1, #0
+ bl FUN_02030ADC
+ mov r0, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r5, #0x24]
+ mov r1, #0
+ bl FUN_0200ABC0
+_021D86BE:
+ mov r0, #0x32
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D86C6:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D86D0: .word 0x00004A48
+_021D86D4: .word 0x021C48B8
+_021D86D8: .word 0x000005F2
+ thumb_func_end MOD54_021D8630
+
+ thumb_func_start MOD54_021D86DC
+MOD54_021D86DC: ; 0x021D86DC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D86F6
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl MOD54_021D8C90
+ b _021D8710
+_021D86F6:
+ mov r0, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r5, #0x24]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD54_021D8C90
+_021D8710:
+ add r0, r5, #0
+ mov r1, #0xe
+ bl MOD54_021D80BC
+ mov r0, #0x35
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D86DC
+
+ thumb_func_start MOD54_021D872C
+MOD54_021D872C: ; 0x021D872C
+ push {r4, lr}
+ add r4, r1, #0
+ mov r1, #0x35
+ lsl r1, r1, #4
+ ldr r2, [r0, r1]
+ add r2, r2, #1
+ str r2, [r0, r1]
+ ldr r2, [r0, r1]
+ cmp r2, #0x2d
+ ble _021D8746
+ mov r2, #0xf
+ sub r1, #0xc
+ str r2, [r0, r1]
+_021D8746:
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D872C
+
+ thumb_func_start MOD54_021D8750
+MOD54_021D8750: ; 0x021D8750
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0xc9
+ add r4, r1, #0
+ bl FUN_02031588
+ mov r0, #0xd1
+ mov r1, #0x10
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D8750
+
+ thumb_func_start MOD54_021D8770
+MOD54_021D8770: ; 0x021D8770
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0xc9
+ add r5, r1, #0
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _021D87A2
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020334E8
+ mov r1, #0x10
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x33
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r5, #3
+_021D87A2:
+ add r0, r4, #0
+ bl MOD54_021D80A0
+ add r0, r5, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D8770
+
+ thumb_func_start MOD54_021D87B0
+MOD54_021D87B0: ; 0x021D87B0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #9
+ mov r2, #0
+ add r5, r0, #0
+ bl MOD54_021D8C90
+ mov r0, #0xd1
+ mov r1, #0x12
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD54_021D87B0
+
+ thumb_func_start MOD54_021D87D0
+MOD54_021D87D0: ; 0x021D87D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x4c]
+ add r4, r1, #0
+ bl MOD54_021D8D20
+ cmp r0, #0
+ beq _021D87E8
+ mov r0, #0xd1
+ mov r1, #0xa
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_021D87E8:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D87D0
+
+ thumb_func_start MOD54_021D87F4
+MOD54_021D87F4: ; 0x021D87F4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x4c]
+ add r4, r1, #0
+ cmp r0, #0xff
+ beq _021D8812
+ bl MOD54_021D8D20
+ cmp r0, #0
+ bne _021D8812
+ ldr r0, [r5, #0x4c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+_021D8812:
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD54_021D8C90
+ mov r0, #0xd1
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8834
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD54_021D8F40
+_021D8834:
+ bl FUN_02030F20
+ ldr r1, _021D8848 ; =0x00004A58
+ str r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8848: .word 0x00004A58
+ thumb_func_end MOD54_021D87F4
+
+ thumb_func_start MOD54_021D884C
+MOD54_021D884C: ; 0x021D884C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D8884 ; =0x00004A58
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D886A
+ bl FUN_02030F20
+ ldr r1, _021D8884 ; =0x00004A58
+ ldr r2, [r5, r1]
+ cmp r2, r0
+ beq _021D886A
+ mov r0, #0
+ str r0, [r5, r1]
+_021D886A:
+ mov r0, #0xd1
+ mov r1, #0x15
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0
+ add r0, #0xc
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8884: .word 0x00004A58
+ thumb_func_end MOD54_021D884C
+
+ thumb_func_start MOD54_021D8888
+MOD54_021D8888: ; 0x021D8888
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D88E0 ; =0x00004A58
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D88A6
+ bl FUN_02030F20
+ ldr r1, _021D88E0 ; =0x00004A58
+ ldr r2, [r5, r1]
+ cmp r2, r0
+ beq _021D88A6
+ mov r0, #0
+ str r0, [r5, r1]
+_021D88A6:
+ mov r1, #0x35
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ add r0, r0, #1
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ cmp r0, #0x3c
+ ble _021D88D4
+ ldr r0, _021D88E0 ; =0x00004A58
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _021D88D4
+ mov r0, #0
+ sub r1, #0xc
+ str r0, [r5, r1]
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D88D4
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD54_021D8F40
+_021D88D4:
+ add r0, r5, #0
+ bl MOD54_021D80A0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D88E0: .word 0x00004A58
+ thumb_func_end MOD54_021D8888
+
+ thumb_func_start MOD54_021D88E4
+MOD54_021D88E4: ; 0x021D88E4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #0xd
+ bgt _021D8906
+ bge _021D891A
+ cmp r4, #8
+ bgt _021D89BE
+ cmp r4, #2
+ blt _021D89BE
+ beq _021D8914
+ cmp r4, #7
+ beq _021D89B8
+ cmp r4, #8
+ beq _021D89B8
+ pop {r4, r5, r6, pc}
+_021D8906:
+ cmp r4, #0x13
+ bgt _021D890E
+ beq _021D896C
+ pop {r4, r5, r6, pc}
+_021D890E:
+ cmp r4, #0x19
+ beq _021D8934
+ pop {r4, r5, r6, pc}
+_021D8914:
+ bl MOD54_021D8D40
+ b _021D89B8
+_021D891A:
+ mov r0, #0x32
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D89B8
+ mov r1, #0x33
+ bl FUN_020021EC
+ mov r0, #0x32
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D89B8
+_021D8934:
+ ldr r0, [r5, #0x4c]
+ bl MOD54_021D8D20
+ cmp r0, #0
+ bne _021D8948
+ ldr r0, [r5, #0x4c]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+_021D8948:
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD54_021D8C90
+ mov r0, #0x32
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D89B8
+ mov r1, #0x33
+ bl FUN_020021EC
+ mov r0, #0x32
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D89B8
+_021D896C:
+ ldr r0, _021D89C0 ; =0x00004A54
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _021D89BE
+ add r0, r6, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r5, #0x24]
+ mov r1, #0
+ bl FUN_0200ABC0
+ bl FUN_02031190
+ cmp r6, r0
+ beq _021D89BE
+ mov r0, #0x32
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D89A4
+ mov r1, #0x33
+ bl FUN_020021EC
+ mov r0, #0x32
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D89A4:
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D89B8
+ ldr r1, _021D89C4 ; =0x00004A50
+ ldr r0, _021D89C8 ; =0x0000FFFF
+ ldr r2, [r5, r1]
+ eor r0, r6
+ and r0, r2
+ str r0, [r5, r1]
+_021D89B8:
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+_021D89BE:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D89C0: .word 0x00004A54
+_021D89C4: .word 0x00004A50
+_021D89C8: .word 0x0000FFFF
+ thumb_func_end MOD54_021D88E4
+
+ thumb_func_start MOD54_021D89CC
+MOD54_021D89CC: ; 0x021D89CC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r0, #3
+ bne _021D8A6C
+ cmp r4, #1
+ beq _021D89EA
+ cmp r4, #0x13
+ beq _021D8A2E
+ b _021D8A64
+_021D89EA:
+ add r0, r6, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r5, #0x24]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD54_021D8F40
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ bl FUN_02030F20
+ ldr r1, _021D8A84 ; =0x00004A48
+ str r0, [r5, r1]
+ mov r0, #0
+ add r1, #8
+ str r0, [r5, r1]
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8A7E
+ mov r2, #1
+ mov r0, #0x75
+ add r1, sp, #0
+ str r2, [sp]
+ bl FUN_02030ADC
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_021D8A2E:
+ add r0, r6, #0
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, [r5, #0x24]
+ mov r1, #0
+ bl FUN_0200ABC0
+ bl FUN_02031190
+ cmp r6, r0
+ beq _021D8A7E
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8A5A
+ ldr r1, _021D8A88 ; =0x00004A50
+ ldr r0, _021D8A8C ; =0x0000FFFF
+ ldr r2, [r5, r1]
+ eor r0, r6
+ and r0, r2
+ str r0, [r5, r1]
+_021D8A5A:
+ mov r0, #0xd1
+ lsl r0, r0, #2
+ add sp, #4
+ str r4, [r5, r0]
+ pop {r3, r4, r5, r6, pc}
+_021D8A64:
+ bl ErrorHandling
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+_021D8A6C:
+ cmp r4, #1
+ bne _021D8A7E
+ ldr r0, _021D8A88 ; =0x00004A50
+ mov r1, #0
+ str r1, [r5, r0]
+ bl FUN_02030F20
+ ldr r1, _021D8A84 ; =0x00004A48
+ str r0, [r5, r1]
+_021D8A7E:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D8A84: .word 0x00004A48
+_021D8A88: .word 0x00004A50
+_021D8A8C: .word 0x0000FFFF
+ thumb_func_end MOD54_021D89CC
+
+ thumb_func_start MOD54_021D8A90
+MOD54_021D8A90: ; 0x021D8A90
+ push {r3, lr}
+ ldrh r1, [r0]
+ add r1, #0xa
+ strh r1, [r0]
+ ldrh r2, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ cmp r2, r1
+ bls _021D8AA6
+ mov r1, #0
+ strh r1, [r0]
+_021D8AA6:
+ ldrh r0, [r0]
+ bl FUN_0201B970
+ mov r1, #0xa
+ add r2, r0, #0
+ mul r2, r1
+ asr r0, r2, #0xb
+ lsr r0, r0, #0x14
+ add r0, r2, r0
+ asr r0, r0, #0xc
+ add r0, #0xf
+ lsl r2, r0, #5
+ mov r0, #0x1d
+ orr r2, r0
+ add r0, sp, #0
+ strh r2, [r0]
+ add r0, sp, #0
+ mov r2, #2
+ bl GX_LoadOBJPltt
+ add r0, sp, #0
+ mov r1, #0x2a
+ mov r2, #2
+ bl GX_LoadOBJPltt
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D8A90
+
+ thumb_func_start MOD54_021D8ADC
+MOD54_021D8ADC: ; 0x021D8ADC
+ push {r3, r4, r5, lr}
+ mov r5, #0
+ add r4, r5, #0
+_021D8AE2:
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _021D8AEE
+ add r5, r5, #1
+_021D8AEE:
+ add r4, r4, #1
+ cmp r4, #5
+ blt _021D8AE2
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD54_021D8ADC
+
+ thumb_func_start MOD54_021D8AF8
+MOD54_021D8AF8: ; 0x021D8AF8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r3, [sp, #0x14]
+ add r6, r0, #0
+ str r2, [sp, #0x10]
+ bl FUN_02031190
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x14]
+ bl MOD54_021D8C2C
+ cmp r0, #0
+ bne _021D8B18
+ add sp, #0x28
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D8B18:
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r7, [sp, #0x14]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ add r4, r7, #0
+ mov r5, #1
+_021D8B2A:
+ mov r0, #0xd9
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ cmp r0, #0
+ beq _021D8BE4
+ bl FUN_020239C0
+ str r0, [sp, #0x24]
+ mov r0, #0xd9
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ ldr r1, [r4, #0x2c]
+ bl FUN_02023990
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x24]
+ ldr r0, [r0, #0x24]
+ mov r1, #0
+ mov r3, #5
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x14]
+ ldr r0, [r0, #0x24]
+ ldr r1, [r1, #0x28]
+ mov r2, #1
+ mov r3, #0x33
+ bl FUN_0200A9C4
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x20]
+ cmp r1, r0
+ str r5, [sp]
+ bne _021D8BAC
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8C00 ; =0x00020300
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x2c]
+ add r0, r6, #0
+ mov r3, #5
+ bl FUN_0201BDE0
+ str r5, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8C00 ; =0x00020300
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ mov r1, #0
+ mov r3, #0x46
+ bl FUN_0201BDE0
+ b _021D8BDE
+_021D8BAC:
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x10]
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x2c]
+ add r0, r6, #0
+ mov r3, #5
+ bl FUN_0201BDE0
+ str r5, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ mov r1, #0
+ mov r3, #0x46
+ bl FUN_0201BDE0
+_021D8BDE:
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+_021D8BE4:
+ ldr r0, [sp, #0x20]
+ add r7, #8
+ add r0, r0, #1
+ add r4, r4, #4
+ add r5, #0x12
+ str r0, [sp, #0x20]
+ cmp r0, #5
+ blt _021D8B2A
+ add r0, r6, #0
+ bl FUN_020191D0
+ mov r0, #1
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8C00: .word 0x00020300
+ thumb_func_end MOD54_021D8AF8
+
+ thumb_func_start MOD54_021D8C04
+MOD54_021D8C04: ; 0x021D8C04
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD54_021D8C04
+
+ thumb_func_start MOD54_021D8C08
+MOD54_021D8C08: ; 0x021D8C08
+ push {r3, r4, r5, lr}
+ mov r5, #0
+ add r4, r5, #0
+_021D8C0E:
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _021D8C1A
+ add r5, r5, #1
+_021D8C1A:
+ add r4, r4, #1
+ cmp r4, #5
+ blt _021D8C0E
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD54_021D8C08
+
+ thumb_func_start MOD54_021D8C24
+MOD54_021D8C24: ; 0x021D8C24
+ ldr r3, _021D8C28 ; =MOD54_021D8C08
+ bx r3
+ .align 2, 0
+_021D8C28: .word MOD54_021D8C08
+ thumb_func_end MOD54_021D8C24
+
+ thumb_func_start MOD54_021D8C2C
+MOD54_021D8C2C: ; 0x021D8C2C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ mov r7, #0xd9
+ str r4, [sp]
+ add r5, r6, #0
+ lsl r7, r7, #2
+_021D8C3A:
+ mov r0, #0xd9
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ add r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, #8
+ cmp r4, #5
+ blt _021D8C3A
+ mov r7, #0xda
+ mov r5, #0
+ add r4, r6, #0
+ mov r1, #1
+ mov r0, #3
+ lsl r7, r7, #2
+_021D8C60:
+ mov r2, #0xd9
+ lsl r2, r2, #2
+ ldr r3, [r6, r2]
+ ldr r2, [r6, r7]
+ cmp r2, r3
+ beq _021D8C80
+ str r1, [sp]
+ cmp r3, #0
+ bne _021D8C7A
+ mov r2, #0xe3
+ lsl r2, r2, #2
+ str r0, [r4, r2]
+ b _021D8C80
+_021D8C7A:
+ mov r2, #0xe3
+ lsl r2, r2, #2
+ str r1, [r4, r2]
+_021D8C80:
+ add r5, r5, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r5, #5
+ blt _021D8C60
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D8C2C
+
+ thumb_func_start MOD54_021D8C90
+MOD54_021D8C90: ; 0x021D8C90
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #0xb4
+ mov r1, #0x33
+ add r6, r2, #0
+ bl FUN_020219F4
+ add r4, r0, #0
+ ldr r0, [r5, #0x28]
+ add r1, r7, #0
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5, #0x44]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ cmp r6, #0
+ bne _021D8D00
+ add r0, r5, #0
+ bl MOD54_021D8F3C
+ mov r3, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xba
+ lsl r0, r0, #2
+ ldr r2, [r5, #0x44]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ add sp, #0xc
+ str r0, [r5, #0x4c]
+ pop {r4, r5, r6, r7, pc}
+_021D8D00:
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xba
+ lsl r0, r0, #2
+ ldr r2, [r5, #0x44]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r0, #0xff
+ str r0, [r5, #0x4c]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D8C90
+
+ thumb_func_start MOD54_021D8D20
+MOD54_021D8D20: ; 0x021D8D20
+ push {r3, lr}
+ cmp r0, #0xff
+ bne _021D8D2A
+ mov r0, #1
+ pop {r3, pc}
+_021D8D2A:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D8D3A
+ mov r0, #1
+ pop {r3, pc}
+_021D8D3A:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D8D20
+
+ thumb_func_start MOD54_021D8D40
+MOD54_021D8D40: ; 0x021D8D40
+ mov r1, #0xba
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _021D8D4C ; =FUN_0200D0E0
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_021D8D4C: .word FUN_0200D0E0
+ thumb_func_end MOD54_021D8D40
+
+ thumb_func_start MOD54_021D8D50
+MOD54_021D8D50: ; 0x021D8D50
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x14]
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ mov r4, #0
+ add r0, r5, r0
+ str r4, [sp, #8]
+ add r6, r5, #0
+ mov r7, #0x1c
+ str r0, [sp, #0x18]
+_021D8D72:
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #3
+ bhi _021D8E3E
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8D88: ; jump table
+ .short _021D8E3E - _021D8D88 - 2 ; case 0
+ .short _021D8D90 - _021D8D88 - 2 ; case 1
+ .short _021D8E3E - _021D8D88 - 2 ; case 2
+ .short _021D8E06 - _021D8D88 - 2 ; case 3
+_021D8D90:
+ mov r0, #0xd9
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bne _021D8D9E
+ bl ErrorHandling
+_021D8D9E:
+ mov r0, #0xd9
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_020239CC
+ str r0, [sp, #0xc]
+ mov r0, #0xd9
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02023A28
+ str r0, [sp, #0x10]
+ bl FUN_02031190
+ cmp r4, r0
+ bne _021D8DD0
+ mov r0, #0x8b
+ ldr r1, [sp, #0xc]
+ lsl r0, r0, #2
+ lsl r1, r1, #1
+ ldr r0, [r5, r0]
+ add r1, #0x26
+ bl FUN_02020130
+ b _021D8DEC
+_021D8DD0:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x18]
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ ldr r3, [sp, #0x10]
+ add r2, r4, #0
+ bl MOD54_021D8EC8
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #4]
+ bl FUN_02020130
+_021D8DEC:
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xe3
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r0, #1
+ str r0, [sp, #8]
+ b _021D8E3E
+_021D8E06:
+ bl FUN_02031190
+ cmp r4, r0
+ bne _021D8E2A
+ mov r0, #0xd9
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_020239CC
+ add r1, r0, #0
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ lsl r1, r1, #1
+ ldr r0, [r5, r0]
+ add r1, #0x27
+ bl FUN_02020130
+ b _021D8E36
+_021D8E2A:
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r7, #0
+ bl FUN_02020130
+_021D8E36:
+ mov r0, #0xe3
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_021D8E3E:
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ add r0, r0, #2
+ add r5, r5, #4
+ add r6, #8
+ add r7, r7, #2
+ str r0, [sp, #4]
+ cmp r4, #5
+ blt _021D8D72
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _021D8E5C
+ ldr r0, _021D8E60 ; =0x0000064F
+ bl FUN_020054C8
+_021D8E5C:
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8E60: .word 0x0000064F
+ thumb_func_end MOD54_021D8D50
+
+ thumb_func_start MOD54_021D8E64
+MOD54_021D8E64: ; 0x021D8E64
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r2, #0xcf
+ add r4, r0, #0
+ lsl r2, r2, #2
+ mov r0, #0x68
+ mov r1, #8
+ add r2, r4, r2
+ mov r3, #0x33
+ bl FUN_02006C08
+ mov r2, #0xcd
+ lsl r2, r2, #2
+ str r0, [r4, r2]
+ add r2, #0xc
+ mov r0, #0x56
+ mov r1, #7
+ add r2, r4, r2
+ mov r3, #0x33
+ bl FUN_02006C08
+ mov r3, #0xce
+ lsl r3, r3, #2
+ str r0, [r4, r3]
+ mov r0, #0x33
+ sub r3, #0xc
+ str r0, [sp]
+ mov r0, #0x68
+ mov r1, #0x20
+ mov r2, #1
+ add r3, r4, r3
+ bl FUN_02006BB0
+ mov r1, #0xc9
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r3, #0x33
+ str r3, [sp]
+ lsl r3, r3, #4
+ mov r0, #0x56
+ mov r1, #9
+ mov r2, #1
+ add r3, r4, r3
+ bl FUN_02006BB0
+ mov r1, #0xca
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD54_021D8E64
+
+ thumb_func_start MOD54_021D8EC8
+MOD54_021D8EC8: ; 0x021D8EC8
+ 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
+ ldr r0, [r6, #4]
+ mov r2, #6
+ ldr r6, [r0, #0xc]
+ ldr r0, [r7, #4]
+ lsl r2, r2, #8
+ ldr r1, [r0, #0x14]
+ add r0, r4, #0
+ mul r0, r2
+ add r0, r1, r0
+ ldr r1, _021D8F08 ; =0x021D9680
+ lsl r3, r5, #1
+ ldrh r1, [r1, r3]
+ bl GX_LoadOBJ
+ lsl r0, r4, #5
+ add r1, r5, #7
+ add r0, r6, r0
+ lsl r1, r1, #5
+ mov r2, #0x20
+ bl GX_LoadOBJPltt
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8F08: .word 0x021D9680
+ thumb_func_end MOD54_021D8EC8
+
+ thumb_func_start MOD54_021D8F0C
+MOD54_021D8F0C: ; 0x021D8F0C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0xc9
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D8F0C
+
+ thumb_func_start MOD54_021D8F3C
+MOD54_021D8F3C: ; 0x021D8F3C
+ mov r0, #1
+ bx lr
+ thumb_func_end MOD54_021D8F3C
+
+ thumb_func_start MOD54_021D8F40
+MOD54_021D8F40: ; 0x021D8F40
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ cmp r0, #0
+ bne _021D8F8C
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _021D8F5E
+ mov r0, #1
+ bl FUN_02032B6C
+ b _021D8F6E
+_021D8F5E:
+ bl FUN_02030F20
+ add r0, r4, r0
+ cmp r0, #5
+ ble _021D8F6A
+ mov r0, #5
+_021D8F6A:
+ bl FUN_02032B6C
+_021D8F6E:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ ldr r0, _021D8F90 ; =0x00004A55
+ bne _021D8F7E
+ mov r1, #2
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+_021D8F7E:
+ cmp r4, #0
+ bne _021D8F88
+ mov r1, #1
+ strb r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+_021D8F88:
+ mov r1, #0
+ strb r1, [r5, r0]
+_021D8F8C:
+ pop {r3, r4, r5, pc}
+ nop
+_021D8F90: .word 0x00004A55
+ thumb_func_end MOD54_021D8F40
+
+ thumb_func_start MOD54_021D8F94
+MOD54_021D8F94: ; 0x021D8F94
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r6, r1, #0
+ bl MOD54_021D8C08
+ add r5, r0, #0
+ ldr r0, _021D9088 ; =0x00004A48
+ ldr r1, [r4, r0]
+ cmp r5, r1
+ ble _021D8FBE
+ mov r2, #1
+ add r0, sp, #0
+ strb r2, [r0]
+ mov r0, #0x75
+ add r1, sp, #0
+ bl FUN_02030ADC
+ mov r1, #1
+ ldr r0, _021D908C ; =0x00004A4C
+ b _021D8FC2
+_021D8FBE:
+ mov r1, #0
+ add r0, r0, #4
+_021D8FC2:
+ str r1, [r4, r0]
+ ldr r0, _021D9090 ; =0x00004A44
+ ldr r0, [r4, r0]
+ cmp r5, r0
+ bne _021D8FD2
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D8FD2:
+ cmp r5, #5
+ bhi _021D9078
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8FE2: ; jump table
+ .short _021D9078 - _021D8FE2 - 2 ; case 0
+ .short _021D8FEE - _021D8FE2 - 2 ; case 1
+ .short _021D9032 - _021D8FE2 - 2 ; case 2
+ .short _021D9032 - _021D8FE2 - 2 ; case 3
+ .short _021D9032 - _021D8FE2 - 2 ; case 4
+ .short _021D906A - _021D8FE2 - 2 ; case 5
+_021D8FEE:
+ bl FUN_02030F20
+ cmp r0, #1
+ bgt _021D8FFE
+ bl FUN_0202CB8C
+ cmp r0, #1
+ bls _021D9004
+_021D8FFE:
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D9004:
+ mov r0, #0xd1
+ mov r1, #0x11
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ sub r1, #0x12
+ bl MOD54_021D8F40
+ mov r0, #0x32
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D902C
+ mov r1, #0x33
+ bl FUN_020021EC
+ mov r0, #0x32
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_021D902C:
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, r5, r6, pc}
+_021D9032:
+ mov r0, #2
+ bl FUN_02052B74
+ ldr r0, _021D9090 ; =0x00004A44
+ ldr r1, [r4, r0]
+ cmp r5, r1
+ bge _021D9078
+ add r0, #0x11
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ beq _021D904E
+ cmp r0, #1
+ beq _021D9058
+ b _021D9060
+_021D904E:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD54_021D8F40
+ b _021D9060
+_021D9058:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD54_021D8F40
+_021D9060:
+ bl FUN_02030F20
+ ldr r1, _021D9088 ; =0x00004A48
+ str r0, [r4, r1]
+ b _021D9078
+_021D906A:
+ mov r0, #9
+ bl FUN_02052B74
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD54_021D8F40
+_021D9078:
+ bl MOD54_021D8C08
+ ldr r1, _021D9090 ; =0x00004A44
+ str r0, [r4, r1]
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D9088: .word 0x00004A48
+_021D908C: .word 0x00004A4C
+_021D9090: .word 0x00004A44
+ thumb_func_end MOD54_021D8F94
+
+ thumb_func_start MOD54_021D9094
+MOD54_021D9094: ; 0x021D9094
+ mov r0, #0x2c
+ bx lr
+ thumb_func_end MOD54_021D9094
+
+ thumb_func_start MOD54_021D9098
+MOD54_021D9098: ; 0x021D9098
+ add r0, #0x2c
+ bx lr
+ thumb_func_end MOD54_021D9098
+
+ thumb_func_start MOD54_021D909C
+MOD54_021D909C: ; 0x021D909C
+ push {r4, r5, r6, r7}
+ add r7, r0, #0
+ add r6, r7, #0
+ mov ip, r1
+ mov r5, #5
+ add r6, #0xdc
+_021D90A8:
+ add r4, r6, #0
+ sub r4, #0x2c
+ add r3, r6, #0
+ mov r2, #5
+_021D90B0:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D90B0
+ ldr r0, [r4]
+ sub r5, r5, #1
+ sub r6, #0x2c
+ str r0, [r3]
+ cmp r5, #2
+ bgt _021D90A8
+ add r7, #0x58
+ mov r3, #5
+_021D90C8:
+ mov r2, ip
+ ldmia r2!, {r0, r1}
+ mov ip, r2
+ stmia r7!, {r0, r1}
+ sub r3, r3, #1
+ bne _021D90C8
+ mov r0, ip
+ ldr r0, [r0]
+ str r0, [r7]
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD54_021D909C
+
+ thumb_func_start MOD54_021D90E0
+MOD54_021D90E0: ; 0x021D90E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #2
+ blt _021D90EE
+ cmp r5, #5
+ ble _021D90F2
+_021D90EE:
+ bl ErrorHandling
+_021D90F2:
+ add r2, r5, #1
+ cmp r2, #5
+ bgt _021D911A
+ mov r0, #0x2c
+ mul r0, r2
+ add r3, r4, r0
+_021D90FE:
+ add r6, r3, #0
+ add r7, r3, #0
+ sub r6, #0x2c
+ mov r5, #5
+_021D9106:
+ ldmia r7!, {r0, r1}
+ stmia r6!, {r0, r1}
+ sub r5, r5, #1
+ bne _021D9106
+ ldr r0, [r7]
+ add r2, r2, #1
+ add r3, #0x2c
+ str r0, [r6]
+ cmp r2, #5
+ ble _021D90FE
+_021D911A:
+ ldr r0, _021D9128 ; =0x0000FFFF
+ add r1, r4, #0
+ add r4, #0xdc
+ add r1, #0xdc
+ strh r0, [r4]
+ strh r0, [r1, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9128: .word 0x0000FFFF
+ thumb_func_end MOD54_021D90E0
+
+ thumb_func_start MOD54_021D912C
+MOD54_021D912C: ; 0x021D912C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ add r5, r2, #0
+ str r1, [sp, #4]
+ str r3, [sp, #8]
+ cmp r0, #0
+ ble _021D91A6
+ mov r7, #0x2c
+_021D9144:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ ldr r6, [r0]
+ ldr r0, [sp, #4]
+ cmp r1, r0
+ beq _021D9194
+ cmp r6, #0
+ beq _021D9194
+ add r0, r6, #0
+ bl FUN_0202888C
+ cmp r0, #1
+ beq _021D9194
+ add r0, r6, #0
+ add r1, r5, #0
+ bl FUN_020288AC
+ cmp r0, #0
+ bne _021D9194
+ mov r4, #0
+_021D916C:
+ add r1, r4, #2
+ add r2, r1, #0
+ mul r2, r7
+ add r0, r6, #0
+ add r1, r5, r2
+ bl FUN_020288AC
+ cmp r0, #0
+ beq _021D9186
+ add r0, r5, #0
+ add r1, r4, #2
+ bl MOD54_021D90E0
+_021D9186:
+ add r4, r4, #1
+ cmp r4, #4
+ blt _021D916C
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD54_021D909C
+_021D9194:
+ ldr r0, [sp, #8]
+ add r0, r0, #4
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blt _021D9144
+_021D91A6:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D912C
+
+ thumb_func_start MOD54_021D91AC
+MOD54_021D91AC: ; 0x021D91AC
+ mov r0, #0x12
+ lsl r0, r0, #4
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD54_021D91AC
+
+ thumb_func_start MOD54_021D91B4
+MOD54_021D91B4: ; 0x021D91B4
+ mov r0, #0x12
+ lsl r0, r0, #4
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD54_021D91B4
+
+ thumb_func_start MOD54_021D91BC
+MOD54_021D91BC: ; 0x021D91BC
+ mov r0, #0x12
+ lsl r0, r0, #4
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD54_021D91BC
+
+ thumb_func_start MOD54_021D91C4
+MOD54_021D91C4: ; 0x021D91C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r3, [sp, #4]
+ add r5, r1, #0
+ str r2, [sp]
+ bl FUN_020238F4
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ mov r7, #0
+ cmp r0, #0
+ ble _021D9234
+_021D91DC:
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #0x48
+ bl MIi_CpuClearFast
+ add r0, r4, #0
+ bl FUN_020239BC
+ str r0, [r5]
+ add r0, r4, #0
+ bl FUN_020239CC
+ strb r0, [r5, #4]
+ mov r0, #0xa
+ strb r0, [r5, #5]
+ mov r0, #2
+ strb r0, [r5, #6]
+ add r0, r4, #0
+ bl FUN_0202398C
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #8
+ mov r2, #8
+ bl StringCopyN
+ add r3, r5, #0
+ ldr r6, [sp]
+ add r3, #0x18
+ mov r2, #6
+_021D9218:
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D9218
+ mov r0, #0
+ strb r0, [r5, #0x19]
+ ldr r0, [sp]
+ add r7, r7, #1
+ add r0, #0x30
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r5, #0x48
+ cmp r7, r0
+ blt _021D91DC
+_021D9234:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD54_021D91C4
+
+ thumb_func_start MOD54_021D9238
+MOD54_021D9238: ; 0x021D9238
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r4, #0
+ bl FUN_020169D8
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_02022504
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD54_021D91AC
+ cmp r4, r0
+ beq _021D925E
+ bl ErrorHandling
+_021D925E:
+ mov r2, #0x63
+ lsl r2, r2, #2
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, r2
+ mov r3, #4
+ bl MOD54_021D91C4
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D9238
+
+ thumb_func_start MOD54_021D9274
+MOD54_021D9274: ; 0x021D9274
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r4, #0
+ bl FUN_020169D8
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_02022504
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD54_021D91B4
+ cmp r4, r0
+ beq _021D929A
+ bl ErrorHandling
+_021D929A:
+ add r6, #0xc
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #4
+ bl MOD54_021D91C4
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD54_021D9274
+
+ thumb_func_start MOD54_021D92AC
+MOD54_021D92AC: ; 0x021D92AC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r2, #0
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r4, #0
+ bl FUN_020169D8
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_02022504
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD54_021D91BC
+ cmp r4, r0
+ beq _021D92D2
+ bl ErrorHandling
+_021D92D2:
+ add r6, #0xcc
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r6, #0
+ mov r3, #4
+ bl MOD54_021D91C4
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD54_021D92AC
+
+ thumb_func_start MOD54_021D92E4
+MOD54_021D92E4: ; 0x021D92E4
+ push {r4, r5}
+ ldrb r3, [r2, #0x18]
+ cmp r3, #0
+ bne _021D92F2
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_021D92F2:
+ mov r4, #0
+ cmp r1, #0
+ ble _021D931E
+ add r5, r0, #0
+_021D92FA:
+ ldrb r3, [r5, #0x18]
+ cmp r3, #0
+ bne _021D9316
+ mov r1, #0x48
+ mul r1, r4
+ add r4, r0, r1
+ mov r3, #9
+_021D9308:
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _021D9308
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_021D9316:
+ add r4, r4, #1
+ add r5, #0x48
+ cmp r4, r1
+ blt _021D92FA
+_021D931E:
+ mov r5, #0
+ cmp r1, #0
+ ble _021D934A
+ add r4, r0, #0
+_021D9326:
+ ldrb r3, [r4, #0x19]
+ cmp r3, #3
+ blo _021D9342
+ mov r1, #0x48
+ mul r1, r5
+ add r4, r0, r1
+ mov r3, #9
+_021D9334:
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ sub r3, r3, #1
+ bne _021D9334
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_021D9342:
+ add r5, r5, #1
+ add r4, #0x48
+ cmp r5, r1
+ blt _021D9326
+_021D934A:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD54_021D92E4
+
+ thumb_func_start MOD54_021D9350
+MOD54_021D9350: ; 0x021D9350
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r7, r2, #0
+ add r0, sp, #0x18
+ mov r1, #0
+ mov r2, #0x10
+ str r3, [sp, #8]
+ ldr r5, [sp, #0x40]
+ bl MI_CpuFill8
+ mov r4, #0
+ add r6, r4, #0
+ cmp r7, #0
+ ble _021D93D8
+ str r5, [sp, #0x10]
+_021D9372:
+ ldr r0, [sp, #0x10]
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D93CC
+ mov r0, #0
+ str r0, [sp, #0x14]
+ str r0, [sp, #0xc]
+ b _021D93C6
+_021D9382:
+ add r0, r4, #1
+ add r1, r7, #0
+ bl _s32_div_f
+ add r4, r1, #0
+_021D938C:
+ lsl r2, r4, #2
+ ldr r0, [r5, r2]
+ cmp r0, #0
+ beq _021D9382
+ cmp r4, r6
+ beq _021D9382
+ add r0, sp, #0x18
+ ldrb r0, [r0, r4]
+ cmp r0, #4
+ beq _021D9382
+ add r1, r0, #1
+ add r0, sp, #0x18
+ strb r1, [r0, r4]
+ ldr r0, [sp, #8]
+ cmp r4, r0
+ beq _021D93BA
+ ldr r3, [r5, r2]
+ ldr r2, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ add r2, r3, r2
+ bl MOD54_021D92E4
+_021D93BA:
+ ldr r0, [sp, #0xc]
+ add r0, #0x48
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+_021D93C6:
+ ldr r0, [sp, #0x14]
+ cmp r0, #4
+ blt _021D938C
+_021D93CC:
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r0, r0, #4
+ str r0, [sp, #0x10]
+ cmp r6, r7
+ blt _021D9372
+_021D93D8:
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD54_021D9350
+
+ thumb_func_start MOD54_021D93DC
+MOD54_021D93DC: ; 0x021D93DC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ mov r1, #0x93
+ add r4, r2, #0
+ lsl r1, r1, #2
+ str r3, [sp]
+ add r0, r0, r1
+ mov r1, #0x10
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD54_021D9350
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D93DC
+
+ thumb_func_start MOD54_021D93F8
+MOD54_021D93F8: ; 0x021D93F8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, _021D9410 ; =0x000006CC
+ add r4, r2, #0
+ str r3, [sp]
+ add r0, r0, r1
+ mov r1, #8
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD54_021D9350
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D9410: .word 0x000006CC
+ thumb_func_end MOD54_021D93F8
+
+ thumb_func_start MOD54_021D9414
+MOD54_021D9414: ; 0x021D9414
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ ldr r1, _021D942C ; =0x0000090C
+ add r4, r2, #0
+ str r3, [sp]
+ add r0, r0, r1
+ mov r1, #8
+ add r2, r5, #0
+ add r3, r4, #0
+ bl MOD54_021D9350
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D942C: .word 0x0000090C
+ thumb_func_end MOD54_021D9414
+
+ thumb_func_start MOD54_021D9430
+MOD54_021D9430: ; 0x021D9430
+ push {r3, lr}
+ bl FUN_0202881C
+ bl MOD54_021D9094
+ pop {r3, pc}
+ thumb_func_end MOD54_021D9430
+
+ thumb_func_start MOD54_021D943C
+MOD54_021D943C: ; 0x021D943C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r2, #0
+ bl FUN_0202881C
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_020169D8
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD54_021D9098
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MIi_CpuCopyFast
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD54_021D943C
+
+ thumb_func_start MOD54_021D9464
+MOD54_021D9464: ; 0x021D9464
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202881C
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ ldr r3, [r4, #0x10]
+ bl MOD54_021D912C
+ pop {r4, pc}
+ thumb_func_end MOD54_021D9464
+
+ thumb_func_start MOD54_021D947C
+MOD54_021D947C: ; 0x021D947C
+ push {r3, lr}
+ bl FUN_02027E24
+ bl FUN_02026FE0
+ pop {r3, pc}
+ thumb_func_end MOD54_021D947C
+
+ thumb_func_start MOD54_021D9488
+MOD54_021D9488: ; 0x021D9488
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r2, #0
+ bl FUN_02027E24
+ add r6, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_020169D8
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_02027008
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MIi_CpuCopyFast
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D9488
+
+ thumb_func_start MOD54_021D94B4
+MOD54_021D94B4: ; 0x021D94B4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_02027E24
+ add r2, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #0x18
+ ldr r3, [r4, #0x10]
+ lsr r0, r0, #0x18
+ bl FUN_02027D7C
+ pop {r4, pc}
+ thumb_func_end MOD54_021D94B4
+
+ thumb_func_start MOD54_021D94D0
+MOD54_021D94D0: ; 0x021D94D0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_02022504
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r4, #0x10]
+ bl MOD54_021D93DC
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D94D0
+
+ thumb_func_start MOD54_021D94E8
+MOD54_021D94E8: ; 0x021D94E8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_02022504
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r4, #0x10]
+ bl MOD54_021D93F8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D94E8
+
+ thumb_func_start MOD54_021D9500
+MOD54_021D9500: ; 0x021D9500
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_02022504
+ ldr r1, [r4, #8]
+ ldr r2, [r4, #0xc]
+ ldr r3, [r4, #0x10]
+ bl MOD54_021D9414
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D9500
+
+ thumb_func_start MOD54_021D9518
+MOD54_021D9518: ; 0x021D9518
+ ldr r3, _021D951C ; =FUN_0202B9EC
+ bx r3
+ .align 2, 0
+_021D951C: .word FUN_0202B9EC
+ thumb_func_end MOD54_021D9518
+
+ thumb_func_start MOD54_021D9520
+MOD54_021D9520: ; 0x021D9520
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202B8E4
+ ldr r0, [r4]
+ str r0, [sp]
+ ldr r2, [r4, #8]
+ ldr r0, [r4, #4]
+ lsl r2, r2, #0x18
+ ldr r1, [r4, #0xc]
+ ldr r3, [r4, #0x10]
+ lsr r2, r2, #0x18
+ bl FUN_0202BCF4
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD54_021D9520
+
+ thumb_func_start MOD54_021D9544
+MOD54_021D9544: ; 0x021D9544
+ push {r4, r5, r6, lr}
+ add r5, r2, #0
+ add r6, r0, #0
+ add r0, r1, #0
+ add r1, r5, #0
+ bl FUN_020169D8
+ add r4, r0, #0
+ mov r1, #0
+ add r2, r5, #0
+ bl MI_CpuFill8
+ add r0, r6, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_02066840
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD54_021D9544
+
+ thumb_func_start MOD54_021D956C
+MOD54_021D956C: ; 0x021D956C
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD54_021D956C
+
+ thumb_func_start MOD54_021D9570
+MOD54_021D9570: ; 0x021D9570
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ ldr r6, _021D95C4 ; =0x00000BB8
+ ldr r5, _021D95C8 ; =0x021D9780
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+_021D9580:
+ ldr r0, [sp]
+ ldr r1, [r5]
+ blx r1
+ add r4, r0, #0
+ ldr r0, [sp]
+ ldr r3, [r5, #4]
+ mov r1, #0x33
+ add r2, r4, #0
+ blx r3
+ add r7, r0, #0
+ cmp r6, r4
+ bhi _021D959C
+ bl ErrorHandling
+_021D959C:
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ add r2, r4, #0
+ bl MIi_CpuCopyFast
+ add r0, r7, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #4]
+ sub r6, r6, r4
+ add r0, r0, r4
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ add r5, #0xc
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #7
+ blt _021D9580
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D95C4: .word 0x00000BB8
+_021D95C8: .word 0x021D9780
+ thumb_func_end MOD54_021D9570
+
+ thumb_func_start MOD54_021D95CC
+MOD54_021D95CC: ; 0x021D95CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r0, [sp]
+ ldr r0, _021D9670 ; =0x00000BB8
+ str r1, [sp, #4]
+ str r0, [sp, #0x10]
+ mov r0, #0x33
+ str r0, [sp, #0x2c]
+ ldr r0, [sp]
+ mov r7, #0
+ str r0, [sp, #0x30]
+ bl FUN_02031190
+ str r0, [sp, #0x38]
+ mov r0, #5
+ str r0, [sp, #0x34]
+ add r0, sp, #0x18
+ str r0, [sp, #0x3c]
+ add r0, r7, #0
+ str r0, [sp, #0xc]
+ ldr r0, _021D9674 ; =0x021D9780
+ str r0, [sp, #8]
+_021D95F8:
+ ldr r1, [sp, #8]
+ ldr r0, [sp]
+ ldr r1, [r1]
+ blx r1
+ ldr r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ cmp r1, r0
+ bhi _021D960C
+ bl ErrorHandling
+_021D960C:
+ mov r6, #0
+ ldr r4, [sp, #4]
+ add r5, r6, #0
+_021D9612:
+ add r0, r6, #0
+ bl FUN_0202DFA4
+ cmp r0, #0
+ beq _021D9624
+ ldr r0, [sp, #0x3c]
+ add r1, r4, r7
+ str r1, [r0, r5]
+ b _021D962A
+_021D9624:
+ ldr r1, [sp, #0x3c]
+ mov r0, #0
+ str r0, [r1, r5]
+_021D962A:
+ mov r0, #0x2f
+ lsl r0, r0, #6
+ add r6, r6, #1
+ add r4, r4, r0
+ add r5, r5, #4
+ cmp r6, #5
+ blt _021D9612
+ ldr r1, [sp, #8]
+ add r0, sp, #0x2c
+ ldr r1, [r1, #8]
+ blx r1
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x10]
+ add r7, r7, r0
+ sub r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ add r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ cmp r0, #7
+ blo _021D95F8
+ ldr r0, [sp]
+ bl FUN_02022504
+ add r4, r0, #0
+ bl FUN_0202B390
+ add r0, r4, #0
+ bl FUN_0202B3F8
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9670: .word 0x00000BB8
+_021D9674: .word 0x021D9780
+ thumb_func_end MOD54_021D95CC
+
+ .section .rodata
+ ; 0x021D9678
+ .incbin "baserom.nds", 0x29E598, 0x15C
+
+ .section .data
+ ; 0x021D97E0
+ .incbin "baserom.nds", 0x29E700, 0x80
diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s
new file mode 100644
index 00000000..a854022c
--- /dev/null
+++ b/arm9/modules/55/asm/module_55.s
@@ -0,0 +1,5594 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD55_021D74E0
+MOD55_021D74E0: ; 0x021D74E0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD55_021D7BF0
+ add r0, r4, #0
+ bl MOD55_021D7C20
+ add r0, r4, #0
+ bl MOD55_021D7DA0
+ mov r0, #0x34
+ bl FUN_02053708
+ mov r1, #0xeb
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D74E0
+
+ thumb_func_start MOD55_021D7504
+MOD55_021D7504: ; 0x021D7504
+ 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, _021D7560 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7564 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r0, #0x34
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ bl MOD55_021D780C
+ ldr r0, [r4, #4]
+ bl MOD55_021D781C
+ add r0, r4, #0
+ bl MOD55_021D7AE0
+ ldr r0, _021D7568 ; =MOD55_021D77D0
+ add r1, r4, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD55_021D74E0
+ pop {r4, pc}
+ .align 2, 0
+_021D7560: .word 0xFFFFE0FF
+_021D7564: .word 0x04001000
+_021D7568: .word MOD55_021D77D0
+ thumb_func_end MOD55_021D7504
+
+ thumb_func_start MOD55_021D756C
+MOD55_021D756C: ; 0x021D756C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D7580
+ cmp r1, #1
+ beq _021D75FC
+ b _021D760A
+_021D7580:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r2, #1
+ mov r0, #3
+ mov r1, #0x34
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ ldr r1, _021D7610 ; =0x0000041C
+ add r0, r6, #0
+ mov r2, #0x34
+ bl FUN_02006268
+ ldr r2, _021D7610 ; =0x0000041C
+ mov r1, #0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r0, r6, #0
+ bl FUN_0200628C
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD55_021D7994
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD55_021D7504
+ add r0, r4, #0
+ bl MOD55_021D7EE4
+ add r0, r4, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D760A
+_021D75FC:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D760A:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D7610: .word 0x0000041C
+ thumb_func_end MOD55_021D756C
+
+ thumb_func_start MOD55_021D7614
+MOD55_021D7614: ; 0x021D7614
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D7628
+ cmp r1, #1
+ beq _021D76A4
+ b _021D76B2
+_021D7628:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r2, #1
+ mov r0, #3
+ mov r1, #0x34
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ ldr r1, _021D76B8 ; =0x0000041C
+ add r0, r6, #0
+ mov r2, #0x34
+ bl FUN_02006268
+ ldr r2, _021D76B8 ; =0x0000041C
+ mov r1, #0
+ add r4, r0, #0
+ bl MI_CpuFill8
+ add r0, r6, #0
+ bl FUN_0200628C
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD55_021D7994
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD55_021D7504
+ add r0, r4, #0
+ bl MOD55_021D7EE4
+ add r0, r4, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D76B2
+_021D76A4:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D76B2:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D76B8: .word 0x0000041C
+ thumb_func_end MOD55_021D7614
+
+ thumb_func_start MOD55_021D76BC
+MOD55_021D76BC: ; 0x021D76BC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021D76D6
+ cmp r1, #1
+ beq _021D76E4
+ cmp r1, #2
+ beq _021D76FA
+ b _021D770C
+_021D76D6:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D770C
+ mov r0, #1
+ str r0, [r5]
+ b _021D770C
+_021D76E4:
+ mov r2, #0x3b
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ lsl r3, r2, #2
+ ldr r2, _021D771C ; =0x021DA4A0
+ ldr r2, [r2, r3]
+ cmp r2, #0
+ beq _021D770C
+ blx r2
+ str r0, [r5]
+ b _021D770C
+_021D76FA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D770C
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D770C:
+ add r4, #0xec
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D7718
+ bl FUN_0201FDEC
+_021D7718:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D771C: .word 0x021DA4A0
+ thumb_func_end MOD55_021D76BC
+
+ thumb_func_start MOD55_021D7720
+MOD55_021D7720: ; 0x021D7720
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x8e
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x86
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_021D7754:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D7754
+ add r0, r6, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ bl FUN_0201FD58
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0xec
+ str r1, [r0]
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ mov r0, #0xeb
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D7720
+
+ thumb_func_start MOD55_021D778C
+MOD55_021D778C: ; 0x021D778C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD55_021D7720
+ add r0, r4, #0
+ bl MOD55_021D8140
+ ldr r0, [r4, #4]
+ bl MOD55_021D7AA4
+ pop {r4, pc}
+ thumb_func_end MOD55_021D778C
+
+ thumb_func_start MOD55_021D77AC
+MOD55_021D77AC: ; 0x021D77AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD55_021D778C
+ add r0, r4, #0
+ bl MOD55_021D7A38
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x34
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD55_021D77AC
+
+ thumb_func_start MOD55_021D77D0
+MOD55_021D77D0: ; 0x021D77D0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D77E6
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_020081C4
+_021D77E6:
+ ldr r0, [r4, #4]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _021D7804 ; =0x027E0000
+ ldr r1, _021D7808 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_021D7804: .word 0x027E0000
+_021D7808: .word 0x00003FF8
+ thumb_func_end MOD55_021D77D0
+
+ thumb_func_start MOD55_021D780C
+MOD55_021D780C: ; 0x021D780C
+ ldr r3, _021D7814 ; =FUN_0201E66C
+ ldr r0, _021D7818 ; =0x021DA458
+ bx r3
+ nop
+_021D7814: .word FUN_0201E66C
+_021D7818: .word 0x021DA458
+ thumb_func_end MOD55_021D780C
+
+ thumb_func_start MOD55_021D781C
+MOD55_021D781C: ; 0x021D781C
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _021D7974 ; =0x021DA2C8
+ 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, _021D7978 ; =0x021DA34C
+ 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
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _021D797C ; =0x021DA368
+ 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
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D7980 ; =0x021DA384
+ 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
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021D7984 ; =0x021DA3A0
+ 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, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r5, _021D7988 ; =0x021DA3BC
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, _021D798C ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _021D7990 ; =0x04001050
+ strh r1, [r0]
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D7974: .word 0x021DA2C8
+_021D7978: .word 0x021DA34C
+_021D797C: .word 0x021DA368
+_021D7980: .word 0x021DA384
+_021D7984: .word 0x021DA3A0
+_021D7988: .word 0x021DA3BC
+_021D798C: .word 0x04000050
+_021D7990: .word 0x04001050
+ thumb_func_end MOD55_021D781C
+
+ thumb_func_start MOD55_021D7994
+MOD55_021D7994: ; 0x021D7994
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x34
+ bl FUN_0200AA80
+ str r0, [r6, #0xc]
+ ldr r2, _021D7A34 ; =0x00000251
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x34
+ bl FUN_0200A86C
+ str r0, [r6, #0x10]
+ mov r4, #0
+ add r5, r6, #0
+ mov r7, #0x10
+_021D79B4:
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_020219F4
+ str r0, [r5, #0x38]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _021D79B4
+ mov r0, #0x10
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r0, #0x1a
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xd8
+ str r0, [r1]
+ mov r0, #0xb4
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r5, #0
+ add r4, r6, #0
+ mov r7, #0xb4
+_021D79F6:
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r4, #0
+ add r1, #0xc4
+ add r5, r5, #1
+ add r4, r4, #4
+ str r0, [r1]
+ cmp r5, #4
+ blt _021D79F6
+ mov r0, #0xb4
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xb8
+ str r0, [r1]
+ mov r0, #0x28
+ mov r1, #0x34
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r1, #0xc0
+ str r0, [r1]
+ mov r0, #0x3b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7A34: .word 0x00000251
+ thumb_func_end MOD55_021D7994
+
+ thumb_func_start MOD55_021D7A38
+MOD55_021D7A38: ; 0x021D7A38
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x10]
+ bl FUN_0200A8B8
+ ldr r0, [r6, #0xc]
+ bl FUN_0200AB18
+ mov r4, #0
+ add r5, r6, #0
+_021D7A4C:
+ ldr r0, [r5, #0x38]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _021D7A4C
+ add r0, r6, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r6, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r6, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FUN_02021A20
+ mov r5, #0
+ add r4, r6, #0
+_021D7A7C:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _021D7A7C
+ add r0, r6, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r6, #0xd8
+ ldr r0, [r6]
+ bl FUN_02021A20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D7A38
+
+ thumb_func_start MOD55_021D7AA4
+MOD55_021D7AA4: ; 0x021D7AA4
+ 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, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D7AA4
+
+ thumb_func_start MOD55_021D7AE0
+MOD55_021D7AE0: ; 0x021D7AE0
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ mov r0, #0x59
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ mov r0, #0x59
+ mov r1, #3
+ mov r2, #4
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x34
+ bl FUN_02002EEC
+ mov r1, #6
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x34
+ bl FUN_02002EEC
+ ldr r1, _021D7BE4 ; =0x000052D8
+ add r0, sp, #0x10
+ strh r1, [r0]
+ mov r1, #0x6f
+ add r0, sp, #0x10
+ lsl r1, r1, #2
+ mov r2, #2
+ bl GX_LoadBGPltt
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #2
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #8
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #4
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #0xa
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ mov r0, #0x59
+ mov r1, #0xb
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_020068C8
+ ldr r0, [r5, #8]
+ bl LoadPlayerDataAddress
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ ldr r2, _021D7BE8 ; =0x000001E2
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x34
+ str r0, [sp, #4]
+ ldr r2, _021D7BEC ; =0x000001D9
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xb
+ bl FUN_0200CB00
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021D7BE4: .word 0x000052D8
+_021D7BE8: .word 0x000001E2
+_021D7BEC: .word 0x000001D9
+ thumb_func_end MOD55_021D7AE0
+
+ thumb_func_start MOD55_021D7BF0
+MOD55_021D7BF0: ; 0x021D7BF0
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021D7C1C ; =0x021DA2E8
+ 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, #0x34
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D7C1C: .word 0x021DA2E8
+ thumb_func_end MOD55_021D7BF0
+
+ thumb_func_start MOD55_021D7C20
+MOD55_021D7C20: ; 0x021D7C20
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ 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, #0x34
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r5, #0
+ mov r0, #0x1e
+ add r1, #0xf0
+ mov r2, #0x34
+ bl FUN_02008C9C
+ add r1, r5, #0
+ add r1, #0xec
+ str r0, [r1]
+ add r0, r5, #0
+ mov r2, #1
+ add r0, #0xf0
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0x86
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #2
+_021D7C6A:
+ mov r0, #2
+ add r1, r6, #0
+ mov r2, #0x34
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _021D7C6A
+ mov r3, #1
+ str r3, [sp]
+ str r3, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0x86
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x56
+ mov r2, #9
+ bl FUN_02008F34
+ mov r1, #0x8e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ mov r2, #9
+ bl FUN_02008F34
+ mov r1, #0x8a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #0x34
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x56
+ mov r2, #7
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ mov r2, #3
+ bl FUN_02008FEC
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x56
+ mov r2, #0xa
+ bl FUN_020090AC
+ mov r1, #9
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ mov r2, #1
+ bl FUN_020090AC
+ mov r1, #0x23
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x56
+ mov r2, #0xb
+ bl FUN_020090AC
+ mov r1, #0x91
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x34
+ sub r1, #0x20
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x59
+ add r3, r2, #0
+ bl FUN_020090AC
+ mov r1, #0x8d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D7C20
+
+ thumb_func_start MOD55_021D7DA0
+MOD55_021D7DA0: ; 0x021D7DA0
+ 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]
+ mov r2, #0x86
+ str r1, [sp, #0x10]
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r5, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r1, #1
+ mov r3, #0x86
+ 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, #2
+ ldr r2, [r5, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ add r3, #0x54
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r5, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ mov r4, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0x9b
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ mov r7, #0x62
+ str r4, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r4, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x50]
+ str r0, [sp, #0x54]
+ mov r0, #0x34
+ str r0, [sp, #0x58]
+ mov r0, #0x92
+ lsl r0, r0, #2
+ lsl r7, r7, #0xc
+ add r6, r5, r0
+_021D7E56:
+ asr r0, r4, #1
+ lsr r0, r0, #0x1e
+ add r0, r4, r0
+ asr r1, r0, #2
+ mov r0, #0x78
+ mul r0, r1
+ add r0, #0x16
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #5
+ add r0, #0x2b
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ cmp r4, #8
+ bne _021D7E8C
+ mov r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ str r7, [sp, #0x38]
+ str r6, [sp, #0x30]
+ b _021D7E9A
+_021D7E8C:
+ cmp r4, #9
+ bne _021D7E9A
+ mov r0, #0xf9
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ str r7, [sp, #0x38]
+ str r6, [sp, #0x30]
+_021D7E9A:
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x29
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r4, #0
+ sub r0, #8
+ cmp r0, #1
+ bhi _021D7EB8
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+_021D7EB8:
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _021D7E56
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D7DA0
+
+ thumb_func_start MOD55_021D7EE4
+MOD55_021D7EE4: ; 0x021D7EE4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D7F02
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D7F02:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xd
+ str r0, [sp, #4]
+ mov r2, #3
+ str r2, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021D8038 ; =0x00000171
+ mov r1, #0xe6
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r5, #0
+ add r2, #0xc0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200A8E0
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D803C ; =0x000F0E00
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r6, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r4, r5, r0
+ str r6, [sp, #0x18]
+ str r6, [sp, #0x14]
+ add r7, r5, #0
+_021D7F76:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D7F86
+ add r0, r4, #0
+ bl FUN_02019178
+_021D7F86:
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r0, r0, #5
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D8038 ; =0x00000171
+ add r1, #0x3c
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ mov r2, #3
+ mov r3, #7
+ bl FUN_02019064
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ cmp r6, #2
+ bne _021D7FF4
+ ldr r0, [r5, #8]
+ bl FUN_020238F4
+ add r2, r0, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r6, #1
+ bl FUN_0200A8E0
+ add r1, r7, #0
+ add r2, r5, #0
+ add r1, #0xc4
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ b _021D8002
+_021D7FF4:
+ add r2, r7, #0
+ add r2, #0xc4
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r6, #1
+ bl FUN_0200A8E0
+_021D8002:
+ ldr r0, _021D8040 ; =0x00010200
+ add r1, r7, #0
+ str r0, [sp]
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r4, #0
+ mov r2, #0xff
+ mov r3, #0x90
+ bl MOD55_021D80F0
+ add r0, r4, #0
+ bl FUN_02019220
+ ldr r0, [sp, #0x18]
+ add r6, r6, #1
+ add r0, #0x3c
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r4, #0x10
+ add r0, r0, #5
+ add r7, r7, #4
+ str r0, [sp, #0x14]
+ cmp r6, #4
+ blt _021D7F76
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8038: .word 0x00000171
+_021D803C: .word 0x000F0E00
+_021D8040: .word 0x00010200
+ thumb_func_end MOD55_021D7EE4
+
+ thumb_func_start MOD55_021D8044
+MOD55_021D8044: ; 0x021D8044
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r1, _021D80E8 ; =0x021DA298
+ str r0, [sp]
+ ldrb r2, [r1, #8]
+ add r0, sp, #0x10
+ strb r2, [r0]
+ ldrb r2, [r1, #9]
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #0xa]
+ ldrb r1, [r1, #0xb]
+ strb r2, [r0, #2]
+ strb r1, [r0, #3]
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_0201886C
+ mov ip, r0
+ mov r1, #0xf2
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #8]
+_021D8078:
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _021D8086
+ mov r3, #1
+ lsl r3, r3, #0xc
+ b _021D8088
+_021D8086:
+ mov r3, #0
+_021D8088:
+ add r1, sp, #0x10
+ ldrb r7, [r1, #1]
+ ldrb r0, [r1, #3]
+ add r0, r7, r0
+ str r0, [sp, #4]
+ cmp r7, r0
+ bge _021D80C6
+ ldrb r2, [r1]
+ ldrb r1, [r1, #2]
+ lsl r0, r7, #5
+ ldr r4, _021D80EC ; =0x00000FFF
+ add r6, r2, r0
+_021D80A0:
+ mov r0, #0
+ cmp r1, #0
+ ble _021D80BC
+ lsl r5, r6, #1
+ mov r2, ip
+ add r2, r2, r5
+_021D80AC:
+ ldrh r5, [r2]
+ add r0, r0, #1
+ and r5, r4
+ add r5, r3, r5
+ strh r5, [r2]
+ add r2, r2, #2
+ cmp r0, r1
+ blt _021D80AC
+_021D80BC:
+ ldr r0, [sp, #4]
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, r0
+ blt _021D80A0
+_021D80C6:
+ add r0, sp, #0x10
+ ldrb r1, [r0, #1]
+ add r1, r1, #5
+ strb r1, [r0, #1]
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _021D8078
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_02017CD0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D80E8: .word 0x021DA298
+_021D80EC: .word 0x00000FFF
+ thumb_func_end MOD55_021D8044
+
+ thumb_func_start MOD55_021D80F0
+MOD55_021D80F0: ; 0x021D80F0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r2, #0
+ add r7, r3, #0
+ add r2, r0, #0
+ add r6, r1, #0
+ bl FUN_02002E14
+ sub r1, r7, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ ldr r1, [sp, #0x28]
+ asr r3, r0, #1
+ cmp r1, #0
+ bne _021D8128
+ mov r0, #1
+ str r0, [sp]
+ str r4, [sp, #4]
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r6, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_021D8128:
+ mov r0, #1
+ str r0, [sp]
+ str r4, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D80F0
+
+ thumb_func_start MOD55_021D8140
+MOD55_021D8140: ; 0x021D8140
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r0, #0xae
+ lsl r0, r0, #2
+ mov r4, #0
+ add r5, r6, r0
+_021D814C:
+ add r0, r5, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D815C
+ add r0, r5, #0
+ bl FUN_02019178
+_021D815C:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _021D814C
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ mov r5, #0
+ add r4, r6, r0
+_021D816C:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D817C
+ add r0, r4, #0
+ bl FUN_02019178
+_021D817C:
+ add r5, r5, #1
+ add r4, #0x10
+ cmp r5, #4
+ blt _021D816C
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D819C
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+_021D819C:
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D81B4
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+_021D81B4:
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D81CC
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+_021D81CC:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D8140
+
+ thumb_func_start MOD55_021D81D0
+MOD55_021D81D0: ; 0x021D81D0
+ mov r2, #0x3b
+ mov r3, #1
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD55_021D81D0
+
+ thumb_func_start MOD55_021D81DC
+MOD55_021D81DC: ; 0x021D81DC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D81EE
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+_021D81EE:
+ ldr r2, _021D82B8 ; =0x021C48B8
+ mov r1, #1
+ ldr r0, [r2, #0x48]
+ tst r1, r0
+ beq _021D824C
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ cmp r1, #3
+ bhi _021D82B2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8214: ; jump table
+ .short _021D821C - _021D8214 - 2 ; case 0
+ .short _021D8234 - _021D8214 - 2 ; case 1
+ .short _021D823C - _021D8214 - 2 ; case 2
+ .short _021D8244 - _021D8214 - 2 ; case 3
+_021D821C:
+ mov r2, #0
+ strb r2, [r4, r0]
+ add r1, r0, #3
+ strb r2, [r4, r1]
+ add r1, r0, #1
+ strb r2, [r4, r1]
+ add r1, r0, #2
+ strb r2, [r4, r1]
+ mov r1, #2
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D8234:
+ mov r1, #7
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D823C:
+ mov r1, #0x12
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D8244:
+ mov r1, #0x11
+ sub r0, #0x18
+ str r1, [r4, r0]
+ b _021D82B2
+_021D824C:
+ mov r1, #2
+ tst r0, r1
+ beq _021D8262
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x11
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _021D82B2
+_021D8262:
+ ldr r1, [r2, #0x4c]
+ mov r0, #0x40
+ tst r0, r1
+ beq _021D828C
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021D82B2
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD55_021D8044
+ b _021D82B2
+_021D828C:
+ mov r0, #0x80
+ tst r0, r1
+ beq _021D82B2
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ cmp r0, #3
+ bhs _021D82B2
+ ldr r0, _021D82BC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD55_021D8044
+_021D82B2:
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D82B8: .word 0x021C48B8
+_021D82BC: .word 0x000005DC
+ thumb_func_end MOD55_021D81DC
+
+ thumb_func_start MOD55_021D82C0
+MOD55_021D82C0: ; 0x021D82C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ ldr r0, [r7, #8]
+ str r1, [sp, #0xc]
+ bl FUN_020286EC
+ mov r6, #0
+ add r4, r0, #0
+ add r5, r6, #0
+_021D82D4:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _021D82E2
+ mov r6, #1
+_021D82E2:
+ add r5, r5, #1
+ cmp r5, #0x20
+ blt _021D82D4
+ cmp r6, #0
+ beq _021D8308
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x10
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r1, #8
+ b _021D8312
+_021D8308:
+ add r0, r7, #0
+ mov r1, #0x1d
+ bl MOD55_021DA0A4
+ mov r1, #0xf
+_021D8312:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r7, r0]
+ ldr r0, [sp, #0xc]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D82C0
+
+ thumb_func_start MOD55_021D8320
+MOD55_021D8320: ; 0x021D8320
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D8366
+ mov r0, #0
+ bl MOD55_021DA27C
+ add r0, r5, #0
+ bl MOD55_021D778C
+ ldr r0, [r5, #8]
+ bl LoadPlayerDataAddress
+ mov r1, #7
+ str r0, [sp]
+ mov r0, #0x34
+ mov r2, #0
+ add r3, r1, #0
+ bl FUN_02077A84
+ str r0, [r5]
+ ldr r0, _021D836C ; =0x020FA5FC
+ ldr r1, [r5]
+ mov r2, #0x34
+ bl FUN_02006234
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #9
+ sub r1, #0x20
+ str r0, [r5, r1]
+_021D8366:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D836C: .word 0x020FA5FC
+ thumb_func_end MOD55_021D8320
+
+ thumb_func_start MOD55_021D8370
+MOD55_021D8370: ; 0x021D8370
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D83FC
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ ldr r1, [r5]
+ ldr r0, [r1, #0x14]
+ cmp r0, #0
+ bne _021D83A8
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ ldr r1, [r1, #0x18]
+ bl FUN_02021A74
+ mov r1, #0xa
+ b _021D83F0
+_021D83A8:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ bl MOD55_021D7504
+ add r0, r5, #0
+ bl MOD55_021D7EE4
+ add r0, r5, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ mov r1, #6
+_021D83F0:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [r5]
+ bl FUN_02077AC4
+_021D83FC:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D8370
+
+ thumb_func_start MOD55_021D8404
+MOD55_021D8404: ; 0x021D8404
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r1, #0
+ bl LoadPlayerDataAddress
+ str r0, [sp]
+ mov r0, #0x34
+ mov r1, #4
+ mov r2, #0
+ mov r3, #0xc
+ bl FUN_02077A84
+ str r0, [r5]
+ ldr r0, _021D843C ; =0x020FA5FC
+ ldr r1, [r5]
+ mov r2, #0x34
+ bl FUN_02006234
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #0xb
+ sub r1, #0x20
+ str r0, [r5, r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D843C: .word 0x020FA5FC
+ thumb_func_end MOD55_021D8404
+
+ thumb_func_start MOD55_021D8440
+MOD55_021D8440: ; 0x021D8440
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D84C2
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ add r0, r5, #0
+ ldr r1, [r5]
+ add r0, #0xd8
+ ldr r0, [r0]
+ ldr r1, [r1, #0x18]
+ bl FUN_02021A74
+ ldr r0, [r5]
+ bl FUN_02077AC4
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ bl MOD55_021D7504
+ add r0, r5, #0
+ bl MOD55_021D7EE4
+ add r0, r5, #0
+ bl MOD55_021D8044
+ mov r0, #1
+ bl MOD55_021DA27C
+ mov r0, #0x3b
+ mov r1, #0xc
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D84C2:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD55_021D8440
+
+ thumb_func_start MOD55_021D84C8
+MOD55_021D84C8: ; 0x021D84C8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D853C
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r1, sp, #4
+ bl FUN_02021C38
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r7, r1, #0
+ cmp r0, #0
+ beq _021D8534
+ mov r0, #0x34
+ bl FUN_02023928
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021F2C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ ldr r1, [sp]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD55_021D93F8
+ add r0, r5, #0
+ mov r1, #0x19
+ bl MOD55_021DA0A4
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0x3b
+ mov r1, #0xd
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D853C
+_021D8534:
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D853C:
+ add r0, r6, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D84C8
+
+ thumb_func_start MOD55_021D8544
+MOD55_021D8544: ; 0x021D8544
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D8578
+ mov r0, #0x34
+ str r0, [sp]
+ ldr r0, [r5, #4]
+ ldr r1, _021D857C ; =0x021DA2AC
+ ldr r2, _021D8580 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ add r1, r5, #0
+ add r1, #0xe8
+ str r0, [r1]
+ mov r0, #0x3b
+ mov r1, #0xe
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D8578:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D857C: .word 0x021DA2AC
+_021D8580: .word 0x000001D9
+ thumb_func_end MOD55_021D8544
+
+ thumb_func_start MOD55_021D8584
+MOD55_021D8584: ; 0x021D8584
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, #0xe8
+ str r1, [sp]
+ ldr r0, [r0]
+ mov r1, #0x34
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021D85A4
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D85A4:
+ cmp r0, #0
+ bne _021D866C
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ str r0, [sp, #4]
+ mov r4, #0
+_021D85B2:
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _021D8666
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r1, sp, #8
+ bl FUN_02021C38
+ add r7, r0, #0
+ ldr r0, [sp, #4]
+ add r6, r1, #0
+ bl FUN_02028228
+ bl FUN_02096D68
+ eor r1, r6
+ eor r0, r7
+ orr r0, r1
+ bne _021D85E4
+ mov r0, #0
+ str r0, [sp, #8]
+_021D85E4:
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ beq _021D8650
+ ldr r0, [r5, #8]
+ add r1, r4, #0
+ add r2, r7, #0
+ add r3, r6, #0
+ bl MOD55_021DA224
+ cmp r0, #0
+ bne _021D8616
+ add r2, r5, #0
+ add r2, #0xd4
+ ldr r0, [sp, #4]
+ ldr r2, [r2]
+ add r1, r4, #0
+ bl FUN_020283C0
+ ldr r0, [sp, #4]
+ add r1, r4, #0
+ mov r2, #8
+ mov r3, #2
+ bl FUN_020282E8
+ b _021D866C
+_021D8616:
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021D8634
+ add r0, r5, #0
+ mov r1, #0x1a
+ bl MOD55_021DA0A4
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D8634:
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _021D8666
+ add r0, r5, #0
+ mov r1, #0x1e
+ bl MOD55_021DA0A4
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D8650:
+ add r0, r5, #0
+ mov r1, #0x1a
+ bl MOD55_021DA0A4
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_021D8666:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _021D85B2
+_021D866C:
+ add r0, r5, #0
+ bl MOD55_021DA214
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D8584
+
+ thumb_func_start MOD55_021D8680
+MOD55_021D8680: ; 0x021D8680
+ mov r2, #0x3b
+ mov r3, #0x10
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD55_021D8680
+
+ thumb_func_start MOD55_021D868C
+MOD55_021D868C: ; 0x021D868C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D86CA
+ ldr r0, _021D86D0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021D86CA
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019570
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D86CA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D86D0: .word 0x021C48B8
+ thumb_func_end MOD55_021D868C
+
+ thumb_func_start MOD55_021D86D4
+MOD55_021D86D4: ; 0x021D86D4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ ldr r1, _021D88C4 ; =0x021DA298
+ str r0, [sp]
+ ldrb r2, [r1]
+ add r0, sp, #0x28
+ strb r2, [r0, #0x14]
+ ldrb r2, [r1, #1]
+ strb r2, [r0, #0x15]
+ ldrb r2, [r1, #2]
+ strb r2, [r0, #0x16]
+ ldrb r2, [r1, #3]
+ strb r2, [r0, #0x17]
+ ldrb r2, [r1, #4]
+ strb r2, [r0, #0x10]
+ ldrb r2, [r1, #5]
+ strb r2, [r0, #0x11]
+ ldrb r2, [r1, #6]
+ strb r2, [r0, #0x12]
+ ldrb r1, [r1, #7]
+ strb r1, [r0, #0x13]
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_0201886C
+ str r0, [sp, #0x24]
+ mov r1, #0xf2
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldrb r3, [r0, r1]
+ mov r0, #0x1d
+ lsr r2, r3, #0x1f
+ lsl r1, r3, #0x1d
+ sub r1, r1, r2
+ ror r1, r0
+ add r0, r2, r1
+ str r0, [sp, #0x20]
+ lsr r0, r3, #3
+ str r0, [sp, #0xc]
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ ldr r1, _021D88C4 ; =0x021DA298
+ str r0, [sp, #0x18]
+ ldrh r2, [r1, #0x1c]
+ add r0, sp, #0x28
+ strh r2, [r0, #8]
+ ldrh r2, [r1, #0x1e]
+ strh r2, [r0, #0xa]
+ ldrh r2, [r1, #0x20]
+ strh r2, [r0, #0xc]
+ ldrh r2, [r1, #0x22]
+ strh r2, [r0, #0xe]
+ ldrh r2, [r1, #0xc]
+ strh r2, [r0]
+ ldrh r2, [r1, #0xe]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0x10]
+ strh r2, [r0, #4]
+ ldrh r1, [r1, #0x12]
+ strh r1, [r0, #6]
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0xc]
+ lsl r1, r0, #3
+ ldr r0, [sp]
+ add r0, r0, r1
+ str r0, [sp, #0x14]
+_021D8760:
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ ldrb r1, [r1, #0x18]
+ mov r2, #8
+ sub r1, r1, #1
+ bl FUN_0202822C
+ ldr r1, [sp, #0x14]
+ ldrb r1, [r1, #0x18]
+ cmp r1, #0
+ beq _021D877E
+ cmp r0, #2
+ beq _021D877E
+ add r3, sp, #0x28
+ b _021D8780
+_021D877E:
+ add r3, sp, #0x30
+_021D8780:
+ add r1, sp, #0x28
+ ldrb r7, [r1, #0x11]
+ ldrb r0, [r1, #0x13]
+ add r0, r7, r0
+ str r0, [sp, #0x10]
+ cmp r7, r0
+ bge _021D87BE
+ ldrb r2, [r1, #0x10]
+ ldrb r4, [r1, #0x12]
+ lsl r0, r7, #5
+ add r2, r2, r0
+_021D8796:
+ add r0, r2, #0
+ mov r1, #0
+ cmp r4, #0
+ ble _021D87B4
+ ldr r5, [sp, #0x24]
+ lsl r6, r2, #1
+ add r6, r5, r6
+_021D87A4:
+ ldrh r5, [r3]
+ add r1, r1, #1
+ add r3, r3, #2
+ strh r5, [r6]
+ add r6, r6, #2
+ add r0, r0, #1
+ cmp r1, r4
+ blt _021D87A4
+_021D87B4:
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ add r2, #0x20
+ cmp r7, r0
+ blt _021D8796
+_021D87BE:
+ add r1, sp, #0x28
+ ldrb r0, [r1, #0x11]
+ add r0, r0, #4
+ strb r0, [r1, #0x11]
+ ldr r0, [sp, #0x1c]
+ cmp r0, #3
+ bne _021D87D4
+ mov r0, #5
+ strb r0, [r1, #0x11]
+ mov r0, #0x11
+ strb r0, [r1, #0x10]
+_021D87D4:
+ ldr r0, [sp, #0x14]
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, #8
+ blt _021D8760
+ mov r0, #0x3f
+ mov r4, #0x17
+ mov r3, #0
+ mov r7, #0x16
+ mov r2, #2
+ lsl r0, r0, #0xa
+_021D87F0:
+ ldr r5, [sp, #0xc]
+ add r1, r4, #0
+ add r1, #0x20
+ cmp r3, r5
+ bne _021D87FE
+ add r5, r2, #0
+ b _021D8800
+_021D87FE:
+ add r5, r7, #0
+_021D8800:
+ ldr r6, [sp, #0x24]
+ lsl r1, r1, #1
+ ldrh r6, [r6, r1]
+ add r3, r3, #1
+ add r4, r4, #2
+ and r6, r0
+ add r6, r5, r6
+ ldr r5, [sp, #0x24]
+ cmp r3, #4
+ strh r6, [r5, r1]
+ blt _021D87F0
+ ldr r1, _021D88C8 ; =0x000003CB
+ ldr r0, [sp]
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ beq _021D8824
+ mov r0, #8
+ str r0, [sp, #0x20]
+_021D8824:
+ mov r0, #0
+ str r0, [sp, #8]
+_021D8828:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #8]
+ cmp r1, r0
+ bne _021D8836
+ mov r4, #1
+ lsl r4, r4, #0xc
+ b _021D8838
+_021D8836:
+ mov r4, #0
+_021D8838:
+ add r0, sp, #0x28
+ ldrb r1, [r0, #0x15]
+ ldrb r2, [r0, #0x17]
+ str r1, [sp, #4]
+ add r1, r1, r2
+ ldr r2, [sp, #4]
+ mov ip, r1
+ cmp r2, r1
+ bge _021D8884
+ ldrb r2, [r0, #0x14]
+ ldr r1, [sp, #4]
+ ldrb r0, [r0, #0x16]
+ lsl r1, r1, #5
+ ldr r6, _021D88CC ; =0x00000FFF
+ add r7, r2, r1
+_021D8856:
+ add r2, r7, #0
+ mov r3, #0
+ cmp r0, #0
+ ble _021D8876
+ ldr r1, [sp, #0x24]
+ lsl r5, r7, #1
+ add r1, r1, r5
+_021D8864:
+ ldrh r5, [r1]
+ add r3, r3, #1
+ add r2, r2, #1
+ and r5, r6
+ add r5, r4, r5
+ strh r5, [r1]
+ add r1, r1, #2
+ cmp r3, r0
+ blt _021D8864
+_021D8876:
+ ldr r1, [sp, #4]
+ add r7, #0x20
+ add r2, r1, #1
+ mov r1, ip
+ str r2, [sp, #4]
+ cmp r2, r1
+ blt _021D8856
+_021D8884:
+ add r1, sp, #0x28
+ ldrb r0, [r1, #0x15]
+ add r0, r0, #4
+ strb r0, [r1, #0x15]
+ ldr r0, [sp, #8]
+ cmp r0, #3
+ bne _021D889A
+ mov r0, #4
+ strb r0, [r1, #0x15]
+ mov r0, #0x10
+ strb r0, [r1, #0x14]
+_021D889A:
+ ldr r0, [sp, #8]
+ cmp r0, #7
+ bne _021D88AA
+ mov r1, #0x14
+ add r0, sp, #0x28
+ strb r1, [r0, #0x15]
+ mov r1, #9
+ strb r1, [r0, #0x14]
+_021D88AA:
+ ldr r0, [sp, #8]
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #9
+ blt _021D8828
+ ldr r0, [sp]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_02017CD0
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D88C4: .word 0x021DA298
+_021D88C8: .word 0x000003CB
+_021D88CC: .word 0x00000FFF
+ thumb_func_end MOD55_021D86D4
+
+ thumb_func_start MOD55_021D88D0
+MOD55_021D88D0: ; 0x021D88D0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ str r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ ldr r5, [sp]
+ add r7, r0, #0
+ lsl r1, r1, #2
+ add r0, r5, #0
+ ldrb r0, [r0, r1]
+ mov r4, #0
+ lsr r0, r0, #3
+ lsl r1, r0, #3
+ add r0, r5, #0
+ add r6, r0, r1
+_021D88F2:
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldrb r0, [r6, #0x18]
+ cmp r0, #0
+ beq _021D8968
+ sub r0, r0, #1
+ str r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ mov r2, #7
+ bl FUN_0202822C
+ str r0, [sp, #8]
+ ldr r1, [sp, #4]
+ add r0, r7, #0
+ mov r2, #8
+ bl FUN_0202822C
+ cmp r0, #2
+ beq _021D8968
+ ldr r1, [sp, #8]
+ mov r2, #0
+ bl FUN_020536D0
+ str r0, [sp, #0xc]
+ mov r0, #0xeb
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ ldr r0, [sp, #0xc]
+ mov r2, #0x20
+ lsl r0, r0, #5
+ add r0, r1, r0
+ add r1, r4, #7
+ lsl r1, r1, #5
+ bl GX_LoadOBJPltt
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #7
+ bl FUN_02020248
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0xc]
+ bl FUN_02020130
+ mov r0, #0x29
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D8968:
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, r6, #1
+ cmp r4, #8
+ blt _021D88F2
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D88D0
+
+ thumb_func_start MOD55_021D8978
+MOD55_021D8978: ; 0x021D8978
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x10]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ add r2, sp, #0x20
+ ldr r3, _021D8A24 ; =0x021DA2BC
+ str r0, [sp, #0x18]
+ ldmia r3!, {r0, r1}
+ str r2, [sp, #0x1c]
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, #0xf2
+ str r0, [r2]
+ mov r0, #0
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldrb r0, [r0, r1]
+ lsr r0, r0, #3
+ lsl r1, r0, #3
+ ldr r0, [sp, #0x10]
+ add r4, r0, r1
+ mov r1, #0xae
+ lsl r1, r1, #2
+ add r5, r0, r1
+_021D89AE:
+ ldrb r0, [r4, #0x18]
+ mov r7, #0
+ cmp r0, #0
+ beq _021D8A00
+ sub r6, r0, #1
+ ldr r0, [sp, #0x18]
+ add r1, r6, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ beq _021D8A00
+ ldr r0, [sp, #0x18]
+ add r1, r6, #0
+ mov r2, #8
+ bl FUN_0202822C
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x1c]
+ lsl r1, r7, #2
+ ldr r0, [r0, r1]
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ mov r0, #0
+ lsl r3, r6, #2
+ str r0, [sp, #0xc]
+ add r2, r2, r3
+ ldr r2, [r2, #0x38]
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #1
+ bl FUN_0201BDE0
+ mov r7, #1
+_021D8A00:
+ cmp r7, #0
+ bne _021D8A0C
+ add r0, r5, #0
+ bl FUN_0201958C
+ b _021D8A12
+_021D8A0C:
+ add r0, r5, #0
+ bl FUN_02019220
+_021D8A12:
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ add r0, r0, #1
+ add r5, #0x10
+ str r0, [sp, #0x14]
+ cmp r0, #8
+ blt _021D89AE
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8A24: .word 0x021DA2BC
+ thumb_func_end MOD55_021D8978
+
+ thumb_func_start MOD55_021D8A28
+MOD55_021D8A28: ; 0x021D8A28
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ ldr r0, [r0, #8]
+ bl FUN_020286EC
+ add r7, r0, #0
+ ldr r0, [sp]
+ mov r6, #0
+ add r0, #0x18
+ add r1, r6, #0
+ mov r2, #0x20
+ bl MI_CpuFill8
+ ldr r5, [sp]
+ add r4, r6, #0
+_021D8A46:
+ ldr r0, [r5, #0x38]
+ bl FUN_02021A4C
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ beq _021D8A72
+ add r0, r7, #0
+ add r1, r4, #0
+ bl FUN_020283A4
+ add r1, r0, #0
+ ldr r0, [r5, #0x38]
+ bl FUN_02021E28
+ ldr r0, [sp]
+ add r1, r4, #1
+ add r0, r0, r6
+ strb r1, [r0, #0x18]
+ add r6, r6, #1
+_021D8A72:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _021D8A46
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D8A28
+
+ thumb_func_start MOD55_021D8A7C
+MOD55_021D8A7C: ; 0x021D8A7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x14]
+ bl FUN_020286EC
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #2
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #8
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #5
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8AEE
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D8AEE:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xd
+ str r0, [sp, #4]
+ mov r2, #3
+ str r2, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021D8CAC ; =0x00000171
+ mov r1, #0xe6
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r5, #0
+ add r2, #0xc0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #5
+ bl FUN_0200A8E0
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8CB0 ; =0x000F0E00
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8B6C
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D8B6C:
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D8CB4 ; =0x00000135
+ mov r1, #0xde
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #0xf
+ bl FUN_02019064
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r5, #0
+ add r2, #0xd0
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #7
+ bl FUN_0200A8E0
+ mov r1, #0
+ add r2, r5, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8CB8 ; =0x00010200
+ add r2, #0xd0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xde
+ lsl r0, r0, #2
+ ldr r2, [r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r0, #0xde
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ bl MOD55_021D8A28
+ mov r0, #0xae
+ mov r6, #0
+ lsl r0, r0, #2
+ add r4, r5, r0
+ add r7, r6, #0
+_021D8BE4:
+ cmp r6, #4
+ bge _021D8BEE
+ mov r0, #5
+ str r0, [sp, #0x18]
+ b _021D8BF2
+_021D8BEE:
+ mov r0, #0x14
+ str r0, [sp, #0x18]
+_021D8BF2:
+ add r0, r4, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8C02
+ add r0, r4, #0
+ bl FUN_02019178
+_021D8C02:
+ lsr r2, r6, #0x1f
+ lsl r1, r6, #0x1e
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #2
+ add r0, r0, #5
+ 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]
+ add r1, r7, #0
+ ldr r3, [sp, #0x18]
+ ldr r0, _021D8CB4 ; =0x00000135
+ add r1, #0x18
+ sub r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ mov r2, #3
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02019220
+ add r6, r6, #1
+ add r4, #0x10
+ add r7, #0x18
+ cmp r6, #8
+ blt _021D8BE4
+ add r0, r5, #0
+ bl MOD55_021D86D4
+ add r0, r5, #0
+ bl MOD55_021D8978
+ add r0, r5, #0
+ bl MOD55_021D88D0
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020130
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020130
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8CAC: .word 0x00000171
+_021D8CB0: .word 0x000F0E00
+_021D8CB4: .word 0x00000135
+_021D8CB8: .word 0x00010200
+ thumb_func_end MOD55_021D8A7C
+
+ thumb_func_start MOD55_021D8CBC
+MOD55_021D8CBC: ; 0x021D8CBC
+ push {r3, r4, r5, lr}
+ mov r3, #0xf2
+ lsl r3, r3, #2
+ add r5, r0, #0
+ add r2, r3, #1
+ ldrb r0, [r5, r3]
+ ldrb r2, [r5, r2]
+ lsr r4, r0, #3
+ cmp r2, #4
+ bne _021D8CD8
+ mov r1, #1
+ add r0, r3, #3
+ strb r1, [r5, r0]
+ b _021D8CF4
+_021D8CD8:
+ add r2, r3, #3
+ ldrb r2, [r5, r2]
+ cmp r2, #1
+ bne _021D8CE8
+ mov r1, #0
+ add r0, r3, #3
+ strb r1, [r5, r0]
+ b _021D8CF4
+_021D8CE8:
+ add r0, r0, r1
+ strb r0, [r5, r3]
+ ldrb r1, [r5, r3]
+ mov r0, #0x1f
+ and r0, r1
+ strb r0, [r5, r3]
+_021D8CF4:
+ add r0, r5, #0
+ bl MOD55_021D86D4
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ lsr r0, r0, #3
+ cmp r4, r0
+ beq _021D8D12
+ add r0, r5, #0
+ bl MOD55_021D8978
+ add r0, r5, #0
+ bl MOD55_021D88D0
+_021D8D12:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD55_021D8CBC
+
+ thumb_func_start MOD55_021D8D14
+MOD55_021D8D14: ; 0x021D8D14
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0xf3
+ add r5, r0, #0
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ beq _021D8D52
+ ldr r1, _021D8E5C ; =0x021C48B8
+ ldr r1, [r1, #0x48]
+ cmp r1, #0
+ beq _021D8D52
+ bl MOD55_021DA214
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xf3
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ b _021D8E36
+_021D8D52:
+ ldr r2, _021D8E5C ; =0x021C48B8
+ mov r0, #1
+ ldr r3, [r2, #0x48]
+ add r1, r3, #0
+ tst r1, r0
+ beq _021D8D88
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r1, _021D8E64 ; =0x000003CB
+ ldrb r0, [r5, r1]
+ cmp r0, #0
+ beq _021D8D74
+ mov r0, #6
+ sub r1, #0x1b
+ str r0, [r5, r1]
+ b _021D8E36
+_021D8D74:
+ sub r0, r1, #3
+ ldrb r0, [r5, r0]
+ add r0, r5, r0
+ ldrb r0, [r0, #0x18]
+ cmp r0, #0
+ beq _021D8E36
+ mov r0, #4
+ sub r1, #0x1b
+ str r0, [r5, r1]
+ b _021D8E36
+_021D8D88:
+ mov r1, #2
+ tst r1, r3
+ beq _021D8D9E
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D8E36
+_021D8D9E:
+ ldr r1, [r2, #0x4c]
+ mov r2, #0x40
+ tst r2, r1
+ beq _021D8DC4
+ ldr r0, _021D8E68 ; =0x000003C9
+ ldrb r1, [r5, r0]
+ cmp r1, #0
+ beq _021D8E36
+ sub r1, r1, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ mov r1, #0
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD55_021D8CBC
+ b _021D8E36
+_021D8DC4:
+ mov r2, #0x80
+ tst r2, r1
+ beq _021D8DE6
+ ldr r0, _021D8E68 ; =0x000003C9
+ ldrb r1, [r5, r0]
+ cmp r1, #4
+ bhs _021D8E36
+ add r1, r1, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD55_021D8CBC
+ b _021D8E36
+_021D8DE6:
+ mov r2, #0x20
+ tst r2, r1
+ beq _021D8E10
+ ldr r2, _021D8E64 ; =0x000003CB
+ ldrb r1, [r5, r2]
+ cmp r1, #0
+ bne _021D8E36
+ sub r1, r2, #1
+ ldrb r1, [r5, r1]
+ sub r1, r0, r1
+ sub r0, r2, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ mov r1, #3
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD55_021D8CBC
+ b _021D8E36
+_021D8E10:
+ mov r2, #0x10
+ tst r1, r2
+ beq _021D8E36
+ ldr r2, _021D8E64 ; =0x000003CB
+ ldrb r1, [r5, r2]
+ cmp r1, #0
+ bne _021D8E36
+ sub r1, r2, #1
+ ldrb r1, [r5, r1]
+ sub r1, r0, r1
+ sub r0, r2, #1
+ strb r1, [r5, r0]
+ ldr r0, _021D8E60 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ mov r1, #4
+ bl MOD55_021D8CBC
+_021D8E36:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #3
+ beq _021D8E58
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_021D8E58:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8E5C: .word 0x021C48B8
+_021D8E60: .word 0x000005DC
+_021D8E64: .word 0x000003CB
+_021D8E68: .word 0x000003C9
+ thumb_func_end MOD55_021D8D14
+
+ thumb_func_start MOD55_021D8E6C
+MOD55_021D8E6C: ; 0x021D8E6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ str r1, [sp, #0x14]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ mov r2, #8
+ str r0, [sp, #0x18]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_0202822C
+ cmp r0, #2
+ add r2, sp, #0x1c
+ bne _021D8ECC
+ ldr r3, _021D8FCC ; =0x021DA418
+ mov r7, #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}
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_02012838
+ ldr r4, _021D8FD0 ; =0x021DA3D8
+ str r0, [r5, #0x14]
+ mov r6, #0
+_021D8EB6:
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #4
+ blt _021D8EB6
+ b _021D8F02
+_021D8ECC:
+ ldr r3, _021D8FD4 ; =0x021DA3F8
+ mov r7, #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}
+ add r0, r7, #0
+ mov r1, #0x34
+ bl FUN_02012838
+ ldr r4, _021D8FD8 ; =0x021DA438
+ str r0, [r5, #0x14]
+ mov r6, #0
+_021D8EEE:
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x10]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #4
+ blt _021D8EEE
+_021D8F02:
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D8F1A
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D8F1A:
+ mov r1, #9
+ str r1, [sp]
+ mov r1, #0xf
+ lsl r0, r7, #1
+ str r1, [sp, #4]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xd
+ str r1, [sp, #0xc]
+ mov r1, #0x3b
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r1, #0xe2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #2
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ ldr r2, _021D8FDC ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ str r0, [sp, #0x1c]
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x28]
+ add r0, sp, #0x1c
+ add r2, r1, #0
+ mov r3, #0x34
+ bl FUN_020010A8
+ mov r1, #0xea
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x20
+ add r0, r5, r1
+ bl FUN_02019220
+ mov r0, #0x34
+ bl FUN_02023928
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r4, r0, #0
+ ldr r0, [sp, #0x18]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0xc
+ bl MOD55_021DA0A4
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, _021D8FE0 ; =0x00000418
+ mov r1, #0
+ strh r1, [r5, r0]
+ mov r1, #5
+ sub r0, #0x68
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8FCC: .word 0x021DA418
+_021D8FD0: .word 0x021DA3D8
+_021D8FD4: .word 0x021DA3F8
+_021D8FD8: .word 0x021DA438
+_021D8FDC: .word 0x000001D9
+_021D8FE0: .word 0x00000418
+ thumb_func_end MOD55_021D8E6C
+
+ thumb_func_start MOD55_021D8FE4
+MOD55_021D8FE4: ; 0x021D8FE4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r6, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021D9002
+ add sp, #0xc
+ add r0, r6, #0
+ pop {r4, r5, r6, r7, pc}
+_021D9002:
+ mov r0, #0xea
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ ldr r1, _021D90D0 ; =0x00000418
+ add r4, r0, #0
+ add r0, r1, #0
+ sub r0, #0x70
+ ldrh r7, [r5, r1]
+ ldr r0, [r5, r0]
+ add r1, r5, r1
+ bl FUN_0200143C
+ ldr r0, _021D90D0 ; =0x00000418
+ ldrh r0, [r5, r0]
+ cmp r7, r0
+ beq _021D902C
+ ldr r0, _021D90D4 ; =0x000005DC
+ bl FUN_020054C8
+_021D902C:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _021D9040
+ add r0, r0, #1
+ cmp r4, r0
+ bne _021D9068
+ add sp, #0xc
+ add r0, r6, #0
+ pop {r4, r5, r6, r7, pc}
+_021D9040:
+ ldr r0, _021D90D4 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _021D9098
+_021D9068:
+ ldr r0, _021D90D4 ; =0x000005DC
+ bl FUN_020054C8
+ cmp r4, #0x14
+ bne _021D9092
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+_021D9092:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r4, [r5, r0]
+_021D9098:
+ add r0, r5, #0
+ bl MOD55_021DA214
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ mov r0, #0xea
+ lsl r0, r0, #2
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, [r5, #0x14]
+ bl FUN_02012870
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D90D0: .word 0x00000418
+_021D90D4: .word 0x000005DC
+ thumb_func_end MOD55_021D8FE4
+
+ thumb_func_start MOD55_021D90D8
+MOD55_021D90D8: ; 0x021D90D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ add r7, r1, #0
+ add r0, r5, r0
+ ldrb r0, [r0, #0x18]
+ cmp r0, #0
+ beq _021D9170
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ str r0, [sp, #8]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_0202838C
+ bl FUN_02096E24
+ str r1, [sp, #4]
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ mov r1, #0
+ eor r1, r0
+ mov r2, #0
+ add r0, r4, #0
+ eor r0, r2
+ orr r0, r1
+ beq _021D9170
+ mov r0, #0x34
+ bl FUN_02023928
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r6, r0, #0
+ ldr r0, [sp, #8]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_0202395C
+ ldr r0, _021D9180 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r2, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD55_021D93F8
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r6, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x1f
+ bl MOD55_021DA15C
+ mov r0, #0xf3
+ mov r1, #1
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ add r0, r6, #0
+ bl FUN_02016A18
+_021D9170:
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9180: .word 0x000005DC
+ thumb_func_end MOD55_021D90D8
+
+ thumb_func_start MOD55_021D9184
+MOD55_021D9184: ; 0x021D9184
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r7, r1, #0
+ bl FUN_020286EC
+ bl FUN_02028228
+ bl FUN_02096D68
+ add r6, r0, #0
+ add r4, r1, #0
+ ldr r0, [r5, #4]
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #7
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D91D6
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D91D6:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r2, #3
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ str r2, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D93D0 ; =0x00000139
+ add r1, r5, r1
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #8]
+ bl FUN_020238F4
+ add r2, r0, #0
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x16
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93D4 ; =0x000F0E00
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D9278
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D9278:
+ mov r1, #0xd
+ str r1, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0x64
+ mov r1, #0xce
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #6
+ bl FUN_02019064
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #0
+ mov r0, #0
+ eor r1, r4
+ eor r0, r6
+ orr r0, r1
+ ldr r0, [r5, #0x10]
+ bne _021D92C2
+ add r2, r5, #0
+ add r2, #0xbc
+ ldr r2, [r2]
+ mov r1, #0x18
+ bl FUN_0200A8E0
+ b _021D92CE
+_021D92C2:
+ add r2, r5, #0
+ add r2, #0xbc
+ ldr r2, [r2]
+ mov r1, #0x17
+ bl FUN_0200A8E0
+_021D92CE:
+ add r1, r5, #0
+ add r1, #0xbc
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002F08
+ mov r1, #0xa8
+ sub r0, r1, r0
+ mov r1, #0
+ lsr r3, r0, #1
+ add r2, r5, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93D8 ; =0x00010200
+ add r2, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r2, [r2]
+ add r0, r5, r0
+ bl FUN_0201BDE0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r1, #0
+ mov r0, #0
+ eor r1, r4
+ eor r0, r6
+ orr r0, r1
+ beq _021D93C2
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD55_021D93F8
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D9338
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021D9338:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x32
+ mov r1, #0xe2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #9
+ bl FUN_02019064
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x1b
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xbc
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r1, r5, #0
+ add r1, #0xbc
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ mov r3, #0x70
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ add r2, r5, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93D8 ; =0x00010200
+ add r2, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ ldr r2, [r2]
+ add r0, r5, r0
+ bl FUN_0201BDE0
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+_021D93C2:
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D93D0: .word 0x00000139
+_021D93D4: .word 0x000F0E00
+_021D93D8: .word 0x00010200
+ thumb_func_end MOD55_021D9184
+
+ thumb_func_start MOD55_021D93DC
+MOD55_021D93DC: ; 0x021D93DC
+ ldr r2, _021D93F4 ; =0x021C48B8
+ ldr r3, [r2, #0x48]
+ mov r2, #3
+ tst r2, r3
+ beq _021D93EE
+ mov r2, #0x3b
+ mov r3, #6
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+_021D93EE:
+ add r0, r1, #0
+ bx lr
+ nop
+_021D93F4: .word 0x021C48B8
+ thumb_func_end MOD55_021D93DC
+
+ thumb_func_start MOD55_021D93F8
+MOD55_021D93F8: ; 0x021D93F8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r6, r2, #0
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r2, _021D946C ; =0x05F5E100
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl _ll_udiv
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r2, _021D9470 ; =0x00002710
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl _ll_udiv
+ ldr r2, _021D9470 ; =0x00002710
+ mov r3, #0
+ bl _ull_mod
+ mov r1, #2
+ add r2, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r2, _021D9470 ; =0x00002710
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r3, #0
+ bl _ull_mod
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ mov r3, #4
+ bl FUN_0200AD38
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_021D946C: .word 0x05F5E100
+_021D9470: .word 0x00002710
+ thumb_func_end MOD55_021D93F8
+
+ thumb_func_start MOD55_021D9474
+MOD55_021D9474: ; 0x021D9474
+ push {r4, r5, lr}
+ sub sp, #0x64
+ add r4, r0, #0
+ mov r0, #1
+ mov r1, #0
+ add r2, r0, #0
+ bl GX_SetGraphicsMode
+ ldr r5, _021D9564 ; =0x021DA2D8
+ add r3, sp, #0x54
+ 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, _021D9568 ; =0x021DA2F8
+ 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, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _021D956C ; =0x021DA330
+ 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
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021D9570 ; =0x021DA314
+ 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
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x34
+ bl FUN_02017F18
+ mov r0, #1
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #2
+ add r1, r0, #0
+ bl FUN_020178BC
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #0
+ bl FUN_020178BC
+ add sp, #0x64
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D9564: .word 0x021DA2D8
+_021D9568: .word 0x021DA2F8
+_021D956C: .word 0x021DA330
+_021D9570: .word 0x021DA314
+ thumb_func_end MOD55_021D9474
+
+ thumb_func_start MOD55_021D9574
+MOD55_021D9574: ; 0x021D9574
+ push {r3, lr}
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _021D95D8 ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ add r0, #0x58
+ ldrh r1, [r0]
+ ldr r2, _021D95DC ; =0xFFFFCFFD
+ 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, _021D95E0 ; =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, _021D95E4 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _021D95E8 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ pop {r3, pc}
+ .align 2, 0
+_021D95D8: .word 0x04000008
+_021D95DC: .word 0xFFFFCFFD
+_021D95E0: .word 0x0000CFFB
+_021D95E4: .word 0x04000540
+_021D95E8: .word 0xBFFF0000
+ thumb_func_end MOD55_021D9574
+
+ thumb_func_start MOD55_021D95EC
+MOD55_021D95EC: ; 0x021D95EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ str r1, [sp, #0x14]
+ bl FUN_020286EC
+ str r0, [sp, #0x1c]
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ ldrb r0, [r4, r0]
+ add r0, r4, r0
+ ldrb r0, [r0, #0x18]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D9618
+ ldr r0, [sp, #0x14]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+_021D9618:
+ add r0, r4, #0
+ bl MOD55_021D7720
+ add r0, r4, #0
+ bl MOD55_021D8140
+ ldr r0, [r4, #4]
+ bl MOD55_021D7AA4
+ mov r0, #0x34
+ bl FUN_02016B94
+ str r0, [r4, #4]
+ bl MOD55_021D9474
+ bl MOD55_021D9574
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x59
+ mov r1, #2
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x59
+ mov r1, #8
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x59
+ mov r1, #6
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D969A
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_021D969A:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r2, #3
+ mov r1, #0xe6
+ lsl r1, r1, #2
+ str r2, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D9A50 ; =0x0000019D
+ add r1, r4, r1
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x34
+ bl FUN_02023928
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ bl FUN_020283A4
+ add r1, r0, #0
+ ldr r0, [sp, #0x20]
+ bl FUN_0202395C
+ ldr r0, [r4, #0xc]
+ ldr r2, [sp, #0x20]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0xd
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A54 ; =0x000F0E00
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r3, #0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ str r3, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe6
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D974E
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_021D974E:
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r3, #2
+ mov r1, #0xe2
+ lsl r1, r1, #2
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021D9A58 ; =0x00000141
+ add r1, r4, r1
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #4]
+ mov r2, #3
+ bl FUN_02019064
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r4, #0xc]
+ ldr r2, [sp, #0x20]
+ mov r1, #0
+ bl FUN_0200ABC0
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #6
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ ldr r0, _021D9A54 ; =0x000F0E00
+ add r1, r4, #0
+ str r0, [sp]
+ mov r0, #0xe2
+ add r1, #0xc0
+ lsl r0, r0, #2
+ ldr r1, [r1]
+ add r0, r4, r0
+ mov r2, #0xff
+ mov r3, #0x40
+ bl MOD55_021D80F0
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ mov r0, #0x34
+ bl FUN_02006D98
+ add r1, r4, #0
+ add r1, #0xdc
+ str r0, [r1]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #7
+ bl FUN_0202822C
+ add r6, r0, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #8
+ bl FUN_0202822C
+ add r1, r6, #0
+ mov r2, #1
+ add r5, r0, #0
+ bl FUN_020536D0
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ lsl r3, r5, #0x18
+ add r0, sp, #0x24
+ lsr r1, r1, #0x10
+ mov r2, #2
+ lsr r3, r3, #0x18
+ bl FUN_02068FE0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ add r1, sp, #0x24
+ mov r2, #0x36
+ mov r3, #0x54
+ bl FUN_020073A0
+ add r1, r4, #0
+ add r1, #0xe0
+ str r0, [r1]
+ cmp r5, #1
+ bne _021D9864
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_0201886C
+ ldr r2, _021D9A5C ; =0x00000FFF
+ mov r7, #0x10
+ mov ip, r0
+ lsl r6, r7, #5
+ add r3, r2, #1
+_021D983C:
+ lsl r5, r6, #1
+ mov r1, ip
+ mov r0, #0
+ add r1, r1, r5
+_021D9844:
+ ldrh r5, [r1]
+ add r0, r0, #1
+ and r5, r2
+ add r5, r5, r3
+ strh r5, [r1]
+ add r1, r1, #2
+ cmp r0, #0xc
+ blt _021D9844
+ add r7, r7, #1
+ add r6, #0x20
+ cmp r7, #0x15
+ blt _021D983C
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02017CD0
+_021D9864:
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021D987C
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_021D987C:
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ mov r0, #0x13
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #2
+ mov r1, #0xd2
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #3
+ mov r3, #0xf
+ bl FUN_02019064
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r4, #0
+ add r2, #0xc4
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0xe
+ bl FUN_0200A8E0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r0, #0x34
+ bl FUN_02023928
+ add r5, r0, #0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ bl FUN_020283E8
+ add r1, r0, #0
+ add r0, r5, #0
+ bl FUN_0202395C
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x2a
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc4
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc4
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ add r2, r4, #0
+ add r2, #0xc8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0xf
+ bl FUN_0200A8E0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc8
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #1
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x10
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #0x27
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #2
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #0x35
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9A60 ; =0x00010200
+ b _021D9A64
+ nop
+_021D9A50: .word 0x0000019D
+_021D9A54: .word 0x000F0E00
+_021D9A58: .word 0x00000141
+_021D9A5C: .word 0x00000FFF
+_021D9A60: .word 0x00010200
+_021D9A64:
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x12
+ bl FUN_0200A8E0
+ mov r0, #0x4a
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9C4C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #3
+ bl FUN_0202822C
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ cmp r5, #1
+ ldr r0, [r4, #0x10]
+ bne _021D9ADC
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r2, [r2]
+ mov r1, #0x13
+ bl FUN_0200A8E0
+ b _021D9AE8
+_021D9ADC:
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r2, [r2]
+ mov r1, #0x2b
+ bl FUN_0200A8E0
+_021D9AE8:
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r0, #0x5c
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9C4C ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+ add r2, r4, #0
+ add r2, #0xc0
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x14
+ bl FUN_0200A8E0
+ mov r0, #0x71
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9C4C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r2, r4, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #6
+ bl FUN_0202822C
+ add r2, r0, #0
+ beq _021D9C18
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #2
+ ldr r0, [r4, #0xc]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #4
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #5
+ bl FUN_0202822C
+ add r2, r0, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_0200B764
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ mov r2, #6
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #2
+ ldr r0, [r4, #0xc]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add r2, r4, #0
+ add r2, #0xb8
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2]
+ mov r1, #0x15
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0xc0
+ add r2, #0xb8
+ ldr r0, [r4, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ add r1, r4, #0
+ add r1, #0xc0
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x78
+ sub r3, r1, r0
+ mov r1, #0x81
+ add r2, r4, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ lsl r0, r1, #9
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ add r0, r4, r0
+ bl FUN_0201BDE0
+_021D9C18:
+ mov r0, #0xd2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ ldr r0, [sp, #0x20]
+ bl FUN_02016A18
+ mov r0, #0x3b
+ mov r1, #0x15
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [sp, #0x14]
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9C4C: .word 0x00010200
+ thumb_func_end MOD55_021D95EC
+
+ thumb_func_start MOD55_021D9C50
+MOD55_021D9C50: ; 0x021D9C50
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ bl G3X_ResetMtxStack
+ bl G3X_ResetMtxStack_2
+ bl FUN_020B02C8
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ ldr r0, _021D9CB8 ; =0x04000540
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D9C82
+ add sp, #0xc
+ add r0, r4, #0
+ pop {r4, r5, pc}
+_021D9C82:
+ ldr r0, _021D9CBC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D9CB2
+ ldr r0, _021D9CC0 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x3b
+ mov r1, #0x16
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D9CB2:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D9CB8: .word 0x04000540
+_021D9CBC: .word 0x021C48B8
+_021D9CC0: .word 0x000005DC
+ thumb_func_end MOD55_021D9C50
+
+ thumb_func_start MOD55_021D9CC4
+MOD55_021D9CC4: ; 0x021D9CC4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r1, #0
+ bl G3X_ResetMtxStack
+ bl G3X_ResetMtxStack_2
+ bl FUN_020B02C8
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_02006ED4
+ ldr r0, _021D9D84 ; =0x04000540
+ mov r1, #0
+ str r1, [r0]
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D9CF6
+ add sp, #0x10
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021D9CF6:
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D9D16
+ bl FUN_02007534
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ bl FUN_020072E8
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xe0
+ str r1, [r0]
+_021D9D16:
+ ldr r0, [r5, #4]
+ bl MOD55_021D7AA4
+ mov r0, #0x34
+ bl FUN_02016B94
+ str r0, [r5, #4]
+ bl MOD55_021D781C
+ add r0, r5, #0
+ bl MOD55_021D74E0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #0xa
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x59
+ mov r1, #0xb
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #3
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x3b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D9D84: .word 0x04000540
+ thumb_func_end MOD55_021D9CC4
+
+ thumb_func_start MOD55_021D9D88
+MOD55_021D9D88: ; 0x021D9D88
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ str r1, [sp, #0x10]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #4]
+ mov r0, #0x59
+ mov r1, #8
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x34
+ str r0, [sp, #0xc]
+ ldr r2, [r6, #4]
+ mov r0, #0x59
+ mov r1, #4
+ mov r3, #1
+ bl FUN_020068C8
+ mov r7, #0x29
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_021D9DCE:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa
+ blt _021D9DCE
+ mov r0, #0xf2
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r6, r0]
+ add r0, r0, #3
+ strb r1, [r6, r0]
+ add r0, r6, #0
+ bl MOD55_021D7EE4
+ add r0, r6, #0
+ bl MOD55_021D8044
+ mov r0, #0x3b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ ldr r0, [sp, #0x10]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD55_021D9D88
+
+ thumb_func_start MOD55_021D9E04
+MOD55_021D9E04: ; 0x021D9E04
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ add r4, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x10
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x3b
+ mov r1, #0x18
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D9E04
+
+ thumb_func_start MOD55_021D9E34
+MOD55_021D9E34: ; 0x021D9E34
+ ldr r3, _021D9E3C ; =FUN_0201C78C
+ ldrh r0, [r0]
+ bx r3
+ nop
+_021D9E3C: .word FUN_0201C78C
+ thumb_func_end MOD55_021D9E34
+
+ thumb_func_start MOD55_021D9E40
+MOD55_021D9E40: ; 0x021D9E40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ add r6, r1, #0
+ bl FUN_020286EC
+ add r5, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EBE
+ mov r0, #0
+ bl MOD55_021DA27C
+ add r0, r4, #0
+ bl MOD55_021D778C
+ ldr r0, [r4, #8]
+ bl LoadPlayerDataAddress
+ mov r1, #7
+ str r0, [sp]
+ mov r0, #0x34
+ mov r2, #0
+ add r3, r1, #0
+ bl FUN_02077A84
+ str r0, [r4]
+ ldr r0, _021D9EC4 ; =0x020FA5FC
+ ldr r1, [r4]
+ mov r2, #0x34
+ bl FUN_02006234
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #0x19
+ sub r0, #0x20
+ str r2, [r4, r0]
+ sub r1, #8
+ ldrb r1, [r4, r1]
+ add r0, r5, #0
+ add r1, r4, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r5, r0, #0
+ bl MOD55_021D9E34
+ cmp r0, #0
+ ldr r0, [r4]
+ bne _021D9EB8
+ ldr r0, [r0, #0x18]
+ add r1, r5, #0
+ bl FUN_02021E28
+ b _021D9EBE
+_021D9EB8:
+ ldr r0, [r0, #0x18]
+ bl FUN_02021A4C
+_021D9EBE:
+ add r0, r6, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D9EC4: .word 0x020FA5FC
+ thumb_func_end MOD55_021D9E40
+
+ thumb_func_start MOD55_021D9EC8
+MOD55_021D9EC8: ; 0x021D9EC8
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02006290
+ cmp r0, #0
+ beq _021D9F68
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02006260
+ ldr r1, [r5]
+ ldr r0, [r1, #0x14]
+ cmp r0, #0
+ bne _021D9F18
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ ldr r1, [r1, #0x18]
+ bl FUN_02021A74
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r2, r5, #0
+ add r2, #0xd4
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ ldr r2, [r2]
+ sub r1, r1, #1
+ bl FUN_020283C0
+_021D9F18:
+ ldr r0, [r5]
+ bl FUN_02077AC4
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl MOD55_021DA27C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x11
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r5, #0
+ bl MOD55_021D7504
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD55_021D8A7C
+ mov r0, #1
+ bl MOD55_021DA27C
+ mov r0, #0x3b
+ mov r1, #0x1a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D9F68:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D9EC8
+
+ thumb_func_start MOD55_021D9F70
+MOD55_021D9F70: ; 0x021D9F70
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9F86
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021D9F86:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021D9F70
+
+ thumb_func_start MOD55_021D9F8C
+MOD55_021D9F8C: ; 0x021D9F8C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x34
+ add r6, r1, #0
+ bl FUN_02023928
+ add r4, r0, #0
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x1c
+ bl MOD55_021DA0A4
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #0x3b
+ mov r1, #0x1c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD55_021D9F8C
+
+ thumb_func_start MOD55_021D9FDC
+MOD55_021D9FDC: ; 0x021D9FDC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021DA010
+ mov r0, #0x34
+ str r0, [sp]
+ ldr r0, [r5, #4]
+ ldr r1, _021DA014 ; =0x021DA2AC
+ ldr r2, _021DA018 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ add r1, r5, #0
+ add r1, #0xe8
+ str r0, [r1]
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_021DA010:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA014: .word 0x021DA2AC
+_021DA018: .word 0x000001D9
+ thumb_func_end MOD55_021D9FDC
+
+ thumb_func_start MOD55_021DA01C
+MOD55_021DA01C: ; 0x021DA01C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xe8
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #0x34
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021DA038
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_021DA038:
+ cmp r0, #0
+ bne _021DA056
+ ldr r0, [r5, #8]
+ bl FUN_020286EC
+ mov r1, #0xf2
+ lsl r1, r1, #2
+ ldrb r1, [r5, r1]
+ add r1, r5, r1
+ ldrb r1, [r1, #0x18]
+ sub r1, r1, #1
+ bl FUN_02028468
+ mov r1, #2
+ b _021DA070
+_021DA056:
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xad
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r1, #3
+_021DA070:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD55_021DA214
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD55_021DA01C
+
+ thumb_func_start MOD55_021DA080
+MOD55_021DA080: ; 0x021DA080
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x34
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0x10
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #2
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD55_021DA080
+
+ thumb_func_start MOD55_021DA0A4
+MOD55_021DA0A4: ; 0x021DA0A4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r6, r1, #0
+ bl LoadPlayerDataAddress
+ bl FUN_02024FF4
+ add r4, r0, #0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021DA0D0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021DA0D0:
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _021DA154 ; =0x0000012D
+ mov r1, #0xce
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ mov r2, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r6, #0
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xbc
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r2, _021DA158 ; =0x000001E2
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ str r3, [sp]
+ str r4, [sp, #4]
+ add r2, r5, #0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ str r3, [sp, #8]
+ add r2, #0xbc
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ add r5, #0xe4
+ str r0, [r5]
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021DA154: .word 0x0000012D
+_021DA158: .word 0x000001E2
+ thumb_func_end MOD55_021DA0A4
+
+ thumb_func_start MOD55_021DA15C
+MOD55_021DA15C: ; 0x021DA15C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ add r4, r1, #0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _021DA17C
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_021DA17C:
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _021DA20C ; =0x0000012D
+ mov r1, #0xce
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ mov r2, #2
+ ldr r0, [r5, #4]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ add r2, r5, #0
+ add r2, #0xb8
+ ldr r0, [r5, #0x10]
+ ldr r2, [r2]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0xbc
+ add r2, #0xb8
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl FUN_0200B7B8
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r2, _021DA210 ; =0x000001E2
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r3, #0
+ add r2, r5, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xce
+ lsl r0, r0, #2
+ str r3, [sp, #8]
+ add r2, #0xbc
+ ldr r2, [r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ add r1, r5, #0
+ add r1, #0xe4
+ str r0, [r1]
+ mov r0, #0xce
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DA20C: .word 0x0000012D
+_021DA210: .word 0x000001E2
+ thumb_func_end MOD55_021DA15C
+
+ thumb_func_start MOD55_021DA214
+MOD55_021DA214: ; 0x021DA214
+ mov r1, #0xce
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r3, _021DA220 ; =FUN_0200D0E0
+ mov r1, #0
+ bx r3
+ .align 2, 0
+_021DA220: .word FUN_0200D0E0
+ thumb_func_end MOD55_021DA214
+
+ thumb_func_start MOD55_021DA224
+MOD55_021DA224: ; 0x021DA224
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ cmp r5, #0
+ beq _021DA276
+ bl FUN_020286EC
+ bl FUN_02028228
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_020973B4
+ cmp r0, #0
+ bne _021DA24C
+ mov r0, #0
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA24C:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ add r3, sp, #0
+ bl FUN_02033918
+ cmp r0, #0
+ bne _021DA262
+ mov r0, #1
+ mvn r0, r0
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA262:
+ add r0, r5, #0
+ bl FUN_020286EC
+ add r1, r7, #0
+ bl FUN_0202838C
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_02096D2C
+_021DA276:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021DA224
+
+ thumb_func_start MOD55_021DA27C
+MOD55_021DA27C: ; 0x021DA27C
+ push {r4, lr}
+ add r4, r0, #0
+ lsl r1, r4, #0x18
+ mov r0, #0xf
+ lsr r1, r1, #0x18
+ bl FUN_0201E6E4
+ lsl r1, r4, #0x18
+ mov r0, #1
+ lsr r1, r1, #0x18
+ bl FUN_0201E74C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD55_021DA27C
+
+ .section .rodata
+ ; 0x021DA298
+ .incbin "baserom.nds", 0x2A15B8, 0x1E8
+
+ .section .data
+ ; 0x021DA4A0
+ .incbin "baserom.nds", 0x2A17C0, 0x80
diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s
new file mode 100644
index 00000000..4ab4e3a4
--- /dev/null
+++ b/arm9/modules/56/asm/module_56.s
@@ -0,0 +1,8689 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD56_02211E60
+MOD56_02211E60: ; 0x02211E60
+ sub r0, #9
+ cmp r0, #5
+ bhi _02211E82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02211E72: ; jump table
+ .short _02211E7E - _02211E72 - 2 ; case 0
+ .short _02211E7E - _02211E72 - 2 ; case 1
+ .short _02211E7E - _02211E72 - 2 ; case 2
+ .short _02211E7E - _02211E72 - 2 ; case 3
+ .short _02211E7E - _02211E72 - 2 ; case 4
+ .short _02211E7E - _02211E72 - 2 ; case 5
+_02211E7E:
+ mov r0, #1
+ bx lr
+_02211E82:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD56_02211E60
+
+ thumb_func_start MOD56_02211E88
+MOD56_02211E88: ; 0x02211E88
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD56_02211E60
+ cmp r0, #0
+ beq _02211E98
+ mov r0, #1
+ pop {r4, pc}
+_02211E98:
+ cmp r4, #0xf
+ bne _02211EA0
+ mov r0, #1
+ pop {r4, pc}
+_02211EA0:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD56_02211E88
+
+ thumb_func_start MOD56_02211EA4
+MOD56_02211EA4: ; 0x02211EA4
+ cmp r0, #7
+ bhi _02211EC8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02211EB4: ; jump table
+ .short _02211EC8 - _02211EB4 - 2 ; case 0
+ .short _02211EC8 - _02211EB4 - 2 ; case 1
+ .short _02211EC4 - _02211EB4 - 2 ; case 2
+ .short _02211EC4 - _02211EB4 - 2 ; case 3
+ .short _02211EC4 - _02211EB4 - 2 ; case 4
+ .short _02211EC4 - _02211EB4 - 2 ; case 5
+ .short _02211EC4 - _02211EB4 - 2 ; case 6
+ .short _02211EC4 - _02211EB4 - 2 ; case 7
+_02211EC4:
+ mov r0, #1
+ bx lr
+_02211EC8:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD56_02211EA4
+
+ thumb_func_start MOD56_02211ECC
+MOD56_02211ECC: ; 0x02211ECC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD56_02211EA4
+ cmp r0, #0
+ beq _02211EDC
+ mov r0, #1
+ pop {r4, pc}
+_02211EDC:
+ cmp r4, #1
+ beq _02211EE4
+ cmp r4, #8
+ bne _02211EE8
+_02211EE4:
+ mov r0, #1
+ pop {r4, pc}
+_02211EE8:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD56_02211ECC
+
+ thumb_func_start MOD56_02211EEC
+MOD56_02211EEC: ; 0x02211EEC
+ sub r0, #0xc
+ cmp r0, #3
+ bhi _02211F0A
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02211EFE: ; jump table
+ .short _02211F06 - _02211EFE - 2 ; case 0
+ .short _02211F06 - _02211EFE - 2 ; case 1
+ .short _02211F06 - _02211EFE - 2 ; case 2
+ .short _02211F06 - _02211EFE - 2 ; case 3
+_02211F06:
+ mov r0, #1
+ bx lr
+_02211F0A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD56_02211EEC
+
+ thumb_func_start MOD56_02211F10
+MOD56_02211F10: ; 0x02211F10
+ mov r1, #0x11
+ cmp r0, #0x10
+ bhi _02211F82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02211F22: ; jump table
+ .short _02211F82 - _02211F22 - 2 ; case 0
+ .short _02211F80 - _02211F22 - 2 ; case 1
+ .short _02211F68 - _02211F22 - 2 ; case 2
+ .short _02211F6C - _02211F22 - 2 ; case 3
+ .short _02211F70 - _02211F22 - 2 ; case 4
+ .short _02211F74 - _02211F22 - 2 ; case 5
+ .short _02211F78 - _02211F22 - 2 ; case 6
+ .short _02211F7C - _02211F22 - 2 ; case 7
+ .short _02211F64 - _02211F22 - 2 ; case 8
+ .short _02211F48 - _02211F22 - 2 ; case 9
+ .short _02211F4C - _02211F22 - 2 ; case 10
+ .short _02211F50 - _02211F22 - 2 ; case 11
+ .short _02211F54 - _02211F22 - 2 ; case 12
+ .short _02211F58 - _02211F22 - 2 ; case 13
+ .short _02211F5C - _02211F22 - 2 ; case 14
+ .short _02211F44 - _02211F22 - 2 ; case 15
+ .short _02211F60 - _02211F22 - 2 ; case 16
+_02211F44:
+ mov r1, #8
+ b _02211F82
+_02211F48:
+ mov r1, #2
+ b _02211F82
+_02211F4C:
+ mov r1, #3
+ b _02211F82
+_02211F50:
+ mov r1, #4
+ b _02211F82
+_02211F54:
+ mov r1, #5
+ b _02211F82
+_02211F58:
+ mov r1, #6
+ b _02211F82
+_02211F5C:
+ mov r1, #7
+ b _02211F82
+_02211F60:
+ mov r1, #1
+ b _02211F82
+_02211F64:
+ mov r1, #0xf
+ b _02211F82
+_02211F68:
+ mov r1, #9
+ b _02211F82
+_02211F6C:
+ mov r1, #0xa
+ b _02211F82
+_02211F70:
+ mov r1, #0xb
+ b _02211F82
+_02211F74:
+ mov r1, #0xc
+ b _02211F82
+_02211F78:
+ mov r1, #0xd
+ b _02211F82
+_02211F7C:
+ mov r1, #0xe
+ b _02211F82
+_02211F80:
+ mov r1, #0x10
+_02211F82:
+ add r0, r1, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD56_02211F10
+
+ thumb_func_start MOD56_02211F88
+MOD56_02211F88: ; 0x02211F88
+ push {r3, r4, r5, r6, r7, lr}
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_0206BB1C
+ str r0, [sp]
+ bl FUN_0206B9AC
+ mov r5, #0
+ add r7, r0, #0
+ add r4, r5, #0
+ cmp r7, #0
+ ble _02211FCE
+_02211FA2:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ mov r1, #0xa2
+ mov r2, #0
+ add r6, r0, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _02211FC8
+ add r0, r6, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02211FC8
+ add r5, r5, #1
+_02211FC8:
+ add r4, r4, #1
+ cmp r4, r7
+ blt _02211FA2
+_02211FCE:
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02211F88
+
+ thumb_func_start MOD56_02211FD4
+MOD56_02211FD4: ; 0x02211FD4
+ 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, _02212074 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _02212078 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r0, #0x36
+ bl FUN_02016B94
+ add r1, r4, #0
+ add r1, #0xc0
+ str r0, [r1]
+ mov r0, #0x36
+ bl FUN_0200AA80
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ mov r2, #0x25
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #4
+ mov r3, #0x36
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ ldr r2, _0221207C ; =0x00000265
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x36
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ bl MOD56_022122B4
+ add r0, r4, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD56_022122D4
+ add r0, r4, #0
+ bl MOD56_0221257C
+ ldr r0, _02212080 ; =MOD56_0221228C
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl MOD56_0221269C
+ add r0, r4, #0
+ bl MOD56_022126E0
+ add r0, r4, #0
+ bl MOD56_022127D4
+ pop {r4, pc}
+ .align 2, 0
+_02212074: .word 0xFFFFE0FF
+_02212078: .word 0x04001000
+_0221207C: .word 0x00000265
+_02212080: .word MOD56_0221228C
+ thumb_func_end MOD56_02211FD4
+
+ thumb_func_start MOD56_02212084
+MOD56_02212084: ; 0x02212084
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _02212098
+ cmp r1, #1
+ beq _0221214E
+ b _0221215C
+_02212098:
+ bl FUN_0200628C
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ cmp r0, #1
+ bne _022120B2
+ mov r2, #7
+ mov r0, #3
+ mov r1, #0x36
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ b _022120BE
+_022120B2:
+ mov r2, #0xb
+ mov r0, #3
+ mov r1, #0x36
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+_022120BE:
+ mov r1, #0x3f
+ add r0, r4, #0
+ lsl r1, r1, #4
+ mov r2, #0x36
+ bl FUN_02006268
+ mov r2, #0x3f
+ mov r1, #0
+ lsl r2, r2, #4
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r6]
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_020286EC
+ str r0, [r4]
+ mov r1, #0xef
+ ldr r0, [r6, #4]
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ mov r2, #8
+ sub r0, #8
+ str r2, [r4, r0]
+ sub r2, #9
+ add r1, #0x1c
+ str r2, [r4, r1]
+ mov r0, #0xf
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0xf
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ bl MOD56_0221244C
+ add r0, r4, #0
+ bl MOD56_02211FD4
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x36
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ bl FUN_02033590
+ cmp r0, #0
+ bne _02212146
+ bl FUN_02088858
+_02212146:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0221215C
+_0221214E:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_0221215C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212084
+
+ thumb_func_start MOD56_02212164
+MOD56_02212164: ; 0x02212164
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _0221217E
+ cmp r1, #1
+ beq _0221218C
+ cmp r1, #2
+ beq _022121A2
+ b _022121AE
+_0221217E:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _022121AE
+ mov r0, #1
+ str r0, [r5]
+ b _022121AE
+_0221218C:
+ mov r2, #0x3b
+ lsl r2, r2, #4
+ ldr r2, [r4, r2]
+ lsl r3, r2, #2
+ ldr r2, _022121C0 ; =0x022164E0
+ ldr r2, [r2, r3]
+ cmp r2, #0
+ beq _022121AE
+ blx r2
+ str r0, [r5]
+ b _022121AE
+_022121A2:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _022121AE
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022121AE:
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022121BC
+ bl FUN_0201FDEC
+_022121BC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022121C0: .word 0x022164E0
+ thumb_func_end MOD56_02212164
+
+ thumb_func_start MOD56_022121C4
+MOD56_022121C4: ; 0x022121C4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0xb
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x2b
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_022121EC:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _022121EC
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ add r0, r6, #0
+ bl MOD56_0221295C
+ add r0, r6, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl MOD56_02212540
+ add r0, r6, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r6, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r6, #0xc8
+ ldr r0, [r6]
+ bl FUN_0200AB18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022121C4
+
+ thumb_func_start MOD56_02212240
+MOD56_02212240: ; 0x02212240
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD56_022121C4
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r6, r0, #0
+ mov r0, #0xed
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ str r1, [r6, #4]
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ beq _02212268
+ cmp r0, #0xa
+ bne _0221226E
+_02212268:
+ bl FUN_02088868
+ b _02212274
+_0221226E:
+ bl MOD04_021D853C
+ str r0, [r6, #8]
+_02212274:
+ add r0, r4, #0
+ bl MOD56_022124E4
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x36
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212240
+
+ thumb_func_start MOD56_0221228C
+MOD56_0221228C: ; 0x0221228C
+ push {r3, lr}
+ add r0, #0xc0
+ ldr r0, [r0]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _022122AC ; =0x027E0000
+ ldr r1, _022122B0 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ .align 2, 0
+_022122AC: .word 0x027E0000
+_022122B0: .word 0x00003FF8
+ thumb_func_end MOD56_0221228C
+
+ thumb_func_start MOD56_022122B4
+MOD56_022122B4: ; 0x022122B4
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _022122D0 ; =0x02216454
+ add r3, sp, #0
+ mov r2, #5
+_022122BE:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _022122BE
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_022122D0: .word 0x02216454
+ thumb_func_end MOD56_022122B4
+
+ thumb_func_start MOD56_022122D4
+MOD56_022122D4: ; 0x022122D4
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _0221242C ; =0x02216330
+ 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, _02212430 ; =0x02216368
+ 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
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _02212434 ; =0x02216384
+ 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
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r5, _02212438 ; =0x022163A0
+ 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
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _0221243C ; =0x022163BC
+ 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, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r5, _02212440 ; =0x022163D8
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #4
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x36
+ bl FUN_02017F18
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, _02212444 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _02212448 ; =0x04001050
+ strh r1, [r0]
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ .align 2, 0
+_0221242C: .word 0x02216330
+_02212430: .word 0x02216368
+_02212434: .word 0x02216384
+_02212438: .word 0x022163A0
+_0221243C: .word 0x022163BC
+_02212440: .word 0x022163D8
+_02212444: .word 0x04000050
+_02212448: .word 0x04001050
+ thumb_func_end MOD56_022122D4
+
+ thumb_func_start MOD56_0221244C
+MOD56_0221244C: ; 0x0221244C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+ mov r7, #8
+_02212456:
+ add r0, r7, #0
+ mov r1, #0x36
+ bl FUN_020219F4
+ add r1, r5, #0
+ add r1, #0xd4
+ str r0, [r1]
+ ldr r0, [r6]
+ add r1, r4, #0
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021E28
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _02212456
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ mov r1, #0x36
+ bl FUN_020219F4
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ add r1, #0x20
+ add r0, r1, #0
+ mov r1, #0x36
+ bl FUN_020219F4
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ add r7, r1, #0
+ str r0, [r6, r1]
+ mov r5, #0
+ add r4, r6, #0
+ sub r7, #0x10
+_022124A8:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ mov r1, #0x36
+ bl FUN_020219F4
+ str r0, [r4, r7]
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _022124A8
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ mov r1, #0x36
+ bl FUN_020219F4
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r0, #0xb4
+ mov r1, #0x36
+ bl FUN_020219F4
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r6, r1]
+ mov r0, #0x3b
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_0221244C
+
+ thumb_func_start MOD56_022124E4
+MOD56_022124E4: ; 0x022124E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r4, #0
+ add r5, r7, #0
+_022124EC:
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x20
+ blt _022124EC
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ mov r6, #0x59
+ mov r5, #0
+ add r4, r7, #0
+ lsl r6, r6, #2
+_02212524:
+ ldr r0, [r4, r6]
+ bl FUN_02021A20
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #4
+ blt _02212524
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02021A20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022124E4
+
+ thumb_func_start MOD56_02212540
+MOD56_02212540: ; 0x02212540
+ 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, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212540
+
+ thumb_func_start MOD56_0221257C
+MOD56_0221257C: ; 0x0221257C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r0, #0xc0
+ ldr r4, [r0]
+ 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, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x36
+ 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, #0x36
+ 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, #0x36
+ bl FUN_02002EEC
+ mov r1, #6
+ mov r0, #0
+ lsl r1, r1, #6
+ mov r2, #0x36
+ bl FUN_02002EEC
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #2
+ add r2, r4, #0
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #4
+ add r2, r4, #0
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #9
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ mov r0, #0x5c
+ mov r1, #0xa
+ add r2, r4, #0
+ mov r3, #4
+ bl FUN_020068C8
+ add r5, #0xc4
+ ldr r0, [r5]
+ bl LoadPlayerDataAddress
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x36
+ str r0, [sp, #4]
+ ldr r2, _02212694 ; =0x000001E2
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x36
+ str r0, [sp, #4]
+ ldr r2, _02212698 ; =0x000001D9
+ add r0, r4, #0
+ mov r1, #2
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x36
+ str r0, [sp, #4]
+ ldr r2, _02212698 ; =0x000001D9
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CB00
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212694: .word 0x000001E2
+_02212698: .word 0x000001D9
+ thumb_func_end MOD56_0221257C
+
+ thumb_func_start MOD56_0221269C
+MOD56_0221269C: ; 0x0221269C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _022126D8 ; =0x02216340
+ 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, #0x36
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ ldr r1, _022126DC ; =0x00100010
+ mov r0, #1
+ bl FUN_02008D44
+ mov r0, #1
+ bl FUN_02008DDC
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_022126D8: .word 0x02216340
+_022126DC: .word 0x00100010
+ thumb_func_end MOD56_0221269C
+
+ thumb_func_start MOD56_022126E0
+MOD56_022126E0: ; 0x022126E0
+ 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, #0x36
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r1, #0x62
+ lsl r1, r1, #2
+ mov r0, #0x1e
+ add r1, r6, r1
+ mov r2, #0x36
+ bl FUN_02008C9C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ 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
+ mov r7, #0x2b
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #4
+_0221272C:
+ mov r0, #2
+ add r1, r4, #0
+ mov r2, #0x36
+ bl FUN_02008DEC
+ str r0, [r5, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0221272C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x36
+ str r0, [sp, #8]
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #0x5c
+ mov r2, #7
+ bl FUN_02008F34
+ mov r1, #0xb
+ lsl r1, r1, #6
+ str r0, [r6, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ mov r0, #0x36
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r6, r1]
+ mov r1, #0x5c
+ mov r2, #8
+ bl FUN_02008FEC
+ mov r1, #0xb1
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x36
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x5c
+ mov r2, #1
+ bl FUN_020090AC
+ mov r1, #0xb2
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x36
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ mov r1, #0x5c
+ add r3, r2, #0
+ bl FUN_020090AC
+ mov r1, #0xb3
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ sub r1, #0xc
+ ldr r0, [r6, r1]
+ bl FUN_02009A50
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_022126E0
+
+ thumb_func_start MOD56_022127D4
+MOD56_022127D4: ; 0x022127D4
+ 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]
+ mov r2, #0x2b
+ str r1, [sp, #0x10]
+ lsl r2, r2, #4
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r5, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r4, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ mov r7, #6
+ str r4, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r4, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x50]
+ str r0, [sp, #0x54]
+ mov r0, #0x36
+ str r0, [sp, #0x58]
+ mov r6, #0x20
+ lsl r7, r7, #0xe
+_02212848:
+ mov r0, #1
+ lsl r1, r6, #0xc
+ lsl r0, r0, #0x14
+ add r0, r1, r0
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ str r7, [sp, #0x34]
+ bl FUN_0201FE94
+ mov r1, #0xca
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02020130
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r6, #0x20
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02212848
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_022127D4
+
+ thumb_func_start MOD56_022128A4
+MOD56_022128A4: ; 0x022128A4
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022128CE
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022128CE:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x16
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02212954 ; =0x000001CA
+ mov r1, #0xd7
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xc0
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #3
+ mov r3, #5
+ bl FUN_02019064
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r0, #1
+ mov r2, #0
+ mov r3, #0xb0
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02212958 ; =0x000F0E00
+ add r2, #0x61
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_02212954: .word 0x000001CA
+_02212958: .word 0x000F0E00
+ thumb_func_end MOD56_022128A4
+
+ thumb_func_start MOD56_0221295C
+MOD56_0221295C: ; 0x0221295C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02212978
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02212978:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02212990
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02212990:
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022129A8
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022129A8:
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022129C0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022129C0:
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022129D8
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022129D8:
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022129EA
+ mov r1, #0
+ add r2, r1, #0
+ bl FUN_02001300
+_022129EA:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02212A00
+ bl FUN_02012870
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xb0
+ str r1, [r0]
+_02212A00:
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02212A18
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02212A18:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_0221295C
+
+ thumb_func_start MOD56_02212A1C
+MOD56_02212A1C: ; 0x02212A1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r1, _02212B30 ; =0x00000497
+ mov r0, #0xb
+ mov r2, #1
+ bl FUN_0200433C
+ bl FUN_02033590
+ cmp r0, #0
+ beq _02212A9A
+ bl FUN_02033E74
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ bl FUN_020334DC
+ add r1, r0, #0
+ str r0, [r5, #4]
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r0, #0x21
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #8
+ bne _02212A80
+ bl FUN_02033208
+ bl FUN_020334DC
+ add r1, r0, #0
+ str r0, [r5, #4]
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r0, #0x21
+ strb r1, [r0]
+ mov r0, #0xf1
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x40
+ sub r0, #0x14
+ str r1, [r5, r0]
+ b _02212B2C
+_02212A80:
+ add r0, r5, #0
+ mov r1, #0x2b
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x10
+ bl FUN_02031588
+ mov r0, #0x3b
+ mov r1, #0x3c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02212B2C
+_02212A9A:
+ add r0, r5, #0
+ bl MOD56_022128A4
+ ldr r0, [r5]
+ bl FUN_02028228
+ bl FUN_02096F80
+ cmp r0, #0
+ bne _02212AFA
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020178BC
+ add r0, r5, #0
+ mov r1, #0x11
+ bl MOD56_02215FF4
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02212B34 ; =0x02216310
+ ldr r2, _02212B38 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #6
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02212B2C
+_02212AFA:
+ ldr r0, [r5]
+ bl FUN_02028228
+ bl FUN_02096F18
+ cmp r0, #0
+ bne _02212B1A
+ add r0, r5, #0
+ mov r1, #0x13
+ bl MOD56_02215FF4
+ mov r0, #0x3b
+ mov r1, #3
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02212B2C
+_02212B1A:
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02212B2C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212B30: .word 0x00000497
+_02212B34: .word 0x02216310
+_02212B38: .word 0x000001D9
+ thumb_func_end MOD56_02212A1C
+
+ thumb_func_start MOD56_02212B3C
+MOD56_02212B3C: ; 0x02212B3C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02212B76
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02212B7C ; =0x022162F8
+ ldr r2, _02212B80 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #2
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02212B76:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02212B7C: .word 0x022162F8
+_02212B80: .word 0x000001D9
+ thumb_func_end MOD56_02212B3C
+
+ thumb_func_start MOD56_02212B84
+MOD56_02212B84: ; 0x02212B84
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02212BA2
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02212BA2:
+ cmp r0, #0
+ bne _02212BD4
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r1, _02212BE0 ; =0x000004A4
+ bl FUN_0203346C
+ str r0, [r5, #4]
+ add r0, r5, #0
+ mov r1, #0x16
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02212BE4 ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r1, #0xe
+ b _02212BD6
+_02212BD4:
+ mov r1, #0x22
+_02212BD6:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212BE0: .word 0x000004A4
+_02212BE4: .word 0x000001E2
+ thumb_func_end MOD56_02212B84
+
+ thumb_func_start MOD56_02212BE8
+MOD56_02212BE8: ; 0x02212BE8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _02212C44 ; =0x021C48B8
+ add r5, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #3
+ tst r1, r2
+ beq _02212C40
+ mov r1, #0x14
+ bl MOD56_02215FF4
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020178BC
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02212C48 ; =0x02216310
+ ldr r2, _02212C4C ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #4
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02212C40:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02212C44: .word 0x021C48B8
+_02212C48: .word 0x02216310
+_02212C4C: .word 0x000001D9
+ thumb_func_end MOD56_02212BE8
+
+ thumb_func_start MOD56_02212C50
+MOD56_02212C50: ; 0x02212C50
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02212C74
+ add sp, #4
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, pc}
+_02212C74:
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ cmp r6, #0
+ bne _02212CB4
+ add r0, r5, #0
+ mov r1, #0x15
+ bl MOD56_02215FF4
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02212CC4 ; =0x02216310
+ ldr r2, _02212CC8 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r1, #5
+ b _02212CB6
+_02212CB4:
+ mov r1, #0x22
+_02212CB6:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02212CC4: .word 0x02216310
+_02212CC8: .word 0x000001D9
+ thumb_func_end MOD56_02212C50
+
+ thumb_func_start MOD56_02212CCC
+MOD56_02212CCC: ; 0x02212CCC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02212CEC
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02212CEC:
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ cmp r6, #0
+ bne _02212D44
+ ldr r0, [r5]
+ bl FUN_020281E8
+ mov r1, #0x3b
+ mov r0, #0xe
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, #0xf4
+ bl FUN_0203346C
+ str r0, [r5, #4]
+ add r0, r5, #0
+ mov r1, #0x16
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02212D50 ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r1, #1
+ mov r0, #0x3d
+ b _02212D48
+_02212D44:
+ mov r1, #0x22
+ mov r0, #0x3b
+_02212D48:
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02212D50: .word 0x000001E2
+ thumb_func_end MOD56_02212CCC
+
+ thumb_func_start MOD56_02212D54
+MOD56_02212D54: ; 0x02212D54
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _02212D74
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02212D74:
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ cmp r6, #0
+ bne _02212DC6
+ mov r1, #0x3b
+ mov r0, #0xe
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, #0xf4
+ bl FUN_0203346C
+ str r0, [r5, #4]
+ add r0, r5, #0
+ mov r1, #0x16
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02212DD4 ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r1, #1
+ mov r0, #0x3d
+ b _02212DCA
+_02212DC6:
+ mov r1, #0x22
+ mov r0, #0x3b
+_02212DCA:
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02212DD4: .word 0x000001E2
+ thumb_func_end MOD56_02212D54
+
+ thumb_func_start MOD56_02212DD8
+MOD56_02212DD8: ; 0x02212DD8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #1
+ mov r1, #2
+ bl FUN_020178BC
+ mov r0, #3
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #2
+ mov r1, #0
+ bl FUN_020178BC
+ mov r0, #0x3b
+ mov r1, #0xf
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212DD8
+
+ thumb_func_start MOD56_02212E0C
+MOD56_02212E0C: ; 0x02212E0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ str r1, [sp]
+ bl FUN_020238F4
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_02024DA0
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_0206BB1C
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_02029AFC
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ bl FUN_0206B9AC
+ mov r6, #0
+ str r0, [sp, #4]
+ cmp r0, #0
+ ble _02212E82
+ add r4, r6, #0
+_02212E52:
+ ldr r0, [sp, #0xc]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ mov r1, #5
+ mov r2, #0
+ add r7, r0, #0
+ bl FUN_020671BC
+ ldr r1, [r5, #4]
+ mov r2, #0
+ strh r0, [r1, r4]
+ add r0, r7, #0
+ mov r1, #6
+ bl FUN_020671BC
+ ldr r1, [r5, #4]
+ add r6, r6, #1
+ add r1, r1, r4
+ strh r0, [r1, #0xc]
+ ldr r0, [sp, #4]
+ add r4, r4, #2
+ cmp r6, r0
+ blt _02212E52
+_02212E82:
+ ldr r0, [sp, #0x14]
+ bl FUN_02023A68
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x18]
+ ldr r0, [sp, #0x14]
+ bl FUN_02023A70
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x19]
+ ldr r0, [sp, #0x10]
+ bl FUN_02024CA4
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x1a]
+ ldr r1, [r5, #4]
+ ldr r0, [sp]
+ strb r0, [r1, #0x1b]
+ ldr r0, [r5, #4]
+ mov r1, #0
+ strb r1, [r0, #0x1c]
+ ldr r0, [sp, #0x14]
+ bl FUN_02023A28
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x1d]
+ ldr r0, [sp, #0x14]
+ bl FUN_020239CC
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x1e]
+ ldr r0, [sp, #8]
+ bl FUN_02029B38
+ ldr r1, [r5, #4]
+ strb r0, [r1, #0x1f]
+ ldr r0, [sp, #8]
+ bl FUN_02029B3C
+ ldr r1, [r5, #4]
+ add r1, #0x20
+ strb r0, [r1]
+ ldr r0, [r5, #4]
+ mov r1, #1
+ add r0, #0x21
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ add r0, #0x22
+ strb r1, [r0]
+ ldr r0, [r5, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ ldr r0, [r5, #4]
+ mov r1, #0x24
+ add r0, #0x24
+ bl MOD04_021D83D4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212E0C
+
+ thumb_func_start MOD56_02212EFC
+MOD56_02212EFC: ; 0x02212EFC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r5, #0
+ add r6, r0, #0
+ add r4, r5, #0
+ add r7, r5, #0
+_02212F06:
+ add r0, r6, r4
+ strb r7, [r0, #0xc]
+ add r0, r4, #0
+ bl MOD04_021D8480
+ cmp r0, #0
+ beq _02212F1C
+ add r0, r6, r5
+ add r1, r4, #1
+ strb r1, [r0, #0xc]
+ add r5, r5, #1
+_02212F1C:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _02212F06
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212EFC
+
+ thumb_func_start MOD56_02212F28
+MOD56_02212F28: ; 0x02212F28
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r7, r0, #0
+ str r4, [sp]
+ add r5, r4, #0
+ add r6, r7, #0
+_02212F34:
+ ldr r0, [r7, #4]
+ add r0, r0, r5
+ add r0, #0x3f
+ ldrb r1, [r0]
+ ldr r0, [r6, #0x2c]
+ cmp r0, r1
+ beq _02212F6E
+ str r1, [r6, #0x2c]
+ ldr r3, [r7, #4]
+ ldr r0, [r7]
+ add r3, r3, r5
+ add r3, #0x41
+ ldrb r3, [r3]
+ add r1, r4, #0
+ mov r2, #7
+ bl FUN_020282E8
+ ldr r3, [r7, #4]
+ ldr r0, [r7]
+ add r3, r3, r5
+ add r3, #0x42
+ ldrb r3, [r3]
+ add r1, r4, #0
+ mov r2, #8
+ bl FUN_020282E8
+ ldr r0, [sp]
+ add r0, r0, #1
+ str r0, [sp]
+_02212F6E:
+ add r4, r4, #1
+ add r5, #0x24
+ add r6, r6, #4
+ cmp r4, #0x20
+ blt _02212F34
+ ldr r0, [sp]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_02212F28
+
+ thumb_func_start MOD56_02212F7C
+MOD56_02212F7C: ; 0x02212F7C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_02033180
+ mov r1, #0
+ mvn r1, r1
+ cmp r5, r1
+ beq _02212F98
+ cmp r5, #0xb
+ beq _02212F98
+ cmp r0, r1
+ bne _02212F9E
+_02212F98:
+ mov r6, #0xe
+ mov r5, #0xb
+ b _02212FAC
+_02212F9E:
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _02212FAA
+ mov r6, #0xd
+ mov r5, #0xc
+ b _02212FAC
+_02212FAA:
+ add r6, r5, #0
+_02212FAC:
+ add r0, r4, #0
+ bl MOD56_02216120
+ bl FUN_02033180
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r3, #5
+ bl FUN_0200AD38
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD56_02215FF4
+ cmp r5, #0xb
+ bhi _02213022
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02212FE6: ; jump table
+ .short _02213022 - _02212FE6 - 2 ; case 0
+ .short _02212FFE - _02212FE6 - 2 ; case 1
+ .short _02213022 - _02212FE6 - 2 ; case 2
+ .short _02213022 - _02212FE6 - 2 ; case 3
+ .short _02212FFE - _02212FE6 - 2 ; case 4
+ .short _02212FFE - _02212FE6 - 2 ; case 5
+ .short _0221300A - _02212FE6 - 2 ; case 6
+ .short _0221300A - _02212FE6 - 2 ; case 7
+ .short _0221300A - _02212FE6 - 2 ; case 8
+ .short _0221300A - _02212FE6 - 2 ; case 9
+ .short _02213016 - _02212FE6 - 2 ; case 10
+ .short _02212FFE - _02212FE6 - 2 ; case 11
+_02212FFE:
+ mov r0, #0x3b
+ mov r1, #0xa
+ lsl r0, r0, #4
+ add sp, #8
+ str r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_0221300A:
+ mov r0, #0x3b
+ mov r1, #0xa
+ lsl r0, r0, #4
+ add sp, #8
+ str r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_02213016:
+ mov r0, #0x3b
+ mov r1, #0xa
+ lsl r0, r0, #4
+ add sp, #8
+ str r1, [r4, r0]
+ pop {r4, r5, r6, pc}
+_02213022:
+ mov r0, #0x3b
+ mov r1, #0x23
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02212F7C
+
+ thumb_func_start MOD56_02213030
+MOD56_02213030: ; 0x02213030
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02033180
+ bl MOD04_021D80E0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD56_02212F7C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02213030
+
+ thumb_func_start MOD56_02213048
+MOD56_02213048: ; 0x02213048
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02213088 ; =0x021C48B8
+ add r4, r1, #0
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _02213084
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0221307C
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_0221307C:
+ mov r0, #0x3b
+ mov r1, #8
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02213084:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02213088: .word 0x021C48B8
+ thumb_func_end MOD56_02213048
+
+ thumb_func_start MOD56_0221308C
+MOD56_0221308C: ; 0x0221308C
+ mov r2, #0x3b
+ mov r3, #9
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_0221308C
+
+ thumb_func_start MOD56_02213098
+MOD56_02213098: ; 0x02213098
+ mov r2, #0x3b
+ mov r3, #0xb
+ lsl r2, r2, #4
+ str r3, [r0, r2]
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_02213098
+
+ thumb_func_start MOD56_022130A4
+MOD56_022130A4: ; 0x022130A4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _022130F0 ; =0x021C48B8
+ add r4, r1, #0
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _022130EA
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022130D8
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_022130D8:
+ add r0, r5, #0
+ mov r1, #0x33
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0xb
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_022130EA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022130F0: .word 0x021C48B8
+ thumb_func_end MOD56_022130A4
+
+ thumb_func_start MOD56_022130F4
+MOD56_022130F4: ; 0x022130F4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0221312E
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02213134 ; =0x02216308
+ ldr r2, _02213138 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0xc
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221312E:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02213134: .word 0x02216308
+_02213138: .word 0x000001D9
+ thumb_func_end MOD56_022130F4
+
+ thumb_func_start MOD56_0221313C
+MOD56_0221313C: ; 0x0221313C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _0221315A
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_0221315A:
+ cmp r0, #0
+ bne _02213172
+ bl FUN_020331C4
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0xd
+ lsl r0, r0, #4
+ b _02213186
+_02213172:
+ bl FUN_020331C4
+ bl FUN_0202DBA4
+ mov r0, #0xed
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x22
+ sub r0, r0, #4
+_02213186:
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_0221313C
+
+ thumb_func_start MOD56_02213194
+MOD56_02213194: ; 0x02213194
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ str r1, [sp, #0x10]
+ bl FUN_0202E4C8
+ cmp r0, #0
+ bne _0221326E
+ add r0, r6, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r2, r6, #0
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #4
+ bl FUN_020068C8
+ add r0, r6, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02213206
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+ add r0, r6, #0
+ add r0, #0xb4
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ add r0, r6, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r6, #0
+ mov r1, #0
+ add r0, #0xb0
+ str r1, [r0]
+_02213206:
+ add r0, r6, #0
+ add r0, #0xc
+ mov r1, #0
+ mov r2, #0x20
+ bl MI_CpuFill8
+ add r0, r6, #0
+ add r0, #0x2c
+ mov r1, #0
+ mov r2, #0x80
+ bl MI_CpuFill8
+ mov r7, #0xca
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_02213226:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02213226
+ add r0, r6, #0
+ bl MOD56_022128A4
+ add r0, r6, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r1, _02213274 ; =0x000004A4
+ bl FUN_0203346C
+ str r0, [r6, #4]
+ add r0, r6, #0
+ mov r1, #0x16
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02213278 ; =0x000001E2
+ add r0, r6, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r6, r1]
+ mov r0, #0x3b
+ mov r1, #0xe
+ lsl r0, r0, #4
+ str r1, [r6, r0]
+_0221326E:
+ ldr r0, [sp, #0x10]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213274: .word 0x000004A4
+_02213278: .word 0x000001E2
+ thumb_func_end MOD56_02213194
+
+ thumb_func_start MOD56_0221327C
+MOD56_0221327C: ; 0x0221327C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_02033138
+ cmp r0, #0
+ beq _022132E0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #8
+ beq _022132B6
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _022132B6
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_022132B6:
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _022132C8
+ mov r1, #0x10
+ sub r0, #0x20
+ str r1, [r5, r0]
+ b _022132F6
+_022132C8:
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_02212E0C
+ add r0, r5, #0
+ bl MOD56_02212EFC
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _022132F6
+_022132E0:
+ bl FUN_02033250
+ cmp r0, #0
+ bne _022132F0
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _022132F6
+_022132F0:
+ add r0, r5, #0
+ bl MOD56_02213030
+_022132F6:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_0221327C
+
+ thumb_func_start MOD56_022132FC
+MOD56_022132FC: ; 0x022132FC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ ble _02213314
+ sub r1, r1, #1
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02213314:
+ bl FUN_02033154
+ cmp r0, #0
+ beq _02213326
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213364
+_02213326:
+ bl FUN_0203300C
+ cmp r0, #4
+ bge _02213340
+ bl FUN_02033128
+ cmp r0, #0
+ bne _02213340
+ mov r0, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _0221334E
+_02213340:
+ bl FUN_020331E8
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213364
+_0221334E:
+ bl FUN_02033250
+ cmp r0, #0
+ bne _0221335E
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _02213364
+_0221335E:
+ add r0, r5, #0
+ bl MOD56_02213030
+_02213364:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_022132FC
+
+ thumb_func_start MOD56_02213368
+MOD56_02213368: ; 0x02213368
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02216120
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD56_02215FF4
+ mov r0, #0x3b
+ mov r1, #0x11
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02213368
+
+ thumb_func_start MOD56_02213388
+MOD56_02213388: ; 0x02213388
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02213418 ; =0x021C48B8
+ add r4, r1, #0
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _02213412
+ mov r1, #0xef
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ cmp r0, #1
+ bne _022133B6
+ add r0, r1, #0
+ mov r2, #0xa
+ sub r0, #8
+ str r2, [r5, r0]
+ mov r0, #0x22
+ sub r1, #0xc
+ str r0, [r5, r1]
+ bl FUN_020331C4
+ b _02213412
+_022133B6:
+ ldr r0, [r5]
+ bl FUN_02028448
+ cmp r0, #0
+ bne _022133DA
+ add r0, r5, #0
+ mov r1, #0x19
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x3a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ mov r1, #1
+ add r0, #0x14
+ str r1, [r5, r0]
+ b _02213412
+_022133DA:
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_02212E0C
+ add r0, r5, #0
+ bl MOD56_02212EFC
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ sub r0, #0x44
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02213412
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02213412:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02213418: .word 0x021C48B8
+ thumb_func_end MOD56_02213388
+
+ thumb_func_start MOD56_0221341C
+MOD56_0221341C: ; 0x0221341C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r5, _02213618 ; =0x00010200
+ bl FUN_020238F4
+ mov r1, #0x36
+ bl FUN_020239A0
+ add r6, r0, #0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ bne _0221344C
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_0221344C:
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r5, #0
+ str r0, [sp, #8]
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r2, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [r4, #4]
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #0x10
+ bls _02213484
+ b _02213614
+_02213484:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213490: ; jump table
+ .short _022135D8 - _02213490 - 2 ; case 0
+ .short _022134B2 - _02213490 - 2 ; case 1
+ .short _0221350C - _02213490 - 2 ; case 2
+ .short _0221350C - _02213490 - 2 ; case 3
+ .short _0221350C - _02213490 - 2 ; case 4
+ .short _0221350C - _02213490 - 2 ; case 5
+ .short _0221350C - _02213490 - 2 ; case 6
+ .short _0221350C - _02213490 - 2 ; case 7
+ .short _0221359A - _02213490 - 2 ; case 8
+ .short _02213522 - _02213490 - 2 ; case 9
+ .short _02213536 - _02213490 - 2 ; case 10
+ .short _0221354A - _02213490 - 2 ; case 11
+ .short _0221355E - _02213490 - 2 ; case 12
+ .short _02213572 - _02213490 - 2 ; case 13
+ .short _02213586 - _02213490 - 2 ; case 14
+ .short _022135B0 - _02213490 - 2 ; case 15
+ .short _022135C4 - _02213490 - 2 ; case 16
+_022134B2:
+ ldr r5, _0221361C ; =0x00020E00
+ bl MOD04_021D853C
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _022134D4
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x1a
+ bl FUN_0200A8E0
+ b _022135DC
+_022134D4:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ ldr r0, [r4]
+ mov r2, #8
+ bl FUN_0202822C
+ cmp r0, #0
+ bne _022134EA
+ ldr r5, _02213620 ; =0x00050600
+ b _022134F2
+_022134EA:
+ cmp r0, #1
+ bne _022134F2
+ mov r5, #0xc1
+ lsl r5, r5, #0xa
+_022134F2:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ ldr r0, [r4]
+ bl FUN_020283A4
+ add r1, r0, #0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021E28
+ b _022135DC
+_0221350C:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x17
+ bl FUN_0200A8E0
+ ldr r5, _0221361C ; =0x00020E00
+ b _022135DC
+_02213522:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3b
+ bl FUN_0200A8E0
+ b _022135DC
+_02213536:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3c
+ bl FUN_0200A8E0
+ b _022135DC
+_0221354A:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3a
+ bl FUN_0200A8E0
+ b _022135DC
+_0221355E:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3e
+ bl FUN_0200A8E0
+ b _022135DC
+_02213572:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3f
+ bl FUN_0200A8E0
+ b _022135DC
+_02213586:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3d
+ bl FUN_0200A8E0
+ b _022135DC
+_0221359A:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x19
+ bl FUN_0200A8E0
+ ldr r5, _0221361C ; =0x00020E00
+ b _022135DC
+_022135B0:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x18
+ bl FUN_0200A8E0
+ b _022135DC
+_022135C4:
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x2d
+ bl FUN_0200A8E0
+ b _022135DC
+_022135D8:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_022135DC:
+ mov r1, #0x56
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r4, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0
+ add r3, r0, #0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r5, [sp, #8]
+ mov r5, #0x9c
+ str r1, [sp, #0xc]
+ add r2, #0x59
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ sub r3, r5, r3
+ bl FUN_0201BDE0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+_02213614:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02213618: .word 0x00010200
+_0221361C: .word 0x00020E00
+_02213620: .word 0x00050600
+ thumb_func_end MOD56_0221341C
+
+ thumb_func_start MOD56_02213624
+MOD56_02213624: ; 0x02213624
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ mov r1, #0x13
+ add r7, r2, #0
+ bl FUN_02001470
+ add r4, r0, #0
+ ldr r6, _02213750 ; =0x00010200
+ cmp r5, #0x20
+ beq _02213642
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _02213644
+_02213642:
+ b _0221374C
+_02213644:
+ mov r1, #0x24
+ ldr r0, [r4, #4]
+ mul r1, r5
+ add r0, r0, r1
+ add r0, #0x3f
+ ldrb r0, [r0]
+ cmp r0, #0x11
+ bhi _022136B6
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02213660: ; jump table
+ .short _022136B6 - _02213660 - 2 ; case 0
+ .short _02213684 - _02213660 - 2 ; case 1
+ .short _0221368A - _02213660 - 2 ; case 2
+ .short _0221368A - _02213660 - 2 ; case 3
+ .short _0221368A - _02213660 - 2 ; case 4
+ .short _0221368A - _02213660 - 2 ; case 5
+ .short _0221368A - _02213660 - 2 ; case 6
+ .short _0221368A - _02213660 - 2 ; case 7
+ .short _022136A8 - _02213660 - 2 ; case 8
+ .short _02213690 - _02213660 - 2 ; case 9
+ .short _02213694 - _02213660 - 2 ; case 10
+ .short _02213698 - _02213660 - 2 ; case 11
+ .short _0221369C - _02213660 - 2 ; case 12
+ .short _022136A0 - _02213660 - 2 ; case 13
+ .short _022136A4 - _02213660 - 2 ; case 14
+ .short _022136AE - _02213660 - 2 ; case 15
+ .short _022136B2 - _02213660 - 2 ; case 16
+ .short _022136B6 - _02213660 - 2 ; case 17
+_02213684:
+ mov r1, #0x1a
+ ldr r6, _02213754 ; =0x00020E00
+ b _022136B8
+_0221368A:
+ mov r1, #0x17
+ ldr r6, _02213754 ; =0x00020E00
+ b _022136B8
+_02213690:
+ mov r1, #0x3b
+ b _022136B8
+_02213694:
+ mov r1, #0x3c
+ b _022136B8
+_02213698:
+ mov r1, #0x3a
+ b _022136B8
+_0221369C:
+ mov r1, #0x3e
+ b _022136B8
+_022136A0:
+ mov r1, #0x3f
+ b _022136B8
+_022136A4:
+ mov r1, #0x3d
+ b _022136B8
+_022136A8:
+ mov r1, #0x19
+ ldr r6, _02213754 ; =0x00020E00
+ b _022136B8
+_022136AE:
+ mov r1, #0x18
+ b _022136B8
+_022136B2:
+ mov r1, #0x2d
+ b _022136B8
+_022136B6:
+ mov r1, #0x37
+_022136B8:
+ cmp r1, #0
+ beq _02213706
+ add r0, r4, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ mov r1, #0x56
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r4, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov ip, r0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ str r7, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r6, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ add r2, #0x59
+ ldr r2, [r4, r2]
+ mov r6, #0xa4
+ mov r3, ip
+ add r0, r4, r0
+ sub r3, r6, r3
+ bl FUN_0201BDE0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+_02213706:
+ ldr r0, [r4]
+ add r1, r5, #0
+ mov r2, #8
+ bl FUN_0202822C
+ ldr r1, _02213750 ; =0x00010200
+ cmp r0, #0
+ bne _0221371A
+ ldr r1, _02213758 ; =0x00050600
+ b _02213722
+_0221371A:
+ cmp r0, #1
+ bne _02213722
+ mov r1, #0xc1
+ lsl r1, r1, #0xa
+_02213722:
+ str r7, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ lsl r2, r5, #2
+ str r1, [sp, #8]
+ mov r1, #0
+ add r2, r4, r2
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0xd4
+ ldr r2, [r2]
+ add r0, r4, r0
+ mov r3, #8
+ bl FUN_0201BDE0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019220
+_0221374C:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02213750: .word 0x00010200
+_02213754: .word 0x00020E00
+_02213758: .word 0x00050600
+ thumb_func_end MOD56_02213624
+
+ thumb_func_start MOD56_0221375C
+MOD56_0221375C: ; 0x0221375C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r4, r1, #0
+ ldr r1, _0221389C ; =0x022162E0
+ add r5, r3, #0
+ ldrh r3, [r1, #0x10]
+ add r7, r2, #0
+ add r2, sp, #0
+ strh r3, [r2, #0x30]
+ ldrh r3, [r1, #0x12]
+ add r0, #0xc0
+ strh r3, [r2, #0x32]
+ ldrh r3, [r1, #0x14]
+ strh r3, [r2, #0x34]
+ ldrh r3, [r1, #0x16]
+ strh r3, [r2, #0x36]
+ ldrh r3, [r1, #8]
+ strh r3, [r2, #0x28]
+ ldrh r3, [r1, #0xa]
+ strh r3, [r2, #0x2a]
+ ldrh r3, [r1, #0xc]
+ strh r3, [r2, #0x2c]
+ ldrh r3, [r1, #0xe]
+ strh r3, [r2, #0x2e]
+ ldrh r3, [r1, #0x38]
+ strh r3, [r2, #0x20]
+ ldrh r3, [r1, #0x3a]
+ strh r3, [r2, #0x22]
+ ldrh r3, [r1, #0x3c]
+ strh r3, [r2, #0x24]
+ ldrh r3, [r1, #0x3e]
+ strh r3, [r2, #0x26]
+ ldrh r3, [r1]
+ strh r3, [r2, #0x18]
+ ldrh r3, [r1, #2]
+ strh r3, [r2, #0x1a]
+ ldrh r3, [r1, #4]
+ strh r3, [r2, #0x1c]
+ ldrh r3, [r1, #6]
+ strh r3, [r2, #0x1e]
+ ldrh r3, [r1, #0x20]
+ strh r3, [r2, #0x10]
+ ldrh r3, [r1, #0x22]
+ strh r3, [r2, #0x12]
+ ldrh r3, [r1, #0x24]
+ strh r3, [r2, #0x14]
+ ldrh r1, [r1, #0x26]
+ strh r1, [r2, #0x16]
+ ldr r1, _022138A0 ; =0x02216320
+ ldrh r3, [r1]
+ strh r3, [r2, #8]
+ ldrh r3, [r1, #2]
+ strh r3, [r2, #0xa]
+ ldrh r3, [r1, #4]
+ strh r3, [r2, #0xc]
+ ldrh r3, [r1, #6]
+ strh r3, [r2, #0xe]
+ ldrh r3, [r1, #8]
+ strh r3, [r2]
+ ldrh r3, [r1, #0xa]
+ strh r3, [r2, #2]
+ ldrh r3, [r1, #0xc]
+ strh r3, [r2, #4]
+ ldrh r1, [r1, #0xe]
+ strh r1, [r2, #6]
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0201886C
+ add r1, r0, #0
+ mov r2, #0
+ cmp r4, #0x11
+ bhi _0221383A
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022137FA: ; jump table
+ .short _0221383A - _022137FA - 2 ; case 0
+ .short _0221381E - _022137FA - 2 ; case 1
+ .short _02213826 - _022137FA - 2 ; case 2
+ .short _02213826 - _022137FA - 2 ; case 3
+ .short _02213826 - _022137FA - 2 ; case 4
+ .short _02213826 - _022137FA - 2 ; case 5
+ .short _02213826 - _022137FA - 2 ; case 6
+ .short _02213826 - _022137FA - 2 ; case 7
+ .short _0221382E - _022137FA - 2 ; case 8
+ .short _02213822 - _022137FA - 2 ; case 9
+ .short _02213822 - _022137FA - 2 ; case 10
+ .short _02213822 - _022137FA - 2 ; case 11
+ .short _02213822 - _022137FA - 2 ; case 12
+ .short _02213822 - _022137FA - 2 ; case 13
+ .short _02213822 - _022137FA - 2 ; case 14
+ .short _0221382A - _022137FA - 2 ; case 15
+ .short _02213832 - _022137FA - 2 ; case 16
+ .short _02213836 - _022137FA - 2 ; case 17
+_0221381E:
+ add r0, sp, #0x18
+ b _0221383C
+_02213822:
+ mov r2, #1
+ lsl r2, r2, #0xc
+_02213826:
+ add r0, sp, #0x30
+ b _0221383C
+_0221382A:
+ mov r2, #1
+ lsl r2, r2, #0xc
+_0221382E:
+ add r0, sp, #0x28
+ b _0221383C
+_02213832:
+ add r0, sp, #0x20
+ b _0221383C
+_02213836:
+ add r0, sp, #8
+ b _0221383C
+_0221383A:
+ add r0, sp, #0
+_0221383C:
+ ldr r3, [sp, #0x50]
+ ldrh r4, [r0]
+ lsl r3, r3, #5
+ add r5, r5, r3
+ add r6, r4, r2
+ lsl r4, r5, #1
+ strh r6, [r1, r4]
+ ldrh r4, [r0, #2]
+ add r6, r5, #1
+ lsl r6, r6, #1
+ add r4, r4, r2
+ strh r4, [r1, r6]
+ add r6, r5, #0
+ ldrh r4, [r0, #4]
+ add r6, #0x20
+ lsl r6, r6, #1
+ add r4, r4, r2
+ strh r4, [r1, r6]
+ ldrh r0, [r0, #6]
+ add r5, #0x21
+ add r2, r0, r2
+ lsl r0, r5, #1
+ strh r2, [r1, r0]
+ cmp r7, #0
+ beq _02213872
+ add r2, sp, #0
+ b _02213874
+_02213872:
+ add r2, sp, #0x10
+_02213874:
+ ldr r0, [sp, #0x54]
+ ldrh r4, [r2]
+ add r0, r0, r3
+ lsl r3, r0, #1
+ strh r4, [r1, r3]
+ add r3, r0, #1
+ ldrh r4, [r2, #2]
+ lsl r3, r3, #1
+ strh r4, [r1, r3]
+ add r3, r0, #0
+ add r3, #0x20
+ add r0, #0x21
+ ldrh r4, [r2, #4]
+ lsl r3, r3, #1
+ lsl r0, r0, #1
+ strh r4, [r1, r3]
+ ldrh r2, [r2, #6]
+ strh r2, [r1, r0]
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221389C: .word 0x022162E0
+_022138A0: .word 0x02216320
+ thumb_func_end MOD56_0221375C
+
+ thumb_func_start MOD56_022138A4
+MOD56_022138A4: ; 0x022138A4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0xc0
+ add r7, r1, #0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0201886C
+ mov r6, #0
+ mov r4, #5
+_022138BA:
+ add r0, r7, r6
+ cmp r0, #0x20
+ blt _022138C6
+ mov r1, #0
+ mov r2, #1
+ b _022138E2
+_022138C6:
+ add r0, r5, r0
+ ldrb r1, [r0, #0xc]
+ cmp r1, #0
+ bne _022138D4
+ mov r1, #0
+ mov r2, #1
+ b _022138E2
+_022138D4:
+ mov r2, #0x24
+ ldr r0, [r5, #4]
+ mul r2, r1
+ add r0, r0, r2
+ ldrb r1, [r0, #0x1b]
+ add r0, #0x21
+ ldrb r2, [r0]
+_022138E2:
+ str r4, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r3, #3
+ bl MOD56_0221375C
+ add r6, r6, #1
+ add r4, r4, #3
+ cmp r6, #5
+ blt _022138BA
+ ldr r0, [r5, #4]
+ ldrb r1, [r0, #0x1b]
+ add r0, #0x21
+ ldrb r2, [r0]
+ cmp r1, #1
+ bne _02213906
+ mov r1, #0
+_02213906:
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r3, #3
+ bl MOD56_0221375C
+ add r5, #0xc0
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_02017CD0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD56_022138A4
+
+ thumb_func_start MOD56_02213924
+MOD56_02213924: ; 0x02213924
+ push {r3, lr}
+ cmp r2, #0
+ bne _02213930
+ ldr r0, _02213934 ; =0x000005DC
+ bl FUN_020054C8
+_02213930:
+ pop {r3, pc}
+ nop
+_02213934: .word 0x000005DC
+ thumb_func_end MOD56_02213924
+
+ thumb_func_start MOD56_02213938
+MOD56_02213938: ; 0x02213938
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0
+ mov r7, #0x5d
+ add r5, r0, #0
+ add r4, r6, #0
+ lsl r7, r7, #2
+_02213944:
+ add r0, r5, r4
+ ldrb r2, [r0, #0xc]
+ cmp r2, #0
+ beq _0221395C
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ ldr r1, [r5, r7]
+ sub r2, r2, #1
+ bl FUN_020128A0
+ add r6, r6, #1
+_0221395C:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _02213944
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb0
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x1b
+ mov r3, #0x20
+ bl FUN_02012880
+ add r0, r5, #0
+ add r0, #0xb0
+ add r5, #0xcc
+ mov r2, #0x2e
+ add r3, r2, #0
+ ldr r0, [r0]
+ ldr r1, [r5]
+ sub r3, #0x30
+ bl FUN_02012880
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02213938
+
+ thumb_func_start MOD56_02213990
+MOD56_02213990: ; 0x02213990
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ mov r0, #0x22
+ mov r1, #0x36
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xb0
+ str r0, [r1]
+ add r0, r5, #0
+ bl MOD56_02213938
+ add r4, r0, #0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022139D0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_022139D0:
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #0xe
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xdf
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #6
+ bl FUN_02019064
+ ldr r6, _02213A3C ; =0x022163F4
+ add r3, sp, #0x14
+ 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}
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ add r1, r4, #2
+ str r0, [sp, #0x14]
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x20]
+ add r0, sp, #0x14
+ strh r1, [r0, #0x10]
+ mov r1, #0
+ add r0, r2, #0
+ add r2, r1, #0
+ mov r3, #0x36
+ str r5, [sp, #0x30]
+ bl FUN_020010A8
+ add r5, #0xb4
+ str r0, [r5]
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02213A3C: .word 0x022163F4
+ thumb_func_end MOD56_02213990
+
+ thumb_func_start MOD56_02213A40
+MOD56_02213A40: ; 0x02213A40
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02213A6A
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xd3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02213A6A:
+ mov r0, #0x15
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ lsl r0, r0, #5
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xc0
+ mov r1, #0xd3
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #3
+ mov r3, #7
+ bl FUN_02019064
+ add sp, #0x14
+ pop {r3, r4, pc}
+ thumb_func_end MOD56_02213A40
+
+ thumb_func_start MOD56_02213A94
+MOD56_02213A94: ; 0x02213A94
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02216248
+ add r0, r5, #0
+ bl MOD56_02216274
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r2, r5, #0
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #5
+ bl FUN_020068C8
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02213AF0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02213AF0:
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02213B2C
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xb4
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb0
+ str r1, [r0]
+_02213B2C:
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02213BEC ; =0x000001CA
+ mov r1, #0xd7
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #3
+ mov r3, #4
+ bl FUN_02019064
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x12
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02213BF0 ; =0x000F0E00
+ add r2, #0x61
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r5, #0
+ bl MOD56_02212EFC
+ add r0, r5, #0
+ bl MOD56_02213990
+ add r0, r5, #0
+ bl MOD56_02213A40
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD56_022138A4
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ bl MOD04_021D865C
+ mov r0, #0x33
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02213BEC: .word 0x000001CA
+_02213BF0: .word 0x000F0E00
+ thumb_func_end MOD56_02213A94
+
+ thumb_func_start MOD56_02213BF4
+MOD56_02213BF4: ; 0x02213BF4
+ push {r3, lr}
+ bl FUN_0203300C
+ cmp r0, #1
+ bne _02213C02
+ mov r0, #1
+ pop {r3, pc}
+_02213C02:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02213BF4
+
+ thumb_func_start MOD56_02213C08
+MOD56_02213C08: ; 0x02213C08
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ bl MOD56_02212EFC
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02212F28
+ ldr r1, [r5, #8]
+ cmp r1, r4
+ bne _02213C24
+ cmp r0, #0
+ beq _02213CA8
+_02213C24:
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_0201291C
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ mov r1, #2
+ add r2, r4, #2
+ bl FUN_02001538
+ cmp r4, #3
+ ble _02213C50
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ mov r1, #3
+ mov r2, #5
+ bl FUN_02001538
+ b _02213C5E
+_02213C50:
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ mov r1, #3
+ add r2, r4, #2
+ bl FUN_02001538
+_02213C5E:
+ add r0, r5, #0
+ bl MOD56_02213938
+ add r0, r5, #0
+ add r0, #0xb4
+ add r1, sp, #0xc
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_02001448
+ cmp r4, #3
+ blt _02213C84
+ add r0, sp, #0xc
+ ldrh r1, [r0, #2]
+ sub r2, r4, #3
+ cmp r2, r1
+ bgt _02213C84
+ strh r2, [r0, #2]
+_02213C84:
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r5, #0
+ str r1, [sp, #8]
+ add r3, sp, #0xc
+ add r0, #0xb4
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3]
+ ldr r0, [r0]
+ bl FUN_020013C8
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_02001328
+ str r4, [r5, #8]
+_02213CA8:
+ add r0, r5, #0
+ add r0, #0xb4
+ add r1, sp, #0xc
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0xc
+ bl FUN_02001448
+ add r0, sp, #0xc
+ ldr r1, [r5, #8]
+ ldrh r3, [r0]
+ ldrh r2, [r0, #2]
+ add r1, r1, #2
+ add r4, r2, r3
+ cmp r1, r4
+ bgt _02213D0C
+ cmp r1, r4
+ bgt _02213CF0
+_02213CCC:
+ cmp r2, #0
+ beq _02213CD8
+ ldrh r1, [r0, #2]
+ sub r1, r1, #1
+ strh r1, [r0, #2]
+ b _02213CE2
+_02213CD8:
+ cmp r3, #0
+ beq _02213CE2
+ ldrh r1, [r0]
+ sub r1, r1, #1
+ strh r1, [r0]
+_02213CE2:
+ ldrh r3, [r0]
+ ldr r1, [r5, #8]
+ ldrh r2, [r0, #2]
+ add r4, r1, #2
+ add r1, r2, r3
+ cmp r4, r1
+ ble _02213CCC
+_02213CF0:
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r5, #0
+ str r1, [sp, #8]
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_020013C8
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_02001328
+_02213D0C:
+ add r1, sp, #0xc
+ ldrh r1, [r1, #2]
+ add r0, r5, #0
+ bl MOD56_022138A4
+ add r2, sp, #0xc
+ ldrh r3, [r2]
+ mov r0, #0x33
+ lsl r0, r0, #4
+ lsl r2, r3, #1
+ add r2, r3, r2
+ add r2, r2, #6
+ ldr r0, [r5, r0]
+ mov r1, #0x10
+ lsl r2, r2, #3
+ bl MOD56_02214470
+ add r0, sp, #0xc
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _02213D52
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x20
+ bl MOD56_02214470
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _02213D5E
+_02213D52:
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02213D5E:
+ add r0, sp, #0xc
+ ldrh r1, [r0, #2]
+ ldr r0, [r5, #8]
+ sub r0, r0, #3
+ cmp r1, r0
+ bge _02213D88
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x9c
+ bl MOD56_02214470
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_02213D88:
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_02213C08
+
+ thumb_func_start MOD56_02213D98
+MOD56_02213D98: ; 0x02213D98
+ push {r4, r5, r6, lr}
+ mov r6, #0
+ mvn r6, r6
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02213C08
+ bl MOD04_021D8640
+ add r1, r6, #0
+ cmp r0, r1
+ bne _02213DEE
+ ldr r0, _02213F84 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ tst r0, r1
+ beq _02213DEE
+ add r0, r5, #0
+ bl MOD56_0221620C
+ cmp r0, #0
+ beq _02213DD2
+ add r0, r5, #0
+ mov r1, #0x35
+ mov r2, #0
+ bl MOD56_02215EA4
+ b _02213DDC
+_02213DD2:
+ add r0, r5, #0
+ mov r1, #0x36
+ mov r2, #0
+ bl MOD56_02215EA4
+_02213DDC:
+ ldr r0, _02213F88 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x14
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213DEE:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _02213E00
+ add r0, r5, #0
+ bl MOD56_02213030
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213E00:
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02213E1C
+ ldr r0, _02213F8C ; =0x00000624
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x2f
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213E1C:
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ bne _02213E5C
+ bl MOD04_021D8640
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _02213E5C
+ bl MOD04_021D8640
+ mov r1, #0xf6
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0x2a
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0xeb
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ b _02213ECE
+_02213E5C:
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ beq _02213ECE
+ bl MOD04_021D8640
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02213ECE
+ mov r0, #0xdf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xb4
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xb0
+ str r1, [r0]
+ mov r1, #0xf6
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ bl FUN_020331E8
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213ECE:
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ bne _02213EE8
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r6, r0, #0
+_02213EE8:
+ mov r0, #1
+ mvn r0, r0
+ cmp r6, r0
+ beq _02213EFA
+ add r0, r0, #1
+ cmp r6, r0
+ bne _02213F32
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213EFA:
+ ldr r0, _02213F88 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ bl MOD56_02211E88
+ cmp r0, #0
+ beq _02213F16
+ mov r0, #0x3b
+ mov r1, #0x27
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213F2E
+_02213F16:
+ mov r0, #0xed
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x38
+ sub r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0x18
+ mov r2, #1
+ bl MOD56_02215EA4
+_02213F2E:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02213F32:
+ ldr r0, _02213F88 ; =0x000005DD
+ bl FUN_020054C8
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ bl MOD56_02211E88
+ cmp r0, #0
+ beq _02213F4E
+ mov r0, #0x3b
+ mov r1, #0x27
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213F7E
+_02213F4E:
+ cmp r6, #0x20
+ bne _02213F76
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ cmp r0, #0x10
+ bne _02213F64
+ mov r0, #0x3b
+ mov r1, #0x24
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213F7E
+_02213F64:
+ bl MOD56_02211E88
+ cmp r0, #0
+ beq _02213F7E
+ mov r0, #0x3b
+ mov r1, #0x27
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213F7E
+_02213F76:
+ mov r0, #0x3b
+ mov r1, #0x2a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02213F7E:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02213F84: .word 0x021C48B8
+_02213F88: .word 0x000005DD
+_02213F8C: .word 0x00000624
+ thumb_func_end MOD56_02213D98
+
+ thumb_func_start MOD56_02213F90
+MOD56_02213F90: ; 0x02213F90
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02213FA8
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02213FC8
+_02213FA8:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02213FC8
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+_02213FC8:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_02213F90
+
+ thumb_func_start MOD56_02213FCC
+MOD56_02213FCC: ; 0x02213FCC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _022140A0 ; =0x021C48B8
+ add r5, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ tst r1, r2
+ beq _02213FEE
+ mov r1, #0x43
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x41
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221407C
+_02213FEE:
+ bl FUN_0203300C
+ cmp r0, #5
+ bne _02214016
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221407C
+_02214016:
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _0221403E
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221407C
+_0221403E:
+ bl FUN_0203300C
+ cmp r0, #4
+ beq _0221404E
+ bl FUN_02033128
+ cmp r0, #0
+ beq _0221406E
+_0221404E:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221407C
+_0221406E:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _0221407C
+ add r0, r5, #0
+ bl MOD56_02213030
+_0221407C:
+ bl FUN_0203300C
+ cmp r0, #1
+ bne _0221409A
+ add r0, r5, #0
+ bl MOD56_02216274
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0x18
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221409A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022140A0: .word 0x021C48B8
+ thumb_func_end MOD56_02213FCC
+
+ thumb_func_start MOD56_022140A4
+MOD56_022140A4: ; 0x022140A4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0203300C
+ cmp r0, #1
+ bne _022140D8
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xa
+ mov r2, #0
+ bl MOD56_02215EA4
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0x17
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_022140D8:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_022140A4
+
+ thumb_func_start MOD56_022140DC
+MOD56_022140DC: ; 0x022140DC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02214116
+ ldr r0, _0221411C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0221410E
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r0, #0x3b
+ mov r1, #0x18
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214116
+_0221410E:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_02214120
+_02214116:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_0221411C: .word 0x021C48B8
+ thumb_func_end MOD56_022140DC
+
+ thumb_func_start MOD56_02214120
+MOD56_02214120: ; 0x02214120
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02213C08
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ bl FUN_0203300C
+ cmp r0, #5
+ bne _0221416A
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221422E
+_0221416A:
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _02214192
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221422E
+_02214192:
+ bl FUN_0203300C
+ cmp r0, #4
+ beq _022141A2
+ bl FUN_02033128
+ cmp r0, #0
+ beq _022141C2
+_022141A2:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xf
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221422E
+_022141C2:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _022141D2
+ add r0, r5, #0
+ bl MOD56_02213030
+ b _0221422E
+_022141D2:
+ ldr r0, _02214234 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _022141F0
+ add r0, r5, #0
+ mov r1, #0x10
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x19
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221422E
+_022141F0:
+ bl MOD04_021D861C
+ cmp r0, #0
+ beq _02214214
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x20
+ mov r2, #0xb0
+ bl MOD56_02214470
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _0221422E
+_02214214:
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x20
+ mov r2, #0xb0
+ bl MOD56_02214470
+ mov r0, #0xcd
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_0221422E:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214234: .word 0x021C48B8
+ thumb_func_end MOD56_02214120
+
+ thumb_func_start MOD56_02214238
+MOD56_02214238: ; 0x02214238
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0221427E
+ bl MOD04_021D853C
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_020285D0
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02214284 ; =0x02216308
+ ldr r2, _02214288 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x1a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221427E:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214284: .word 0x02216308
+_02214288: .word 0x000001D9
+ thumb_func_end MOD56_02214238
+
+ thumb_func_start MOD56_0221428C
+MOD56_0221428C: ; 0x0221428C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _022142F0
+ bl FUN_0203300C
+ cmp r0, #4
+ bge _022142C0
+ bl FUN_02033128
+ cmp r0, #0
+ bne _022142C0
+ mov r0, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _022142EC
+_022142C0:
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ mov r0, #0
+ mov r1, #0xf6
+ mvn r0, r0
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ mov r2, #0x14
+ sub r0, #0x14
+ str r2, [r5, r0]
+ mov r0, #0x40
+ sub r1, #0x28
+ str r0, [r5, r1]
+_022142EC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_022142F0:
+ cmp r0, #0
+ bne _0221431A
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_0203323C
+ mov r0, #0
+ mov r1, #0xf6
+ mvn r0, r0
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ mov r2, #0x14
+ sub r0, #0x14
+ str r2, [r5, r0]
+ mov r0, #0x40
+ sub r1, #0x28
+ str r0, [r5, r1]
+ b _02214322
+_0221431A:
+ mov r0, #0x3b
+ mov r1, #0x18
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02214322:
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_0221428C
+
+ thumb_func_start MOD56_0221432C
+MOD56_0221432C: ; 0x0221432C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ ldrb r1, [r1, #0x1b]
+ cmp r1, #0x10
+ beq _02214340
+ mov r1, #0x10
+ bl MOD56_0221617C
+_02214340:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0221435E
+ mov r0, #0xf1
+ mov r1, #0x1e
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_0221435E:
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ sub r1, r1, #1
+ str r1, [r5, r0]
+ ldr r1, _022143B0 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #3
+ tst r1, r2
+ bne _02214378
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _022143AC
+_02214378:
+ add r0, r5, #0
+ bl MOD56_02216120
+ bl FUN_020331E8
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221439C
+ mov r0, #0xf1
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x40
+ sub r0, #0x14
+ str r1, [r5, r0]
+ b _022143AC
+_0221439C:
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x13
+ sub r0, #0x28
+ str r1, [r5, r0]
+_022143AC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022143B0: .word 0x021C48B8
+ thumb_func_end MOD56_0221432C
+
+ thumb_func_start MOD56_022143B4
+MOD56_022143B4: ; 0x022143B4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _022143D0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_022143D0:
+ ldr r0, _02214400 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _022143FA
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_020331E8
+ mov r0, #0xf1
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x40
+ sub r0, #0x14
+ str r1, [r5, r0]
+_022143FA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214400: .word 0x021C48B8
+ thumb_func_end MOD56_022143B4
+
+ thumb_func_start MOD56_02214404
+MOD56_02214404: ; 0x02214404
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02214420
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02214420:
+ ldr r0, _02214460 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0221445C
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _0221444C
+ mov r0, #0x3b
+ mov r1, #0x12
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221445C
+_0221444C:
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x13
+ sub r0, #0x28
+ str r1, [r5, r0]
+_0221445C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02214460: .word 0x021C48B8
+ thumb_func_end MOD56_02214404
+
+ thumb_func_start MOD56_02214464
+MOD56_02214464: ; 0x02214464
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_02214464
+
+ thumb_func_start MOD56_02214468
+MOD56_02214468: ; 0x02214468
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_02214468
+
+ thumb_func_start MOD56_0221446C
+MOD56_0221446C: ; 0x0221446C
+ add r0, r1, #0
+ bx lr
+ thumb_func_end MOD56_0221446C
+
+ thumb_func_start MOD56_02214470
+MOD56_02214470: ; 0x02214470
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r5, r2, #0
+ cmp r1, #0
+ ble _0221448E
+ lsl r0, r1, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _0221449C
+_0221448E:
+ lsl r0, r1, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_0221449C:
+ bl _ffix
+ str r0, [sp]
+ cmp r5, #0
+ ble _022144B8
+ lsl r0, r5, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _022144C6
+_022144B8:
+ lsl r0, r5, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_022144C6:
+ 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 MOD56_02214470
+
+ thumb_func_start MOD56_022144DC
+MOD56_022144DC: ; 0x022144DC
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, _02214500 ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #3
+ tst r1, r2
+ beq _022144FC
+ mov r1, #0xed
+ mov r2, #8
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ mov r2, #0x22
+ sub r1, r1, #4
+ str r2, [r0, r1]
+ bl FUN_020331C4
+_022144FC:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+_02214500: .word 0x021C48B8
+ thumb_func_end MOD56_022144DC
+
+ thumb_func_start MOD56_02214504
+MOD56_02214504: ; 0x02214504
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #6
+ mov r2, #0
+ add r5, r0, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x28
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02214504
+
+ thumb_func_start MOD56_02214520
+MOD56_02214520: ; 0x02214520
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _0221455A
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02214560 ; =0x02216308
+ ldr r2, _02214564 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x29
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221455A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214560: .word 0x02216308
+_02214564: .word 0x000001D9
+ thumb_func_end MOD56_02214520
+
+ thumb_func_start MOD56_02214568
+MOD56_02214568: ; 0x02214568
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r4, r0, #0
+ mov r0, #0xf6
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ bne _022145A8
+ bl MOD04_021D8640
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _022145A8
+ cmp r4, r1
+ bne _022145A6
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+_022145A6:
+ mov r4, #1
+_022145A8:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _022145B4
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_022145B4:
+ cmp r4, #0
+ bne _022145C0
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+_022145C0:
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02214568
+
+ thumb_func_start MOD56_022145D4
+MOD56_022145D4: ; 0x022145D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ ldr r3, _022146C0 ; =0x02216414
+ add r2, sp, #0x14
+ add r5, r0, #0
+ add r7, r1, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #4
+ mov r1, #0x36
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xb8
+ ldr r4, _022146C4 ; =0x02216480
+ str r0, [r1]
+ mov r6, #0
+_02214602:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, #4
+ blt _02214602
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02214642
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02214642:
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x33
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xe3
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #2
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ ldr r2, _022146C8 ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ mov r2, #0xe3
+ lsl r2, r2, #2
+ str r0, [sp, #0x14]
+ add r0, r5, r2
+ str r0, [sp, #0x20]
+ add r2, #0x50
+ ldrh r2, [r5, r2]
+ add r0, sp, #0x14
+ mov r1, #0
+ mov r3, #0x36
+ bl FUN_020010A8
+ add r1, r5, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x25
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022146C0: .word 0x02216414
+_022146C4: .word 0x02216480
+_022146C8: .word 0x000001D9
+ thumb_func_end MOD56_022145D4
+
+ thumb_func_start MOD56_022146CC
+MOD56_022146CC: ; 0x022146CC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ bl MOD56_02211F88
+ add r7, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _022146EE
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022146EE:
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02214708
+ mov r4, #1
+ mvn r4, r4
+_02214708:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _0221471A
+ add r0, r0, #1
+ cmp r4, r0
+ bne _02214730
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0221471A:
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+ ldr r0, _02214804 ; =0x000005DD
+ bl FUN_020054C8
+ b _022147CE
+_02214730:
+ ldr r0, _02214804 ; =0x000005DD
+ bl FUN_020054C8
+ cmp r4, #0xf
+ bne _02214752
+ cmp r7, #2
+ bge _02214752
+ add r0, r5, #0
+ mov r1, #0x34
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _022147CE
+_02214752:
+ cmp r4, #1
+ bne _0221476E
+ cmp r7, #2
+ bge _0221476E
+ add r0, r5, #0
+ mov r1, #0x42
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _022147CE
+_0221476E:
+ cmp r4, #1
+ bhi _022147B8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xbc
+ mov r2, #0xf7
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r5, r2
+ bl FUN_02001300
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_02214808
+ mov r0, #0x3b
+ mov r1, #0x26
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_022147B8:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+_022147CE:
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xbc
+ mov r2, #0xf7
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r5, r2
+ bl FUN_02001300
+ add r5, #0xb8
+ ldr r0, [r5]
+ bl FUN_02012870
+ add r0, r6, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214804: .word 0x000005DD
+ thumb_func_end MOD56_022146CC
+
+ thumb_func_start MOD56_02214808
+MOD56_02214808: ; 0x02214808
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ cmp r1, #0
+ bne _0221481A
+ ldr r4, _0221490C ; =0x022164A0
+ mov r7, #4
+ mov r1, #1
+ b _02214820
+_0221481A:
+ ldr r4, _02214910 ; =0x022164C0
+ mov r7, #4
+ mov r1, #0
+_02214820:
+ ldr r0, _02214914 ; =0x000003E2
+ ldr r3, _02214918 ; =0x02216414
+ strh r1, [r5, r0]
+ add r2, sp, #0x14
+ 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, r7, #0
+ mov r1, #0x36
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xb8
+ mov r6, #0
+ str r0, [r1]
+ cmp r7, #0
+ ble _02214868
+_0221484C:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r6, r6, #1
+ add r4, #8
+ cmp r6, r7
+ blt _0221484C
+_02214868:
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _0221488C
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_0221488C:
+ mov r1, #9
+ str r1, [sp]
+ mov r1, #0xf
+ lsl r0, r7, #1
+ str r1, [sp, #4]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xd
+ str r1, [sp, #0xc]
+ mov r1, #0x3b
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xe3
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #2
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ ldr r2, _0221491C ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ mov r3, #0xe3
+ lsl r3, r3, #2
+ str r0, [sp, #0x14]
+ add r0, r5, r3
+ add r2, r3, #0
+ str r0, [sp, #0x20]
+ add r2, #0x56
+ ldrh r2, [r5, r2]
+ add r3, #0x52
+ add r0, sp, #0x14
+ lsl r2, r2, #1
+ add r2, r5, r2
+ ldrh r2, [r2, r3]
+ mov r1, #0
+ mov r3, #0x36
+ bl FUN_020010A8
+ add r1, r5, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #1
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0221490C: .word 0x022164A0
+_02214910: .word 0x022164C0
+_02214914: .word 0x000003E2
+_02214918: .word 0x02216414
+_0221491C: .word 0x000001D9
+ thumb_func_end MOD56_02214808
+
+ thumb_func_start MOD56_02214920
+MOD56_02214920: ; 0x02214920
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r6, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _0221493C
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_0221493C:
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02214956
+ mov r4, #1
+ mvn r4, r4
+_02214956:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _02214968
+ add r0, r0, #1
+ cmp r4, r0
+ bne _02214978
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02214968:
+ ldr r0, _022149D0 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x24
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214994
+_02214978:
+ ldr r0, _022149D0 ; =0x000005DD
+ bl FUN_020054C8
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_0221617C
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD56_02216120
+_02214994:
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ ldr r3, _022149D4 ; =0x000003DE
+ add r0, r5, #0
+ add r2, r5, r3
+ add r3, r3, #4
+ ldrh r3, [r5, r3]
+ add r0, #0xbc
+ ldr r0, [r0]
+ lsl r3, r3, #1
+ mov r1, #0
+ add r2, r2, r3
+ bl FUN_02001300
+ add r5, #0xb8
+ ldr r0, [r5]
+ bl FUN_02012870
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ nop
+_022149D0: .word 0x000005DD
+_022149D4: .word 0x000003DE
+ thumb_func_end MOD56_02214920
+
+ thumb_func_start MOD56_022149D8
+MOD56_022149D8: ; 0x022149D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ ldr r3, _02214BB0 ; =0x02216434
+ add r5, r0, #0
+ mov r0, #3
+ add r2, sp, #0x2c
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x20]
+ 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, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r1, sp, #0x28
+ bl FUN_0200143C
+ add r0, sp, #0x28
+ ldrh r0, [r0]
+ add r0, r5, r0
+ ldrb r0, [r0, #0xc]
+ sub r0, r0, #1
+ str r0, [sp, #0x18]
+ ldr r1, [sp, #0x18]
+ mov r0, #0x24
+ mul r0, r1
+ ldr r1, [r5, #4]
+ add r1, r1, r0
+ add r1, #0x3f
+ ldrb r6, [r1]
+ mov r1, #0xf9
+ lsl r1, r1, #2
+ strh r6, [r5, r1]
+ ldr r2, [r5, #4]
+ add r2, #0x45
+ ldrb r2, [r2, r0]
+ add r0, r1, #2
+ mov r1, #0x36
+ strh r2, [r5, r0]
+ ldr r0, [r5, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x1c]
+ mov r0, #3
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xb8
+ str r0, [r1]
+ mov r0, #0
+ ldr r4, _02214BB4 ; =0x02216350
+ str r0, [sp, #0x24]
+ add r7, sp, #0x28
+_02214A52:
+ ldr r0, [sp, #0x24]
+ cmp r0, #0
+ bne _02214AC8
+ add r0, r6, #0
+ bl MOD56_02211ECC
+ cmp r0, #0
+ bne _02214A6A
+ cmp r6, #0
+ beq _02214A6A
+ cmp r6, #0x11
+ blo _02214A7E
+_02214A6A:
+ ldrh r0, [r7, #0x16]
+ sub r0, r0, #1
+ strh r0, [r7, #0x16]
+ ldrh r0, [r7, #0x14]
+ sub r0, r0, #1
+ strh r0, [r7, #0x14]
+ ldr r0, [sp, #0x20]
+ sub r0, r0, #1
+ str r0, [sp, #0x20]
+ b _02214ADC
+_02214A7E:
+ cmp r6, #0x10
+ bne _02214AB2
+ ldr r0, [sp, #0x1c]
+ cmp r0, #2
+ bne _02214A9E
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r3, [r4, #4]
+ mov r2, #0x1a
+ bl FUN_02012880
+ b _02214ADC
+_02214A9E:
+ ldrh r0, [r7, #0x16]
+ sub r0, r0, #1
+ strh r0, [r7, #0x16]
+ ldrh r0, [r7, #0x14]
+ sub r0, r0, #1
+ strh r0, [r7, #0x14]
+ ldr r0, [sp, #0x20]
+ sub r0, r0, #1
+ str r0, [sp, #0x20]
+ b _02214ADC
+_02214AB2:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ b _02214ADC
+_02214AC8:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xb8
+ add r1, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+_02214ADC:
+ ldr r0, [sp, #0x24]
+ add r4, #8
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #3
+ blo _02214A52
+ ldr r0, [sp, #0x20]
+ mov r1, #3
+ sub r0, r1, r0
+ lsl r0, r0, #1
+ add r0, #0xb
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xf
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x20]
+ mov r1, #0xe3
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x3b
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #2
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ ldr r2, _02214BB8 ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ mov r1, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ add r2, r1, #0
+ mov r3, #0x36
+ bl FUN_020010A8
+ add r1, r5, #0
+ add r1, #0xbc
+ str r0, [r1]
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ bl MOD56_022160E4
+ cmp r6, #0xf
+ bne _02214B6C
+ mov r1, #3
+ b _02214B9A
+_02214B6C:
+ add r0, r6, #0
+ bl MOD56_02211E60
+ cmp r0, #0
+ beq _02214B7A
+ mov r1, #2
+ b _02214B9A
+_02214B7A:
+ cmp r6, #8
+ bne _02214B82
+ mov r1, #0x30
+ b _02214B9A
+_02214B82:
+ add r0, r6, #0
+ bl MOD56_02211EA4
+ cmp r0, #0
+ beq _02214B90
+ mov r1, #0x2f
+ b _02214B9A
+_02214B90:
+ cmp r6, #1
+ bne _02214B98
+ mov r1, #0x31
+ b _02214B9A
+_02214B98:
+ mov r1, #4
+_02214B9A:
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x2b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ ldr r0, [sp, #0x14]
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02214BB0: .word 0x02216434
+_02214BB4: .word 0x02216350
+_02214BB8: .word 0x000001D9
+ thumb_func_end MOD56_022149D8
+
+ thumb_func_start MOD56_02214BBC
+MOD56_02214BBC: ; 0x02214BBC
+ push {r4, r5}
+ ldr r2, _02214BF8 ; =0x000001EF
+ mov r5, #0
+ add r1, r2, #0
+ sub r1, #0x1f
+ add r3, r2, #0
+_02214BC8:
+ ldrh r4, [r0]
+ cmp r4, r3
+ bne _02214BD4
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02214BD4:
+ cmp r4, r2
+ bls _02214BDE
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02214BDE:
+ ldrh r4, [r0, #0xc]
+ cmp r4, r1
+ bls _02214BEA
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02214BEA:
+ add r5, r5, #1
+ add r0, r0, #2
+ cmp r5, #6
+ blt _02214BC8
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02214BF8: .word 0x000001EF
+ thumb_func_end MOD56_02214BBC
+
+ thumb_func_start MOD56_02214BFC
+MOD56_02214BFC: ; 0x02214BFC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ str r1, [sp]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r6, #0
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02214C1E
+ ldr r0, [sp]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_02214C1E:
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02214C36
+ sub r5, r6, #2
+_02214C36:
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ beq _02214C4A
+ add r0, r0, #1
+ cmp r5, r0
+ bne _02214C5A
+ ldr r0, [sp]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_02214C4A:
+ ldr r0, _02214E20 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _02214DE2
+_02214C5A:
+ ldr r0, _02214E20 ; =0x000005DD
+ bl FUN_020054C8
+ cmp r5, #1
+ beq _02214C66
+ b _02214DD6
+_02214C66:
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r1, sp, #0xc
+ bl FUN_0200143C
+ add r0, sp, #0xc
+ ldrh r0, [r0]
+ add r0, r4, r0
+ ldrb r5, [r0, #0xc]
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ strh r5, [r4, r0]
+ cmp r5, #0
+ bne _02214C8E
+ b _02214DE2
+_02214C8E:
+ add r0, r4, #0
+ bl MOD56_02211F88
+ sub r1, r5, #1
+ str r0, [sp, #8]
+ mov r0, #0x24
+ add r3, r1, #0
+ ldr r2, [r4, #4]
+ mul r3, r0
+ add r0, r2, r3
+ add r0, #0x3f
+ ldrb r0, [r0]
+ str r0, [sp, #4]
+ add r0, r2, r3
+ add r0, #0x45
+ ldrb r7, [r0]
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldrh r1, [r4, r0]
+ ldr r0, [sp, #4]
+ cmp r1, r0
+ bne _02214CC6
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ add r0, r0, #2
+ ldrh r0, [r4, r0]
+ cmp r0, r7
+ beq _02214CE4
+_02214CC6:
+ add r0, r4, #0
+ sub r1, r5, #1
+ bl MOD56_022160E4
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214CE4:
+ add r2, #0x24
+ add r0, r2, r3
+ bl MOD56_02214BBC
+ cmp r0, #0
+ bne _02214D0E
+ add r0, r4, #0
+ sub r1, r5, #1
+ bl MOD56_022160E4
+ add r0, r4, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214D0E:
+ ldr r0, [sp, #4]
+ bl MOD56_02211EEC
+ cmp r0, #0
+ beq _02214D46
+ ldr r0, [sp, #8]
+ cmp r0, #2
+ bge _02214D46
+ ldr r0, [sp, #4]
+ cmp r0, #0xf
+ bne _02214D30
+ add r0, r4, #0
+ mov r1, #0x34
+ mov r2, #0
+ bl MOD56_02215EA4
+ b _02214D3A
+_02214D30:
+ add r0, r4, #0
+ mov r1, #0x42
+ mov r2, #0
+ bl MOD56_02215EA4
+_02214D3A:
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214D46:
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _02214D76
+ cmp r7, #0
+ beq _02214D60
+ add r0, r4, #0
+ mov r1, #0x44
+ mov r2, #0
+ bl MOD56_02215EA4
+ b _02214D6A
+_02214D60:
+ add r0, r4, #0
+ mov r1, #0x45
+ mov r2, #0
+ bl MOD56_02215EA4
+_02214D6A:
+ mov r0, #0x3b
+ mov r1, #0x3e
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214D76:
+ ldr r0, [sp, #4]
+ bl MOD56_02211F10
+ add r7, r0, #0
+ cmp r7, #0x11
+ beq _02214DE2
+ sub r0, r5, #1
+ bl MOD04_021D8480
+ cmp r0, #6
+ bne _02214DE2
+ sub r0, r5, #1
+ bl FUN_02032FDC
+ cmp r0, #0
+ beq _02214DE2
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD56_0221617C
+ add r0, r4, #0
+ sub r1, r5, #1
+ bl MOD56_022160E4
+ add r0, r4, #0
+ mov r1, #0xd
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02214E24 ; =0x000001E2
+ add r0, r4, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ cmp r7, #1
+ beq _02214DCA
+ mov r1, #0x2c
+ b _02214DCC
+_02214DCA:
+ mov r1, #0x15
+_02214DCC:
+ mov r0, #0x3b
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r6, #1
+ b _02214DE2
+_02214DD6:
+ cmp r5, #2
+ bne _02214DE2
+ mov r0, #0x3b
+ mov r1, #0x35
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_02214DE2:
+ cmp r6, #0
+ bne _02214DEC
+ add r0, r4, #0
+ bl MOD56_02216120
+_02214DEC:
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0xbc
+ mov r1, #0
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ add r4, #0xb8
+ ldr r0, [r4]
+ bl FUN_02012870
+ ldr r0, [sp]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02214E20: .word 0x000005DD
+_02214E24: .word 0x000001E2
+ thumb_func_end MOD56_02214BFC
+
+ thumb_func_start MOD56_02214E28
+MOD56_02214E28: ; 0x02214E28
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldr r1, _02214F08 ; =0x021C48B8
+ add r5, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ tst r1, r2
+ beq _02214E4A
+ mov r1, #0x43
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x2d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214F02
+_02214E4A:
+ bl FUN_0203300C
+ cmp r0, #3
+ bne _02214E72
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214F02
+_02214E72:
+ bl FUN_0203300C
+ cmp r0, #5
+ bne _02214E9A
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xb
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214F02
+_02214E9A:
+ bl FUN_0203300C
+ cmp r0, #4
+ beq _02214EAA
+ bl FUN_02033128
+ cmp r0, #0
+ beq _02214ECA
+_02214EAA:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214F02
+_02214ECA:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _02214EDA
+ add r0, r5, #0
+ bl MOD56_02213030
+ b _02214F02
+_02214EDA:
+ bl FUN_0203300C
+ cmp r0, #1
+ bne _02214F02
+ add r0, r5, #0
+ bl MOD56_02216274
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0202DB14
+ mov r0, #0xf1
+ mov r1, #0x1e
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x30
+ sub r0, #0x14
+ str r1, [r5, r0]
+_02214F02:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214F08: .word 0x021C48B8
+ thumb_func_end MOD56_02214E28
+
+ thumb_func_start MOD56_02214F0C
+MOD56_02214F0C: ; 0x02214F0C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02214F46
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02214F4C ; =0x02216308
+ ldr r2, _02214F50 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x42
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02214F46:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02214F4C: .word 0x02216308
+_02214F50: .word 0x000001D9
+ thumb_func_end MOD56_02214F0C
+
+ thumb_func_start MOD56_02214F54
+MOD56_02214F54: ; 0x02214F54
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02214F90
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02214F86
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+_02214F86:
+ mov r0, #0x3b
+ mov r1, #0x15
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02214FCC
+_02214F90:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02214F9C
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02214F9C:
+ cmp r4, #0
+ bne _02214FC4
+ add r0, r5, #0
+ bl MOD56_02216248
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_020331E8
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x13
+ sub r0, #0x28
+ str r1, [r5, r0]
+ b _02214FCC
+_02214FC4:
+ mov r0, #0x3b
+ mov r1, #0x15
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02214FCC:
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02214F54
+
+ thumb_func_start MOD56_02214FD8
+MOD56_02214FD8: ; 0x02214FD8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02215012
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02215018 ; =0x02216308
+ ldr r2, _0221501C ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x2e
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215012:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02215018: .word 0x02216308
+_0221501C: .word 0x000001D9
+ thumb_func_end MOD56_02214FD8
+
+ thumb_func_start MOD56_02215020
+MOD56_02215020: ; 0x02215020
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _0221505C
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02215052
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+_02215052:
+ mov r0, #0x3b
+ mov r1, #0x2c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02215098
+_0221505C:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02215068
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02215068:
+ cmp r4, #0
+ bne _02215090
+ add r0, r5, #0
+ bl MOD56_02216248
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_020331E8
+ mov r1, #0
+ mov r0, #0xf6
+ mvn r1, r1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x13
+ sub r0, #0x28
+ str r1, [r5, r0]
+ b _02215098
+_02215090:
+ mov r0, #0x3b
+ mov r1, #0x2c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215098:
+ add r0, r5, #0
+ bl MOD56_02216120
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02215020
+
+ thumb_func_start MOD56_022150A4
+MOD56_022150A4: ; 0x022150A4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ add r6, r1, #0
+ ldrb r4, [r0, #0x1b]
+ bl MOD04_021D853C
+ mov r1, #0x24
+ ldr r2, [r5, #4]
+ mul r1, r0
+ add r0, r2, r1
+ add r0, #0x3f
+ ldrb r0, [r0]
+ cmp r4, #0xc
+ bne _022150D0
+ cmp r0, #5
+ bne _022150D0
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_022150D0:
+ cmp r4, #0xd
+ bne _022150E2
+ cmp r0, #6
+ bne _022150E2
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_022150E2:
+ cmp r4, #0xe
+ bne _022150F4
+ cmp r0, #7
+ bne _022150F4
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_022150F4:
+ cmp r4, #9
+ bne _02215106
+ cmp r0, #2
+ bne _02215106
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_02215106:
+ cmp r4, #0xa
+ bne _02215118
+ cmp r0, #3
+ bne _02215118
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_02215118:
+ cmp r4, #0xb
+ bne _0221512A
+ cmp r0, #4
+ bne _0221512A
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_0221512A:
+ cmp r4, #0xf
+ bne _0221513C
+ cmp r0, #8
+ bne _0221513C
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221517E
+_0221513C:
+ cmp r4, #0x10
+ bne _02215150
+ cmp r0, #1
+ bne _02215150
+ mov r0, #0x3b
+ mov r1, #0x16
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02215150:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r5, #0
+ mov r1, #0x10
+ bl MOD56_0221617C
+ bl FUN_020331E8
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_0221517E:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #7
+ mov r2, #0
+ bl MOD56_02215EA4
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0202DB14
+ mov r0, #0x3b
+ mov r1, #0x30
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ mov r1, #0x1e
+ add r0, #0x14
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022150A4
+
+ thumb_func_start MOD56_022151B4
+MOD56_022151B4: ; 0x022151B4
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0203300C
+ cmp r0, #3
+ blt _022151E0
+ mov r1, #0xf6
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD56_022160E4
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ b _022151F4
+_022151E0:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _022151F0
+ add r0, r4, #0
+ bl MOD56_02213030
+ b _022151F4
+_022151F0:
+ mov r0, #0
+ pop {r4, pc}
+_022151F4:
+ mov r0, #0xfb
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD56_022151B4
+
+ thumb_func_start MOD56_02215200
+MOD56_02215200: ; 0x02215200
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0203300C
+ cmp r0, #4
+ bge _02215220
+ bl FUN_02033128
+ cmp r0, #0
+ bne _02215220
+ mov r0, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ bne _0221525A
+_02215220:
+ mov r1, #0xfb
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ beq _02215236
+ add r0, r5, #0
+ mov r1, #0x40
+ mov r2, #0
+ bl MOD56_02215EA4
+ b _0221524A
+_02215236:
+ sub r1, #0x14
+ ldr r1, [r5, r1]
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xe
+ mov r2, #0
+ bl MOD56_02215EA4
+_0221524A:
+ mov r0, #0xfb
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x1b
+ sub r0, #0x3c
+ str r1, [r5, r0]
+ b _022152A2
+_0221525A:
+ add r0, r5, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _022152A2
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ bne _02215292
+ mov r0, #0xd
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _022152A2
+ bl FUN_0203168C
+ mov r0, #0xe
+ bl FUN_02031588
+ mov r0, #0xfb
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x31
+ sub r0, #0x3c
+ str r1, [r5, r0]
+ b _022152A2
+_02215292:
+ sub r1, r1, #1
+ str r1, [r5, r0]
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _022152A2
+ mov r0, #0xd
+ bl FUN_02031588
+_022152A2:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02215200
+
+ thumb_func_start MOD56_022152A8
+MOD56_022152A8: ; 0x022152A8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _022152DA
+ mov r0, #0xe
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _022152DA
+ ldr r0, [r5, #4]
+ ldrb r1, [r0, #0x1b]
+ add r0, sp, #0
+ strh r1, [r0]
+ bl FUN_02031190
+ add r1, sp, #0
+ bl FUN_020316AC
+ mov r0, #0x3b
+ mov r1, #0x32
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_022152DA:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022152A8
+
+ thumb_func_start MOD56_022152E0
+MOD56_022152E0: ; 0x022152E0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ bl FUN_02031190
+ mov r1, #1
+ sub r0, r1, r0
+ bl FUN_020316E0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _0221534A
+ cmp r4, #0
+ beq _0221534A
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ bl MOD56_02211F10
+ lsl r0, r0, #0x10
+ ldrh r1, [r4]
+ lsr r0, r0, #0x10
+ cmp r1, r0
+ beq _0221531C
+ ldr r0, [r5, #4]
+ ldrb r0, [r0, #0x1b]
+ cmp r1, r0
+ bne _0221532C
+_0221531C:
+ mov r0, #0xf
+ bl FUN_02031588
+ mov r0, #0x3b
+ mov r1, #0x33
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _0221534A
+_0221532C:
+ bl MOD04_021D853C
+ add r1, r0, #0
+ add r0, r5, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xc
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1b
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_0221534A:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022152E0
+
+ thumb_func_start MOD56_02215350
+MOD56_02215350: ; 0x02215350
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _02215382
+ mov r0, #0xf
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _02215382
+ bl FUN_0202DBE0
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_020334E8
+ mov r0, #0x12
+ bl FUN_02031588
+ mov r0, #0x3b
+ mov r1, #0x34
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215382:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02215350
+
+ thumb_func_start MOD56_02215388
+MOD56_02215388: ; 0x02215388
+ push {r4, r5, lr}
+ sub sp, #0x2c
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD56_022151B4
+ cmp r0, #0
+ bne _02215476
+ mov r0, #0x12
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _02215476
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, sp, #0xc
+ mov r2, #0x36
+ bl FUN_020339B4
+ add r0, r4, #0
+ bl MOD56_02216120
+ bl MOD04_021D853C
+ mov r1, #0x24
+ ldr r2, [r4, #4]
+ mul r1, r0
+ add r0, r2, r1
+ add r0, #0x3f
+ ldrb r1, [r0]
+ cmp r1, #0xf
+ beq _022153CE
+ cmp r1, #8
+ bne _022153DA
+_022153CE:
+ mov r0, #0xed
+ mov r2, #7
+ lsl r0, r0, #2
+ mov r1, #8
+ str r2, [r4, r0]
+ b _02215450
+_022153DA:
+ cmp r1, #9
+ beq _022153E2
+ cmp r1, #2
+ bne _022153EE
+_022153E2:
+ mov r0, #0xed
+ mov r2, #1
+ lsl r0, r0, #2
+ mov r1, #2
+ str r2, [r4, r0]
+ b _02215450
+_022153EE:
+ cmp r1, #0xa
+ beq _022153F6
+ cmp r1, #3
+ bne _02215402
+_022153F6:
+ mov r0, #0xed
+ mov r2, #2
+ lsl r0, r0, #2
+ mov r1, #3
+ str r2, [r4, r0]
+ b _02215450
+_02215402:
+ cmp r1, #0xb
+ beq _0221540A
+ cmp r1, #4
+ bne _02215416
+_0221540A:
+ mov r0, #0xed
+ mov r2, #3
+ lsl r0, r0, #2
+ mov r1, #4
+ str r2, [r4, r0]
+ b _02215450
+_02215416:
+ cmp r1, #0xc
+ beq _0221541E
+ cmp r1, #5
+ bne _0221542A
+_0221541E:
+ mov r0, #0xed
+ mov r2, #4
+ lsl r0, r0, #2
+ mov r1, #5
+ str r2, [r4, r0]
+ b _02215450
+_0221542A:
+ cmp r1, #0xd
+ beq _02215432
+ cmp r1, #6
+ bne _0221543E
+_02215432:
+ mov r0, #0xed
+ mov r2, #5
+ lsl r0, r0, #2
+ mov r1, #6
+ str r2, [r4, r0]
+ b _02215450
+_0221543E:
+ cmp r1, #0xe
+ beq _02215446
+ cmp r1, #7
+ bne _02215450
+_02215446:
+ mov r0, #0xed
+ mov r2, #6
+ lsl r0, r0, #2
+ mov r1, #7
+ str r2, [r4, r0]
+_02215450:
+ add r0, r4, #0
+ bl MOD56_0221617C
+ mov r0, #1
+ bl FUN_02031400
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x36
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r5, #2
+_02215476:
+ add r0, r5, #0
+ add sp, #0x2c
+ pop {r4, r5, pc}
+ thumb_func_end MOD56_02215388
+
+ thumb_func_start MOD56_0221547C
+MOD56_0221547C: ; 0x0221547C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r0, #0xc0
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r2, r5, #0
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #5
+ bl FUN_020068C8
+ mov r0, #0xf3
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ mov r1, #0x12
+ sub r0, #0x1c
+ str r1, [r5, r0]
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_0221547C
+
+ thumb_func_start MOD56_022154BC
+MOD56_022154BC: ; 0x022154BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r0, #0xc0
+ add r7, r1, #0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x36
+ add r2, r5, #0
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #6
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x33
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02215532
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02215532:
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #0xe
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xe7
+ lsl r1, r1, #2
+ mov r2, #3
+ ldr r0, [r0]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r1, sp, #0x14
+ bl FUN_0200143C
+ add r0, sp, #0x14
+ ldrh r0, [r0]
+ add r0, r5, r0
+ ldrb r0, [r0, #0xc]
+ sub r0, r0, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x20
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ add r2, #0x61
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ mov r1, #0x29
+ mov r2, #0
+ bl MOD56_02215EA4
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x21
+ bl FUN_0200A8E0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r0, #0x36
+ bl FUN_02023928
+ add r6, r0, #0
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl FUN_020283E8
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_0202395C
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r6, #0
+ bl FUN_0200ABC0
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x4e
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0x16
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xce
+ sub r3, r1, r0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x22
+ bl FUN_0200A8E0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x23
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r0, #0x30
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r3, #0x1e
+ bl FUN_0201BDE0
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #2
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x24
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0x16
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ mov r0, #0x30
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r3, #0xce
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ sub r3, r3, r6
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x25
+ bl FUN_0200A8E0
+ mov r0, #0x40
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #3
+ bl FUN_0202822C
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r6, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ cmp r6, #1
+ bne _02215810
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x26
+ bl FUN_0200A8E0
+ b _02215822
+_02215810:
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x4f
+ bl FUN_0200A8E0
+_02215822:
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0x16
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r6, r0, #0
+ mov r0, #0x40
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r3, #0xce
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ sub r3, r3, r6
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x27
+ bl FUN_0200A8E0
+ mov r0, #0x50
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #6
+ bl FUN_0202822C
+ add r2, r0, #0
+ beq _0221594C
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ mov r1, #2
+ ldr r0, [r0]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #4
+ bl FUN_0202822C
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #5
+ bl FUN_0202822C
+ add r2, r0, #0
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200B764
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x28
+ bl FUN_0200A8E0
+ mov r2, #0x16
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, #8
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0x16
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0x60
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215964 ; =0x00010200
+ mov r4, #0xce
+ str r0, [sp, #8]
+ mov r1, #0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ str r1, [sp, #0xc]
+ add r2, #0x61
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ sub r3, r4, r3
+ bl FUN_0201BDE0
+_0221594C:
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ mov r0, #0x3b
+ mov r1, #0x36
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r7, #0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215964: .word 0x00010200
+ thumb_func_end MOD56_022154BC
+
+ thumb_func_start MOD56_02215968
+MOD56_02215968: ; 0x02215968
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215984
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215984:
+ add r0, r5, #0
+ bl MOD56_02213BF4
+ cmp r0, #0
+ beq _02215996
+ mov r0, #0x3b
+ mov r1, #0x37
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215996:
+ ldr r0, _022159AC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _022159A8
+ mov r0, #0x3b
+ mov r1, #0x37
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_022159A8:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022159AC: .word 0x021C48B8
+ thumb_func_end MOD56_02215968
+
+ thumb_func_start MOD56_022159B0
+MOD56_022159B0: ; 0x022159B0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r4, r1, #0
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0xe7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_02018744
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ mov r1, #3
+ bl FUN_02018744
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r2, r5, #0
+ str r3, [sp, #8]
+ mov r0, #0x36
+ str r0, [sp, #0xc]
+ add r2, #0xc0
+ ldr r2, [r2]
+ mov r0, #0x5c
+ mov r1, #5
+ bl FUN_020068C8
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ mov r2, #0x16
+ add r0, #0xcc
+ lsl r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ mov r1, #0x12
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ ldr r0, _02215A88 ; =0x000F0E00
+ add r2, #0x61
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BDE0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add r0, r5, #0
+ bl MOD56_02212EFC
+ add r0, r5, #0
+ bl MOD56_02213A40
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD56_022138A4
+ ldr r1, [r5, #4]
+ add r0, r5, #0
+ ldrb r1, [r1, #0x1b]
+ bl MOD56_0221617C
+ mov r0, #0x33
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ sub r1, #0x14
+ str r1, [r5, #8]
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02215A88: .word 0x000F0E00
+ thumb_func_end MOD56_022159B0
+
+ thumb_func_start MOD56_02215A8C
+MOD56_02215A8C: ; 0x02215A8C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02215AC6
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02215ACC ; =0x02216308
+ ldr r2, _02215AD0 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x39
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215AC6:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02215ACC: .word 0x02216308
+_02215AD0: .word 0x000001D9
+ thumb_func_end MOD56_02215A8C
+
+ thumb_func_start MOD56_02215AD4
+MOD56_02215AD4: ; 0x02215AD4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ add r4, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215AFE
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02215AFE:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _02215B0A
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+_02215B0A:
+ cmp r4, #0
+ bne _02215B26
+ add r0, r5, #0
+ mov r1, #0x19
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x3a
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ mov r1, #1
+ add r0, #0x14
+ b _02215B32
+_02215B26:
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+_02215B32:
+ str r1, [r5, r0]
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD56_02215AD4
+
+ thumb_func_start MOD56_02215B38
+MOD56_02215B38: ; 0x02215B38
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215B54
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215B54:
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ cmp r1, #1
+ bne _02215B66
+ mov r1, #0
+ str r1, [r5, r0]
+ bl FUN_020331C4
+_02215B66:
+ bl FUN_02031810
+ cmp r0, #0
+ bne _02215B8C
+ ldr r0, [r5]
+ bl FUN_0202858C
+ add r0, r5, #0
+ mov r1, #0x1a
+ mov r2, #1
+ bl MOD56_02215EA4
+ mov r1, #0x3b
+ lsl r0, r1, #4
+ str r1, [r5, r0]
+ mov r0, #0xf1
+ mov r1, #0x1e
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02215B8C:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_02215B38
+
+ thumb_func_start MOD56_02215B90
+MOD56_02215B90: ; 0x02215B90
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215BAC
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215BAC:
+ mov r1, #0xf1
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ sub r0, r0, #1
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _02215BD0
+ add r0, r1, #0
+ mov r2, #8
+ sub r0, #0x10
+ str r2, [r5, r0]
+ mov r0, #0x22
+ sub r1, #0x14
+ str r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD56_02216120
+_02215BD0:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD56_02215B90
+
+ thumb_func_start MOD56_02215BD4
+MOD56_02215BD4: ; 0x02215BD4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r1, #0
+ add r1, r0, #0
+ bl FUN_020334E8
+ mov r0, #0x10
+ bl FUN_020315D8
+ cmp r0, #0
+ bne _02215BF0
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215BF0:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02215C24
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02215C28 ; =0x02216308
+ ldr r2, _02215C2C ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x3d
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215C24:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02215C28: .word 0x02216308
+_02215C2C: .word 0x000001D9
+ thumb_func_end MOD56_02215BD4
+
+ thumb_func_start MOD56_02215C30
+MOD56_02215C30: ; 0x02215C30
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215C4C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215C4C:
+ bl FUN_02033138
+ cmp r0, #0
+ bne _02215C64
+ bl FUN_02033128
+ cmp r0, #0
+ bne _02215C64
+ bl FUN_0203300C
+ cmp r0, #3
+ blt _02215C84
+_02215C64:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ add r0, r5, #0
+ mov r1, #0x40
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02215D18
+_02215C84:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _02215CA0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ add r0, r5, #0
+ bl MOD56_02213030
+ b _02215D18
+_02215CA0:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02215CB8
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+_02215CB8:
+ cmp r0, #0
+ bne _02215CF0
+ add r0, r5, #0
+ mov r1, #0x48
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02215D1C ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r1, #0xfb
+ mov r0, #1
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ mov r2, #0x30
+ sub r0, #0x3c
+ str r2, [r5, r0]
+ mov r0, #0x1e
+ sub r1, #0x28
+ str r0, [r5, r1]
+ b _02215D08
+_02215CF0:
+ add r0, r5, #0
+ bl MOD56_02216120
+ bl FUN_0203323C
+ mov r0, #0xf1
+ mov r1, #0x14
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0x40
+ sub r0, #0x14
+ str r1, [r5, r0]
+_02215D08:
+ bl FUN_020334DC
+ add r1, r0, #0
+ str r0, [r5, #4]
+ add r1, #0x22
+ ldrb r1, [r1]
+ add r0, #0x21
+ strb r1, [r0]
+_02215D18:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02215D1C: .word 0x000001E2
+ thumb_func_end MOD56_02215C30
+
+ thumb_func_start MOD56_02215D20
+MOD56_02215D20: ; 0x02215D20
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _02215D5A
+ mov r0, #0x36
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xc0
+ ldr r0, [r0]
+ ldr r1, _02215D60 ; =0x02216308
+ ldr r2, _02215D64 ; =0x000001D9
+ mov r3, #0xb
+ bl FUN_02002198
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x3b
+ mov r1, #0x3f
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+_02215D5A:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_02215D60: .word 0x02216308
+_02215D64: .word 0x000001D9
+ thumb_func_end MOD56_02215D20
+
+ thumb_func_start MOD56_02215D68
+MOD56_02215D68: ; 0x02215D68
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0203300C
+ cmp r0, #3
+ blt _02215D96
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ add r0, r5, #0
+ mov r1, #0x40
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0x3b
+ mov r1, #0x1c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ b _02215E6A
+_02215D96:
+ bl FUN_02033250
+ cmp r0, #0
+ beq _02215DB2
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021EC
+ add r0, r5, #0
+ bl MOD56_02213030
+ b _02215E6A
+_02215DB2:
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_020021AC
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _02215DCA
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02215DCA:
+ cmp r0, #0
+ bne _02215E58
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldrh r0, [r5, r0]
+ bl MOD56_02211F10
+ add r6, r0, #0
+ cmp r6, #0x11
+ beq _02215E58
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ ldrh r0, [r5, r0]
+ sub r0, r0, #1
+ bl MOD04_021D8480
+ cmp r0, #6
+ bne _02215E58
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ ldrh r0, [r5, r0]
+ sub r0, r0, #1
+ bl FUN_02032FDC
+ cmp r0, #0
+ beq _02215E58
+ mov r0, #0
+ bl FUN_02031400
+ add r0, r5, #0
+ bl MOD56_022161DC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD56_0221617C
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ ldrh r1, [r5, r1]
+ add r0, r5, #0
+ sub r1, r1, #1
+ bl MOD56_022160E4
+ add r0, r5, #0
+ mov r1, #0xd
+ mov r2, #0
+ bl MOD56_02215EA4
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r1, _02215E70 ; =0x000001E2
+ add r0, r5, r0
+ bl FUN_0200D858
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ cmp r6, #1
+ beq _02215E4C
+ mov r0, #0x3b
+ mov r1, #0x2c
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02215E4C:
+ mov r0, #0x3b
+ mov r1, #0x15
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02215E58:
+ add r0, r5, #0
+ bl MOD56_02216120
+ mov r0, #0x3b
+ mov r1, #0x13
+ lsl r0, r0, #4
+ str r1, [r5, r0]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_02215E6A:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02215E70: .word 0x000001E2
+ thumb_func_end MOD56_02215D68
+
+ thumb_func_start MOD56_02215E74
+MOD56_02215E74: ; 0x02215E74
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ bl FUN_02031810
+ cmp r0, #0
+ bne _02215E9C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x36
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r4, #2
+_02215E9C:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02215E74
+
+ thumb_func_start MOD56_02215EA4
+MOD56_02215EA4: ; 0x02215EA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl LoadPlayerDataAddress
+ bl FUN_02024FF4
+ add r7, r0, #0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02215EE0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02215EE0:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02215F04
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02215F04:
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #8
+ beq _02215F30
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02215F30
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_02215F30:
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _02215FEC ; =0x0000012D
+ mov r1, #0xcf
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ lsl r1, r1, #2
+ mov r2, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ add r3, r2, #0
+ bl FUN_02019064
+ cmp r6, #0
+ beq _02215F70
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xd0
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ b _02215F82
+_02215F70:
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xcc
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+_02215F82:
+ mov r2, #0x57
+ add r0, r5, #0
+ lsl r2, r2, #2
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r2, _02215FF0 ; =0x000001E2
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ mov r3, #0
+ str r3, [sp]
+ str r7, [sp, #4]
+ mov r2, #0x57
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ str r3, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02215FEC: .word 0x0000012D
+_02215FF0: .word 0x000001E2
+ thumb_func_end MOD56_02215EA4
+
+ thumb_func_start MOD56_02215FF4
+MOD56_02215FF4: ; 0x02215FF4
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD56_02216274
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02216024
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02216024:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02216048
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019178
+_02216048:
+ mov r3, #4
+ str r3, [sp]
+ mov r0, #0x17
+ str r0, [sp, #4]
+ mov r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ mov r0, #0x69
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0xc0
+ mov r1, #0xdb
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ add r1, r5, r1
+ mov r2, #2
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r2, #0x56
+ add r0, #0xd0
+ lsl r2, r2, #2
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ add r1, r4, #0
+ bl FUN_0200A8E0
+ mov r2, #0x57
+ add r0, r5, #0
+ lsl r2, r2, #2
+ add r0, #0xc8
+ ldr r1, [r5, r2]
+ sub r2, r2, #4
+ ldr r0, [r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ ldr r2, _022160E0 ; =0x000001D9
+ add r0, r5, r0
+ mov r1, #1
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ mov r3, #0
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ str r3, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ add r2, #0x5d
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0xdb
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_022160E0: .word 0x000001D9
+ thumb_func_end MOD56_02215FF4
+
+ thumb_func_start MOD56_022160E4
+MOD56_022160E4: ; 0x022160E4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r6, r1, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _0221611C
+ mov r0, #0x36
+ bl FUN_02023928
+ add r4, r0, #0
+ ldr r0, [r5]
+ add r1, r6, #0
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_0202395C
+ add r5, #0xc8
+ ldr r0, [r5]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200ABC0
+ add r0, r4, #0
+ bl FUN_02016A18
+_0221611C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022160E4
+
+ thumb_func_start MOD56_02216120
+MOD56_02216120: ; 0x02216120
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD56_02216274
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ beq _02216154
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _02216154
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_02216154:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _02216178
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_02216178:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02216120
+
+ thumb_func_start MOD56_0221617C
+MOD56_0221617C: ; 0x0221617C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ ldrb r0, [r1, #0x1b]
+ cmp r0, r4
+ beq _022161C8
+ add r0, r4, #0
+ strb r4, [r1, #0x1b]
+ bl MOD56_02211EA4
+ cmp r0, #0
+ bne _022161C8
+ cmp r4, #8
+ beq _022161C8
+ cmp r4, #1
+ bne _022161A8
+ mov r0, #0
+ mov r1, #0x1e
+ bl FUN_020053CC
+ b _022161C8
+_022161A8:
+ cmp r4, #0x10
+ bne _022161C8
+ ldr r0, _022161D8 ; =0x00000497
+ mov r1, #0x5a
+ bl FUN_0200488C
+ mov r0, #7
+ mov r1, #0x12
+ mov r2, #0
+ bl FUN_02004828
+ mov r0, #0x7f
+ mov r1, #0x1e
+ mov r2, #1
+ bl FUN_0200538C
+_022161C8:
+ ldr r0, [r5, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ add r0, r5, #0
+ bl MOD56_0221341C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022161D8: .word 0x00000497
+ thumb_func_end MOD56_0221617C
+
+ thumb_func_start MOD56_022161DC
+MOD56_022161DC: ; 0x022161DC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4, #4]
+ add r0, r2, #0
+ add r0, #0x21
+ ldrb r1, [r0]
+ mov r0, #1
+ add r2, #0x21
+ sub r0, r0, r1
+ strb r0, [r2]
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ bl MOD04_021D8678
+ ldr r0, [r4, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_022161DC
+
+ thumb_func_start MOD56_0221620C
+MOD56_0221620C: ; 0x0221620C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4, #4]
+ add r0, r2, #0
+ add r0, #0x22
+ ldrb r1, [r0]
+ mov r0, #1
+ add r2, #0x22
+ sub r0, r0, r1
+ strb r0, [r2]
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x22
+ ldrb r0, [r0]
+ add r1, #0x21
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ bl MOD04_021D8678
+ ldr r0, [r4, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ ldr r0, [r4, #4]
+ add r0, #0x22
+ ldrb r0, [r0]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_0221620C
+
+ thumb_func_start MOD56_02216248
+MOD56_02216248: ; 0x02216248
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ add r0, r1, #0
+ add r0, #0x22
+ ldrb r0, [r0]
+ add r1, #0x21
+ strb r0, [r1]
+ ldr r0, [r4, #4]
+ add r0, #0x21
+ ldrb r0, [r0]
+ bl MOD04_021D8678
+ ldr r0, [r4, #4]
+ mov r1, #0x24
+ bl MOD04_021D8478
+ ldr r0, [r4, #4]
+ add r0, #0x22
+ ldrb r0, [r0]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02216248
+
+ thumb_func_start MOD56_02216274
+MOD56_02216274: ; 0x02216274
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _022162DC
+ bl FUN_0200DC24
+ mov r0, #6
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ sub r0, #8
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ beq _022162B8
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _022162B8
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD7C
+ mov r0, #0x5e
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_022162B8:
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019048
+ cmp r0, #0
+ beq _022162DC
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+_022162DC:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD56_02216274
+
+ .section .rodata
+ ; 0x022162E0
+ .incbin "baserom.nds", 0x2A5E80, 0x19C
+
+ .section .data
+ ; 0x02216480
+ .incbin "baserom.nds", 0x2A6020, 0x180
diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s
new file mode 100644
index 00000000..d5dae418
--- /dev/null
+++ b/arm9/modules/57/asm/module_57.s
@@ -0,0 +1,4303 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD57_021D74E0
+MOD57_021D74E0: ; 0x021D74E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, 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, _021D76E8 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D76EC ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r2, #0xa
+ mov r0, #3
+ mov r1, #0x19
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ ldr r1, _021D76F0 ; =0x00003320
+ add r0, r5, #0
+ mov r2, #0x19
+ bl FUN_02006268
+ ldr r2, _021D76F0 ; =0x00003320
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r1, r4, #0
+ add r1, #0xb4
+ str r0, [r1]
+ mov r0, #0x19
+ bl FUN_02016B94
+ str r0, [r4]
+ add r0, r4, #0
+ bl MOD57_021D79AC
+ bl MOD57_021D7A14
+ ldr r0, [r4]
+ bl MOD57_021D7B94
+ add r0, r4, #0
+ bl MOD57_021D7CA4
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ mov r1, #0
+ mov r0, #0x38
+ add r2, r1, #0
+ bl FUN_0200433C
+ ldr r0, _021D76F4 ; =0x000032F0
+ add r0, r4, r0
+ bl MOD57_021D95A8
+ ldr r0, _021D76F8 ; =0x00000695
+ bl FUN_020054C8
+ ldr r0, _021D76FC ; =0x000030E4
+ add r0, r4, r0
+ bl MOD57_021D9184
+ mov r0, #0
+ add r1, r0, #0
+ add r2, sp, #0xc
+ add r5, r0, #0
+ mov r6, #1
+_021D7598:
+ add r3, r4, #0
+ add r3, #0xb4
+ ldr r3, [r3]
+ add r3, r3, r1
+ ldr r3, [r3, #0x48]
+ lsl r3, r3, #0x1f
+ asr r3, r3, #0x1f
+ beq _021D75AC
+ strb r6, [r2]
+ b _021D75AE
+_021D75AC:
+ strb r5, [r2]
+_021D75AE:
+ add r0, r0, #1
+ add r1, r1, #4
+ add r2, r2, #1
+ cmp r0, #8
+ blt _021D7598
+ ldr r0, _021D76FC ; =0x000030E4
+ add r1, sp, #0xc
+ add r0, r4, r0
+ bl MOD57_021D92F4
+ ldr r0, [r4]
+ add r1, r4, #4
+ bl MOD57_021D899C
+ mov r5, #0
+ mov r6, #1
+_021D75CE:
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ ldrb r0, [r0, #2]
+ asr r0, r5
+ tst r0, r6
+ beq _021D75E4
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD57_021D8428
+_021D75E4:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #8
+ blo _021D75CE
+ ldr r0, [r4]
+ mov r1, #3
+ bl FUN_02017CD0
+ add r1, r4, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ add r0, r4, #4
+ bl MOD57_021D89F0
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ beq _021D761E
+ ldr r2, _021D7700 ; =0x0000330C
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0x54
+ mov r1, #1
+ bl MOD57_021D9144
+_021D761E:
+ mov r1, #0xc3
+ mov r5, #0
+ lsl r1, r1, #6
+ str r5, [r4, r1]
+ ldr r0, _021D7704 ; =0x00003318
+ sub r2, r5, #1
+ strb r5, [r4, r0]
+ add r1, #0x14
+ str r2, [r4, r1]
+ add r1, r0, #0
+ sub r1, #0x2c
+ str r5, [r4, r1]
+ add r0, r0, #5
+ ldr r7, _021D76FC ; =0x000030E4
+ strb r5, [r4, r0]
+_021D763C:
+ ldr r0, _021D7708 ; =0x00003310
+ add r2, r4, r5
+ mov r1, #0
+ strb r1, [r2, r0]
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r1, [r0]
+ lsl r0, r5, #2
+ add r1, #0x48
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0x1f
+ asr r1, r1, #0x1f
+ beq _021D76A8
+ asr r0, r0, #1
+ bl MOD57_021D870C
+ add r6, r0, #0
+ cmp r6, #4
+ bhi _021D7680
+ bne _021D7670
+ add r0, r4, r7
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD57_021D951C
+ b _021D7680
+_021D7670:
+ mov r2, #3
+ sub r2, r2, r6
+ lsl r2, r2, #0x18
+ add r0, r4, r7
+ add r1, r5, #0
+ lsr r2, r2, #0x18
+ bl MOD57_021D951C
+_021D7680:
+ cmp r6, #3
+ bne _021D7694
+ lsl r0, r5, #2
+ add r1, r4, r0
+ ldr r0, _021D770C ; =0x00003260
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _021D76A8
+_021D7694:
+ cmp r6, #4
+ bne _021D76A8
+ lsl r0, r5, #2
+ add r1, r4, r0
+ mov r0, #0xca
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D76A8:
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #8
+ blo _021D763C
+ bl MOD57_021D8588
+ ldr r0, _021D7710 ; =MOD57_021D848C
+ mov r1, #0
+ bl FUN_02015F10
+ bl FUN_02033F20
+ mov r0, #1
+ mov r1, #0x2a
+ bl FUN_020051EC
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x19
+ mov r1, #3
+ str r0, [sp, #8]
+ mov r0, #2
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D76E8: .word 0xFFFFE0FF
+_021D76EC: .word 0x04001000
+_021D76F0: .word 0x00003320
+_021D76F4: .word 0x000032F0
+_021D76F8: .word 0x00000695
+_021D76FC: .word 0x000030E4
+_021D7700: .word 0x0000330C
+_021D7704: .word 0x00003318
+_021D7708: .word 0x00003310
+_021D770C: .word 0x00003260
+_021D7710: .word MOD57_021D848C
+ thumb_func_end MOD57_021D74E0
+
+ thumb_func_start MOD57_021D7714
+MOD57_021D7714: ; 0x021D7714
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #4
+ bhi _021D7744
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7732: ; jump table
+ .short _021D773C - _021D7732 - 2 ; case 0
+ .short _021D774C - _021D7732 - 2 ; case 1
+ .short _021D786A - _021D7732 - 2 ; case 2
+ .short _021D7878 - _021D7732 - 2 ; case 3
+ .short _021D7886 - _021D7732 - 2 ; case 4
+_021D773C:
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D7746
+_021D7744:
+ b _021D790C
+_021D7746:
+ mov r0, #1
+ str r0, [r5]
+ b _021D790C
+_021D774C:
+ bl MOD57_021D81F8
+ add r6, r0, #0
+ cmp r6, #1
+ bne _021D77CA
+ ldr r0, _021D7920 ; =0x000030D4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D779E
+ ldr r2, _021D7924 ; =0x000032EC
+ mov r1, #1
+ add r0, r2, #0
+ str r1, [r4, r2]
+ add r0, #0x31
+ sub r2, #0x4c
+ strb r1, [r4, r0]
+ ldr r0, [r4, r2]
+ bl FUN_020200A0
+ ldr r0, _021D7928 ; =0x000032A0
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200BC
+ ldr r0, _021D7928 ; =0x000032A0
+ mov r1, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_02020130
+ ldr r0, _021D792C ; =0x0000331A
+ mov r2, #0
+ strb r2, [r4, r0]
+ add r1, r0, #2
+ strb r2, [r4, r1]
+ add r0, r0, #1
+ strb r2, [r4, r0]
+ ldr r0, _021D7930 ; =0x000030D8
+ str r2, [r4, r0]
+ mov r0, #4
+ str r0, [r5]
+ b _021D7856
+_021D779E:
+ sub r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r1, [r0]
+ lsl r0, r5, #2
+ add r1, #0x48
+ ldr r0, [r1, r0]
+ lsl r1, r0, #0x1f
+ asr r1, r1, #0x1f
+ beq _021D7856
+ asr r0, r0, #1
+ bl MOD57_021D870C
+ add r2, r0, #0
+ ldr r0, _021D7934 ; =0x000032F0
+ add r1, r5, #0
+ add r0, r4, r0
+ bl MOD57_021D95BC
+ b _021D7856
+_021D77CA:
+ cmp r6, #2
+ ldr r1, _021D7924 ; =0x000032EC
+ bne _021D77F0
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ beq _021D77E8
+ ldr r0, _021D7920 ; =0x000030D4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D77E8
+ mov r0, #0
+ str r0, [r4, r1]
+ mov r0, #2
+ add r1, #0x31
+ strb r0, [r4, r1]
+_021D77E8:
+ add r0, r4, #0
+ bl MOD57_021D82BC
+ b _021D7856
+_021D77F0:
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ beq _021D780A
+ add r0, r1, #0
+ add r0, #0x31
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021D780A
+ mov r0, #0
+ str r0, [r4, r1]
+ mov r0, #2
+ add r1, #0x31
+ strb r0, [r4, r1]
+_021D780A:
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ beq _021D7822
+ mov r0, #0x33
+ lsl r0, r0, #8
+ add r0, r4, r0
+ bl MOD57_021D874C
+_021D7822:
+ cmp r6, #3
+ bne _021D7832
+ ldr r0, _021D792C ; =0x0000331A
+ mov r1, #0
+ strb r1, [r4, r0]
+ mov r0, #3
+ str r0, [r5]
+ b _021D7856
+_021D7832:
+ cmp r6, #4
+ bne _021D7856
+ ldr r0, _021D7938 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r1, #0x19
+ str r1, [sp, #8]
+ mov r1, #4
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ mov r0, #2
+ str r0, [r5]
+_021D7856:
+ add r1, r4, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ add r0, r4, #0
+ ldrb r1, [r1, #4]
+ lsl r1, r1, #0x1e
+ lsr r1, r1, #0x1f
+ bl MOD57_021D88A4
+ b _021D790C
+_021D786A:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D790C
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7878:
+ bl MOD57_021D7F20
+ cmp r0, #0
+ beq _021D790C
+ mov r0, #1
+ str r0, [r5]
+ b _021D790C
+_021D7886:
+ ldr r1, _021D793C ; =0x0000331D
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021D78EA
+ bl MOD57_021D81F8
+ cmp r0, #1
+ bne _021D78B8
+ ldr r0, _021D7920 ; =0x000030D4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D78EA
+ ldr r1, _021D7924 ; =0x000032EC
+ mov r2, #1
+ add r0, r1, #0
+ str r2, [r4, r1]
+ add r0, #0x31
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0x30
+ strb r2, [r4, r0]
+ add r1, #0x2f
+ strb r2, [r4, r1]
+ b _021D78EA
+_021D78B8:
+ cmp r0, #2
+ bne _021D78D8
+ ldr r1, _021D7924 ; =0x000032EC
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ beq _021D78EA
+ ldr r0, _021D7920 ; =0x000030D4
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D78EA
+ mov r0, #0
+ str r0, [r4, r1]
+ mov r0, #2
+ add r1, #0x31
+ strb r0, [r4, r1]
+ b _021D78EA
+_021D78D8:
+ ldr r0, _021D7924 ; =0x000032EC
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D78EA
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r1, #2
+ add r0, #0x31
+ strb r1, [r4, r0]
+_021D78EA:
+ ldr r0, _021D7930 ; =0x000030D8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D78FC
+ add r0, r4, #0
+ bl MOD57_021D80F8
+ ldr r1, _021D7930 ; =0x000030D8
+ str r0, [r4, r1]
+_021D78FC:
+ ldr r0, _021D7930 ; =0x000030D8
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D790C
+ mov r1, #0
+ str r1, [r4, r0]
+ mov r0, #1
+ str r0, [r5]
+_021D790C:
+ add r0, r4, #0
+ bl MOD57_021D85F4
+ ldr r0, _021D7940 ; =0x000030E4
+ ldr r0, [r4, r0]
+ bl FUN_0201FDEC
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D7920: .word 0x000030D4
+_021D7924: .word 0x000032EC
+_021D7928: .word 0x000032A0
+_021D792C: .word 0x0000331A
+_021D7930: .word 0x000030D8
+_021D7934: .word 0x000032F0
+_021D7938: .word 0x000005DC
+_021D793C: .word 0x0000331D
+_021D7940: .word 0x000030E4
+ thumb_func_end MOD57_021D7714
+
+ thumb_func_start MOD57_021D7944
+MOD57_021D7944: ; 0x021D7944
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD57_021D8588
+ add r0, r4, #0
+ bl MOD57_021D79F4
+ ldr r0, _021D79A0 ; =0x000030E4
+ add r0, r4, r0
+ bl MOD57_021D94BC
+ ldr r0, _021D79A4 ; =0x000030B8
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021D79A8 ; =0x000032F8
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #4
+ bl MOD57_021D89D4
+ ldr r0, [r4]
+ bl MOD57_021D7EDC
+ bl FUN_0201CD04
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x19
+ bl FUN_020168D0
+ mov r0, #1
+ mov r1, #0x7f
+ bl FUN_020051EC
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D79A0: .word 0x000030E4
+_021D79A4: .word 0x000030B8
+_021D79A8: .word 0x000032F8
+ thumb_func_end MOD57_021D7944
+
+ thumb_func_start MOD57_021D79AC
+MOD57_021D79AC: ; 0x021D79AC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #4
+ mov r1, #0x19
+ bl FUN_020219F4
+ ldr r1, _021D79E8 ; =0x00003308
+ str r0, [r5, r1]
+ mov r0, #5
+ mov r1, #0x19
+ bl FUN_020219F4
+ ldr r1, _021D79EC ; =0x0000330C
+ ldr r2, _021D79F0 ; =0x0000022D
+ str r0, [r5, r1]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x19
+ bl FUN_0200A86C
+ ldr r2, _021D79EC ; =0x0000330C
+ add r4, r0, #0
+ ldr r2, [r5, r2]
+ mov r1, #0xb
+ bl FUN_0200A8E0
+ add r0, r4, #0
+ bl FUN_0200A8B8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D79E8: .word 0x00003308
+_021D79EC: .word 0x0000330C
+_021D79F0: .word 0x0000022D
+ thumb_func_end MOD57_021D79AC
+
+ thumb_func_start MOD57_021D79F4
+MOD57_021D79F4: ; 0x021D79F4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D7A0C ; =0x00003308
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _021D7A10 ; =0x0000330C
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ nop
+_021D7A0C: .word 0x00003308
+_021D7A10: .word 0x0000330C
+ thumb_func_end MOD57_021D79F4
+
+ thumb_func_start MOD57_021D7A14
+MOD57_021D7A14: ; 0x021D7A14
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7A30 ; =0x021D9800
+ add r3, sp, #0
+ mov r2, #5
+_021D7A1E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7A1E
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7A30: .word 0x021D9800
+ thumb_func_end MOD57_021D7A14
+
+ thumb_func_start MOD57_021D7A34
+MOD57_021D7A34: ; 0x021D7A34
+ push {r3, r4, r5, lr}
+ cmp r1, #0
+ beq _021D7AB6
+ cmp r0, #5
+ bhi _021D7AC4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7A4A: ; jump table
+ .short _021D7A56 - _021D7A4A - 2 ; case 0
+ .short _021D7A66 - _021D7A4A - 2 ; case 1
+ .short _021D7A76 - _021D7A4A - 2 ; case 2
+ .short _021D7A86 - _021D7A4A - 2 ; case 3
+ .short _021D7A96 - _021D7A4A - 2 ; case 4
+ .short _021D7AA6 - _021D7A4A - 2 ; case 5
+_021D7A56:
+ mov r0, #0x33
+ mov r1, #0
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+ b _021D7AC4
+_021D7A66:
+ mov r0, #0x33
+ mov r1, #1
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+ b _021D7AC4
+_021D7A76:
+ mov r0, #0x33
+ mov r1, #2
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+ b _021D7AC4
+_021D7A86:
+ mov r0, #0x33
+ mov r1, #3
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+ b _021D7AC4
+_021D7A96:
+ mov r0, #0x33
+ mov r1, #4
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+ b _021D7AC4
+_021D7AA6:
+ mov r0, #0x33
+ mov r1, #5
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+ b _021D7AC4
+_021D7AB6:
+ mov r0, #0x33
+ mov r1, #6
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+_021D7AC4:
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0, #0xc]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp]
+ mov r1, #0x20
+ ldr r5, [r0, #0xc]
+ mov r2, #0x60
+ add r0, r5, #0
+ add r0, #0x20
+ bl GXS_LoadBGPltt
+ mov r1, #0x1e
+ lsl r1, r1, #4
+ add r0, r5, r1
+ mov r2, #0x20
+ bl GXS_LoadBGPltt
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD57_021D7A34
+
+ thumb_func_start MOD57_021D7AF4
+MOD57_021D7AF4: ; 0x021D7AF4
+ push {r3, r4, lr}
+ sub sp, #4
+ cmp r0, #0xa
+ beq _021D7B02
+ cmp r0, #0xb
+ beq _021D7B12
+ b _021D7B22
+_021D7B02:
+ mov r0, #0x33
+ mov r1, #7
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+ b _021D7B30
+_021D7B12:
+ mov r0, #0x33
+ mov r1, #8
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+ b _021D7B30
+_021D7B22:
+ mov r0, #0x33
+ mov r1, #9
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r4, r0, #0
+_021D7B30:
+ ldr r0, [sp]
+ mov r1, #0x20
+ ldr r0, [r0, #0xc]
+ bl DC_FlushRange
+ ldr r0, [sp]
+ mov r1, #0
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ bl GX_LoadBGPltt
+ ldr r0, [sp]
+ mov r1, #0
+ ldr r0, [r0, #0xc]
+ mov r2, #0x20
+ bl GXS_LoadBGPltt
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD57_021D7AF4
+
+ thumb_func_start MOD57_021D7B5C
+MOD57_021D7B5C: ; 0x021D7B5C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x33
+ mov r1, #0x29
+ add r2, sp, #0
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r6, r0, #0
+ ldr r0, [sp]
+ lsl r4, r4, #5
+ ldr r5, [r0, #0xc]
+ mov r1, #0x20
+ add r0, r5, r4
+ bl DC_FlushRange
+ add r0, r5, r4
+ mov r1, #0x80
+ mov r2, #0x20
+ bl GXS_LoadBGPltt
+ add r0, r6, #0
+ bl FUN_02016A18
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D7B5C
+
+ thumb_func_start MOD57_021D7B94
+MOD57_021D7B94: ; 0x021D7B94
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r2, _021D7C84 ; =0x04000304
+ add r4, r0, #0
+ ldrh r1, [r2]
+ ldr r0, _021D7C88 ; =0xFFFF7FFF
+ ldr r5, _021D7C8C ; =0x021D9764
+ and r0, r1
+ strh r0, [r2]
+ add r3, sp, #0x8c
+ 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, _021D7C90 ; =0x021D9774
+ 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, #7
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #2
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_02018744
+ ldr r5, _021D7C94 ; =0x021D9790
+ 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, #5
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_02018744
+ ldr r5, _021D7C98 ; =0x021D97C8
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #6
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #1
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_02018744
+ ldr r5, _021D7C9C ; =0x021D97E4
+ 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, _021D7CA0 ; =0x021D97AC
+ 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, #1
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D7C84: .word 0x04000304
+_021D7C88: .word 0xFFFF7FFF
+_021D7C8C: .word 0x021D9764
+_021D7C90: .word 0x021D9774
+_021D7C94: .word 0x021D9790
+_021D7C98: .word 0x021D97C8
+_021D7C9C: .word 0x021D97E4
+_021D7CA0: .word 0x021D97AC
+ thumb_func_end MOD57_021D7B94
+
+ thumb_func_start MOD57_021D7CA4
+MOD57_021D7CA4: ; 0x021D7CA4
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x33
+ mov r1, #0
+ add r2, sp, #0x14
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r5, r0, #0
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ ldr r0, [r0, #0xc]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #0x14]
+ mov r2, #2
+ ldr r0, [r0, #0xc]
+ mov r1, #0
+ lsl r2, r2, #8
+ bl GXS_LoadBGPltt
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r1, [r0]
+ ldrb r0, [r1, #3]
+ ldrb r1, [r1, #4]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1f
+ bl MOD57_021D7A34
+ mov r0, #0x33
+ mov r1, #0xa
+ add r2, sp, #0x10
+ mov r3, #0x19
+ bl FUN_02006C08
+ add r5, r0, #0
+ ldr r0, [sp, #0x10]
+ mov r1, #2
+ ldr r0, [r0, #0xc]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #0x10]
+ mov r2, #2
+ ldr r0, [r0, #0xc]
+ mov r1, #0
+ lsl r2, r2, #8
+ bl GX_LoadBGPltt
+ add r0, r5, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ bl MOD57_021D7AF4
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ ldrb r1, [r0, #5]
+ cmp r1, #0xff
+ bne _021D7D9C
+ mov r2, #0
+ mov r0, #0x33
+ mov r1, #0x1b
+ mov r3, #0x19
+ str r2, [sp]
+ bl FUN_02006C98
+ ldr r1, _021D7ECC ; =0x000030B8
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _021D7D4C
+ bl ErrorHandling
+_021D7D4C:
+ ldr r1, _021D7ECC ; =0x000030B8
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ add r1, r4, r1
+ bl FUN_020B0030
+ cmp r0, #0
+ bne _021D7D60
+ bl ErrorHandling
+_021D7D60:
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ ldr r3, _021D7ED0 ; =0x000032FC
+ ldrb r0, [r0, #4]
+ lsl r0, r0, #0x1d
+ lsr r0, r0, #0x1f
+ bne _021D7D86
+ mov r0, #0x19
+ str r0, [sp]
+ mov r0, #0x33
+ mov r1, #0x23
+ mov r2, #0
+ add r3, r4, r3
+ bl FUN_02006BDC
+ ldr r1, _021D7ED4 ; =0x000032F8
+ str r0, [r4, r1]
+ b _021D7DF2
+_021D7D86:
+ mov r0, #0x19
+ str r0, [sp]
+ mov r0, #0x33
+ mov r1, #0x24
+ mov r2, #0
+ add r3, r4, r3
+ bl FUN_02006BDC
+ ldr r1, _021D7ED4 ; =0x000032F8
+ str r0, [r4, r1]
+ b _021D7DF2
+_021D7D9C:
+ lsl r3, r1, #2
+ ldr r1, _021D7ED8 ; =0x021D9888
+ mov r2, #0
+ ldr r1, [r1, r3]
+ mov r0, #0x33
+ mov r3, #0x19
+ str r2, [sp]
+ bl FUN_02006C98
+ ldr r1, _021D7ECC ; =0x000030B8
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _021D7DBC
+ bl ErrorHandling
+_021D7DBC:
+ ldr r1, _021D7ECC ; =0x000030B8
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ add r1, r4, r1
+ bl FUN_020B0030
+ cmp r0, #0
+ bne _021D7DD0
+ bl ErrorHandling
+_021D7DD0:
+ ldr r3, _021D7ED0 ; =0x000032FC
+ mov r0, #0x19
+ str r0, [sp]
+ mov r0, #0x33
+ mov r1, #0x2a
+ mov r2, #0
+ add r3, r4, r3
+ bl FUN_02006BDC
+ ldr r1, _021D7ED4 ; =0x000032F8
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ ldrb r0, [r0, #5]
+ bl MOD57_021D7B5C
+_021D7DF2:
+ add r0, r4, #0
+ bl MOD57_021D8690
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x19
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r1, #0x17
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x19
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r1, #0x1e
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x19
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r1, #0x18
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x19
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r1, #0x20
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #0x19
+ str r1, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x19
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r1, #0x21
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x19
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r1, #0x1a
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x19
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r1, #0x22
+ mov r3, #3
+ bl FUN_020068C8
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ add r4, #0xb8
+ add r0, #0x68
+ add r1, r4, #0
+ bl MOD57_021D87DC
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021D7ECC: .word 0x000030B8
+_021D7ED0: .word 0x000032FC
+_021D7ED4: .word 0x000032F8
+_021D7ED8: .word 0x021D9888
+ thumb_func_end MOD57_021D7CA4
+
+ thumb_func_start MOD57_021D7EDC
+MOD57_021D7EDC: ; 0x021D7EDC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x1f
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x13
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD57_021D7EDC
+
+ thumb_func_start MOD57_021D7F20
+MOD57_021D7F20: ; 0x021D7F20
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ ldr r2, _021D80DC ; =0x0000331A
+ add r4, r0, #0
+ ldrb r0, [r4, r2]
+ mov r5, #0
+ cmp r0, #3
+ bls _021D7F32
+ b _021D8092
+_021D7F32:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7F3E: ; jump table
+ .short _021D7F46 - _021D7F3E - 2 ; case 0
+ .short _021D7F74 - _021D7F3E - 2 ; case 1
+ .short _021D7FB0 - _021D7F3E - 2 ; case 2
+ .short _021D804C - _021D7F3E - 2 ; case 3
+_021D7F46:
+ mov r0, #8
+ sub r2, #0x36
+ str r0, [r4, r2]
+ ldr r1, _021D80E0 ; =0x000030C8
+ lsl r2, r0, #9
+ str r2, [r4, r1]
+ add r0, r1, #4
+ str r2, [r4, r0]
+ ldr r0, [r4, r1]
+ add r0, #0x80
+ str r0, [r4, r1]
+ add r0, r1, #4
+ ldr r2, [r4, r0]
+ add r2, #0x80
+ str r2, [r4, r0]
+ ldr r0, _021D80E4 ; =0x00000696
+ bl FUN_020054C8
+ ldr r0, _021D80DC ; =0x0000331A
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _021D8092
+_021D7F74:
+ add r0, r2, #0
+ sub r0, #0x36
+ ldr r3, [r4, r0]
+ ldr r1, _021D80E0 ; =0x000030C8
+ mov r0, #0xc
+ mov r7, #2
+ sub r0, r0, r3
+ add r3, r7, #0
+ ldr r6, [r4, r1]
+ lsl r3, r0
+ sub r0, r6, r3
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bgt _021D7F9C
+ mov r0, #0x24
+ str r0, [r4, r1]
+ ldrb r0, [r4, r2]
+ add r0, r0, #1
+ strb r0, [r4, r2]
+_021D7F9C:
+ ldr r0, _021D80E8 ; =0x000032E4
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, [r4, r0]
+ cmp r1, #1
+ bgt _021D8092
+ mov r1, #1
+ str r1, [r4, r0]
+ b _021D8092
+_021D7FB0:
+ mov r0, #0xc3
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ bne _021D8006
+ mov r1, #1
+ str r1, [r4, r0]
+ str r5, [sp]
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ mov r0, #0x19
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r1, #0x1f
+ mov r3, #6
+ bl FUN_020068C8
+ add r0, r4, #4
+ add r1, r5, #0
+ mov r2, #6
+ bl MOD57_021D8FB8
+ add r0, r4, #0
+ bl MOD57_021D86E8
+ ldr r0, [r4]
+ mov r1, #7
+ bl FUN_02018744
+ add r1, r4, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ add r0, r4, #4
+ bl MOD57_021D8CF8
+ add r2, r4, #0
+ ldr r0, [r4]
+ mov r1, #7
+ add r2, #0xb8
+ bl MOD57_021D8830
+ b _021D8042
+_021D8006:
+ str r5, [r4, r0]
+ str r5, [sp]
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ mov r0, #0x19
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x33
+ mov r1, #0x1e
+ mov r3, #6
+ bl FUN_020068C8
+ add r0, r4, #4
+ mov r1, #7
+ mov r2, #0xa
+ bl MOD57_021D8FB8
+ ldr r0, [r4]
+ mov r1, #7
+ bl FUN_02018744
+ add r0, r4, #0
+ bl MOD57_021D8690
+ add r1, r4, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ add r0, r4, #4
+ bl MOD57_021D89F0
+_021D8042:
+ ldr r0, _021D80DC ; =0x0000331A
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ b _021D8092
+_021D804C:
+ add r0, r2, #0
+ sub r0, #0x36
+ ldr r0, [r4, r0]
+ add r1, r0, #1
+ add r0, r2, #0
+ sub r0, #0x36
+ str r1, [r4, r0]
+ add r0, r2, #0
+ sub r0, #0x36
+ ldr r0, [r4, r0]
+ cmp r0, #8
+ ble _021D806A
+ mov r0, #8
+ sub r2, #0x36
+ str r0, [r4, r2]
+_021D806A:
+ ldr r2, _021D80E8 ; =0x000032E4
+ ldr r3, _021D80E0 ; =0x000030C8
+ ldr r6, [r4, r2]
+ mov r2, #0xc
+ mov r0, #2
+ sub r2, r2, r6
+ add r6, r0, #0
+ ldr r1, [r4, r3]
+ lsl r6, r2
+ add r1, r1, r6
+ str r1, [r4, r3]
+ ldr r2, [r4, r3]
+ lsl r1, r0, #0xb
+ cmp r2, r1
+ blt _021D8092
+ str r1, [r4, r3]
+ str r1, [r4, r3]
+ add r0, r3, #4
+ str r1, [r4, r0]
+ mov r5, #1
+_021D8092:
+ ldr r0, _021D80E0 ; =0x000030C8
+ ldr r0, [r4, r0]
+ bl FX_Inv
+ add r6, r0, #0
+ ldr r0, _021D80EC ; =0x000030CC
+ ldr r0, [r4, r0]
+ bl FX_Inv
+ mov r1, #0
+ str r6, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ bl OS_WaitVBlankIntr
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021D80F0 ; =0x04001020
+ add r1, sp, #0x10
+ mov r2, #0x80
+ mov r3, #0x60
+ bl G2x_SetBGyAffine_
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021D80F4 ; =0x04001030
+ add r1, sp, #0x10
+ mov r2, #0x80
+ mov r3, #0x60
+ bl G2x_SetBGyAffine_
+ add r0, r5, #0
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D80DC: .word 0x0000331A
+_021D80E0: .word 0x000030C8
+_021D80E4: .word 0x00000696
+_021D80E8: .word 0x000032E4
+_021D80EC: .word 0x000030CC
+_021D80F0: .word 0x04001020
+_021D80F4: .word 0x04001030
+ thumb_func_end MOD57_021D7F20
+
+ thumb_func_start MOD57_021D80F8
+MOD57_021D80F8: ; 0x021D80F8
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, _021D81E4 ; =0x0000331A
+ ldrb r1, [r4, r0]
+ cmp r1, #3
+ bhi _021D81AE
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8112: ; jump table
+ .short _021D811A - _021D8112 - 2 ; case 0
+ .short _021D8142 - _021D8112 - 2 ; case 1
+ .short _021D8170 - _021D8112 - 2 ; case 2
+ .short _021D81A8 - _021D8112 - 2 ; case 3
+_021D811A:
+ mov r2, #0
+ sub r1, r0, #1
+ strb r2, [r4, r1]
+ sub r1, r0, #2
+ ldrb r1, [r4, r1]
+ cmp r1, #0
+ bne _021D8134
+ mov r2, #1
+ ldr r1, _021D81E8 ; =0x000030D0
+ lsl r2, r2, #0xc
+ str r2, [r4, r1]
+ mov r1, #1
+ b _021D8136
+_021D8134:
+ mov r1, #2
+_021D8136:
+ strb r1, [r4, r0]
+ ldr r0, _021D81EC ; =0x00003318
+ ldrb r0, [r4, r0]
+ bl MOD57_021D8894
+ b _021D81AE
+_021D8142:
+ sub r1, r0, #1
+ ldrb r2, [r4, r1]
+ add r1, r2, #0
+ add r3, r1, #1
+ sub r1, r0, #1
+ strb r3, [r4, r1]
+ ldr r3, _021D81E8 ; =0x000030D0
+ lsl r5, r2, #2
+ ldr r2, _021D81F0 ; =0x021D9850
+ ldr r1, [r4, r3]
+ ldr r2, [r2, r5]
+ sub r1, r1, r2
+ str r1, [r4, r3]
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ cmp r1, #0xe
+ bne _021D81AE
+ mov r2, #1
+ sub r1, r0, #2
+ strb r2, [r4, r1]
+ mov r1, #3
+ strb r1, [r4, r0]
+ b _021D81AE
+_021D8170:
+ sub r1, r0, #1
+ ldrb r2, [r4, r1]
+ ldr r5, _021D81E8 ; =0x000030D0
+ add r1, r2, #0
+ add r3, r1, #1
+ sub r1, r0, #1
+ strb r3, [r4, r1]
+ mov r3, #0xd
+ sub r2, r3, r2
+ lsl r3, r2, #2
+ ldr r2, _021D81F0 ; =0x021D9850
+ ldr r1, [r4, r5]
+ ldr r2, [r2, r3]
+ add r1, r1, r2
+ str r1, [r4, r5]
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ cmp r1, #0xe
+ bne _021D81AE
+ mov r2, #0
+ sub r1, r0, #2
+ strb r2, [r4, r1]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ str r1, [r4, r5]
+ mov r1, #3
+ strb r1, [r4, r0]
+ b _021D81AE
+_021D81A8:
+ add sp, #0x18
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D81AE:
+ mov r0, #1
+ lsl r0, r0, #0xc
+ bl FX_Inv
+ add r5, r0, #0
+ ldr r0, _021D81E8 ; =0x000030D0
+ ldr r0, [r4, r0]
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ bl OS_WaitVBlankIntr
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _021D81F4 ; =0x04000030
+ add r1, sp, #8
+ mov r2, #0x80
+ str r3, [sp, #4]
+ bl G2x_SetBGyAffine_
+ mov r0, #0
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D81E4: .word 0x0000331A
+_021D81E8: .word 0x000030D0
+_021D81EC: .word 0x00003318
+_021D81F0: .word 0x021D9850
+_021D81F4: .word 0x04000030
+ thumb_func_end MOD57_021D80F8
+
+ thumb_func_start MOD57_021D81F8
+MOD57_021D81F8: ; 0x021D81F8
+ push {r4, r5, r6, lr}
+ mov r6, #0
+ add r5, r0, #0
+ ldr r0, _021D82A8 ; =0x000030D4
+ sub r1, r6, #1
+ str r1, [r5, r0]
+ ldr r1, _021D82AC ; =0x021C48F8
+ add r4, r6, #0
+ ldrh r1, [r1, #0x20]
+ cmp r1, #0
+ beq _021D8214
+ mov r1, #1
+ sub r0, #0x10
+ str r1, [r5, r0]
+_021D8214:
+ add r1, r5, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ ldr r2, _021D82B0 ; =0x021D9754
+ ldrb r1, [r1, #4]
+ ldr r0, [r5]
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1f
+ lsl r3, r1, #3
+ ldr r1, _021D82B4 ; =0x00003318
+ add r2, r2, r3
+ ldrb r1, [r5, r1]
+ lsl r1, r1, #2
+ ldr r1, [r1, r2]
+ bl MOD57_021D890C
+ ldr r1, _021D82A8 ; =0x000030D4
+ str r0, [r5, r1]
+ mov r0, #0
+ ldr r2, [r5, r1]
+ mvn r0, r0
+ cmp r2, r0
+ beq _021D8248
+ mov r6, #1
+ add r4, r6, #0
+ b _021D8288
+_021D8248:
+ ldr r0, _021D82AC ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ cmp r0, #0
+ beq _021D8282
+ add r1, r5, #0
+ add r1, #0xb4
+ ldr r1, [r1]
+ ldr r2, _021D82B0 ; =0x021D9754
+ ldrb r1, [r1, #4]
+ ldr r0, [r5]
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1f
+ lsl r3, r1, #3
+ ldr r1, _021D82B4 ; =0x00003318
+ add r2, r2, r3
+ ldrb r1, [r5, r1]
+ lsl r1, r1, #2
+ ldr r1, [r1, r2]
+ bl MOD57_021D8954
+ ldr r1, _021D82A8 ; =0x000030D4
+ str r0, [r5, r1]
+ sub r1, #0x10
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ beq _021D8288
+ mov r6, #1
+ mov r4, #2
+ b _021D8288
+_021D8282:
+ mov r0, #0
+ sub r1, #0x10
+ str r0, [r5, r1]
+_021D8288:
+ cmp r6, #0
+ bne _021D82A2
+ ldr r0, _021D82B8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021D829A
+ mov r4, #3
+ b _021D82A2
+_021D829A:
+ mov r0, #2
+ tst r0, r1
+ beq _021D82A2
+ mov r4, #4
+_021D82A2:
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ nop
+_021D82A8: .word 0x000030D4
+_021D82AC: .word 0x021C48F8
+_021D82B0: .word 0x021D9754
+_021D82B4: .word 0x00003318
+_021D82B8: .word 0x021C48B8
+ thumb_func_end MOD57_021D81F8
+
+ thumb_func_start MOD57_021D82BC
+MOD57_021D82BC: ; 0x021D82BC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021D83BC ; =0x021C48F8
+ ldr r6, _021D83C0 ; =0x0000FFFF
+ ldrh r3, [r0, #0x1c]
+ mov r4, #0
+ cmp r3, r6
+ beq _021D83AC
+ ldrh r0, [r0, #0x1e]
+ cmp r0, r6
+ beq _021D83AC
+ ldr r1, _021D83C4 ; =0x000030DC
+ ldr r2, [r5, r1]
+ cmp r2, r6
+ beq _021D83AC
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ cmp r0, r6
+ beq _021D83AC
+ sub r1, #8
+ ldr r1, [r5, r1]
+ sub r0, r4, #1
+ cmp r1, r0
+ beq _021D83AC
+ cmp r1, #0
+ beq _021D83AC
+ add r0, r5, #0
+ add r0, #0xb4
+ sub r1, r1, #1
+ ldr r0, [r0]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ ldr r0, [r0, #0x48]
+ lsl r0, r0, #0x1f
+ asr r0, r0, #0x1f
+ beq _021D83AC
+ cmp r2, r3
+ ble _021D830E
+ sub r2, r2, r3
+ sub r1, r4, #1
+ b _021D8312
+_021D830E:
+ sub r2, r3, r2
+ mov r1, #1
+_021D8312:
+ ldr r0, _021D83C8 ; =0x00003302
+ cmp r2, #3
+ strb r1, [r5, r0]
+ blt _021D8358
+ cmp r2, #0x28
+ bgt _021D8358
+ ldr r0, _021D83BC ; =0x021C48F8
+ ldrh r1, [r0, #0x1e]
+ ldr r0, _021D83CC ; =0x000030E0
+ ldr r0, [r5, r0]
+ cmp r0, r1
+ ble _021D8332
+ sub r2, r0, r1
+ mov r1, #0
+ mvn r1, r1
+ b _021D8336
+_021D8332:
+ sub r2, r1, r0
+ mov r1, #1
+_021D8336:
+ ldr r0, _021D83D0 ; =0x00003303
+ cmp r2, #0x28
+ strb r1, [r5, r0]
+ bgt _021D834C
+ mov r0, #0x33
+ lsl r0, r0, #8
+ add r0, r5, r0
+ mov r4, #1
+ bl MOD57_021D875C
+ b _021D8398
+_021D834C:
+ mov r0, #0x33
+ lsl r0, r0, #8
+ add r0, r5, r0
+ bl MOD57_021D8744
+ b _021D8398
+_021D8358:
+ cmp r2, #0x28
+ bgt _021D8398
+ ldr r0, _021D83BC ; =0x021C48F8
+ ldrh r1, [r0, #0x1e]
+ ldr r0, _021D83CC ; =0x000030E0
+ ldr r0, [r5, r0]
+ cmp r0, r1
+ ble _021D8370
+ sub r2, r0, r1
+ mov r1, #0
+ mvn r1, r1
+ b _021D8374
+_021D8370:
+ sub r2, r1, r0
+ mov r1, #1
+_021D8374:
+ ldr r0, _021D83D0 ; =0x00003303
+ cmp r2, #3
+ strb r1, [r5, r0]
+ blt _021D838E
+ cmp r2, #0x28
+ bgt _021D838E
+ mov r0, #0x33
+ lsl r0, r0, #8
+ add r0, r5, r0
+ mov r4, #1
+ bl MOD57_021D875C
+ b _021D8398
+_021D838E:
+ mov r0, #0x33
+ lsl r0, r0, #8
+ add r0, r5, r0
+ bl MOD57_021D8744
+_021D8398:
+ cmp r4, #0
+ beq _021D83AC
+ ldr r1, _021D83D4 ; =0x000030D4
+ add r0, r5, #0
+ ldr r1, [r5, r1]
+ sub r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD57_021D84AC
+_021D83AC:
+ ldr r1, _021D83BC ; =0x021C48F8
+ ldr r0, _021D83C4 ; =0x000030DC
+ ldrh r2, [r1, #0x1c]
+ str r2, [r5, r0]
+ ldrh r1, [r1, #0x1e]
+ add r0, r0, #4
+ str r1, [r5, r0]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D83BC: .word 0x021C48F8
+_021D83C0: .word 0x0000FFFF
+_021D83C4: .word 0x000030DC
+_021D83C8: .word 0x00003302
+_021D83CC: .word 0x000030E0
+_021D83D0: .word 0x00003303
+_021D83D4: .word 0x000030D4
+ thumb_func_end MOD57_021D82BC
+
+ thumb_func_start MOD57_021D83D8
+MOD57_021D83D8: ; 0x021D83D8
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #2
+ bl FUN_0201886C
+ add r7, r0, #0
+ lsl r0, r4, #2
+ add r0, #0x80
+ lsl r0, r0, #0x10
+ mov r2, #0
+ lsr r3, r0, #0x10
+_021D83F2:
+ lsl r0, r2, #5
+ add r4, r3, r0
+ add r0, r2, #0
+ add r0, #0x13
+ lsl r0, r0, #6
+ mov r1, #0
+ add r5, r7, r0
+_021D8400:
+ lsl r6, r1, #1
+ add r0, r1, r4
+ add r6, r5, r6
+ strh r0, [r6, #0x1c]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #4
+ blo _021D8400
+ add r0, r2, #1
+ lsl r0, r0, #0x18
+ lsr r2, r0, #0x18
+ cmp r2, #4
+ blo _021D83F2
+ ldr r0, [sp]
+ mov r1, #2
+ ldr r0, [r0]
+ bl FUN_02017CD0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD57_021D83D8
+
+ thumb_func_start MOD57_021D8428
+MOD57_021D8428: ; 0x021D8428
+ push {r3, r4, r5, r6, r7, lr}
+ lsr r5, r1, #0x1f
+ lsl r4, r1, #0x1e
+ sub r4, r4, r5
+ mov r2, #0x1e
+ ror r4, r2
+ add r2, r5, r4
+ lsl r2, r2, #0x18
+ lsr r4, r2, #0x18
+ lsl r1, r1, #0x16
+ mov r2, #7
+ add r5, r4, #0
+ lsr r1, r1, #0x18
+ mul r5, r2
+ mov r6, #3
+ add r4, r6, r5
+ lsl r4, r4, #0x18
+ mov r3, #4
+ mul r2, r1
+ add r1, r3, r2
+ lsl r1, r1, #0x18
+ lsr r5, r1, #0x18
+ ldr r0, [r0]
+ add r1, r6, #0
+ lsr r4, r4, #0x18
+ bl FUN_0201886C
+ mov r2, #0
+ add r3, r0, r4
+ add r0, r2, #0
+_021D8464:
+ add r6, r2, r5
+ lsl r4, r2, #4
+ lsl r6, r6, #5
+ add r1, r0, #0
+ add r4, #0xba
+ add r6, r3, r6
+_021D8470:
+ add r7, r1, r4
+ strb r7, [r6, r1]
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #5
+ blo _021D8470
+ add r1, r2, #1
+ lsl r1, r1, #0x18
+ lsr r2, r1, #0x18
+ cmp r2, #5
+ blo _021D8464
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D8428
+
+ thumb_func_start MOD57_021D848C
+MOD57_021D848C: ; 0x021D848C
+ push {r3, lr}
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _021D84A4 ; =0x027E0000
+ ldr r1, _021D84A8 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ .align 2, 0
+_021D84A4: .word 0x027E0000
+_021D84A8: .word 0x00003FF8
+ thumb_func_end MOD57_021D848C
+
+ thumb_func_start MOD57_021D84AC
+MOD57_021D84AC: ; 0x021D84AC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, #0xb4
+ add r4, r1, #0
+ ldr r0, [r0]
+ lsl r6, r4, #2
+ add r0, r0, r6
+ ldr r0, [r0, #0x48]
+ asr r0, r0, #1
+ add r1, r0, #1
+ str r1, [sp]
+ cmp r1, #0xc8
+ bge _021D8578
+ bl MOD57_021D870C
+ add r7, r0, #0
+ ldr r0, _021D857C ; =0x00003310
+ ldr r2, _021D8580 ; =0x021D9734
+ add r1, r5, r0
+ ldrb r0, [r1, r4]
+ ldrb r2, [r2, r7]
+ add r0, r0, #1
+ strb r0, [r1, r4]
+ ldrb r0, [r1, r4]
+ cmp r0, r2
+ blo _021D8578
+ mov r0, #0
+ strb r0, [r1, r4]
+ add r0, r5, #0
+ add r0, #0xb4
+ ldr r2, [r0]
+ mov r1, #1
+ add r2, #0x48
+ ldr r0, [r2, r6]
+ and r1, r0
+ asr r0, r0, #1
+ add r0, r0, #1
+ lsl r0, r0, #1
+ orr r0, r1
+ str r0, [r2, r6]
+ ldr r0, [sp]
+ bl MOD57_021D870C
+ add r6, r0, #0
+ cmp r7, r6
+ bls _021D850C
+ bl ErrorHandling
+_021D850C:
+ cmp r7, r6
+ bhs _021D8578
+ cmp r6, #4
+ bhi _021D8536
+ cmp r6, #4
+ ldr r0, _021D8584 ; =0x000030E4
+ bne _021D8526
+ add r0, r5, r0
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD57_021D951C
+ b _021D8536
+_021D8526:
+ mov r2, #3
+ sub r2, r2, r6
+ lsl r2, r2, #0x18
+ add r0, r5, r0
+ add r1, r4, #0
+ lsr r2, r2, #0x18
+ bl MOD57_021D951C
+_021D8536:
+ cmp r6, #3
+ bne _021D854E
+ add r4, #8
+ lsl r0, r4, #2
+ add r1, r5, r0
+ mov r0, #0xc9
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D854E:
+ cmp r6, #4
+ bne _021D8578
+ add r0, r4, #0
+ add r0, #8
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0xc9
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, #0x10
+ lsl r0, r4, #2
+ add r1, r5, r0
+ mov r0, #0xc9
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D8578:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D857C: .word 0x00003310
+_021D8580: .word 0x021D9734
+_021D8584: .word 0x000030E4
+ thumb_func_end MOD57_021D84AC
+
+ thumb_func_start MOD57_021D8588
+MOD57_021D8588: ; 0x021D8588
+ push {r4, lr}
+ sub sp, #0x18
+ mov r0, #1
+ lsl r0, r0, #0xc
+ bl FX_Inv
+ add r4, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ bl FX_Inv
+ mov r1, #0
+ str r4, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ bl OS_WaitVBlankIntr
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021D85E8 ; =0x04001020
+ add r1, sp, #8
+ mov r2, #0x80
+ mov r3, #0x60
+ bl G2x_SetBGyAffine_
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021D85EC ; =0x04001030
+ add r1, sp, #8
+ mov r2, #0x80
+ mov r3, #0x60
+ bl G2x_SetBGyAffine_
+ bl OS_WaitVBlankIntr
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _021D85F0 ; =0x04000030
+ add r1, sp, #8
+ mov r2, #0x80
+ str r3, [sp, #4]
+ bl G2x_SetBGyAffine_
+ add sp, #0x18
+ pop {r4, pc}
+ .align 2, 0
+_021D85E8: .word 0x04001020
+_021D85EC: .word 0x04001030
+_021D85F0: .word 0x04000030
+ thumb_func_end MOD57_021D8588
+
+ thumb_func_start MOD57_021D85F4
+MOD57_021D85F4: ; 0x021D85F4
+ push {r4, lr}
+ ldr r1, _021D862C ; =0x0000331D
+ add r4, r0, #0
+ ldrb r1, [r4, r1]
+ cmp r1, #1
+ bne _021D8614
+ ldr r1, _021D8630 ; =0x021D973C
+ ldr r1, [r1, #0x10]
+ bl MOD57_021D8634
+ cmp r0, #0
+ beq _021D862A
+ ldr r0, _021D862C ; =0x0000331D
+ mov r1, #0
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_021D8614:
+ cmp r1, #2
+ bne _021D862A
+ ldr r1, _021D8630 ; =0x021D973C
+ ldr r1, [r1, #0x14]
+ bl MOD57_021D8634
+ cmp r0, #0
+ beq _021D862A
+ ldr r0, _021D862C ; =0x0000331D
+ mov r1, #0
+ strb r1, [r4, r0]
+_021D862A:
+ pop {r4, pc}
+ .align 2, 0
+_021D862C: .word 0x0000331D
+_021D8630: .word 0x021D973C
+ thumb_func_end MOD57_021D85F4
+
+ thumb_func_start MOD57_021D8634
+MOD57_021D8634: ; 0x021D8634
+ push {r4, lr}
+ ldr r2, _021D8688 ; =0x0000331C
+ add r4, r0, #0
+ ldrb r0, [r4, r2]
+ lsl r0, r0, #1
+ ldrb r3, [r1, r0]
+ cmp r3, #0
+ bne _021D8650
+ mov r1, #0
+ sub r0, r2, #1
+ strb r1, [r4, r0]
+ strb r1, [r4, r2]
+ mov r0, #1
+ pop {r4, pc}
+_021D8650:
+ sub r0, r2, #1
+ ldrb r0, [r4, r0]
+ cmp r0, r3
+ blo _021D8664
+ mov r3, #0
+ sub r0, r2, #1
+ strb r3, [r4, r0]
+ ldrb r0, [r4, r2]
+ add r0, r0, #1
+ strb r0, [r4, r2]
+_021D8664:
+ ldr r0, _021D8688 ; =0x0000331C
+ ldrb r2, [r4, r0]
+ sub r0, r0, #1
+ ldrb r0, [r4, r0]
+ lsl r2, r2, #1
+ add r2, r2, #1
+ ldrb r1, [r1, r2]
+ cmp r0, #0
+ bne _021D867C
+ add r0, r4, #0
+ bl MOD57_021D83D8
+_021D867C:
+ ldr r0, _021D868C ; =0x0000331B
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D8688: .word 0x0000331C
+_021D868C: .word 0x0000331B
+ thumb_func_end MOD57_021D8634
+
+ thumb_func_start MOD57_021D8690
+MOD57_021D8690: ; 0x021D8690
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D86E0 ; =0x000032FC
+ mov r1, #7
+ ldr r0, [r5, r0]
+ ldr r4, [r0, #8]
+ ldr r0, _021D86E4 ; =0x000030BC
+ ldr r3, [r5, r0]
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r5]
+ ldr r3, [r3, #0x10]
+ bl FUN_02017E14
+ ldr r0, [r5]
+ mov r1, #7
+ bl FUN_0201886C
+ cmp r0, #0
+ beq _021D86CA
+ ldr r2, _021D86E0 ; =0x000032FC
+ ldr r0, [r5]
+ ldr r2, [r5, r2]
+ mov r1, #7
+ add r2, #0xc
+ add r3, r4, #0
+ bl FUN_02017DFC
+_021D86CA:
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, _021D86E0 ; =0x000032FC
+ ldr r0, [r5]
+ ldr r2, [r5, r2]
+ mov r1, #7
+ add r2, #0xc
+ add r3, r4, #0
+ bl FUN_02017CE8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D86E0: .word 0x000032FC
+_021D86E4: .word 0x000030BC
+ thumb_func_end MOD57_021D8690
+
+ thumb_func_start MOD57_021D86E8
+MOD57_021D86E8: ; 0x021D86E8
+ push {r3, lr}
+ sub sp, #0x10
+ mov r1, #6
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r1, #9
+ str r1, [sp, #8]
+ mov r1, #0x10
+ str r1, [sp, #0xc]
+ ldr r0, [r0]
+ mov r1, #7
+ mov r2, #0
+ mov r3, #0x14
+ bl FUN_02018540
+ add sp, #0x10
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D86E8
+
+ thumb_func_start MOD57_021D870C
+MOD57_021D870C: ; 0x021D870C
+ push {r3, lr}
+ cmp r0, #0
+ blt _021D871A
+ cmp r0, #0x64
+ bge _021D871A
+ mov r0, #0
+ pop {r3, pc}
+_021D871A:
+ cmp r0, #0x8c
+ bge _021D8722
+ mov r0, #1
+ pop {r3, pc}
+_021D8722:
+ cmp r0, #0xaa
+ bge _021D872A
+ mov r0, #2
+ pop {r3, pc}
+_021D872A:
+ cmp r0, #0xbe
+ bge _021D8732
+ mov r0, #3
+ pop {r3, pc}
+_021D8732:
+ cmp r0, #0xc8
+ bge _021D873A
+ mov r0, #4
+ pop {r3, pc}
+_021D873A:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D870C
+
+ thumb_func_start MOD57_021D8744
+MOD57_021D8744: ; 0x021D8744
+ mov r1, #0
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ bx lr
+ thumb_func_end MOD57_021D8744
+
+ thumb_func_start MOD57_021D874C
+MOD57_021D874C: ; 0x021D874C
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #1]
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ strb r1, [r0, #4]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD57_021D874C
+
+ thumb_func_start MOD57_021D875C
+MOD57_021D875C: ; 0x021D875C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, _021D87D4 ; =0x021D973C
+ ldr r1, [r0]
+ ldr r0, [r0, #4]
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _021D8782
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _021D8782
+ ldr r0, _021D87D8 ; =0x00000692
+ bl FUN_020054C8
+_021D8782:
+ mov r0, #0
+ ldrsb r1, [r4, r0]
+ mov r0, #2
+ ldrsb r0, [r4, r0]
+ mul r0, r1
+ bmi _021D879A
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ mov r0, #3
+ ldrsb r0, [r4, r0]
+ mul r0, r1
+ bpl _021D87BC
+_021D879A:
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r0, r2, r1
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #4]
+ lsl r1, r0, #2
+ add r0, sp, #0
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054C8
+_021D87BC:
+ mov r0, #2
+ ldrsb r0, [r4, r0]
+ strb r0, [r4]
+ mov r0, #3
+ ldrsb r0, [r4, r0]
+ strb r0, [r4, #1]
+ mov r0, #0
+ strb r0, [r4, #2]
+ strb r0, [r4, #3]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021D87D4: .word 0x021D973C
+_021D87D8: .word 0x00000692
+ thumb_func_end MOD57_021D875C
+
+ thumb_func_start MOD57_021D87DC
+MOD57_021D87DC: ; 0x021D87DC
+ push {r4, r5, r6, r7}
+ mov r2, #3
+ mov r4, #0
+ lsl r2, r2, #0xc
+_021D87E4:
+ asr r3, r4, #2
+ lsr r3, r3, #0x1d
+ add r3, r4, r3
+ asr r3, r3, #3
+ lsr r6, r3, #0x1f
+ lsl r5, r3, #0x1d
+ sub r5, r5, r6
+ mov r3, #0x1d
+ ror r5, r3
+ add r3, r6, r5
+ asr r5, r4, #5
+ lsr r5, r5, #0x1a
+ lsl r3, r3, #0x18
+ add r5, r4, r5
+ lsr r3, r3, #0x18
+ asr r5, r5, #6
+ lsl r5, r5, #3
+ add r3, r0, r3
+ ldrb r3, [r5, r3]
+ lsr r7, r4, #0x1f
+ lsl r6, r4, #0x1d
+ sub r6, r6, r7
+ mov r5, #0x1d
+ ror r6, r5
+ add r5, r7, r6
+ lsl r5, r5, #0x18
+ add r6, r3, #0
+ lsr r5, r5, #0x18
+ asr r6, r5
+ mov r3, #1
+ and r3, r6
+ strb r3, [r1, r4]
+ add r4, r4, #1
+ cmp r4, r2
+ blt _021D87E4
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD57_021D87DC
+
+ thumb_func_start MOD57_021D8830
+MOD57_021D8830: ; 0x021D8830
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r1, #0
+ mov r1, #1
+ str r1, [sp]
+ lsl r1, r7, #0x18
+ mov r3, #3
+ str r0, [sp, #4]
+ lsr r1, r1, #0x18
+ lsl r3, r3, #0xc
+ bl FUN_02017E14
+ lsl r1, r7, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl FUN_0201886C
+ mov r4, #0
+ add r1, r0, #0
+ add r3, r4, #0
+ add r0, r4, #0
+_021D885A:
+ add r5, r3, #0
+ add r5, #0xe
+ lsl r5, r5, #6
+ add r2, r0, #0
+ add r5, r1, r5
+_021D8864:
+ lsl r6, r2, #1
+ add r4, r4, #1
+ add r2, r2, #1
+ lsl r4, r4, #0x10
+ lsl r2, r2, #0x18
+ lsr r4, r4, #0x10
+ add r6, r5, r6
+ lsr r2, r2, #0x18
+ strh r4, [r6, #8]
+ cmp r2, #0x18
+ blo _021D8864
+ add r2, r3, #1
+ lsl r2, r2, #0x18
+ lsr r3, r2, #0x18
+ cmp r3, #8
+ blo _021D885A
+ lsl r1, r7, #0x18
+ ldr r0, [sp, #4]
+ lsr r1, r1, #0x18
+ bl FUN_02017CD0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D8830
+
+ thumb_func_start MOD57_021D8894
+MOD57_021D8894: ; 0x021D8894
+ ldr r3, _021D889C ; =FUN_020054C8
+ ldr r0, _021D88A0 ; =0x00000699
+ bx r3
+ nop
+_021D889C: .word FUN_020054C8
+_021D88A0: .word 0x00000699
+ thumb_func_end MOD57_021D8894
+
+ thumb_func_start MOD57_021D88A4
+MOD57_021D88A4: ; 0x021D88A4
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021D8900
+ mov r0, #0xc3
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D88F0
+ ldr r2, _021D8904 ; =0x0000331E
+ ldrb r0, [r4, r2]
+ cmp r0, #0xf
+ bne _021D88DE
+ add r1, r4, #0
+ add r1, #0xb4
+ sub r2, #0x16
+ ldr r1, [r1]
+ ldr r2, [r4, r2]
+ add r0, r4, #4
+ bl MOD57_021D905C
+ ldr r2, _021D8908 ; =0x0000330C
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0x54
+ mov r1, #1
+ bl MOD57_021D9144
+ b _021D88F0
+_021D88DE:
+ cmp r0, #0
+ bne _021D88F0
+ sub r2, #0x12
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0x54
+ mov r1, #0
+ bl MOD57_021D9144
+_021D88F0:
+ ldr r0, _021D8904 ; =0x0000331E
+ mov r1, #0x1e
+ ldrb r0, [r4, r0]
+ add r0, r0, #1
+ bl _s32_div_f
+ ldr r0, _021D8904 ; =0x0000331E
+ strb r1, [r4, r0]
+_021D8900:
+ pop {r4, pc}
+ nop
+_021D8904: .word 0x0000331E
+_021D8908: .word 0x0000330C
+ thumb_func_end MOD57_021D88A4
+
+ thumb_func_start MOD57_021D890C
+MOD57_021D890C: ; 0x021D890C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, r1, #0
+ bl FUN_02020988
+ mov r1, #0
+ add r4, r0, #0
+ mvn r1, r1
+ cmp r4, r1
+ beq _021D894A
+ cmp r4, #0
+ beq _021D894C
+ mov r1, #0x40
+ add r0, sp, #4
+ strh r1, [r0]
+ add r0, sp, #4
+ str r0, [sp]
+ ldr r3, _021D8950 ; =0x021C48F8
+ add r0, r5, #0
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #2
+ bl FUN_0201AFBC
+ cmp r0, #0
+ bne _021D894A
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+_021D894A:
+ add r0, r4, #0
+_021D894C:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8950: .word 0x021C48F8
+ thumb_func_end MOD57_021D890C
+
+ thumb_func_start MOD57_021D8954
+MOD57_021D8954: ; 0x021D8954
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, r1, #0
+ bl FUN_02020968
+ mov r1, #0
+ add r4, r0, #0
+ mvn r1, r1
+ cmp r4, r1
+ beq _021D8992
+ cmp r4, #0
+ beq _021D8994
+ mov r1, #0x40
+ add r0, sp, #4
+ strh r1, [r0]
+ add r0, sp, #4
+ str r0, [sp]
+ ldr r3, _021D8998 ; =0x021C48F8
+ add r0, r5, #0
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #2
+ bl FUN_0201AFBC
+ cmp r0, #0
+ bne _021D8992
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+_021D8992:
+ add r0, r4, #0
+_021D8994:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8998: .word 0x021C48F8
+ thumb_func_end MOD57_021D8954
+
+ thumb_func_start MOD57_021D899C
+MOD57_021D899C: ; 0x021D899C
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r7, _021D89D0 ; =0x021D98F4
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+_021D89A6:
+ lsl r1, r4, #4
+ lsl r2, r4, #3
+ add r0, r5, #0
+ add r1, r6, r1
+ add r2, r7, r2
+ bl FUN_02019150
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xb
+ blo _021D89A6
+ mov r2, #0
+ add r0, r5, #0
+ mov r1, #7
+ mov r3, #1
+ str r2, [sp]
+ bl FUN_02017F48
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D89D0: .word 0x021D98F4
+ thumb_func_end MOD57_021D899C
+
+ thumb_func_start MOD57_021D89D4
+MOD57_021D89D4: ; 0x021D89D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D89DA:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xb
+ blo _021D89DA
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D89D4
+
+ thumb_func_start MOD57_021D89F0
+MOD57_021D89F0: ; 0x021D89F0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r1, #0
+ mov r1, #0x88
+ str r1, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ mov r1, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ add r7, r0, #0
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #0x88
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r0, #0x10
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #0x88
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r0, #0x20
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #0x88
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r0, #0x30
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #0x88
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r0, #0x40
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r0, #0x50
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ add r0, #0x60
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ ldr r2, _021D8CEC ; =0x0000022D
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x19
+ bl FUN_0200A86C
+ str r0, [sp, #0x14]
+ mov r0, #0x20
+ mov r1, #0x19
+ bl FUN_020219F4
+ add r5, r0, #0
+ mov r4, #0
+_021D8AA8:
+ cmp r4, #3
+ bne _021D8AB6
+ bne _021D8AE0
+ ldrb r0, [r6, #4]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _021D8AE0
+_021D8AB6:
+ ldr r1, _021D8CF0 ; =0x021D98C8
+ lsl r2, r4, #2
+ ldr r1, [r1, r2]
+ ldr r0, [sp, #0x14]
+ add r2, r5, #0
+ bl FUN_0200A8E0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021D8CF4 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #4
+ add r0, r7, r0
+ add r2, r5, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+_021D8AE0:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #7
+ blo _021D8AA8
+ mov r0, #0x20
+ mov r1, #0x19
+ bl FUN_020219F4
+ str r0, [sp, #0x10]
+ mov r0, #6
+ mov r1, #0x20
+ mov r2, #0x19
+ bl FUN_0200AA90
+ mov r2, #0
+ str r5, [sp]
+ add r4, r0, #0
+ ldrh r0, [r6, #0x28]
+ mov r1, #0x88
+ add r3, r2, #0
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD57_021D8FD8
+ add r1, r6, #0
+ add r0, r5, #0
+ add r1, #8
+ bl FUN_02021E28
+ add r0, r7, #0
+ mov r2, #0
+ add r0, #0x10
+ mov r1, #0x88
+ add r3, r2, #0
+ str r5, [sp]
+ bl MOD57_021D9024
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [r6, #0x1c]
+ add r0, r4, #0
+ mov r1, #5
+ mov r3, #6
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ mov r1, #0xe
+ bl FUN_0200A8E0
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x88
+ sub r3, r1, r0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D8CF4 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r7, #0
+ str r1, [sp, #0xc]
+ add r0, #0x20
+ add r2, r5, #0
+ bl FUN_0201BDE0
+ ldrb r0, [r6, #4]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1f
+ beq _021D8BA4
+ str r5, [sp]
+ ldr r0, [r6, #0x20]
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ add r0, #0x30
+ mov r1, #0x88
+ add r3, r2, #0
+ bl MOD57_021D8FD8
+_021D8BA4:
+ str r5, [sp]
+ ldr r0, [r6, #0x24]
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #9
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ add r0, #0x40
+ mov r1, #0x88
+ add r3, r2, #0
+ bl MOD57_021D8FD8
+ ldrb r0, [r6, #4]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ beq _021D8C02
+ ldr r0, [r6, #0x18]
+ bl FUN_02029EBC
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [r6, #0x18]
+ bl FUN_02029EC0
+ mov r3, #2
+ add r2, r0, #0
+ str r3, [sp]
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [sp, #4]
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ mov r1, #0x10
+ bl FUN_0200A8E0
+ b _021D8C32
+_021D8C02:
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldrh r2, [r6, #0x2a]
+ add r0, r4, #0
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r3, #2
+ add r2, r6, #0
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r2, #0x2e
+ ldrb r2, [r2]
+ add r0, r4, #0
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ mov r1, #0xf
+ bl FUN_0200A8E0
+_021D8C32:
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xe0
+ sub r3, r1, r0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D8CF4 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r0, #0x50
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r1, #2
+ add r2, r6, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r2, #0x2f
+ ldrb r2, [r2]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add r2, r6, #0
+ add r2, #0x30
+ ldrb r2, [r2]
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_0200B764
+ mov r3, #2
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r6, #0x31
+ ldrb r2, [r6]
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x14]
+ ldr r2, [sp, #0x10]
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xe0
+ sub r3, r1, r0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D8CF4 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r7, #0x60
+ add r0, r7, #0
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200AB18
+ add r0, r5, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_0200A8B8
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8CEC: .word 0x0000022D
+_021D8CF0: .word 0x021D98C8
+_021D8CF4: .word 0x00010200
+ thumb_func_end MOD57_021D89F0
+
+ thumb_func_start MOD57_021D8CF8
+MOD57_021D8CF8: ; 0x021D8CF8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r0, #0
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0x20
+ str r1, [sp, #0x10]
+ mov r1, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0x70
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0x80
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0x90
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ mov r1, #0
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0xa0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ ldr r2, _021D8FAC ; =0x0000022D
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x19
+ bl FUN_0200A86C
+ add r7, r0, #0
+ mov r0, #0x20
+ mov r1, #0x19
+ bl FUN_020219F4
+ add r5, r0, #0
+ mov r4, #7
+_021D8D72:
+ ldr r1, _021D8FB0 ; =0x021D98C8
+ lsl r2, r4, #2
+ ldr r1, [r1, r2]
+ add r0, r7, #0
+ add r2, r5, #0
+ bl FUN_0200A8E0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021D8FB4 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #4
+ add r0, r6, r0
+ add r2, r5, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xb
+ blo _021D8D72
+ mov r0, #0x20
+ mov r1, #0x19
+ bl FUN_020219F4
+ str r0, [sp, #0x14]
+ mov r0, #5
+ mov r1, #0x20
+ mov r2, #0x19
+ bl FUN_0200AA90
+ ldr r1, [sp, #0x10]
+ add r4, r0, #0
+ add r1, #0x33
+ ldrb r1, [r1]
+ cmp r1, #0
+ beq _021D8E3C
+ mov r1, #2
+ str r1, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ ldr r2, [sp, #0x10]
+ add r3, r1, #0
+ add r2, #0x32
+ ldrb r2, [r2]
+ bl FUN_0200AD38
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0
+ add r2, #0x33
+ ldrb r2, [r2]
+ mov r1, #3
+ bl FUN_0200B764
+ mov r3, #2
+ ldr r2, [sp, #0x10]
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r2, #0x34
+ ldrb r2, [r2]
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_0200AD38
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x10]
+ add r0, r4, #0
+ ldrh r2, [r2, #0x2c]
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r3, #2
+ ldr r2, [sp, #0x10]
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r2, #0x35
+ ldrb r2, [r2]
+ add r0, r4, #0
+ bl FUN_0200AD38
+ ldr r2, [sp, #0x14]
+ add r0, r7, #0
+ mov r1, #0x11
+ bl FUN_0200A8E0
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200B7B8
+ b _021D8E74
+_021D8E3C:
+ ldr r2, [sp, #0x14]
+ add r0, r7, #0
+ mov r1, #0xc
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_0200ABB4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0200ABB4
+ add r0, r7, #0
+ mov r1, #0x14
+ add r2, r5, #0
+ bl FUN_0200A8E0
+_021D8E74:
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xe0
+ sub r3, r1, r0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D8FB4 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0x70
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r2, [sp, #0x14]
+ add r0, r7, #0
+ mov r1, #0xf
+ bl FUN_0200A8E0
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xe0
+ sub r3, r1, r0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D8FB4 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0x70
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r2, #0
+ ldr r0, [sp, #0x10]
+ str r5, [sp]
+ ldr r0, [r0, #0x38]
+ mov r1, #0xe0
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r0, #0x80
+ add r3, r2, #0
+ bl MOD57_021D8FD8
+ add r0, r7, #0
+ mov r1, #0x12
+ add r2, r5, #0
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D8FB4 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0x90
+ add r2, r5, #0
+ mov r3, #0x70
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r2, #0
+ ldr r0, [sp, #0x10]
+ str r5, [sp]
+ ldr r0, [r0, #0x40]
+ mov r1, #0xe0
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r0, #0x90
+ add r3, r2, #0
+ bl MOD57_021D8FD8
+ add r0, r7, #0
+ mov r1, #0x13
+ add r2, r5, #0
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D8FB4 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0x90
+ add r2, r5, #0
+ mov r3, #0xb0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ str r5, [sp]
+ ldr r0, [r0, #0x3c]
+ mov r1, #0xe0
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ add r0, #0x90
+ mov r2, #0x40
+ mov r3, #0
+ bl MOD57_021D8FD8
+ mov r2, #0
+ ldr r0, [sp, #0x10]
+ str r5, [sp]
+ ldr r0, [r0, #0x44]
+ add r6, #0xa0
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ mov r1, #0xe0
+ add r3, r2, #0
+ bl MOD57_021D8FD8
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200AB18
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8FAC: .word 0x0000022D
+_021D8FB0: .word 0x021D98C8
+_021D8FB4: .word 0x00010200
+ thumb_func_end MOD57_021D8CF8
+
+ thumb_func_start MOD57_021D8FB8
+MOD57_021D8FB8: ; 0x021D8FB8
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ cmp r4, r6
+ bhi _021D8FD6
+_021D8FC4:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, r6
+ bls _021D8FC4
+_021D8FD6:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD57_021D8FB8
+
+ thumb_func_start MOD57_021D8FD8
+MOD57_021D8FD8: ; 0x021D8FD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ mov r0, #1
+ add r4, r2, #0
+ str r0, [sp]
+ add r2, sp, #0x18
+ add r5, r1, #0
+ add r6, r3, #0
+ ldrb r2, [r2, #0x18]
+ ldr r0, [sp, #0x28]
+ ldr r1, [sp, #0x2c]
+ ldr r3, [sp, #0x34]
+ bl FUN_02021B04
+ mov r0, #0
+ ldr r1, [sp, #0x28]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ add r3, r3, r4
+ str r6, [sp]
+ mov r1, #0
+ ldr r0, _021D9020 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, [sp, #0x28]
+ add r0, r7, #0
+ sub r3, r5, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9020: .word 0x00010200
+ thumb_func_end MOD57_021D8FD8
+
+ thumb_func_start MOD57_021D9024
+MOD57_021D9024: ; 0x021D9024
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r7, r0, #0
+ add r5, r1, #0
+ mov r0, #0
+ add r4, r2, #0
+ ldr r1, [sp, #0x28]
+ add r6, r3, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ add r3, r3, r4
+ str r6, [sp]
+ mov r1, #0
+ ldr r0, _021D9058 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ ldr r2, [sp, #0x28]
+ add r0, r7, #0
+ sub r3, r5, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9058: .word 0x00010200
+ thumb_func_end MOD57_021D9024
+
+ thumb_func_start MOD57_021D905C
+MOD57_021D905C: ; 0x021D905C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ add r7, r0, #0
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ bne _021D906E
+ bl ErrorHandling
+_021D906E:
+ ldr r0, [r5, #0x18]
+ bl FUN_02029EBC
+ mov r0, #0x28
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r7, #0
+ mov r1, #0
+ add r0, #0x50
+ mov r2, #0xb8
+ add r3, r1, #0
+ bl FUN_020196F4
+ ldr r2, _021D913C ; =0x0000022D
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x19
+ bl FUN_0200A86C
+ str r0, [sp, #0x10]
+ mov r0, #0x20
+ mov r1, #0x19
+ bl FUN_020219F4
+ add r4, r0, #0
+ mov r0, #0x20
+ mov r1, #0x19
+ bl FUN_020219F4
+ str r0, [sp, #0x14]
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0x19
+ bl FUN_0200AA90
+ add r6, r0, #0
+ ldr r0, [r5, #0x18]
+ bl FUN_02029EBC
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x18]
+ bl FUN_02029EC0
+ mov r3, #2
+ add r2, r0, #0
+ str r3, [sp]
+ mov r1, #1
+ add r0, r6, #0
+ str r1, [sp, #4]
+ bl FUN_0200AD38
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ mov r1, #0x10
+ bl FUN_0200A8E0
+ ldr r2, [sp, #0x14]
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r4, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xe0
+ sub r3, r1, r0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D9140 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r7, #0x50
+ add r0, r7, #0
+ add r2, r4, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_0200AB18
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D913C: .word 0x0000022D
+_021D9140: .word 0x00010200
+ thumb_func_end MOD57_021D905C
+
+ thumb_func_start MOD57_021D9144
+MOD57_021D9144: ; 0x021D9144
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021D9164
+ mov r1, #0
+ str r1, [sp]
+ ldr r3, _021D9180 ; =0x00010200
+ str r1, [sp, #4]
+ str r3, [sp, #8]
+ mov r3, #0xcd
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r4, pc}
+_021D9164:
+ mov r1, #5
+ str r1, [sp]
+ mov r1, #0x10
+ str r1, [sp, #4]
+ mov r1, #0
+ mov r2, #0xcd
+ add r3, r1, #0
+ bl FUN_020196F4
+ add r0, r4, #0
+ bl FUN_020191D0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D9180: .word 0x00010200
+ thumb_func_end MOD57_021D9144
+
+ thumb_func_start MOD57_021D9184
+MOD57_021D9184: ; 0x021D9184
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ add r7, r0, #0
+ bl MOD57_021D9578
+ 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, #0x19
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r0, #0x19
+ add r1, r7, #4
+ add r2, r0, #0
+ bl FUN_02008C9C
+ ldr r4, _021D92EC ; =0x021D994C
+ str r0, [r7]
+ mov r6, #0
+ add r5, r7, #0
+_021D91BC:
+ ldrb r0, [r4]
+ add r1, r6, #0
+ mov r2, #0x19
+ bl FUN_02008DEC
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r6, r6, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _021D91BC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x19
+ str r0, [sp, #8]
+ add r0, r1, #0
+ ldr r0, [r7, r0]
+ mov r1, #0x33
+ mov r2, #0x1c
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #9
+ str r0, [sp, #8]
+ mov r0, #0x19
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r7, r1]
+ mov r1, #0x33
+ mov r2, #0xb
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r7, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x19
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r7, r1]
+ mov r1, #0x33
+ mov r2, #0x25
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x19
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r7, r1]
+ mov r1, #0x33
+ mov r2, #0x27
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ sub r1, #0xc
+ ldr r0, [r7, r1]
+ bl FUN_02009A50
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r7, r0]
+ bl FUN_02009CF0
+ ldr r3, _021D92F0 ; =0x021D9960
+ add r2, sp, #0x1c
+ 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 r0, #0x33
+ mov r1, #0x19
+ bl FUN_02006670
+ str r0, [sp, #0x14]
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ add r0, r7, r0
+ mov r4, #0
+ str r0, [sp, #0x18]
+_021D9290:
+ lsl r6, r4, #2
+ add r1, sp, #0x1c
+ ldr r0, [sp, #0x14]
+ ldr r1, [r1, r6]
+ mov r2, #0x19
+ add r5, r7, r6
+ bl FUN_02006704
+ mov r1, #7
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D92CA
+ ldr r1, [sp, #0x18]
+ add r1, r1, r6
+ bl FUN_020B0138
+ cmp r0, #0
+ bne _021D92CE
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ bl ErrorHandling
+ b _021D92CE
+_021D92CA:
+ bl ErrorHandling
+_021D92CE:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #8
+ blo _021D9290
+ ldr r0, [sp, #0x14]
+ bl FUN_020066F4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D92EC: .word 0x021D994C
+_021D92F0: .word 0x021D9960
+ thumb_func_end MOD57_021D9184
+
+ thumb_func_start MOD57_021D92F4
+MOD57_021D92F4: ; 0x021D92F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x88
+ add r7, r1, #0
+ mov r1, #1
+ str r0, [sp, #0x2c]
+ str r1, [sp]
+ sub r0, r1, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r3, [sp, #0x2c]
+ str r1, [sp, #0x10]
+ ldr r3, [r3, r0]
+ add r4, r0, #4
+ str r3, [sp, #0x14]
+ ldr r3, [sp, #0x2c]
+ ldr r3, [r3, r4]
+ add r4, r0, #0
+ str r3, [sp, #0x18]
+ ldr r3, [sp, #0x2c]
+ add r4, #8
+ ldr r3, [r3, r4]
+ add r0, #0xc
+ str r3, [sp, #0x1c]
+ ldr r3, [sp, #0x2c]
+ ldr r0, [r3, r0]
+ add r3, r1, #0
+ str r0, [sp, #0x20]
+ str r2, [sp, #0x24]
+ str r2, [sp, #0x28]
+ add r0, sp, #0x64
+ add r2, r1, #0
+ bl FUN_02008AA4
+ ldr r0, [sp, #0x2c]
+ mov r4, #0
+ ldr r0, [r0]
+ ldr r6, _021D94B4 ; =0x021D99C0
+ str r0, [sp, #0x34]
+ add r0, sp, #0x64
+ str r0, [sp, #0x38]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r4, [sp, #0x3c]
+ str r4, [sp, #0x40]
+ str r4, [sp, #0x44]
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x4c]
+ str r0, [sp, #0x50]
+ add r0, sp, #0x34
+ strh r4, [r0, #0x20]
+ mov r0, #2
+ str r0, [sp, #0x58]
+ mov r0, #1
+ str r0, [sp, #0x5c]
+ mov r0, #0x19
+ ldr r5, [sp, #0x2c]
+ str r0, [sp, #0x60]
+_021D936E:
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x3c]
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x40]
+ add r0, sp, #0x34
+ bl FUN_0201FE94
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02020130
+ ldrb r0, [r7, r4]
+ cmp r0, #0
+ bne _021D93AE
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_021D93AE:
+ add r4, r4, #1
+ add r6, #8
+ add r5, r5, #4
+ cmp r4, #8
+ blt _021D936E
+ mov r0, #8
+ ldr r4, _021D94B8 ; =0x021D9980
+ ldr r5, [sp, #0x2c]
+ str r0, [sp, #0x30]
+ mov r6, #0
+ mov r7, #1
+_021D93C4:
+ ldr r0, [r4]
+ str r7, [sp, #0x58]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x3c]
+ ldr r0, [r4, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x40]
+ add r0, sp, #0x34
+ bl FUN_0201FE94
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #8
+ bl FUN_02020130
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r4, #8
+ add r5, r5, #4
+ cmp r6, #8
+ blt _021D93C4
+ ldr r0, [sp, #0x30]
+ ldr r4, _021D94B8 ; =0x021D9980
+ add r0, #8
+ str r0, [sp, #0x30]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x30]
+ mov r6, #0
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x2c]
+ mov r7, #1
+ add r5, r0, r1
+_021D9424:
+ ldr r0, [r4]
+ str r7, [sp, #0x58]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x3c]
+ ldr r0, [r4, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x40]
+ add r0, sp, #0x34
+ bl FUN_0201FE94
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #9
+ bl FUN_02020130
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r6, r6, #1
+ add r4, #8
+ add r5, r5, #4
+ cmp r6, #8
+ blt _021D9424
+ mov r1, #0
+ add r0, sp, #0x84
+ strb r1, [r0]
+ mov r0, #6
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x3c]
+ mov r0, #0x22
+ lsl r0, r0, #0xe
+ str r0, [sp, #0x40]
+ str r1, [sp, #0x58]
+ mov r1, #0x57
+ ldr r0, [sp, #0x2c]
+ lsl r1, r1, #2
+ add r4, r0, r1
+ ldr r0, [sp, #0x30]
+ add r0, #8
+ str r0, [sp, #0x30]
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x16
+ add r0, sp, #0x34
+ bl FUN_0201FE94
+ str r0, [r4, r5]
+ ldr r0, [r4, r5]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4, r5]
+ mov r1, #0xa
+ bl FUN_02020130
+ ldr r0, [r4, r5]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #0x88
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D94B4: .word 0x021D99C0
+_021D94B8: .word 0x021D9980
+ thumb_func_end MOD57_021D92F4
+
+ thumb_func_start MOD57_021D94BC
+MOD57_021D94BC: ; 0x021D94BC
+ push {r4, r5, r6, lr}
+ mov r6, #7
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #6
+_021D94C6:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02016A18
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #8
+ blo _021D94C6
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009C0C
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02009E04
+ mov r6, #0x4b
+ mov r4, #0
+ lsl r6, r6, #2
+_021D94F4:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02008E2C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D94F4
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD57_021D94BC
+
+ thumb_func_start MOD57_021D951C
+MOD57_021D951C: ; 0x021D951C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #8
+ blo _021D952E
+ bl ErrorHandling
+_021D952E:
+ cmp r6, #3
+ bls _021D9536
+ bl ErrorHandling
+_021D9536:
+ lsl r7, r4, #2
+ mov r0, #0x57
+ add r1, r5, r7
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_020B19C4
+ str r0, [sp]
+ lsl r0, r4, #5
+ str r0, [sp, #4]
+ mov r0, #0x1e
+ add r1, r5, r7
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ lsl r5, r6, #5
+ ldr r4, [r0, #0xc]
+ mov r1, #0x20
+ add r0, r4, r5
+ bl DC_FlushRange
+ ldr r2, [sp]
+ ldr r1, [sp, #4]
+ add r0, r4, r5
+ add r1, r2, r1
+ mov r2, #0x20
+ bl GX_LoadOBJPltt
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D951C
+
+ thumb_func_start MOD57_021D9578
+MOD57_021D9578: ; 0x021D9578
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021D95A4 ; =0x021D9950
+ 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, #2
+ mov r1, #0x19
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D95A4: .word 0x021D9950
+ thumb_func_end MOD57_021D9578
+
+ thumb_func_start MOD57_021D95A8
+MOD57_021D95A8: ; 0x021D95A8
+ mov r2, #0
+ mov r1, #0xff
+_021D95AC:
+ strb r2, [r0]
+ strb r1, [r0, #1]
+ add r2, r2, #1
+ add r0, r0, #2
+ cmp r2, #4
+ blt _021D95AC
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD57_021D95A8
+
+ thumb_func_start MOD57_021D95BC
+MOD57_021D95BC: ; 0x021D95BC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ bl MOD57_021D95F4
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD57_021D9624
+ cmp r0, #1
+ beq _021D95F0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD57_021D965C
+ cmp r0, #1
+ beq _021D95F0
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD57_021D9694
+ cmp r0, #1
+_021D95F0:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D95BC
+
+ thumb_func_start MOD57_021D95F4
+MOD57_021D95F4: ; 0x021D95F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r4, #0
+ add r5, r7, #0
+ mov r6, #0xff
+_021D95FE:
+ ldrb r0, [r5, #1]
+ cmp r0, #0xff
+ beq _021D9612
+ ldrb r0, [r5]
+ add r0, r0, #3
+ bl FUN_020048BC
+ cmp r0, #0
+ bne _021D9612
+ strb r6, [r5, #1]
+_021D9612:
+ add r4, r4, #1
+ add r5, r5, #2
+ cmp r4, #4
+ blt _021D95FE
+ add r0, r7, #0
+ bl MOD57_021D96D8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D95F4
+
+ thumb_func_start MOD57_021D9624
+MOD57_021D9624: ; 0x021D9624
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r4, #0
+ add r1, r6, #0
+_021D962E:
+ ldrb r0, [r1, #1]
+ cmp r5, r0
+ bne _021D964E
+ lsl r7, r4, #1
+ ldrb r0, [r6, r7]
+ add r1, r5, #0
+ bl MOD57_021D96F4
+ ldrb r2, [r6, r7]
+ add r0, r6, #0
+ add r1, r4, #0
+ add r3, r5, #0
+ bl MOD57_021D96B0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D964E:
+ add r4, r4, #1
+ add r1, r1, #2
+ cmp r4, #4
+ blt _021D962E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D9624
+
+ thumb_func_start MOD57_021D965C
+MOD57_021D965C: ; 0x021D965C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r4, #0
+ add r1, r5, #0
+_021D9666:
+ ldrb r0, [r1, #1]
+ cmp r0, #0xff
+ bne _021D9686
+ lsl r6, r4, #1
+ ldrb r0, [r5, r6]
+ add r1, r7, #0
+ bl MOD57_021D96F4
+ ldrb r2, [r5, r6]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r3, r7, #0
+ bl MOD57_021D96B0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9686:
+ add r4, r4, #1
+ add r1, r1, #2
+ cmp r4, #4
+ blt _021D9666
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD57_021D965C
+
+ thumb_func_start MOD57_021D9694
+MOD57_021D9694: ; 0x021D9694
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrb r0, [r5, #6]
+ add r4, r1, #0
+ bl MOD57_021D96F4
+ ldrb r2, [r5, #6]
+ add r0, r5, #0
+ mov r1, #3
+ add r3, r4, #0
+ bl MOD57_021D96B0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD57_021D9694
+
+ thumb_func_start MOD57_021D96B0
+MOD57_021D96B0: ; 0x021D96B0
+ push {r4, r5}
+ cmp r1, #0
+ ble _021D96CE
+ lsl r4, r1, #1
+ add r4, r0, r4
+_021D96BA:
+ sub r5, r4, #2
+ ldrb r5, [r5]
+ sub r1, r1, #1
+ strb r5, [r4]
+ sub r5, r4, #1
+ ldrb r5, [r5]
+ strb r5, [r4, #1]
+ sub r4, r4, #2
+ cmp r1, #0
+ bgt _021D96BA
+_021D96CE:
+ strb r2, [r0]
+ strb r3, [r0, #1]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD57_021D96B0
+
+ thumb_func_start MOD57_021D96D8
+MOD57_021D96D8: ; 0x021D96D8
+ mov r3, #0
+ mov r1, #0xff
+_021D96DC:
+ ldrb r2, [r0]
+ cmp r2, #0xff
+ bne _021D96E8
+ ldrb r2, [r0, #2]
+ strb r2, [r0]
+ strb r1, [r0, #2]
+_021D96E8:
+ add r3, r3, #1
+ add r0, r0, #2
+ cmp r3, #4
+ blt _021D96DC
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD57_021D96D8
+
+ thumb_func_start MOD57_021D96F4
+MOD57_021D96F4: ; 0x021D96F4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r2, #0
+ add r0, r5, #3
+ add r4, r1, #0
+ ldr r2, _021D9720 ; =0x00000694
+ add r1, r0, #0
+ bl FUN_020048A0
+ ldr r2, _021D9724 ; =0x021D9A00
+ lsl r3, r4, #1
+ ldrh r2, [r2, r3]
+ mov r3, #4
+ sub r4, r3, r6
+ mov r3, #0x98
+ mul r3, r4
+ ldr r1, _021D9728 ; =0x0000FFFF
+ add r0, r5, #3
+ sub r2, r2, r3
+ bl FUN_02004D20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9720: .word 0x00000694
+_021D9724: .word 0x021D9A00
+_021D9728: .word 0x0000FFFF
+ thumb_func_end MOD57_021D96F4
+
+ .section .rodata
+ ; 0x021D972C
+ .incbin "baserom.nds", 0x2A844C, 0x2E4
diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s
new file mode 100644
index 00000000..c7305812
--- /dev/null
+++ b/arm9/modules/58/asm/module_58.s
@@ -0,0 +1,2481 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD58_021D9A20
+MOD58_021D9A20: ; 0x021D9A20
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _021D9A36
+ cmp r1, #1
+ bne _021D9A34
+ b _021D9B56
+_021D9A34:
+ b _021D9B64
+_021D9A36:
+ 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
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D9B6C ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D9B70 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #3
+ mov r1, #0x27
+ lsl r2, r2, #6
+ bl FUN_0201681C
+ ldr r1, _021D9B74 ; =0x00005CB0
+ add r0, r6, #0
+ mov r2, #0x27
+ bl FUN_02006268
+ ldr r2, _021D9B74 ; =0x00005CB0
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x27
+ bl FUN_02016B94
+ str r0, [r4]
+ mov r0, #0x27
+ bl FUN_0200AA80
+ str r0, [r4, #0x10]
+ ldr r2, _021D9B78 ; =0x00000176
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x27
+ bl FUN_0200A86C
+ str r0, [r4, #0x14]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ bl MOD58_021D9CDC
+ ldr r0, [r4]
+ bl MOD58_021D9CFC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x27
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r6, #0
+ bl FUN_0200628C
+ bl FUN_02029ABC
+ bl FUN_02029AC8
+ ldr r1, _021D9B7C ; =0x00005B98
+ str r0, [r4, r1]
+ add r0, r6, #0
+ bl FUN_0200628C
+ bl FUN_02029FC8
+ str r0, [r4, #8]
+ add r0, r6, #0
+ bl FUN_0200628C
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ bl MOD58_021D9F14
+ bl FUN_0201CC08
+ mov r0, #1
+ bl FUN_0201CC24
+ ldr r0, _021D9B80 ; =MOD58_021D9CB4
+ ldr r1, [r4]
+ bl FUN_02015F10
+ mov r0, #2
+ mov r1, #0x27
+ bl FUN_02002C50
+ add r0, r4, #0
+ bl MOD58_021D9E04
+ bl MOD58_021DA014
+ add r0, r4, #0
+ bl MOD58_021DA044
+ add r0, r4, #0
+ bl MOD58_021DA1C4
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD58_021DA30C
+ mov r1, #0
+ mov r0, #0x38
+ add r2, r1, #0
+ bl FUN_0200433C
+ ldr r2, _021D9B84 ; =0x04000304
+ ldr r0, _021D9B88 ; =0xFFFF7FFF
+ ldrh r1, [r2]
+ and r0, r1
+ strh r0, [r2]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D9B64
+_021D9B56:
+ bl FUN_02006278
+ mov r0, #0
+ str r0, [r5]
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D9B64:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D9B6C: .word 0xFFFFE0FF
+_021D9B70: .word 0x04001000
+_021D9B74: .word 0x00005CB0
+_021D9B78: .word 0x00000176
+_021D9B7C: .word 0x00005B98
+_021D9B80: .word MOD58_021D9CB4
+_021D9B84: .word 0x04000304
+_021D9B88: .word 0xFFFF7FFF
+ thumb_func_end MOD58_021D9A20
+
+ thumb_func_start MOD58_021D9B8C
+MOD58_021D9B8C: ; 0x021D9B8C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021D9BA6
+ cmp r1, #1
+ beq _021D9BB4
+ cmp r1, #2
+ beq _021D9BD2
+ b _021D9BDE
+_021D9BA6:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9BDE
+ mov r0, #1
+ str r0, [r5]
+ b _021D9BDE
+_021D9BB4:
+ mov r2, #0xc3
+ lsl r2, r2, #2
+ ldr r2, [r4, r2]
+ lsl r3, r2, #2
+ ldr r2, _021D9BE8 ; =0x021DAFA0
+ ldr r2, [r2, r3]
+ cmp r2, #0
+ beq _021D9BC8
+ blx r2
+ str r0, [r5]
+_021D9BC8:
+ ldr r0, _021D9BEC ; =0x00004318
+ add r0, r4, r0
+ bl MOD58_021DAB34
+ b _021D9BDE
+_021D9BD2:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9BDE
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D9BDE:
+ ldr r0, [r4, #0x3c]
+ bl FUN_0201FDEC
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D9BE8: .word 0x021DAFA0
+_021D9BEC: .word 0x00004318
+ thumb_func_end MOD58_021D9B8C
+
+ thumb_func_start MOD58_021D9BF0
+MOD58_021D9BF0: ; 0x021D9BF0
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ bl FUN_02006278
+ add r6, r0, #0
+ ldr r0, _021D9CAC ; =0x00005B98
+ mov r1, #0x2d
+ lsl r1, r1, #4
+ ldr r0, [r6, r0]
+ ldr r1, [r6, r1]
+ bl MOD58_021DAC18
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x62
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0x5a
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_021D9C40:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D9C40
+ ldr r0, [r6, #0x3c]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ add r0, r6, #0
+ bl MOD58_021DA4CC
+ mov r0, #2
+ bl FUN_02002CF8
+ ldr r0, [r6]
+ bl MOD58_021D9ED8
+ bl FUN_0201CD04
+ ldr r0, [r6, #0x14]
+ bl FUN_0200A8B8
+ ldr r0, [r6, #0x10]
+ bl FUN_0200AB18
+ add r0, r6, #0
+ bl MOD58_021D9EA0
+ ldr r0, [sp]
+ bl FUN_0200627C
+ ldr r2, _021D9CB0 ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x27
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9CAC: .word 0x00005B98
+_021D9CB0: .word 0x04000304
+ thumb_func_end MOD58_021D9BF0
+
+ thumb_func_start MOD58_021D9CB4
+MOD58_021D9CB4: ; 0x021D9CB4
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ add r0, r4, #0
+ bl FUN_0201AB60
+ ldr r3, _021D9CD4 ; =0x027E0000
+ ldr r1, _021D9CD8 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D9CD4: .word 0x027E0000
+_021D9CD8: .word 0x00003FF8
+ thumb_func_end MOD58_021D9CB4
+
+ thumb_func_start MOD58_021D9CDC
+MOD58_021D9CDC: ; 0x021D9CDC
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D9CF8 ; =0x021DAE6C
+ add r3, sp, #0
+ mov r2, #5
+_021D9CE6:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D9CE6
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D9CF8: .word 0x021DAE6C
+ thumb_func_end MOD58_021D9CDC
+
+ thumb_func_start MOD58_021D9CFC
+MOD58_021D9CFC: ; 0x021D9CFC
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ ldr r5, _021D9DEC ; =0x021DADC0
+ 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, _021D9DF0 ; =0x021DAE18
+ 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, _021D9DF4 ; =0x021DAE34
+ 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, _021D9DF8 ; =0x021DAE50
+ 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, _021D9DFC ; =0x021DADE0
+ 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, _021D9E00 ; =0x021DADFC
+ 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, #0x27
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x27
+ bl FUN_02017F18
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ nop
+_021D9DEC: .word 0x021DADC0
+_021D9DF0: .word 0x021DAE18
+_021D9DF4: .word 0x021DAE34
+_021D9DF8: .word 0x021DAE50
+_021D9DFC: .word 0x021DADE0
+_021D9E00: .word 0x021DADFC
+ thumb_func_end MOD58_021D9CFC
+
+ thumb_func_start MOD58_021D9E04
+MOD58_021D9E04: ; 0x021D9E04
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, _021D9E90 ; =0x0000433D
+ mov r6, #0
+ add r5, r7, r0
+ mov r0, #0xf0
+ add r4, r7, #0
+ str r0, [sp]
+_021D9E14:
+ mov r0, #8
+ mov r1, #0x27
+ bl FUN_020219F4
+ str r0, [r4, #0x18]
+ ldrb r1, [r5]
+ ldr r0, [sp]
+ add r6, r6, #1
+ bic r1, r0
+ strb r1, [r5]
+ ldr r0, _021D9E94 ; =0x00004384
+ mov r1, #0
+ strh r1, [r4, r0]
+ add r4, r4, #4
+ add r5, #0x11
+ cmp r6, #5
+ blt _021D9E14
+ mov r0, #0x14
+ mov r1, #0x27
+ bl FUN_020219F4
+ str r0, [r7, #0x2c]
+ mov r0, #0x28
+ mov r1, #0x27
+ bl FUN_020219F4
+ str r0, [r7, #0x30]
+ mov r0, #0x50
+ mov r1, #0x27
+ bl FUN_020219F4
+ str r0, [r7, #0x34]
+ ldr r0, _021D9E98 ; =0x0000431A
+ mov r1, #0
+ strb r1, [r7, r0]
+ mov r0, #0xc3
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r7, r0]
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x2c]
+ mov r1, #0xc
+ bl FUN_0200A8E0
+ ldr r0, [r7, #0x14]
+ ldr r2, [r7, #0x30]
+ mov r1, #9
+ bl FUN_0200A8E0
+ mov r0, #0x27
+ bl FUN_02014590
+ ldr r1, _021D9E9C ; =0x00005C9C
+ mov r2, #5
+ str r0, [r7, r1]
+ add r1, r1, #4
+ mov r0, #0
+ add r1, r7, r1
+ bl MIi_CpuClearFast
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9E90: .word 0x0000433D
+_021D9E94: .word 0x00004384
+_021D9E98: .word 0x0000431A
+_021D9E9C: .word 0x00005C9C
+ thumb_func_end MOD58_021D9E04
+
+ thumb_func_start MOD58_021D9EA0
+MOD58_021D9EA0: ; 0x021D9EA0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, _021D9ED4 ; =0x00005C9C
+ ldr r0, [r6, r0]
+ bl FUN_020145A8
+ mov r4, #0
+ add r5, r6, #0
+_021D9EB0:
+ ldr r0, [r5, #0x18]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _021D9EB0
+ ldr r0, [r6, #0x34]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x30]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x2c]
+ bl FUN_02021A20
+ pop {r4, r5, r6, pc}
+ nop
+_021D9ED4: .word 0x00005C9C
+ thumb_func_end MOD58_021D9EA0
+
+ thumb_func_start MOD58_021D9ED8
+MOD58_021D9ED8: ; 0x021D9ED8
+ 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, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD58_021D9ED8
+
+ thumb_func_start MOD58_021D9F14
+MOD58_021D9F14: ; 0x021D9F14
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5]
+ mov r0, #0x60
+ mov r1, #0
+ str r0, [sp]
+ mov r0, #0x27
+ str r0, [sp, #4]
+ mov r0, #0x5f
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0x27
+ str r0, [sp, #4]
+ mov r0, #0x5f
+ mov r1, #2
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x27
+ bl FUN_02002EEC
+ mov r1, #0x1a
+ mov r0, #4
+ lsl r1, r1, #4
+ mov r2, #0x27
+ bl FUN_02002EEC
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x27
+ bl FUN_02017F18
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x27
+ str r0, [sp, #0xc]
+ mov r0, #0x5f
+ mov r1, #3
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x27
+ str r0, [sp, #0xc]
+ mov r0, #0x5f
+ mov r1, #5
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x27
+ str r0, [sp, #0xc]
+ mov r0, #0x5f
+ mov r1, #4
+ 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, #0x27
+ str r0, [sp, #0xc]
+ mov r0, #0x5f
+ mov r1, #6
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_020068C8
+ ldr r0, [r5, #0xc]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x27
+ 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, #0x27
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x1f
+ mov r3, #0xb
+ bl FUN_0200CB00
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD58_021D9F14
+
+ thumb_func_start MOD58_021DA014
+MOD58_021DA014: ; 0x021DA014
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021DA040 ; =0x021DADD0
+ 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, #0x27
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DA040: .word 0x021DADD0
+ thumb_func_end MOD58_021DA014
+
+ thumb_func_start MOD58_021DA044
+MOD58_021DA044: ; 0x021DA044
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ 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, #0x27
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r5, #0
+ mov r0, #0x32
+ add r1, #0x40
+ mov r2, #0x27
+ bl FUN_02008C9C
+ str r0, [r5, #0x3c]
+ add r0, r5, #0
+ mov r2, #1
+ add r0, #0x40
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ mov r7, #0x5a
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #2
+_021DA08A:
+ mov r0, #2
+ add r1, r6, #0
+ mov r2, #0x27
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _021DA08A
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x27
+ str r0, [sp, #8]
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x5f
+ mov r2, #7
+ bl FUN_02008F34
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0x27
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x5f
+ bl FUN_02008FEC
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x5f
+ mov r2, #8
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x5f
+ mov r2, #9
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x5f
+ mov r2, #7
+ bl FUN_02008F34
+ mov r1, #0x62
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r2, #1
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ mov r0, #0x27
+ sub r1, #0x1c
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x5f
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x5f
+ mov r2, #8
+ bl FUN_020090AC
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x27
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x5f
+ mov r2, #9
+ bl FUN_020090AC
+ mov r1, #0x65
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ bl FUN_02009A50
+ mov r0, #0x62
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD58_021DA044
+
+ thumb_func_start MOD58_021DA1C4
+MOD58_021DA1C4: ; 0x021DA1C4
+ push {r3, r4, lr}
+ sub sp, #0x5c
+ 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, #0x5a
+ str r1, [sp, #0x10]
+ lsl r2, r2, #2
+ 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, #0x30
+ 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, #0x5a
+ 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, #2
+ 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, #0x54
+ 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
+ ldr r0, [r4, #0x3c]
+ mov r2, #0
+ str r0, [sp, #0x2c]
+ mov r0, #0x66
+ lsl r0, r0, #2
+ add r1, r4, r0
+ str r1, [sp, #0x30]
+ mov r1, #1
+ lsl r1, r1, #0xc
+ add r0, #0x24
+ str r2, [sp, #0x3c]
+ str r1, [sp, #0x40]
+ str r1, [sp, #0x44]
+ str r1, [sp, #0x48]
+ add r1, sp, #0x2c
+ strh r2, [r1, #0x20]
+ mov r1, #1
+ add r0, r4, r0
+ str r0, [sp, #0x30]
+ mov r0, #0xe
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x34]
+ mov r0, #0xaf
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ str r1, [sp, #0x50]
+ str r1, [sp, #0x54]
+ mov r1, #0x27
+ add r0, sp, #0x2c
+ str r1, [sp, #0x58]
+ bl FUN_0201FE94
+ mov r1, #0x25
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x25
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02020130
+ mov r0, #0x25
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02020248
+ mov r0, #0x25
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x5c
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD58_021DA1C4
+
+ thumb_func_start MOD58_021DA2CC
+MOD58_021DA2CC: ; 0x021DA2CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r2, #0
+ mov r0, #2
+ mov r2, #0
+ add r6, r1, #0
+ add r7, r3, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ add r1, r7, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldrb r4, [r5, #7]
+ add r0, r5, #0
+ add r2, r6, #0
+ lsl r4, r4, #3
+ sub r4, r4, r3
+ lsr r3, r4, #0x1f
+ add r3, r4, r3
+ asr r3, r3, #1
+ bl FUN_0201BDE0
+ ldr r0, [r5, #0xc]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD58_021DA2CC
+
+ thumb_func_start MOD58_021DA30C
+MOD58_021DA30C: ; 0x021DA30C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ mov r0, #1
+ 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
+ mov r1, #0xb5
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #9
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #8
+ mov r1, #0xb1
+ lsl r1, r1, #2
+ str r0, [sp, #8]
+ mov r2, #1
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r5, r1
+ mov r3, #4
+ bl FUN_02019064
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #2
+ bl FUN_02019620
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #0xc1
+ mov r1, #0xb9
+ str r0, [sp, #0x10]
+ lsl r1, r1, #2
+ ldr r0, [r5]
+ add r1, r5, r1
+ mov r2, #1
+ mov r3, #0x1a
+ bl FUN_02019064
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _021DA4BC ; =0x000E0702
+ mov r2, #1
+ str r0, [sp]
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldr r1, [r5, #0x2c]
+ add r0, r5, r0
+ mov r3, #2
+ bl MOD58_021DA2CC
+ mov r1, #2
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ mov r4, #0
+ ldr r0, _021DA4C0 ; =0x00005B9C
+ str r4, [sp, #0x18]
+ add r7, r4, #0
+ add r6, r5, r0
+_021DA3C2:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #4
+ mov r2, #2
+ add r3, r4, #0
+ str r6, [sp, #4]
+ bl FUN_02011B20
+ mov r1, #1
+ add r0, r6, #0
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ mov r2, #1
+ add r0, r6, #0
+ add r1, r7, #0
+ lsl r2, r2, #8
+ bl GX_LoadOBJ
+ mov r0, #1
+ lsl r0, r0, #8
+ add r7, r7, r0
+ ldr r0, [sp, #0x18]
+ add r4, r4, #4
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ cmp r0, #2
+ blt _021DA3C2
+ mov r3, #2
+ str r3, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ mov r1, #0xbd
+ lsl r1, r1, #2
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xd1
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r5, r1
+ mov r2, #1
+ bl FUN_02019064
+ ldr r1, [r5, #0x30]
+ mov r0, #1
+ mov r2, #0
+ bl FUN_02002E14
+ add r4, r0, #0
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #0xe0
+ sub r4, r3, r4
+ lsr r3, r4, #0x1f
+ add r3, r4, r3
+ ldr r0, _021DA4C4 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r2, [r5, #0x30]
+ add r0, r5, r0
+ mov r1, #1
+ asr r3, r3, #1
+ bl FUN_0201BDE0
+ mov r0, #0
+ str r0, [sp, #0x14]
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ mov r7, #1
+ mov r6, #3
+ add r4, r5, r0
+_021DA46A:
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ lsl r0, r7, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, r4, #0
+ mov r2, #4
+ mov r3, #5
+ bl FUN_02019064
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x14]
+ add r7, #0x14
+ add r0, r0, #1
+ add r6, r6, #4
+ add r4, #0x10
+ str r0, [sp, #0x14]
+ cmp r0, #5
+ blt _021DA46A
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r2, _021DA4C8 ; =0x000E0D0F
+ add r0, r5, r0
+ mov r1, #0
+ add r3, r5, #0
+ bl MOD58_021DAB74
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DA4BC: .word 0x000E0702
+_021DA4C0: .word 0x00005B9C
+_021DA4C4: .word 0x00010200
+_021DA4C8: .word 0x000E0D0F
+ thumb_func_end MOD58_021DA30C
+
+ thumb_func_start MOD58_021DA4CC
+MOD58_021DA4CC: ; 0x021DA4CC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ mov r4, #0
+ add r5, r6, r0
+_021DA4D8:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #5
+ blt _021DA4D8
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r0, r6, r0
+ bl FUN_02019178
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD58_021DA4CC
+
+ thumb_func_start MOD58_021DA510
+MOD58_021DA510: ; 0x021DA510
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD58_021DA510
+
+ thumb_func_start MOD58_021DA514
+MOD58_021DA514: ; 0x021DA514
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x44
+ add r4, r0, #0
+ ldr r0, _021DA5DC ; =0x021DADAE
+ bl FUN_02020988
+ add r1, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r1, r0
+ beq _021DA568
+ cmp r1, #0
+ bne _021DA55A
+ mov r0, #0xc3
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021DA568
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD58_021DAB94
+ mov r0, #0xc3
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ sub r0, #0xbc
+ add r0, r4, r0
+ mov r1, #1
+ bl MOD58_021DA614
+ ldr r0, _021DA5E0 ; =0x000005DD
+ bl FUN_020054C8
+ b _021DA568
+_021DA55A:
+ ldr r0, _021DA5E4 ; =0x0000431A
+ strb r1, [r4, r0]
+ mov r0, #0x25
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD58_021DA5F4
+_021DA568:
+ ldr r0, _021DA5E8 ; =0x021DADA6
+ bl FUN_02020968
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _021DA57C
+ add r0, r4, #0
+ bl MOD58_021DAC7C
+_021DA57C:
+ add r0, sp, #0
+ mov r1, #4
+ mov r2, #1
+ bl FUN_0201CD38
+ cmp r0, #1
+ bne _021DA5D8
+ add r7, sp, #0
+ ldrh r3, [r7]
+ mov r1, #0
+ cmp r3, #0
+ ble _021DA5B0
+ ldr r5, _021DA5EC ; =0x0000431C
+ add r2, sp, #0
+ add r6, r5, #0
+ add r6, #8
+_021DA59C:
+ ldrh r3, [r2, #2]
+ add r0, r4, r1
+ add r1, r1, #1
+ strb r3, [r0, r5]
+ ldrh r3, [r2, #4]
+ add r2, #8
+ strb r3, [r0, r6]
+ ldrh r3, [r7]
+ cmp r1, r3
+ blt _021DA59C
+_021DA5B0:
+ ldr r0, _021DA5F0 ; =0x0000432C
+ mov r2, #0xf0
+ ldrb r1, [r4, r0]
+ bic r1, r2
+ lsl r2, r3, #0x18
+ lsr r2, r2, #0x18
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x18
+ orr r1, r2
+ strb r1, [r4, r0]
+ ldrb r3, [r4, r0]
+ mov r1, #0xf
+ bic r3, r1
+ add r1, r0, #0
+ sub r1, #0x12
+ ldrb r2, [r4, r1]
+ mov r1, #0xf
+ and r1, r2
+ orr r1, r3
+ strb r1, [r4, r0]
+_021DA5D8:
+ add sp, #0x44
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DA5DC: .word 0x021DADAE
+_021DA5E0: .word 0x000005DD
+_021DA5E4: .word 0x0000431A
+_021DA5E8: .word 0x021DADA6
+_021DA5EC: .word 0x0000431C
+_021DA5F0: .word 0x0000432C
+ thumb_func_end MOD58_021DA514
+
+ thumb_func_start MOD58_021DA5F4
+MOD58_021DA5F4: ; 0x021DA5F4
+ push {r3, lr}
+ ldr r2, _021DA610 ; =0x021DADA0
+ cmp r1, #0
+ ldr r0, [r0]
+ bne _021DA608
+ ldrh r1, [r2, #4]
+ add r1, r1, #1
+ bl FUN_02020130
+ pop {r3, pc}
+_021DA608:
+ ldrh r1, [r2, #4]
+ bl FUN_02020130
+ pop {r3, pc}
+ .align 2, 0
+_021DA610: .word 0x021DADA0
+ thumb_func_end MOD58_021DA5F4
+
+ thumb_func_start MOD58_021DA614
+MOD58_021DA614: ; 0x021DA614
+ push {r3, lr}
+ cmp r1, #1
+ ldr r0, [r0]
+ bne _021DA624
+ mov r1, #1
+ bl FUN_02020130
+ pop {r3, pc}
+_021DA624:
+ mov r1, #0
+ bl FUN_02020130
+ pop {r3, pc}
+ thumb_func_end MOD58_021DA614
+
+ thumb_func_start MOD58_021DA62C
+MOD58_021DA62C: ; 0x021DA62C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD58_021DA514
+ mov r0, #0x9d
+ lsl r0, r0, #2
+ ldr r2, _021DA66C ; =0x000E0C0F
+ add r0, r5, r0
+ mov r1, #0
+ add r3, r5, #0
+ bl MOD58_021DAB74
+ add r0, r5, #0
+ bl MOD58_021DAB78
+ add r0, r5, #0
+ bl MOD58_021DAB30
+ ldr r2, _021DA670 ; =0x0000432D
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ add r1, r5, r2
+ add r2, #0x55
+ add r0, r5, r0
+ add r2, r5, r2
+ mov r3, #1
+ bl MOD58_021DAA70
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021DA66C: .word 0x000E0C0F
+_021DA670: .word 0x0000432D
+ thumb_func_end MOD58_021DA62C
+
+ thumb_func_start MOD58_021DA674
+MOD58_021DA674: ; 0x021DA674
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD58_021DA510
+ add r0, r4, #0
+ bl MOD58_021DAB30
+ ldr r2, _021DA698 ; =0x0000432D
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0x55
+ add r0, r4, r0
+ add r2, r4, r2
+ mov r3, #0
+ bl MOD58_021DAA70
+ pop {r4, pc}
+ .align 2, 0
+_021DA698: .word 0x0000432D
+ thumb_func_end MOD58_021DA674
+
+ thumb_func_start MOD58_021DA69C
+MOD58_021DA69C: ; 0x021DA69C
+ push {lr}
+ sub sp, #0x14
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0xb4
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ mov r2, #0x19
+ add r0, sp, #0
+ strb r2, [r0, #0x10]
+ mov r2, #6
+ strb r2, [r0, #0x11]
+ add r0, r1, #0
+ add r1, sp, #0
+ bl FUN_020145C8
+ add sp, #0x14
+ pop {pc}
+ thumb_func_end MOD58_021DA69C
+
+ thumb_func_start MOD58_021DA6C4
+MOD58_021DA6C4: ; 0x021DA6C4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x38]
+ add r4, r1, #0
+ bl MOD58_021DAC00
+ cmp r0, #0
+ beq _021DA6E6
+ ldr r1, _021DA6F0 ; =0x00005C9C
+ ldr r0, [r5]
+ ldr r1, [r5, r1]
+ bl MOD58_021DA69C
+ mov r0, #0xc3
+ mov r1, #3
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_021DA6E6:
+ add r0, r5, #0
+ bl MOD58_021DA674
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA6F0: .word 0x00005C9C
+ thumb_func_end MOD58_021DA6C4
+
+ thumb_func_start MOD58_021DA6F4
+MOD58_021DA6F4: ; 0x021DA6F4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _021DA784 ; =0x00005C9C
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _021DA70E
+ cmp r0, #2
+ beq _021DA748
+ b _021DA76E
+_021DA70E:
+ ldr r0, [r5, #8]
+ mov r1, #4
+ bl FUN_0202A170
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ ldr r0, _021DA784 ; =0x00005C9C
+ ldr r0, [r5, r0]
+ bl FUN_020146C4
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x27
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ mov r0, #2
+ pop {r4, r5, pc}
+_021DA748:
+ mov r0, #0xc3
+ mov r1, #4
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ sub r0, #0xbc
+ add r0, r5, r0
+ mov r1, #0
+ bl MOD58_021DA614
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ ldr r0, _021DA784 ; =0x00005C9C
+ ldr r0, [r5, r0]
+ bl FUN_020146C4
+_021DA76E:
+ ldr r1, _021DA788 ; =0x0000432C
+ mov r0, #0xf0
+ ldrb r2, [r5, r1]
+ bic r2, r0
+ add r0, r5, #0
+ strb r2, [r5, r1]
+ bl MOD58_021DA674
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DA784: .word 0x00005C9C
+_021DA788: .word 0x0000432C
+ thumb_func_end MOD58_021DA6F4
+
+ thumb_func_start MOD58_021DA78C
+MOD58_021DA78C: ; 0x021DA78C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021DA7F0 ; =0x00005C9C
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0201466C
+ cmp r0, #1
+ beq _021DA7A4
+ cmp r0, #2
+ beq _021DA7D4
+ b _021DA7EC
+_021DA7A4:
+ mov r0, #0xc3
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ sub r0, #0x38
+ add r0, r5, r0
+ bl FUN_0200D0E0
+ ldr r0, _021DA7F0 ; =0x00005C9C
+ ldr r0, [r5, r0]
+ bl FUN_020146C4
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #2
+ bl FUN_02019620
+ mov r0, #0xb1
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl FUN_020191D0
+ b _021DA7EC
+_021DA7D4:
+ mov r0, #0xc3
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ sub r0, #0x38
+ add r0, r5, r0
+ bl FUN_0200D0E0
+ ldr r0, _021DA7F0 ; =0x00005C9C
+ ldr r0, [r5, r0]
+ bl FUN_020146C4
+_021DA7EC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA7F0: .word 0x00005C9C
+ thumb_func_end MOD58_021DA78C
+
+ thumb_func_start MOD58_021DA7F4
+MOD58_021DA7F4: ; 0x021DA7F4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0xb
+ add r5, r0, #0
+ bl MOD58_021DAB94
+ mov r0, #0xc3
+ mov r1, #5
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r5, #0
+ bl MOD58_021DA674
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD58_021DA7F4
+
+ thumb_func_start MOD58_021DA814
+MOD58_021DA814: ; 0x021DA814
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x38]
+ add r4, r1, #0
+ bl MOD58_021DAC00
+ cmp r0, #0
+ beq _021DA836
+ mov r0, #0xc3
+ mov r1, #6
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r1, _021DA840 ; =0x00005C9C
+ ldr r0, [r5]
+ ldr r1, [r5, r1]
+ bl MOD58_021DA69C
+_021DA836:
+ add r0, r5, #0
+ bl MOD58_021DA674
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021DA840: .word 0x00005C9C
+ thumb_func_end MOD58_021DA814
+
+ thumb_func_start MOD58_021DA844
+MOD58_021DA844: ; 0x021DA844
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ ldr r4, [sp, #0x38]
+ mov ip, r1
+ add r6, r2, #0
+ add r7, r3, #0
+ str r0, [sp, #0x18]
+ ldr r3, [sp, #0x3c]
+ ldr r2, [sp, #0x40]
+ ldr r1, [sp, #0x44]
+ cmp r4, #0
+ bge _021DA870
+ neg r0, r4
+ cmp r0, r2
+ ble _021DA864
+ add r0, r2, #0
+_021DA864:
+ ldr r5, [sp, #0x30]
+ mov r4, #0
+ sub r5, r5, r0
+ add r6, r6, r0
+ str r5, [sp, #0x30]
+ sub r2, r2, r0
+_021DA870:
+ cmp r3, #0
+ bge _021DA888
+ neg r0, r3
+ cmp r0, r1
+ ble _021DA87C
+ add r0, r1, #0
+_021DA87C:
+ ldr r5, [sp, #0x34]
+ mov r3, #0
+ sub r5, r5, r0
+ add r7, r7, r0
+ str r5, [sp, #0x34]
+ sub r1, r1, r0
+_021DA888:
+ ldr r0, [sp, #0x30]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #0x34]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ lsl r0, r3, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0xc]
+ lsl r0, r2, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ lsl r0, r1, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x14]
+ lsl r2, r6, #0x10
+ lsl r3, r7, #0x10
+ ldr r0, [sp, #0x18]
+ mov r1, ip
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02019658
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD58_021DA844
+
+ thumb_func_start MOD58_021DA8C4
+MOD58_021DA8C4: ; 0x021DA8C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x50]
+ str r1, [sp, #0x1c]
+ str r0, [sp, #0x50]
+ ldr r0, [sp, #0x54]
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x54]
+ ldr r0, [sp, #0x50]
+ str r3, [sp, #0x24]
+ ldr r4, [r0]
+ ldr r0, [sp, #0x54]
+ ldr r5, [r0]
+ add r0, r2, #0
+ str r0, [sp, #0x38]
+ add r0, r3, #0
+ str r0, [sp, #0x30]
+ ldr r0, [sp, #0x58]
+ cmp r0, #0
+ bne _021DA904
+ ldr r0, [sp, #0x5c]
+ cmp r0, #0
+ bne _021DA904
+ ldr r0, [sp, #0x50]
+ add r1, r2, #0
+ str r1, [r0]
+ ldr r0, [sp, #0x54]
+ add r1, r3, #0
+ str r1, [r0]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+_021DA904:
+ ldr r0, [sp, #0x20]
+ sub r0, r0, r4
+ str r0, [sp, #0x34]
+ bpl _021DA910
+ neg r0, r0
+ str r0, [sp, #0x34]
+_021DA910:
+ ldr r0, [sp, #0x24]
+ sub r7, r0, r5
+ bpl _021DA918
+ neg r7, r7
+_021DA918:
+ ldr r0, [sp, #0x34]
+ cmp r0, r7
+ ble _021DA9A6
+ ldr r0, [sp, #0x20]
+ cmp r4, r0
+ ble _021DA93E
+ ldr r0, [sp, #0x24]
+ cmp r5, r0
+ ble _021DA930
+ mov r0, #1
+ str r0, [sp, #0x2c]
+ b _021DA936
+_021DA930:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x2c]
+_021DA936:
+ str r4, [sp, #0x38]
+ ldr r4, [sp, #0x20]
+ ldr r5, [sp, #0x24]
+ b _021DA950
+_021DA93E:
+ ldr r0, [sp, #0x24]
+ cmp r5, r0
+ bge _021DA94A
+ mov r0, #1
+ str r0, [sp, #0x2c]
+ b _021DA950
+_021DA94A:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x2c]
+_021DA950:
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ str r5, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r3, r2, #0
+ bl MOD58_021DA844
+ ldr r0, [sp, #0x34]
+ add r4, r4, #1
+ asr r6, r0, #1
+ ldr r0, [sp, #0x38]
+ cmp r4, r0
+ bgt _021DAA2A
+_021DA976:
+ sub r6, r6, r7
+ bpl _021DA982
+ ldr r0, [sp, #0x34]
+ add r6, r6, r0
+ ldr r0, [sp, #0x2c]
+ add r5, r5, r0
+_021DA982:
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ str r5, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r3, r2, #0
+ bl MOD58_021DA844
+ ldr r0, [sp, #0x38]
+ add r4, r4, #1
+ cmp r4, r0
+ ble _021DA976
+ b _021DAA2A
+_021DA9A6:
+ ldr r0, [sp, #0x24]
+ cmp r5, r0
+ ble _021DA9C6
+ ldr r0, [sp, #0x20]
+ cmp r4, r0
+ ble _021DA9B8
+ mov r0, #1
+ str r0, [sp, #0x28]
+ b _021DA9BE
+_021DA9B8:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x28]
+_021DA9BE:
+ str r5, [sp, #0x30]
+ ldr r5, [sp, #0x24]
+ ldr r4, [sp, #0x20]
+ b _021DA9D8
+_021DA9C6:
+ ldr r0, [sp, #0x20]
+ cmp r4, r0
+ bge _021DA9D2
+ mov r0, #1
+ str r0, [sp, #0x28]
+ b _021DA9D8
+_021DA9D2:
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x28]
+_021DA9D8:
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ str r5, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r3, r2, #0
+ bl MOD58_021DA844
+ ldr r0, [sp, #0x30]
+ add r5, r5, #1
+ asr r6, r7, #1
+ cmp r5, r0
+ bgt _021DAA2A
+_021DA9FC:
+ ldr r0, [sp, #0x34]
+ sub r6, r6, r0
+ bpl _021DAA08
+ ldr r0, [sp, #0x28]
+ add r6, r6, r7
+ add r4, r4, r0
+_021DAA08:
+ mov r0, #4
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ str r5, [sp, #0xc]
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ mov r2, #0
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ add r3, r2, #0
+ bl MOD58_021DA844
+ ldr r0, [sp, #0x30]
+ add r5, r5, #1
+ cmp r5, r0
+ ble _021DA9FC
+_021DAA2A:
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x50]
+ str r1, [r0]
+ ldr r1, [sp, #0x24]
+ ldr r0, [sp, #0x54]
+ str r1, [r0]
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD58_021DA8C4
+
+ thumb_func_start MOD58_021DAA3C
+MOD58_021DAA3C: ; 0x021DAA3C
+ mov r2, #0
+_021DAA3E:
+ ldrb r3, [r0, #0x10]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x1c
+ strh r3, [r1, #2]
+ ldrb r3, [r0, #0x10]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x1c
+ beq _021DAA62
+ add r3, r0, r3
+ sub r3, r3, #1
+ ldrb r3, [r3]
+ strb r3, [r1]
+ ldrb r3, [r0, #0x10]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x1c
+ add r3, r0, r3
+ ldrb r3, [r3, #7]
+ strb r3, [r1, #1]
+_021DAA62:
+ add r2, r2, #1
+ add r0, #0x11
+ add r1, r1, #4
+ cmp r2, #5
+ blt _021DAA3E
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD58_021DAA3C
+
+ thumb_func_start MOD58_021DAA70
+MOD58_021DAA70: ; 0x021DAA70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r7, r0, #0
+ mov r0, #0
+ str r1, [sp, #0x10]
+ str r2, [sp, #0x14]
+ str r3, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ str r0, [sp, #0x20]
+ add r5, r1, #0
+ add r6, r2, #0
+_021DAA86:
+ ldrb r0, [r5, #0x10]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ beq _021DAAEA
+ ldrh r0, [r6, #2]
+ cmp r0, #0
+ beq _021DAAA0
+ ldrb r0, [r6]
+ sub r0, #0x20
+ str r0, [sp, #0x28]
+ ldrb r0, [r6, #1]
+ sub r0, #0x48
+ str r0, [sp, #0x24]
+_021DAAA0:
+ ldrb r0, [r5, #0x10]
+ mov r4, #0
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x1c
+ cmp r1, #0
+ ble _021DAAEA
+ mov r0, #1
+ str r0, [sp, #0x1c]
+ cmp r1, #0
+ ble _021DAAEA
+_021DAAB4:
+ add r0, sp, #0x28
+ str r0, [sp]
+ add r0, sp, #0x24
+ str r0, [sp, #4]
+ str r4, [sp, #8]
+ ldrh r0, [r6, #2]
+ add r3, r5, r4
+ str r0, [sp, #0xc]
+ ldrb r1, [r5, #0x10]
+ ldrb r3, [r3, #8]
+ add r0, r7, #0
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ lsl r2, r1, #4
+ ldr r1, _021DAB2C ; =0x021DAE94
+ sub r3, #0x48
+ add r1, r1, r2
+ ldrb r2, [r5, r4]
+ sub r2, #0x20
+ bl MOD58_021DA8C4
+ ldrb r0, [r5, #0x10]
+ add r4, r4, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1c
+ cmp r4, r0
+ blt _021DAAB4
+_021DAAEA:
+ ldr r0, [sp, #0x20]
+ add r5, #0x11
+ add r0, r0, #1
+ add r6, r6, #4
+ str r0, [sp, #0x20]
+ cmp r0, #5
+ blt _021DAA86
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _021DAB0A
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ beq _021DAB0A
+ add r0, r7, #0
+ bl FUN_020191D0
+_021DAB0A:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ bl MOD58_021DAA3C
+ mov r3, #0
+ mov r1, #0xf0
+_021DAB16:
+ ldr r0, [sp, #0x10]
+ add r3, r3, #1
+ ldrb r2, [r0, #0x10]
+ bic r2, r1
+ strb r2, [r0, #0x10]
+ add r0, #0x11
+ str r0, [sp, #0x10]
+ cmp r3, #5
+ blt _021DAB16
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DAB2C: .word 0x021DAE94
+ thumb_func_end MOD58_021DAA70
+
+ thumb_func_start MOD58_021DAB30
+MOD58_021DAB30: ; 0x021DAB30
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD58_021DAB30
+
+ thumb_func_start MOD58_021DAB34
+MOD58_021DAB34: ; 0x021DAB34
+ push {r3, lr}
+ ldrh r1, [r0]
+ add r1, #0x14
+ strh r1, [r0]
+ ldrh r2, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ cmp r2, r1
+ bls _021DAB4A
+ mov r1, #0
+ strh r1, [r0]
+_021DAB4A:
+ ldrh r0, [r0]
+ bl FUN_0201B970
+ mov r1, #0xa
+ mul r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ add r0, #0xf
+ lsl r1, r0, #5
+ mov r0, #0x1d
+ orr r1, r0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, sp, #0
+ mov r1, #0x18
+ mov r2, #2
+ bl GX_LoadOBJPltt
+ pop {r3, pc}
+ thumb_func_end MOD58_021DAB34
+
+ thumb_func_start MOD58_021DAB74
+MOD58_021DAB74: ; 0x021DAB74
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD58_021DAB74
+
+ thumb_func_start MOD58_021DAB78
+MOD58_021DAB78: ; 0x021DAB78
+ ldr r1, _021DAB90 ; =0x0000431C
+ add r3, r0, r1
+ add r1, #0x11
+ add r2, r0, r1
+ mov r1, #0x11
+_021DAB82:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _021DAB82
+ bx lr
+ .align 2, 0
+_021DAB90: .word 0x0000431C
+ thumb_func_end MOD58_021DAB78
+
+ thumb_func_start MOD58_021DAB94
+MOD58_021DAB94: ; 0x021DAB94
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x50
+ mov r1, #0x27
+ bl FUN_020219F4
+ add r4, r0, #0
+ ldr r0, [r5, #0x14]
+ add r1, r6, #0
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x34]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #0
+ mov r2, #1
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ ldr r0, [r5, #0xc]
+ bl FUN_02024FF4
+ mov r3, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r2, [r5, #0x34]
+ add r0, r5, r0
+ mov r1, #1
+ bl FUN_0201BD84
+ str r0, [r5, #0x38]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD58_021DAB94
+
+ thumb_func_start MOD58_021DAC00
+MOD58_021DAC00: ; 0x021DAC00
+ push {r3, lr}
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021DAC12
+ mov r0, #1
+ pop {r3, pc}
+_021DAC12:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD58_021DAC00
+
+ thumb_func_start MOD58_021DAC18
+MOD58_021DAC18: ; 0x021DAC18
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0
+ add r5, r0, #0
+ str r1, [sp]
+ add r4, r7, #0
+ strb r7, [r5]
+ add r6, r7, #0
+_021DAC26:
+ ldr r0, [sp]
+ ldrb r1, [r0, r6]
+ mov r0, #0xf
+ and r0, r1
+ cmp r0, #1
+ bne _021DAC3C
+ mov r0, #1
+ ldrb r1, [r5]
+ lsl r0, r4
+ orr r0, r1
+ strb r0, [r5]
+_021DAC3C:
+ ldr r0, [sp]
+ ldrb r0, [r0, r6]
+ asr r0, r0, #4
+ cmp r0, #1
+ bne _021DAC52
+ ldrb r0, [r5]
+ add r2, r4, #1
+ mov r1, #1
+ lsl r1, r2
+ orr r0, r1
+ strb r0, [r5]
+_021DAC52:
+ add r4, r4, #2
+ cmp r4, #8
+ bne _021DAC62
+ mov r0, #0
+ add r5, r5, #1
+ add r7, r7, #1
+ strb r0, [r5]
+ add r4, r0, #0
+_021DAC62:
+ mov r0, #6
+ lsl r0, r0, #0xa
+ cmp r7, r0
+ blt _021DAC6E
+ bl ErrorHandling
+_021DAC6E:
+ mov r0, #6
+ add r6, r6, #1
+ lsl r0, r0, #0xa
+ cmp r6, r0
+ blt _021DAC26
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD58_021DAC18
+
+ thumb_func_start MOD58_021DAC7C
+MOD58_021DAC7C: ; 0x021DAC7C
+ push {r3, r4, r5, lr}
+ ldr r1, _021DAD28 ; =0x021C48F8
+ add r4, r0, #0
+ ldrh r0, [r1, #0x1c]
+ ldr r3, _021DAD2C ; =0x0000FFFF
+ cmp r0, r3
+ beq _021DAD16
+ ldrh r1, [r1, #0x1e]
+ cmp r1, r3
+ beq _021DAD16
+ ldr r2, _021DAD30 ; =0x00005CA8
+ ldr r5, [r4, r2]
+ cmp r5, r3
+ beq _021DAD16
+ add r1, r2, #4
+ ldr r1, [r4, r1]
+ cmp r1, r3
+ beq _021DAD16
+ cmp r5, r0
+ ble _021DACAC
+ mov r1, #0
+ sub r3, r5, r0
+ mvn r1, r1
+ b _021DACB0
+_021DACAC:
+ sub r3, r0, r5
+ mov r1, #1
+_021DACB0:
+ sub r0, r2, #6
+ strb r1, [r4, r0]
+ cmp r3, #3
+ blt _021DACE6
+ cmp r3, #0x28
+ bgt _021DACE6
+ ldr r0, _021DAD28 ; =0x021C48F8
+ ldrh r2, [r0, #0x1e]
+ ldr r0, _021DAD34 ; =0x00005CAC
+ ldr r1, [r4, r0]
+ cmp r1, r2
+ ble _021DACD0
+ sub r2, r1, r2
+ mov r1, #0
+ mvn r1, r1
+ b _021DACD4
+_021DACD0:
+ sub r2, r2, r1
+ mov r1, #1
+_021DACD4:
+ sub r0, #9
+ strb r1, [r4, r0]
+ cmp r2, #0x28
+ bgt _021DAD16
+ ldr r0, _021DAD38 ; =0x00005CA0
+ add r0, r4, r0
+ bl MOD58_021DAD3C
+ b _021DAD16
+_021DACE6:
+ cmp r3, #0x28
+ bgt _021DAD16
+ ldr r0, _021DAD28 ; =0x021C48F8
+ ldrh r2, [r0, #0x1e]
+ ldr r0, _021DAD34 ; =0x00005CAC
+ ldr r1, [r4, r0]
+ cmp r1, r2
+ ble _021DACFE
+ sub r2, r1, r2
+ mov r1, #0
+ mvn r1, r1
+ b _021DAD02
+_021DACFE:
+ sub r2, r2, r1
+ mov r1, #1
+_021DAD02:
+ sub r0, #9
+ strb r1, [r4, r0]
+ cmp r2, #3
+ blt _021DAD16
+ cmp r2, #0x28
+ bgt _021DAD16
+ ldr r0, _021DAD38 ; =0x00005CA0
+ add r0, r4, r0
+ bl MOD58_021DAD3C
+_021DAD16:
+ ldr r1, _021DAD28 ; =0x021C48F8
+ ldr r0, _021DAD30 ; =0x00005CA8
+ ldrh r2, [r1, #0x1c]
+ str r2, [r4, r0]
+ ldrh r1, [r1, #0x1e]
+ add r0, r0, #4
+ str r1, [r4, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_021DAD28: .word 0x021C48F8
+_021DAD2C: .word 0x0000FFFF
+_021DAD30: .word 0x00005CA8
+_021DAD34: .word 0x00005CAC
+_021DAD38: .word 0x00005CA0
+ thumb_func_end MOD58_021DAC7C
+
+ thumb_func_start MOD58_021DAD3C
+MOD58_021DAD3C: ; 0x021DAD3C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DAD60
+ mov r0, #1
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bne _021DAD60
+ ldr r0, _021DAD9C ; =0x0000069A
+ bl FUN_02005508
+ cmp r0, #0
+ bne _021DAD60
+ ldr r0, _021DAD9C ; =0x0000069A
+ bl FUN_020054C8
+_021DAD60:
+ mov r0, #0
+ ldrsb r1, [r4, r0]
+ mov r0, #2
+ ldrsb r0, [r4, r0]
+ mul r0, r1
+ bmi _021DAD78
+ mov r0, #1
+ ldrsb r1, [r4, r0]
+ mov r0, #3
+ ldrsb r0, [r4, r0]
+ mul r0, r1
+ bpl _021DAD88
+_021DAD78:
+ ldr r0, _021DAD9C ; =0x0000069A
+ bl FUN_02005508
+ cmp r0, #0
+ bne _021DAD88
+ ldr r0, _021DAD9C ; =0x0000069A
+ bl FUN_020054C8
+_021DAD88:
+ mov r0, #2
+ ldrsb r0, [r4, r0]
+ strb r0, [r4]
+ mov r0, #3
+ ldrsb r0, [r4, r0]
+ strb r0, [r4, #1]
+ mov r0, #0
+ strb r0, [r4, #2]
+ strb r0, [r4, #3]
+ pop {r4, pc}
+ .align 2, 0
+_021DAD9C: .word 0x0000069A
+ thumb_func_end MOD58_021DAD3C
+
+ .section .rodata
+ ; 0x021DADA0
+ .incbin "baserom.nds", 0x2A9B80, 0x1F4
+
+ .section .data
+ ; 0x021DAFA0
+ .incbin "baserom.nds", 0x2A9D80, 0x20
+
diff --git a/arm9/modules/59/asm/module_59.s b/arm9/modules/59/asm/module_59.s
new file mode 100644
index 00000000..97b4d96a
--- /dev/null
+++ b/arm9/modules/59/asm/module_59.s
@@ -0,0 +1,5042 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD59_021D74E0
+MOD59_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x52
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #0xb4
+ mov r2, #0x52
+ bl FUN_02006268
+ mov r1, #0
+ mov r2, #0xb4
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x52
+ str r0, [r4]
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r0, [r0, #8]
+ str r0, [r4, #4]
+ bl LoadPlayerDataAddress
+ mov r1, #0
+ str r0, [r4, #8]
+ str r1, [r4, #0xc]
+ str r1, [r4, #0x10]
+ str r1, [r4, #0x14]
+ ldr r0, [r4, #8]
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #0x52
+ mov r3, #7
+ bl FUN_02077A84
+ str r0, [r4, #0x70]
+ ldr r0, [r4, #8]
+ mov r1, #3
+ str r0, [sp]
+ mov r0, #0x52
+ mov r2, #0
+ mov r3, #7
+ bl FUN_02077A84
+ str r0, [r4, #0x74]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x88
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x89
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x8a
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x8b
+ strb r1, [r0]
+ add r4, #0x90
+ str r1, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD59_021D74E0
+
+ thumb_func_start MOD59_021D7564
+MOD59_021D7564: ; 0x021D7564
+ 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
+ bls _021D757A
+ b _021D76AC
+_021D757A:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7586: ; jump table
+ .short _021D7592 - _021D7586 - 2 ; case 0
+ .short _021D75FA - _021D7586 - 2 ; case 1
+ .short _021D7642 - _021D7586 - 2 ; case 2
+ .short _021D7668 - _021D7586 - 2 ; case 3
+ .short _021D7690 - _021D7586 - 2 ; case 4
+ .short _021D76AA - _021D7586 - 2 ; case 5
+_021D7592:
+ add r0, r6, #0
+ add r1, r6, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ add r1, r6, #0
+ bl FUN_0200E3A0
+ add r0, r6, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r6, #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, _021D76B4 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D76B8 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ add r0, r4, #0
+ bl MOD59_021D778C
+ add r0, r4, #0
+ bl MOD59_021D79F8
+ add r0, r4, #0
+ bl MOD59_021D7A4C
+ ldr r0, _021D76BC ; =MOD59_021D7724
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ mov r0, #1
+ str r0, [r5]
+ b _021D76AC
+_021D75FA:
+ bl MOD59_021D8920
+ cmp r0, #1
+ bne _021D761E
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #2
+ str r0, [r5]
+_021D761E:
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021D76AC
+ 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, #3
+ str r0, [r5]
+ b _021D76AC
+_021D7642:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D76AC
+ add r0, r4, #0
+ bl MOD59_021D7A34
+ add r0, r4, #0
+ bl MOD59_021D796C
+ add r0, r4, #0
+ bl MOD59_021D7A5C
+ add r0, r6, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r6, #1
+ b _021D76AC
+_021D7668:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D76AC
+ add r0, r4, #0
+ bl MOD59_021D7A34
+ add r0, r4, #0
+ bl MOD59_021D796C
+ add r0, r4, #0
+ bl MOD59_021D7A5C
+ add r0, r6, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #4
+ str r0, [r5]
+ b _021D76AC
+_021D7690:
+ ldr r0, [r4, #0x14]
+ bl FUN_02006290
+ cmp r0, #1
+ bne _021D76AC
+ ldr r0, [r4, #0x14]
+ bl FUN_02006260
+ add r0, r6, #0
+ str r0, [r4, #0x14]
+ mov r0, #5
+ str r0, [r5]
+ b _021D76AC
+_021D76AA:
+ str r6, [r5]
+_021D76AC:
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D76B4: .word 0xFFFFE0FF
+_021D76B8: .word 0x04001000
+_021D76BC: .word MOD59_021D7724
+ thumb_func_end MOD59_021D7564
+
+ thumb_func_start MOD59_021D76C0
+MOD59_021D76C0: ; 0x021D76C0
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r5, [r4]
+ bl FUN_020238F4
+ ldr r1, [r4, #0x70]
+ ldr r1, [r1, #0x18]
+ bl FUN_0202397C
+ ldr r0, [r4, #4]
+ bl FUN_020238F4
+ ldr r1, [r4, #0x70]
+ ldr r1, [r1, #4]
+ bl FUN_020239C8
+ ldr r0, [r4, #4]
+ bl FUN_02024EB4
+ ldr r1, [r4, #0x74]
+ ldr r1, [r1, #0x18]
+ bl FUN_02024EF4
+ ldr r0, [r4, #0x70]
+ bl FUN_02077AC4
+ ldr r0, [r4, #0x74]
+ bl FUN_02077AC4
+ add r0, r6, #0
+ bl FUN_0200627C
+ add r0, r5, #0
+ bl FUN_020168D0
+ ldr r0, _021D771C ; =SDK_OVERLAY_MODULE_52_ID
+ ldr r1, _021D7720 ; =0x021D76D8
+ bl FUN_02000E7C
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ nop
+_021D771C: .word SDK_OVERLAY_MODULE_52_ID
+_021D7720: .word 0x021D76D8
+ thumb_func_end MOD59_021D76C0
+
+ thumb_func_start MOD59_021D7724
+MOD59_021D7724: ; 0x021D7724
+ ldr r3, _021D772C ; =FUN_0201AB60
+ ldr r0, [r0, #0x18]
+ bx r3
+ nop
+_021D772C: .word FUN_0201AB60
+ thumb_func_end MOD59_021D7724
+
+ thumb_func_start MOD59_021D7730
+MOD59_021D7730: ; 0x021D7730
+ push {r3, r4}
+ ldr r2, _021D7788 ; =0x021C48F8
+ mov r0, #0
+ ldrh r1, [r2, #0x20]
+ cmp r1, #0
+ beq _021D7784
+ ldrh r3, [r2, #0x1c]
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r3, r1
+ bhs _021D7784
+ ldrh r2, [r2, #0x1e]
+ cmp r2, #0xc0
+ bhs _021D7784
+ cmp r3, #0x80
+ bhs _021D7758
+ mov r1, #0x80
+ sub r1, r1, r3
+ lsl r1, r1, #0x10
+ b _021D775C
+_021D7758:
+ sub r3, #0x80
+ lsl r1, r3, #0x10
+_021D775C:
+ lsr r3, r1, #0x10
+ cmp r2, #0x64
+ bhs _021D776A
+ mov r1, #0x64
+ sub r1, r1, r2
+ lsl r1, r1, #0x10
+ b _021D776E
+_021D776A:
+ sub r2, #0x64
+ lsl r1, r2, #0x10
+_021D776E:
+ lsr r4, r1, #0x10
+ add r2, r3, #0
+ add r1, r4, #0
+ mul r2, r3
+ mul r1, r4
+ add r2, r2, r1
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r2, r1
+ bgt _021D7784
+ mov r0, #1
+_021D7784:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_021D7788: .word 0x021C48F8
+ thumb_func_end MOD59_021D7730
+
+ thumb_func_start MOD59_021D778C
+MOD59_021D778C: ; 0x021D778C
+ push {r3, r4, r5, lr}
+ sub sp, #0x78
+ ldr r5, _021D7954 ; =0x021D9F18
+ add r4, r0, #0
+ add r3, sp, #0x50
+ mov r2, #5
+_021D7798:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7798
+ add r0, sp, #0x50
+ bl FUN_0201E66C
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0x40
+ ldr r5, _021D7958 ; =0x021D9DCC
+ str r0, [r4, #0x18]
+ 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, _021D795C ; =0x021D9EA0
+ add r3, sp, #0x24
+ 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]
+ mov r0, #0xf
+ strb r0, [r2, #0x12]
+ mov r0, #6
+ strb r0, [r2, #0x13]
+ ldr r0, [r4, #0x18]
+ add r3, r1, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02018744
+ mov r0, #0xe
+ add r2, sp, #0x24
+ strb r0, [r2, #0x12]
+ mov r0, #5
+ strb r0, [r2, #0x13]
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_02018744
+ mov r0, #0xd
+ add r2, sp, #0x24
+ strb r0, [r2, #0x12]
+ mov r0, #4
+ strb r0, [r2, #0x13]
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_02018744
+ mov r0, #0xc
+ add r2, sp, #0x24
+ strb r0, [r2, #0x12]
+ mov r1, #3
+ strb r1, [r2, #0x13]
+ ldr r0, [r4, #0x18]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ bl FUN_02018744
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4]
+ ldr r2, _021D7960 ; =0x000003E2
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ mov r3, #4
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4]
+ ldr r2, _021D7964 ; =0x000003D9
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ mov r3, #3
+ bl FUN_0200CB00
+ ldr r2, [r4]
+ mov r0, #0
+ mov r1, #0xa0
+ bl FUN_02002ED0
+ ldr r2, [r4]
+ mov r0, #0
+ mov r1, #0xc0
+ bl FUN_02002EEC
+ ldr r5, _021D7968 ; =0x021D9EBC
+ add r3, sp, #8
+ 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, #0xf
+ str r0, [r3]
+ add r0, sp, #8
+ strb r1, [r0, #0x12]
+ mov r1, #6
+ strb r1, [r0, #0x13]
+ ldr r0, [r4, #0x18]
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #4
+ bl FUN_02018744
+ mov r1, #0xe
+ add r0, sp, #8
+ strb r1, [r0, #0x12]
+ mov r1, #5
+ strb r1, [r0, #0x13]
+ ldr r0, [r4, #0x18]
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #5
+ bl FUN_02018744
+ mov r1, #0xd
+ add r0, sp, #8
+ strb r1, [r0, #0x12]
+ mov r1, #4
+ strb r1, [r0, #0x13]
+ ldr r0, [r4, #0x18]
+ mov r1, #6
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #6
+ bl FUN_02018744
+ mov r1, #0xc
+ add r0, sp, #8
+ strb r1, [r0, #0x12]
+ mov r1, #3
+ strb r1, [r0, #0x13]
+ ldr r0, [r4, #0x18]
+ mov r1, #7
+ add r2, sp, #8
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ 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 r0, r4, #0
+ bl MOD59_021D8058
+ mov r0, #0
+ str r0, [r4, #0x78]
+ add sp, #0x78
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7954: .word 0x021D9F18
+_021D7958: .word 0x021D9DCC
+_021D795C: .word 0x021D9EA0
+_021D7960: .word 0x000003E2
+_021D7964: .word 0x000003D9
+_021D7968: .word 0x021D9EBC
+ thumb_func_end MOD59_021D778C
+
+ thumb_func_start MOD59_021D796C
+MOD59_021D796C: ; 0x021D796C
+ 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, #0x18]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #7
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD59_021D796C
+
+ thumb_func_start MOD59_021D79F8
+MOD59_021D79F8: ; 0x021D79F8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, _021D7A30 ; =0x00000155
+ ldr r3, [r4]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ str r0, [r4, #0x4c]
+ bl FUN_0201BD5C
+ mov r0, #0
+ ldr r3, [r4]
+ add r1, r0, #0
+ mov r2, #6
+ bl FUN_020142EC
+ str r0, [r4, #0x60]
+ ldr r0, [r4]
+ bl FUN_0200AA80
+ str r0, [r4, #0x64]
+ mov r0, #0
+ str r0, [r4, #0x50]
+ str r0, [r4, #0x54]
+ str r0, [r4, #0x2c]
+ pop {r4, pc}
+ nop
+_021D7A30: .word 0x00000155
+ thumb_func_end MOD59_021D79F8
+
+ thumb_func_start MOD59_021D7A34
+MOD59_021D7A34: ; 0x021D7A34
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x64]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x60]
+ bl FUN_020143D0
+ ldr r0, [r4, #0x4c]
+ bl FUN_0200A8B8
+ pop {r4, pc}
+ thumb_func_end MOD59_021D7A34
+
+ thumb_func_start MOD59_021D7A4C
+MOD59_021D7A4C: ; 0x021D7A4C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02014590
+ str r0, [r4, #0x68]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD59_021D7A4C
+
+ thumb_func_start MOD59_021D7A5C
+MOD59_021D7A5C: ; 0x021D7A5C
+ ldr r3, _021D7A64 ; =FUN_020145A8
+ ldr r0, [r0, #0x68]
+ bx r3
+ nop
+_021D7A64: .word FUN_020145A8
+ thumb_func_end MOD59_021D7A5C
+
+ thumb_func_start MOD59_021D7A68
+MOD59_021D7A68: ; 0x021D7A68
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r3, r0, #0
+ add r6, r2, #0
+ mov r5, #0
+ cmp r4, #6
+ bhi _021D7A92
+ add r0, r4, r4
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7A84: ; jump table
+ .short _021D7A92 - _021D7A84 - 2 ; case 0
+ .short _021D7A98 - _021D7A84 - 2 ; case 1
+ .short _021D7A9E - _021D7A84 - 2 ; case 2
+ .short _021D7A92 - _021D7A84 - 2 ; case 3
+ .short _021D7AA4 - _021D7A84 - 2 ; case 4
+ .short _021D7AAA - _021D7A84 - 2 ; case 5
+ .short _021D7AB0 - _021D7A84 - 2 ; case 6
+_021D7A92:
+ mov r1, #1
+ mov r0, #0
+ b _021D7AB4
+_021D7A98:
+ mov r1, #2
+ add r0, r5, #0
+ b _021D7AB4
+_021D7A9E:
+ mov r1, #4
+ add r0, r5, #0
+ b _021D7AB4
+_021D7AA4:
+ mov r1, #1
+ add r0, r1, #0
+ b _021D7AB4
+_021D7AAA:
+ mov r1, #2
+ mov r0, #1
+ b _021D7AB4
+_021D7AB0:
+ mov r1, #4
+ mov r0, #1
+_021D7AB4:
+ ldr r2, [r3, #0x78]
+ cmp r2, #3
+ bls _021D7ABC
+ b _021D7BDE
+_021D7ABC:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D7AC8: ; jump table
+ .short _021D7AD0 - _021D7AC8 - 2 ; case 0
+ .short _021D7B2C - _021D7AC8 - 2 ; case 1
+ .short _021D7B7C - _021D7AC8 - 2 ; case 2
+ .short _021D7BD0 - _021D7AC8 - 2 ; case 3
+_021D7AD0:
+ cmp r6, #0
+ bne _021D7B1A
+ mov r2, #0
+ str r2, [r3, #0x7c]
+ add r2, r3, #0
+ mov r6, #0x10
+ add r2, #0x80
+ str r6, [r2]
+ mov r2, #1
+ str r2, [r3, #0x78]
+ cmp r0, #0
+ bne _021D7AFC
+ add r0, r3, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mov r2, #0xe
+ str r0, [sp]
+ ldr r0, _021D7BE4 ; =0x04000050
+ ldr r3, [r3, #0x7c]
+ bl G2x_SetBlendAlpha_
+ b _021D7B0E
+_021D7AFC:
+ add r0, r3, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mov r2, #0xe
+ str r0, [sp]
+ ldr r0, _021D7BE8 ; =0x04001050
+ ldr r3, [r3, #0x7c]
+ bl G2x_SetBlendAlpha_
+_021D7B0E:
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #1
+ bl FUN_0201797C
+ b _021D7BDE
+_021D7B1A:
+ mov r0, #0x10
+ str r0, [r3, #0x7c]
+ add r0, r3, #0
+ mov r1, #0
+ add r0, #0x80
+ str r1, [r0]
+ mov r0, #2
+ str r0, [r3, #0x78]
+ b _021D7BDE
+_021D7B2C:
+ add r2, r3, #0
+ add r2, #0x80
+ ldr r2, [r2]
+ cmp r2, #0
+ beq _021D7B76
+ ldr r2, [r3, #0x7c]
+ add r2, r2, #1
+ str r2, [r3, #0x7c]
+ add r2, r3, #0
+ add r2, #0x80
+ ldr r2, [r2]
+ sub r4, r2, #1
+ add r2, r3, #0
+ add r2, #0x80
+ str r4, [r2]
+ cmp r0, #0
+ bne _021D7B62
+ add r0, r3, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mov r2, #0xe
+ str r0, [sp]
+ ldr r0, _021D7BE4 ; =0x04000050
+ ldr r3, [r3, #0x7c]
+ bl G2x_SetBlendAlpha_
+ b _021D7BDE
+_021D7B62:
+ add r0, r3, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mov r2, #0xe
+ str r0, [sp]
+ ldr r0, _021D7BE8 ; =0x04001050
+ ldr r3, [r3, #0x7c]
+ bl G2x_SetBlendAlpha_
+ b _021D7BDE
+_021D7B76:
+ mov r0, #3
+ str r0, [r3, #0x78]
+ b _021D7BDE
+_021D7B7C:
+ ldr r2, [r3, #0x7c]
+ cmp r2, #0
+ beq _021D7BC0
+ sub r2, r2, #1
+ str r2, [r3, #0x7c]
+ add r2, r3, #0
+ add r2, #0x80
+ ldr r2, [r2]
+ add r4, r2, #1
+ add r2, r3, #0
+ add r2, #0x80
+ str r4, [r2]
+ cmp r0, #0
+ bne _021D7BAC
+ add r0, r3, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mov r2, #0xe
+ str r0, [sp]
+ ldr r0, _021D7BE4 ; =0x04000050
+ ldr r3, [r3, #0x7c]
+ bl G2x_SetBlendAlpha_
+ b _021D7BDE
+_021D7BAC:
+ add r0, r3, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ mov r2, #0xe
+ str r0, [sp]
+ ldr r0, _021D7BE8 ; =0x04001050
+ ldr r3, [r3, #0x7c]
+ bl G2x_SetBlendAlpha_
+ b _021D7BDE
+_021D7BC0:
+ mov r0, #3
+ str r0, [r3, #0x78]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ mov r1, #0
+ bl FUN_0201797C
+ b _021D7BDE
+_021D7BD0:
+ ldr r0, _021D7BE4 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _021D7BE8 ; =0x04001050
+ mov r5, #1
+ strh r1, [r0]
+ str r1, [r3, #0x78]
+_021D7BDE:
+ add r0, r5, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D7BE4: .word 0x04000050
+_021D7BE8: .word 0x04001050
+ thumb_func_end MOD59_021D7A68
+
+ thumb_func_start MOD59_021D7BEC
+MOD59_021D7BEC: ; 0x021D7BEC
+ add r2, r0, #0
+ add r2, #0x90
+ ldr r2, [r2]
+ cmp r2, r1
+ bge _021D7C06
+ add r1, r0, #0
+ add r1, #0x90
+ ldr r1, [r1]
+ add r0, #0x90
+ add r1, r1, #1
+ str r1, [r0]
+ mov r0, #0
+ bx lr
+_021D7C06:
+ mov r1, #0
+ add r0, #0x90
+ str r1, [r0]
+ mov r0, #1
+ bx lr
+ thumb_func_end MOD59_021D7BEC
+
+ thumb_func_start MOD59_021D7C10
+MOD59_021D7C10: ; 0x021D7C10
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ lsl r0, r2, #0x18
+ add r4, r1, #0
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ lsl r1, r4, #0x18
+ mov r2, #0
+ ldr r0, [r5, #0x18]
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020186B4
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x18]
+ lsr r1, r1, #0x18
+ bl FUN_02017CD0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD59_021D7C10
+
+ thumb_func_start MOD59_021D7C44
+MOD59_021D7C44: ; 0x021D7C44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ add r7, r1, #0
+ mov r4, #0
+ cmp r0, #0
+ beq _021D7C5E
+ cmp r0, #1
+ beq _021D7D1C
+ cmp r0, #2
+ beq _021D7D36
+ b _021D7D54
+_021D7C5E:
+ add r1, r5, #0
+ ldr r0, [r5, #0x18]
+ ldr r2, _021D7D5C ; =0x021D9DB8
+ add r1, #0x1c
+ bl FUN_02019150
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r2, r4, #0
+ add r0, #0x1c
+ mov r1, #0xf
+ add r3, r2, #0
+ bl FUN_020196F4
+ add r0, r5, #0
+ ldr r2, _021D7D60 ; =0x000003E2
+ add r0, #0x1c
+ add r1, r4, #0
+ mov r3, #4
+ bl FUN_0200D0BC
+ mov r0, #1
+ bl FUN_02002B60
+ add r0, r4, #0
+ bl FUN_02002B7C
+ mov r0, #1
+ ldr r1, [r5]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ add r6, r0, #0
+ mov r0, #1
+ ldr r1, [r5]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ str r0, [r5, #0x5c]
+ ldr r0, [r5, #0x4c]
+ add r1, r7, #0
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r2, [r5, #0x70]
+ add r3, r5, #0
+ add r3, #0x84
+ ldr r0, [r5, #0x64]
+ ldr r2, [r2, #0x18]
+ ldr r3, [r3]
+ add r1, r4, #0
+ bl FUN_0200ABB4
+ mov r1, #1
+ str r1, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r2, [r5, #0x74]
+ ldr r0, [r5, #0x64]
+ ldr r2, [r2, #0x18]
+ add r3, r4, #0
+ bl FUN_0200ABB4
+ ldr r0, [r5, #0x64]
+ ldr r1, [r5, #0x5c]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [r5, #8]
+ bl FUN_02024FF4
+ add r3, r4, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r5, #0
+ ldr r2, [r5, #0x5c]
+ add r0, #0x1c
+ mov r1, #1
+ bl FUN_0201BD84
+ str r0, [r5, #0x58]
+ mov r0, #1
+ str r0, [r5, #0x50]
+ b _021D7D54
+_021D7D1C:
+ ldr r0, [r5, #0x58]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D7D54
+ ldr r0, [r5, #0x5c]
+ bl FUN_02021A20
+ mov r0, #2
+ str r0, [r5, #0x50]
+ b _021D7D54
+_021D7D36:
+ cmp r2, #0
+ bne _021D7D46
+ ldr r0, _021D7D64 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ and r0, r1
+ cmp r0, #1
+ bne _021D7D54
+_021D7D46:
+ add r0, r5, #0
+ add r0, #0x1c
+ bl FUN_02019178
+ mov r0, #0
+ str r0, [r5, #0x50]
+ mov r4, #1
+_021D7D54:
+ add r0, r4, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D7D5C: .word 0x021D9DB8
+_021D7D60: .word 0x000003E2
+_021D7D64: .word 0x021C48B8
+ thumb_func_end MOD59_021D7C44
+
+ thumb_func_start MOD59_021D7D68
+MOD59_021D7D68: ; 0x021D7D68
+ push {r3, lr}
+ cmp r2, #0
+ bne _021D7D74
+ ldr r0, _021D7D78 ; =0x000005DC
+ bl FUN_020054C8
+_021D7D74:
+ pop {r3, pc}
+ nop
+_021D7D78: .word 0x000005DC
+ thumb_func_end MOD59_021D7D68
+
+ thumb_func_start MOD59_021D7D7C
+MOD59_021D7D7C: ; 0x021D7D7C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r5, #0x2c]
+ add r4, r2, #0
+ cmp r0, #0
+ beq _021D7D94
+ cmp r0, #1
+ beq _021D7E4C
+ b _021D7E96
+_021D7D94:
+ cmp r1, #0
+ beq _021D7DA0
+ cmp r1, #1
+ beq _021D7DA8
+ cmp r1, #2
+ beq _021D7DB0
+_021D7DA0:
+ ldr r2, _021D7E9C ; =0x021D9DA8
+ ldr r4, _021D7EA0 ; =0x021D9E0C
+ mov r6, #2
+ b _021D7DC4
+_021D7DA8:
+ ldr r2, _021D7EA4 ; =0x021D9DB0
+ ldr r4, _021D7EA8 ; =0x021D9E58
+ mov r6, #3
+ b _021D7DC4
+_021D7DB0:
+ ldr r0, _021D7EAC ; =0x020ECAC0
+ ldr r2, _021D7EB0 ; =0x021D9DA0
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bne _021D7DC0
+ ldr r4, _021D7EB4 ; =0x021D9F40
+ mov r6, #5
+ b _021D7DC4
+_021D7DC0:
+ ldr r4, _021D7EB8 ; =0x021D9F68
+ mov r6, #5
+_021D7DC4:
+ add r1, r5, #0
+ ldr r0, [r5, #0x18]
+ add r1, #0x30
+ bl FUN_02019150
+ ldr r1, [r5]
+ add r0, r6, #0
+ bl FUN_02012838
+ mov r7, #0
+ str r0, [r5, #0x44]
+ cmp r6, #0
+ ble _021D7DF2
+_021D7DDE:
+ ldr r0, [r5, #0x44]
+ ldr r1, [r5, #0x4c]
+ ldr r2, [r4]
+ ldr r3, [r4, #4]
+ bl FUN_02012880
+ add r7, r7, #1
+ add r4, #8
+ cmp r7, r6
+ blt _021D7DDE
+_021D7DF2:
+ ldr r4, _021D7EBC ; =0x021D9EF8
+ add r3, sp, #4
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5, #0x44]
+ str r0, [sp, #4]
+ lsl r0, r6, #0x10
+ lsr r1, r0, #0x10
+ add r0, sp, #4
+ strh r1, [r0, #0x10]
+ strh r1, [r0, #0x12]
+ ldr r0, _021D7EC0 ; =MOD59_021D7D68
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x30
+ 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
+ str r0, [r5, #0x40]
+ ldr r0, [sp, #0x10]
+ ldr r2, _021D7EC4 ; =0x000003D9
+ mov r1, #1
+ mov r3, #3
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ add r0, #0x30
+ bl FUN_020191D0
+ mov r0, #1
+ str r0, [r5, #0x2c]
+ b _021D7E96
+_021D7E4C:
+ ldr r0, [r5, #0x40]
+ bl FUN_02001204
+ mov r1, #0
+ mvn r1, r1
+ str r0, [r5, #0x48]
+ cmp r0, r1
+ beq _021D7E96
+ sub r1, r1, #1
+ cmp r0, r1
+ bne _021D7E66
+ cmp r4, #1
+ beq _021D7E96
+_021D7E66:
+ add r0, r5, #0
+ add r0, #0x30
+ mov r1, #0
+ bl FUN_0200CCF8
+ add r0, r5, #0
+ add r0, #0x30
+ bl FUN_02019178
+ mov r1, #0
+ ldr r0, [r5, #0x40]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, [r5, #0x44]
+ bl FUN_02012870
+ ldr r0, _021D7EC8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ mov r0, #1
+ str r0, [sp]
+_021D7E96:
+ ldr r0, [sp]
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7E9C: .word 0x021D9DA8
+_021D7EA0: .word 0x021D9E0C
+_021D7EA4: .word 0x021D9DB0
+_021D7EA8: .word 0x021D9E58
+_021D7EAC: .word 0x020ECAC0
+_021D7EB0: .word 0x021D9DA0
+_021D7EB4: .word 0x021D9F40
+_021D7EB8: .word 0x021D9F68
+_021D7EBC: .word 0x021D9EF8
+_021D7EC0: .word MOD59_021D7D68
+_021D7EC4: .word 0x000003D9
+_021D7EC8: .word 0x000005DC
+ thumb_func_end MOD59_021D7D7C
+
+ thumb_func_start MOD59_021D7ECC
+MOD59_021D7ECC: ; 0x021D7ECC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ str r1, [sp, #0x10]
+ ldr r1, [r4, #0x54]
+ add r6, r2, #0
+ add r7, r3, #0
+ mov r5, #0
+ cmp r1, #5
+ bls _021D7EE2
+ b _021D803C
+_021D7EE2:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7EEE: ; jump table
+ .short _021D7EFA - _021D7EEE - 2 ; case 0
+ .short _021D7FD8 - _021D7EEE - 2 ; case 1
+ .short _021D7FE4 - _021D7EEE - 2 ; case 2
+ .short _021D7FF6 - _021D7EEE - 2 ; case 3
+ .short _021D8016 - _021D7EEE - 2 ; case 4
+ .short _021D8028 - _021D7EEE - 2 ; case 5
+_021D7EFA:
+ add r0, r5, #0
+ add r1, r5, #0
+ bl FUN_0201797C
+ mov r0, #1
+ ldr r1, [r4]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ str r0, [r4, #0x5c]
+ ldr r0, [r4, #0x4c]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r4, #0x5c]
+ bl FUN_0200A8E0
+ cmp r6, #1
+ add r0, sp, #0x14
+ bne _021D7F7C
+ ldr r1, _021D8044 ; =0x021D9D90
+ ldrh r2, [r1, #8]
+ strh r2, [r0]
+ ldrh r2, [r1, #0xa]
+ strh r2, [r0, #2]
+ ldrh r2, [r1, #0xc]
+ ldrh r1, [r1, #0xe]
+ strh r2, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r0, [r4, #0x5c]
+ bl FUN_02002F90
+ mov r1, #0xc
+ sub r2, r1, r0
+ add r1, sp, #0x14
+ strb r2, [r1, #2]
+ lsl r0, r0, #1
+ strb r0, [r1, #4]
+ add r1, r4, #0
+ ldr r0, [r4, #0x18]
+ add r1, #0x1c
+ add r2, sp, #0x14
+ bl FUN_02019150
+ add r1, r5, #0
+ mov r0, #0xc0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x1c
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ add r1, r5, #0
+ str r1, [sp]
+ ldr r0, _021D8048 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x1c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ b _021D7FCC
+_021D7F7C:
+ ldr r1, _021D8044 ; =0x021D9D90
+ add r2, sp, #0x14
+ ldrh r3, [r1]
+ strh r3, [r0]
+ ldrh r3, [r1, #2]
+ strh r3, [r0, #2]
+ ldrh r3, [r1, #4]
+ ldrh r1, [r1, #6]
+ strh r3, [r0, #4]
+ strh r1, [r0, #6]
+ ldr r1, [sp, #0x30]
+ strb r7, [r0, #2]
+ strb r1, [r0, #4]
+ add r1, r4, #0
+ ldr r0, [r4, #0x18]
+ add r1, #0x1c
+ bl FUN_02019150
+ add r1, r5, #0
+ mov r0, #0xc0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x1c
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ add r1, r5, #0
+ str r1, [sp]
+ ldr r0, _021D804C ; =0x000F0200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x1c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+_021D7FCC:
+ ldr r0, [r4, #0x5c]
+ bl FUN_02021A20
+ mov r0, #1
+ str r0, [r4, #0x54]
+ b _021D803C
+_021D7FD8:
+ add r0, #0x1c
+ bl FUN_020191D0
+ mov r0, #2
+ str r0, [r4, #0x54]
+ b _021D803C
+_021D7FE4:
+ add r1, r5, #0
+ add r2, r5, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D803C
+ mov r0, #3
+ str r0, [r4, #0x54]
+ b _021D803C
+_021D7FF6:
+ ldr r0, _021D8050 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ and r0, r1
+ cmp r0, #1
+ beq _021D800A
+ mov r0, #2
+ and r0, r1
+ cmp r0, #2
+ bne _021D803C
+_021D800A:
+ ldr r0, _021D8054 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #4
+ str r0, [r4, #0x54]
+ b _021D803C
+_021D8016:
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D803C
+ mov r0, #5
+ str r0, [r4, #0x54]
+ b _021D803C
+_021D8028:
+ add r0, #0x1c
+ bl FUN_02019178
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ add r0, r5, #0
+ str r0, [r4, #0x54]
+ mov r5, #1
+_021D803C:
+ add r0, r5, #0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8044: .word 0x021D9D90
+_021D8048: .word 0x00010200
+_021D804C: .word 0x000F0200
+_021D8050: .word 0x021C48B8
+_021D8054: .word 0x000005DC
+ thumb_func_end MOD59_021D7ECC
+
+ thumb_func_start MOD59_021D8058
+MOD59_021D8058: ; 0x021D8058
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r5, r0, #0
+ str r1, [sp, #8]
+ ldr r0, [r5]
+ mov r3, #3
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x18]
+ mov r0, #0x7d
+ bl FUN_0200687C
+ mov r0, #0
+ ldr r3, [r5]
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #0x17
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x18]
+ mov r0, #0x7d
+ mov r3, #7
+ bl FUN_0200687C
+ ldr r0, _021D80F8 ; =0x020ECAC0
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bne _021D80A6
+ mov r1, #1
+ mov r4, #0x18
+ b _021D80AA
+_021D80A6:
+ mov r1, #2
+ mov r4, #0x19
+_021D80AA:
+ mov r0, #0x60
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x7d
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0xa0
+ str r0, [sp]
+ ldr r0, [r5]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ mov r0, #0x7d
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ add r0, r5, #0
+ bl MOD59_021D80FC
+ add r0, r5, #0
+ bl MOD59_021D8140
+ add r0, r5, #0
+ bl MOD59_021D8234
+ 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}
+ nop
+_021D80F8: .word 0x020ECAC0
+ thumb_func_end MOD59_021D8058
+
+ thumb_func_start MOD59_021D80FC
+MOD59_021D80FC: ; 0x021D80FC
+ push {r4, r5, lr}
+ sub sp, #0x24
+ ldr r5, _021D813C ; =0x021D9E1C
+ add r3, r0, #0
+ ldmia r5!, {r0, r1}
+ add r4, sp, #0x10
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r4]
+ add r0, r3, #0
+ add r0, #0x88
+ ldrb r1, [r0]
+ cmp r1, #5
+ bhs _021D8138
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r3]
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r1, [r2, r1]
+ ldr r2, [r3, #0x18]
+ mov r0, #0x7d
+ mov r3, #3
+ bl FUN_020068C8
+_021D8138:
+ add sp, #0x24
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D813C: .word 0x021D9E1C
+ thumb_func_end MOD59_021D80FC
+
+ thumb_func_start MOD59_021D8140
+MOD59_021D8140: ; 0x021D8140
+ push {r3, r4, r5, lr}
+ sub sp, #0x68
+ ldr r5, _021D8230 ; =0x021D9F90
+ add r4, r0, #0
+ add r3, sp, #0x10
+ mov r2, #0xb
+_021D814C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D814C
+ add r0, r4, #0
+ add r0, #0x89
+ ldrb r1, [r0]
+ cmp r1, #0
+ beq _021D81BE
+ cmp r1, #0xc
+ bhs _021D81BE
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ lsl r2, r1, #3
+ str r0, [sp, #0xc]
+ add r1, sp, #0x10
+ ldr r1, [r1, r2]
+ ldr r2, [r4, #0x18]
+ mov r0, #0x7d
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r4]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r1, #0x89
+ ldrb r1, [r1]
+ mov r0, #0x7d
+ mov r3, #0xe0
+ lsl r2, r1, #3
+ add r1, sp, #0x14
+ ldr r1, [r1, r2]
+ mov r2, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x16
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x18]
+ mov r0, #0x7d
+ mov r3, #1
+ bl FUN_020068C8
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #7
+ bl MOD59_021D7C10
+_021D81BE:
+ add r0, r4, #0
+ add r0, #0x8a
+ ldrb r1, [r0]
+ cmp r1, #0
+ beq _021D822A
+ cmp r1, #0xc
+ bhs _021D822A
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ lsl r2, r1, #3
+ str r0, [sp, #0xc]
+ add r1, sp, #0x10
+ ldr r1, [r1, r2]
+ ldr r2, [r4, #0x18]
+ mov r0, #0x7d
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r4]
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r1, #0x8a
+ ldrb r1, [r1]
+ mov r0, #0x7d
+ add r3, r0, #0
+ lsl r2, r1, #3
+ add r1, sp, #0x14
+ ldr r1, [r1, r2]
+ mov r2, #0
+ add r3, #0x83
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x16
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x18]
+ mov r0, #0x7d
+ mov r3, #2
+ bl FUN_020068C8
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #8
+ bl MOD59_021D7C10
+_021D822A:
+ add sp, #0x68
+ pop {r3, r4, r5, pc}
+ nop
+_021D8230: .word 0x021D9F90
+ thumb_func_end MOD59_021D8140
+
+ thumb_func_start MOD59_021D8234
+MOD59_021D8234: ; 0x021D8234
+ push {r4, r5, lr}
+ sub sp, #0x24
+ ldr r5, _021D829C ; =0x021D9E30
+ add r4, r0, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x10
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ add r0, r4, #0
+ add r0, #0x8b
+ ldrb r1, [r0]
+ cmp r1, #5
+ bhs _021D8296
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ lsl r1, r1, #2
+ str r0, [sp, #0xc]
+ ldr r1, [r2, r1]
+ ldr r2, [r4, #0x18]
+ mov r0, #0x7d
+ mov r3, #7
+ bl FUN_020068C8
+ add r0, r4, #0
+ add r0, #0x8b
+ ldrb r0, [r0]
+ cmp r0, #1
+ bne _021D8288
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #3
+ bl MOD59_021D7C10
+ add sp, #0x24
+ pop {r4, r5, pc}
+_021D8288:
+ cmp r0, #2
+ bne _021D8296
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #2
+ bl MOD59_021D7C10
+_021D8296:
+ add sp, #0x24
+ pop {r4, r5, pc}
+ nop
+_021D829C: .word 0x021D9E30
+ thumb_func_end MOD59_021D8234
+
+ thumb_func_start MOD59_021D82A0
+MOD59_021D82A0: ; 0x021D82A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ mov r2, #0
+ str r2, [sp]
+ str r2, [sp, #4]
+ add r5, r0, #0
+ ldr r1, _021D83EC ; =0x000001BE
+ str r2, [sp, #8]
+ add r0, sp, #0x10
+ mov r3, #2
+ bl FUN_02068C00
+ ldr r0, [r5]
+ mov r1, #0xc8
+ bl FUN_02016998
+ add r7, r0, #0
+ ldr r2, _021D83F0 ; =0x021D9FE8
+ mov r1, #0
+ add r3, r7, #0
+_021D82C8:
+ ldrb r0, [r2]
+ add r1, r1, #1
+ add r2, r2, #1
+ add r0, r0, #1
+ strh r0, [r3]
+ add r3, r3, #2
+ cmp r1, #0x64
+ blt _021D82C8
+ add r1, sp, #0x10
+ ldrh r0, [r1]
+ ldrh r1, [r1, #2]
+ ldr r2, [r5]
+ bl FUN_0201244C
+ add r1, sp, #0x10
+ add r4, r0, #0
+ ldrh r0, [r1]
+ ldrh r1, [r1, #4]
+ ldr r2, [r5]
+ bl FUN_02012470
+ mov r2, #0
+ add r6, r0, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #9
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x18]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r3, #0xb
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x18]
+ mov r1, #2
+ add r2, r7, #0
+ bl FUN_02018148
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #9
+ bl MOD59_021D7C10
+ ldr r3, [r5]
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #0x32
+ ldr r0, [r5, #0x18]
+ mov r1, #2
+ add r2, r4, #0
+ lsl r3, r3, #6
+ bl FUN_02017E14
+ mov r3, #0x20
+ add r2, r3, #0
+ mov r0, #2
+ add r1, r6, #0
+ add r3, #0xe0
+ bl FUN_02017FB4
+ mov r3, #0x12
+ ldr r1, _021D83F4 ; =0x021D9ED8
+ mov r0, #2
+ mov r2, #0x20
+ lsl r3, r3, #4
+ bl FUN_02017FB4
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xa
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x18]
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r0, #7
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x18]
+ mov r1, #5
+ add r2, r7, #0
+ mov r3, #0xb
+ bl FUN_02018148
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0xa
+ bl MOD59_021D7C10
+ ldr r3, [r5]
+ mov r0, #5
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #0x32
+ ldr r0, [r5, #0x18]
+ mov r1, #5
+ add r2, r4, #0
+ lsl r3, r3, #6
+ bl FUN_02017E14
+ mov r0, #5
+ add r1, r6, #0
+ mov r2, #0x20
+ lsl r3, r0, #6
+ bl FUN_02017FB4
+ mov r0, #5
+ ldr r1, _021D83F4 ; =0x021D9ED8
+ mov r2, #0x20
+ lsl r3, r0, #6
+ bl FUN_02017FB4
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r7, #0
+ bl FUN_02016A18
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D83EC: .word 0x000001BE
+_021D83F0: .word 0x021D9FE8
+_021D83F4: .word 0x021D9ED8
+ thumb_func_end MOD59_021D82A0
+
+ thumb_func_start MOD59_021D83F8
+MOD59_021D83F8: ; 0x021D83F8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x26
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x18]
+ mov r0, #0x7d
+ mov r3, #6
+ bl FUN_020068C8
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #9
+ bl MOD59_021D7C10
+ mov r0, #0x60
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r1, #0x27
+ str r0, [sp, #4]
+ mov r0, #0x7d
+ mov r2, #4
+ mov r3, #0xe0
+ bl FUN_02006930
+ ldr r3, [r4]
+ mov r0, #6
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #0x1e
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x18]
+ mov r0, #0x7d
+ mov r3, #6
+ bl FUN_0200687C
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD59_021D83F8
+
+ thumb_func_start MOD59_021D8460
+MOD59_021D8460: ; 0x021D8460
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r6, #0
+ cmp r2, #0
+ bne _021D849C
+ ldr r0, [r5, #0x18]
+ bl FUN_02017B48
+ cmp r0, #0
+ beq _021D8498
+ cmp r0, #0
+ ldr r0, [r5, #0x18]
+ ble _021D848A
+ lsl r1, r4, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020179E0
+ b _021D84E2
+_021D848A:
+ lsl r1, r4, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #1
+ mov r3, #4
+ bl FUN_020179E0
+ b _021D84E2
+_021D8498:
+ mov r6, #1
+ b _021D84E2
+_021D849C:
+ cmp r2, #1
+ bne _021D84C2
+ ldr r0, [r5, #0x18]
+ bl FUN_02017B48
+ add r1, r6, #0
+ sub r1, #0x30
+ cmp r0, r1
+ beq _021D84BE
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x18]
+ lsr r1, r1, #0x18
+ mov r2, #2
+ mov r3, #4
+ bl FUN_020179E0
+ b _021D84E2
+_021D84BE:
+ mov r6, #1
+ b _021D84E2
+_021D84C2:
+ cmp r2, #2
+ bne _021D84E2
+ ldr r0, [r5, #0x18]
+ bl FUN_02017B48
+ cmp r0, #0
+ beq _021D84E0
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x18]
+ lsr r1, r1, #0x18
+ mov r2, #1
+ mov r3, #4
+ bl FUN_020179E0
+ b _021D84E2
+_021D84E0:
+ mov r6, #1
+_021D84E2:
+ add r0, r6, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD59_021D8460
+
+ thumb_func_start MOD59_021D84E8
+MOD59_021D84E8: ; 0x021D84E8
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0x8c
+ strb r2, [r1]
+ add r1, r0, #0
+ add r1, #0x8d
+ strb r2, [r1]
+ add r1, r0, #0
+ add r1, #0x8e
+ strb r2, [r1]
+ add r0, #0x8f
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD59_021D84E8
+
+ thumb_func_start MOD59_021D8504
+MOD59_021D8504: ; 0x021D8504
+ push {r3, r4, r5, lr}
+ sub sp, #0x30
+ add r4, r0, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D858E
+ add r0, r4, #0
+ add r0, #0x8d
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D8526
+ add r0, r4, #0
+ add r0, #0x8d
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ b _021D8546
+_021D8526:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x8c
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x8c
+ ldrb r1, [r0]
+ mov r0, #3
+ and r1, r0
+ add r0, r4, #0
+ add r0, #0x8c
+ strb r1, [r0]
+ mov r1, #4
+_021D8546:
+ add r0, r4, #0
+ add r0, #0x8d
+ strb r1, [r0]
+ mov r0, #0xa
+ str r0, [sp]
+ ldr r0, _021D860C ; =0x04000050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #6
+ bl G2x_SetBlendAlpha_
+ ldr r5, _021D8610 ; =0x021D9DEC
+ add r3, sp, #0x20
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r1, r4, #0
+ str r0, [sp, #0xc]
+ add r1, #0x8c
+ ldrb r1, [r1]
+ mov r0, #0x7d
+ mov r3, #1
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ ldr r2, [r4, #0x18]
+ bl FUN_0200687C
+ add sp, #0x30
+ pop {r3, r4, r5, pc}
+_021D858E:
+ add r0, r4, #0
+ add r0, #0x8f
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D85A2
+ add r0, r4, #0
+ add r0, #0x8f
+ ldrb r0, [r0]
+ sub r1, r0, #1
+ b _021D85C2
+_021D85A2:
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrb r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x8e
+ strb r1, [r0]
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrb r1, [r0]
+ mov r0, #3
+ and r1, r0
+ add r0, r4, #0
+ add r0, #0x8e
+ strb r1, [r0]
+ mov r1, #4
+_021D85C2:
+ add r0, r4, #0
+ add r0, #0x8f
+ strb r1, [r0]
+ mov r0, #0xa
+ str r0, [sp]
+ ldr r0, _021D860C ; =0x04000050
+ mov r1, #2
+ mov r2, #8
+ mov r3, #6
+ bl G2x_SetBlendAlpha_
+ ldr r5, _021D8614 ; =0x021D9DFC
+ add r3, sp, #0x10
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r1, r4, #0
+ str r0, [sp, #0xc]
+ add r1, #0x8e
+ ldrb r1, [r1]
+ mov r0, #0x7d
+ mov r3, #2
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ ldr r2, [r4, #0x18]
+ bl FUN_0200687C
+ add sp, #0x30
+ pop {r3, r4, r5, pc}
+ nop
+_021D860C: .word 0x04000050
+_021D8610: .word 0x021D9DEC
+_021D8614: .word 0x021D9DFC
+ thumb_func_end MOD59_021D8504
+
+ thumb_func_start MOD59_021D8618
+MOD59_021D8618: ; 0x021D8618
+ ldr r0, _021D8620 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_021D8620: .word 0x04000050
+ thumb_func_end MOD59_021D8618
+
+ thumb_func_start MOD59_021D8624
+MOD59_021D8624: ; 0x021D8624
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0x94
+ str r2, [r1]
+ add r0, #0x98
+ str r2, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD59_021D8624
+
+ thumb_func_start MOD59_021D8634
+MOD59_021D8634: ; 0x021D8634
+ push {r4, r5, r6, lr}
+ sub sp, #0x40
+ add r3, r0, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ beq _021D864E
+ add r0, r3, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ sub r1, r0, #1
+ b _021D865E
+_021D864E:
+ add r0, r3, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r3, #0
+ add r0, #0x94
+ str r1, [r0]
+ mov r1, #8
+_021D865E:
+ add r0, r3, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r0, r3, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D8674
+ ldr r6, _021D86B4 ; =0x021D9E88
+ add r5, sp, #0x28
+ b _021D8678
+_021D8674:
+ ldr r6, _021D86B8 ; =0x021D9E70
+ add r5, sp, #0x10
+_021D8678:
+ add r2, r5, #0
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ add r0, r3, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0xff
+ bne _021D8698
+ mov r4, #1
+ b _021D86AE
+_021D8698:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r3]
+ str r0, [sp, #0xc]
+ ldr r2, [r3, #0x18]
+ mov r0, #0x7d
+ mov r3, #1
+ bl FUN_0200687C
+_021D86AE:
+ add r0, r4, #0
+ add sp, #0x40
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D86B4: .word 0x021D9E88
+_021D86B8: .word 0x021D9E70
+ thumb_func_end MOD59_021D8634
+
+ thumb_func_start MOD59_021D86BC
+MOD59_021D86BC: ; 0x021D86BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r4, r0, #0
+ ldr r0, [r6]
+ mov r7, #0
+ cmp r0, #5
+ bls _021D86CC
+ b _021D890A
+_021D86CC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D86D8: ; jump table
+ .short _021D86E4 - _021D86D8 - 2 ; case 0
+ .short _021D8728 - _021D86D8 - 2 ; case 1
+ .short _021D87A6 - _021D86D8 - 2 ; case 2
+ .short _021D87E0 - _021D86D8 - 2 ; case 3
+ .short _021D887C - _021D86D8 - 2 ; case 4
+ .short _021D88F8 - _021D86D8 - 2 ; case 5
+_021D86E4:
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ add r2, r7, #0
+ add r3, r7, #0
+ bl FUN_020179E0
+ mov r2, #3
+ add r3, r2, #0
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ sub r3, #0x6b
+ bl FUN_020179E0
+ mov r0, #2
+ add r1, r7, #0
+ bl FUN_020178BC
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ add r0, r4, #0
+ add r2, r7, #0
+ add r0, #0xa8
+ str r2, [r0]
+ add r0, r4, #0
+ mov r1, #8
+ add r0, #0xac
+ str r1, [r0]
+ add r4, #0xb0
+ str r2, [r4]
+ mov r0, #1
+ str r0, [r6]
+ b _021D890A
+_021D8728:
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_02017B48
+ ldr r0, [r4, #0x18]
+ mov r1, #5
+ bl FUN_02017B54
+ add r1, r4, #0
+ add r1, #0xb0
+ ldr r3, [r1]
+ add r1, r4, #0
+ add r1, #0xac
+ ldr r2, [r1]
+ lsl r1, r2, #3
+ add r1, r2, r1
+ add r2, r3, #0
+ mul r2, r1
+ lsl r1, r3, #3
+ add r1, r3, r1
+ mul r1, r3
+ lsr r3, r1, #0x1f
+ add r3, r1, r3
+ asr r1, r3, #1
+ sub r5, r2, r1
+ cmp r0, #0x58
+ bge _021D8792
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ mov r2, #1
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xb0
+ str r1, [r0]
+ mov r1, #2
+ ldr r0, [r4, #0x18]
+ add r3, r1, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x18]
+ mov r1, #5
+ mov r2, #1
+ mov r3, #2
+ bl FUN_020179E0
+ ldr r0, [r4, #0x18]
+ mov r1, #5
+ mov r2, #3
+ add r3, r5, #0
+ bl FUN_020179E0
+ b _021D890A
+_021D8792:
+ mov r0, #5
+ add r1, r7, #0
+ bl FUN_0201797C
+ mov r0, #0x1e
+ add r4, #0xb0
+ str r0, [r4]
+ mov r0, #2
+ str r0, [r6]
+ b _021D890A
+_021D87A6:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D87BE
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ add r4, #0xb0
+ sub r0, r0, #1
+ str r0, [r4]
+ b _021D890A
+_021D87BE:
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ add r0, r4, #0
+ add r2, r7, #0
+ add r0, #0xa8
+ str r2, [r0]
+ add r0, r4, #0
+ mov r1, #9
+ add r0, #0xac
+ str r1, [r0]
+ add r4, #0xb0
+ str r2, [r4]
+ mov r0, #3
+ str r0, [r6]
+ b _021D890A
+_021D87E0:
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_02017B48
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_02017B54
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r2, [r0]
+ lsl r0, r2, #3
+ add r0, r2, r0
+ lsl r2, r1, #3
+ add r2, r1, r2
+ mul r0, r1
+ mul r2, r1
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ sub r0, #0x68
+ asr r1, r1, #1
+ sub r5, r0, r1
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _021D8846
+ cmp r5, #0
+ bgt _021D8846
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ mov r2, #3
+ add r3, r7, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ add r2, r7, #0
+ add r0, #0xa8
+ str r2, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xac
+ str r1, [r0]
+ add r4, #0xb0
+ str r2, [r4]
+ mov r0, #4
+ str r0, [r6]
+ b _021D890A
+_021D8846:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ mov r2, #1
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xb0
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ str r5, [r0]
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ asr r5, r5, #1
+ cmp r5, #0x90
+ ble _021D886E
+ mov r5, #0x90
+_021D886E:
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ mov r2, #3
+ add r3, r5, #0
+ bl FUN_020179E0
+ b _021D890A
+_021D887C:
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_02017B48
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_02017B54
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r2, [r0]
+ lsl r0, r2, #3
+ add r0, r2, r0
+ lsl r2, r1, #3
+ add r2, r1, r2
+ mul r2, r1
+ mul r0, r1
+ lsr r1, r2, #0x1f
+ add r1, r2, r1
+ asr r1, r1, #1
+ sub r5, r0, r1
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _021D88CC
+ cmp r5, #0
+ bgt _021D88CC
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ mov r2, #3
+ add r3, r7, #0
+ bl FUN_020179E0
+ mov r0, #5
+ str r0, [r6]
+ b _021D890A
+_021D88CC:
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ mov r2, #1
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xb0
+ str r1, [r0]
+ mov r1, #2
+ ldr r0, [r4, #0x18]
+ add r3, r1, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ mov r2, #3
+ add r3, r5, #0
+ bl FUN_020179E0
+ add r4, #0xa8
+ str r5, [r4]
+ b _021D890A
+_021D88F8:
+ ldr r0, _021D8910 ; =0x000001BE
+ bl FUN_02005578
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #8
+ bl MOD59_021D7C10
+ mov r7, #1
+_021D890A:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8910: .word 0x000001BE
+ thumb_func_end MOD59_021D86BC
+
+ thumb_func_start MOD59_021D8914
+MOD59_021D8914: ; 0x021D8914
+ ldr r3, _021D891C ; =FUN_020178BC
+ mov r0, #2
+ mov r1, #1
+ bx r3
+ .align 2, 0
+_021D891C: .word FUN_020178BC
+ thumb_func_end MOD59_021D8914
+
+ thumb_func_start MOD59_021D8920
+MOD59_021D8920: ; 0x021D8920
+ push {r4, r5, r6, lr}
+ sub sp, #0x30
+ add r4, r0, #0
+ ldr r1, [r4, #0xc]
+ mov r5, #0
+ cmp r1, #0x6d
+ bls _021D8932
+ bl _021D985C
+_021D8932:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D893E: ; jump table
+ .short _021D8A1A - _021D893E - 2 ; case 0
+ .short _021D8A5A - _021D893E - 2 ; case 1
+ .short _021D8A76 - _021D893E - 2 ; case 2
+ .short _021D8A92 - _021D893E - 2 ; case 3
+ .short _021D8ADE - _021D893E - 2 ; case 4
+ .short _021D8AEE - _021D893E - 2 ; case 5
+ .short _021D8B02 - _021D893E - 2 ; case 6
+ .short _021D8B16 - _021D893E - 2 ; case 7
+ .short _021D8B60 - _021D893E - 2 ; case 8
+ .short _021D8B80 - _021D893E - 2 ; case 9
+ .short _021D8BA0 - _021D893E - 2 ; case 10
+ .short _021D8BD8 - _021D893E - 2 ; case 11
+ .short _021D8BE8 - _021D893E - 2 ; case 12
+ .short _021D8C02 - _021D893E - 2 ; case 13
+ .short _021D8C16 - _021D893E - 2 ; case 14
+ .short _021D8C30 - _021D893E - 2 ; case 15
+ .short _021D8C44 - _021D893E - 2 ; case 16
+ .short _021D8C5E - _021D893E - 2 ; case 17
+ .short _021D8C72 - _021D893E - 2 ; case 18
+ .short _021D8C98 - _021D893E - 2 ; case 19
+ .short _021D8CA8 - _021D893E - 2 ; case 20
+ .short _021D8CBC - _021D893E - 2 ; case 21
+ .short _021D8CF8 - _021D893E - 2 ; case 22
+ .short _021D8D1C - _021D893E - 2 ; case 23
+ .short _021D8D3E - _021D893E - 2 ; case 24
+ .short _021D8D7C - _021D893E - 2 ; case 25
+ .short _021D8D94 - _021D893E - 2 ; case 26
+ .short _021D8DD6 - _021D893E - 2 ; case 27
+ .short _021D8DEA - _021D893E - 2 ; case 28
+ .short _021D8E34 - _021D893E - 2 ; case 29
+ .short _021D8E44 - _021D893E - 2 ; case 30
+ .short _021D8E58 - _021D893E - 2 ; case 31
+ .short _021D8E90 - _021D893E - 2 ; case 32
+ .short _021D8EA0 - _021D893E - 2 ; case 33
+ .short _021D8EBE - _021D893E - 2 ; case 34
+ .short _021D8ED6 - _021D893E - 2 ; case 35
+ .short _021D8EF0 - _021D893E - 2 ; case 36
+ .short _021D8F0A - _021D893E - 2 ; case 37
+ .short _021D8F24 - _021D893E - 2 ; case 38
+ .short _021D8F3E - _021D893E - 2 ; case 39
+ .short _021D8F5E - _021D893E - 2 ; case 40
+ .short _021D8F7E - _021D893E - 2 ; case 41
+ .short _021D8F92 - _021D893E - 2 ; case 42
+ .short _021D8FA6 - _021D893E - 2 ; case 43
+ .short _021D8FC6 - _021D893E - 2 ; case 44
+ .short _021D900C - _021D893E - 2 ; case 45
+ .short _021D901C - _021D893E - 2 ; case 46
+ .short _021D9030 - _021D893E - 2 ; case 47
+ .short _021D9062 - _021D893E - 2 ; case 48
+ .short _021D90CE - _021D893E - 2 ; case 49
+ .short _021D90E2 - _021D893E - 2 ; case 50
+ .short _021D9106 - _021D893E - 2 ; case 51
+ .short _021D913E - _021D893E - 2 ; case 52
+ .short _021D9178 - _021D893E - 2 ; case 53
+ .short _021D9192 - _021D893E - 2 ; case 54
+ .short _021D91E4 - _021D893E - 2 ; case 55
+ .short _021D9208 - _021D893E - 2 ; case 56
+ .short _021D921A - _021D893E - 2 ; case 57
+ .short _021D922A - _021D893E - 2 ; case 58
+ .short _021D9244 - _021D893E - 2 ; case 59
+ .short _021D925C - _021D893E - 2 ; case 60
+ .short _021D926C - _021D893E - 2 ; case 61
+ .short _021D927E - _021D893E - 2 ; case 62
+ .short _021D9290 - _021D893E - 2 ; case 63
+ .short _021D92CA - _021D893E - 2 ; case 64
+ .short _021D92DC - _021D893E - 2 ; case 65
+ .short _021D92EE - _021D893E - 2 ; case 66
+ .short _021D930A - _021D893E - 2 ; case 67
+ .short _021D9384 - _021D893E - 2 ; case 68
+ .short _021D9396 - _021D893E - 2 ; case 69
+ .short _021D93AE - _021D893E - 2 ; case 70
+ .short _021D93C0 - _021D893E - 2 ; case 71
+ .short _021D93D8 - _021D893E - 2 ; case 72
+ .short _021D93F8 - _021D893E - 2 ; case 73
+ .short _021D942A - _021D893E - 2 ; case 74
+ .short _021D944A - _021D893E - 2 ; case 75
+ .short _021D945C - _021D893E - 2 ; case 76
+ .short _021D9476 - _021D893E - 2 ; case 77
+ .short _021D94DE - _021D893E - 2 ; case 78
+ .short _021D94EC - _021D893E - 2 ; case 79
+ .short _021D950C - _021D893E - 2 ; case 80
+ .short _021D954E - _021D893E - 2 ; case 81
+ .short _021D956E - _021D893E - 2 ; case 82
+ .short _021D9586 - _021D893E - 2 ; case 83
+ .short _021D9598 - _021D893E - 2 ; case 84
+ .short _021D95AA - _021D893E - 2 ; case 85
+ .short _021D95BC - _021D893E - 2 ; case 86
+ .short _021D95D4 - _021D893E - 2 ; case 87
+ .short _021D95E6 - _021D893E - 2 ; case 88
+ .short _021D95F8 - _021D893E - 2 ; case 89
+ .short _021D960A - _021D893E - 2 ; case 90
+ .short _021D9672 - _021D893E - 2 ; case 91
+ .short _021D9684 - _021D893E - 2 ; case 92
+ .short _021D9696 - _021D893E - 2 ; case 93
+ .short _021D96DE - _021D893E - 2 ; case 94
+ .short _021D96EC - _021D893E - 2 ; case 95
+ .short _021D96FE - _021D893E - 2 ; case 96
+ .short _021D9738 - _021D893E - 2 ; case 97
+ .short _021D974C - _021D893E - 2 ; case 98
+ .short _021D9764 - _021D893E - 2 ; case 99
+ .short _021D9788 - _021D893E - 2 ; case 100
+ .short _021D9798 - _021D893E - 2 ; case 101
+ .short _021D97B2 - _021D893E - 2 ; case 102
+ .short _021D97CC - _021D893E - 2 ; case 103
+ .short _021D97DC - _021D893E - 2 ; case 104
+ .short _021D9812 - _021D893E - 2 ; case 105
+ .short _021D982A - _021D893E - 2 ; case 106
+ .short _021D983A - _021D893E - 2 ; case 107
+ .short _021D9848 - _021D893E - 2 ; case 108
+ .short _021D985A - _021D893E - 2 ; case 109
+_021D8A1A:
+ ldr r1, _021D8D70 ; =0x00000405
+ mov r0, #2
+ mov r2, #1
+ bl FUN_0200433C
+ ldr r0, _021D8D70 ; =0x00000405
+ add r1, r5, #0
+ bl FUN_02005350
+ add r0, r5, #0
+ 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, r5, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #1
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8A5A:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D8B22
+ add r0, r4, #0
+ mov r1, #0x28
+ bl MOD59_021D7BEC
+ cmp r0, #1
+ bne _021D8B22
+ mov r0, #2
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8A76:
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D8B22
+ mov r0, #3
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ bl _021D985C
+_021D8A92:
+ ldr r0, _021D8D70 ; =0x00000405
+ bl FUN_0200521C
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x89
+ strb r1, [r0]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r0, #0x8a
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D8140
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r1, #1
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r5, #0
+ bl FUN_0200E1D0
+ mov r0, #4
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8ADE:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D8B22
+ mov r0, #5
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8AEE:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D8B22
+ mov r0, #6
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8B02:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD59_021D8460
+ cmp r0, #1
+ bne _021D8B22
+ mov r0, #7
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8B16:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD59_021D7D7C
+ cmp r0, #1
+ beq _021D8B26
+_021D8B22:
+ bl _021D985C
+_021D8B26:
+ ldr r0, [r4, #0x48]
+ cmp r0, #1
+ beq _021D8B38
+ cmp r0, #2
+ beq _021D8B44
+ cmp r0, #3
+ beq _021D8B58
+ bl _021D985C
+_021D8B38:
+ mov r0, #0xa
+ str r0, [r4, #0x10]
+ mov r0, #8
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8B44:
+ mov r0, #0x1f
+ str r0, [r4, #0x10]
+ mov r0, #8
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ bl _021D985C
+_021D8B58:
+ mov r0, #0x29
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8B60:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r5, #0
+ add r3, r5, #0
+ bl FUN_0200E1D0
+ mov r0, #9
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8B80:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D8C84
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ mov r0, #1
+ add r1, r5, #0
+ bl FUN_0201797C
+ ldr r0, [r4, #0x10]
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8BA0:
+ add r1, r4, #0
+ mov r2, #1
+ add r1, #0x88
+ strb r2, [r1]
+ bl MOD59_021D80FC
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x8b
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D8234
+ 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, r5, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0xb
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8BD8:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D8C84
+ mov r0, #0xc
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8BE8:
+ mov r1, #0x12
+ str r1, [sp]
+ mov r1, #2
+ add r2, r5, #0
+ mov r3, #3
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ bne _021D8C84
+ mov r0, #0xd
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8C02:
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x88
+ strb r2, [r1]
+ bl MOD59_021D80FC
+ mov r0, #0xe
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8C16:
+ mov r1, #0xc
+ str r1, [sp]
+ mov r1, #3
+ add r2, r5, #0
+ mov r3, #7
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ bne _021D8C84
+ mov r0, #0xf
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8C30:
+ add r1, r4, #0
+ mov r2, #3
+ add r1, #0x88
+ strb r2, [r1]
+ bl MOD59_021D80FC
+ mov r0, #0x10
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8C44:
+ mov r1, #0xc
+ str r1, [sp]
+ mov r1, #4
+ add r2, r5, #0
+ add r3, r1, #0
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ bne _021D8C84
+ mov r0, #0x11
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8C5E:
+ mov r1, #6
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D8C84
+ mov r0, #0x12
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8C72:
+ mov r1, #0xa
+ str r1, [sp]
+ mov r1, #5
+ add r2, r5, #0
+ mov r3, #4
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ beq _021D8C88
+_021D8C84:
+ bl _021D985C
+_021D8C88:
+ mov r0, #0x13
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ bl _021D985C
+_021D8C98:
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x14
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8CA8:
+ mov r1, #7
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D8DA0
+ mov r0, #0x15
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8CBC:
+ ldr r6, _021D8D74 ; =0x021D9E44
+ add r3, sp, #0x1c
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r2, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [r4, #0x68]
+ bl FUN_020145C8
+ mov r0, #6
+ mov r1, #1
+ bl FUN_0201797C
+ add r0, r4, #0
+ mov r1, #3
+ add r0, #0x8b
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D8234
+ mov r0, #0x16
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8CF8:
+ ldr r0, _021D8D78 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _021D8D08
+ mov r0, #0x1b
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8D08:
+ ldr r0, [r4, #0x68]
+ bl FUN_02014630
+ sub r0, r0, #3
+ cmp r0, #1
+ bhi _021D8DA0
+ mov r0, #0x17
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8D1C:
+ ldr r0, [r4, #0x68]
+ bl FUN_02014630
+ cmp r0, #1
+ beq _021D8D2E
+ cmp r0, #2
+ beq _021D8D36
+ bl _021D985C
+_021D8D2E:
+ mov r0, #0x18
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8D36:
+ mov r0, #0x1a
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8D3E:
+ mov r1, #6
+ mov r2, #1
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D8DA0
+ ldr r0, [r4, #0x68]
+ bl FUN_020146C4
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x19
+ str r0, [r4, #0xc]
+ bl _021D985C
+ .align 2, 0
+_021D8D70: .word 0x00000405
+_021D8D74: .word 0x021D9E44
+_021D8D78: .word 0x021C48B8
+_021D8D7C:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D8DA0
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ mov r0, #0x1c
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8D94:
+ mov r1, #6
+ mov r2, #1
+ bl MOD59_021D7A68
+ cmp r0, #1
+ beq _021D8DA4
+_021D8DA0:
+ bl _021D985C
+_021D8DA4:
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ ldr r0, [r4, #0x68]
+ bl FUN_020146C4
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x88
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D80FC
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0x8b
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D8234
+ mov r0, #0xc
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8DD6:
+ mov r1, #8
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D8EB2
+ mov r0, #0x16
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8DEA:
+ add r1, r4, #0
+ add r1, #0x88
+ strb r5, [r1]
+ bl MOD59_021D80FC
+ add r0, r4, #0
+ add r1, r5, #0
+ add r0, #0x8b
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D8234
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ add r2, r5, #0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020179E0
+ 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, r5, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x1d
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8E34:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D8EB2
+ mov r0, #0x1e
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8E44:
+ mov r1, #9
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D8EB2
+ mov r0, #6
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8E58:
+ add r1, r4, #0
+ mov r2, #4
+ add r1, #0x88
+ strb r2, [r1]
+ bl MOD59_021D80FC
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0x8b
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D8234
+ 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, r5, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x20
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8E90:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D8EB2
+ mov r0, #0x21
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8EA0:
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #0xa
+ mov r2, #1
+ mov r3, #9
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ beq _021D8EB6
+_021D8EB2:
+ bl _021D985C
+_021D8EB6:
+ mov r0, #0x22
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8EBE:
+ mov r3, #8
+ mov r1, #0xb
+ mov r2, #1
+ str r3, [sp]
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ bne _021D8FCE
+ mov r0, #0x23
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8ED6:
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #0xc
+ mov r2, #1
+ mov r3, #9
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ bne _021D8FCE
+ mov r0, #0x24
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8EF0:
+ mov r1, #0xe
+ str r1, [sp]
+ mov r1, #0xd
+ mov r2, #1
+ mov r3, #5
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ bne _021D8FCE
+ mov r0, #0x25
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8F0A:
+ mov r1, #4
+ str r1, [sp]
+ mov r1, #0xe
+ mov r2, #1
+ mov r3, #0xa
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ bne _021D8FCE
+ mov r0, #0x26
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8F24:
+ mov r1, #0xc
+ str r1, [sp]
+ mov r1, #0xf
+ mov r2, #1
+ mov r3, #6
+ bl MOD59_021D7ECC
+ cmp r0, #1
+ bne _021D8FCE
+ mov r0, #0x27
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8F3E:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r5, #0
+ add r3, r5, #0
+ bl FUN_0200E1D0
+ mov r0, #0x28
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8F5E:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D8FCE
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x1c
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8F7E:
+ mov r1, #1
+ mov r2, #2
+ bl MOD59_021D8460
+ cmp r0, #1
+ bne _021D8FCE
+ mov r0, #0x2a
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8F92:
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D8FCE
+ mov r0, #0x2b
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8FA6:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, r5, #0
+ str r0, [sp, #8]
+ mov r0, #4
+ add r2, r5, #0
+ add r3, r5, #0
+ bl FUN_0200E1D0
+ mov r0, #0x2c
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D8FC6:
+ bl FUN_0200E308
+ cmp r0, #1
+ beq _021D8FD2
+_021D8FCE:
+ bl _021D985C
+_021D8FD2:
+ add r0, r4, #0
+ bl MOD59_021D83F8
+ add r0, r4, #0
+ mov r1, #4
+ add r0, #0x8b
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D8234
+ mov r0, #6
+ 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]
+ mov r0, #4
+ add r3, r5, #0
+ bl FUN_0200E1D0
+ mov r0, #0x2d
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D900C:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D90DA
+ mov r0, #0x2e
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D901C:
+ mov r1, #0x11
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D90DA
+ mov r0, #0x2f
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D9030:
+ bl MOD59_021D7730
+ cmp r0, #1
+ bne _021D9054
+ add r0, r4, #0
+ add r1, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x98
+ str r1, [r0]
+ ldr r0, [r4, #0x18]
+ bl FUN_02018744
+ mov r0, #0x30
+ str r0, [r4, #0xc]
+ bl _021D985C
+_021D9054:
+ ldr r0, _021D9370 ; =0x021C48B8
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ beq _021D90DA
+ mov r0, #0x31
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9062:
+ add r0, #0x98
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D9078
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ add r4, #0x98
+ sub r0, r0, #1
+ str r0, [r4]
+ b _021D985C
+_021D9078:
+ ldr r6, _021D9374 ; =0x021D9DC0
+ add r3, sp, #0x10
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ ldr r0, _021D9378 ; =0x0000FFFF
+ cmp r1, r0
+ bne _021D90A2
+ ldr r0, _021D937C ; =0x00000706
+ bl FUN_020054C8
+ mov r0, #0x32
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D90A2:
+ mov r0, #0x20
+ str r0, [sp]
+ str r5, [sp, #4]
+ str r5, [sp, #8]
+ ldr r0, [r4]
+ mov r3, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x18]
+ mov r0, #0x7d
+ bl FUN_0200687C
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x94
+ str r1, [r0]
+ mov r0, #4
+ add r4, #0x98
+ str r0, [r4]
+ b _021D985C
+_021D90CE:
+ mov r1, #0x12
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ beq _021D90DC
+_021D90DA:
+ b _021D985C
+_021D90DC:
+ mov r0, #0x2f
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D90E2:
+ mov r0, #1
+ mov r1, #0x10
+ add r2, r5, #0
+ mov r3, #0xb
+ str r0, [sp]
+ bl FUN_0200A208
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ mov r1, #0x10
+ add r2, r5, #0
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #0x33
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9106:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D91F6
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D91F6
+ mov r0, #1
+ add r1, r5, #0
+ mov r2, #0x10
+ mov r3, #0xb
+ str r0, [sp]
+ bl FUN_0200A208
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ add r1, r5, #0
+ mov r2, #0x10
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #0x34
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D913E:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D91F6
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D91F6
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #4
+ mov r1, #0x10
+ add r2, r5, #0
+ mov r3, #0xb
+ bl FUN_0200A208
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #4
+ mov r1, #0x10
+ add r2, r5, #0
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #0x35
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9178:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D91F6
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D91F6
+ mov r0, #0x36
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9192:
+ bl MOD59_021D82A0
+ mov r0, #6
+ add r1, r5, #0
+ bl FUN_0201797C
+ add r0, r4, #0
+ add r1, r5, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r1, r4, #0
+ add r0, r4, #0
+ add r1, #0x94
+ bl MOD59_021D86BC
+ add r0, r4, #0
+ add r1, r5, #0
+ add r0, #0x8b
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D8234
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x10
+ add r1, r5, #0
+ add r2, r0, #0
+ mov r3, #0xb
+ bl FUN_0200A208
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x10
+ add r1, r5, #0
+ add r2, r0, #0
+ mov r3, #0xd
+ bl FUN_0200A208
+ mov r0, #0x37
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D91E4:
+ add r1, r4, #0
+ add r1, #0x94
+ bl MOD59_021D86BC
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ beq _021D91F8
+_021D91F6:
+ b _021D985C
+_021D91F8:
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D92FA
+ mov r0, #0x38
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9208:
+ add r1, r4, #0
+ add r1, #0x94
+ bl MOD59_021D86BC
+ cmp r0, #1
+ bne _021D92FA
+ mov r0, #0x39
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D921A:
+ mov r1, #0x28
+ bl MOD59_021D7BEC
+ cmp r0, #1
+ bne _021D92FA
+ mov r0, #0x3a
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D922A:
+ mov r1, #0x13
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D92FA
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ mov r0, #0x3b
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9244:
+ mov r1, #2
+ mov r2, #1
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D92FA
+ add r0, r4, #0
+ bl MOD59_021D8914
+ mov r0, #0x3c
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D925C:
+ mov r1, #0x1e
+ bl MOD59_021D7BEC
+ cmp r0, #1
+ bne _021D92FA
+ mov r0, #0x3d
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D926C:
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D92FA
+ mov r0, #0x3e
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D927E:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D92FA
+ mov r0, #0x3f
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9290:
+ bl MOD59_021D84E8
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0x89
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #6
+ add r0, #0x8a
+ strb r1, [r0]
+ add r0, r4, #0
+ bl MOD59_021D8140
+ add r2, r5, #0
+ add r3, r2, #0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ sub r3, #0x30
+ bl FUN_020179E0
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ add r2, r5, #0
+ mov r3, #0x30
+ bl FUN_020179E0
+ mov r0, #0x40
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D92CA:
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D92FA
+ mov r0, #0x41
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D92DC:
+ mov r1, #2
+ add r2, r5, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D92FA
+ mov r0, #0x42
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D92EE:
+ mov r1, #0x15
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ beq _021D92FC
+_021D92FA:
+ b _021D985C
+_021D92FC:
+ add r0, r4, #0
+ add r1, r5, #0
+ add r0, #0x84
+ str r1, [r0]
+ mov r0, #0x43
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D930A:
+ ldr r0, _021D9370 ; =0x021C48B8
+ mov r1, #1
+ ldr r0, [r0, #0x48]
+ and r1, r0
+ cmp r1, #1
+ bne _021D933C
+ mov r0, #6
+ str r0, [r4, #0x7c]
+ add r0, r4, #0
+ mov r1, #0xa
+ add r0, #0x80
+ str r1, [r0]
+ mov r0, #2
+ str r0, [r4, #0x78]
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D9336
+ mov r0, #0x44
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9336:
+ mov r0, #0x46
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D933C:
+ mov r1, #0x20
+ and r1, r0
+ cmp r1, #0x20
+ beq _021D934C
+ mov r1, #0x10
+ and r0, r1
+ cmp r0, #0x10
+ bne _021D9368
+_021D934C:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D935A
+ mov r1, #1
+ b _021D935C
+_021D935A:
+ mov r1, #0
+_021D935C:
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ ldr r0, _021D9380 ; =0x000005DC
+ bl FUN_020054C8
+_021D9368:
+ add r0, r4, #0
+ bl MOD59_021D8504
+ b _021D985C
+ .align 2, 0
+_021D9370: .word 0x021C48B8
+_021D9374: .word 0x021D9DC0
+_021D9378: .word 0x0000FFFF
+_021D937C: .word 0x00000706
+_021D9380: .word 0x000005DC
+_021D9384:
+ mov r1, #2
+ mov r2, #1
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D9414
+ mov r0, #0x45
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9396:
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD59_021D8460
+ cmp r0, #1
+ bne _021D9414
+ add r0, r4, #0
+ bl MOD59_021D8618
+ mov r0, #0x48
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D93AE:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D9414
+ mov r0, #0x47
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D93C0:
+ mov r1, #2
+ add r2, r5, #0
+ bl MOD59_021D8460
+ cmp r0, #1
+ bne _021D9414
+ add r0, r4, #0
+ bl MOD59_021D8618
+ mov r0, #0x48
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D93D8:
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D93E4
+ mov r1, #0x16
+ b _021D93E6
+_021D93E4:
+ mov r1, #0x17
+_021D93E6:
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D9414
+ mov r0, #0x49
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D93F8:
+ add r1, r5, #0
+ add r2, r5, #0
+ bl MOD59_021D7D7C
+ cmp r0, #1
+ bne _021D9414
+ ldr r1, [r4, #0x48]
+ sub r0, r5, #2
+ cmp r1, r0
+ beq _021D941C
+ cmp r1, #1
+ beq _021D9416
+ cmp r1, #2
+ beq _021D941C
+_021D9414:
+ b _021D985C
+_021D9416:
+ mov r0, #0x4b
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D941C:
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02018744
+ mov r0, #0x4a
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D942A:
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D9436
+ mov r1, #1
+ b _021D9438
+_021D9436:
+ mov r1, #2
+_021D9438:
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D9530
+ mov r0, #0x3f
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D944A:
+ mov r1, #0x18
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D9530
+ mov r0, #0x4c
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D945C:
+ add r0, #0x84
+ ldr r1, [r0]
+ ldr r0, [r4, #0x70]
+ str r1, [r0, #4]
+ ldr r0, _021D9778 ; =0x020FA5FC
+ ldr r1, [r4, #0x70]
+ ldr r2, [r4]
+ bl FUN_02006234
+ str r0, [r4, #0x14]
+ mov r0, #0x4d
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9476:
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #1
+ bl FUN_0201797C
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D94AE
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ add r2, r5, #0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020179E0
+ b _021D94C2
+_021D94AE:
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ add r2, r5, #0
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+_021D94C2:
+ mov r0, #6
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x4e
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D94DE:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D9530
+ mov r0, #0x4f
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D94EC:
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D94F8
+ mov r1, #0x19
+ b _021D94FA
+_021D94F8:
+ mov r1, #0x1a
+_021D94FA:
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D9530
+ mov r0, #0x50
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D950C:
+ add r1, r5, #0
+ add r2, r5, #0
+ bl MOD59_021D7D7C
+ cmp r0, #1
+ bne _021D9530
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ ldr r1, [r4, #0x48]
+ sub r0, r5, #2
+ cmp r1, r0
+ beq _021D953C
+ cmp r1, #1
+ beq _021D9532
+ cmp r1, #2
+ beq _021D953C
+_021D9530:
+ b _021D985C
+_021D9532:
+ mov r0, #0x52
+ str r0, [r4, #0x10]
+ mov r0, #0x51
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D953C:
+ ldr r0, [r4, #0x70]
+ ldr r0, [r0, #0x18]
+ bl FUN_02021A4C
+ mov r0, #0x3f
+ str r0, [r4, #0x10]
+ mov r0, #0x51
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D954E:
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D955A
+ mov r1, #1
+ b _021D955C
+_021D955A:
+ mov r1, #2
+_021D955C:
+ add r0, r4, #0
+ mov r2, #1
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D9616
+ ldr r0, [r4, #0x10]
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D956E:
+ add r1, r4, #0
+ mov r2, #1
+ add r1, #0x89
+ strb r2, [r1]
+ add r1, r4, #0
+ add r1, #0x8a
+ strb r5, [r1]
+ bl MOD59_021D8140
+ mov r0, #0x53
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9586:
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D9616
+ mov r0, #0x54
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9598:
+ mov r1, #0x1b
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D9616
+ mov r0, #0x55
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D95AA:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D9616
+ mov r0, #0x56
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D95BC:
+ add r1, r4, #0
+ mov r2, #0xa
+ add r1, #0x89
+ strb r2, [r1]
+ add r1, r4, #0
+ add r1, #0x8a
+ strb r5, [r1]
+ bl MOD59_021D8140
+ mov r0, #0x57
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D95D4:
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D9616
+ mov r0, #0x58
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D95E6:
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D9616
+ mov r0, #0x59
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D95F8:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD59_021D8460
+ cmp r0, #1
+ bne _021D9616
+ mov r0, #0x5a
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D960A:
+ mov r1, #2
+ mov r2, #1
+ bl MOD59_021D7D7C
+ cmp r0, #1
+ beq _021D9618
+_021D9616:
+ b _021D985C
+_021D9618:
+ ldr r0, [r4, #0x48]
+ cmp r0, #5
+ bhi _021D971A
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D962A: ; jump table
+ .short _021D985C - _021D962A - 2 ; case 0
+ .short _021D9636 - _021D962A - 2 ; case 1
+ .short _021D963C - _021D962A - 2 ; case 2
+ .short _021D963C - _021D962A - 2 ; case 3
+ .short _021D963C - _021D962A - 2 ; case 4
+ .short _021D963C - _021D962A - 2 ; case 5
+_021D9636:
+ mov r0, #0x5c
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D963C:
+ ldr r1, _021D977C ; =0x020ECAC0
+ ldrb r1, [r1]
+ cmp r1, #0xa
+ bne _021D964C
+ sub r0, r0, #1
+ lsl r1, r0, #3
+ ldr r0, _021D9780 ; =0x021D9F40
+ b _021D9652
+_021D964C:
+ sub r0, r0, #1
+ lsl r1, r0, #3
+ ldr r0, _021D9784 ; =0x021D9F68
+_021D9652:
+ ldr r1, [r0, r1]
+ ldr r0, [r4, #0x4c]
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, [r4, #0x74]
+ add r1, r6, #0
+ ldr r0, [r0, #0x18]
+ bl FUN_02021A74
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x5b
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9672:
+ mov r1, #1
+ mov r2, #2
+ bl MOD59_021D8460
+ cmp r0, #1
+ bne _021D971A
+ mov r0, #0x5f
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9684:
+ ldr r0, _021D9778 ; =0x020FA5FC
+ ldr r1, [r4, #0x74]
+ ldr r2, [r4]
+ bl FUN_02006234
+ str r0, [r4, #0x14]
+ mov r0, #0x5d
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9696:
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #7
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ add r2, r5, #0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_020179E0
+ 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, r5, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #0x5e
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D96DE:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D971A
+ mov r0, #0x5f
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D96EC:
+ mov r1, #0x1d
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D971A
+ mov r0, #0x60
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D96FE:
+ add r1, r5, #0
+ add r2, r5, #0
+ bl MOD59_021D7D7C
+ cmp r0, #1
+ bne _021D971A
+ ldr r1, [r4, #0x48]
+ sub r0, r5, #2
+ cmp r1, r0
+ beq _021D972A
+ cmp r1, #1
+ beq _021D971C
+ cmp r1, #2
+ beq _021D972A
+_021D971A:
+ b _021D985C
+_021D971C:
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ mov r0, #0x61
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D972A:
+ ldr r0, [r4, #0x74]
+ ldr r0, [r0, #0x18]
+ bl FUN_02021A4C
+ mov r0, #0x58
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9738:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ beq _021D9746
+ b _021D985C
+_021D9746:
+ mov r0, #0x62
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D974C:
+ add r1, r4, #0
+ mov r2, #1
+ add r1, #0x89
+ strb r2, [r1]
+ add r1, r4, #0
+ add r1, #0x8a
+ strb r5, [r1]
+ bl MOD59_021D8140
+ mov r0, #0x63
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9764:
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D985C
+ mov r0, #0x64
+ str r0, [r4, #0xc]
+ b _021D985C
+ nop
+_021D9778: .word 0x020FA5FC
+_021D977C: .word 0x020ECAC0
+_021D9780: .word 0x021D9F40
+_021D9784: .word 0x021D9F68
+_021D9788:
+ mov r1, #0x1e
+ bl MOD59_021D7BEC
+ cmp r0, #1
+ bne _021D985C
+ mov r0, #0x65
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9798:
+ mov r1, #0x1e
+ mov r2, #1
+ bl MOD59_021D7C44
+ cmp r0, #1
+ bne _021D985C
+ add r0, r5, #0
+ mov r1, #0x32
+ bl FUN_020053CC
+ mov r0, #0x66
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D97B2:
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D985C
+ ldr r0, [r4, #0x18]
+ add r1, r5, #0
+ bl FUN_02018744
+ mov r0, #0x67
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D97CC:
+ mov r1, #0x1e
+ bl MOD59_021D7BEC
+ cmp r0, #1
+ bne _021D985C
+ mov r0, #0x68
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D97DC:
+ add r1, r4, #0
+ add r1, #0x84
+ ldr r1, [r1]
+ cmp r1, #0
+ bne _021D97FA
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x89
+ strb r2, [r1]
+ add r1, r4, #0
+ add r1, #0x8a
+ strb r5, [r1]
+ bl MOD59_021D8140
+ b _021D980C
+_021D97FA:
+ add r1, r4, #0
+ mov r2, #6
+ add r1, #0x89
+ strb r2, [r1]
+ add r1, r4, #0
+ add r1, #0x8a
+ strb r5, [r1]
+ bl MOD59_021D8140
+_021D980C:
+ mov r0, #0x69
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9812:
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD59_021D7A68
+ cmp r0, #1
+ bne _021D985C
+ add r0, r4, #0
+ bl MOD59_021D8624
+ mov r0, #0x6a
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D982A:
+ mov r1, #0x1e
+ bl MOD59_021D7BEC
+ cmp r0, #1
+ bne _021D985C
+ mov r0, #0x6b
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D983A:
+ bl MOD59_021D8634
+ cmp r0, #1
+ bne _021D985C
+ mov r0, #0x6c
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D9848:
+ ldr r0, _021D9864 ; =0x021D9DDC
+ ldr r2, [r4]
+ add r1, r5, #0
+ bl FUN_02006234
+ str r0, [r4, #0x14]
+ mov r0, #0x6d
+ str r0, [r4, #0xc]
+ b _021D985C
+_021D985A:
+ mov r5, #1
+_021D985C:
+ add r0, r5, #0
+ add sp, #0x30
+ pop {r4, r5, r6, pc}
+ nop
+_021D9864: .word 0x021D9DDC
+ thumb_func_end MOD59_021D8920
+
+ thumb_func_start MOD59_021D9868
+MOD59_021D9868: ; 0x021D9868
+ push {r4, lr}
+ mov r2, #1
+ add r4, r0, #0
+ mov r0, #3
+ mov r1, #0x53
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ add r0, r4, #0
+ mov r1, #0x28
+ mov r2, #0x53
+ bl FUN_02006268
+ mov r1, #0
+ mov r2, #0x28
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x53
+ str r0, [r4]
+ mov r0, #0
+ str r0, [r4, #0x24]
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD59_021D9868
+
+ thumb_func_start MOD59_021D9898
+MOD59_021D9898: ; 0x021D9898
+ 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
+ bls _021D98AE
+ b _021D99E2
+_021D98AE:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D98BA: ; jump table
+ .short _021D98C6 - _021D98BA - 2 ; case 0
+ .short _021D992C - _021D98BA - 2 ; case 1
+ .short _021D9952 - _021D98BA - 2 ; case 2
+ .short _021D997C - _021D98BA - 2 ; case 3
+ .short _021D998E - _021D98BA - 2 ; case 4
+ .short _021D99C0 - _021D98BA - 2 ; case 5
+_021D98C6:
+ add r0, r6, #0
+ add r1, r6, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ add r1, r6, #0
+ bl FUN_0200E3A0
+ add r0, r6, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r6, #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, _021D99E8 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D99EC ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ add r0, r4, #0
+ bl MOD59_021D9A20
+ add r0, r4, #0
+ bl MOD59_021D9C48
+ ldr r0, _021D99F0 ; =MOD59_021D9A14
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ mov r0, #0x3c
+ str r0, [r4, #0x24]
+ mov r0, #1
+ str r0, [r5]
+ b _021D99E2
+_021D992C:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021D9938
+ sub r0, r0, #1
+ str r0, [r4, #0x24]
+ b _021D99E2
+_021D9938:
+ ldr r0, _021D99F4 ; =0x00000406
+ bl FUN_0200414C
+ ldr r1, _021D99F4 ; =0x00000406
+ mov r0, #4
+ mov r2, #1
+ bl FUN_0200433C
+ mov r0, #0x5a
+ str r0, [r4, #0x24]
+ mov r0, #2
+ str r0, [r5]
+ b _021D99E2
+_021D9952:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021D995E
+ sub r0, r0, #1
+ str r0, [r4, #0x24]
+ b _021D99E2
+_021D995E:
+ str r6, [r4, #0x24]
+ 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, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #3
+ str r0, [r5]
+ b _021D99E2
+_021D997C:
+ bl MOD59_021D9D78
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D99E2
+ mov r0, #4
+ str r0, [r5]
+ b _021D99E2
+_021D998E:
+ bl MOD59_021D9D78
+ add r0, r4, #0
+ add r1, r6, #0
+ mov r2, #0x28
+ mov r3, #0x30
+ bl MOD59_021D9C74
+ cmp r0, #1
+ bne _021D99E2
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #5
+ str r0, [r5]
+ b _021D99E2
+_021D99C0:
+ bl MOD59_021D9D78
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D99E2
+ add r0, r4, #0
+ bl MOD59_021D9C68
+ add r0, r4, #0
+ bl MOD59_021D9BD0
+ add r0, r6, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r6, #1
+_021D99E2:
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D99E8: .word 0xFFFFE0FF
+_021D99EC: .word 0x04001000
+_021D99F0: .word MOD59_021D9A14
+_021D99F4: .word 0x00000406
+ thumb_func_end MOD59_021D9898
+
+ thumb_func_start MOD59_021D99F8
+MOD59_021D99F8: ; 0x021D99F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ ldr r4, [r0]
+ add r0, r5, #0
+ bl FUN_0200627C
+ add r0, r4, #0
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD59_021D99F8
+
+ thumb_func_start MOD59_021D9A14
+MOD59_021D9A14: ; 0x021D9A14
+ ldr r3, _021D9A1C ; =FUN_0201AB60
+ ldr r0, [r0, #4]
+ bx r3
+ nop
+_021D9A1C: .word FUN_0201AB60
+ thumb_func_end MOD59_021D9A14
+
+ thumb_func_start MOD59_021D9A20
+MOD59_021D9A20: ; 0x021D9A20
+ push {r3, r4, r5, lr}
+ sub sp, #0xb8
+ ldr r5, _021D9BB4 ; =0x021DA0D4
+ add r4, r0, #0
+ add r3, sp, #0x90
+ mov r2, #5
+_021D9A2C:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D9A2C
+ add r0, sp, #0x90
+ bl FUN_0201E66C
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0x80
+ ldr r5, _021D9BB8 ; =0x021DA054
+ str r0, [r4, #4]
+ 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, _021D9BBC ; =0x021DA080
+ add r3, sp, #0x64
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r3, [r4]
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021D9BC0 ; =0x021DA09C
+ add r3, sp, #0x48
+ 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]
+ ldr r0, [r4, #4]
+ add r3, r1, #0
+ bl FUN_02016C18
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #1
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x88
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #4
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x88
+ bl FUN_020068C8
+ ldr r5, _021D9BC4 ; =0x021DA064
+ add r3, sp, #0x2c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #2
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x88
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #5
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x88
+ mov r3, #1
+ bl FUN_020068C8
+ ldr r5, _021D9BC8 ; =0x021DA0B8
+ add r3, sp, #0x10
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [r4]
+ mov r3, #3
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x88
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ mov r1, #3
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x88
+ add r3, r1, #0
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ ldr r0, [r4]
+ mov r1, #6
+ str r0, [sp, #4]
+ mov r0, #0x88
+ add r3, r2, #0
+ bl FUN_02006930
+ ldr r2, [r4]
+ mov r0, #0
+ mov r1, #0x20
+ bl FUN_02002ED0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ mov r2, #0xc
+ ldr r0, _021D9BCC ; =0x04000050
+ mov r1, #2
+ mov r3, #4
+ str r2, [sp]
+ bl G2x_SetBlendAlpha_
+ add sp, #0xb8
+ pop {r3, r4, r5, pc}
+ nop
+_021D9BB4: .word 0x021DA0D4
+_021D9BB8: .word 0x021DA054
+_021D9BBC: .word 0x021DA080
+_021D9BC0: .word 0x021DA09C
+_021D9BC4: .word 0x021DA064
+_021D9BC8: .word 0x021DA0B8
+_021D9BCC: .word 0x04000050
+ thumb_func_end MOD59_021D9A20
+
+ thumb_func_start MOD59_021D9BD0
+MOD59_021D9BD0: ; 0x021D9BD0
+ 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, _021D9C44 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ pop {r4, pc}
+ nop
+_021D9C44: .word 0x04000050
+ thumb_func_end MOD59_021D9BD0
+
+ thumb_func_start MOD59_021D9C48
+MOD59_021D9C48: ; 0x021D9C48
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, _021D9C64 ; =0x00000225
+ ldr r3, [r4]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ str r0, [r4, #8]
+ bl FUN_0201BD5C
+ mov r0, #0
+ str r0, [r4, #0xc]
+ pop {r4, pc}
+ .align 2, 0
+_021D9C64: .word 0x00000225
+ thumb_func_end MOD59_021D9C48
+
+ thumb_func_start MOD59_021D9C68
+MOD59_021D9C68: ; 0x021D9C68
+ ldr r3, _021D9C70 ; =FUN_0200A8B8
+ ldr r0, [r0, #8]
+ bx r3
+ nop
+_021D9C70: .word FUN_0200A8B8
+ thumb_func_end MOD59_021D9C68
+
+ thumb_func_start MOD59_021D9C74
+MOD59_021D9C74: ; 0x021D9C74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ str r1, [sp, #0x10]
+ add r7, r3, #0
+ mov r5, #0
+ cmp r0, #3
+ bhi _021D9D66
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9C92: ; jump table
+ .short _021D9C9A - _021D9C92 - 2 ; case 0
+ .short _021D9D24 - _021D9C92 - 2 ; case 1
+ .short _021D9D36 - _021D9C92 - 2 ; case 2
+ .short _021D9D50 - _021D9C92 - 2 ; case 3
+_021D9C9A:
+ mov r0, #2
+ add r1, r5, #0
+ bl FUN_0201797C
+ mov r0, #1
+ ldr r1, [r4]
+ lsl r0, r0, #0xa
+ bl FUN_020219F4
+ add r6, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [sp, #0x10]
+ add r2, r6, #0
+ bl FUN_0200A8E0
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ ldr r2, _021D9D6C ; =0x021DA04C
+ add r1, #0x10
+ bl FUN_02019150
+ add r1, r5, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x10
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ bl FUN_02002F08
+ mov r1, #1
+ lsl r1, r1, #8
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ str r7, [sp]
+ add r1, r5, #0
+ ldr r0, _021D9D70 ; =0x000F0200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x10
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ add r0, #0x10
+ bl FUN_020191D0
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0xf0
+ str r0, [r4, #0x24]
+ mov r0, #1
+ str r0, [r4, #0xc]
+ b _021D9D66
+_021D9D24:
+ ldr r0, [r4, #0x24]
+ cmp r0, #0
+ beq _021D9D30
+ sub r0, r0, #1
+ str r0, [r4, #0x24]
+ b _021D9D66
+_021D9D30:
+ mov r0, #2
+ str r0, [r4, #0xc]
+ b _021D9D66
+_021D9D36:
+ ldr r0, _021D9D74 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ and r0, r1
+ cmp r0, #1
+ beq _021D9D4A
+ mov r0, #2
+ and r0, r1
+ cmp r0, #2
+ bne _021D9D66
+_021D9D4A:
+ mov r0, #3
+ str r0, [r4, #0xc]
+ b _021D9D66
+_021D9D50:
+ add r0, r4, #0
+ add r0, #0x10
+ bl FUN_02019178
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r5, #0
+ str r0, [r4, #0xc]
+ mov r5, #1
+_021D9D66:
+ add r0, r5, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9D6C: .word 0x021DA04C
+_021D9D70: .word 0x000F0200
+_021D9D74: .word 0x021C48B8
+ thumb_func_end MOD59_021D9C74
+
+ thumb_func_start MOD59_021D9D78
+MOD59_021D9D78: ; 0x021D9D78
+ push {r3, lr}
+ ldr r1, [r0, #0x20]
+ mov r2, #3
+ add r3, r1, #4
+ str r3, [r0, #0x20]
+ ldr r0, [r0, #4]
+ mov r1, #1
+ asr r3, r3, #4
+ bl FUN_020179E0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD59_021D9D78
+
+ .section .rodata
+ ; 0x021D9D90
+ .incbin "baserom.nds", 0x2AC6B0, 0x36C
diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s
new file mode 100644
index 00000000..d458564e
--- /dev/null
+++ b/arm9/modules/60/asm/module_60.s
@@ -0,0 +1,1491 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD60_021D74E0
+MOD60_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_0200628C
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x26
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ mov r1, #0xad
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x26
+ bl FUN_02006268
+ mov r2, #0xad
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ bl FUN_02024FD8
+ ldrh r1, [r4, #0x18]
+ mov r2, #0xf
+ lsl r0, r0, #0x10
+ bic r1, r2
+ lsr r2, r0, #0x10
+ mov r0, #0xf
+ and r0, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_0202502C
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1f
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x40
+ lsr r0, r0, #0x19
+ bic r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_02025048
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1f
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x80
+ lsr r0, r0, #0x18
+ bic r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_02025010
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1e
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x30
+ lsr r0, r0, #0x1a
+ bic r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_02025064
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1e
+ ldrh r2, [r4, #0x18]
+ ldr r1, _021D75A8 ; =0xFFFFFCFF
+ lsr r0, r0, #0x16
+ and r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ add r0, r5, #0
+ bl FUN_02025084
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ lsl r0, r0, #0x1b
+ ldrh r2, [r4, #0x18]
+ ldr r1, _021D75AC ; =0xFFFF83FF
+ lsr r0, r0, #0x11
+ and r1, r2
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ mov r0, #0x26
+ str r0, [r4]
+ str r5, [r4, #0x1c]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D75A8: .word 0xFFFFFCFF
+_021D75AC: .word 0xFFFF83FF
+ thumb_func_end MOD60_021D74E0
+
+ thumb_func_start MOD60_021D75B0
+MOD60_021D75B0: ; 0x021D75B0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ cmp r0, #1
+ bne _021D7680
+ ldrh r1, [r4, #0x18]
+ mov r0, #0xf
+ bic r1, r0
+ add r0, r4, #0
+ add r0, #0x5e
+ ldrh r2, [r0]
+ mov r0, #0xf
+ and r2, r0
+ orr r1, r2
+ strh r1, [r4, #0x18]
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x40
+ add r0, #0xf7
+ bic r1, r2
+ add r2, r4, #0
+ add r2, #0xb2
+ ldrh r2, [r2]
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x19
+ orr r1, r2
+ strh r1, [r4, #0x18]
+ ldrh r0, [r4, r0]
+ ldrh r1, [r4, #0x18]
+ mov r2, #0x80
+ lsl r0, r0, #0x1f
+ bic r1, r2
+ lsr r0, r0, #0x18
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x18]
+ mov r0, #0x30
+ bic r1, r0
+ ldr r0, _021D76AC ; =0x0000015A
+ ldrh r2, [r4, r0]
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x1a
+ orr r1, r2
+ strh r1, [r4, #0x18]
+ ldrh r2, [r4, #0x18]
+ ldr r1, _021D76B0 ; =0xFFFFFCFF
+ and r1, r2
+ add r2, r0, #0
+ add r2, #0x54
+ ldrh r2, [r4, r2]
+ add r0, #0xa8
+ lsl r2, r2, #0x1e
+ lsr r2, r2, #0x16
+ orr r1, r2
+ strh r1, [r4, #0x18]
+ ldrh r0, [r4, r0]
+ ldrh r2, [r4, #0x18]
+ ldr r1, _021D76B4 ; =0xFFFF83FF
+ lsl r0, r0, #0x1b
+ and r1, r2
+ lsr r0, r0, #0x11
+ orr r0, r1
+ strh r0, [r4, #0x18]
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ bl FUN_02024FE0
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x19
+ lsr r1, r1, #0x1f
+ bl FUN_02025034
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1f
+ bl FUN_02025050
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x1a
+ lsr r1, r1, #0x1e
+ bl FUN_02025018
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1e
+ bl FUN_0202506C
+ ldrh r1, [r4, #0x18]
+ ldr r0, [r4, #0x1c]
+ lsl r1, r1, #0x11
+ lsr r1, r1, #0x1b
+ bl FUN_0202508C
+ b _021D769A
+_021D7680:
+ cmp r0, #2
+ bne _021D769A
+ ldrh r0, [r4, #0x18]
+ lsl r0, r0, #0x1a
+ lsr r0, r0, #0x1e
+ bl FUN_02004D60
+ ldrh r1, [r4, #0x18]
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsr r1, r1, #0x1e
+ bl FUN_02024F9C
+_021D769A:
+ add r0, r5, #0
+ bl FUN_0200627C
+ ldr r0, [r4]
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D76AC: .word 0x0000015A
+_021D76B0: .word 0xFFFFFCFF
+_021D76B4: .word 0xFFFF83FF
+ thumb_func_end MOD60_021D75B0
+
+ thumb_func_start MOD60_021D76B8
+MOD60_021D76B8: ; 0x021D76B8
+ push {r3, r4, lr}
+ sub sp, #0xc
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #4
+ bhi _021D77A0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D76D4: ; jump table
+ .short _021D76DE - _021D76D4 - 2 ; case 0
+ .short _021D7706 - _021D76D4 - 2 ; case 1
+ .short _021D7714 - _021D76D4 - 2 ; case 2
+ .short _021D777E - _021D76D4 - 2 ; case 3
+ .short _021D778C - _021D76D4 - 2 ; case 4
+_021D76DE:
+ bl MOD60_021D7834
+ cmp r0, #0
+ bne _021D76EC
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D76EC:
+ mov r3, #0
+ str r3, [r4, #0xc]
+ mov r0, #6
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ bl FUN_0200E1D0
+ b _021D77A0
+_021D7706:
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D77A0
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D7714:
+ ldr r0, _021D77AC ; =0x021C48B8
+ mov r1, #1
+ ldr r0, [r0, #0x48]
+ tst r1, r0
+ beq _021D773C
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1d
+ cmp r1, #6
+ bne _021D773C
+ ldr r0, _021D77B0 ; =0x0000061B
+ bl FUN_020054C8
+ ldr r1, [r4, #0x10]
+ mov r0, #3
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ str r0, [r4, #0x10]
+ b _021D774E
+_021D773C:
+ mov r1, #2
+ tst r0, r1
+ beq _021D774E
+ ldr r2, [r4, #0x10]
+ mov r0, #3
+ bic r2, r0
+ add r0, r2, #0
+ orr r0, r1
+ str r0, [r4, #0x10]
+_021D774E:
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1e
+ beq _021D7772
+ mov r1, #0
+ str r1, [r4, #0xc]
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ b _021D77A0
+_021D7772:
+ add r0, r4, #0
+ bl MOD60_021D801C
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D777E:
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D77A0
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D778C:
+ bl MOD60_021D78E8
+ cmp r0, #0
+ beq _021D779A
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_021D779A:
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D77A0:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D77AC: .word 0x021C48B8
+_021D77B0: .word 0x0000061B
+ thumb_func_end MOD60_021D76B8
+
+ thumb_func_start MOD60_021D77B4
+MOD60_021D77B4: ; 0x021D77B4
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D77D0 ; =0x021D8140
+ add r3, sp, #0
+ mov r2, #5
+_021D77BE:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D77BE
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D77D0: .word 0x021D8140
+ thumb_func_end MOD60_021D77B4
+
+ thumb_func_start MOD60_021D77D4
+MOD60_021D77D4: ; 0x021D77D4
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ lsl r0, r0, #0xa
+ lsr r0, r0, #0x1f
+ beq _021D7804
+ ldr r2, _021D7824 ; =0x00000202
+ mov r1, #1
+ ldrh r0, [r4, r2]
+ add r2, #0x39
+ mov r3, #0xf
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200CD68
+ ldr r1, [r4, #0x10]
+ ldr r0, _021D7828 ; =0xFFDFFFFF
+ and r0, r1
+ str r0, [r4, #0x10]
+_021D7804:
+ bl FUN_0200BC30
+ bl FUN_020AEEB8
+ ldr r0, [r4, #0x14]
+ bl FUN_0201AB60
+ ldr r3, _021D782C ; =0x027E0000
+ ldr r1, _021D7830 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021D7824: .word 0x00000202
+_021D7828: .word 0xFFDFFFFF
+_021D782C: .word 0x027E0000
+_021D7830: .word 0x00003FF8
+ thumb_func_end MOD60_021D77D4
+
+ thumb_func_start MOD60_021D7834
+MOD60_021D7834: ; 0x021D7834
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _021D7848
+ cmp r1, #1
+ beq _021D7888
+ cmp r1, #2
+ beq _021D78A2
+ b _021D78D0
+_021D7848:
+ 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, _021D78DC ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D78E0 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ bl MOD60_021D77B4
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ add r0, r4, #0
+ bl MOD60_021D7990
+ b _021D78D0
+_021D7888:
+ bl MOD60_021D7A40
+ ldr r3, [r4]
+ mov r0, #1
+ mov r1, #0x1a
+ mov r2, #0xce
+ bl FUN_0200A86C
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ bl MOD60_021D7DF8
+ b _021D78D0
+_021D78A2:
+ bl MOD60_021D7BA4
+ add r0, r4, #0
+ bl MOD60_021D7D18
+ ldr r1, [r4]
+ mov r0, #0x20
+ bl FUN_0201C24C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ bl FUN_02033F20
+ ldr r0, _021D78E4 ; =MOD60_021D77D4
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+_021D78D0:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021D78DC: .word 0xFFFFE0FF
+_021D78E0: .word 0x04001000
+_021D78E4: .word MOD60_021D77D4
+ thumb_func_end MOD60_021D7834
+
+ thumb_func_start MOD60_021D78E8
+MOD60_021D78E8: ; 0x021D78E8
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _021D78F8
+ cmp r0, #1
+ beq _021D7946
+ b _021D7978
+_021D78F8:
+ bl FUN_0201C29C
+ ldr r0, [sp]
+ bl MOD60_021D7CD4
+ ldr r6, [sp]
+ mov r7, #0
+_021D7906:
+ add r0, r6, #0
+ add r0, #0x5c
+ ldrh r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D7928
+ add r5, r6, #0
+_021D7914:
+ ldr r0, [r5, #0x60]
+ bl FUN_02021A20
+ add r0, r6, #0
+ add r0, #0x5c
+ ldrh r0, [r0]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _021D7914
+_021D7928:
+ add r7, r7, #1
+ add r6, #0x54
+ cmp r7, #7
+ blt _021D7906
+ ldr r0, [sp]
+ ldr r0, [r0, #0x20]
+ bl FUN_0200A8B8
+ ldr r0, [sp]
+ bl MOD60_021D7B98
+ ldr r0, [sp]
+ bl MOD60_021D7A14
+ b _021D7978
+_021D7946:
+ 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, _021D7988 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D798C ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [sp]
+ mov r1, #0
+ str r1, [r0, #8]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D7978:
+ ldr r0, [sp]
+ ldr r0, [r0, #8]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [r0, #8]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7988: .word 0xFFFFE0FF
+_021D798C: .word 0x04001000
+ thumb_func_end MOD60_021D78E8
+
+ thumb_func_start MOD60_021D7990
+MOD60_021D7990: ; 0x021D7990
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x80
+ add r6, r0, #0
+ ldr r0, [r6]
+ bl FUN_02016B94
+ add r3, sp, #0
+ ldr r4, _021D7A08 ; =0x021D8114
+ str r0, [r6, #0x14]
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r4, _021D7A0C ; =0x021D8168
+ add r3, sp, #0x10
+ mov r2, #0xe
+_021D79B8:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D79B8
+ ldr r5, _021D7A10 ; =0x021D8104
+ mov r7, #0
+ add r4, sp, #0x10
+_021D79C6:
+ ldr r1, [r5]
+ ldr r0, [r6, #0x14]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ add r2, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r1, [r5]
+ ldr r0, [r6, #0x14]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ add r7, r7, #1
+ add r4, #0x1c
+ add r5, r5, #4
+ cmp r7, #4
+ blt _021D79C6
+ mov r0, #0
+ ldr r3, [r6]
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ ldr r3, [r6]
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ add sp, #0x80
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7A08: .word 0x021D8114
+_021D7A0C: .word 0x021D8168
+_021D7A10: .word 0x021D8104
+ thumb_func_end MOD60_021D7990
+
+ thumb_func_start MOD60_021D7A14
+MOD60_021D7A14: ; 0x021D7A14
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #0x14]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD60_021D7A14
+
+ thumb_func_start MOD60_021D7A40
+MOD60_021D7A40: ; 0x021D7A40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r0, #0x49
+ bl FUN_02006670
+ add r4, r0, #0
+ mov r0, #0x49
+ mov r1, #1
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_020169D8
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ add r2, r6, #0
+ bl FUN_02006774
+ add r0, r6, #0
+ add r1, sp, #0x20
+ bl FUN_020B0088
+ ldr r3, [sp, #0x20]
+ mov r1, #0
+ str r1, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r5, #0x14]
+ ldr r3, [r3, #0x10]
+ bl FUN_02017E14
+ ldr r3, [sp, #0x20]
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r5, #0x14]
+ ldr r3, [r3, #0x10]
+ mov r1, #4
+ bl FUN_02017E14
+ add r0, r6, #0
+ bl FUN_02016A18
+ mov r0, #0x49
+ mov r1, #0
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_020169D8
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ add r2, r6, #0
+ bl FUN_02006774
+ add r0, r6, #0
+ add r1, sp, #0x1c
+ bl FUN_020B0138
+ ldr r1, [sp, #0x1c]
+ mov r0, #0
+ ldr r1, [r1, #0xc]
+ mov r2, #0x20
+ add r3, r0, #0
+ bl FUN_02017FB4
+ ldr r1, [sp, #0x1c]
+ mov r0, #4
+ ldr r1, [r1, #0xc]
+ mov r2, #0x20
+ mov r3, #0
+ bl FUN_02017FB4
+ add r0, r6, #0
+ bl FUN_02016A18
+ mov r0, #0x49
+ mov r1, #2
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_02016998
+ str r0, [r5, #0x24]
+ ldr r2, [r5, #0x24]
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02006774
+ add r1, r5, #0
+ ldr r0, [r5, #0x24]
+ add r1, #0x28
+ bl FUN_020B0180
+ add r0, r4, #0
+ bl FUN_020066F4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ mov r2, #1
+ bl FUN_02018540
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x14]
+ mov r1, #4
+ mov r2, #1
+ bl FUN_02018540
+ ldr r0, [r5, #0x28]
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #2
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldrh r2, [r0]
+ add r3, r1, #0
+ lsl r2, r2, #0x15
+ lsr r2, r2, #0x18
+ str r2, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ add r2, r1, #0
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x14]
+ bl FUN_020181EC
+ mov r2, #3
+ add r3, r2, #0
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ sub r3, #0x1b
+ bl FUN_020179E0
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x14]
+ mov r1, #4
+ bl FUN_0201AC68
+ add sp, #0x24
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD60_021D7A40
+
+ thumb_func_start MOD60_021D7B98
+MOD60_021D7B98: ; 0x021D7B98
+ ldr r3, _021D7BA0 ; =FUN_02016A18
+ ldr r0, [r0, #0x24]
+ bx r3
+ nop
+_021D7BA0: .word FUN_02016A18
+ thumb_func_end MOD60_021D7B98
+
+ thumb_func_start MOD60_021D7BA4
+MOD60_021D7BA4: ; 0x021D7BA4
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ mov r2, #1
+ ldr r0, [r4, #0x14]
+ add r1, #0x2c
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #0xe
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x22
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ mov r2, #1
+ ldr r0, [r4, #0x14]
+ add r1, #0x3c
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, _021D7CC8 ; =0x000001C6
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4, #0x14]
+ add r1, #0x4c
+ mov r2, #1
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ ldr r2, _021D7CCC ; =0x00000232
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CB00
+ ldrh r0, [r4, #0x18]
+ ldr r2, _021D7CD0 ; =0x0000023B
+ mov r1, #1
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r4]
+ mov r3, #0xf
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x14]
+ bl FUN_0200CD68
+ mov r1, #0x1a
+ ldr r2, [r4]
+ mov r0, #0
+ lsl r1, r1, #4
+ bl FUN_02002ED0
+ mov r1, #0x1a
+ ldr r2, [r4]
+ mov r0, #4
+ lsl r1, r1, #4
+ bl FUN_02002ED0
+ mov r1, #6
+ ldr r2, [r4]
+ mov r0, #0
+ lsl r1, r1, #6
+ bl FUN_02002EEC
+ mov r1, #6
+ ldr r2, [r4]
+ mov r0, #4
+ lsl r1, r1, #6
+ bl FUN_02002EEC
+ add r0, r4, #0
+ add r0, #0x2c
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x3c
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x4c
+ mov r1, #0xff
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x4c
+ bl FUN_020192B8
+ add r0, r4, #0
+ add r0, #0x3c
+ bl FUN_020192B8
+ add r0, r4, #0
+ add r0, #0x2c
+ bl FUN_020192B8
+ add r0, r4, #0
+ ldr r2, _021D7CCC ; =0x00000232
+ add r0, #0x3c
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ add r4, #0x4c
+ ldr r2, _021D7CD0 ; =0x0000023B
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xf
+ bl FUN_0200D0BC
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_021D7CC8: .word 0x000001C6
+_021D7CCC: .word 0x00000232
+_021D7CD0: .word 0x0000023B
+ thumb_func_end MOD60_021D7BA4
+
+ thumb_func_start MOD60_021D7CD4
+MOD60_021D7CD4: ; 0x021D7CD4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, #0x3c
+ mov r1, #0
+ bl FUN_0200CCF8
+ add r0, r5, #0
+ add r0, #0x4c
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r6, #0
+ add r5, #0x2c
+ add r7, r6, #0
+_021D7CF0:
+ lsl r4, r6, #4
+ add r0, r5, r4
+ bl FUN_02019570
+ add r0, r5, r4
+ add r1, r7, #0
+ bl FUN_02019620
+ add r0, r5, r4
+ bl FUN_020192B8
+ add r0, r5, r4
+ bl FUN_02019178
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ cmp r6, #3
+ blo _021D7CF0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD60_021D7CD4
+
+ thumb_func_start MOD60_021D7D18
+MOD60_021D7D18: ; 0x021D7D18
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ ldr r1, [r6]
+ mov r0, #0x28
+ bl FUN_020219F4
+ add r5, r0, #0
+ ldr r0, [r6, #0x20]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_0200A8E0
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #0
+ ldr r0, _021D7DEC ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r0, #0x2c
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A4C
+ ldr r1, _021D7DF0 ; =0x020ECAC0
+ ldr r0, [r6, #0x20]
+ ldrb r1, [r1]
+ add r2, r5, #0
+ sub r1, #9
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D7DF4 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ str r1, [sp, #0xc]
+ add r0, #0x4c
+ mov r1, #1
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0201BDE0
+ add r7, r6, #0
+ mov r4, #0
+ add r7, #0x3c
+_021D7D7E:
+ add r0, r5, #0
+ bl FUN_02021A4C
+ ldr r0, [r6, #0x20]
+ add r1, r4, #3
+ add r2, r5, #0
+ bl FUN_0200A8E0
+ lsl r0, r4, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7DF4 ; =0x0001020F
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ add r2, r5, #0
+ mov r3, #4
+ bl FUN_0201BDE0
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #7
+ blo _021D7D7E
+ mov r4, #0
+_021D7DB6:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD60_021D7EA4
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #7
+ blo _021D7DB6
+ add r0, r6, #0
+ add r0, #0x2c
+ bl FUN_020191D0
+ add r0, r6, #0
+ add r0, #0x3c
+ bl FUN_020191D0
+ add r6, #0x4c
+ add r0, r6, #0
+ bl FUN_020191D0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7DEC: .word 0x00010200
+_021D7DF0: .word 0x020ECAC0
+_021D7DF4: .word 0x0001020F
+ thumb_func_end MOD60_021D7D18
+
+ thumb_func_start MOD60_021D7DF8
+MOD60_021D7DF8: ; 0x021D7DF8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r5, #0
+ add r6, r0, #0
+ str r5, [sp, #4]
+_021D7E02:
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #4]
+ lsl r7, r0, #2
+ ldr r0, _021D7E9C ; =0x021D8124
+ mov r1, #0x54
+ mul r1, r2
+ add r1, r6, r1
+ str r1, [sp]
+ ldr r0, [r0, r7]
+ add r1, #0x5c
+ mov r4, #0
+ strh r0, [r1]
+ cmp r0, #0
+ ble _021D7E44
+_021D7E1E:
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ add r1, r5, #0
+ lsr r5, r0, #0x10
+ ldr r0, [r6, #0x20]
+ add r1, #0xa
+ bl FUN_0200A914
+ ldr r1, [sp]
+ lsl r2, r4, #2
+ add r1, r1, r2
+ str r0, [r1, #0x60]
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ ldr r0, _021D7E9C ; =0x021D8124
+ ldr r0, [r0, r7]
+ cmp r4, r0
+ blt _021D7E1E
+_021D7E44:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ cmp r0, #7
+ blo _021D7E02
+ ldrh r0, [r6, #0x18]
+ lsl r0, r0, #0x1c
+ lsr r1, r0, #0x1c
+ add r0, r6, #0
+ add r0, #0x5e
+ strh r1, [r0]
+ ldrh r0, [r6, #0x18]
+ lsl r0, r0, #0x19
+ lsr r1, r0, #0x1f
+ add r0, r6, #0
+ add r0, #0xb2
+ strh r1, [r0]
+ ldrh r0, [r6, #0x18]
+ ldr r1, _021D7EA0 ; =0x00000106
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ strh r0, [r6, r1]
+ ldrh r0, [r6, #0x18]
+ lsl r0, r0, #0x1a
+ lsr r2, r0, #0x1e
+ add r0, r1, #0
+ add r0, #0x54
+ strh r2, [r6, r0]
+ ldrh r0, [r6, #0x18]
+ lsl r0, r0, #0x16
+ lsr r2, r0, #0x1e
+ add r0, r1, #0
+ add r0, #0xa8
+ strh r2, [r6, r0]
+ ldrh r0, [r6, #0x18]
+ add r1, #0xfc
+ lsl r0, r0, #0x11
+ lsr r0, r0, #0x1b
+ strh r0, [r6, r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7E9C: .word 0x021D8124
+_021D7EA0: .word 0x00000106
+ thumb_func_end MOD60_021D7DF8
+
+ thumb_func_start MOD60_021D7EA4
+MOD60_021D7EA4: ; 0x021D7EA4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x10]
+ lsl r0, r1, #4
+ str r0, [sp, #0x18]
+ mov r0, #6
+ str r1, [sp, #0x14]
+ lsl r0, r0, #6
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r3, _021D8010 ; =0x021D80FC
+ ldr r2, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ ldrsb r2, [r3, r2]
+ ldr r3, [sp, #0x18]
+ add r0, #0x3c
+ add r2, #0x64
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ mov r1, #0xff
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ ldr r0, [sp, #0x14]
+ cmp r0, #5
+ bne _021D7F26
+ add r2, r0, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #0x54
+ str r0, [sp]
+ mov r0, #0xff
+ mul r2, r1
+ ldr r3, [sp, #0x10]
+ str r0, [sp, #4]
+ ldr r0, _021D8014 ; =0x0003040F
+ add r3, r3, r2
+ str r0, [sp, #8]
+ mov r1, #0
+ add r2, r3, #0
+ ldr r0, [sp, #0x10]
+ str r1, [sp, #0xc]
+ add r2, #0x5e
+ ldrh r2, [r2]
+ add r0, #0x3c
+ lsl r2, r2, #2
+ add r2, r3, r2
+ ldr r2, [r2, #0x60]
+ mov r3, #0x94
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ add r0, #0x3c
+ bl FUN_020191D0
+ ldr r0, [sp, #0x10]
+ ldr r1, [r0, #0x10]
+ mov r0, #2
+ lsl r0, r0, #0x14
+ orr r1, r0
+ ldr r0, [sp, #0x10]
+ add sp, #0x24
+ str r1, [r0, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_021D7F26:
+ cmp r0, #3
+ bne _021D7F3C
+ mov r1, #0x54
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ add r0, r0, r1
+ add r0, #0x5e
+ ldrh r0, [r0]
+ bl FUN_02004D60
+ b _021D7F54
+_021D7F3C:
+ cmp r0, #4
+ bne _021D7F54
+ ldr r1, [sp, #0x14]
+ mov r2, #0x54
+ mul r2, r1
+ ldr r1, [sp, #0x10]
+ mov r0, #0
+ add r1, r1, r2
+ add r1, #0x5e
+ ldrh r1, [r1]
+ bl FUN_02024F9C
+_021D7F54:
+ ldr r0, [sp, #0x14]
+ mov r1, #0x54
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ mov r7, #0
+ add r5, r0, r1
+ add r0, r5, #0
+ add r0, #0x5c
+ ldrh r0, [r0]
+ add r4, r7, #0
+ cmp r0, #0
+ bls _021D8002
+ bls _021D8002
+ ldr r1, _021D8010 ; =0x021D80FC
+ ldr r0, [sp, #0x14]
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x10]
+ str r0, [sp, #0x20]
+ add r0, #0x3c
+ str r0, [sp, #0x20]
+_021D7F7E:
+ add r0, r5, #0
+ add r0, #0x5e
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _021D7F8C
+ ldr r0, _021D8014 ; =0x0003040F
+ b _021D7F8E
+_021D7F8C:
+ ldr r0, _021D8018 ; =0x0001020F
+_021D7F8E:
+ ldr r1, [sp, #0x14]
+ cmp r1, #4
+ bne _021D7FC8
+ lsl r1, r4, #2
+ add r6, r5, r1
+ ldr r1, [sp, #0x18]
+ add r3, r7, #0
+ str r1, [sp]
+ mov r1, #0xff
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x20]
+ ldr r2, [r6, #0x60]
+ mov r1, #0
+ add r3, #0x64
+ bl FUN_0201BDE0
+ mov r0, #0
+ ldr r1, [r6, #0x60]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r0, #0xc
+ add r0, r7, r0
+ lsl r0, r0, #0x18
+ asr r7, r0, #0x18
+ b _021D7FF2
+_021D7FC8:
+ ldr r1, [sp, #0x18]
+ lsl r2, r4, #2
+ str r1, [sp]
+ mov r1, #0xff
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r1, #0
+ str r0, [sp, #0xc]
+ add r2, r5, r2
+ ldr r6, [sp, #0x1c]
+ add r3, r1, #0
+ ldrsb r6, [r6, r3]
+ mov r3, #0x30
+ mul r3, r4
+ add r3, #0x64
+ ldr r0, [sp, #0x20]
+ ldr r2, [r2, #0x60]
+ add r3, r6, r3
+ bl FUN_0201BDE0
+_021D7FF2:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ add r0, r5, #0
+ add r0, #0x5c
+ ldrh r0, [r0]
+ cmp r4, r0
+ blo _021D7F7E
+_021D8002:
+ ldr r0, [sp, #0x10]
+ add r0, #0x3c
+ str r0, [sp, #0x10]
+ bl FUN_020191D0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8010: .word 0x021D80FC
+_021D8014: .word 0x0003040F
+_021D8018: .word 0x0001020F
+ thumb_func_end MOD60_021D7EA4
+
+ thumb_func_start MOD60_021D801C
+MOD60_021D801C: ; 0x021D801C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x10]
+ add r1, r5, #0
+ lsl r0, r0, #0x1b
+ lsr r2, r0, #0x1d
+ mov r0, #0x54
+ add r1, #0x5c
+ mul r0, r2
+ add r4, r1, r0
+ cmp r2, #6
+ beq _021D8080
+ ldr r0, _021D80F8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x10
+ tst r0, r1
+ beq _021D805C
+ ldrh r0, [r4, #2]
+ ldrh r1, [r4]
+ add r0, r0, #1
+ bl _s32_div_f
+ strh r1, [r4, #2]
+ ldr r1, [r5, #0x10]
+ add r0, r5, #0
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1d
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD60_021D7EA4
+ b _021D8080
+_021D805C:
+ mov r0, #0x20
+ tst r0, r1
+ beq _021D8080
+ ldrh r1, [r4]
+ ldrh r0, [r4, #2]
+ add r0, r0, r1
+ sub r0, r0, #1
+ bl _s32_div_f
+ strh r1, [r4, #2]
+ ldr r1, [r5, #0x10]
+ add r0, r5, #0
+ lsl r1, r1, #0x1b
+ lsr r1, r1, #0x1d
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl MOD60_021D7EA4
+_021D8080:
+ ldr r0, _021D80F8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x40
+ tst r0, r1
+ beq _021D80BE
+ ldr r0, [r5, #0x10]
+ mov r1, #7
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1d
+ add r0, r0, #6
+ bl _u32_div_f
+ ldr r2, [r5, #0x10]
+ mov r0, #0x1c
+ bic r2, r0
+ lsl r0, r1, #0x1d
+ add r3, r2, #0
+ lsr r0, r0, #0x1b
+ orr r3, r0
+ str r3, [r5, #0x10]
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1d
+ lsl r3, r3, #4
+ add r3, #0x18
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ mov r2, #3
+ neg r3, r3
+ bl FUN_0201AEE4
+ pop {r3, r4, r5, pc}
+_021D80BE:
+ mov r0, #0x80
+ tst r0, r1
+ beq _021D80F6
+ ldr r0, [r5, #0x10]
+ mov r1, #7
+ lsl r0, r0, #0x1b
+ lsr r0, r0, #0x1d
+ add r0, r0, #1
+ bl _u32_div_f
+ ldr r2, [r5, #0x10]
+ mov r0, #0x1c
+ bic r2, r0
+ lsl r0, r1, #0x1d
+ add r3, r2, #0
+ lsr r0, r0, #0x1b
+ orr r3, r0
+ str r3, [r5, #0x10]
+ lsl r3, r3, #0x1b
+ lsr r3, r3, #0x1d
+ lsl r3, r3, #4
+ add r3, #0x18
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ mov r2, #3
+ neg r3, r3
+ bl FUN_0201AEE4
+_021D80F6:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D80F8: .word 0x021C48B8
+ thumb_func_end MOD60_021D801C
+
+ .section .rodata
+ ; 0x021D80FC
+ .incbin "baserom.nds", 0x2AD81C, 0xDC
diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s
new file mode 100644
index 00000000..c81d3a4a
--- /dev/null
+++ b/arm9/modules/61/asm/module_61.s
@@ -0,0 +1,1907 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD61_021D74E0
+MOD61_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ mov r2, #2
+ mov r0, #3
+ mov r1, #0x29
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #0xbc
+ mov r2, #0x29
+ bl FUN_02006268
+ mov r1, #0
+ mov r2, #0xbc
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x29
+ str r0, [r4]
+ add r0, r5, #0
+ bl FUN_0200628C
+ str r0, [r4, #0x1c]
+ ldrh r0, [r0]
+ ldr r1, _021D754C ; =0x0000FFFF
+ strb r0, [r4, #0xc]
+ ldrb r0, [r4, #0xc]
+ strb r0, [r4, #0xd]
+ ldr r0, [r4, #0x1c]
+ ldrb r0, [r0, #2]
+ strb r0, [r4, #0x11]
+ ldr r0, [r4, #0x1c]
+ ldrb r0, [r0, #3]
+ strb r0, [r4, #0x12]
+ ldrb r0, [r4, #0x11]
+ strb r0, [r4, #0x16]
+ strb r0, [r4, #0x17]
+ ldr r0, [r4, #0x1c]
+ strh r1, [r0]
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #4]
+ bl FUN_02024FF4
+ strb r0, [r4, #0x10]
+ ldr r0, [r4, #0x1c]
+ ldr r0, [r0, #4]
+ bl FUN_02025084
+ strh r0, [r4, #0xa]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D754C: .word 0x0000FFFF
+ thumb_func_end MOD61_021D74E0
+
+ thumb_func_start MOD61_021D7550
+MOD61_021D7550: ; 0x021D7550
+ push {r3, lr}
+ bl FUN_02006278
+ bl MOD61_021D78D4
+ cmp r0, #0
+ beq _021D7562
+ mov r0, #1
+ pop {r3, pc}
+_021D7562:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD61_021D7550
+
+ thumb_func_start MOD61_021D7568
+MOD61_021D7568: ; 0x021D7568
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ ldr r4, [r0]
+ add r0, r5, #0
+ bl FUN_0200627C
+ add r0, r4, #0
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD61_021D7568
+
+ thumb_func_start MOD61_021D7584
+MOD61_021D7584: ; 0x021D7584
+ push {r4, r5, r6, lr}
+ mov r4, #0
+ add r6, r0, #0
+ add r5, r4, #0
+_021D758C:
+ ldr r0, [r6, #0x1c]
+ add r0, #0x1a
+ add r0, r0, r5
+ bl FUN_0201385C
+ cmp r0, #0
+ beq _021D759E
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021D759E:
+ add r4, r4, #1
+ add r5, #8
+ cmp r4, #3
+ blt _021D758C
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD61_021D7584
+
+ thumb_func_start MOD61_021D75AC
+MOD61_021D75AC: ; 0x021D75AC
+ push {r3, lr}
+ ldr r0, _021D75C8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D75C2
+ ldr r0, _021D75CC ; =0x000005E3
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, pc}
+_021D75C2:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D75C8: .word 0x021C48B8
+_021D75CC: .word 0x000005E3
+ thumb_func_end MOD61_021D75AC
+
+ thumb_func_start MOD61_021D75D0
+MOD61_021D75D0: ; 0x021D75D0
+ push {r3, r4, r5, lr}
+ ldr r1, _021D76E0 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #1
+ add r5, r2, #0
+ mov r3, #0
+ tst r5, r1
+ beq _021D7648
+ ldrb r1, [r4, #0x11]
+ cmp r1, #3
+ bne _021D762E
+ ldrb r1, [r4, #0x12]
+ cmp r1, #0
+ bne _021D7612
+ bl MOD61_021D7584
+ cmp r0, #0
+ beq _021D7604
+ ldr r0, _021D76E4 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #2
+ strb r0, [r4, #0xc]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D7604:
+ ldr r0, [r4, #0x1c]
+ mov r1, #3
+ strh r1, [r0]
+ ldr r0, _021D76E8 ; =0x000005E3
+ bl FUN_020054C8
+ b _021D7620
+_021D7612:
+ ldr r0, _021D76E4 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #3
+ strb r0, [r4, #0xc]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D7620:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ strb r1, [r0, #3]
+ ldr r1, [r4, #0x1c]
+ ldrb r0, [r1, #3]
+ strb r0, [r1, #2]
+ b _021D7644
+_021D762E:
+ ldr r0, [r4, #0x1c]
+ strb r1, [r0, #2]
+ ldr r1, [r4, #0x1c]
+ ldrb r0, [r1, #2]
+ strh r0, [r1]
+ ldrb r1, [r4, #0x12]
+ ldr r0, [r4, #0x1c]
+ strb r1, [r0, #3]
+ ldr r0, _021D76E4 ; =0x000005DD
+ bl FUN_020054C8
+_021D7644:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D7648:
+ mov r0, #2
+ tst r0, r2
+ beq _021D765C
+ ldr r0, _021D76E4 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #3
+ strb r0, [r4, #0xc]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D765C:
+ mov r0, #8
+ tst r0, r2
+ beq _021D766C
+ mov r0, #3
+ strb r0, [r4, #0x11]
+ strb r3, [r4, #0x12]
+ add r3, r1, #0
+ b _021D76BE
+_021D766C:
+ mov r0, #0x80
+ tst r0, r2
+ beq _021D7688
+ ldrb r0, [r4, #0x11]
+ add r0, r0, #1
+ lsr r3, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r3
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r3, r2
+ strb r0, [r4, #0x11]
+ add r3, r1, #0
+ b _021D76BE
+_021D7688:
+ mov r0, #0x40
+ tst r0, r2
+ beq _021D76A4
+ ldrb r0, [r4, #0x11]
+ add r0, r0, #3
+ lsr r3, r0, #0x1f
+ lsl r2, r0, #0x1e
+ sub r2, r2, r3
+ mov r0, #0x1e
+ ror r2, r0
+ add r0, r3, r2
+ strb r0, [r4, #0x11]
+ add r3, r1, #0
+ b _021D76BE
+_021D76A4:
+ mov r0, #0x30
+ tst r0, r2
+ beq _021D76BA
+ ldrb r0, [r4, #0x11]
+ cmp r0, #3
+ bne _021D76BE
+ ldrb r0, [r4, #0x12]
+ add r3, r1, #0
+ eor r0, r1
+ strb r0, [r4, #0x12]
+ b _021D76BE
+_021D76BA:
+ add r0, r3, #0
+ pop {r3, r4, r5, pc}
+_021D76BE:
+ cmp r3, #0
+ bne _021D76C6
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D76C6:
+ ldr r0, _021D76EC ; =0x000005DC
+ bl FUN_020054C8
+ ldrb r1, [r4, #0x11]
+ cmp r1, #3
+ bne _021D76DA
+ ldrb r0, [r4, #0x12]
+ add r0, r1, r0
+ strb r0, [r4, #0x16]
+ b _021D76DC
+_021D76DA:
+ strb r1, [r4, #0x16]
+_021D76DC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D76E0: .word 0x021C48B8
+_021D76E4: .word 0x000005DD
+_021D76E8: .word 0x000005E3
+_021D76EC: .word 0x000005DC
+ thumb_func_end MOD61_021D75D0
+
+ thumb_func_start MOD61_021D76F0
+MOD61_021D76F0: ; 0x021D76F0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldrh r0, [r5, #8]
+ cmp r0, #0
+ beq _021D7702
+ cmp r0, #1
+ beq _021D774E
+ b _021D777C
+_021D7702:
+ add r0, r5, #0
+ add r0, #0x94
+ mov r1, #1
+ mov r2, #0xa
+ mov r3, #6
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ add r0, #0x94
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r1, [r5]
+ mov r0, #0x4c
+ bl FUN_020219F4
+ add r4, r0, #0
+ ldr r0, [r5, #0x20]
+ mov r1, #2
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _021D7788 ; =0x0001020F
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x94
+ mov r1, #1
+ add r2, r4, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ b _021D777C
+_021D774E:
+ ldr r0, _021D778C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021D775E
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D775E:
+ add r0, r5, #0
+ add r0, #0x94
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ add r0, #0x94
+ bl FUN_02019570
+ mov r0, #0
+ strh r0, [r5, #8]
+ ldrb r1, [r5, #0xd]
+ add sp, #0x10
+ strb r1, [r5, #0xc]
+ pop {r3, r4, r5, pc}
+_021D777C:
+ ldrh r0, [r5, #8]
+ add r0, r0, #1
+ strh r0, [r5, #8]
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7788: .word 0x0001020F
+_021D778C: .word 0x021C48B8
+ thumb_func_end MOD61_021D76F0
+
+ thumb_func_start MOD61_021D7790
+MOD61_021D7790: ; 0x021D7790
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r1, _021D77B0 ; =0x021D842C
+ str r0, [sp]
+ ldr r0, [r4, #0x18]
+ mov r2, #1
+ mov r3, #5
+ bl FUN_02002198
+ add r4, #0xa4
+ str r0, [r4]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D77B0: .word 0x021D842C
+ thumb_func_end MOD61_021D7790
+
+ thumb_func_start MOD61_021D77B4
+MOD61_021D77B4: ; 0x021D77B4
+ push {r3, lr}
+ add r1, r0, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_020021AC
+ cmp r0, #0
+ beq _021D77D0
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D77D4
+ b _021D77D8
+_021D77D0:
+ mov r0, #1
+ pop {r3, pc}
+_021D77D4:
+ mov r0, #0
+ pop {r3, pc}
+_021D77D8:
+ add r0, r1, #1
+ pop {r3, pc}
+ thumb_func_end MOD61_021D77B4
+
+ thumb_func_start MOD61_021D77DC
+MOD61_021D77DC: ; 0x021D77DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldrh r1, [r5, #8]
+ cmp r1, #0
+ beq _021D77F2
+ cmp r1, #1
+ beq _021D7864
+ cmp r1, #2
+ beq _021D787C
+ b _021D78BA
+_021D77F2:
+ mov r1, #1
+ add r0, #0x94
+ mov r2, #0xa
+ mov r3, #6
+ strb r1, [r5, #0x13]
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ add r0, #0x94
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r1, [r5]
+ mov r0, #0x4c
+ bl FUN_020219F4
+ add r4, r0, #0
+ ldr r0, [r5, #0x20]
+ mov r1, #3
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ mov r3, #0
+ str r3, [sp]
+ ldrb r0, [r5, #0x10]
+ mov r1, #1
+ add r2, r4, #0
+ str r0, [sp, #4]
+ ldr r0, _021D78C8 ; =0x0001020F
+ str r0, [sp, #8]
+ add r0, r5, #0
+ str r3, [sp, #0xc]
+ add r0, #0x94
+ bl FUN_0201BDE0
+ strb r0, [r5, #0xf]
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r1, #0
+ ldr r0, _021D78CC ; =0x00007FFF
+ str r1, [sp]
+ str r0, [sp, #4]
+ ldrb r2, [r5, #0x17]
+ ldr r0, [r5, #0x30]
+ mov r3, #1
+ add r2, #0x22
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ ldrb r0, [r5, #0x16]
+ strb r0, [r5, #0x17]
+ mov r0, #0
+ strb r0, [r5, #0x15]
+ strb r0, [r5, #0x14]
+ b _021D78BA
+_021D7864:
+ ldrb r0, [r5, #0xf]
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021D7874
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D7874:
+ add r0, r5, #0
+ bl MOD61_021D7790
+ b _021D78BA
+_021D787C:
+ bl MOD61_021D77B4
+ add r4, r0, #0
+ bpl _021D788A
+ add sp, #0x10
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D788A:
+ add r0, r5, #0
+ add r0, #0x94
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ add r0, #0x94
+ bl FUN_02019570
+ mov r0, #0
+ strh r0, [r5, #8]
+ cmp r4, #0
+ beq _021D78B0
+ ldr r1, _021D78D0 ; =0x0000FFFF
+ ldr r0, [r5, #0x1c]
+ add sp, #0x10
+ strh r1, [r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D78B0:
+ ldrb r1, [r5, #0xd]
+ add sp, #0x10
+ strb r1, [r5, #0xc]
+ strb r0, [r5, #0x13]
+ pop {r3, r4, r5, pc}
+_021D78BA:
+ ldrh r0, [r5, #8]
+ add r0, r0, #1
+ strh r0, [r5, #8]
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D78C8: .word 0x0001020F
+_021D78CC: .word 0x00007FFF
+_021D78D0: .word 0x0000FFFF
+ thumb_func_end MOD61_021D77DC
+
+ thumb_func_start MOD61_021D78D4
+MOD61_021D78D4: ; 0x021D78D4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #5
+ bls _021D78E2
+ b _021D7A46
+_021D78E2:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D78EE: ; jump table
+ .short _021D78FA - _021D78EE - 2 ; case 0
+ .short _021D7940 - _021D78EE - 2 ; case 1
+ .short _021D798A - _021D78EE - 2 ; case 2
+ .short _021D79A6 - _021D78EE - 2 ; case 3
+ .short _021D79E0 - _021D78EE - 2 ; case 4
+ .short _021D7A32 - _021D78EE - 2 ; case 5
+_021D78FA:
+ 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, _021D7A54 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7A58 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ b _021D7A46
+_021D7940:
+ bl MOD61_021D7B38
+ cmp r0, #0
+ bne _021D794E
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D794E:
+ ldr r0, _021D7A5C ; =MOD61_021D7A6C
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0
+ bl FUN_0200E394
+ mov r1, #4
+ ldr r0, _021D7A60 ; =0x04000050
+ mov r2, #8
+ mov r3, #0x1c
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #5
+ ldr r0, [r4, #0x30]
+ ldr r2, _021D7A64 ; =0x0000FFFF
+ sub r3, r1, #6
+ bl FUN_02003210
+ b _021D7A46
+_021D798A:
+ add r0, #0xac
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D7996
+ bl FUN_0200BC1C
+_021D7996:
+ ldr r0, [r4, #0x30]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _021D7A46
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D79A6:
+ add r0, #0xac
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D79B2
+ bl FUN_0200BC1C
+_021D79B2:
+ ldrb r1, [r4, #0xc]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _021D7A68 ; =0x021D8444
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ bne _021D79C8
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D79C8:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #5
+ ldr r0, [r4, #0x30]
+ ldr r2, _021D7A64 ; =0x0000FFFF
+ sub r3, r1, #6
+ bl FUN_02003210
+ b _021D7A46
+_021D79E0:
+ ldr r0, [r4, #0x30]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _021D79FC
+ add r4, #0xac
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D79F6
+ bl FUN_0200BC1C
+_021D79F6:
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D79FC:
+ 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
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D7A54 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7A58 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ b _021D7A46
+_021D7A32:
+ bl MOD61_021D7B84
+ cmp r0, #0
+ beq _021D7A40
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_021D7A40:
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D7A46:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_021D7A54: .word 0xFFFFE0FF
+_021D7A58: .word 0x04001000
+_021D7A5C: .word MOD61_021D7A6C
+_021D7A60: .word 0x04000050
+_021D7A64: .word 0x0000FFFF
+_021D7A68: .word 0x021D8444
+ thumb_func_end MOD61_021D78D4
+
+ thumb_func_start MOD61_021D7A6C
+MOD61_021D7A6C: ; 0x021D7A6C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _021D7A7A
+ bl FUN_0200372C
+_021D7A7A:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D7A88
+ bl FUN_0200BC30
+_021D7A88:
+ bl FUN_020AEEB8
+ ldr r0, [r4, #0x18]
+ bl FUN_0201AB60
+ ldr r3, _021D7AA0 ; =0x027E0000
+ ldr r1, _021D7AA4 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D7AA0: .word 0x027E0000
+_021D7AA4: .word 0x00003FF8
+ thumb_func_end MOD61_021D7A6C
+
+ thumb_func_start MOD61_021D7AA8
+MOD61_021D7AA8: ; 0x021D7AA8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r1, #0
+ ldr r2, [r4, #0x30]
+ cmp r2, #0
+ bne _021D7ABC
+ bl FUN_0200CAB4
+ add sp, #8
+ pop {r4, pc}
+_021D7ABC:
+ ldrb r0, [r4, #0x13]
+ cmp r0, #0
+ bne _021D7B30
+ ldrb r3, [r4, #0x17]
+ ldrb r0, [r4, #0x16]
+ cmp r3, r0
+ beq _021D7AEA
+ mov r1, #0
+ ldr r0, _021D7B34 ; =0x00007FFF
+ str r1, [sp]
+ str r0, [sp, #4]
+ add r3, #0x22
+ add r0, r2, #0
+ lsl r2, r3, #0x10
+ lsr r2, r2, #0x10
+ mov r3, #1
+ bl FUN_020039E8
+ ldrb r0, [r4, #0x16]
+ strb r0, [r4, #0x17]
+ mov r0, #0
+ strb r0, [r4, #0x15]
+ strb r0, [r4, #0x14]
+_021D7AEA:
+ ldrb r0, [r4, #0x14]
+ mov r1, #0
+ mov r3, #1
+ str r0, [sp]
+ ldr r0, _021D7B34 ; =0x00007FFF
+ str r0, [sp, #4]
+ ldrb r2, [r4, #0x16]
+ ldr r0, [r4, #0x30]
+ add r2, #0x22
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_020039E8
+ ldrb r0, [r4, #0x15]
+ ldrb r1, [r4, #0x14]
+ cmp r0, #0
+ beq _021D7B20
+ sub r0, r1, #1
+ strb r0, [r4, #0x14]
+ cmp r1, #1
+ bne _021D7B30
+ ldrb r1, [r4, #0x15]
+ mov r0, #1
+ add sp, #8
+ eor r0, r1
+ strb r0, [r4, #0x15]
+ pop {r4, pc}
+_021D7B20:
+ add r0, r1, #1
+ strb r0, [r4, #0x14]
+ cmp r1, #0xc
+ bne _021D7B30
+ ldrb r1, [r4, #0x15]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #0x15]
+_021D7B30:
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_021D7B34: .word 0x00007FFF
+ thumb_func_end MOD61_021D7AA8
+
+ thumb_func_start MOD61_021D7B38
+MOD61_021D7B38: ; 0x021D7B38
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r1, [r4, #8]
+ cmp r1, #3
+ bhi _021D7B7A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7B4E: ; jump table
+ .short _021D7B56 - _021D7B4E - 2 ; case 0
+ .short _021D7B5C - _021D7B4E - 2 ; case 1
+ .short _021D7B62 - _021D7B4E - 2 ; case 2
+ .short _021D7B6E - _021D7B4E - 2 ; case 3
+_021D7B56:
+ bl MOD61_021D7BD0
+ b _021D7B7A
+_021D7B5C:
+ bl MOD61_021D7CE8
+ b _021D7B7A
+_021D7B62:
+ bl MOD61_021D7FF4
+ add r0, r4, #0
+ bl MOD61_021D8114
+ b _021D7B7A
+_021D7B6E:
+ bl MOD61_021D8228
+ mov r0, #0
+ strh r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+_021D7B7A:
+ ldrh r0, [r4, #8]
+ add r0, r0, #1
+ strh r0, [r4, #8]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD61_021D7B38
+
+ thumb_func_start MOD61_021D7B84
+MOD61_021D7B84: ; 0x021D7B84
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD61_021D83E8
+ add r0, r4, #0
+ add r0, #0x24
+ beq _021D7B98
+ ldr r0, [r4, #0x20]
+ bl FUN_0200A8B8
+_021D7B98:
+ add r0, r4, #0
+ bl MOD61_021D80F4
+ add r0, r4, #0
+ bl MOD61_021D7FB4
+ add r0, r4, #0
+ bl MOD61_021D7CB4
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD61_021D7B84
+
+ thumb_func_start MOD61_021D7BB0
+MOD61_021D7BB0: ; 0x021D7BB0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7BCC ; =0x021D84A0
+ add r3, sp, #0
+ mov r2, #5
+_021D7BBA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7BBA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7BCC: .word 0x021D84A0
+ thumb_func_end MOD61_021D7BB0
+
+ thumb_func_start MOD61_021D7BD0
+MOD61_021D7BD0: ; 0x021D7BD0
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ add r4, r0, #0
+ bl MOD61_021D7BB0
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0
+ ldr r5, _021D7CAC ; =0x021D8434
+ str r0, [r4, #0x18]
+ 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, _021D7CB0 ; =0x021D84C8
+ add r3, sp, #0x10
+ mov r2, #0x11
+_021D7BFC:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7BFC
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r3]
+ ldr r0, [r4, #0x18]
+ add r2, sp, #0x10
+ add r3, r1, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ add r2, sp, #0x2c
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ add r2, sp, #0x48
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ add r2, sp, #0x64
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #4
+ add r2, sp, #0x80
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_02018744
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_02018744
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ bl FUN_02018744
+ ldr r0, [r4, #0x18]
+ mov r1, #4
+ bl FUN_02018744
+ mov r0, #0
+ ldr r3, [r4]
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ ldr r3, [r4]
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [r4]
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [r4]
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [r4]
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D7CAC: .word 0x021D8434
+_021D7CB0: .word 0x021D84C8
+ thumb_func_end MOD61_021D7BD0
+
+ thumb_func_start MOD61_021D7CB4
+MOD61_021D7CB4: ; 0x021D7CB4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #0x18]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD61_021D7CB4
+
+ thumb_func_start MOD61_021D7CE8
+MOD61_021D7CE8: ; 0x021D7CE8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ ldr r1, [r5]
+ ldrb r4, [r0, #0xf]
+ str r4, [sp, #0x1c]
+ ldr r0, [sp, #0x1c]
+ add r4, #0xc
+ str r0, [sp, #0x20]
+ add r0, #0x18
+ str r0, [sp, #0x20]
+ mov r0, #0x4f
+ bl FUN_02006670
+ mov r1, #0
+ str r1, [sp]
+ add r6, r0, #0
+ ldr r0, [r5]
+ mov r2, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x18]
+ mov r3, #5
+ bl FUN_0200CB00
+ ldrh r0, [r5, #0xa]
+ mov r1, #0
+ mov r2, #0xa
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r5]
+ mov r3, #6
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x18]
+ bl FUN_0200CD68
+ mov r0, #0x4f
+ add r1, r4, #0
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_020169D8
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl FUN_02006774
+ add r0, r7, #0
+ add r1, sp, #0x28
+ bl FUN_020B0088
+ ldr r3, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r5, #0x18]
+ ldr r3, [r3, #0x10]
+ mov r1, #1
+ bl FUN_02017E14
+ ldr r3, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp]
+ ldr r2, [r3, #0x14]
+ ldr r0, [r5, #0x18]
+ ldr r3, [r3, #0x10]
+ mov r1, #4
+ bl FUN_02017E14
+ add r0, r7, #0
+ bl FUN_02016A18
+ ldr r1, [sp, #0x1c]
+ mov r0, #0x4f
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_020169D8
+ add r4, r0, #0
+ ldr r1, [sp, #0x1c]
+ add r0, r6, #0
+ add r2, r4, #0
+ bl FUN_02006774
+ add r0, r4, #0
+ add r1, sp, #0x24
+ bl FUN_020B0138
+ ldr r2, [sp, #0x24]
+ mov r0, #4
+ ldr r1, [r2, #0xc]
+ ldr r2, [r2, #8]
+ mov r3, #0
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_02017FB4
+ ldr r0, [r5]
+ bl FUN_02002FD0
+ str r0, [r5, #0x30]
+ ldr r3, [r5]
+ mov r1, #0
+ mov r2, #0xe0
+ bl FUN_02003008
+ ldr r0, [r5, #0x30]
+ ldr r3, [r5]
+ mov r1, #2
+ mov r2, #0x60
+ bl FUN_02003008
+ mov r0, #0x60
+ str r0, [sp]
+ ldr r1, [sp, #0x24]
+ mov r2, #0
+ ldr r0, [r5, #0x30]
+ ldr r1, [r1, #0xc]
+ add r3, r2, #0
+ bl FUN_02003054
+ ldrb r0, [r5, #0xc]
+ cmp r0, #1
+ bne _021D7E00
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r1, [sp, #0x24]
+ ldr r0, [r5, #0x30]
+ ldr r1, [r1, #0xc]
+ mov r2, #0
+ add r1, #0x60
+ mov r3, #0x10
+ bl FUN_02003054
+_021D7E00:
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x60
+ str r0, [sp, #4]
+ mov r2, #0
+ str r2, [sp, #8]
+ ldr r0, [r5, #0x30]
+ ldr r3, [r5]
+ mov r1, #0x13
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x30
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x30]
+ ldr r3, [r5]
+ mov r1, #0xe
+ mov r2, #6
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x40
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x30]
+ ldr r3, [r5]
+ mov r1, #0xe
+ mov r2, #7
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x50
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x30]
+ ldr r3, [r5]
+ mov r1, #0x26
+ mov r2, #0x18
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x60
+ str r0, [sp, #8]
+ ldrh r2, [r5, #0xa]
+ ldr r0, [r5, #0x30]
+ ldr r3, [r5]
+ mov r1, #0x26
+ add r2, #0x19
+ bl FUN_020030E8
+ mov r0, #0x10
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r5, #0x30]
+ add r2, r1, #0
+ mov r3, #0x70
+ bl FUN_020039E8
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0
+ str r2, [sp, #4]
+ ldr r0, [r5, #0x30]
+ mov r1, #2
+ mov r3, #0x30
+ bl FUN_020039E8
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl FUN_020038F0
+ ldr r0, [r5, #0x30]
+ bl FUN_0200372C
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r1, [sp, #0x20]
+ mov r0, #0x4f
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_02016998
+ str r0, [r5, #0x34]
+ ldr r1, [sp, #0x20]
+ ldr r2, [r5, #0x34]
+ add r0, r6, #0
+ bl FUN_02006774
+ add r1, r5, #0
+ ldr r0, [r5, #0x34]
+ add r1, #0x3c
+ bl FUN_020B0180
+ mov r0, #0x4f
+ mov r1, #0x24
+ bl LoadFromNARC_7
+ add r1, r0, #0
+ ldr r0, [r5]
+ bl FUN_02016998
+ str r0, [r5, #0x38]
+ ldr r2, [r5, #0x38]
+ add r0, r6, #0
+ mov r1, #0x24
+ bl FUN_02006774
+ add r1, r5, #0
+ ldr r0, [r5, #0x38]
+ add r1, #0x40
+ bl FUN_020B0180
+ add r0, r6, #0
+ bl FUN_020066F4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x18]
+ ldr r2, _021D7FAC ; =0x00002001
+ mov r1, #4
+ bl FUN_02018540
+ mov r2, #0
+ ldr r0, [r5, #0x3c]
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldrh r1, [r0]
+ add r3, r2, #0
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #3
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x18]
+ bl FUN_02018170
+ ldr r0, [r5, #0x18]
+ mov r1, #3
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x18]
+ mov r1, #4
+ bl FUN_0201AC68
+ ldrb r0, [r5, #0xc]
+ cmp r0, #1
+ bne _021D7FA6
+ ldr r0, [r5, #0x40]
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ mov r2, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldrh r1, [r0]
+ add r3, r2, #0
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #2
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x18]
+ bl FUN_02018170
+ ldr r0, [r5, #0x18]
+ mov r1, #2
+ bl FUN_0201AC68
+ mov r2, #0
+ strb r2, [r5, #0x14]
+ ldr r0, _021D7FB0 ; =MOD61_021D7AA8
+ add r1, r5, #0
+ strb r2, [r5, #0x15]
+ bl FUN_0200CA44
+_021D7FA6:
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D7FAC: .word 0x00002001
+_021D7FB0: .word MOD61_021D7AA8
+ thumb_func_end MOD61_021D7CE8
+
+ thumb_func_start MOD61_021D7FB4
+MOD61_021D7FB4: ; 0x021D7FB4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #0x38]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x34]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x30]
+ mov r1, #2
+ bl FUN_02003038
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_02003038
+ ldr r0, [r4, #0x30]
+ bl FUN_02002FEC
+ mov r1, #0
+ str r1, [r4, #0x30]
+ ldr r0, _021D7FF0 ; =0x04000050
+ add r2, r1, #0
+ mov r3, #0x1f
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D7FF0: .word 0x04000050
+ thumb_func_end MOD61_021D7FB4
+
+ thumb_func_start MOD61_021D7FF4
+MOD61_021D7FF4: ; 0x021D7FF4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ mov r3, #3
+ add r5, r0, #0
+ str r3, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #1
+ add r1, r5, #0
+ ldr r0, _021D80DC ; =0x00000397
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x18]
+ add r1, #0x44
+ bl FUN_02019064
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #1
+ add r1, r5, #0
+ ldr r0, _021D80E0 ; =0x0000032F
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x18]
+ add r1, #0x54
+ mov r3, #3
+ bl FUN_02019064
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r2, #1
+ add r1, r5, #0
+ ldr r0, _021D80E4 ; =0x000002C7
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x18]
+ add r1, #0x64
+ mov r3, #3
+ bl FUN_02019064
+ mov r0, #0x14
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r2, #1
+ add r1, r5, #0
+ ldr r0, _021D80E8 ; =0x000002B7
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x18]
+ add r1, #0x74
+ mov r3, #0x15
+ bl FUN_02019064
+ mov r0, #0x14
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r2, #1
+ add r1, r5, #0
+ ldr r0, _021D80EC ; =0x000002A7
+ str r2, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x18]
+ add r1, #0x84
+ mov r3, #3
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021D80F0 ; =0x00000297
+ add r1, r5, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x18]
+ add r1, #0x94
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r4, #0
+ add r5, #0x44
+ add r6, r4, #0
+_021D80BE:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl FUN_02019620
+ cmp r4, #5
+ bge _021D80D0
+ add r0, r5, #0
+ bl FUN_020191D0
+_021D80D0:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #6
+ blt _021D80BE
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D80DC: .word 0x00000397
+_021D80E0: .word 0x0000032F
+_021D80E4: .word 0x000002C7
+_021D80E8: .word 0x000002B7
+_021D80EC: .word 0x000002A7
+_021D80F0: .word 0x00000297
+ thumb_func_end MOD61_021D7FF4
+
+ thumb_func_start MOD61_021D80F4
+MOD61_021D80F4: ; 0x021D80F4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x44
+_021D80FC:
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #6
+ blt _021D80FC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD61_021D80F4
+
+ thumb_func_start MOD61_021D8114
+MOD61_021D8114: ; 0x021D8114
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ mov r7, #0
+ add r6, r4, #0
+ add r5, r7, #0
+ add r6, #0x44
+_021D8122:
+ ldr r0, [r4, #0x1c]
+ add r0, #0x1a
+ add r0, r0, r5
+ bl FUN_0201385C
+ cmp r0, #0
+ beq _021D8164
+ ldr r0, [r4, #0x1c]
+ ldr r1, [r4]
+ add r0, #0x1a
+ add r0, r0, r5
+ bl FUN_020137D4
+ str r0, [sp, #0x10]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021D8220 ; =0x00010200
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r6, #0
+ mov r1, #1
+ mov r3, #0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_020191D0
+_021D8164:
+ add r7, r7, #1
+ add r5, #8
+ add r6, #0x10
+ cmp r7, #3
+ blt _021D8122
+ ldrb r0, [r4, #0xc]
+ cmp r0, #1
+ bne _021D81F8
+ ldr r2, _021D8224 ; =0x00000169
+ ldr r3, [r4]
+ mov r0, #1
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ str r0, [r4, #0x20]
+ ldr r1, [r4]
+ mov r0, #0x10
+ bl FUN_020219F4
+ add r5, r0, #0
+ add r0, r4, #0
+ str r0, [sp, #0x18]
+ add r0, #0x44
+ mov r6, #0
+ str r0, [sp, #0x18]
+_021D8196:
+ add r0, r5, #0
+ bl FUN_02021A4C
+ ldr r0, [r4, #0x20]
+ add r1, r6, #0
+ add r2, r5, #0
+ bl FUN_0200A8E0
+ mov r0, #1
+ add r1, r5, #0
+ mov r2, #0
+ bl FUN_02002E14
+ mov r1, #0x40
+ sub r7, r1, r0
+ add r0, r6, #3
+ lsl r0, r0, #4
+ str r0, [sp, #0x14]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _021D8220 ; =0x00010200
+ lsr r3, r7, #0x1f
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r3, r7, r3
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r2, r5, #0
+ add r0, r0, r1
+ mov r1, #1
+ asr r3, r3, #1
+ bl FUN_0201BDE0
+ ldr r1, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r0, r0, r1
+ bl FUN_020191D0
+ add r6, r6, #1
+ cmp r6, #2
+ blt _021D8196
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+_021D81F8:
+ mov r0, #2
+ str r0, [sp]
+ mov r3, #0
+ ldr r0, _021D8220 ; =0x00010200
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ add r0, r4, #0
+ ldr r2, [r2, #0x10]
+ add r0, #0x74
+ mov r1, #1
+ bl FUN_0201BDE0
+ add r4, #0x74
+ add r0, r4, #0
+ bl FUN_020191D0
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8220: .word 0x00010200
+_021D8224: .word 0x00000169
+ thumb_func_end MOD61_021D8114
+
+ thumb_func_start MOD61_021D8228
+MOD61_021D8228: ; 0x021D8228
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x94
+ add r5, r0, #0
+ bl FUN_02033F20
+ ldrb r0, [r5, #0xc]
+ cmp r0, #1
+ bne _021D823A
+ b _021D83D4
+_021D823A:
+ ldr r1, [r5]
+ mov r0, #0x20
+ bl FUN_0201C24C
+ ldr r0, [r5]
+ bl FUN_0200BB14
+ add r1, r5, #0
+ add r1, #0xa8
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ add r1, r5, #0
+ add r1, #0xac
+ add r2, sp, #0x40
+ ldr r4, _021D83D8 ; =0x021D8480
+ str r0, [r1]
+ ldmia r4!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ ldr r6, _021D83DC ; =0x021D8454
+ stmia r2!, {r0, r1}
+ add r4, sp, #0x2c
+ ldmia r6!, {r0, r1}
+ add r2, r4, #0
+ stmia r4!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r6]
+ ldr r6, _021D83E0 ; =0x021D8468
+ str r0, [r4]
+ add r4, sp, #0x14
+ ldmia r6!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r4!, {r0, r1}
+ add r0, r5, #0
+ add r0, #0xa8
+ add r1, r3, #0
+ ldr r0, [r0]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xa8
+ add r1, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #3
+ bl FUN_0200BBF0
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xa8
+ add r1, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, sp, #0x14
+ bl FUN_0200BF60
+ ldr r0, [r5]
+ bl FUN_0200A064
+ bl FUN_0206B888
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xa8
+ add r1, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x13
+ bl FUN_0200C06C
+ bl FUN_0206B88C
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xa8
+ add r1, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B898
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xa8
+ add r1, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x13
+ bl FUN_0200C13C
+ mov r6, #0
+ add r4, r6, #0
+ add r7, r6, #0
+ str r5, [sp, #0x10]
+_021D8338:
+ ldr r0, [r5, #0x1c]
+ add r3, r0, r4
+ ldrh r1, [r3, #0x14]
+ ldr r0, _021D83E4 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021D83D4
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldrh r3, [r3, #0x14]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xa8
+ add r1, #0xac
+ lsl r3, r3, #0x14
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x13
+ lsr r3, r3, #0x14
+ bl FUN_0200C918
+ add r0, sp, #0x60
+ mov r1, #0
+ mov r2, #0x34
+ bl MI_CpuFill8
+ mov r0, #0x80
+ sub r1, r0, r7
+ add r0, sp, #0x60
+ strh r1, [r0]
+ mov r1, #0xa0
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ mov r0, #2
+ str r0, [sp, #0x8c]
+ ldr r0, [r5, #0x1c]
+ add r2, sp, #0x60
+ add r0, r0, r4
+ ldrh r0, [r0, #0x14]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x1c
+ str r0, [sp, #0x6c]
+ add r0, r1, #0
+ str r0, [sp, #0x90]
+ mov r0, #1
+ str r0, [sp, #0x70]
+ add r0, r1, #0
+ str r0, [sp, #0x78]
+ str r0, [sp, #0x7c]
+ str r0, [sp, #0x80]
+ sub r0, r1, #1
+ str r0, [sp, #0x84]
+ sub r0, r1, #1
+ str r0, [sp, #0x88]
+ add r0, r5, #0
+ add r1, r5, #0
+ str r6, [sp, #0x74]
+ add r0, #0xa8
+ add r1, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C154
+ ldr r1, [sp, #0x10]
+ add r6, r6, #1
+ add r1, #0xb0
+ str r0, [r1]
+ ldr r0, [sp, #0x10]
+ add r4, r4, #2
+ add r0, r0, #4
+ add r7, #0x28
+ str r0, [sp, #0x10]
+ cmp r6, #3
+ blt _021D8338
+_021D83D4:
+ add sp, #0x94
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D83D8: .word 0x021D8480
+_021D83DC: .word 0x021D8454
+_021D83E0: .word 0x021D8468
+_021D83E4: .word 0x0000FFFF
+ thumb_func_end MOD61_021D8228
+
+ thumb_func_start MOD61_021D83E8
+MOD61_021D83E8: ; 0x021D83E8
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldrb r0, [r6, #0xc]
+ cmp r0, #0
+ bne _021D8428
+ mov r4, #0
+ add r5, r6, #0
+_021D83F6:
+ add r0, r5, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D8404
+ bl FUN_0200C3DC
+_021D8404:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021D83F6
+ add r0, r6, #0
+ add r1, r6, #0
+ add r0, #0xa8
+ add r1, #0xac
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C398
+ add r6, #0xa8
+ ldr r0, [r6]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+_021D8428:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD61_021D83E8
+
+ .section .rodata
+ ; 0x021D842C
+ .incbin "baserom.nds", 0x2AE94C, 0x128
diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s
new file mode 100644
index 00000000..ced7fa63
--- /dev/null
+++ b/arm9/modules/62/asm/module_62.s
@@ -0,0 +1,7543 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD62_0222D5C0
+MOD62_0222D5C0: ; 0x0222D5C0
+ ldr r3, _0222D5C8 ; =HandleLoadOverlay
+ ldr r0, _0222D5CC ; =SDK_OVERLAY_MODULE_08_ID
+ mov r1, #2
+ bx r3
+ .align 2, 0
+_0222D5C8: .word HandleLoadOverlay
+_0222D5CC: .word SDK_OVERLAY_MODULE_08_ID
+ thumb_func_end MOD62_0222D5C0
+
+ thumb_func_start MOD62_0222D5D0
+MOD62_0222D5D0: ; 0x0222D5D0
+ add r3, r2, #0
+ sub r3, #0xa
+ strb r3, [r0]
+ add r3, r1, #0
+ sub r3, #0xa
+ strb r3, [r0, #2]
+ add r2, #0xa
+ strb r2, [r0, #1]
+ add r1, #0xa
+ strb r1, [r0, #3]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_0222D5D0
+
+ thumb_func_start MOD62_0222D5E8
+MOD62_0222D5E8: ; 0x0222D5E8
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #2]
+ mov r1, #0xc0
+ strb r1, [r0, #1]
+ mov r1, #0xff
+ strb r1, [r0, #3]
+ bx lr
+ thumb_func_end MOD62_0222D5E8
+
+ thumb_func_start MOD62_0222D5F8
+MOD62_0222D5F8: ; 0x0222D5F8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ beq _0222D64C
+ cmp r2, #1
+ bne _0222D628
+ ldr r3, _0222D650 ; =0x021C48F8
+ mov r1, #0x1c
+ mov r2, #0x1e
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, r4, #0
+ bl FUN_0200C714
+ add r1, sp, #0
+ add r0, r4, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r0, r5, #0
+ bl MOD62_0222D5E8
+ pop {r3, r4, r5, pc}
+_0222D628:
+ add r1, sp, #0
+ add r0, r4, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ add r0, r5, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x18
+ lsr r1, r1, #0x18
+ lsr r2, r2, #0x18
+ bl MOD62_0222D5D0
+_0222D64C:
+ pop {r3, r4, r5, pc}
+ nop
+_0222D650: .word 0x021C48F8
+ thumb_func_end MOD62_0222D5F8
+
+ thumb_func_start MOD62_0222D654
+MOD62_0222D654: ; 0x0222D654
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ add r7, r4, #0
+ mov r6, #0xcb
+ add r5, r0, #0
+ sub r7, #0x38
+ lsl r6, r6, #2
+_0222D662:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _0222D670
+ add r1, r7, #0
+ mov r2, #0x10
+ bl FUN_0200C82C
+_0222D670:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _0222D662
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222D654
+
+ thumb_func_start MOD62_0222D67C
+MOD62_0222D67C: ; 0x0222D67C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r6, #0
+ lsl r0, r0, #3
+ add r0, r7, r0
+ ldr r4, [r0, #8]
+ add r5, r7, #0
+_0222D690:
+ ldrb r1, [r4]
+ cmp r1, #0
+ beq _0222D6CE
+ mov r0, #0xca
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ ldrb r1, [r4, #1]
+ add r0, r0, #1
+ strb r1, [r5, r0]
+ ldrb r1, [r4, #2]
+ ldr r0, _0222D6E8 ; =0x0000032A
+ strb r1, [r5, r0]
+ lsl r1, r6, #0x18
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ bl MOD62_0222D9A0
+ mov r0, #0x33
+ mov r1, #0xcb
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ mov r2, #0
+ bl MOD62_0222D5F8
+ mov r0, #0xc9
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ b _0222D6DA
+_0222D6CE:
+ mov r0, #0xc9
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r0, #4
+ strb r1, [r5, r0]
+_0222D6DA:
+ add r6, r6, #1
+ add r4, r4, #3
+ add r5, #0x10
+ cmp r6, #8
+ blt _0222D690
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222D6E8: .word 0x0000032A
+ thumb_func_end MOD62_0222D67C
+
+ thumb_func_start MOD62_0222D6EC
+MOD62_0222D6EC: ; 0x0222D6EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ mov r0, #0xc9
+ mov r4, #0
+ add r3, r6, #0
+ lsl r0, r0, #2
+_0222D6FA:
+ ldr r2, [r3, r0]
+ cmp r2, #1
+ beq _0222D75C
+ add r0, r6, r1
+ mov r1, #0x42
+ lsl r1, r1, #4
+ ldrb r3, [r0, r1]
+ lsl r5, r4, #4
+ add r0, r1, #0
+ add r2, r6, r5
+ sub r0, #0xf8
+ strb r3, [r2, r0]
+ add r0, r1, #0
+ sub r0, #0xf7
+ add r7, r6, r0
+ mov r0, #0xbe
+ sub r1, #0xf6
+ strb r0, [r7, r5]
+ add r0, r6, r1
+ mov r1, #0x46
+ strb r1, [r0, r5]
+ str r0, [sp]
+ add r0, sp, #8
+ add r1, sp, #4
+ bl FUN_02020AB0
+ ldr r0, [sp, #8]
+ strb r0, [r7, r5]
+ ldr r1, [sp, #4]
+ ldr r0, [sp]
+ strb r1, [r0, r5]
+ lsl r1, r4, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD62_0222D9A0
+ lsl r1, r4, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ bl MOD62_0222D788
+ mov r0, #0xc9
+ mov r2, #1
+ add r1, r6, r5
+ lsl r0, r0, #2
+ str r2, [r1, r0]
+ add sp, #0xc
+ add r0, r4, #0
+ pop {r4, r5, r6, r7, pc}
+_0222D75C:
+ add r4, r4, #1
+ add r3, #0x10
+ cmp r4, #8
+ blt _0222D6FA
+ mov r0, #0xff
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222D6EC
+
+ thumb_func_start MOD62_0222D76C
+MOD62_0222D76C: ; 0x0222D76C
+ mov r1, #0xc9
+ mov r3, #0
+ lsl r1, r1, #2
+_0222D772:
+ ldr r2, [r0, r1]
+ cmp r2, #1
+ beq _0222D77C
+ mov r0, #1
+ bx lr
+_0222D77C:
+ add r3, r3, #1
+ add r0, #0x10
+ cmp r3, #8
+ blt _0222D772
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD62_0222D76C
+
+ thumb_func_start MOD62_0222D788
+MOD62_0222D788: ; 0x0222D788
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0xc9
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ lsl r7, r7, #2
+_0222D794:
+ ldr r0, [r5, r7]
+ cmp r0, #1
+ bne _0222D7D4
+ cmp r4, r6
+ bne _0222D7AC
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C6C4
+ b _0222D7D4
+_0222D7AC:
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200C6D8
+ add r1, r0, #0
+ bne _0222D7C8
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #1
+ bl FUN_0200C6C4
+ b _0222D7D4
+_0222D7C8:
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #2
+ bl FUN_0200C6C4
+_0222D7D4:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _0222D794
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222D788
+
+ thumb_func_start MOD62_0222D7E0
+MOD62_0222D7E0: ; 0x0222D7E0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r1, #0
+ add r1, r0, #0
+ add r1, #0xdc
+ ldr r4, [r1]
+ add r1, r0, #0
+ add r1, #0xe0
+ ldr r5, [r1]
+ mov r1, #0x5b
+ str r1, [sp]
+ add r1, #0xca
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ mov r1, #2
+ str r1, [sp, #0x10]
+ ldr r1, _0222D864 ; =0x0000532D
+ add r6, r2, #0
+ str r1, [sp, #0x14]
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #3
+ add r2, r4, #0
+ add r3, r5, #0
+ bl FUN_0200C0DC
+ add r0, r7, #0
+ bl FUN_02085FAC
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222D868 ; =0x00004E20
+ add r1, r5, #0
+ add r0, r6, r0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r2, #0x5b
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222D86C ; =0x0000564D
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x5d
+ bl FUN_0200C124
+ mov r3, #1
+ ldr r0, _0222D870 ; =0x000059D9
+ str r3, [sp]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #0x5b
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222D864: .word 0x0000532D
+_0222D868: .word 0x00004E20
+_0222D86C: .word 0x0000564D
+_0222D870: .word 0x000059D9
+ thumb_func_end MOD62_0222D7E0
+
+ thumb_func_start MOD62_0222D874
+MOD62_0222D874: ; 0x0222D874
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x74
+ mov r1, #0x26
+ lsl r1, r1, #4
+ str r0, [sp]
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ bne _0222D886
+ b _0222D994
+_0222D886:
+ ldr r0, [sp]
+ mov r7, #0
+ str r7, [r0, r1]
+ add r4, sp, #0x54
+ add r5, sp, #0x34
+ add r6, r0, #0
+_0222D892:
+ mov r0, #0xff
+ str r0, [r4]
+ str r0, [r5]
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0222D8AA
+ bl FUN_0200C6D8
+ str r0, [r4]
+ str r7, [r5]
+_0222D8AA:
+ add r7, r7, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ add r6, #0x10
+ cmp r7, #8
+ blt _0222D892
+ mov r0, #0
+ mov ip, r0
+_0222D8BA:
+ mov r0, ip
+ mov r3, #7
+ cmp r0, #7
+ bge _0222D8EA
+ add r4, sp, #0x70
+ add r5, sp, #0x50
+_0222D8C6:
+ sub r7, r4, #4
+ ldr r2, [r4]
+ ldr r0, [r7]
+ cmp r0, r2
+ blt _0222D8DE
+ ldr r1, [r5]
+ sub r6, r5, #4
+ str r0, [r4]
+ ldr r0, [r6]
+ str r0, [r5]
+ str r2, [r7]
+ str r1, [r6]
+_0222D8DE:
+ sub r3, r3, #1
+ mov r0, ip
+ sub r4, r4, #4
+ sub r5, r5, #4
+ cmp r3, r0
+ bgt _0222D8C6
+_0222D8EA:
+ mov r0, ip
+ add r0, r0, #1
+ mov ip, r0
+ cmp r0, #7
+ blt _0222D8BA
+ mov r3, #0xca
+ lsl r3, r3, #2
+ ldr r0, [sp]
+ mov r2, #0
+ add r1, sp, #0x1c
+ add r4, r3, #1
+ add r5, r3, #2
+_0222D902:
+ ldrb r6, [r0, r3]
+ add r2, r2, #1
+ strb r6, [r1]
+ ldrb r6, [r0, r4]
+ strb r6, [r1, #1]
+ ldrb r6, [r0, r5]
+ add r0, #0x10
+ strb r6, [r1, #2]
+ add r1, r1, #3
+ cmp r2, #8
+ blt _0222D902
+ add r3, sp, #0x1c
+ add r2, sp, #4
+ mov r1, #0x18
+_0222D91E:
+ ldrb r0, [r3]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r2, r2, #1
+ sub r1, r1, #1
+ bne _0222D91E
+ ldr r5, [sp]
+ mov r6, #0
+ add r4, sp, #0x34
+ add r7, sp, #4
+_0222D932:
+ ldr r1, [r4]
+ cmp r1, #0xff
+ bne _0222D94A
+ mov r0, #0xca
+ mov r1, #0
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ add r0, r0, #1
+ strb r1, [r5, r0]
+ ldr r0, _0222D998 ; =0x0000032A
+ strb r1, [r5, r0]
+ b _0222D98A
+_0222D94A:
+ lsl r0, r1, #1
+ add r0, r1, r0
+ ldrb r1, [r7, r0]
+ mov r0, #0xca
+ lsl r0, r0, #2
+ strb r1, [r5, r0]
+ ldr r1, [r4]
+ lsl r0, r1, #1
+ add r0, r1, r0
+ add r0, r7, r0
+ ldrb r1, [r0, #1]
+ ldr r0, _0222D99C ; =0x00000329
+ strb r1, [r5, r0]
+ ldr r1, [r4]
+ lsl r0, r1, #1
+ add r0, r1, r0
+ add r0, r7, r0
+ ldrb r1, [r0, #2]
+ ldr r0, _0222D998 ; =0x0000032A
+ strb r1, [r5, r0]
+ ldr r0, [r4]
+ lsl r1, r0, #4
+ ldr r0, [sp]
+ add r1, r0, r1
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ beq _0222D98A
+ add r1, r6, #0
+ bl FUN_0200C6C4
+_0222D98A:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #8
+ blt _0222D932
+_0222D994:
+ add sp, #0x74
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222D998: .word 0x0000032A
+_0222D99C: .word 0x00000329
+ thumb_func_end MOD62_0222D874
+
+ thumb_func_start MOD62_0222D9A0
+MOD62_0222D9A0: ; 0x0222D9A0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r1, #0
+ add r1, r0, #0
+ add r1, #0xdc
+ ldr r7, [r1]
+ add r1, r0, #0
+ add r1, #0xe0
+ ldr r6, [r1]
+ mov r1, #0xc9
+ lsl r1, r1, #2
+ add r2, r0, r1
+ lsl r1, r5, #4
+ add r4, r2, r1
+ ldr r1, [r2, r1]
+ cmp r1, #1
+ bne _0222D9CC
+ bl ErrorHandling
+ add sp, #0x34
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_0222D9CC:
+ ldrb r1, [r4, #4]
+ add r2, r5, #0
+ bl MOD62_0222D7E0
+ ldrb r1, [r4, #5]
+ add r0, sp, #0
+ strh r1, [r0]
+ ldrb r1, [r4, #6]
+ strh r1, [r0, #2]
+ mov r1, #0
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ mov r0, #1
+ str r0, [sp, #0x2c]
+ sub r0, r0, #2
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x30]
+ str r1, [sp, #8]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldrb r0, [r4, #4]
+ bl FUN_02085FAC
+ ldr r0, _0222DA28 ; =0x00004E20
+ add r1, r6, #0
+ add r0, r5, r0
+ str r0, [sp, #0x14]
+ ldr r0, _0222DA2C ; =0x0000532D
+ add r2, sp, #0
+ str r0, [sp, #0x18]
+ ldr r0, _0222DA30 ; =0x0000564D
+ str r0, [sp, #0x1c]
+ ldr r0, _0222DA34 ; =0x000059D9
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl FUN_0200C154
+ str r0, [r4, #8]
+ bl FUN_0200C5A8
+ mov r0, #1
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222DA28: .word 0x00004E20
+_0222DA2C: .word 0x0000532D
+_0222DA30: .word 0x0000564D
+_0222DA34: .word 0x000059D9
+ thumb_func_end MOD62_0222D9A0
+
+ thumb_func_start MOD62_0222DA38
+MOD62_0222DA38: ; 0x0222DA38
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r2, #0
+ add r6, r1, #0
+ mov r1, #0xc9
+ add r4, r0, #0
+ lsl r7, r5, #4
+ add r3, r4, r7
+ lsl r1, r1, #2
+ ldr r2, [r3, r1]
+ cmp r2, #0
+ bne _0222DA52
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222DA52:
+ cmp r6, #3
+ bhi _0222DAE2
+ add r2, r6, r6
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0222DA62: ; jump table
+ .short _0222DA6A - _0222DA62 - 2 ; case 0
+ .short _0222DAAA - _0222DA62 - 2 ; case 1
+ .short _0222DA80 - _0222DA62 - 2 ; case 2
+ .short _0222DAAA - _0222DA62 - 2 ; case 3
+_0222DA6A:
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ cmp r1, #0xff
+ bne _0222DAE6
+ add r4, #0xd4
+ add r1, r5, #0
+ str r5, [r4]
+ bl MOD62_0222D788
+ b _0222DAE6
+_0222DA80:
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, r5
+ bne _0222DAE6
+ add r0, r1, #0
+ add r0, #0xc
+ add r1, #8
+ ldr r0, [r3, r0]
+ ldr r1, [r3, r1]
+ mov r2, #1
+ bl MOD62_0222D5F8
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DBCC
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DC48
+ b _0222DAE6
+_0222DAAA:
+ add r1, r4, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ cmp r1, #0xff
+ bne _0222DAE6
+ add r1, r5, #0
+ bl MOD62_0222DB38
+ mov r1, #0x33
+ add r2, r4, r7
+ lsl r1, r1, #4
+ add r6, r0, #0
+ ldr r0, [r2, r1]
+ sub r1, r1, #4
+ ldr r1, [r2, r1]
+ mov r2, #0
+ bl MOD62_0222D5F8
+ cmp r6, #0
+ bne _0222DADA
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DB78
+_0222DADA:
+ mov r0, #0xff
+ add r4, #0xd4
+ str r0, [r4]
+ b _0222DAE6
+_0222DAE2:
+ bl ErrorHandling
+_0222DAE6:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DA38
+
+ thumb_func_start MOD62_0222DAEC
+MOD62_0222DAEC: ; 0x0222DAEC
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r7, #0xc9
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222DAF8:
+ ldr r0, [r5, r7]
+ cmp r0, #1
+ bne _0222DB06
+ add r0, r6, #0
+ add r1, r4, #0
+ bl MOD62_0222DB78
+_0222DB06:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _0222DAF8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222DAEC
+
+ thumb_func_start MOD62_0222DB10
+MOD62_0222DB10: ; 0x0222DB10
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0xc9
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ lsl r7, r7, #2
+_0222DB1C:
+ ldr r0, [r5, r7]
+ cmp r0, #1
+ bne _0222DB2E
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_0200C644
+_0222DB2E:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #8
+ blt _0222DB1C
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222DB10
+
+ thumb_func_start MOD62_0222DB38
+MOD62_0222DB38: ; 0x0222DB38
+ push {r3, lr}
+ lsl r1, r1, #4
+ add r2, r0, r1
+ mov r0, #0xc9
+ lsl r0, r0, #2
+ ldr r1, [r2, r0]
+ cmp r1, #0
+ bne _0222DB4C
+ mov r0, #1
+ pop {r3, pc}
+_0222DB4C:
+ add r0, #8
+ ldr r0, [r2, r0]
+ add r1, sp, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r2, sp, #0
+ mov r0, #2
+ mov r1, #0
+ ldrsh r0, [r2, r0]
+ ldrsh r1, [r2, r1]
+ mov r2, #0xbe
+ mov r3, #0x46
+ bl MOD08_0222A02C
+ cmp r0, #0x3c
+ bgt _0222DB74
+ mov r0, #1
+ pop {r3, pc}
+_0222DB74:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD62_0222DB38
+
+ thumb_func_start MOD62_0222DB78
+MOD62_0222DB78: ; 0x0222DB78
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0xca
+ add r7, r1, #0
+ lsl r0, r0, #2
+ lsl r4, r7, #4
+ add r6, r5, r0
+ ldrb r0, [r6, r4]
+ bl FUN_02085FAC
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r1, _0222DBC8 ; =0x00004E20
+ ldr r0, [r0]
+ add r1, r7, r1
+ bl FUN_0200C358
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ add r7, r5, r0
+ ldr r0, [r7, r4]
+ bl FUN_0200C3DC
+ mov r1, #0
+ mov r2, #0xc9
+ lsl r2, r2, #2
+ str r1, [r7, r4]
+ add r3, r5, r4
+ str r1, [r3, r2]
+ strb r1, [r6, r4]
+ add r0, r2, #5
+ strb r1, [r3, r0]
+ add r0, r2, #6
+ add r2, #0xc
+ strb r1, [r3, r0]
+ ldr r0, [r3, r2]
+ add r2, r1, #0
+ bl MOD62_0222D5D0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DBC8: .word 0x00004E20
+ thumb_func_end MOD62_0222DB78
+
+ thumb_func_start MOD62_0222DBCC
+MOD62_0222DBCC: ; 0x0222DBCC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD62_0222DB38
+ cmp r0, #0
+ bne _0222DBEC
+ lsl r0, r5, #4
+ add r1, r4, r0
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_0200C90C
+ pop {r3, r4, r5, pc}
+_0222DBEC:
+ lsl r0, r5, #4
+ add r1, r4, r0
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_0200C90C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DBCC
+
+ thumb_func_start MOD62_0222DC00
+MOD62_0222DC00: ; 0x0222DC00
+ push {r4, r5, r6, r7}
+ mov r2, #0xf1
+ lsl r2, r2, #2
+ ldr r2, [r0, r2]
+ ldr r4, _0222DC44 ; =0x00000329
+ lsl r2, r2, #3
+ add r2, r0, r2
+ ldr r2, [r2, #8]
+ mov r1, #0
+ add r3, r4, #1
+ sub r5, r4, #1
+_0222DC16:
+ ldrb r7, [r0, r5]
+ ldrb r6, [r2]
+ cmp r7, r6
+ bne _0222DC2E
+ ldrb r7, [r0, r4]
+ ldrb r6, [r2, #1]
+ cmp r7, r6
+ bne _0222DC2E
+ ldrb r7, [r0, r3]
+ ldrb r6, [r2, #2]
+ cmp r7, r6
+ beq _0222DC34
+_0222DC2E:
+ mov r0, #1
+ pop {r4, r5, r6, r7}
+ bx lr
+_0222DC34:
+ add r1, r1, #1
+ add r2, r2, #3
+ add r0, #0x10
+ cmp r1, #8
+ blt _0222DC16
+ mov r0, #0
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_0222DC44: .word 0x00000329
+ thumb_func_end MOD62_0222DC00
+
+ thumb_func_start MOD62_0222DC48
+MOD62_0222DC48: ; 0x0222DC48
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r4, r1, #4
+ mov r0, #0xcb
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r1, sp, #0
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r2, sp, #0
+ mov r0, #2
+ ldrsh r1, [r2, r0]
+ ldr r0, _0222DC78 ; =0x00000329
+ add r3, r5, r4
+ strb r1, [r3, r0]
+ mov r1, #0
+ ldrsh r1, [r2, r1]
+ add r0, r0, #1
+ strb r1, [r3, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_0222DC78: .word 0x00000329
+ thumb_func_end MOD62_0222DC48
+
+ thumb_func_start MOD62_0222DC7C
+MOD62_0222DC7C: ; 0x0222DC7C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r3, #0xca
+ add r7, r0, #0
+ lsl r3, r3, #2
+ mov r0, #0
+ add r1, r7, #0
+ add r2, sp, #0
+ add r4, r3, #1
+ add r5, r3, #2
+_0222DC90:
+ ldrb r6, [r1, r3]
+ add r0, r0, #1
+ strb r6, [r2]
+ ldrb r6, [r1, r4]
+ strb r6, [r2, #1]
+ ldrb r6, [r1, r5]
+ add r1, #0x10
+ strb r6, [r2, #2]
+ add r2, r2, #3
+ cmp r0, #8
+ blt _0222DC90
+ ldr r0, [r7]
+ mov r2, #0xf1
+ lsl r2, r2, #2
+ ldr r0, [r0, #0x20]
+ ldr r2, [r7, r2]
+ add r1, sp, #0
+ bl FUN_02029CA4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DC7C
+
+ thumb_func_start MOD62_0222DCBC
+MOD62_0222DCBC: ; 0x0222DCBC
+ push {r3, r4, r5, r6}
+ mov r3, #0xca
+ lsl r3, r3, #2
+ mov r2, #0
+ add r4, r3, #1
+ add r5, r3, #2
+_0222DCC8:
+ ldrb r6, [r1, r3]
+ add r2, r2, #1
+ strb r6, [r0]
+ ldrb r6, [r1, r4]
+ strb r6, [r0, #1]
+ ldrb r6, [r1, r5]
+ add r1, #0x10
+ strb r6, [r0, #2]
+ add r0, r0, #3
+ cmp r2, #8
+ blt _0222DCC8
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_0222DCBC
+
+ thumb_func_start MOD62_0222DCE4
+MOD62_0222DCE4: ; 0x0222DCE4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, sp, #0
+ add r4, r2, #0
+ add r1, #2
+ add r2, sp, #0
+ add r6, r3, #0
+ bl FUN_0200C7A0
+ add r1, sp, #0
+ mov r0, #0
+ ldrsh r2, [r1, r0]
+ sub r2, r2, r6
+ strb r2, [r5]
+ ldrsh r0, [r1, r0]
+ add r0, r0, r6
+ strb r0, [r5, #1]
+ mov r0, #2
+ ldrsh r2, [r1, r0]
+ sub r2, r2, r4
+ strb r2, [r5, #2]
+ ldrsh r0, [r1, r0]
+ add r0, r0, r4
+ strb r0, [r5, #3]
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD62_0222DCE4
+
+ thumb_func_start MOD62_0222DD1C
+MOD62_0222DD1C: ; 0x0222DD1C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #2
+ mov r1, #0x35
+ bl FUN_02011744
+ mov r1, #0x8d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #2
+ mov r1, #0x35
+ bl FUN_02002C50
+ pop {r4, pc}
+ thumb_func_end MOD62_0222DD1C
+
+ thumb_func_start MOD62_0222DD38
+MOD62_0222DD38: ; 0x0222DD38
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #2
+ bl FUN_02002CF8
+ mov r0, #0x8e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02011870
+ mov r0, #9
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_0201D5E8
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02011870
+ mov r0, #0x93
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_0201D5E8
+ mov r0, #0x8d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020117BC
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DD38
+
+ thumb_func_start MOD62_0222DD78
+MOD62_0222DD78: ; 0x0222DD78
+ push {r3, lr}
+ sub sp, #0x18
+ add r3, r0, #0
+ mov r0, #0xe
+ str r0, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, _0222DDB0 ; =0x00007530
+ add r2, r3, #0
+ str r0, [sp, #0x14]
+ add r0, r3, #0
+ add r0, #0xe8
+ add r2, #0xdc
+ add r3, #0xe0
+ ldr r0, [r0]
+ ldr r2, [r2]
+ ldr r3, [r3]
+ mov r1, #3
+ bl FUN_0200C0DC
+ add sp, #0x18
+ pop {r3, pc}
+ .align 2, 0
+_0222DDB0: .word 0x00007530
+ thumb_func_end MOD62_0222DD78
+
+ thumb_func_start MOD62_0222DDB4
+MOD62_0222DDB4: ; 0x0222DDB4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl MOD62_0222DD78
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #0x4e
+ mov r3, #0xa5
+ str r1, [sp]
+ bl MOD62_0222DE00
+ mov r0, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0xac
+ mov r3, #0xa5
+ bl MOD62_0222DE00
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD62_0222DDB4
+
+ thumb_func_start MOD62_0222DDE0
+MOD62_0222DDE0: ; 0x0222DDE0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x8e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_020119D0
+ mov r0, #0x8f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020119D0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DDE0
+
+ thumb_func_start MOD62_0222DE00
+MOD62_0222DE00: ; 0x0222DE00
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ add r5, r0, #0
+ add r4, r1, #0
+ str r2, [sp, #0x10]
+ add r7, r3, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #8
+ mov r3, #0x35
+ bl FUN_0200A86C
+ add r1, r4, #5
+ str r0, [sp, #0x14]
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ add r0, sp, #0x1c
+ bl FUN_0201901C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, sp, #0x1c
+ mov r2, #0xa
+ mov r3, #2
+ bl FUN_020190EC
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0222DEF0 ; =0x000F0D02
+ ldr r2, [sp, #0x18]
+ str r0, [sp, #8]
+ add r0, sp, #0x1c
+ mov r1, #2
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, sp, #0x1c
+ mov r1, #2
+ mov r2, #0x35
+ bl FUN_02011898
+ mov r3, #9
+ lsl r3, r3, #6
+ mov r1, #0xc
+ add r6, r4, #0
+ mul r6, r1
+ add r3, r5, r3
+ mov r1, #1
+ mov r2, #2
+ add r3, r3, r6
+ bl FUN_0201D568
+ mov r0, #0x8d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x1c
+ str r0, [sp, #0x30]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ bl FUN_0200CA40
+ str r0, [sp, #0x34]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ ldr r1, _0222DEF4 ; =0x00007530
+ bl FUN_0200C334
+ str r0, [sp, #0x38]
+ mov r0, #0
+ mov r1, #0x91
+ str r0, [sp, #0x3c]
+ add r0, r5, r6
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ str r0, [sp, #0x40]
+ ldr r0, [sp, #0x10]
+ add r7, #0xc0
+ str r0, [sp, #0x44]
+ mov r0, #1
+ str r0, [sp, #0x4c]
+ mov r0, #0x28
+ str r0, [sp, #0x50]
+ mov r0, #2
+ str r0, [sp, #0x54]
+ mov r0, #0x35
+ sub r1, #0xc
+ str r0, [sp, #0x58]
+ str r7, [sp, #0x48]
+ add r5, r5, r1
+ lsl r4, r4, #2
+ add r0, sp, #0x2c
+ bl FUN_020117E8
+ str r0, [r5, r4]
+ ldr r0, [r5, r4]
+ ldr r1, [sp, #0x70]
+ bl FUN_02011AC0
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ ldr r0, [sp, #0x14]
+ bl FUN_0200A8B8
+ add r0, sp, #0x1c
+ bl FUN_02019178
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222DEF0: .word 0x000F0D02
+_0222DEF4: .word 0x00007530
+ thumb_func_end MOD62_0222DE00
+
+ thumb_func_start MOD62_0222DEF8
+MOD62_0222DEF8: ; 0x0222DEF8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ mov r6, #0
+ add r5, r0, #0
+ mov r0, #0x42
+ add r3, r1, #0
+ add r7, r6, #0
+ add r2, r6, #0
+ add r4, r6, #0
+ lsl r0, r0, #4
+_0222DF0C:
+ add r1, r5, r2
+ add r2, r2, #1
+ strb r4, [r1, r0]
+ cmp r2, #8
+ blt _0222DF0C
+ lsl r0, r3, #3
+ str r0, [sp, #4]
+ add r0, r5, #0
+ str r0, [sp]
+ add r0, #0x68
+ str r0, [sp]
+_0222DF22:
+ ldr r0, [sp]
+ add r1, r4, #0
+ bl FUN_02029CF8
+ add r1, r5, r4
+ add r1, #0x80
+ ldrb r1, [r1]
+ cmp r1, #0
+ bne _0222DF38
+ cmp r0, #1
+ bne _0222DF50
+_0222DF38:
+ ldr r0, [sp, #4]
+ add r7, r7, #1
+ cmp r7, r0
+ ble _0222DF50
+ mov r0, #0x42
+ add r1, r5, r6
+ add r2, r4, #1
+ lsl r0, r0, #4
+ add r6, r6, #1
+ strb r2, [r1, r0]
+ cmp r6, #8
+ bge _0222DF56
+_0222DF50:
+ add r4, r4, #1
+ cmp r4, #0x51
+ blt _0222DF22
+_0222DF56:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222DEF8
+
+ thumb_func_start MOD62_0222DF5C
+MOD62_0222DF5C: ; 0x0222DF5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r7, r0, #0
+ add r0, #0xdc
+ ldr r6, [r0]
+ add r0, r7, #0
+ add r0, #0xe0
+ ldr r5, [r0]
+ add r0, r7, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r4, #0
+ str r0, [sp, #0x18]
+_0222DF76:
+ mov r0, #0x42
+ add r1, r7, r4
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ bl FUN_02085FAC
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222DFF4 ; =0x000061A8
+ add r1, r5, #0
+ add r0, r4, r0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ mov r2, #0x5b
+ bl FUN_0200C00C
+ add r4, r4, #1
+ cmp r4, #8
+ blt _0222DF76
+ mov r0, #0x5b
+ str r0, [sp]
+ add r0, #0xca
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ ldr r0, _0222DFF8 ; =0x000066B4
+ mov r1, #3
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r2, r6, #0
+ add r3, r5, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222DFFC ; =0x00006A2C
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x5b
+ mov r3, #0xb4
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222E000 ; =0x00006DB8
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r6, #0
+ mov r2, #0x5b
+ mov r3, #0x58
+ bl FUN_0200C13C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222DFF4: .word 0x000061A8
+_0222DFF8: .word 0x000066B4
+_0222DFFC: .word 0x00006A2C
+_0222E000: .word 0x00006DB8
+ thumb_func_end MOD62_0222DF5C
+
+ thumb_func_start MOD62_0222E004
+MOD62_0222E004: ; 0x0222E004
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ add r5, r0, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ mov r4, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r7, [r0]
+ add r0, sp, #4
+ strh r4, [r0, #0x20]
+ strh r4, [r0, #0x22]
+ strh r4, [r0, #0x24]
+ strh r4, [r0, #0x26]
+ mov r0, #0x3c
+ str r0, [sp, #0x2c]
+ mov r0, #2
+ str r0, [sp, #0x34]
+ mov r0, #1
+ str r0, [sp, #0x50]
+ sub r0, r0, #2
+ str r0, [sp, #0x48]
+ str r0, [sp, #0x4c]
+ ldr r0, _0222E0B4 ; =0x000066B4
+ str r4, [sp, #0x54]
+ str r0, [sp, #0x3c]
+ ldr r0, _0222E0B8 ; =0x00006A2C
+ str r4, [sp, #0x30]
+ str r0, [sp, #0x40]
+ ldr r0, _0222E0BC ; =0x00006DB8
+ str r0, [sp, #0x44]
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ add r6, r5, r0
+_0222E04A:
+ ldr r0, _0222E0C0 ; =0x000061A8
+ add r1, r7, #0
+ add r0, r4, r0
+ str r0, [sp, #0x38]
+ ldr r0, [sp]
+ add r2, sp, #0x24
+ bl FUN_0200C154
+ add r4, r4, #1
+ stmia r6!, {r0}
+ cmp r4, #8
+ blt _0222E04A
+ ldr r3, _0222E0C4 ; =0x02231158
+ add r2, sp, #4
+ mov r1, #0x10
+_0222E068:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _0222E068
+ mov r7, #0xf9
+ mov r6, #0
+ add r4, sp, #4
+ lsl r7, r7, #2
+_0222E07C:
+ mov r2, #2
+ ldrsh r2, [r4, r2]
+ mov r0, #0xf9
+ mov r1, #0
+ lsl r0, r0, #2
+ sub r2, r2, #1
+ lsl r2, r2, #0x10
+ ldrsh r1, [r4, r1]
+ ldr r0, [r5, r0]
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200C5A8
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #8
+ blt _0222E07C
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E0B4: .word 0x000066B4
+_0222E0B8: .word 0x00006A2C
+_0222E0BC: .word 0x00006DB8
+_0222E0C0: .word 0x000061A8
+_0222E0C4: .word 0x02231158
+ thumb_func_end MOD62_0222E004
+
+ thumb_func_start MOD62_0222E0C8
+MOD62_0222E0C8: ; 0x0222E0C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r7, #0xf9
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222E0D4:
+ add r0, r6, #0
+ add r0, #0xe0
+ ldr r1, _0222E0F4 ; =0x000061A8
+ ldr r0, [r0]
+ add r1, r4, r1
+ bl FUN_0200C358
+ ldr r0, [r5, r7]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _0222E0D4
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E0F4: .word 0x000061A8
+ thumb_func_end MOD62_0222E0C8
+
+ thumb_func_start MOD62_0222E0F8
+MOD62_0222E0F8: ; 0x0222E0F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r1, #0
+ mov r4, #0
+ str r0, [sp]
+ str r4, [sp, #4]
+ add r5, r7, #0
+ add r6, r7, #0
+_0222E108:
+ mov r0, #0x51
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ cmp r1, #0
+ beq _0222E120
+ add r0, r6, #0
+ bl MOD08_02217F08
+ cmp r0, #1
+ bne _0222E120
+ mov r0, #1
+ str r0, [sp, #4]
+_0222E120:
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0x24
+ cmp r4, #8
+ blt _0222E108
+ mov r0, #0x12
+ lsl r0, r0, #4
+ add r0, r7, r0
+ bl MOD08_02217ECC
+ cmp r0, #1
+ bne _0222E160
+ mov r3, #0x59
+ mov r0, #1
+ lsl r3, r3, #2
+ str r0, [sp, #4]
+ ldr r0, [r7, r3]
+ sub r3, #0x44
+ ldrsh r3, [r7, r3]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020179E0
+ mov r3, #0x59
+ lsl r3, r3, #2
+ ldr r0, [r7, r3]
+ sub r3, #0x42
+ ldrsh r3, [r7, r3]
+ mov r1, #5
+ mov r2, #3
+ bl FUN_020179E0
+_0222E160:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _0222E17C
+ mov r0, #0x5b
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0
+ str r1, [r0]
+ add r0, r7, #0
+ bl FUN_02016A18
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_0222E17C:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222E0F8
+
+ thumb_func_start MOD62_0222E180
+MOD62_0222E180: ; 0x0222E180
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ str r1, [sp, #0xc]
+ mov r1, #0x17
+ str r0, [sp, #8]
+ mov r0, #0x35
+ lsl r1, r1, #4
+ str r2, [sp, #0x10]
+ bl FUN_02016998
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #8]
+ mov r1, #0x59
+ add r0, #0xe4
+ ldr r2, [r0]
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ add r4, r0, #0
+ add r5, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r1, #0x38
+ lsl r0, r0, #4
+ neg r0, r0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0xc]
+ ldr r6, [sp, #8]
+ mul r1, r0
+ ldr r0, [sp, #0x10]
+ mov r7, #0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x20]
+_0222E1C4:
+ mov r0, #0xc9
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ bne _0222E1D8
+ mov r0, #0x51
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222E22E
+_0222E1D8:
+ mov r0, #0xcb
+ lsl r0, r0, #2
+ ldr r1, [r6, r0]
+ mov r0, #0x51
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r1, sp, #0x24
+ ldr r0, [r4, r0]
+ add r1, #2
+ add r2, sp, #0x24
+ bl FUN_0200C7A0
+ add r1, sp, #0x24
+ mov r0, #0
+ ldrsh r3, [r1, r0]
+ mov r0, #2
+ ldrsh r1, [r1, r0]
+ ldr r0, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #0x20]
+ add r2, r1, r2
+ lsl r2, r2, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ asr r2, r2, #0x10
+ bl MOD08_02217E80
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD08_02217F08
+ mov r1, #0x51
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ add r0, r5, #0
+ bl MOD08_02217F08
+_0222E22E:
+ add r7, r7, #1
+ add r6, #0x10
+ add r4, r4, #4
+ add r5, #0x24
+ cmp r7, #8
+ blt _0222E1C4
+ mov r1, #0x59
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #5
+ bl FUN_02017B48
+ add r4, r0, #0
+ mov r1, #0x59
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #5
+ bl FUN_02017B54
+ add r3, r0, #0
+ ldr r0, [sp, #0xc]
+ mov r5, #0x37
+ lsl r0, r0, #4
+ add r0, r3, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp]
+ ldr r0, [sp, #0x10]
+ mov r1, #0x12
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+ lsl r3, r3, #0x10
+ ldr r2, [sp, #0xc]
+ mvn r5, r5
+ mul r5, r2
+ add r2, r4, r5
+ lsl r2, r2, #0x10
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ lsl r1, r4, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl MOD08_02217E80
+ mov r2, #0x96
+ lsl r2, r2, #2
+ ldr r0, [sp, #8]
+ add r1, r2, #0
+ add r3, r0, r2
+ ldr r0, [sp, #0x1c]
+ sub r1, #0xec
+ str r3, [r0, r1]
+ sub r2, #0xec
+ ldr r0, [r0, r2]
+ mov r3, #1
+ str r3, [r0]
+ ldr r0, _0222E2B8 ; =MOD62_0222E0F8
+ ldr r1, [sp, #0x1c]
+ lsl r2, r3, #0xc
+ bl FUN_0200CA44
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E2B8: .word MOD62_0222E0F8
+ thumb_func_end MOD62_0222E180
+
+ thumb_func_start MOD62_0222E2BC
+MOD62_0222E2BC: ; 0x0222E2BC
+ push {r3, lr}
+ sub sp, #8
+ mov r2, #2
+ mov r1, #0
+ ldr r0, _0222E2D8 ; =MOD62_0222E2DC
+ str r2, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x35
+ add r3, r1, #0
+ bl FUN_02022318
+ add sp, #8
+ pop {r3, pc}
+ nop
+_0222E2D8: .word MOD62_0222E2DC
+ thumb_func_end MOD62_0222E2BC
+
+ thumb_func_start MOD62_0222E2DC
+MOD62_0222E2DC: ; 0x0222E2DC
+ push {r3, lr}
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222E348 ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #1
+ orr r1, r2
+ strh r1, [r0]
+ add r0, #0x58
+ ldrh r2, [r0]
+ ldr r1, _0222E34C ; =0xFFFFCFFD
+ and r2, r1
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r3, [r0]
+ add r1, r1, #2
+ and r3, r2
+ mov r2, #0x10
+ orr r2, r3
+ strh r2, [r0]
+ ldrh r3, [r0]
+ ldr r2, _0222E350 ; =0x0000CFFB
+ and r3, r2
+ strh r3, [r0]
+ ldrh r3, [r0]
+ sub r2, #0x1c
+ and r3, r1
+ mov r1, #8
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r2
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _0222E354 ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _0222E358 ; =0xBFFF0000
+ ldr r0, _0222E35C ; =0x04000580
+ str r1, [r0]
+ pop {r3, pc}
+ .align 2, 0
+_0222E348: .word 0x04000008
+_0222E34C: .word 0xFFFFCFFD
+_0222E350: .word 0x0000CFFB
+_0222E354: .word 0x00007FFF
+_0222E358: .word 0xBFFF0000
+_0222E35C: .word 0x04000580
+ thumb_func_end MOD62_0222E2DC
+
+ thumb_func_start MOD62_0222E360
+MOD62_0222E360: ; 0x0222E360
+ push {r3, r4, r5, lr}
+ ldr r3, _0222E398 ; =0x021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _0222E39C ; =0x021064C0
+ mov r1, #0
+ add r4, r0, #0
+ ldr r3, [r3]
+ mov r0, #0x80
+ add r2, r1, #0
+ blx r3
+ add r5, r0, #0
+ cmp r4, #0
+ bne _0222E388
+ bl ErrorHandling
+_0222E388:
+ cmp r5, #0
+ bne _0222E390
+ bl ErrorHandling
+_0222E390:
+ bl FUN_02012CC8
+ pop {r3, r4, r5, pc}
+ nop
+_0222E398: .word 0x021064B8
+_0222E39C: .word 0x021064C0
+ thumb_func_end MOD62_0222E360
+
+ thumb_func_start MOD62_0222E3A0
+MOD62_0222E3A0: ; 0x0222E3A0
+ push {r3, lr}
+ bl FUN_020222AC
+ bl FUN_02013364
+ cmp r0, #0
+ ble _0222E3B6
+ bl FUN_020222AC
+ bl FUN_020B02C8
+_0222E3B6:
+ bl FUN_02013388
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020222B4
+ pop {r3, pc}
+ thumb_func_end MOD62_0222E3A0
+
+ thumb_func_start MOD62_0222E3C4
+MOD62_0222E3C4: ; 0x0222E3C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x40
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x58]
+ add r0, r3, #0
+ add r6, r2, #0
+ str r3, [sp, #0x1c]
+ bl MOD62_0222F89C
+ cmp r0, #3
+ bhi _0222E442
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E3E8: ; jump table
+ .short _0222E3F0 - _0222E3E8 - 2 ; case 0
+ .short _0222E402 - _0222E3E8 - 2 ; case 1
+ .short _0222E418 - _0222E3E8 - 2 ; case 2
+ .short _0222E42E - _0222E3E8 - 2 ; case 3
+_0222E3F0:
+ mov r0, #0
+ str r0, [sp, #0x24]
+ mov r0, #4
+ str r0, [sp, #0x28]
+ mov r0, #1
+ mov r5, #0xd
+ mov r4, #6
+ str r0, [sp, #0x2c]
+ b _0222E442
+_0222E402:
+ mov r0, #2
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ mov r0, #4
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ mov r5, #0xb
+ mov r4, #8
+ str r0, [sp, #0x30]
+ b _0222E442
+_0222E418:
+ mov r0, #3
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ mov r0, #4
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ mov r5, #0xb
+ mov r4, #8
+ str r0, [sp, #0x30]
+ b _0222E442
+_0222E42E:
+ mov r0, #2
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x28]
+ mov r0, #4
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ mov r5, #0xb
+ mov r4, #8
+ str r0, [sp, #0x30]
+_0222E442:
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r7, r0, #1
+ ldr r0, [sp, #0x18]
+ bl FUN_0201901C
+ lsl r0, r5, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #9
+ str r0, [sp, #4]
+ lsl r0, r4, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ mov r0, #0xa6
+ str r0, [sp, #0x10]
+ lsl r2, r6, #0x18
+ ldr r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ lsr r2, r2, #0x18
+ mov r3, #0x15
+ bl FUN_02019064
+ add r0, r7, #0
+ mov r1, #0x35
+ bl FUN_02012838
+ mov r2, #0x67
+ ldr r1, [sp, #0x1c]
+ lsl r2, r2, #2
+ str r0, [r1, r2]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #8
+ mov r3, #0x35
+ bl FUN_0200A86C
+ mov r6, #0
+ str r0, [sp, #0x20]
+ cmp r7, #0
+ ble _0222E4D0
+ add r5, sp, #0x24
+_0222E49A:
+ ldr r1, [r5]
+ ldr r0, [sp, #0x20]
+ lsl r2, r1, #3
+ ldr r1, _0222E538 ; =0x02231358
+ ldr r1, [r1, r2]
+ bl FUN_0200A914
+ ldr r2, [r5]
+ add r4, r0, #0
+ lsl r3, r2, #3
+ ldr r2, _0222E538 ; =0x02231358
+ mov r0, #0x67
+ add r2, r2, r3
+ ldr r1, [sp, #0x1c]
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r2, [r2, #4]
+ add r1, r4, #0
+ bl FUN_020128A0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r6, r6, #1
+ add r5, r5, #4
+ cmp r6, r7
+ blt _0222E49A
+_0222E4D0:
+ ldr r0, [sp, #0x20]
+ bl FUN_0200A8B8
+ mov r1, #0x67
+ ldr r0, [sp, #0x1c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #0
+ str r0, [sp, #0x34]
+ add r0, sp, #0x24
+ strb r1, [r0, #0x18]
+ ldr r1, [sp, #0x18]
+ mov r2, #0xf
+ str r1, [sp, #0x38]
+ mov r1, #1
+ strb r1, [r0, #0x19]
+ strb r7, [r0, #0x1a]
+ ldrb r3, [r0, #0x1b]
+ bic r3, r2
+ strb r3, [r0, #0x1b]
+ ldrb r3, [r0, #0x1b]
+ mov r2, #0x30
+ bic r3, r2
+ strb r3, [r0, #0x1b]
+ ldrb r3, [r0, #0x1b]
+ mov r2, #0xc0
+ bic r3, r2
+ mov r2, #0x40
+ orr r2, r3
+ strb r2, [r0, #0x1b]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x1f
+ mov r3, #0xd
+ bl FUN_0200CCA4
+ mov r0, #0x35
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x34
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r2, #0x1a
+ ldr r1, [sp, #0x1c]
+ lsl r2, r2, #4
+ str r0, [r1, r2]
+ add sp, #0x40
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E538: .word 0x02231358
+ thumb_func_end MOD62_0222E3C4
+
+ thumb_func_start MOD62_0222E53C
+MOD62_0222E53C: ; 0x0222E53C
+ push {r4, r5}
+ lsr r5, r0, #0x1f
+ lsl r4, r0, #0x1e
+ sub r4, r4, r5
+ mov r3, #0x1e
+ ror r4, r3
+ add r4, r5, r4
+ mov r3, #0x38
+ mul r3, r4
+ add r3, #0x28
+ strh r3, [r1]
+ asr r1, r0, #2
+ mov r0, #0x35
+ mul r0, r1
+ add r0, #0x1b
+ strh r0, [r2]
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD62_0222E53C
+
+ thumb_func_start MOD62_0222E560
+MOD62_0222E560: ; 0x0222E560
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r1, r0, #0
+ add r1, #0xdc
+ ldr r4, [r1]
+ add r1, r0, #0
+ add r1, #0xe0
+ add r0, #0xe8
+ ldr r5, [r1]
+ ldr r6, [r0]
+ bl FUN_0206B888
+ mov r1, #0x13
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ mov r0, #0xfa
+ lsl r0, r0, #6
+ str r0, [sp, #0x14]
+ add r0, r6, #0
+ mov r1, #2
+ add r2, r4, #0
+ add r3, r5, #0
+ bl FUN_0200C0DC
+ bl FUN_0206B894
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0222E5D0 ; =0x00004268
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C124
+ bl FUN_0206B8A0
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _0222E5D4 ; =0x00004650
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x13
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E5D0: .word 0x00004268
+_0222E5D4: .word 0x00004650
+ thumb_func_end MOD62_0222E560
+
+ thumb_func_start MOD62_0222E5D8
+MOD62_0222E5D8: ; 0x0222E5D8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r6, #0
+ ldr r0, [r1]
+ cmp r0, #0
+ ble _0222E6C6
+ str r6, [sp, #0xc]
+ add r4, r5, #0
+_0222E5EC:
+ ldr r0, [sp, #0xc]
+ add r0, r1, r0
+ ldr r7, [r0, #4]
+ add r0, r7, #0
+ bl FUN_0206B6C8
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0222E6CC ; =0x00003A98
+ add r1, r5, #0
+ add r0, r6, r0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x13
+ bl FUN_0200C978
+ mov r1, #0
+ add r0, sp, #0x18
+ strh r1, [r0]
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ strh r1, [r0, #6]
+ mov r0, #0xa
+ str r0, [sp, #0x20]
+ add r0, r1, #0
+ str r0, [sp, #0x24]
+ mov r0, #1
+ str r0, [sp, #0x28]
+ mov r0, #2
+ str r0, [sp, #0x44]
+ add r0, r1, #0
+ str r0, [sp, #0x48]
+ ldr r0, _0222E6CC ; =0x00003A98
+ add r2, sp, #0x18
+ add r0, r6, r0
+ str r0, [sp, #0x2c]
+ mov r0, #0xfa
+ lsl r0, r0, #6
+ str r0, [sp, #0x30]
+ ldr r0, _0222E6D0 ; =0x00004268
+ str r0, [sp, #0x34]
+ ldr r0, _0222E6D4 ; =0x00004650
+ str r0, [sp, #0x38]
+ sub r0, r1, #1
+ str r0, [sp, #0x3c]
+ sub r0, r1, #1
+ str r0, [sp, #0x40]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C154
+ mov r1, #0xbf
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r7, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ add r1, r0, #0
+ ldr r0, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ mov r0, #0xbf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r0, [r0]
+ bl FUN_020202DC
+ mov r0, #0xbf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C5C0
+ ldr r0, [sp, #0xc]
+ ldr r1, [r5]
+ add r0, r0, #4
+ str r0, [sp, #0xc]
+ ldr r0, [r1]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0222E5EC
+_0222E6C6:
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222E6CC: .word 0x00003A98
+_0222E6D0: .word 0x00004268
+_0222E6D4: .word 0x00004650
+ thumb_func_end MOD62_0222E5D8
+
+ thumb_func_start MOD62_0222E6D8
+MOD62_0222E6D8: ; 0x0222E6D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ mov r4, #0
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _0222E700
+ mov r7, #0xbf
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222E6EC:
+ ldr r0, [r5, r7]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, [r6]
+ add r4, r4, #1
+ ldr r0, [r0]
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0222E6EC
+_0222E700:
+ mov r5, #0
+ add r4, r6, #0
+_0222E704:
+ ldr r7, [r4, #4]
+ cmp r7, #0xff
+ beq _0222E748
+ add r1, sp, #0
+ add r0, r5, #0
+ add r1, #2
+ add r2, sp, #0
+ bl MOD62_0222E53C
+ add r2, sp, #0
+ mov r1, #2
+ ldrsh r1, [r2, r1]
+ add r3, r2, #0
+ mov r2, #0
+ ldrsh r2, [r3, r2]
+ lsl r0, r7, #2
+ add r7, r6, r0
+ mov r0, #0xbf
+ lsl r0, r0, #2
+ sub r1, #0x10
+ add r2, #0xc
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r7, r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ mov r0, #0xbf
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #1
+ bl FUN_0200C644
+_0222E748:
+ add r5, r5, #1
+ add r4, #8
+ cmp r5, #0xc
+ blt _0222E704
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222E6D8
+
+ thumb_func_start MOD62_0222E754
+MOD62_0222E754: ; 0x0222E754
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ mov r4, #0
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _0222E77A
+ mov r7, #0xbf
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222E768:
+ ldr r0, [r5, r7]
+ bl FUN_0200C5A8
+ ldr r0, [r6]
+ add r4, r4, #1
+ ldr r0, [r0]
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0222E768
+_0222E77A:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222E754
+
+ thumb_func_start MOD62_0222E77C
+MOD62_0222E77C: ; 0x0222E77C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6]
+ mov r4, #0
+ ldr r0, [r0]
+ cmp r0, #0
+ ble _0222E7A2
+ mov r7, #0xbf
+ add r5, r6, #0
+ lsl r7, r7, #2
+_0222E790:
+ ldr r0, [r5, r7]
+ bl FUN_0200C3DC
+ ldr r0, [r6]
+ add r4, r4, #1
+ ldr r0, [r0]
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0222E790
+_0222E7A2:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222E77C
+
+ thumb_func_start MOD62_0222E7A4
+MOD62_0222E7A4: ; 0x0222E7A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, r7, #0
+_0222E7AE:
+ ldr r0, [r4, #8]
+ bl MOD62_0222F870
+ mov r1, #0x9a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x99
+ ldr r1, [r4, #4]
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _0222E7DC
+ mov r0, #0x99
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0xff
+ beq _0222E7DC
+ add r0, r7, #0
+ add r1, r6, #0
+ bl MOD62_02230D38
+_0222E7DC:
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0xc
+ cmp r6, #0xc
+ blt _0222E7AE
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222E7A4
+
+ thumb_func_start MOD62_0222E7E8
+MOD62_0222E7E8: ; 0x0222E7E8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x4c
+ add r4, r0, #0
+ mov r0, #0x35
+ bl FUN_0200BB14
+ add r2, sp, #0x2c
+ ldr r5, _0222E868 ; =0x02231138
+ str r0, [r4, #8]
+ ldmia r5!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ ldr r6, _0222E86C ; =0x0223110C
+ stmia r2!, {r0, r1}
+ add r5, sp, #0x18
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r3, #0
+ str r0, [r5]
+ ldr r0, [r4, #8]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ ldr r3, _0222E870 ; =0x02231120
+ add r2, sp, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r4, #8]
+ bl FUN_0200BB34
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ mov r2, #0x80
+ bl FUN_0200BBF0
+ cmp r0, #0
+ bne _0222E852
+ bl ErrorHandling
+_0222E852:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ add r2, sp, #0
+ bl FUN_0200BF60
+ cmp r0, #0
+ bne _0222E864
+ bl ErrorHandling
+_0222E864:
+ add sp, #0x4c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222E868: .word 0x02231138
+_0222E86C: .word 0x0223110C
+_0222E870: .word 0x02231120
+ thumb_func_end MOD62_0222E7E8
+
+ thumb_func_start MOD62_0222E874
+MOD62_0222E874: ; 0x0222E874
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0xc]
+ bl FUN_0200C398
+ ldr r0, [r4, #8]
+ bl FUN_0200BD04
+ pop {r4, pc}
+ thumb_func_end MOD62_0222E874
+
+ thumb_func_start MOD62_0222E888
+MOD62_0222E888: ; 0x0222E888
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222E8EC ; =0x0000AFC8
+ add r1, r4, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ mov r2, #0x5b
+ add r3, r2, #0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r3, #0xae
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222E8F0 ; =0x0000B798
+ add r1, r4, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x5b
+ mov r3, #0xad
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222E8F4 ; =0x0000BB80
+ mov r2, #0x5b
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xdc
+ add r4, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r4]
+ mov r3, #0x51
+ bl FUN_0200C13C
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_0222E8EC: .word 0x0000AFC8
+_0222E8F0: .word 0x0000B798
+_0222E8F4: .word 0x0000BB80
+ thumb_func_end MOD62_0222E888
+
+ thumb_func_start MOD62_0222E8F8
+MOD62_0222E8F8: ; 0x0222E8F8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ ldr r4, _0222E97C ; =0x02231178
+ add r6, r0, #0
+ add r3, sp, #0
+ mov r2, #6
+_0222E904:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E904
+ mov r7, #0
+ add r4, sp, #0
+ add r5, r6, #0
+_0222E912:
+ ldr r1, [r4]
+ add r0, sp, #0
+ strh r1, [r0, #0x30]
+ ldr r1, [r4, #4]
+ add r2, sp, #0x30
+ strh r1, [r0, #0x32]
+ mov r1, #0
+ strh r1, [r0, #0x34]
+ strh r1, [r0, #0x36]
+ mov r0, #0x28
+ str r0, [sp, #0x38]
+ mov r0, #2
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ mov r0, #1
+ str r0, [sp, #0x5c]
+ add r0, r1, #0
+ str r0, [sp, #0x60]
+ ldr r0, _0222E980 ; =0x0000AFC8
+ str r0, [sp, #0x44]
+ ldr r0, _0222E984 ; =0x000066B2
+ str r0, [sp, #0x48]
+ ldr r0, _0222E988 ; =0x0000B798
+ str r0, [sp, #0x4c]
+ ldr r0, _0222E98C ; =0x0000BB80
+ str r0, [sp, #0x50]
+ sub r0, r1, #1
+ str r0, [sp, #0x54]
+ sub r0, r1, #1
+ str r0, [sp, #0x58]
+ add r0, r6, #0
+ add r1, r6, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C154
+ mov r1, #0xc5
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #8]
+ bl FUN_0200C8D0
+ add r7, r7, #1
+ add r4, #0xc
+ add r5, r5, #4
+ cmp r7, #4
+ blt _0222E912
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E97C: .word 0x02231178
+_0222E980: .word 0x0000AFC8
+_0222E984: .word 0x000066B2
+_0222E988: .word 0x0000B798
+_0222E98C: .word 0x0000BB80
+ thumb_func_end MOD62_0222E8F8
+
+ thumb_func_start MOD62_0222E990
+MOD62_0222E990: ; 0x0222E990
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0222E9B0
+ mov r6, #0xc5
+ mov r4, #0
+ lsl r6, r6, #2
+_0222E9A2:
+ ldr r0, [r5, r6]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E9A2
+_0222E9B0:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222E990
+
+ thumb_func_start MOD62_0222E9B4
+MOD62_0222E9B4: ; 0x0222E9B4
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0xc5
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ lsl r7, r7, #2
+_0222E9C0:
+ ldr r0, [r5, r7]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E9C0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222E9B4
+
+ thumb_func_start MOD62_0222E9D4
+MOD62_0222E9D4: ; 0x0222E9D4
+ push {r4, r5, r6, lr}
+ mov r6, #0xc5
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_0222E9DE:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E9DE
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222E9D4
+
+ thumb_func_start MOD62_0222E9F0
+MOD62_0222E9F0: ; 0x0222E9F0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r6, #1
+ str r6, [sp]
+ ldr r6, [sp, #0x3c]
+ add r7, r2, #0
+ str r6, [sp, #4]
+ ldr r6, _0222EA68 ; =0x00002AF8
+ add r2, r3, #0
+ add r2, r2, r6
+ str r2, [sp, #8]
+ mov r2, #0x5b
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_0200C00C
+ mov r0, #0x5b
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ mov r1, #0
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r1, [sp, #0x44]
+ add r2, r5, #0
+ str r1, [sp, #0xc]
+ ldr r1, [sp, #0x3c]
+ add r3, r4, #0
+ str r1, [sp, #0x10]
+ add r1, r6, #0
+ add r0, r0, r1
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x40]
+ add r0, r7, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ ldr r3, [sp, #0x34]
+ add r0, r6, #0
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x5b
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r3, [sp, #0x38]
+ add r0, r6, #0
+ add r0, r3, r0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r2, #0x5b
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222EA68: .word 0x00002AF8
+ thumb_func_end MOD62_0222E9F0
+
+ thumb_func_start MOD62_0222EA6C
+MOD62_0222EA6C: ; 0x0222EA6C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r5, r0, #0
+ ldr r0, _0222EC14 ; =0x0000011E
+ add r2, r5, #0
+ str r0, [sp]
+ mov r0, #0xae
+ str r0, [sp, #4]
+ mov r3, #0x52
+ str r3, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ add r2, #0xe8
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ add r3, #0xb8
+ bl MOD62_0222E9F0
+ ldr r0, _0222EC18 ; =0x00000123
+ add r2, r5, #0
+ str r0, [sp]
+ mov r0, #0xb3
+ str r0, [sp, #4]
+ mov r3, #0x57
+ str r3, [sp, #8]
+ mov r1, #1
+ str r1, [sp, #0xc]
+ mov r0, #2
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ add r2, #0xe8
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, [r2]
+ add r3, #0xbc
+ bl MOD62_0222E9F0
+ mov r6, #0
+ add r4, r5, #0
+ add r7, sp, #0x18
+_0222EAD4:
+ mov r0, #0
+ strh r0, [r7, #8]
+ strh r0, [r7, #0xa]
+ strh r0, [r7, #0xc]
+ mov r0, #0x9a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r5, #0
+ strh r0, [r7, #0xe]
+ mov r0, #0x28
+ sub r0, r0, r6
+ str r0, [sp, #0x28]
+ mov r0, #0
+ str r0, [sp, #0x2c]
+ mov r0, #1
+ str r0, [sp, #0x30]
+ mov r0, #2
+ str r0, [sp, #0x4c]
+ mov r0, #0
+ str r0, [sp, #0x50]
+ ldr r0, _0222EC1C ; =0x00002C02
+ add r1, #0xe0
+ str r0, [sp, #0x34]
+ add r0, #0x14
+ str r0, [sp, #0x38]
+ ldr r0, _0222EC20 ; =0x00002BA6
+ add r2, sp, #0x20
+ str r0, [sp, #0x3c]
+ sub r0, #0x5c
+ str r0, [sp, #0x40]
+ mov r0, #0
+ mvn r0, r0
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C154
+ mov r1, #0x9b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r1, sp, #0x1c
+ add r0, r6, #0
+ add r1, #2
+ add r2, sp, #0x1c
+ bl MOD62_0222E53C
+ mov r0, #0x9b
+ mov r1, #6
+ mov r2, #4
+ lsl r0, r0, #2
+ ldrsh r1, [r7, r1]
+ ldrsh r2, [r7, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, #0xc
+ blt _0222EAD4
+ mov r1, #0
+ add r0, sp, #0x18
+ strh r1, [r0, #8]
+ strh r1, [r0, #0xa]
+ strh r1, [r0, #0xc]
+ strh r1, [r0, #0xe]
+ mov r0, #0x14
+ str r0, [sp, #0x28]
+ mov r0, #1
+ str r1, [sp, #0x2c]
+ str r1, [sp, #0x50]
+ ldr r1, _0222EC24 ; =0x00002C0B
+ str r0, [sp, #0x30]
+ add r0, r1, #0
+ add r0, #0x10
+ str r0, [sp, #0x38]
+ add r0, r1, #0
+ mov r2, #2
+ sub r0, #0x60
+ str r1, [sp, #0x34]
+ str r0, [sp, #0x3c]
+ sub r0, r2, #3
+ sub r1, #0xbc
+ str r1, [sp, #0x40]
+ add r1, r5, #0
+ str r2, [sp, #0x4c]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, sp, #0x20
+ bl FUN_0200C154
+ mov r1, #0xbd
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xdc
+ add r1, #0xe0
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, sp, #0x20
+ bl FUN_0200C154
+ mov r1, #0xbe
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r1, #0xcc
+ ldr r0, [r5, r1]
+ add r1, sp, #0x18
+ add r1, #2
+ add r2, sp, #0x18
+ bl MOD62_0222E53C
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ add r3, sp, #0x18
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r5, r0]
+ bl FUN_0200C714
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ add r3, sp, #0x18
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r5, r0]
+ bl FUN_0200C714
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x19
+ bl FUN_0200C6C4
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EC14: .word 0x0000011E
+_0222EC18: .word 0x00000123
+_0222EC1C: .word 0x00002C02
+_0222EC20: .word 0x00002BA6
+_0222EC24: .word 0x00002C0B
+ thumb_func_end MOD62_0222EA6C
+
+ thumb_func_start MOD62_0222EC28
+MOD62_0222EC28: ; 0x0222EC28
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD62_0222E7A4
+ add r0, r5, #0
+ bl MOD62_0222E6D8
+ mov r7, #0x9a
+ lsl r7, r7, #2
+ mov r4, #0
+ add r6, r7, #4
+_0222EC3E:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _0222EC4A
+ ldr r1, [r5, r7]
+ bl FUN_0200C5C0
+_0222EC4A:
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #0xc
+ blt _0222EC3E
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222EC28
+
+ thumb_func_start MOD62_0222EC54
+MOD62_0222EC54: ; 0x0222EC54
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ lsl r6, r1, #3
+ add r0, r5, r6
+ ldr r0, [r0, #4]
+ lsl r4, r2, #3
+ str r1, [sp]
+ add r1, r5, r4
+ ldr r7, [r1, #4]
+ cmp r0, #0xff
+ beq _0222EC80
+ add r1, r2, #1
+ str r1, [sp, #0xc]
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #4]
+ mov r1, #0xa1
+ add r2, sp, #0xc
+ bl FUN_02067830
+_0222EC80:
+ cmp r7, #0xff
+ beq _0222EC9A
+ ldr r0, [sp]
+ add r2, sp, #8
+ add r0, r0, #1
+ str r0, [sp, #8]
+ ldr r1, [r5]
+ lsl r0, r7, #2
+ add r0, r1, r0
+ ldr r0, [r0, #4]
+ mov r1, #0xa1
+ bl FUN_02067830
+_0222EC9A:
+ add r2, r5, #4
+ ldr r1, [r2, r6]
+ ldr r0, [r2, r4]
+ add r7, r5, #0
+ str r0, [r2, r6]
+ str r1, [r2, r4]
+ add r7, #8
+ ldr r0, [r7, r6]
+ add r1, sp, #0x10
+ bl FUN_02029C74
+ add r0, r5, #0
+ str r0, [sp, #4]
+ add r0, #8
+ str r0, [sp, #4]
+ ldr r0, [r0, r4]
+ ldr r1, [r7, r6]
+ bl FUN_02029C74
+ ldr r1, [sp, #4]
+ add r0, sp, #0x10
+ ldr r1, [r1, r4]
+ bl FUN_02029C74
+ add r0, r5, #0
+ bl MOD62_0222EC28
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222EC54
+
+ thumb_func_start MOD62_0222ECD4
+MOD62_0222ECD4: ; 0x0222ECD4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x9b
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #2
+_0222ECE0:
+ ldr r0, [r5, r6]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #0xc
+ blt _0222ECE0
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0200C5A8
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0200C5A8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222ECD4
+
+ thumb_func_start MOD62_0222ED04
+MOD62_0222ED04: ; 0x0222ED04
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x9b
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #2
+_0222ED10:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #0xc
+ blt _0222ED10
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0200C3DC
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_0200C3DC
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222ED04
+
+ thumb_func_start MOD62_0222ED34
+MOD62_0222ED34: ; 0x0222ED34
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r2, #0
+ add r4, r1, #0
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0x35
+ str r1, [sp, #4]
+ mov r1, #1
+ add r2, r1, #0
+ mov r3, #0xf
+ add r5, r0, #0
+ bl FUN_0200CD68
+ add r0, r6, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xc0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x26
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x35
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #0xd
+ bl FUN_0200CB00
+ bl FUN_0200CAFC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xd0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x26
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #0x35
+ bl FUN_020030E8
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD62_0222ED34
+
+ thumb_func_start MOD62_0222EDBC
+MOD62_0222EDBC: ; 0x0222EDBC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r2, #0
+ add r4, r1, #0
+ lsl r1, r6, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #0x35
+ str r1, [sp, #4]
+ mov r1, #4
+ mov r2, #1
+ mov r3, #0xf
+ add r5, r0, #0
+ bl FUN_0200CD68
+ add r0, r6, #0
+ bl FUN_0200CD64
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xc0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x26
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x35
+ str r0, [sp, #4]
+ add r0, r5, #0
+ mov r1, #4
+ mov r2, #0x1f
+ mov r3, #0xd
+ bl FUN_0200CB00
+ bl FUN_0200CAFC
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xd0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0x26
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0xe0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x30
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r1, #0xe
+ mov r2, #7
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x20
+ mov r1, #0x5b
+ str r0, [sp, #4]
+ mov r0, #0xb0
+ add r2, r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, #0xcb
+ mov r3, #0x35
+ bl FUN_020030E8
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222EDBC
+
+ thumb_func_start MOD62_0222EE78
+MOD62_0222EE78: ; 0x0222EE78
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, _0222EEDC ; =0x0000FFFF
+ add r4, r0, #0
+ cmp r5, r1
+ bne _0222EE96
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_020191D0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222EE96:
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #8
+ mov r3, #0x35
+ bl FUN_0200A86C
+ add r1, r5, #0
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_020191D0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222EEDC: .word 0x0000FFFF
+ thumb_func_end MOD62_0222EE78
+
+ thumb_func_start MOD62_0222EEE0
+MOD62_0222EEE0: ; 0x0222EEE0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0201901C
+ ldr r0, [sp, #0x28]
+ lsl r2, r4, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ lsl r3, r6, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x30]
+ add r1, r5, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x34]
+ lsr r2, r2, #0x18
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ mov r1, #1
+ add r0, r5, #0
+ add r2, r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222EEE0
+
+ thumb_func_start MOD62_0222EF44
+MOD62_0222EF44: ; 0x0222EF44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0201901C
+ ldr r0, [sp, #0x28]
+ lsl r2, r4, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x2c]
+ lsl r3, r6, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x30]
+ add r1, r5, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x38]
+ lsr r2, r2, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x34]
+ lsr r3, r3, #0x18
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222EF44
+
+ thumb_func_start MOD62_0222EFA0
+MOD62_0222EFA0: ; 0x0222EFA0
+ push {r3, r4, lr}
+ sub sp, #0x14
+ mov r1, #2
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0x94
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0x88
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #3
+ bl MOD62_0222EF44
+ mov r1, #2
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #0x9c
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0x90
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #0xa
+ bl MOD62_0222EF44
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xa4
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0x98
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #3
+ bl MOD62_0222EF44
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xac
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0xa0
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #0xa
+ bl MOD62_0222EF44
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xb4
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0xa8
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #3
+ bl MOD62_0222EF44
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xbc
+ str r1, [sp, #0xc]
+ mov r0, #0xb
+ str r0, [sp, #0x10]
+ add r0, r4, #0
+ add r0, #0xe4
+ add r1, #0xb0
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #0xa
+ bl MOD62_0222EF44
+ mov r2, #0xb
+ str r2, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xc4
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ str r2, [sp, #0x10]
+ add r0, #0xe4
+ add r1, #0xb8
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #3
+ bl MOD62_0222EF44
+ mov r2, #0xb
+ str r2, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r1, #0xcc
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ str r2, [sp, #0x10]
+ add r0, #0xe4
+ add r1, #0xc0
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r2, #6
+ mov r3, #0xa
+ bl MOD62_0222EF44
+ add sp, #0x14
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222EFA0
+
+ thumb_func_start MOD62_0222F0D4
+MOD62_0222F0D4: ; 0x0222F0D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r7, r0, #0
+ add r5, r7, #0
+ add r5, #0xec
+ mov r6, #3
+ add r5, #0x30
+_0222F0E2:
+ ldr r0, _0222F160 ; =0x0000041D
+ add r1, r7, r6
+ ldrb r0, [r1, r0]
+ str r0, [sp, #0x10]
+ cmp r0, #0
+ bne _0222F0FE
+ add r0, r5, #0
+ mov r1, #0xee
+ bl FUN_02019620
+ add r0, r5, #0
+ bl FUN_020191D0
+ b _0222F152
+_0222F0FE:
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x64
+ mov r1, #0x35
+ bl FUN_020219F4
+ ldr r1, [sp, #0x10]
+ add r4, r0, #0
+ ldr r0, [r7, #0x64]
+ sub r1, r1, #1
+ bl FUN_02029CF4
+ add r1, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #3
+ mov r3, #1
+ bl FUN_02021B04
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0222F164 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #7
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_020191D0
+ add r0, r4, #0
+ bl FUN_02021A20
+_0222F152:
+ add r6, r6, #1
+ add r5, #0x10
+ cmp r6, #0xb
+ blt _0222F0E2
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222F160: .word 0x0000041D
+_0222F164: .word 0x00010200
+ thumb_func_end MOD62_0222F0D4
+
+ thumb_func_start MOD62_0222F168
+MOD62_0222F168: ; 0x0222F168
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ add r0, r1, #3
+ lsl r4, r0, #4
+ mov r0, #0x42
+ add r1, r6, r1
+ lsl r0, r0, #4
+ add r5, r6, #0
+ ldrb r7, [r1, r0]
+ add r5, #0xec
+ cmp r7, #0
+ bne _0222F194
+ add r0, r5, r4
+ mov r1, #0xee
+ bl FUN_02019620
+ add r0, r5, r4
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+_0222F194:
+ add r0, r5, r4
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x64
+ mov r1, #0x35
+ bl FUN_020219F4
+ str r0, [sp, #0x10]
+ ldr r0, [r6, #0x64]
+ sub r1, r7, #1
+ bl FUN_02029CF4
+ add r1, r0, #0
+ mov r3, #1
+ ldr r0, [sp, #0x10]
+ mov r2, #3
+ str r3, [sp]
+ bl FUN_02021B04
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0222F1E4 ; =0x00010200
+ ldr r2, [sp, #0x10]
+ str r0, [sp, #8]
+ add r0, r5, r4
+ mov r3, #7
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, r4
+ bl FUN_020191D0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F1E4: .word 0x00010200
+ thumb_func_end MOD62_0222F168
+
+ thumb_func_start MOD62_0222F1E8
+MOD62_0222F1E8: ; 0x0222F1E8
+ push {r3, r4, r5, lr}
+ add r0, #0xec
+ add r5, r0, #0
+ mov r4, #3
+ add r5, #0x30
+_0222F1F2:
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0xb
+ blt _0222F1F2
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD62_0222F1E8
+
+ thumb_func_start MOD62_0222F208
+MOD62_0222F208: ; 0x0222F208
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, _0222F26C ; =0x0000FFFF
+ add r4, r0, #0
+ cmp r5, r1
+ bne _0222F226
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_020191D0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222F226:
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0xa
+ mov r3, #0x35
+ bl FUN_0200A86C
+ add r1, r5, #0
+ add r6, r0, #0
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_020191D0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_0222F26C: .word 0x0000FFFF
+ thumb_func_end MOD62_0222F208
+
+ thumb_func_start MOD62_0222F270
+MOD62_0222F270: ; 0x0222F270
+ push {r3, lr}
+ bl FUN_0201E788
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ pop {r3, pc}
+ thumb_func_end MOD62_0222F270
+
+ thumb_func_start MOD62_0222F288
+MOD62_0222F288: ; 0x0222F288
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x35
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F288
+
+ thumb_func_start MOD62_0222F2A8
+MOD62_0222F2A8: ; 0x0222F2A8
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x35
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ thumb_func_end MOD62_0222F2A8
+
+ thumb_func_start MOD62_0222F2C8
+MOD62_0222F2C8: ; 0x0222F2C8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xb1
+ 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, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xc1
+ mov r3, #2
+ bl FUN_020068C8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r1, [sp, #8]
+ add r0, #0xe8
+ mov r1, #0x5b
+ add r2, r1, #0
+ ldr r0, [r0]
+ add r2, #0xc5
+ mov r3, #0x35
+ bl FUN_020030E8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xb2
+ 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, #0x35
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r4, #0xe4
+ add r1, r0, #0
+ ldr r2, [r4]
+ add r1, #0xc2
+ mov r3, #3
+ bl FUN_020068C8
+ add sp, #0x10
+ pop {r4, pc}
+ thumb_func_end MOD62_0222F2C8
+
+ thumb_func_start MOD62_0222F36C
+MOD62_0222F36C: ; 0x0222F36C
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xb0
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xc0
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0
+ mov r1, #0x5b
+ add r2, r1, #0
+ add r4, #0xe8
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r2, #0xc4
+ mov r3, #0x35
+ bl FUN_020030E8
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F36C
+
+ thumb_func_start MOD62_0222F3D4
+MOD62_0222F3D4: ; 0x0222F3D4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xb0
+ 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, #0x35
+ add r2, r4, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x5b
+ add r2, #0xe4
+ add r1, r0, #0
+ ldr r2, [r2]
+ add r1, #0xbf
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x40
+ str r0, [sp, #4]
+ mov r0, #0
+ mov r1, #0x5b
+ add r2, r1, #0
+ add r4, #0xe8
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ add r2, #0xc4
+ mov r3, #0x35
+ bl FUN_020030E8
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F3D4
+
+ thumb_func_start MOD62_0222F43C
+MOD62_0222F43C: ; 0x0222F43C
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r1, r0, #0
+ add r1, #0xdc
+ ldr r4, [r1]
+ add r1, r0, #0
+ add r1, #0xe0
+ ldr r5, [r1]
+ mov r1, #0x5b
+ str r1, [sp]
+ add r1, #0xc7
+ str r1, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ mov r1, #3
+ str r1, [sp, #0xc]
+ mov r2, #2
+ str r2, [sp, #0x10]
+ ldr r2, _0222F57C ; =0x000066B2
+ add r0, #0xe8
+ str r2, [sp, #0x14]
+ ldr r0, [r0]
+ add r2, r4, #0
+ add r3, r5, #0
+ bl FUN_0200C0DC
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222F580 ; =0x000062B9
+ mov r2, #0x5b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, #0xb6
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F584 ; =0x00006A29
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0xb1
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F588 ; =0x00006DB5
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x55
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222F58C ; =0x000062BA
+ mov r2, #0x5b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, #0xb7
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F590 ; =0x00006A2A
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0xb2
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F594 ; =0x00006DB6
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x56
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222F598 ; =0x000062B6
+ mov r2, #0x5b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, #0xb3
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F59C ; =0x00006A27
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0xaf
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F5A0 ; =0x00006DB3
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x53
+ bl FUN_0200C13C
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _0222F5A4 ; =0x000089C8
+ mov r2, #0x5b
+ add r3, r2, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r1, r5, #0
+ add r3, #0xb5
+ bl FUN_0200C00C
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F5A8 ; =0x00006A28
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0xb0
+ bl FUN_0200C124
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _0222F5AC ; =0x00006DB4
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ mov r2, #0x5b
+ mov r3, #0x54
+ bl FUN_0200C13C
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F57C: .word 0x000066B2
+_0222F580: .word 0x000062B9
+_0222F584: .word 0x00006A29
+_0222F588: .word 0x00006DB5
+_0222F58C: .word 0x000062BA
+_0222F590: .word 0x00006A2A
+_0222F594: .word 0x00006DB6
+_0222F598: .word 0x000062B6
+_0222F59C: .word 0x00006A27
+_0222F5A0: .word 0x00006DB3
+_0222F5A4: .word 0x000089C8
+_0222F5A8: .word 0x00006A28
+_0222F5AC: .word 0x00006DB4
+ thumb_func_end MOD62_0222F43C
+
+ thumb_func_start MOD62_0222F5B0
+MOD62_0222F5B0: ; 0x0222F5B0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xa0
+ add r7, r0, #0
+ add r0, #0xdc
+ ldr r6, [r0]
+ add r0, r7, #0
+ add r0, #0xe0
+ ldr r5, [r0]
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ add r4, r7, r0
+ mov r1, #0
+ add r2, sp, #0x6c
+ strh r1, [r2]
+ strh r1, [r2, #2]
+ strh r1, [r2, #4]
+ strh r1, [r2, #6]
+ mov r0, #0x3c
+ str r0, [sp, #0x74]
+ mov r0, #2
+ str r0, [sp, #0x7c]
+ mov r0, #1
+ str r1, [sp, #0x9c]
+ sub r1, r0, #2
+ str r0, [sp, #0x98]
+ str r0, [sp, #0x78]
+ ldr r0, _0222F6FC ; =0x000062B9
+ str r1, [sp, #0x90]
+ str r0, [sp, #0x80]
+ ldr r0, _0222F700 ; =0x000066B2
+ str r1, [sp, #0x94]
+ str r0, [sp, #0x84]
+ ldr r0, _0222F704 ; =0x00006A29
+ add r1, r5, #0
+ str r0, [sp, #0x88]
+ ldr r0, _0222F708 ; =0x00006DB5
+ str r0, [sp, #0x8c]
+ add r0, r6, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x20]
+ ldr r0, _0222F70C ; =0x000062BA
+ add r1, r5, #0
+ str r0, [sp, #0x80]
+ ldr r0, _0222F700 ; =0x000066B2
+ add r2, sp, #0x6c
+ str r0, [sp, #0x84]
+ ldr r0, _0222F710 ; =0x00006A2A
+ str r0, [sp, #0x88]
+ ldr r0, _0222F714 ; =0x00006DB6
+ str r0, [sp, #0x8c]
+ add r0, r6, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x24]
+ mov r0, #1
+ str r0, [sp, #0x98]
+ str r0, [sp, #0x78]
+ ldr r0, _0222F718 ; =0x000089C8
+ add r1, r5, #0
+ str r0, [sp, #0x80]
+ ldr r0, _0222F700 ; =0x000066B2
+ add r2, sp, #0x6c
+ str r0, [sp, #0x84]
+ ldr r0, _0222F71C ; =0x00006A28
+ str r0, [sp, #0x88]
+ ldr r0, _0222F720 ; =0x00006DB4
+ str r0, [sp, #0x8c]
+ add r0, r6, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x28]
+ mov r0, #1
+ str r0, [sp, #0x98]
+ mov r0, #0
+ str r0, [sp, #0x78]
+ ldr r0, _0222F724 ; =0x000062B6
+ add r1, r5, #0
+ str r0, [sp, #0x80]
+ ldr r0, _0222F700 ; =0x000066B2
+ add r2, sp, #0x6c
+ str r0, [sp, #0x84]
+ ldr r0, _0222F728 ; =0x00006A27
+ str r0, [sp, #0x88]
+ ldr r0, _0222F72C ; =0x00006DB3
+ str r0, [sp, #0x8c]
+ add r0, r6, #0
+ bl FUN_0200C154
+ str r0, [r4, #0x2c]
+ add r0, r6, #0
+ add r1, r5, #0
+ add r2, sp, #0x6c
+ bl FUN_0200C154
+ ldr r3, _0222F730 ; =0x022311A8
+ str r0, [r4, #0x30]
+ add r2, sp, #0x38
+ mov r1, #0x1a
+_0222F676:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _0222F676
+ ldr r3, _0222F734 ; =0x022311DC
+ add r2, sp, #4
+ mov r1, #0x1a
+_0222F688:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _0222F688
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0x1d
+ add r4, r7, #0
+ lsl r0, r0, #4
+ add r7, r7, r0
+ add r6, sp, #0x58
+ add r4, #0x20
+ add r5, sp, #0x24
+ add r7, #0x20
+_0222F6A8:
+ mov r0, #0xf9
+ mov r1, #0
+ mov r2, #2
+ lsl r0, r0, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C714
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200C5A8
+ mov r0, #0xf9
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C61C
+ mov r1, #0xf9
+ mov r2, #0
+ mov r3, #2
+ lsl r1, r1, #2
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r1, [r4, r1]
+ add r0, r7, #0
+ bl MOD62_0222DCE4
+ ldr r0, [sp]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ add r7, r7, #4
+ str r0, [sp]
+ cmp r0, #0xd
+ blt _0222F6A8
+ add sp, #0xa0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F6FC: .word 0x000062B9
+_0222F700: .word 0x000066B2
+_0222F704: .word 0x00006A29
+_0222F708: .word 0x00006DB5
+_0222F70C: .word 0x000062BA
+_0222F710: .word 0x00006A2A
+_0222F714: .word 0x00006DB6
+_0222F718: .word 0x000089C8
+_0222F71C: .word 0x00006A28
+_0222F720: .word 0x00006DB4
+_0222F724: .word 0x000062B6
+_0222F728: .word 0x00006A27
+_0222F72C: .word 0x00006DB3
+_0222F730: .word 0x022311A8
+_0222F734: .word 0x022311DC
+ thumb_func_end MOD62_0222F5B0
+
+ thumb_func_start MOD62_0222F738
+MOD62_0222F738: ; 0x0222F738
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0xf9
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+ lsl r7, r7, #2
+_0222F744:
+ ldr r0, [r5, r7]
+ add r1, r6, #0
+ bl FUN_0200C644
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xd
+ blt _0222F744
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F738
+
+ thumb_func_start MOD62_0222F758
+MOD62_0222F758: ; 0x0222F758
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_0222F758
+
+ thumb_func_start MOD62_0222F75C
+MOD62_0222F75C: ; 0x0222F75C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r6, #0xf9
+ mov r4, #8
+ add r5, #0x20
+ lsl r6, r6, #2
+_0222F768:
+ ldr r0, [r5, r6]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xd
+ blt _0222F768
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD62_0222F75C
+
+ thumb_func_start MOD62_0222F778
+MOD62_0222F778: ; 0x0222F778
+ add r1, r0, #0
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r3, _0222F78C ; =FUN_02029C74
+ lsl r0, r0, #3
+ add r0, r1, r0
+ ldr r0, [r0, #8]
+ add r1, #0x68
+ bx r3
+ .align 2, 0
+_0222F78C: .word FUN_02029C74
+ thumb_func_end MOD62_0222F778
+
+ thumb_func_start MOD62_0222F790
+MOD62_0222F790: ; 0x0222F790
+ mov r1, #0xf1
+ add r2, r0, #0
+ lsl r1, r1, #2
+ ldr r1, [r2, r1]
+ ldr r3, _0222F7A4 ; =FUN_02029C74
+ lsl r1, r1, #3
+ add r1, r2, r1
+ add r0, #0x68
+ ldr r1, [r1, #8]
+ bx r3
+ .align 2, 0
+_0222F7A4: .word FUN_02029C74
+ thumb_func_end MOD62_0222F790
+
+ thumb_func_start MOD62_0222F7A8
+MOD62_0222F7A8: ; 0x0222F7A8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0222F7AE:
+ ldr r0, [r5, #0x64]
+ add r1, r4, #0
+ bl FUN_02029CF4
+ add r1, r5, r4
+ add r1, #0x80
+ add r4, r4, #1
+ strb r0, [r1]
+ cmp r4, #0x51
+ blt _0222F7AE
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD62_0222F7A8
+
+ thumb_func_start MOD62_0222F7C4
+MOD62_0222F7C4: ; 0x0222F7C4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_0222F7CA:
+ add r2, r5, r4
+ add r2, #0x80
+ ldrb r2, [r2]
+ ldr r0, [r5, #0x64]
+ add r1, r4, #0
+ bl FUN_02029D40
+ add r4, r4, #1
+ cmp r4, #0x51
+ blt _0222F7CA
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD62_0222F7C4
+
+ thumb_func_start MOD62_0222F7E0
+MOD62_0222F7E0: ; 0x0222F7E0
+ push {r3, lr}
+ mov r0, #7
+ str r0, [sp]
+ ldr r0, _0222F804 ; =0x04000050
+ mov r1, #0
+ mov r2, #6
+ mov r3, #0xb
+ bl G2x_SetBlendAlpha_
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _0222F808 ; =0x04001050
+ mov r1, #0
+ mov r2, #0xe
+ mov r3, #7
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ .align 2, 0
+_0222F804: .word 0x04000050
+_0222F808: .word 0x04001050
+ thumb_func_end MOD62_0222F7E0
+
+ thumb_func_start MOD62_0222F80C
+MOD62_0222F80C: ; 0x0222F80C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0xf1
+ add r5, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ lsl r0, r0, #3
+ add r0, r5, r0
+ ldr r0, [r0, #4]
+ cmp r0, #0xff
+ beq _0222F832
+ ldr r2, [r5]
+ lsl r0, r0, #2
+ add r0, r2, r0
+ add r1, #0x64
+ ldr r0, [r0, #4]
+ ldr r1, [r5, r1]
+ bl FUN_02069B88
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F832:
+ ldr r1, [r5]
+ mov r6, #0
+ ldr r0, [r1]
+ cmp r0, #0
+ ble _0222F868
+ add r4, r6, #0
+_0222F83E:
+ add r0, r1, r4
+ ldr r7, [r0, #4]
+ mov r1, #0x4c
+ add r0, r7, #0
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222F85C
+ ldr r1, _0222F86C ; =0x00000428
+ add r0, r7, #0
+ ldr r1, [r5, r1]
+ bl FUN_02069B88
+ pop {r3, r4, r5, r6, r7, pc}
+_0222F85C:
+ ldr r1, [r5]
+ add r6, r6, #1
+ ldr r0, [r1]
+ add r4, r4, #4
+ cmp r6, r0
+ blt _0222F83E
+_0222F868:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F86C: .word 0x00000428
+ thumb_func_end MOD62_0222F80C
+
+ thumb_func_start MOD62_0222F870
+MOD62_0222F870: ; 0x0222F870
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #0
+ add r6, r0, #0
+ add r5, r7, #0
+ add r4, r7, #0
+_0222F87A:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_02029CC8
+ bl FUN_02029CE0
+ cmp r0, #0
+ beq _0222F88C
+ add r5, r5, #1
+_0222F88C:
+ add r4, r4, #1
+ cmp r4, #8
+ blt _0222F87A
+ cmp r5, #0
+ beq _0222F898
+ mov r7, #1
+_0222F898:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD62_0222F870
+
+ thumb_func_start MOD62_0222F89C
+MOD62_0222F89C: ; 0x0222F89C
+ mov r2, #0xc
+ mul r2, r1
+ add r1, r0, r2
+ mov r0, #0x99
+ lsl r0, r0, #2
+ ldr r2, [r1, r0]
+ add r0, r0, #4
+ ldr r0, [r1, r0]
+ cmp r2, #0xff
+ bne _0222F8B8
+ cmp r0, #0
+ bne _0222F8B8
+ mov r0, #0
+ bx lr
+_0222F8B8:
+ cmp r2, #0xff
+ bne _0222F8C4
+ cmp r0, #1
+ bne _0222F8C4
+ mov r0, #1
+ bx lr
+_0222F8C4:
+ cmp r2, #0xff
+ beq _0222F8D0
+ cmp r0, #1
+ bne _0222F8D0
+ mov r0, #2
+ bx lr
+_0222F8D0:
+ mov r0, #3
+ bx lr
+ thumb_func_end MOD62_0222F89C
+
+ thumb_func_start MOD62_0222F8D4
+MOD62_0222F8D4: ; 0x0222F8D4
+ push {r3, r4}
+ cmp r2, #0xff
+ bne _0222F8E6
+ mov r2, #0xf6
+ lsl r2, r2, #2
+ ldr r4, [r0, r2]
+ sub r2, r2, #4
+ str r4, [r0, r2]
+ b _0222F8EC
+_0222F8E6:
+ mov r4, #0xf5
+ lsl r4, r4, #2
+ str r2, [r0, r4]
+_0222F8EC:
+ mov r2, #0xf3
+ lsl r2, r2, #2
+ str r1, [r0, r2]
+ add r1, r2, #0
+ add r1, #0xc
+ str r3, [r0, r1]
+ mov r1, #0
+ add r2, #0x10
+ str r1, [r0, r2]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_0222F8D4
+
+ thumb_func_start MOD62_0222F904
+MOD62_0222F904: ; 0x0222F904
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xfc
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0xfc
+ bl FUN_02019570
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ mov r0, #0x67
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add r4, #0xfc
+ add r0, r4, #0
+ bl FUN_02019178
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222F904
+
+ thumb_func_start MOD62_0222F93C
+MOD62_0222F93C: ; 0x0222F93C
+ push {r3, lr}
+ mov r1, #1
+ mov r2, #0
+ mov r3, #3
+ bl MOD62_0222F8D4
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD62_0222F93C
+
+ thumb_func_start MOD62_0222F94C
+MOD62_0222F94C: ; 0x0222F94C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD62_0222D874
+ add r0, r4, #0
+ bl MOD62_0222DC7C
+ add r0, r4, #0
+ bl MOD62_0222EC28
+ mov r2, #0
+ add r0, r4, #0
+ mov r1, #2
+ add r3, r2, #0
+ bl MOD62_0222F8D4
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD62_0222F94C
+
+ thumb_func_start MOD62_0222F970
+MOD62_0222F970: ; 0x0222F970
+ push {r3, lr}
+ mov r1, #3
+ mov r2, #0
+ add r3, r1, #0
+ bl MOD62_0222F8D4
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD62_0222F970
+
+ thumb_func_start MOD62_0222F980
+MOD62_0222F980: ; 0x0222F980
+ push {r3, lr}
+ mov r1, #4
+ mov r2, #0
+ mov r3, #3
+ bl MOD62_0222F8D4
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD62_0222F980
+
+ thumb_func_start MOD62_0222F990
+MOD62_0222F990: ; 0x0222F990
+ push {r3, r4, r5, lr}
+ mov r1, #0xf3
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ lsl r2, r1, #2
+ ldr r1, _0222F9B0 ; =0x02231220
+ ldr r1, [r1, r2]
+ blx r1
+ add r4, #0xe0
+ add r5, r0, #0
+ ldr r0, [r4]
+ bl FUN_0200BC1C
+ add r0, r5, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F9B0: .word 0x02231220
+ thumb_func_end MOD62_0222F990
+
+ thumb_func_start MOD62_0222F9B4
+MOD62_0222F9B4: ; 0x0222F9B4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _0222FA3C ; =0x021C48B8
+ mov r1, #0x10
+ ldr r0, [r0, #0x4c]
+ tst r1, r0
+ beq _0222F9D2
+ ldr r0, [r4]
+ mov r1, #0xc
+ add r0, r0, #1
+ str r0, [r4]
+ bl _s32_div_f
+ str r1, [r4]
+ b _0222FA38
+_0222F9D2:
+ mov r1, #0x20
+ tst r1, r0
+ beq _0222F9EA
+ ldr r0, [r4]
+ cmp r0, #0
+ ble _0222F9E4
+ sub r0, r0, #1
+ str r0, [r4]
+ b _0222FA38
+_0222F9E4:
+ mov r0, #0xb
+ str r0, [r4]
+ b _0222FA38
+_0222F9EA:
+ mov r1, #0x40
+ tst r1, r0
+ beq _0222FA0E
+ ldr r1, [r4]
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ beq _0222FA0A
+ sub r0, r1, #4
+ mov r1, #0xc
+ str r0, [r4]
+ bl _s32_div_f
+ str r1, [r4]
+ b _0222FA38
+_0222FA0A:
+ mov r0, #0
+ pop {r4, pc}
+_0222FA0E:
+ mov r1, #0x80
+ tst r0, r1
+ beq _0222FA34
+ ldr r1, [r4]
+ asr r0, r1, #1
+ lsr r0, r0, #0x1e
+ add r0, r1, r0
+ asr r0, r0, #2
+ cmp r0, #2
+ beq _0222FA30
+ add r0, r1, #4
+ mov r1, #0xc
+ str r0, [r4]
+ bl _s32_div_f
+ str r1, [r4]
+ b _0222FA38
+_0222FA30:
+ mov r0, #0
+ pop {r4, pc}
+_0222FA34:
+ mov r0, #0
+ pop {r4, pc}
+_0222FA38:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_0222FA3C: .word 0x021C48B8
+ thumb_func_end MOD62_0222F9B4
+
+ thumb_func_start MOD62_0222FA40
+MOD62_0222FA40: ; 0x0222FA40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r4, #0
+ str r2, [sp]
+ cmp r1, #0
+ bne _0222FA50
+ mov r4, #1
+_0222FA50:
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ lsl r6, r1, #2
+ add r7, r5, r0
+ add r1, sp, #4
+ ldr r0, [r7, r6]
+ add r1, #2
+ add r2, sp, #4
+ bl MOD62_0222E53C
+ mov r0, #0xbd
+ add r1, r5, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r3, sp, #4
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+ ldr r0, [sp]
+ cmp r0, #1
+ bne _0222FAAE
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ add r1, r5, r0
+ ldr r0, [r7, r6]
+ lsl r4, r4, #2
+ str r0, [r1, r4]
+ ldr r0, [r1, r4]
+ add r1, sp, #4
+ add r1, #2
+ add r2, sp, #4
+ bl MOD62_0222E53C
+ mov r0, #0xbd
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r3, sp, #4
+ mov r1, #2
+ mov r2, #0
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ bl FUN_0200C714
+_0222FAAE:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222FA40
+
+ thumb_func_start MOD62_0222FAB4
+MOD62_0222FAB4: ; 0x0222FAB4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ mov r1, #0xf5
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ cmp r1, #6
+ bls _0222FAC6
+ b _0222FD4C
+_0222FAC6:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222FAD2: ; jump table
+ .short _0222FAE0 - _0222FAD2 - 2 ; case 0
+ .short _0222FBBC - _0222FAD2 - 2 ; case 1
+ .short _0222FBCC - _0222FAD2 - 2 ; case 2
+ .short _0222FBE0 - _0222FAD2 - 2 ; case 3
+ .short _0222FCA2 - _0222FAD2 - 2 ; case 4
+ .short _0222FD00 - _0222FAD2 - 2 ; case 5
+ .short _0222FD10 - _0222FAD2 - 2 ; case 6
+_0222FAE0:
+ bl MOD62_0222E560
+ add r0, r4, #0
+ bl MOD62_0222E5D8
+ add r0, r4, #0
+ bl MOD62_0222E6D8
+ add r0, r4, #0
+ bl MOD62_0222F2C8
+ add r0, r4, #0
+ bl MOD62_0222F36C
+ add r0, r4, #0
+ bl MOD62_0222F3D4
+ add r0, r4, #0
+ bl MOD62_0222E7A4
+ add r0, r4, #0
+ bl MOD62_0222EA6C
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r3, #2
+ add r1, r4, #0
+ str r3, [sp, #8]
+ mov r0, #0x28
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, #0xec
+ mov r2, #1
+ bl MOD62_0222EEE0
+ add r0, r4, #0
+ bl MOD62_0222D67C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222DB10
+ add r0, r4, #0
+ bl MOD62_0222D654
+ add r0, r4, #0
+ bl MOD62_0222F43C
+ add r0, r4, #0
+ bl MOD62_0222F5B0
+ add r0, r4, #0
+ bl MOD62_0222E888
+ add r0, r4, #0
+ bl MOD62_0222E8F8
+ add r0, r4, #0
+ bl MOD62_0222F778
+ add r0, r4, #0
+ bl MOD62_0222F7A8
+ ldr r1, _0222FD60 ; =0x00000418
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ bl MOD62_0222DEF8
+ add r0, r4, #0
+ bl MOD62_0222DF5C
+ add r0, r4, #0
+ bl MOD62_0222E004
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222F738
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222E9B4
+ add r0, r4, #0
+ bl MOD62_0222DDB4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222DDE0
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+ bl MOD62_0222F270
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FBBC:
+ bl MOD62_0222F288
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FBCC:
+ bl FUN_0200E308
+ cmp r0, #1
+ beq _0222FBD6
+ b _0222FD4C
+_0222FBD6:
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_0222FBE0:
+ bl FUN_02020AA4
+ cmp r0, #1
+ bne _0222FBF0
+ add r0, r4, #0
+ bl MOD62_0222F93C
+ b _0222FD4C
+_0222FBF0:
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r6, [r4, r0]
+ add r0, r4, r0
+ bl MOD62_0222F9B4
+ mov r1, #0xf1
+ lsl r1, r1, #2
+ ldr r5, [r4, r1]
+ cmp r0, #1
+ str r6, [r4, r1]
+ bne _0222FC4C
+ add r0, r4, #0
+ bl MOD62_0222D874
+ add r0, r4, #0
+ bl MOD62_0222DC7C
+ add r0, r4, #0
+ bl MOD62_0222EC28
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD62_0222FA40
+ add r0, r4, #0
+ bl MOD62_0222DAEC
+ add r0, r4, #0
+ bl MOD62_0222D67C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222DB10
+ add r0, r4, #0
+ bl MOD62_0222D654
+ ldr r0, _0222FD64 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222FD4C
+_0222FC4C:
+ ldr r0, _0222FD68 ; =0x021C48B8
+ ldr r2, [r0, #0x48]
+ mov r0, #1
+ tst r0, r2
+ beq _0222FC8E
+ add r0, r1, #0
+ add r0, #0x10
+ ldr r0, [r4, r0]
+ add r1, #0x10
+ add r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #8
+ bl MOD62_0222EE78
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, #0xfc
+ mov r2, #1
+ add r3, r4, #0
+ bl MOD62_0222E3C4
+ ldr r0, _0222FD64 ; =0x000005DC
+ bl FUN_020054C8
+ b _0222FD4C
+_0222FC8E:
+ mov r0, #2
+ tst r0, r2
+ beq _0222FD4C
+ mov r0, #5
+ add r1, #0x10
+ str r0, [r4, r1]
+ ldr r0, _0222FD6C ; =0x000005DD
+ bl FUN_020054C8
+ b _0222FD4C
+_0222FCA2:
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001C78
+ add r1, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r1, r0
+ beq _0222FCBE
+ add r0, r0, #1
+ cmp r1, r0
+ beq _0222FD4C
+ b _0222FCD8
+_0222FCBE:
+ add r0, r4, #0
+ bl MOD62_0222F904
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+ mov r0, #0xf5
+ mov r1, #3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FCD8:
+ cmp r1, #0
+ beq _0222FD4C
+ add r0, r4, #0
+ blx r1
+ cmp r0, #1
+ beq _0222FCEC
+ add r0, r4, #0
+ bl MOD62_0222F904
+ b _0222FD4C
+_0222FCEC:
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+ mov r0, #0xf5
+ mov r1, #3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FD00:
+ bl MOD62_0222F2A8
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _0222FD4C
+_0222FD10:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _0222FD4C
+ add r0, r4, #0
+ add r0, #0xec
+ bl FUN_02019178
+ add r0, r4, #0
+ bl MOD62_0222ED04
+ add r0, r4, #0
+ bl MOD62_0222E77C
+ add r0, r4, #0
+ bl MOD62_0222F75C
+ add r0, r4, #0
+ bl MOD62_0222E9D4
+ add r0, r4, #0
+ bl MOD62_0222E0C8
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_02085D9C
+ add sp, #0x10
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222FD4C:
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_0222FD60: .word 0x00000418
+_0222FD64: .word 0x000005DC
+_0222FD68: .word 0x021C48B8
+_0222FD6C: .word 0x000005DD
+ thumb_func_end MOD62_0222FAB4
+
+ thumb_func_start MOD62_0222FD70
+MOD62_0222FD70: ; 0x0222FD70
+ push {r3, lr}
+ cmp r1, #3
+ bhi _0222FDA2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222FD82: ; jump table
+ .short _0222FD8A - _0222FD82 - 2 ; case 0
+ .short _0222FD9A - _0222FD82 - 2 ; case 1
+ .short _0222FD92 - _0222FD82 - 2 ; case 2
+ .short _0222FD9A - _0222FD82 - 2 ; case 3
+_0222FD8A:
+ mov r1, #1
+ bl FUN_0200C61C
+ pop {r3, pc}
+_0222FD92:
+ mov r1, #2
+ bl FUN_0200C61C
+ pop {r3, pc}
+_0222FD9A:
+ mov r1, #0
+ bl FUN_0200C61C
+ pop {r3, pc}
+_0222FDA2:
+ bl ErrorHandling
+ pop {r3, pc}
+ thumb_func_end MOD62_0222FD70
+
+ thumb_func_start MOD62_0222FDA8
+MOD62_0222FDA8: ; 0x0222FDA8
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r5, #0
+ beq _0222FDCC
+ add r1, sp, #4
+ add r2, sp, #0
+ bl FUN_020119A4
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ add r0, r5, #0
+ add r1, r1, r4
+ add r2, r2, r6
+ bl FUN_020118C4
+_0222FDCC:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD62_0222FDA8
+
+ thumb_func_start MOD62_0222FDD0
+MOD62_0222FDD0: ; 0x0222FDD0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #3
+ beq _0222FDE2
+ cmp r0, #6
+ beq _0222FDFC
+ b _0222FE1C
+_0222FDE2:
+ mov r1, #0
+ ldr r0, [r4, #8]
+ sub r2, r1, #1
+ bl MOD62_0222FDA8
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_0200C61C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+_0222FDFC:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ mov r2, #2
+ bl MOD62_0222FDA8
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+_0222FE1C:
+ add r0, r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0222FDD0
+
+ thumb_func_start MOD62_0222FE24
+MOD62_0222FE24: ; 0x0222FE24
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #0x35
+ mov r1, #0xc
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #1
+ str r0, [r4]
+ mov r1, #0
+ str r6, [r4, #4]
+ add r0, r5, #0
+ sub r2, r1, #1
+ str r5, [r4, #8]
+ bl MOD62_0222FDA8
+ mov r2, #0xfa
+ ldr r0, _0222FE54 ; =MOD62_0222FDD0
+ add r1, r4, #0
+ lsl r2, r2, #2
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222FE54: .word MOD62_0222FDD0
+ thumb_func_end MOD62_0222FE24
+
+ thumb_func_start MOD62_0222FE58
+MOD62_0222FE58: ; 0x0222FE58
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ add r6, r1, #0
+ cmp r0, #0
+ bne _0222FE6C
+ b _022300A8
+_0222FE6C:
+ cmp r5, #0x14
+ bls _0222FE72
+ b _022300A4
+_0222FE72:
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222FE7E: ; jump table
+ .short _0222FFE6 - _0222FE7E - 2 ; case 0
+ .short _0222FFE6 - _0222FE7E - 2 ; case 1
+ .short _0222FFE6 - _0222FE7E - 2 ; case 2
+ .short _0222FFE6 - _0222FE7E - 2 ; case 3
+ .short _0222FFE6 - _0222FE7E - 2 ; case 4
+ .short _0222FFE6 - _0222FE7E - 2 ; case 5
+ .short _0222FFE6 - _0222FE7E - 2 ; case 6
+ .short _0222FFE6 - _0222FE7E - 2 ; case 7
+ .short _0222FEA8 - _0222FE7E - 2 ; case 8
+ .short _0222FEF2 - _0222FE7E - 2 ; case 9
+ .short _0222FF40 - _0222FE7E - 2 ; case 10
+ .short _0222FF6E - _0222FE7E - 2 ; case 11
+ .short _0222FFAC - _0222FE7E - 2 ; case 12
+ .short _02230074 - _0222FE7E - 2 ; case 13
+ .short _02230074 - _0222FE7E - 2 ; case 14
+ .short _02230074 - _0222FE7E - 2 ; case 15
+ .short _02230074 - _0222FE7E - 2 ; case 16
+ .short _02230074 - _0222FE7E - 2 ; case 17
+ .short _02230074 - _0222FE7E - 2 ; case 18
+ .short _02230074 - _0222FE7E - 2 ; case 19
+ .short _02230074 - _0222FE7E - 2 ; case 20
+_0222FEA8:
+ cmp r6, #0
+ bne _0222FEE6
+ ldr r1, _022300AC ; =0x00000418
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ ble _0222FEB6
+ b _0222FEBA
+_0222FEB6:
+ add r0, r1, #4
+ ldr r0, [r4, r0]
+_0222FEBA:
+ sub r0, r0, #1
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD62_0222E0C8
+ ldr r1, _022300AC ; =0x00000418
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ bl MOD62_0222DEF8
+ add r0, r4, #0
+ bl MOD62_0222DF5C
+ add r0, r4, #0
+ bl MOD62_0222E004
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ ldr r0, _022300B0 ; =0x000006C5
+ bl FUN_020054C8
+_0222FEE6:
+ ldr r0, _022300B4 ; =0x00000404
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FEF2:
+ cmp r6, #0
+ bne _0222FF34
+ ldr r1, _022300AC ; =0x00000418
+ ldr r0, [r4, r1]
+ add r0, r0, #1
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl _s32_div_f
+ ldr r0, _022300AC ; =0x00000418
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD62_0222E0C8
+ ldr r1, _022300AC ; =0x00000418
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ bl MOD62_0222DEF8
+ add r0, r4, #0
+ bl MOD62_0222DF5C
+ add r0, r4, #0
+ bl MOD62_0222E004
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ ldr r0, _022300B0 ; =0x000006C5
+ bl FUN_020054C8
+_0222FF34:
+ ldr r0, _022300B8 ; =0x00000408
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FF40:
+ cmp r6, #0
+ bne _0222FF62
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #5
+ beq _0222FF58
+ mov r1, #5
+ str r1, [r4, r0]
+ ldr r0, _022300BC ; =0x000005DD
+ bl FUN_020054C8
+_0222FF58:
+ ldr r0, _022300C0 ; =0x0000040C
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FE24
+_0222FF62:
+ ldr r0, _022300C0 ; =0x0000040C
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FF6E:
+ cmp r6, #0
+ bne _0222FF9E
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #6
+ beq _0222FF8E
+ mov r1, #6
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ ldr r0, _022300C4 ; =0x000005E2
+ bl FUN_020054C8
+_0222FF8E:
+ mov r0, #0x41
+ mov r1, #0x8e
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ bl MOD62_0222FE24
+_0222FF9E:
+ mov r0, #0x41
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, r6, #0
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FFAC:
+ cmp r6, #0
+ bne _0222FFDA
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #7
+ beq _0222FFCC
+ mov r1, #7
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ ldr r0, _022300BC ; =0x000005DD
+ bl FUN_020054C8
+_0222FFCC:
+ ldr r0, _022300C8 ; =0x00000414
+ mov r1, #0x8f
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ bl MOD62_0222FE24
+_0222FFDA:
+ ldr r0, _022300C8 ; =0x00000414
+ add r1, r6, #0
+ ldr r0, [r4, r0]
+ bl MOD62_0222FD70
+ pop {r4, r5, r6, pc}
+_0222FFE6:
+ cmp r6, #0
+ bne _022300A8
+ add r0, r4, #0
+ bl MOD62_0222D76C
+ cmp r0, #0
+ bne _02230006
+ ldr r0, _022300CC ; =0x000005F2
+ bl FUN_020054C8
+ add r4, #0xec
+ add r0, r4, #0
+ mov r1, #0xf
+ bl MOD62_0222EE78
+ pop {r4, r5, r6, pc}
+_02230006:
+ mov r0, #0x42
+ lsl r0, r0, #4
+ add r6, r4, r0
+ ldrb r1, [r6, r5]
+ cmp r1, #0
+ beq _0223005C
+ ldr r0, [r4, #0x64]
+ sub r1, r1, #1
+ bl FUN_02029CF4
+ cmp r0, #0
+ beq _0223005C
+ lsl r1, r5, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl MOD62_0222D6EC
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+ ldrb r0, [r6, r5]
+ bl FUN_02085FD0
+ add r1, r0, #0
+ add r0, r4, #0
+ add r0, #0xec
+ bl MOD62_0222F208
+ ldr r0, [r4]
+ mov r2, #0
+ ldrb r1, [r6, r5]
+ ldr r0, [r0, #0x20]
+ mvn r2, r2
+ bl FUN_02029D44
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222F168
+ ldr r0, _022300D0 ; =0x000005EB
+ bl FUN_020054C8
+ pop {r4, r5, r6, pc}
+_0223005C:
+ ldrb r0, [r6, r5]
+ cmp r0, #0
+ beq _022300A8
+ ldr r0, _022300CC ; =0x000005F2
+ bl FUN_020054C8
+ add r4, #0xec
+ add r0, r4, #0
+ mov r1, #0x10
+ bl MOD62_0222EE78
+ pop {r4, r5, r6, pc}
+_02230074:
+ cmp r6, #0
+ bne _022300A8
+ sub r5, #0xd
+ lsl r2, r5, #0x18
+ add r0, r4, #0
+ lsr r2, r2, #0x18
+ bl MOD62_0222DA38
+ lsl r0, r5, #4
+ add r1, r4, r0
+ mov r0, #0xca
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ bl FUN_02085FD0
+ add r4, #0xec
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD62_0222F208
+ ldr r0, _022300D0 ; =0x000005EB
+ bl FUN_020054C8
+ pop {r4, r5, r6, pc}
+_022300A4:
+ bl ErrorHandling
+_022300A8:
+ pop {r4, r5, r6, pc}
+ nop
+_022300AC: .word 0x00000418
+_022300B0: .word 0x000006C5
+_022300B4: .word 0x00000404
+_022300B8: .word 0x00000408
+_022300BC: .word 0x000005DD
+_022300C0: .word 0x0000040C
+_022300C4: .word 0x000005E2
+_022300C8: .word 0x00000414
+_022300CC: .word 0x000005F2
+_022300D0: .word 0x000005EB
+ thumb_func_end MOD62_0222FE58
+
+ thumb_func_start MOD62_022300D4
+MOD62_022300D4: ; 0x022300D4
+ mov r1, #0x96
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bx lr
+ thumb_func_end MOD62_022300D4
+
+ thumb_func_start MOD62_022300DC
+MOD62_022300DC: ; 0x022300DC
+ add r0, #0xd8
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD62_022300DC
+
+ thumb_func_start MOD62_022300E4
+MOD62_022300E4: ; 0x022300E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #4]
+ add r1, sp, #0x10
+ mov r0, #0
+ strb r0, [r1]
+ strb r0, [r1, #1]
+ strb r0, [r1, #2]
+ mov r7, #0x1d
+ lsl r7, r7, #4
+ strb r0, [r1, #3]
+ ldr r1, _022301A0 ; =0x02231260
+ ldr r2, [sp, #4]
+ add r3, r7, #1
+ add r4, r7, #2
+ add r5, r7, #3
+_02230104:
+ ldrb r6, [r1]
+ add r0, r0, #1
+ strb r6, [r2, r7]
+ ldrb r6, [r1, #1]
+ strb r6, [r2, r3]
+ ldrb r6, [r1, #2]
+ strb r6, [r2, r4]
+ ldrb r6, [r1, #3]
+ add r1, r1, #4
+ strb r6, [r2, r5]
+ add r2, r2, #4
+ cmp r0, #0xd
+ blt _02230104
+ cmp r0, #0x15
+ bge _0223017E
+ mov r3, #0x1d
+ ldr r2, [sp, #4]
+ lsl r3, r3, #4
+ add r2, r2, r3
+ lsl r4, r0, #2
+ ldr r1, [sp, #4]
+ ldr r3, [sp, #4]
+ add r1, r1, r4
+ add r2, r2, r4
+ lsl r4, r0, #4
+ add r5, sp, #0xc
+ add r3, r3, r4
+ ldrb r4, [r5, #4]
+ strb r4, [r5]
+ ldrb r4, [r5, #5]
+ strb r4, [r5, #1]
+ ldrb r4, [r5, #6]
+ strb r4, [r5, #2]
+ ldrb r4, [r5, #7]
+ strb r4, [r5, #3]
+ ldrb r4, [r5, #2]
+ ldrb r6, [r5]
+ ldrb r7, [r5, #1]
+ str r4, [sp, #8]
+ ldrb r4, [r5, #3]
+ mov ip, r4
+_02230156:
+ mov r4, #0x1d
+ lsl r4, r4, #4
+ strb r6, [r1, r4]
+ add r4, r4, #1
+ strb r7, [r1, r4]
+ ldr r5, _022301A4 ; =0x000001D2
+ ldr r4, [sp, #8]
+ add r0, r0, #1
+ strb r4, [r1, r5]
+ add r5, r5, #1
+ mov r4, ip
+ strb r4, [r1, r5]
+ mov r4, #0x26
+ lsl r4, r4, #4
+ str r2, [r3, r4]
+ add r1, r1, #4
+ add r2, r2, #4
+ add r3, #0x10
+ cmp r0, #0x15
+ blt _02230156
+_0223017E:
+ mov r0, #0x35
+ str r0, [sp]
+ mov r1, #0x1d
+ ldr r0, [sp, #4]
+ lsl r1, r1, #4
+ add r0, r0, r1
+ ldr r2, _022301A8 ; =MOD62_0222FE58
+ ldr r3, [sp, #4]
+ mov r1, #0x15
+ bl FUN_020220C4
+ mov r2, #0x73
+ ldr r1, [sp, #4]
+ lsl r2, r2, #2
+ str r0, [r1, r2]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_022301A0: .word 0x02231260
+_022301A4: .word 0x000001D2
+_022301A8: .word MOD62_0222FE58
+ thumb_func_end MOD62_022300E4
+
+ thumb_func_start MOD62_022301AC
+MOD62_022301AC: ; 0x022301AC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x34
+ ldr r1, _02230214 ; =0x00000428
+ add r5, r0, #0
+ ldr r1, [r5, r1]
+ add r0, sp, #0x24
+ mov r2, #2
+ bl FUN_02068B68
+ ldr r0, _02230214 ; =0x00000428
+ mov r1, #5
+ ldr r0, [r5, r0]
+ mov r2, #0
+ bl FUN_020671BC
+ add r4, r0, #0
+ ldr r0, _02230214 ; =0x00000428
+ mov r1, #2
+ ldr r0, [r5, r0]
+ bl FUN_02068E14
+ add r6, r0, #0
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ lsl r1, r4, #0x10
+ str r6, [r5, r0]
+ add r0, sp, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02069010
+ ldr r0, _02230218 ; =0xFFFFFD80
+ add r6, #0x30
+ str r0, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ add r0, sp, #0x10
+ str r0, [sp, #8]
+ mov r0, #0x69
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, sp, #0x24
+ mov r2, #0xc0
+ add r3, r6, #0
+ bl FUN_020073A0
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add sp, #0x34
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02230214: .word 0x00000428
+_02230218: .word 0xFFFFFD80
+ thumb_func_end MOD62_022301AC
+
+ thumb_func_start MOD62_0223021C
+MOD62_0223021C: ; 0x0223021C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, _02230268 ; =0x00000428
+ mov r1, #5
+ ldr r0, [r5, r0]
+ mov r2, #0
+ bl FUN_020671BC
+ add r4, r0, #0
+ ldr r0, _02230268 ; =0x00000428
+ ldr r0, [r5, r0]
+ bl FUN_02068854
+ add r6, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02007314
+ mov r1, #0x97
+ lsl r2, r4, #0x10
+ str r6, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ lsl r1, r1, #2
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ sub r1, #0xb4
+ ldr r1, [r5, r1]
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_02069038
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02230268: .word 0x00000428
+ thumb_func_end MOD62_0223021C
+
+ thumb_func_start MOD62_0223026C
+MOD62_0223026C: ; 0x0223026C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ mov r2, #0
+ bl FUN_02007558
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd
+ mov r2, #0
+ bl FUN_02007558
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0223026C
+
+ thumb_func_start MOD62_02230290
+MOD62_02230290: ; 0x02230290
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl FUN_0200782C
+ mov r1, #1
+ lsl r1, r1, #8
+ cmp r0, r1
+ bne _022302AC
+ mov r0, #0
+ pop {r4, pc}
+_022302AC:
+ add r1, #0xa8
+ ldr r0, [r4, r1]
+ mov r1, #0xc
+ bl FUN_0200782C
+ mov r2, #1
+ lsl r2, r2, #8
+ cmp r0, r2
+ blt _022302DE
+ add r0, r2, #0
+ add r0, #0xa8
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl FUN_02007558
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, r0]
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #0
+ pop {r4, pc}
+_022302DE:
+ add r2, #0xa8
+ ldr r0, [r4, r2]
+ mov r1, #0xc
+ mov r2, #0x20
+ bl FUN_020079E0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd
+ mov r2, #0x20
+ bl FUN_020079E0
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_02007F34
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_02230290
+
+ thumb_func_start MOD62_0223030C
+MOD62_0223030C: ; 0x0223030C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bne _02230324
+ mov r0, #0
+ pop {r4, pc}
+_02230324:
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ bl FUN_0200782C
+ cmp r0, #0
+ bgt _02230354
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xc
+ mov r2, #0
+ bl FUN_02007558
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xd
+ mov r2, #0
+ bl FUN_02007558
+ mov r0, #0
+ pop {r4, pc}
+_02230354:
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r4, r0]
+ sub r2, #0x2c
+ bl FUN_020079E0
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r4, r0]
+ sub r2, #0x2d
+ bl FUN_020079E0
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_02007F34
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_0223030C
+
+ thumb_func_start MOD62_02230388
+MOD62_02230388: ; 0x02230388
+ add r2, r1, #0
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ ldr r3, _02230398 ; =FUN_02007558
+ mov r1, #6
+ bx r3
+ nop
+_02230398: .word FUN_02007558
+ thumb_func_end MOD62_02230388
+
+ thumb_func_start MOD62_0223039C
+MOD62_0223039C: ; 0x0223039C
+ mov r1, #0x6a
+ lsl r1, r1, #2
+ ldr r3, _022303A8 ; =FUN_02007534
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_022303A8: .word FUN_02007534
+ thumb_func_end MOD62_0223039C
+
+ thumb_func_start MOD62_022303AC
+MOD62_022303AC: ; 0x022303AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xa4
+ mov r1, #0xf5
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r2, [r4, r1]
+ cmp r2, #0xa
+ bhi _0223042C
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_022303C8: ; jump table
+ .short _022303DE - _022303C8 - 2 ; case 0
+ .short _02230424 - _022303C8 - 2 ; case 1
+ .short _0223049A - _022303C8 - 2 ; case 2
+ .short _022304D2 - _022303C8 - 2 ; case 3
+ .short _02230BDA - _022303C8 - 2 ; case 4
+ .short _022304F2 - _022303C8 - 2 ; case 5
+ .short _02230846 - _022303C8 - 2 ; case 6
+ .short _022308B2 - _022303C8 - 2 ; case 7
+ .short _02230AD4 - _022303C8 - 2 ; case 8
+ .short _02230B00 - _022303C8 - 2 ; case 9
+ .short _02230B96 - _022303C8 - 2 ; case 10
+_022303DE:
+ mov r1, #0
+ bl MOD62_022300DC
+ add r0, r4, #0
+ ldr r1, _0223071C ; =0x0000FFFF
+ add r0, #0xec
+ bl MOD62_0222EE78
+ add r0, r4, #0
+ bl MOD62_0222EFA0
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #4
+ bl MOD62_0222E180
+ add r0, r4, #0
+ bl MOD62_0222F778
+ add r0, r4, #0
+ bl MOD62_0222F7A8
+ mov r0, #0x26
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230424:
+ bl MOD62_022300D4
+ cmp r0, #1
+ bne _0223042E
+_0223042C:
+ b _02230BDA
+_0223042E:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ mov r2, #3
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _0223071C ; =0x0000FFFF
+ mov r1, #4
+ bl FUN_02003210
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #7
+ mov r1, #1
+ bl FUN_020178BC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222F738
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222E9B4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222DDE0
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_0223049A:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02230598
+ mov r0, #3
+ mov r1, #1
+ bl FUN_020178BC
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ mov r2, #2
+ bl FUN_02003210
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022304D2:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02230598
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_022300DC
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022304F2:
+ add r2, r1, #0
+ add r2, #8
+ ldr r2, [r4, r2]
+ cmp r2, #7
+ bls _022304FE
+ b _0223080C
+_022304FE:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0223050A: ; jump table
+ .short _0223051A - _0223050A - 2 ; case 0
+ .short _0223058C - _0223050A - 2 ; case 1
+ .short _022305E2 - _0223050A - 2 ; case 2
+ .short _02230646 - _0223050A - 2 ; case 3
+ .short _02230692 - _0223050A - 2 ; case 4
+ .short _022306D6 - _0223050A - 2 ; case 5
+ .short _0223072C - _0223050A - 2 ; case 6
+ .short _022307A0 - _0223050A - 2 ; case 7
+_0223051A:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230720 ; =0x0000080B
+ mov r1, #2
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _0223071C ; =0x0000FFFF
+ mov r1, #8
+ bl FUN_02003210
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ mov r0, #0x3e
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD62_0222F80C
+ add r0, r4, #0
+ bl MOD62_022301AC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_02230388
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #0xd
+ bl MOD62_0222EE78
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_0223058C:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223059A
+_02230598:
+ b _02230BDA
+_0223059A:
+ mov r0, #0x35
+ str r0, [sp, #0x80]
+ mov r1, #1
+ mov r2, #0
+ mov r0, #0xff
+ str r0, [sp, #0x88]
+ add r0, r4, #0
+ str r1, [sp, #0x7c]
+ str r1, [sp, #0x94]
+ str r2, [sp, #0x84]
+ str r2, [sp, #0x90]
+ add r0, #0xdc
+ ldr r0, [r0]
+ mov r1, #0x9a
+ str r0, [sp, #0x98]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ str r0, [sp, #0x9c]
+ ldr r0, _02230724 ; =0x00000428
+ ldr r0, [r4, r0]
+ bl FUN_020671BC
+ str r0, [sp, #0x8c]
+ add r0, sp, #0x7c
+ bl MOD08_02229918
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022305E2:
+ add r2, sp, #0x58
+ mov r0, #0
+ str r0, [r2]
+ str r0, [r2, #4]
+ str r0, [r2, #8]
+ mov r0, #1
+ str r0, [sp, #0x58]
+ add r0, r1, #0
+ add r0, #0x54
+ ldr r0, [r4, r0]
+ sub r1, #0x10
+ str r0, [sp, #0x60]
+ ldr r0, [r4, r1]
+ add r1, r4, #0
+ add r0, r0, #1
+ str r0, [sp, #0x18]
+ add r0, sp, #0x64
+ bl MOD62_0222DCBC
+ ldr r0, _02230724 ; =0x00000428
+ mov r1, #0xa1
+ ldr r0, [r4, r0]
+ add r2, sp, #0x18
+ bl FUN_02067830
+ ldr r0, _02230724 ; =0x00000428
+ mov r1, #0xaa
+ ldr r0, [r4, r0]
+ add r2, sp, #0x64
+ bl FUN_02067830
+ mov r0, #0x35
+ add r1, sp, #0x58
+ bl MOD08_02228218
+ mov r1, #0x8a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl MOD08_02228524
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ mov r1, #0
+ add r0, r0, #4
+ str r1, [r4, r0]
+ b _02230BDA
+_02230646:
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02228570
+ cmp r0, #1
+ bne _02230702
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02229A00
+ cmp r0, #1
+ bne _02230702
+ add r0, r4, #0
+ bl MOD62_02230290
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_022285A4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_02230388
+ add r0, r4, #0
+ bl MOD62_0223026C
+ ldr r0, _02230728 ; =0x000006C6
+ bl FUN_020054C8
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230692:
+ bl MOD62_02230290
+ add r5, r0, #0
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_022299E8
+ cmp r0, #0
+ bne _02230702
+ cmp r5, #0
+ bne _02230702
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02229A2C
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl MOD62_0223021C
+ mov r0, #0x3e
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ sub r1, r0, #4
+ ldr r1, [r4, r1]
+ sub r0, r0, #4
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022306D6:
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_022285B4
+ cmp r0, #0
+ bne _02230702
+ mov r0, #0x97
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02014D7C
+ cmp r0, #1
+ bne _02230702
+ mov r0, #0x6a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02007390
+ cmp r0, #0
+ beq _02230704
+_02230702:
+ b _02230BDA
+_02230704:
+ mov r0, #0x8a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02228618
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+ nop
+_0223071C: .word 0x0000FFFF
+_02230720: .word 0x0000080B
+_02230724: .word 0x00000428
+_02230728: .word 0x000006C6
+_0223072C:
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #0
+ add r0, #0xc
+ str r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #0xc
+ ldr r0, [r4, r0]
+ cmp r0, #0x1e
+ blt _0223081A
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #0xc
+ str r2, [r4, r0]
+ mov r0, #0x35
+ mov r3, #1
+ str r0, [sp, #0x34]
+ mov r0, #5
+ str r0, [sp, #0x38]
+ mov r0, #0xff
+ str r0, [sp, #0x3c]
+ add r0, r4, #0
+ str r3, [sp, #0x30]
+ str r2, [sp, #0x44]
+ str r3, [sp, #0x48]
+ add r0, #0xdc
+ ldr r0, [r0]
+ add r1, #0x54
+ str r0, [sp, #0x4c]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ str r0, [sp, #0x50]
+ ldr r0, [r4, r1]
+ mov r1, #0x9a
+ bl FUN_020671BC
+ str r0, [sp, #0x40]
+ add r0, sp, #0x30
+ bl MOD08_02229918
+ mov r1, #0x8b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ bl MOD62_0222F7E0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022307A0:
+ bl MOD62_0223030C
+ add r5, r0, #0
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_022299E8
+ cmp r0, #0
+ bne _0223081A
+ cmp r5, #0
+ bne _0223081A
+ mov r0, #0xa
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B38 ; =0x0000080B
+ mov r1, #2
+ bl FUN_02003210
+ mov r0, #0xa
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B3C ; =0x0000FFFF
+ mov r1, #8
+ bl FUN_02003210
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_02230388
+ add r0, r4, #0
+ bl MOD62_0223039C
+ mov r0, #0x8b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD08_02229A2C
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_0223080C:
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223081C
+_0223081A:
+ b _02230BDA
+_0223081C:
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_022300DC
+ mov r0, #0xf7
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r1, #4
+ sub r0, #8
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, _02230B3C ; =0x0000FFFF
+ add r0, #0xec
+ bl MOD62_0222EE78
+ b _02230BDA
+_02230846:
+ add r0, #0xec
+ mov r1, #0xc
+ bl MOD62_0222EE78
+ add r0, r4, #0
+ bl MOD62_0222DC00
+ cmp r0, #1
+ bne _02230860
+ mov r0, #0x26
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+_02230860:
+ add r0, r4, #0
+ bl MOD62_0222DC7C
+ add r0, r4, #0
+ bl MOD62_0222EC28
+ ldr r0, [r4]
+ ldr r0, [r0, #0x28]
+ bl FUN_02029FC8
+ mov r1, #6
+ bl FUN_0202A170
+ mov r0, #0xf1
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r2, r4, r0
+ mov r0, #0x99
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ cmp r0, #0xff
+ beq _022308A8
+ ldr r2, [r4]
+ lsl r0, r0, #2
+ add r0, r2, r0
+ ldr r5, [r0, #4]
+ ldr r0, [r2, #0x20]
+ bl FUN_02029C8C
+ add r2, r0, #0
+ add r0, r5, #0
+ mov r1, #0xaa
+ bl FUN_02067830
+_022308A8:
+ mov r0, #0xf5
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _02230BDA
+_022308B2:
+ add r1, #8
+ ldr r1, [r4, r1]
+ cmp r1, #5
+ bhi _0223093C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022308C6: ; jump table
+ .short _022308D2 - _022308C6 - 2 ; case 0
+ .short _02230930 - _022308C6 - 2 ; case 1
+ .short _022309B4 - _022308C6 - 2 ; case 2
+ .short _022309C6 - _022308C6 - 2 ; case 3
+ .short _02230A2E - _022308C6 - 2 ; case 4
+ .short _02230A6A - _022308C6 - 2 ; case 5
+_022308D2:
+ bl MOD62_0222DC00
+ cmp r0, #0
+ bne _022308E4
+ mov r0, #0xf5
+ mov r1, #8
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _02230BDA
+_022308E4:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B38 ; =0x0000080B
+ mov r1, #2
+ bl FUN_02003210
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B3C ; =0x0000FFFF
+ mov r1, #8
+ bl FUN_02003210
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230930:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _0223093E
+_0223093C:
+ b _02230BDA
+_0223093E:
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_020038F0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r2, #4
+ add r0, r4, #0
+ str r2, [sp, #8]
+ mov r1, #0x28
+ str r1, [sp, #0xc]
+ add r0, #0xe4
+ add r1, #0xe4
+ ldr r0, [r0]
+ add r1, r4, r1
+ mov r3, #2
+ bl MOD62_0222EEE0
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ mov r1, #0x19
+ str r0, [sp, #0x1c]
+ mov r0, #4
+ str r0, [sp, #0x20]
+ mov r0, #0xd4
+ str r0, [sp, #0x24]
+ mov r0, #5
+ str r0, [sp, #0x28]
+ add r0, sp, #0x10
+ strb r1, [r0, #0x1c]
+ mov r1, #6
+ strb r1, [r0, #0x1d]
+ mov r0, #0x35
+ bl FUN_02014590
+ mov r1, #0x89
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r1, sp, #0x1c
+ bl FUN_020145C8
+ mov r0, #0x43
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0xe
+ bl MOD62_0222EE78
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_022309B4:
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_022309C6:
+ mov r0, #0x89
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201466C
+ cmp r0, #0
+ beq _02230A76
+ cmp r0, #1
+ beq _022309DC
+ cmp r0, #2
+ bne _02230A76
+_022309DC:
+ mov r1, #0x3e
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020038F0
+ mov r0, #0x89
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020146C4
+ mov r0, #0x89
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020145A8
+ mov r0, #0x43
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ mov r0, #0x43
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019570
+ mov r0, #0x43
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230A2E:
+ mov r0, #0xa
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B38 ; =0x0000080B
+ mov r1, #2
+ bl FUN_02003210
+ mov r0, #0xa
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B3C ; =0x0000FFFF
+ mov r1, #8
+ bl FUN_02003210
+ mov r0, #0xf7
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230A6A:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ beq _02230A78
+_02230A76:
+ b _02230BDA
+_02230A78:
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02230AC2
+ cmp r1, #1
+ beq _02230A8C
+ cmp r1, #2
+ beq _02230ABC
+ b _02230AC2
+_02230A8C:
+ add r0, r4, #0
+ bl MOD62_0222F790
+ add r0, r4, #0
+ bl MOD62_0222F7C4
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ add r0, r4, #0
+ bl MOD62_0222DAEC
+ add r0, r4, #0
+ bl MOD62_0222D67C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_0222DB10
+ mov r0, #0xf5
+ mov r1, #6
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _02230AC2
+_02230ABC:
+ mov r1, #4
+ sub r0, #0xc
+ str r1, [r4, r0]
+_02230AC2:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD62_022300DC
+ mov r0, #0xf7
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _02230BDA
+_02230AD4:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ mov r2, #2
+ bl FUN_02003210
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230B00:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02230BDA
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ mov r1, #1
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ add r2, r1, #0
+ bl FUN_02003210
+ mov r0, #0x10
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ add r0, r4, #0
+ str r3, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r0]
+ ldr r2, _02230B3C ; =0x0000FFFF
+ b _02230B40
+ .align 2, 0
+_02230B38: .word 0x0000080B
+_02230B3C: .word 0x0000FFFF
+_02230B40:
+ mov r1, #4
+ bl FUN_02003210
+ mov r0, #3
+ add r1, r0, #0
+ bl FUN_020178BC
+ mov r0, #7
+ mov r1, #3
+ bl FUN_020178BC
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222F738
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222E9B4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_0222DDE0
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ mov r2, #4
+ bl MOD62_0222E180
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD62_022300DC
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230BDA
+_02230B96:
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_020038E4
+ cmp r0, #0
+ bne _02230BDA
+ add r0, r4, #0
+ bl MOD62_022300D4
+ cmp r0, #1
+ beq _02230BDA
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #0xff
+ add r3, r1, #0
+ bl MOD62_0222F8D4
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+ add r0, r4, #0
+ bl MOD62_0222F1E8
+ add sp, #0xa4
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02230BDA:
+ add r0, r4, #0
+ add r0, #0xd4
+ ldr r5, [r0]
+ cmp r5, #0xff
+ bne _02230BF0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02022144
+ b _02230C98
+_02230BF0:
+ add r0, sp, #0x14
+ add r1, sp, #0x10
+ bl FUN_02020AB0
+ cmp r0, #0
+ beq _02230C3E
+ lsl r6, r5, #4
+ mov r0, #0xca
+ add r1, r4, r6
+ lsl r0, r0, #2
+ ldrb r0, [r1, r0]
+ bl FUN_02085FD0
+ add r1, r0, #0
+ add r0, r4, #0
+ add r0, #0xec
+ bl MOD62_0222F208
+ mov r0, #0xcb
+ ldr r2, [sp, #0x10]
+ add r1, r4, r6
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r1, [sp, #0x14]
+ lsl r2, r2, #0x10
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DBCC
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DC48
+ b _02230C98
+_02230C3E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DB38
+ lsl r6, r5, #4
+ mov r2, #0x33
+ add r1, r4, r6
+ lsl r2, r2, #4
+ add r7, r0, #0
+ ldr r0, [r1, r2]
+ sub r2, r2, #4
+ ldr r1, [r1, r2]
+ mov r2, #0
+ bl MOD62_0222D5F8
+ cmp r7, #0
+ bne _02230C80
+ mov r1, #0xca
+ ldr r0, [r4]
+ add r2, r4, r6
+ lsl r1, r1, #2
+ ldrb r1, [r2, r1]
+ ldr r0, [r0, #0x20]
+ mov r2, #1
+ bl FUN_02029D84
+ add r0, r4, #0
+ bl MOD62_0222F0D4
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD62_0222DB78
+_02230C80:
+ ldr r0, _02230CB8 ; =0x000005EA
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #0xff
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _02230CBC ; =0x0000FFFF
+ add r0, #0xec
+ bl MOD62_0222F208
+_02230C98:
+ add r0, r4, #0
+ bl MOD62_0222F758
+ add r0, r4, #0
+ bl MOD62_0222E990
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ add sp, #0xa4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02230CB8: .word 0x000005EA
+_02230CBC: .word 0x0000FFFF
+ thumb_func_end MOD62_022303AC
+
+ thumb_func_start MOD62_02230CC0
+MOD62_02230CC0: ; 0x02230CC0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _02230CD8
+ cmp r1, #1
+ beq _02230CDC
+ cmp r1, #2
+ beq _02230CEC
+ b _02230D26
+_02230CD8:
+ add r1, r1, #1
+ str r1, [r4, r0]
+_02230CDC:
+ bl MOD62_0222F2A8
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230D26
+_02230CEC:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _02230D26
+ add r0, r4, #0
+ add r0, #0xec
+ bl FUN_02019178
+ add r0, r4, #0
+ bl MOD62_0222ED04
+ add r0, r4, #0
+ bl MOD62_0222E77C
+ add r0, r4, #0
+ bl MOD62_0222F75C
+ add r0, r4, #0
+ bl MOD62_0222E9D4
+ add r0, r4, #0
+ bl MOD62_0222E0C8
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02085D9C
+ mov r0, #0
+ pop {r4, pc}
+_02230D26:
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD62_02230CC0
+
+ thumb_func_start MOD62_02230D38
+MOD62_02230D38: ; 0x02230D38
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r5, #4
+ lsl r6, r1, #3
+ str r0, [sp]
+ ldr r0, [r4, r6]
+ cmp r0, #0xff
+ beq _02230D5C
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r0, [r0, #4]
+ mov r1, #0xa1
+ add r2, sp, #0
+ bl FUN_02067830
+_02230D5C:
+ mov r0, #0xff
+ str r0, [r4, r6]
+ add r0, r5, #0
+ bl MOD62_0222EC28
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD62_02230D38
+
+ thumb_func_start MOD62_02230D6C
+MOD62_02230D6C: ; 0x02230D6C
+ push {r4, lr}
+ mov r2, #0xf5
+ add r4, r0, #0
+ lsl r2, r2, #2
+ ldr r1, [r4, r2]
+ cmp r1, #0
+ beq _02230D84
+ cmp r1, #1
+ beq _02230DA2
+ cmp r1, #2
+ beq _02230DB2
+ b _02230DC6
+_02230D84:
+ sub r2, #0x10
+ ldr r1, [r4, r2]
+ bl MOD62_02230D38
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #9
+ bl MOD62_0222EE78
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ b _02230DC6
+_02230DA2:
+ ldr r0, _02230DD8 ; =0x021C48B8
+ ldr r3, [r0, #0x48]
+ ldr r0, _02230DDC ; =0x00000CF3
+ tst r0, r3
+ beq _02230DC6
+ add r0, r1, #1
+ str r0, [r4, r2]
+ b _02230DC6
+_02230DB2:
+ mov r1, #0
+ mov r2, #0xff
+ add r3, r1, #0
+ bl MOD62_0222F8D4
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+_02230DC6:
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ pop {r4, pc}
+ nop
+_02230DD8: .word 0x021C48B8
+_02230DDC: .word 0x00000CF3
+ thumb_func_end MOD62_02230D6C
+
+ thumb_func_start MOD62_02230DE0
+MOD62_02230DE0: ; 0x02230DE0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #3
+ bls _02230DF0
+ b _02230F18
+_02230DF0:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02230DFC: ; jump table
+ .short _02230E04 - _02230DFC - 2 ; case 0
+ .short _02230E46 - _02230DFC - 2 ; case 1
+ .short _02230ED0 - _02230DFC - 2 ; case 2
+ .short _02230EE0 - _02230DFC - 2 ; case 3
+_02230E04:
+ sub r0, #0xe0
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl FUN_0200C6C4
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #0xa
+ bl MOD62_0222EE78
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #0xf5
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+_02230E46:
+ mov r0, #0xf2
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD62_0222F9B4
+ cmp r0, #1
+ bne _02230E66
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD62_0222FA40
+ ldr r0, _02230F28 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230F18
+_02230E66:
+ ldr r0, _02230F2C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _02230EA4
+ mov r2, #0xf1
+ lsl r2, r2, #2
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ ldr r2, [r4, r2]
+ add r0, r4, #0
+ bl MOD62_0222EC54
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD62_0222FA40
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #0xb
+ bl MOD62_0222EE78
+ mov r0, #0xf5
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _02230F28 ; =0x000005DC
+ bl FUN_020054C8
+ b _02230F18
+_02230EA4:
+ mov r0, #2
+ tst r0, r1
+ beq _02230F18
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD62_0222FA40
+ mov r0, #0xf5
+ mov r1, #3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _02230F30 ; =0x000005DD
+ bl FUN_020054C8
+ b _02230F18
+_02230ED0:
+ ldr r1, _02230F2C ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ ldr r1, _02230F34 ; =0x00000CF3
+ tst r1, r2
+ beq _02230F18
+ mov r1, #3
+ str r1, [r4, r0]
+ b _02230F18
+_02230EE0:
+ sub r0, #0xe0
+ ldr r0, [r4, r0]
+ mov r1, #0x14
+ bl FUN_0200C6C4
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x19
+ bl FUN_0200C6C4
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #0xff
+ add r3, r1, #0
+ bl MOD62_0222F8D4
+ mov r0, #0xbd
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200C5C0
+ add r0, r4, #0
+ add r0, #0xec
+ mov r1, #7
+ bl MOD62_0222EE78
+_02230F18:
+ add r0, r4, #0
+ bl MOD62_0222E754
+ add r0, r4, #0
+ bl MOD62_0222ECD4
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_02230F28: .word 0x000005DC
+_02230F2C: .word 0x021C48B8
+_02230F30: .word 0x000005DD
+_02230F34: .word 0x00000CF3
+ thumb_func_end MOD62_02230DE0
+
+ thumb_func_start MOD62_02230F38
+MOD62_02230F38: ; 0x02230F38
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD62_02230F38
+
+ thumb_func_start MOD62_02230F3C
+MOD62_02230F3C: ; 0x02230F3C
+ 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, _02230F68 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _02230F6C ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ pop {r3, pc}
+ .align 2, 0
+_02230F68: .word 0xFFFFE0FF
+_02230F6C: .word 0x04001000
+ thumb_func_end MOD62_02230F3C
+
+ thumb_func_start MOD62_02230F70
+MOD62_02230F70: ; 0x02230F70
+ push {r3, lr}
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ pop {r3, pc}
+ thumb_func_end MOD62_02230F70
+
+ thumb_func_start MOD62_02230F80
+MOD62_02230F80: ; 0x02230F80
+ push {r4, r5, lr}
+ sub sp, #0xfc
+ add r4, r0, #0
+ bl FUN_0201E6D8
+ ldr r5, _022310B8 ; =0x02231238
+ add r3, sp, #0x10
+ mov r2, #5
+_02230F90:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02230F90
+ add r0, sp, #0x10
+ bl FUN_0201E66C
+ mov r1, #6
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x18
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x62
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ mov r1, #0x19
+ mov r2, #1
+ mov r0, #0
+ lsl r1, r1, #0x16
+ lsl r2, r2, #0x12
+ bl MIi_CpuClear32
+ mov r1, #0x66
+ mov r2, #2
+ mov r0, #0
+ lsl r1, r1, #0x14
+ lsl r2, r2, #0x10
+ bl MIi_CpuClear32
+ ldr r5, _022310BC ; =0x02231210
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _022310C0 ; =0x02231294
+ add r3, sp, #0xa8
+ mov r2, #0xa
+_02230FF0:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02230FF0
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ add r2, sp, #0xa8
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ add r2, sp, #0xc4
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #3
+ add r2, sp, #0xe0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ ldr r1, _022310C4 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r2, r0
+ strh r2, [r1]
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r5, _022310C8 ; =0x022312E8
+ add r3, sp, #0x38
+ mov r2, #0xe
+_02231052:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _02231052
+ add r0, r4, #0
+ mov r1, #4
+ add r2, sp, #0x38
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #5
+ add r2, sp, #0x54
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #6
+ add r2, sp, #0x70
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #7
+ add r2, sp, #0x8c
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #6
+ bl FUN_02018744
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_02018744
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ add sp, #0xfc
+ pop {r4, r5, pc}
+ nop
+_022310B8: .word 0x02231238
+_022310BC: .word 0x02231210
+_022310C0: .word 0x02231294
+_022310C4: .word 0x04000008
+_022310C8: .word 0x022312E8
+ thumb_func_end MOD62_02230F80
+
+ thumb_func_start MOD62_022310CC
+MOD62_022310CC: ; 0x022310CC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x69
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ bl FUN_0200372C
+ add r4, #0xe4
+ ldr r0, [r4]
+ bl FUN_0201AB60
+ ldr r3, _02231104 ; =0x027E0000
+ ldr r1, _02231108 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_02231104: .word 0x027E0000
+_02231108: .word 0x00003FF8
+ thumb_func_end MOD62_022310CC
+
+ .section .rodata
+ ; 0x0223110C
+ .incbin "baserom.nds", 0x2B274C, 0x274
+
+ .section .sinit
+ .word MOD62_0222D5C0
diff --git a/arm9/modules/63/asm/module_63.s b/arm9/modules/63/asm/module_63.s
new file mode 100644
index 00000000..d55732ba
--- /dev/null
+++ b/arm9/modules/63/asm/module_63.s
@@ -0,0 +1,8588 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD63_021D74E0
+MOD63_021D74E0: ; 0x021D74E0
+ push {r4, lr}
+ ldr r1, _021D7584 ; =0x00007FFF
+ add r4, r0, #0
+ mov r0, #0
+ bl FUN_0200E3A0
+ ldr r1, _021D7584 ; =0x00007FFF
+ mov r0, #1
+ bl FUN_0200E3A0
+ ldr r1, _021D7588 ; =0x04001050
+ mov r0, #0
+ strh r0, [r1]
+ ldr r1, _021D758C ; =0x04000050
+ strh r0, [r1]
+ 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, _021D7590 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7594 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r2, #1
+ mov r0, #3
+ mov r1, #0x1e
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ mov r1, #0x79
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x1e
+ bl FUN_02006268
+ mov r2, #0x79
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x1e
+ str r0, [r4]
+ mov r0, #0x1d
+ mov r1, #0
+ lsl r0, r0, #4
+ strh r1, [r4, r0]
+ add r0, #0x10
+ str r1, [r4, r0]
+ bl MOD63_021D7838
+ add r0, r4, #0
+ bl MOD63_021D7A48
+ add r0, r4, #0
+ bl MOD63_021D7880
+ ldr r0, _021D7598 ; =MOD63_021D782C
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7584: .word 0x00007FFF
+_021D7588: .word 0x04001050
+_021D758C: .word 0x04000050
+_021D7590: .word 0xFFFFE0FF
+_021D7594: .word 0x04001000
+_021D7598: .word MOD63_021D782C
+ thumb_func_end MOD63_021D74E0
+
+ thumb_func_start MOD63_021D759C
+MOD63_021D759C: ; 0x021D759C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #6
+ bhi _021D7614
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D75BA: ; jump table
+ .short _021D75C8 - _021D75BA - 2 ; case 0
+ .short _021D7604 - _021D75BA - 2 ; case 1
+ .short _021D7622 - _021D75BA - 2 ; case 2
+ .short _021D7638 - _021D75BA - 2 ; case 3
+ .short _021D76FA - _021D75BA - 2 ; case 4
+ .short _021D773C - _021D75BA - 2 ; case 5
+ .short _021D777E - _021D75BA - 2 ; case 6
+_021D75C8:
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D7C18
+ cmp r0, #1
+ bne _021D7614
+ add r0, r4, #0
+ ldr r1, _021D77A4 ; =0x021C48B8
+ mov r2, #0
+ add r0, #0xb4
+ str r2, [r0]
+ ldr r0, [r1, #0x6c]
+ cmp r0, #0
+ bne _021D75F6
+ mov r0, #0x75
+ mov r1, #0x1e
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #2
+ str r0, [r5]
+ b _021D779C
+_021D75F6:
+ mov r0, #0x75
+ lsl r0, r0, #2
+ str r2, [r4, r0]
+ str r2, [r1, #0x6c]
+ mov r0, #1
+ str r0, [r5]
+ b _021D779C
+_021D7604:
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D7D74
+ cmp r0, #1
+ beq _021D7616
+_021D7614:
+ b _021D779C
+_021D7616:
+ mov r0, #0
+ add r4, #0xb4
+ str r0, [r4]
+ mov r0, #2
+ str r0, [r5]
+ b _021D779C
+_021D7622:
+ mov r0, #0
+ bl FUN_0200415C
+ mov r0, #1
+ ldr r1, _021D77A8 ; =0x00000495
+ add r2, r0, #0
+ bl FUN_0200433C
+ mov r0, #3
+ str r0, [r5]
+ b _021D779C
+_021D7638:
+ mov r0, #0x75
+ lsl r0, r0, #2
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D765A
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ mov r1, #0
+ sub r0, #0x4c
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8260
+ b _021D779C
+_021D765A:
+ mov r1, #1
+ sub r0, #0x4c
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8260
+ mov r1, #0x1e
+ lsl r1, r1, #4
+ ldr r0, [r4, r1]
+ ldr r2, _021D77A4 ; =0x021C48B8
+ add r0, r0, #1
+ str r0, [r4, r1]
+ ldr r3, [r2, #0x48]
+ mov r0, #1
+ add r6, r3, #0
+ and r6, r0
+ cmp r6, #1
+ beq _021D768C
+ mov r6, #8
+ and r3, r6
+ cmp r3, #8
+ bne _021D76A8
+_021D768C:
+ mov r0, #0x1d
+ mov r1, #1
+ lsl r0, r0, #4
+ strh r1, [r4, r0]
+ mov r0, #0
+ mov r1, #0x3c
+ bl FUN_020053CC
+ ldr r0, _021D77AC ; =0x000005F4
+ bl FUN_020054C8
+ mov r0, #4
+ str r0, [r5]
+ b _021D779C
+_021D76A8:
+ ldr r6, [r2, #0x44]
+ mov r3, #0x46
+ and r3, r6
+ cmp r3, #0x46
+ bne _021D76D4
+ mov r2, #2
+ sub r1, #0x10
+ strh r2, [r4, r1]
+ mov r1, #6
+ str r1, [sp]
+ 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, #6
+ str r0, [r5]
+ b _021D779C
+_021D76D4:
+ mov r3, #0xe1
+ ldr r6, [r4, r1]
+ lsl r3, r3, #2
+ cmp r6, r3
+ ble _021D779C
+ mov r3, #3
+ sub r1, #0x10
+ strh r3, [r4, r1]
+ mov r1, #0
+ str r0, [r2, #0x6c]
+ bl FUN_0201E74C
+ mov r0, #0
+ mov r1, #0x3c
+ bl FUN_020053CC
+ mov r0, #5
+ str r0, [r5]
+ b _021D779C
+_021D76FA:
+ mov r0, #0x62
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8260
+ bl FUN_02005404
+ cmp r0, #0
+ bne _021D779C
+ ldr r0, _021D77A8 ; =0x00000495
+ mov r1, #0
+ bl FUN_02005350
+ 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, #6
+ str r0, [r5]
+ b _021D779C
+_021D773C:
+ mov r0, #0x62
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8260
+ bl FUN_02005404
+ cmp r0, #0
+ bne _021D779C
+ ldr r0, _021D77A8 ; =0x00000495
+ mov r1, #0
+ bl FUN_02005350
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r3, _021D77B0 ; =0x00007FFF
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+ mov r0, #6
+ str r0, [r5]
+ b _021D779C
+_021D777E:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D779C
+ add r0, r4, #0
+ ldr r1, [r4, #4]
+ ldr r2, [r4]
+ add r0, #0xb4
+ bl MOD63_021D8360
+ cmp r0, #1
+ bne _021D779C
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D779C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D77A4: .word 0x021C48B8
+_021D77A8: .word 0x00000495
+_021D77AC: .word 0x000005F4
+_021D77B0: .word 0x00007FFF
+ thumb_func_end MOD63_021D759C
+
+ thumb_func_start MOD63_021D77B4
+MOD63_021D77B4: ; 0x021D77B4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ bl FUN_02006278
+ add r6, r0, #0
+ mov r0, #0x1d
+ lsl r0, r0, #4
+ ldrh r5, [r6, r0]
+ mov r0, #0
+ add r1, r0, #0
+ ldr r4, [r6]
+ bl FUN_02015F10
+ add r0, r6, #0
+ bl MOD63_021D78B0
+ add r0, r6, #0
+ bl MOD63_021D7B9C
+ add r0, r7, #0
+ bl FUN_0200627C
+ add r0, r4, #0
+ bl FUN_020168D0
+ cmp r5, #1
+ beq _021D77F2
+ cmp r5, #2
+ beq _021D77FE
+ cmp r5, #3
+ beq _021D780A
+_021D77F2:
+ mov r0, #0
+ ldr r1, _021D781C ; =0x020FF3D4
+ mvn r0, r0
+ bl FUN_02000E7C
+ b _021D7818
+_021D77FE:
+ mov r0, #0
+ ldr r1, _021D7820 ; =0x020FF368
+ mvn r0, r0
+ bl FUN_02000E7C
+ b _021D7818
+_021D780A:
+ mov r0, #0
+ bl FUN_0200415C
+ ldr r0, _021D7824 ; =SDK_OVERLAY_MODULE_63_ID
+ ldr r1, _021D7828 ; =0x021DBE18
+ bl FUN_02000E7C
+_021D7818:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D781C: .word 0x020FF3D4
+_021D7820: .word 0x020FF368
+_021D7824: .word SDK_OVERLAY_MODULE_63_ID
+_021D7828: .word 0x021DBE18
+ thumb_func_end MOD63_021D77B4
+
+ thumb_func_start MOD63_021D782C
+MOD63_021D782C: ; 0x021D782C
+ ldr r3, _021D7834 ; =FUN_0201AB60
+ ldr r0, [r0, #4]
+ bx r3
+ nop
+_021D7834: .word FUN_0201AB60
+ thumb_func_end MOD63_021D782C
+
+ thumb_func_start MOD63_021D7838
+MOD63_021D7838: ; 0x021D7838
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7854 ; =0x021DBA90
+ add r3, sp, #0
+ mov r2, #5
+_021D7842:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7842
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7854: .word 0x021DBA90
+ thumb_func_end MOD63_021D7838
+
+ thumb_func_start MOD63_021D7858
+MOD63_021D7858: ; 0x021D7858
+ ldr r0, _021D787C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ and r0, r1
+ cmp r0, #1
+ beq _021D7874
+ mov r0, #8
+ and r0, r1
+ cmp r0, #8
+ beq _021D7874
+ mov r0, #4
+ and r0, r1
+ cmp r0, #4
+ bne _021D7878
+_021D7874:
+ mov r0, #1
+ bx lr
+_021D7878:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021D787C: .word 0x021C48B8
+ thumb_func_end MOD63_021D7858
+
+ thumb_func_start MOD63_021D7880
+MOD63_021D7880: ; 0x021D7880
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #4
+ mov r1, #0
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #1
+ add r3, r1, #0
+ bl FUN_02022318
+ str r0, [r4, #8]
+ ldr r1, _021D78AC ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strh r0, [r1]
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_021D78AC: .word 0x04000008
+ thumb_func_end MOD63_021D7880
+
+ thumb_func_start MOD63_021D78B0
+MOD63_021D78B0: ; 0x021D78B0
+ ldr r3, _021D78B8 ; =FUN_020223BC
+ ldr r0, [r0, #8]
+ bx r3
+ nop
+_021D78B8: .word FUN_020223BC
+ thumb_func_end MOD63_021D78B0
+
+ thumb_func_start MOD63_021D78BC
+MOD63_021D78BC: ; 0x021D78BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r4, r3, #0
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ add r0, #0x68
+ add r1, r4, #0
+ mov r2, #4
+ bl FUN_02016B20
+ mov r0, #0x30
+ add r1, r6, #0
+ add r2, r4, #0
+ bl LoadFromNarc_2
+ str r0, [r5, #0x5c]
+ mov r0, #0x30
+ add r1, r7, #0
+ add r2, r4, #0
+ bl LoadFromNarc_2
+ add r1, r5, #0
+ add r2, r5, #0
+ str r0, [r5, #0x60]
+ add r0, r5, #4
+ add r1, #0x58
+ add r2, #0x5c
+ bl FUN_0201B234
+ ldr r0, [r5, #0x60]
+ mov r1, #0
+ bl FUN_020BC4C8
+ add r4, r0, #0
+ add r0, r5, #0
+ ldr r2, [r5, #0x58]
+ add r0, #0x68
+ add r1, r4, #0
+ bl FUN_020BB8D0
+ str r0, [r5, #0x64]
+ ldr r0, [r5, #0x5c]
+ bl FUN_020BC0FC
+ add r3, r0, #0
+ ldr r0, [r5, #0x64]
+ ldr r2, [r5, #0x58]
+ add r1, r4, #0
+ bl FUN_020B8110
+ ldr r1, [r5, #0x64]
+ add r0, r5, #4
+ bl FUN_020B7EFC
+ add r4, r5, #0
+ add r6, sp, #0xc
+ mov r3, #0
+ str r3, [r6]
+ add r2, sp, #0
+ str r3, [r6, #4]
+ str r3, [r2]
+ str r3, [r6, #8]
+ str r3, [r2, #4]
+ ldmia r6!, {r0, r1}
+ str r3, [r2, #8]
+ add r4, #0x78
+ stmia r4!, {r0, r1}
+ ldr r0, [r6]
+ ldr r6, _021D796C ; =0x021DB9A8
+ str r0, [r4]
+ add r4, r5, #0
+ ldmia r6!, {r0, r1}
+ add r4, #0x84
+ stmia r4!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r4]
+ add r4, r5, #0
+ ldmia r2!, {r0, r1}
+ add r4, #0x90
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ add r5, #0xa0
+ str r0, [r4]
+ str r3, [r5]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D796C: .word 0x021DB9A8
+ thumb_func_end MOD63_021D78BC
+
+ thumb_func_start MOD63_021D7970
+MOD63_021D7970: ; 0x021D7970
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x64]
+ add r0, #0x68
+ bl thunk_FUN_020ae84c
+ ldr r0, [r4, #0x60]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x5c]
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D7970
+
+ thumb_func_start MOD63_021D798C
+MOD63_021D798C: ; 0x021D798C
+ push {r4, r5, lr}
+ sub sp, #0x24
+ ldr r5, _021D7A44 ; =0x021DBA6C
+ add r4, r0, #0
+ add r3, sp, #0
+ mov r2, #4
+_021D7998:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7998
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D7A3E
+ cmp r0, #1
+ beq _021D79B6
+ cmp r0, #2
+ beq _021D79CA
+ add sp, #0x24
+ pop {r4, r5, pc}
+_021D79B6:
+ bl FUN_020222AC
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020222B4
+ mov r0, #0
+ add sp, #0x24
+ str r0, [r4]
+ pop {r4, r5, pc}
+_021D79CA:
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ add r1, r4, #0
+ add r0, sp, #0
+ add r1, #0x90
+ bl FUN_0201CAA8
+ add r1, r4, #0
+ add r3, r4, #0
+ add r0, r4, #4
+ add r1, #0x78
+ add r2, sp, #0
+ add r3, #0x84
+ bl FUN_0201B26C
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D7A00
+ cmp r0, #1
+ beq _021D7A08
+ cmp r0, #2
+ beq _021D7A18
+ b _021D7A36
+_021D7A00:
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ str r1, [r0]
+ b _021D7A36
+_021D7A08:
+ ldr r0, [r4, #0x64]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D7A18
+ mov r0, #0
+ add r4, #0xa0
+ str r0, [r4]
+ b _021D7A36
+_021D7A18:
+ ldr r2, [r4, #0x64]
+ mov r0, #1
+ ldr r1, [r2]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r2]
+ ldr r2, [r4, #0x64]
+ ldr r0, [r2, #8]
+ ldr r1, [r2]
+ ldrh r0, [r0, #4]
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bne _021D7A36
+ mov r0, #0
+ str r0, [r2]
+_021D7A36:
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020222B4
+_021D7A3E:
+ add sp, #0x24
+ pop {r4, r5, pc}
+ nop
+_021D7A44: .word 0x021DBA6C
+ thumb_func_end MOD63_021D798C
+
+ thumb_func_start MOD63_021D7A48
+MOD63_021D7A48: ; 0x021D7A48
+ push {r3, r4, r5, lr}
+ sub sp, #0xb8
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0xa8
+ ldr r5, _021D7B80 ; =0x021DB9B4
+ str r0, [r4, #4]
+ 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, _021D7B84 ; =0x021DB9E0
+ add r3, sp, #0x8c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #4
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B88 ; =0x021DB9C4
+ 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, #5
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B8C ; =0x021DBA50
+ 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, #6
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B90 ; =0x021DBA34
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B94 ; =0x021DB9FC
+ 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]
+ str r0, [r3]
+ ldr r0, [r4, #4]
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D7B98 ; =0x021DBA18
+ 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]
+ ldr r0, [r4, #4]
+ mov r3, #0
+ bl FUN_02016C18
+ 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
+ mov r0, #8
+ mov r1, #0
+ 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, #0
+ bl FUN_0201E74C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0xb8
+ pop {r3, r4, r5, pc}
+ nop
+_021D7B80: .word 0x021DB9B4
+_021D7B84: .word 0x021DB9E0
+_021D7B88: .word 0x021DB9C4
+_021D7B8C: .word 0x021DBA50
+_021D7B90: .word 0x021DBA34
+_021D7B94: .word 0x021DB9FC
+_021D7B98: .word 0x021DBA18
+ thumb_func_end MOD63_021D7A48
+
+ thumb_func_start MOD63_021D7B9C
+MOD63_021D7B9C: ; 0x021D7B9C
+ 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
+ mov r0, #8
+ mov r1, #0
+ 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, #0
+ bl FUN_0201E74C
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ mov r1, #7
+ bl FUN_020178A0
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD63_021D7B9C
+
+ thumb_func_start MOD63_021D7C18
+MOD63_021D7C18: ; 0x021D7C18
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bl MOD63_021D86E0
+ add r0, r6, #0
+ add r1, r4, #0
+ add r2, r5, #0
+ bl MOD63_021D83A8
+ ldr r0, _021D7D5C ; =0x020ECAC0
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bne _021D7C46
+ add r0, r5, #4
+ mov r1, #6
+ mov r2, #0x13
+ add r3, r4, #0
+ bl MOD63_021D78BC
+ b _021D7C52
+_021D7C46:
+ add r0, r5, #4
+ mov r1, #5
+ mov r2, #0x12
+ add r3, r4, #0
+ bl MOD63_021D78BC
+_021D7C52:
+ ldr r0, _021D7D60 ; =0x04000060
+ ldr r2, _021D7D64 ; =0xFFFFCFFF
+ ldrh r1, [r0]
+ add r3, r1, #0
+ and r3, r2
+ mov r1, #0x10
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r2, r1
+ mov r1, #8
+ orr r1, r2
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0xf0
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xbc
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xf4
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc0
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xd8
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc8
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xdc
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xcc
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0xd0
+ str r1, [r0]
+ add r0, r4, #0
+ bl FUN_0201EB64
+ add r1, r5, #0
+ add r1, #0xa0
+ str r0, [r1]
+ mov r3, #0
+ add r0, r5, #0
+ add r1, r5, #0
+ mov r2, #0xb6
+ str r3, [sp]
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r1, #0xc8
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xbc
+ lsl r2, r2, #4
+ bl FUN_0201ED5C
+ add r2, r5, #0
+ add r2, #0xa0
+ mov r1, #0x19
+ ldr r2, [r2]
+ mov r0, #0
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ add r1, r5, #0
+ add r1, #0xa0
+ ldr r1, [r1]
+ mov r0, #0
+ bl FUN_0201EE2C
+ add r0, r5, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ bl FUN_0201EB8C
+ mov r3, #0x42
+ lsl r3, r3, #2
+ add r2, r3, #2
+ ldrsh r1, [r5, r3]
+ add r3, r3, #4
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ mov r0, #0
+ bl FUN_020B8418
+ ldr r1, _021D7D68 ; =0x00007FFF
+ mov r0, #0
+ bl FUN_020B8404
+ ldr r3, _021D7D6C ; =0x0000010E
+ mov r0, #1
+ add r2, r3, #2
+ ldrsh r1, [r5, r3]
+ add r3, r3, #4
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ bl FUN_020B8418
+ ldr r1, _021D7D68 ; =0x00007FFF
+ mov r0, #1
+ bl FUN_020B8404
+ ldr r2, _021D7D60 ; =0x04000060
+ ldr r0, _021D7D64 ; =0xFFFFCFFF
+ ldrh r1, [r2]
+ and r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _021D7D70 ; =0x021C4918
+ mov r1, #1
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ mov r0, #2
+ str r0, [r5, #4]
+ mov r0, #1
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ nop
+_021D7D5C: .word 0x020ECAC0
+_021D7D60: .word 0x04000060
+_021D7D64: .word 0xFFFFCFFF
+_021D7D68: .word 0x00007FFF
+_021D7D6C: .word 0x0000010E
+_021D7D70: .word 0x021C4918
+ thumb_func_end MOD63_021D7C18
+
+ thumb_func_start MOD63_021D7D74
+MOD63_021D7D74: ; 0x021D7D74
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r7, r1, #0
+ add r5, r2, #0
+ mov r6, #0
+ bl MOD63_021D7858
+ cmp r0, #1
+ bne _021D7D92
+ bl FUN_0200E31C
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D7D92:
+ ldr r0, [r4]
+ cmp r0, #9
+ bhi _021D7E38
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7DA4: ; jump table
+ .short _021D7DB8 - _021D7DA4 - 2 ; case 0
+ .short _021D7DF6 - _021D7DA4 - 2 ; case 1
+ .short _021D7E24 - _021D7DA4 - 2 ; case 2
+ .short _021D7E8C - _021D7DA4 - 2 ; case 3
+ .short _021D7ECC - _021D7DA4 - 2 ; case 4
+ .short _021D7EF4 - _021D7DA4 - 2 ; case 5
+ .short _021D7F44 - _021D7DA4 - 2 ; case 6
+ .short _021D7F72 - _021D7DA4 - 2 ; case 7
+ .short _021D7FA6 - _021D7DA4 - 2 ; case 8
+ .short _021D8232 - _021D7DA4 - 2 ; case 9
+_021D7DB8:
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r1, _021D80F0 ; =0x00000116
+ add r0, r6, #0
+ strh r0, [r4, r1]
+ add r1, r4, #0
+ mov r2, #0xf
+ add r1, #0xa8
+ strh r2, [r1]
+ str r2, [sp]
+ mov r1, #3
+ str r1, [sp, #4]
+ mov r1, #1
+ ldr r3, _021D80F4 ; =0x00007FFF
+ add r2, r1, #0
+ str r5, [sp, #8]
+ bl FUN_0200E1D0
+ mov r0, #1
+ str r0, [r4]
+ b _021D824E
+_021D7DF6:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7E38
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7E18
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ b _021D824E
+_021D7E18:
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0xa8
+ strh r1, [r0]
+ str r1, [r4]
+ b _021D824E
+_021D7E24:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D7E38
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #1
+ beq _021D7E3A
+_021D7E38:
+ b _021D824E
+_021D7E3A:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7E7E
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xa
+ mov r1, #0x10
+ add r2, r6, #0
+ mov r3, #6
+ bl FUN_0200A208
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xa
+ mov r1, #0x10
+ add r2, r6, #0
+ mov r3, #7
+ bl FUN_0200A208
+ ldr r0, _021D80F0 ; =0x00000116
+ mov r1, #2
+ strh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #3
+ str r0, [r4]
+ b _021D824E
+_021D7E7E:
+ add r0, r4, #0
+ add r1, r6, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #4
+ str r0, [r4]
+ b _021D824E
+_021D7E8C:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D7F94
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #1
+ bne _021D7F94
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xa
+ add r1, r6, #0
+ mov r2, #0x10
+ mov r3, #6
+ bl FUN_0200A208
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xa
+ add r1, r6, #0
+ mov r2, #0x10
+ mov r3, #7
+ bl FUN_0200A208
+ ldr r0, _021D80F0 ; =0x00000116
+ mov r1, #3
+ strh r1, [r4, r0]
+ mov r0, #2
+ str r0, [r4]
+ b _021D824E
+_021D7ECC:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7EE6
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ b _021D824E
+_021D7EE6:
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #5
+ str r0, [r4]
+ b _021D824E
+_021D7EF4:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7F94
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7F36
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ add r0, r6, #0
+ ldr r3, _021D80F4 ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ str r5, [sp, #8]
+ bl FUN_0200E1D0
+ ldr r0, _021D80F0 ; =0x00000116
+ mov r1, #2
+ strh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #6
+ str r0, [r4]
+ b _021D824E
+_021D7F36:
+ add r0, r4, #0
+ mov r1, #0x28
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #7
+ str r0, [r4]
+ b _021D824E
+_021D7F44:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7F94
+ add r0, r7, #0
+ add r1, r5, #0
+ add r2, r4, #0
+ bl MOD63_021D85D8
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r1, #1
+ ldr r3, _021D80F4 ; =0x00007FFF
+ add r0, r6, #0
+ add r2, r1, #0
+ str r5, [sp, #8]
+ bl FUN_0200E1D0
+ mov r0, #5
+ str r0, [r4]
+ b _021D824E
+_021D7F72:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D7FA0
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0xf
+ beq _021D7F96
+_021D7F94:
+ b _021D824E
+_021D7F96:
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0xa4
+ str r1, [r0]
+ b _021D824E
+_021D7FA0:
+ mov r0, #8
+ str r0, [r4]
+ b _021D824E
+_021D7FA6:
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r1, [r0]
+ mov r5, #1
+ cmp r1, r2
+ ble _021D7FDE
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D7FD4
+ add r1, r4, #0
+ add r1, #0xbc
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xbc
+ str r1, [r0]
+ b _021D7FDA
+_021D7FD4:
+ add r0, r4, #0
+ add r0, #0xbc
+ str r2, [r0]
+_021D7FDA:
+ mov r5, #0
+ b _021D8006
+_021D7FDE:
+ cmp r1, r2
+ bge _021D8006
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D7FFE
+ add r1, r4, #0
+ add r1, #0xbc
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xbc
+ str r1, [r0]
+ b _021D8004
+_021D7FFE:
+ add r0, r4, #0
+ add r0, #0xbc
+ str r2, [r0]
+_021D8004:
+ mov r5, #0
+_021D8006:
+ mov r0, #1
+ add r1, r4, #0
+ lsl r0, r0, #8
+ add r1, #0xc0
+ ldr r2, [r4, r0]
+ ldr r1, [r1]
+ cmp r1, r2
+ ble _021D803A
+ add r0, #0x18
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D8030
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc0
+ str r1, [r0]
+ b _021D8036
+_021D8030:
+ add r0, r4, #0
+ add r0, #0xc0
+ str r2, [r0]
+_021D8036:
+ mov r5, #0
+ b _021D8060
+_021D803A:
+ cmp r1, r2
+ bge _021D8060
+ add r0, #0x18
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D8058
+ add r1, r4, #0
+ add r1, #0xc0
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc0
+ str r1, [r0]
+ b _021D805E
+_021D8058:
+ add r0, r4, #0
+ add r0, #0xc0
+ str r2, [r0]
+_021D805E:
+ mov r5, #0
+_021D8060:
+ mov r0, #0x41
+ add r1, r4, #0
+ lsl r0, r0, #2
+ add r1, #0xc4
+ ldr r2, [r4, r0]
+ ldr r1, [r1]
+ cmp r1, r2
+ ble _021D8094
+ add r0, #0x14
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D808A
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ b _021D8090
+_021D808A:
+ add r0, r4, #0
+ add r0, #0xc4
+ str r2, [r0]
+_021D8090:
+ mov r5, #0
+ b _021D80BA
+_021D8094:
+ cmp r1, r2
+ bge _021D80BA
+ add r0, #0x14
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D80B2
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ b _021D80B8
+_021D80B2:
+ add r0, r4, #0
+ add r0, #0xc4
+ str r2, [r0]
+_021D80B8:
+ mov r5, #0
+_021D80BA:
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _021D80F8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D80E6
+ add r1, r4, #0
+ add r1, #0xc8
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc8
+ str r1, [r0]
+ b _021D80EC
+_021D80E6:
+ add r0, r4, #0
+ add r0, #0xc8
+ str r2, [r0]
+_021D80EC:
+ mov r5, #0
+ b _021D8120
+ .align 2, 0
+_021D80F0: .word 0x00000116
+_021D80F4: .word 0x00007FFF
+_021D80F8:
+ cmp r1, r2
+ bge _021D8120
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D8118
+ add r1, r4, #0
+ add r1, #0xc8
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xc8
+ str r1, [r0]
+ b _021D811E
+_021D8118:
+ add r0, r4, #0
+ add r0, #0xc8
+ str r2, [r0]
+_021D811E:
+ mov r5, #0
+_021D8120:
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _021D8156
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D814C
+ add r1, r4, #0
+ add r1, #0xcc
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xcc
+ str r1, [r0]
+ b _021D8152
+_021D814C:
+ add r0, r4, #0
+ add r0, #0xcc
+ str r2, [r0]
+_021D8152:
+ mov r5, #0
+ b _021D817E
+_021D8156:
+ cmp r1, r2
+ bge _021D817E
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D8176
+ add r1, r4, #0
+ add r1, #0xcc
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xcc
+ str r1, [r0]
+ b _021D817C
+_021D8176:
+ add r0, r4, #0
+ add r0, #0xcc
+ str r2, [r0]
+_021D817C:
+ mov r5, #0
+_021D817E:
+ add r0, r4, #0
+ add r0, #0xec
+ ldr r2, [r0]
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r1, [r0]
+ cmp r1, r2
+ ble _021D81B4
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r1, r2
+ cmp r1, r0
+ ble _021D81AA
+ add r1, r4, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ sub r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xd0
+ str r1, [r0]
+ b _021D81B0
+_021D81AA:
+ add r0, r4, #0
+ add r0, #0xd0
+ str r2, [r0]
+_021D81B0:
+ mov r5, #0
+ b _021D81DC
+_021D81B4:
+ cmp r1, r2
+ bge _021D81DC
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r1, r2, r1
+ cmp r1, r0
+ ble _021D81D4
+ add r1, r4, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0xd0
+ str r1, [r0]
+ b _021D81DA
+_021D81D4:
+ add r0, r4, #0
+ add r0, #0xd0
+ str r2, [r0]
+_021D81DA:
+ mov r5, #0
+_021D81DC:
+ add r1, r4, #0
+ add r1, #0xa0
+ add r0, r4, #0
+ ldr r1, [r1]
+ add r0, #0xbc
+ bl FUN_0201F04C
+ add r1, r4, #0
+ add r1, #0xa0
+ add r0, r4, #0
+ ldr r1, [r1]
+ add r0, #0xc8
+ bl FUN_0201F05C
+ cmp r5, #1
+ bne _021D824E
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #0x5a
+ add r0, #0xa8
+ strh r1, [r0]
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa4
+ str r1, [r0]
+ mov r0, #9
+ str r0, [r4]
+ b _021D824E
+_021D8232:
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _021D824C
+ add r0, r4, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ b _021D824E
+_021D824C:
+ mov r6, #1
+_021D824E:
+ add r0, r4, #0
+ bl MOD63_021D8650
+ add r0, r4, #4
+ bl MOD63_021D798C
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD63_021D7D74
+
+ thumb_func_start MOD63_021D8260
+MOD63_021D8260: ; 0x021D8260
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r4, #0
+ cmp r0, #0
+ beq _021D8272
+ cmp r0, #1
+ beq _021D82FC
+ b _021D8350
+_021D8272:
+ add r1, r5, #0
+ add r1, #0xa0
+ add r0, r5, #0
+ ldr r1, [r1]
+ add r0, #0xfc
+ bl FUN_0201F04C
+ add r1, r5, #0
+ add r1, #0xa0
+ add r0, r5, #0
+ ldr r1, [r1]
+ add r0, #0xe4
+ bl FUN_0201F05C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #2
+ add r1, r4, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #1
+ bl FUN_0200A274
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #2
+ bl FUN_0200A274
+ add r0, r5, #0
+ mov r1, #2
+ add r0, #0xa4
+ str r1, [r0]
+ ldr r1, _021D835C ; =0x00007FFF
+ mov r0, #1
+ bl FUN_020B8404
+ add r0, r5, #0
+ add r1, r4, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ mov r0, #1
+ str r0, [r5]
+ b _021D8350
+_021D82FC:
+ add r0, r5, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D8328
+ add r0, r5, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _021D831A
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ b _021D8330
+_021D831A:
+ cmp r0, #0x10
+ bne _021D8330
+ mov r0, #1
+ add r1, r4, #0
+ bl FUN_0201E74C
+ b _021D8330
+_021D8328:
+ mov r0, #1
+ add r1, r4, #0
+ bl FUN_0201E74C
+_021D8330:
+ add r0, r5, #0
+ add r0, #0xa8
+ ldrh r0, [r0]
+ mov r4, #1
+ add r1, r0, #1
+ add r0, r5, #0
+ add r0, #0xa8
+ strh r1, [r0]
+ add r0, r5, #0
+ add r0, #0xa8
+ ldrh r1, [r0]
+ mov r0, #0x1f
+ and r1, r0
+ add r0, r5, #0
+ add r0, #0xa8
+ strh r1, [r0]
+_021D8350:
+ add r0, r5, #4
+ bl MOD63_021D798C
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D835C: .word 0x00007FFF
+ thumb_func_end MOD63_021D8260
+
+ thumb_func_start MOD63_021D8360
+MOD63_021D8360: ; 0x021D8360
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ add r4, r1, #0
+ add r6, r2, #0
+ bl FUN_0201EB70
+ add r0, r5, #4
+ bl MOD63_021D7970
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r5, #0
+ bl MOD63_021D8644
+ ldr r2, _021D839C ; =0x04000050
+ mov r3, #0
+ strh r3, [r2]
+ add r2, #0x10
+ ldrh r1, [r2]
+ ldr r0, _021D83A0 ; =0x0000CFDF
+ and r0, r1
+ strh r0, [r2]
+ ldr r0, _021D83A4 ; =0x021C4918
+ strb r3, [r0, #5]
+ bl FUN_0201E7A0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D839C: .word 0x04000050
+_021D83A0: .word 0x0000CFDF
+_021D83A4: .word 0x021C4918
+ thumb_func_end MOD63_021D8360
+
+ thumb_func_start MOD63_021D83A8
+MOD63_021D83A8: ; 0x021D83A8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ add r4, r1, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r1, #7
+ add r6, r2, #0
+ mov r0, #0x30
+ add r2, r5, #0
+ add r3, r1, #0
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0xb
+ add r2, r5, #0
+ mov r3, #3
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #8
+ add r2, r5, #0
+ mov r3, #7
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0xc
+ add r2, r5, #0
+ mov r3, #3
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ ldr r0, _021D85C8 ; =0x020ECAC0
+ ldrb r7, [r0]
+ cmp r7, #0xa
+ bne _021D841A
+ mov r0, #0xd
+ mov r1, #9
+ str r0, [sp, #0x18]
+ b _021D8420
+_021D841A:
+ mov r0, #0xe
+ mov r1, #0xa
+ str r0, [sp, #0x18]
+_021D8420:
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x30
+ mov r2, #4
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r2, #0
+ str r2, [sp]
+ ldr r1, [sp, #0x18]
+ mov r0, #0x30
+ add r3, r2, #0
+ str r4, [sp, #4]
+ bl FUN_02006930
+ cmp r7, #0xa
+ bne _021D8448
+ mov r1, #1
+ mov r7, #2
+ b _021D844C
+_021D8448:
+ mov r1, #3
+ mov r7, #4
+_021D844C:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ add r2, r5, #0
+ mov r3, #6
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ mov r0, #0x30
+ add r1, r7, #0
+ mov r2, #6
+ lsl r3, r3, #0xe
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x30
+ add r2, r5, #0
+ mov r3, #6
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ mov r1, #0x11
+ add r2, r5, #0
+ mov r3, #5
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x10
+ mov r0, #0x80
+ mov r2, #6
+ lsl r3, r1, #9
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ mov r1, #0xf
+ add r2, r5, #0
+ mov r3, #5
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0xf
+ add r2, r5, #0
+ mov r3, #1
+ str r4, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x30
+ mov r1, #0x11
+ add r2, r5, #0
+ mov r3, #1
+ str r4, [sp, #0xc]
+ bl FUN_020068C8
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0x30
+ mov r1, #0x10
+ mov r2, #0
+ mov r3, #0x20
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ add r3, r4, #0
+ bl FUN_02017F18
+ ldr r2, _021D85CC ; =0x00000227
+ mov r0, #1
+ mov r1, #0x1a
+ add r3, r4, #0
+ bl FUN_0200A86C
+ add r7, r0, #0
+ mov r0, #0x40
+ add r1, r4, #0
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r4, r0, #0
+ ldr r2, _021D85D0 ; =0x021DB9A0
+ add r0, r5, #0
+ add r1, #0xac
+ bl FUN_02019150
+ mov r1, #0
+ mov r0, #0xe0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0xac
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ add r0, r7, #0
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ add r3, r6, #0
+ add r3, #0xb3
+ ldrb r3, [r3]
+ mov r0, #0
+ add r1, r4, #0
+ mov r2, #1
+ lsl r3, r3, #3
+ bl FUN_02002F40
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ ldr r0, _021D85D4 ; =0x00010100
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r6, #0xac
+ str r1, [sp, #0x10]
+ add r0, r6, #0
+ add r2, r4, #0
+ str r1, [sp, #0x14]
+ bl FUN_0201BE3C
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r7, #0
+ bl FUN_0200A8B8
+ mov r1, #0x15
+ add r0, sp, #0x1c
+ strh r1, [r0, #2]
+ strh r1, [r0]
+ add r1, sp, #0x1c
+ mov r0, #4
+ add r1, #2
+ mov r2, #2
+ mov r3, #0x42
+ bl FUN_02017FB4
+ mov r0, #4
+ add r1, sp, #0x1c
+ mov r2, #2
+ mov r3, #0x44
+ bl FUN_02017FB4
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D85C8: .word 0x020ECAC0
+_021D85CC: .word 0x00000227
+_021D85D0: .word 0x021DB9A0
+_021D85D4: .word 0x00010100
+ thumb_func_end MOD63_021D83A8
+
+ thumb_func_start MOD63_021D85D8
+MOD63_021D85D8: ; 0x021D85D8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r2, #0xa8
+ add r7, r0, #0
+ ldrh r0, [r2]
+ add r5, r1, #0
+ cmp r0, #0
+ bne _021D863A
+ ldr r0, _021D8640 ; =0x020ECAC0
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bne _021D85F8
+ mov r1, #0xb
+ mov r6, #0xa
+ mov r4, #0xc
+ b _021D85FE
+_021D85F8:
+ mov r1, #8
+ mov r6, #7
+ mov r4, #9
+_021D85FE:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ add r2, r7, #0
+ mov r3, #5
+ str r5, [sp, #0xc]
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x80
+ add r1, r6, #0
+ mov r2, #6
+ lsl r3, r0, #6
+ str r5, [sp, #4]
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x80
+ add r1, r4, #0
+ add r2, r7, #0
+ mov r3, #5
+ str r5, [sp, #0xc]
+ bl FUN_020068C8
+_021D863A:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8640: .word 0x020ECAC0
+ thumb_func_end MOD63_021D85D8
+
+ thumb_func_start MOD63_021D8644
+MOD63_021D8644: ; 0x021D8644
+ ldr r3, _021D864C ; =FUN_02019178
+ add r2, #0xac
+ add r0, r2, #0
+ bx r3
+ .align 2, 0
+_021D864C: .word FUN_02019178
+ thumb_func_end MOD63_021D8644
+
+ thumb_func_start MOD63_021D8650
+MOD63_021D8650: ; 0x021D8650
+ push {r4, lr}
+ ldr r1, _021D86DC ; =0x00000116
+ ldrh r2, [r0, r1]
+ cmp r2, #3
+ bhi _021D86B2
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D8666: ; jump table
+ .short _021D866E - _021D8666 - 2 ; case 0
+ .short _021D86B2 - _021D8666 - 2 ; case 1
+ .short _021D867A - _021D8666 - 2 ; case 2
+ .short _021D8698 - _021D8666 - 2 ; case 3
+_021D866E:
+ mov r3, #5
+ sub r2, r1, #2
+ strh r3, [r0, r2]
+ mov r2, #1
+ strh r2, [r0, r1]
+ b _021D86B2
+_021D867A:
+ sub r2, r1, #2
+ ldrh r2, [r0, r2]
+ add r3, r2, #2
+ sub r2, r1, #2
+ strh r3, [r0, r2]
+ ldrh r2, [r0, r2]
+ cmp r2, #0x1f
+ blo _021D86B2
+ mov r3, #0x1f
+ add r2, r3, #0
+ add r2, #0xf5
+ strh r3, [r0, r2]
+ mov r2, #1
+ strh r2, [r0, r1]
+ b _021D86B2
+_021D8698:
+ sub r2, r1, #2
+ ldrh r2, [r0, r2]
+ sub r3, r2, #2
+ sub r2, r1, #2
+ strh r3, [r0, r2]
+ ldrh r2, [r0, r2]
+ cmp r2, #5
+ bhi _021D86B2
+ mov r3, #5
+ sub r2, r1, #2
+ strh r3, [r0, r2]
+ mov r2, #1
+ strh r2, [r0, r1]
+_021D86B2:
+ mov r1, #0x45
+ lsl r1, r1, #2
+ ldrh r3, [r0, r1]
+ mov r1, #0x1f
+ lsl r1, r1, #0xa
+ lsl r2, r3, #0xa
+ and r1, r2
+ add r4, r3, #0
+ mov r2, #0x1f
+ and r4, r2
+ lsl r3, r3, #5
+ lsl r2, r2, #5
+ and r2, r3
+ orr r2, r4
+ orr r1, r2
+ lsl r1, r1, #0x10
+ mov r0, #1
+ lsr r1, r1, #0x10
+ bl FUN_020B8404
+ pop {r4, pc}
+ .align 2, 0
+_021D86DC: .word 0x00000116
+ thumb_func_end MOD63_021D8650
+
+ thumb_func_start MOD63_021D86E0
+MOD63_021D86E0: ; 0x021D86E0
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ ldr r0, _021D8858 ; =0x020ECAC0
+ ldrb r0, [r0]
+ cmp r0, #0xa
+ bne _021D8788
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0xd8
+ str r2, [r0]
+ mov r1, #0x41
+ add r0, r4, #0
+ mov r3, #0x12
+ lsl r1, r1, #0xc
+ add r0, #0xdc
+ str r1, [r0]
+ add r0, r4, #0
+ mov r5, #0xf6
+ lsl r3, r3, #0xe
+ add r0, #0xe0
+ str r3, [r0]
+ mov r3, #0xc3
+ add r0, r4, #0
+ lsl r3, r3, #0xc
+ add r0, #0xe4
+ str r3, [r0]
+ mov r0, #2
+ add r3, r4, #0
+ lsl r0, r0, #0x10
+ add r3, #0xe8
+ str r0, [r3]
+ add r3, r4, #0
+ lsl r5, r5, #0xc
+ add r3, #0xec
+ str r5, [r3]
+ add r3, r4, #0
+ add r3, #0xf0
+ str r2, [r3]
+ mov r5, #0x5a
+ add r3, r4, #0
+ lsl r5, r5, #0xc
+ add r3, #0xf4
+ str r5, [r3]
+ add r3, r4, #0
+ add r3, #0xf8
+ str r2, [r3]
+ add r2, r4, #0
+ ldr r3, _021D885C ; =0xFFFFE000
+ add r2, #0xfc
+ str r3, [r2]
+ mov r2, #0x1f
+ lsl r2, r2, #0xe
+ lsr r0, r0, #9
+ str r2, [r4, r0]
+ lsr r0, r1, #0xa
+ ldr r2, _021D8860 ; =0xFFFDA000
+ ldr r1, _021D8864 ; =0xFFFFF6E3
+ str r2, [r4, r0]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r3, _021D8868 ; =0x00000A2B
+ strh r1, [r4, r0]
+ add r2, r0, #2
+ strh r3, [r4, r2]
+ add r3, r1, #0
+ add r3, #0xc6
+ add r2, r0, #4
+ strh r3, [r4, r2]
+ add r1, #0x42
+ add r2, r0, #6
+ strh r1, [r4, r2]
+ add r1, r0, #0
+ ldr r2, _021D886C ; =0x000007A1
+ add r1, #8
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ ldr r2, _021D8870 ; =0xFFFFF513
+ add r1, #0xa
+ strh r2, [r4, r1]
+ mov r1, #3
+ lsl r1, r1, #0xc
+ add r0, #0x10
+ b _021D8828
+_021D8788:
+ add r0, r4, #0
+ ldr r1, _021D8874 ; =0xFFFBF000
+ add r0, #0xd8
+ str r1, [r0]
+ mov r1, #0x29
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xdc
+ str r1, [r0]
+ mov r1, #0x13
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xe0
+ str r1, [r0]
+ add r0, r4, #0
+ ldr r1, _021D8878 ; =0xFFF6C000
+ add r0, #0xe4
+ str r1, [r0]
+ mov r1, #0x3a
+ add r0, r4, #0
+ mov r2, #2
+ lsl r1, r1, #0xc
+ add r0, #0xe8
+ str r1, [r0]
+ mov r1, #0xbe
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xec
+ str r1, [r0]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xf0
+ str r1, [r0]
+ mov r1, #0xb
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xf4
+ str r1, [r0]
+ mov r1, #0x12
+ add r0, r4, #0
+ lsl r1, r1, #0xc
+ add r0, #0xf8
+ str r1, [r0]
+ add r0, r4, #0
+ lsl r2, r2, #0xe
+ add r0, #0xfc
+ str r2, [r0]
+ ldr r1, _021D887C ; =0xFFFFB000
+ lsr r0, r2, #7
+ str r1, [r4, r0]
+ mov r0, #0x41
+ lsr r1, r2, #3
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r2, _021D8880 ; =0x00000653
+ add r1, r0, #4
+ strh r2, [r4, r1]
+ ldr r2, _021D8884 ; =0xFFFFF71C
+ add r1, r0, #6
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ sub r2, #0x14
+ add r1, #8
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ ldr r2, _021D8888 ; =0x0000091B
+ add r1, #0xa
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ ldr r2, _021D888C ; =0xFFFFFB61
+ add r1, #0xc
+ strh r2, [r4, r1]
+ add r1, r0, #0
+ mov r2, #0xc5
+ lsl r2, r2, #4
+ add r1, #0xe
+ strh r2, [r4, r1]
+ mov r1, #3
+ lsl r1, r1, #0xc
+ add r0, #0x14
+_021D8828:
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0xfc
+ add r1, #0xe4
+ add r2, sp, #0xc
+ bl VEC_Subtract
+ add r0, sp, #0xc
+ add r1, sp, #0
+ bl VEC_Normalize
+ mov r0, #0x42
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ strh r1, [r4, r0]
+ add r1, r0, #2
+ ldr r2, [sp, #4]
+ add r0, r0, #4
+ strh r2, [r4, r1]
+ ldr r1, [sp, #8]
+ strh r1, [r4, r0]
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8858: .word 0x020ECAC0
+_021D885C: .word 0xFFFFE000
+_021D8860: .word 0xFFFDA000
+_021D8864: .word 0xFFFFF6E3
+_021D8868: .word 0x00000A2B
+_021D886C: .word 0x000007A1
+_021D8870: .word 0xFFFFF513
+_021D8874: .word 0xFFFBF000
+_021D8878: .word 0xFFF6C000
+_021D887C: .word 0xFFFFB000
+_021D8880: .word 0x00000653
+_021D8884: .word 0xFFFFF71C
+_021D8888: .word 0x0000091B
+_021D888C: .word 0xFFFFFB61
+ thumb_func_end MOD63_021D86E0
+
+ thumb_func_start MOD63_021D8890
+MOD63_021D8890: ; 0x021D8890
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D88AC ; =0x021DBD70
+ add r3, sp, #0
+ mov r2, #5
+_021D889A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D889A
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D88AC: .word 0x021DBD70
+ thumb_func_end MOD63_021D8890
+
+ thumb_func_start MOD63_021D88B0
+MOD63_021D88B0: ; 0x021D88B0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D88CC ; =0x021DBD98
+ add r3, sp, #0
+ mov r2, #5
+_021D88BA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D88BA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D88CC: .word 0x021DBD98
+ thumb_func_end MOD63_021D88B0
+
+ thumb_func_start MOD63_021D88D0
+MOD63_021D88D0: ; 0x021D88D0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D88EC ; =0x021DBDC0
+ add r3, sp, #0
+ mov r2, #5
+_021D88DA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D88DA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D88EC: .word 0x021DBDC0
+ thumb_func_end MOD63_021D88D0
+
+ thumb_func_start MOD63_021D88F0
+MOD63_021D88F0: ; 0x021D88F0
+ push {r3, r4, r5, lr}
+ sub sp, #0xb8
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0xa8
+ ldr r5, _021D89E8 ; =0x021DBB4C
+ str r0, [r4, #0xc]
+ 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, _021D89EC ; =0x021DBC88
+ add r3, sp, #0x8c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D89F0 ; =0x021DBC6C
+ add r3, sp, #0x70
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D89F4 ; =0x021DBBC4
+ add r3, sp, #0x54
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D89F8 ; =0x021DBBFC
+ 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, #5
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D89FC ; =0x021DBC18
+ 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]
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8A00 ; =0x021DBC34
+ 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]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0xb8
+ pop {r3, r4, r5, pc}
+ nop
+_021D89E8: .word 0x021DBB4C
+_021D89EC: .word 0x021DBC88
+_021D89F0: .word 0x021DBC6C
+_021D89F4: .word 0x021DBBC4
+_021D89F8: .word 0x021DBBFC
+_021D89FC: .word 0x021DBC18
+_021D8A00: .word 0x021DBC34
+ thumb_func_end MOD63_021D88F0
+
+ thumb_func_start MOD63_021D8A04
+MOD63_021D8A04: ; 0x021D8A04
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0x70
+ ldr r5, _021D8AC4 ; =0x021DBB3C
+ str r0, [r4, #0xc]
+ 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 r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D8AC8 ; =0xC7FFFFFF
+ ldr r5, _021D8ACC ; =0x021DBC50
+ and r1, r0
+ lsl r0, r2, #1
+ orr r0, r1
+ str r0, [r2]
+ add r3, sp, #0x54
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8AD0 ; =0x021DBCA4
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8AD4 ; =0x021DBCC0
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8AD8 ; =0x021DBCDC
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #4
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ nop
+_021D8AC4: .word 0x021DBB3C
+_021D8AC8: .word 0xC7FFFFFF
+_021D8ACC: .word 0x021DBC50
+_021D8AD0: .word 0x021DBCA4
+_021D8AD4: .word 0x021DBCC0
+_021D8AD8: .word 0x021DBCDC
+ thumb_func_end MOD63_021D8A04
+
+ thumb_func_start MOD63_021D8ADC
+MOD63_021D8ADC: ; 0x021D8ADC
+ push {r4, r5, lr}
+ sub sp, #0x9c
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02016B94
+ add r3, sp, #0x8c
+ ldr r5, _021D8BBC ; =0x021DBB6C
+ str r0, [r4, #0xc]
+ 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 r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D8BC0 ; =0xC7FFFFFF
+ ldr r5, _021D8BC4 ; =0x021DBCF8
+ and r1, r0
+ lsl r0, r2, #1
+ orr r0, r1
+ str r0, [r2]
+ 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, #1
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021D8BC8 ; =0x021DBD14
+ 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, #2
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #1
+ bl FUN_02016C18
+ ldr r5, _021D8BCC ; =0x021DBD30
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ mov r3, #1
+ bl FUN_02016C18
+ ldr r5, _021D8BD0 ; =0x021DBBA8
+ 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, #0
+ str r0, [r3]
+ ldr r0, [r4, #0xc]
+ add r3, r1, #0
+ bl FUN_02016C18
+ ldr r5, _021D8BD4 ; =0x021DBBE0
+ 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]
+ ldr r0, [r4, #0xc]
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0x9c
+ pop {r4, r5, pc}
+ nop
+_021D8BBC: .word 0x021DBB6C
+_021D8BC0: .word 0xC7FFFFFF
+_021D8BC4: .word 0x021DBCF8
+_021D8BC8: .word 0x021DBD14
+_021D8BCC: .word 0x021DBD30
+_021D8BD0: .word 0x021DBBA8
+_021D8BD4: .word 0x021DBBE0
+ thumb_func_end MOD63_021D8ADC
+
+ thumb_func_start MOD63_021D8BD8
+MOD63_021D8BD8: ; 0x021D8BD8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ mov r0, #4
+ str r0, [sp]
+ ldr r0, _021D8C14 ; =MOD63_021D8C20
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ mov r2, #1
+ add r3, r1, #0
+ bl FUN_02022318
+ str r0, [r4, #0x10]
+ ldr r3, _021D8C18 ; =0x021064B8
+ mov r0, #2
+ mov r1, #0
+ ldr r3, [r3]
+ lsl r0, r0, #0xe
+ add r2, r1, #0
+ blx r3
+ ldr r3, _021D8C1C ; =0x021064C0
+ mov r0, #0x80
+ ldr r3, [r3]
+ mov r1, #0
+ mov r2, #1
+ blx r3
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021D8C14: .word MOD63_021D8C20
+_021D8C18: .word 0x021064B8
+_021D8C1C: .word 0x021064C0
+ thumb_func_end MOD63_021D8BD8
+
+ thumb_func_start MOD63_021D8C20
+MOD63_021D8C20: ; 0x021D8C20
+ push {r3, lr}
+ ldr r0, _021D8C8C ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ strh r2, [r0]
+ add r0, #0x58
+ ldrh r2, [r0]
+ ldr r1, _021D8C90 ; =0xFFFFCFFD
+ 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, _021D8C94 ; =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, _021D8C98 ; =0x021DBB5C
+ bl G3X_SetEdgeColorTable
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _021D8C9C ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021D8CA0 ; =0xBFFF0000
+ ldr r0, _021D8CA4 ; =0x04000580
+ str r1, [r0]
+ pop {r3, pc}
+ nop
+_021D8C8C: .word 0x04000008
+_021D8C90: .word 0xFFFFCFFD
+_021D8C94: .word 0x0000CFFB
+_021D8C98: .word 0x021DBB5C
+_021D8C9C: .word 0x00007FFF
+_021D8CA0: .word 0xBFFF0000
+_021D8CA4: .word 0x04000580
+ thumb_func_end MOD63_021D8C20
+
+ thumb_func_start MOD63_021D8CA8
+MOD63_021D8CA8: ; 0x021D8CA8
+ ldr r3, _021D8CAC ; =FUN_02009F80
+ bx r3
+ .align 2, 0
+_021D8CAC: .word FUN_02009F80
+ thumb_func_end MOD63_021D8CA8
+
+ thumb_func_start MOD63_021D8CB0
+MOD63_021D8CB0: ; 0x021D8CB0
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02009F80
+ ldr r0, [r4, #0x4c]
+ bl MOD63_021DB598
+ pop {r4, pc}
+ thumb_func_end MOD63_021D8CB0
+
+ thumb_func_start MOD63_021D8CC0
+MOD63_021D8CC0: ; 0x021D8CC0
+ push {r4, r5}
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _021D8D08 ; =0xFFFF1FFF
+ add r4, r0, #0
+ and r2, r1
+ lsr r1, r0, #0xd
+ orr r1, r2
+ str r1, [r0]
+ add r4, #0x48
+ ldrh r3, [r4]
+ mov r2, #0x3f
+ mov r1, #0x1f
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r4]
+ add r4, r0, #0
+ add r4, #0x4a
+ ldrh r5, [r4]
+ mov r1, #0x11
+ bic r5, r2
+ orr r1, r5
+ orr r1, r3
+ strh r1, [r4]
+ add r1, r0, #0
+ mov r2, #0xff
+ add r1, #0x40
+ strh r2, [r1]
+ ldr r1, _021D8D0C ; =0x0000209F
+ add r0, #0x44
+ strh r1, [r0]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_021D8D08: .word 0xFFFF1FFF
+_021D8D0C: .word 0x0000209F
+ thumb_func_end MOD63_021D8CC0
+
+ thumb_func_start MOD63_021D8D10
+MOD63_021D8D10: ; 0x021D8D10
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0200A2AC
+ ldr r1, _021D8D90 ; =0x00007FFF
+ mov r0, #0
+ bl FUN_0200E3A0
+ ldr r1, _021D8D90 ; =0x00007FFF
+ mov r0, #1
+ 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 r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r0, #3
+ mov r1, #0x4c
+ lsl r2, r0, #0x11
+ bl FUN_0201681C
+ mov r1, #0xab
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x4c
+ bl FUN_02006268
+ mov r2, #0xab
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x4c
+ str r0, [r4]
+ mov r1, #0
+ mov r0, #0xaa
+ str r1, [r4, #8]
+ lsl r0, r0, #2
+ strb r1, [r4, r0]
+ ldr r0, _021D8D94 ; =0x021C4918
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ bl FUN_0201B9D4
+ str r0, [r4, #0x14]
+ mov r0, #0
+ bl FUN_0201B9E0
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D8D90: .word 0x00007FFF
+_021D8D94: .word 0x021C4918
+ thumb_func_end MOD63_021D8D10
+
+ thumb_func_start MOD63_021D8D98
+MOD63_021D8D98: ; 0x021D8D98
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ add r5, r0, #0
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _021D8DD4
+ ldr r0, _021D8E5C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ bne _021D8DBC
+ mov r0, #8
+ tst r0, r1
+ beq _021D8DD4
+_021D8DBC:
+ mov r0, #1
+ str r0, [r5, #8]
+ ldr r1, _021D8E5C ; =0x021C48B8
+ mov r0, #0
+ str r0, [r1, #0x6c]
+ ldr r1, _021D8E60 ; =0x00007FFF
+ bl FUN_0200E3A0
+ ldr r1, _021D8E60 ; =0x00007FFF
+ mov r0, #1
+ bl FUN_0200E3A0
+_021D8DD4:
+ ldr r0, [r4]
+ cmp r0, #4
+ bhi _021D8E42
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8DE6: ; jump table
+ .short _021D8DF0 - _021D8DE6 - 2 ; case 0
+ .short _021D8E00 - _021D8DE6 - 2 ; case 1
+ .short _021D8E12 - _021D8DE6 - 2 ; case 2
+ .short _021D8E24 - _021D8DE6 - 2 ; case 3
+ .short _021D8E36 - _021D8DE6 - 2 ; case 4
+_021D8DF0:
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ add r0, r5, r0
+ str r0, [r5, #0x30]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8E46
+_021D8E00:
+ add r0, r5, #0
+ bl MOD63_021D8E9C
+ cmp r0, #0
+ beq _021D8E46
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8E46
+_021D8E12:
+ add r0, r5, #0
+ bl MOD63_021D93F0
+ cmp r0, #0
+ beq _021D8E46
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8E46
+_021D8E24:
+ add r0, r5, #0
+ bl MOD63_021DA0A8
+ cmp r0, #0
+ beq _021D8E46
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D8E46
+_021D8E36:
+ ldr r1, [r5, #4]
+ ldr r0, _021D8E64 ; =0x00000A8C
+ cmp r1, r0
+ blt _021D8E46
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D8E42:
+ bl ErrorHandling
+_021D8E46:
+ ldr r0, [r5, #8]
+ cmp r0, #0
+ beq _021D8E50
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D8E50:
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D8E5C: .word 0x021C48B8
+_021D8E60: .word 0x00007FFF
+_021D8E64: .word 0x00000A8C
+ thumb_func_end MOD63_021D8D98
+
+ thumb_func_start MOD63_021D8E68
+MOD63_021D8E68: ; 0x021D8E68
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl FUN_0200E31C
+ ldr r0, [r4, #0x14]
+ bl FUN_0201B9E0
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x4c
+ bl FUN_020168D0
+ ldr r0, _021D8E94 ; =SDK_OVERLAY_MODULE_63_ID
+ ldr r1, _021D8E98 ; =0x021DBAB8
+ bl FUN_02000E7C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8E94: .word SDK_OVERLAY_MODULE_63_ID
+_021D8E98: .word 0x021DBAB8
+ thumb_func_end MOD63_021D8E68
+
+ thumb_func_start MOD63_021D8E9C
+MOD63_021D8E9C: ; 0x021D8E9C
+ push {r4, lr}
+ add r1, r0, #0
+ ldr r0, [r1, #8]
+ add r4, r1, #0
+ add r4, #0x18
+ cmp r0, #0
+ beq _021D8EAE
+ mov r0, #3
+ strb r0, [r4]
+_021D8EAE:
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhi _021D8F06
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8EC0: ; jump table
+ .short _021D8EC8 - _021D8EC0 - 2 ; case 0
+ .short _021D8ED6 - _021D8EC0 - 2 ; case 1
+ .short _021D8EE6 - _021D8EC0 - 2 ; case 2
+ .short _021D8EFC - _021D8EC0 - 2 ; case 3
+_021D8EC8:
+ add r0, r1, #0
+ bl MOD63_021D8F0C
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D8F06
+_021D8ED6:
+ add r1, #0x18
+ add r0, r1, #0
+ bl MOD63_021D8F38
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D8F06
+_021D8EE6:
+ add r0, r1, #0
+ ldr r1, [r1, #4]
+ add r0, #0x18
+ bl MOD63_021D90D0
+ cmp r0, #0
+ beq _021D8F06
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D8F06
+_021D8EFC:
+ add r0, r1, #0
+ bl MOD63_021D9234
+ mov r0, #1
+ pop {r4, pc}
+_021D8F06:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D8E9C
+
+ thumb_func_start MOD63_021D8F0C
+MOD63_021D8F0C: ; 0x021D8F0C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD63_021D8890
+ add r0, r4, #0
+ bl MOD63_021D88F0
+ ldr r0, [r4, #0xc]
+ str r0, [r4, #0x24]
+ bl MOD63_021DAEF8
+ str r0, [r4, #0x2c]
+ ldr r0, _021D8F34 ; =MOD63_021D8CA8
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #1
+ strb r0, [r4, #0x1a]
+ pop {r4, pc}
+ nop
+_021D8F34: .word MOD63_021D8CA8
+ thumb_func_end MOD63_021D8F0C
+
+ thumb_func_start MOD63_021D8F38
+MOD63_021D8F38: ; 0x021D8F38
+ 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, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x13
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x13
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x14
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x15
+ mov r3, #6
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ mov r1, #0x12
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ mov r1, #0x12
+ mov r2, #4
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ mov r1, #1
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #2
+ mov r3, #1
+ bl FUN_020068C8
+ mov r1, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x16
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x16
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x48
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x49
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ mov r1, #0x47
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021D90C8 ; =0x04000050
+ mov r1, #2
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021D90CC ; =0x04001050
+ mov r1, #2
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #1
+ add r1, r0, #0
+ bl OS_WaitIrq
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ bl FUN_0201E788
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_021D90C8: .word 0x04000050
+_021D90CC: .word 0x04001050
+ thumb_func_end MOD63_021D8F38
+
+ thumb_func_start MOD63_021D90D0
+MOD63_021D90D0: ; 0x021D90D0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ add r5, r1, #0
+ bl MOD63_021DB1AC
+ ldrb r0, [r4, #1]
+ cmp r0, #5
+ bls _021D90E6
+ b _021D9208
+_021D90E6:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D90F2: ; jump table
+ .short _021D90FE - _021D90F2 - 2 ; case 0
+ .short _021D9122 - _021D90F2 - 2 ; case 1
+ .short _021D9148 - _021D90F2 - 2 ; case 2
+ .short _021D91AE - _021D90F2 - 2 ; case 3
+ .short _021D91CE - _021D90F2 - 2 ; case 4
+ .short _021D91FA - _021D90F2 - 2 ; case 5
+_021D90FE:
+ mov r2, #0
+ strb r2, [r4, #7]
+ strb r2, [r4, #6]
+ ldr r0, _021D9210 ; =MOD63_021D92A4
+ strb r2, [r4, #8]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ mov r0, #1
+ ldr r1, _021D9214 ; =0x00000494
+ add r2, r0, #0
+ bl FUN_0200433C
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D9122:
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _021D9208
+ cmp r5, #0x73
+ blt _021D9208
+ mov r2, #0
+ strb r2, [r4, #7]
+ mov r0, #0x10
+ strb r0, [r4, #6]
+ ldr r0, _021D9218 ; =MOD63_021D9300
+ strb r2, [r4, #8]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D9148:
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _021D9208
+ ldr r0, _021D921C ; =0x00000109
+ cmp r5, r0
+ blt _021D9208
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021D9220 ; =0x04000050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ ldr r0, _021D9224 ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ mov r3, #0
+ bl G2x_SetBlendAlpha_
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r2, #0
+ strb r2, [r4, #7]
+ strb r2, [r4, #6]
+ ldr r0, _021D9228 ; =MOD63_021D9360
+ strb r2, [r4, #8]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D91AE:
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _021D9208
+ mov r2, #0
+ strb r2, [r4, #7]
+ strb r2, [r4, #6]
+ ldr r0, _021D922C ; =MOD63_021D93A8
+ strb r2, [r4, #8]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x10]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D91CE:
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _021D9208
+ ldr r0, _021D9230 ; =0x000001EA
+ cmp r5, r0
+ blt _021D9208
+ mov r0, #0x12
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #2
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9208
+_021D91FA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9208
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D9208:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D9210: .word MOD63_021D92A4
+_021D9214: .word 0x00000494
+_021D9218: .word MOD63_021D9300
+_021D921C: .word 0x00000109
+_021D9220: .word 0x04000050
+_021D9224: .word 0x04001050
+_021D9228: .word MOD63_021D9360
+_021D922C: .word MOD63_021D93A8
+_021D9230: .word 0x000001EA
+ thumb_func_end MOD63_021D90D0
+
+ thumb_func_start MOD63_021D9234
+MOD63_021D9234: ; 0x021D9234
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ ldrb r0, [r4, #0x1a]
+ cmp r0, #0
+ beq _021D9286
+ ldr r0, [r4, #0x2c]
+ bl MOD63_021DAF9C
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ 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, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #7
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ bl FUN_02016A18
+ mov r0, #0
+ strb r0, [r4, #0x1a]
+_021D9286:
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _021D92A0
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _021D9296
+ bl ErrorHandling
+_021D9296:
+ ldr r0, [r4, #0x28]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x28]
+_021D92A0:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D9234
+
+ thumb_func_start MOD63_021D92A4
+MOD63_021D92A4: ; 0x021D92A4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #7]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #7]
+ cmp r1, #6
+ blo _021D92C0
+ mov r1, #0
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #6]
+ add r1, r1, #1
+ strb r1, [r4, #6]
+_021D92C0:
+ ldrb r1, [r4, #6]
+ cmp r1, #0x10
+ blo _021D92D2
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #1
+ strb r0, [r4, #8]
+_021D92D2:
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D92F8 ; =0x04000050
+ mov r1, #2
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D92FC ; =0x04001050
+ mov r1, #2
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D92F8: .word 0x04000050
+_021D92FC: .word 0x04001050
+ thumb_func_end MOD63_021D92A4
+
+ thumb_func_start MOD63_021D9300
+MOD63_021D9300: ; 0x021D9300
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #7]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #7]
+ cmp r1, #4
+ blo _021D931C
+ mov r1, #0
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #6]
+ sub r1, r1, #1
+ strb r1, [r4, #6]
+_021D931C:
+ ldrb r1, [r4, #6]
+ cmp r1, #0
+ bne _021D9332
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r1, #1
+ strb r1, [r4, #8]
+ ldr r0, [r4, #0x18]
+ strb r1, [r0]
+_021D9332:
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D9358 ; =0x04000050
+ mov r1, #2
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D935C ; =0x04001050
+ mov r1, #2
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D9358: .word 0x04000050
+_021D935C: .word 0x04001050
+ thumb_func_end MOD63_021D9300
+
+ thumb_func_start MOD63_021D9360
+MOD63_021D9360: ; 0x021D9360
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #7]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #7]
+ cmp r1, #4
+ blo _021D937C
+ mov r1, #0
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #6]
+ add r1, r1, #1
+ strb r1, [r4, #6]
+_021D937C:
+ ldrb r1, [r4, #6]
+ cmp r1, #0x10
+ blo _021D938E
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #1
+ strb r0, [r4, #8]
+_021D938E:
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D93A4 ; =0x04000050
+ mov r1, #4
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D93A4: .word 0x04000050
+ thumb_func_end MOD63_021D9360
+
+ thumb_func_start MOD63_021D93A8
+MOD63_021D93A8: ; 0x021D93A8
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r1, #0
+ ldrb r1, [r4, #7]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #7]
+ cmp r1, #4
+ blo _021D93C4
+ mov r1, #0
+ strb r1, [r4, #7]
+ ldrb r1, [r4, #6]
+ add r1, r1, #1
+ strb r1, [r4, #6]
+_021D93C4:
+ ldrb r1, [r4, #6]
+ cmp r1, #0x10
+ blo _021D93D6
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x10]
+ mov r0, #1
+ strb r0, [r4, #8]
+_021D93D6:
+ mov r0, #0x10
+ str r0, [sp]
+ ldrb r3, [r4, #6]
+ ldr r0, _021D93EC ; =0x04001050
+ mov r1, #4
+ mov r2, #8
+ bl G2x_SetBlendAlpha_
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D93EC: .word 0x04001050
+ thumb_func_end MOD63_021D93A8
+
+ thumb_func_start MOD63_021D93F0
+MOD63_021D93F0: ; 0x021D93F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r5, #0
+ add r4, #0x34
+ cmp r0, #0
+ beq _021D9402
+ mov r0, #4
+ strb r0, [r4]
+_021D9402:
+ ldrb r0, [r4]
+ cmp r0, #4
+ bhi _021D9492
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9414: ; jump table
+ .short _021D941E - _021D9414 - 2 ; case 0
+ .short _021D942C - _021D9414 - 2 ; case 1
+ .short _021D943C - _021D9414 - 2 ; case 2
+ .short _021D9452 - _021D9414 - 2 ; case 3
+ .short _021D9488 - _021D9414 - 2 ; case 4
+_021D941E:
+ add r0, r5, #0
+ bl MOD63_021D9498
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D9492
+_021D942C:
+ add r5, #0x34
+ add r0, r5, #0
+ bl MOD63_021D96A0
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D9492
+_021D943C:
+ add r0, r5, #0
+ add r0, #0x34
+ bl MOD63_021D9810
+ mov r0, #1
+ add r5, #0x39
+ strb r0, [r5]
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+ b _021D9492
+_021D9452:
+ add r0, r5, #0
+ ldr r1, [r5, #4]
+ add r0, #0x34
+ bl MOD63_021D99EC
+ cmp r0, #0
+ beq _021D9466
+ ldrb r0, [r4]
+ add r0, r0, #1
+ strb r0, [r4]
+_021D9466:
+ ldr r0, [r5, #0x44]
+ bl MOD63_021DAC18
+ add r0, r5, #0
+ add r0, #0x39
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D9480
+ add r5, #0x34
+ add r0, r5, #0
+ bl MOD63_021D9980
+ b _021D9492
+_021D9480:
+ ldr r0, [r5, #0x4c]
+ bl MOD63_021DB5A8
+ b _021D9492
+_021D9488:
+ add r0, r5, #0
+ bl MOD63_021D95A8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D9492:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D93F0
+
+ thumb_func_start MOD63_021D9498
+MOD63_021D9498: ; 0x021D9498
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD63_021D88B0
+ add r0, r5, #0
+ bl MOD63_021D8A04
+ add r0, r5, #0
+ bl MOD63_021D8BD8
+ bl MOD63_021DA6E0
+ add r4, r0, #0
+ bl MOD63_021DB498
+ add r6, r0, #0
+ mov r0, #0x4c
+ add r1, r4, #0
+ bl FUN_02016998
+ str r0, [r5, #0x44]
+ mov r0, #0x10
+ bl MOD63_021DAF20
+ str r0, [r5, #0x48]
+ mov r0, #0x4c
+ add r1, r6, #0
+ bl FUN_02016998
+ str r0, [r5, #0x4c]
+ ldr r0, [r5, #0x44]
+ mov r1, #0
+ add r2, r4, #0
+ bl Call_FillMemWithValue
+ ldr r0, [r5, #0x4c]
+ mov r1, #0
+ add r2, r6, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ mov r1, #4
+ add r0, #0x3b
+ strb r1, [r0]
+ ldr r0, [r5, #0x4c]
+ bl MOD63_021DB49C
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ str r0, [r5, #0x40]
+ ldr r0, _021D9588 ; =0x021C4918
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ ldr r6, _021D958C ; =0x021DBDE8
+ ldr r7, _021D9590 ; =0x021DBAD0
+ mov r4, #0
+_021D950C:
+ mov r0, #0xc
+ add r1, r4, #0
+ mul r1, r0
+ add r3, r6, r1
+ ldr r2, [r3, #4]
+ ldr r1, [r6, r1]
+ ldr r3, [r3, #8]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ add r0, r4, #0
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ asr r3, r3, #0x10
+ bl FUN_020B8418
+ lsl r1, r4, #1
+ ldrh r1, [r7, r1]
+ add r0, r4, #0
+ bl FUN_020B8404
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D950C
+ ldr r0, _021D9594 ; =0x00004210
+ ldr r1, _021D9598 ; =0x0000318A
+ mov r2, #0
+ bl FUN_020B83E0
+ ldr r0, _021D959C ; =0x00004A52
+ ldr r1, _021D95A0 ; =0x000039CE
+ mov r2, #0
+ bl FUN_020B83BC
+ mov r0, #0x1f
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xe
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_020B8390
+ ldr r0, _021D95A4 ; =MOD63_021D8CB0
+ add r1, r5, #0
+ bl FUN_02015F10
+ mov r0, #0x10
+ mov r1, #1
+ mov r2, #2
+ bl FUN_0200A274
+ mov r0, #1
+ add r5, #0x36
+ strb r0, [r5]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9588: .word 0x021C4918
+_021D958C: .word 0x021DBDE8
+_021D9590: .word 0x021DBAD0
+_021D9594: .word 0x00004210
+_021D9598: .word 0x0000318A
+_021D959C: .word 0x00004A52
+_021D95A0: .word 0x000039CE
+_021D95A4: .word MOD63_021D8CB0
+ thumb_func_end MOD63_021D9498
+
+ thumb_func_start MOD63_021D95A8
+MOD63_021D95A8: ; 0x021D95A8
+ push {r4, r5, r6, lr}
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ add r5, r0, #0
+ ldr r1, [r2]
+ ldr r0, _021D969C ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ add r0, r5, #0
+ add r0, #0x38
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D95F6
+ bl FUN_0201EB98
+ ldr r0, [r5, #0x78]
+ bl FUN_0201EB70
+ mov r4, #0
+ mov r6, #0x58
+_021D95D0:
+ add r0, r4, #0
+ mul r0, r6
+ add r0, r5, r0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #6
+ blo _021D95D0
+ ldr r0, [r5, #0x70]
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x38
+ strb r1, [r0]
+_021D95F6:
+ add r0, r5, #0
+ add r0, #0x37
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D9624
+ ldr r0, [r5, #0x44]
+ bl MOD63_021DAA04
+ mov r4, #0
+_021D9608:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x50]
+ bl FUN_02016A18
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D9608
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0x37
+ strb r1, [r0]
+_021D9624:
+ add r0, r5, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D9690
+ ldr r0, [r5, #0x48]
+ cmp r0, #0
+ beq _021D963C
+ bl MOD63_021DAF4C
+ mov r0, #0
+ str r0, [r5, #0x48]
+_021D963C:
+ ldr r0, [r5, #0x44]
+ cmp r0, #0
+ beq _021D964A
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r5, #0x44]
+_021D964A:
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0
+ beq _021D965E
+ bl MOD63_021DB580
+ ldr r0, [r5, #0x4c]
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r5, #0x4c]
+_021D965E:
+ ldr r0, [r5, #0xc]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r5, #0xc]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r5, #0xc]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r5, #0xc]
+ bl FUN_02016A18
+ ldr r0, [r5, #0x10]
+ bl FUN_020223BC
+ mov r0, #0
+ add r5, #0x36
+ strb r0, [r5]
+_021D9690:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ pop {r4, r5, r6, pc}
+ nop
+_021D969C: .word 0xFFFF1FFF
+ thumb_func_end MOD63_021D95A8
+
+ thumb_func_start MOD63_021D96A0
+MOD63_021D96A0: ; 0x021D96A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ ldr r3, _021D980C ; =0x021DBB2C
+ add r2, sp, #0x18
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #0x80
+ mov r1, #0x4c
+ bl FUN_02006670
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x2c
+ mov r4, #0
+ str r0, [sp, #0x14]
+_021D96C6:
+ lsl r7, r4, #2
+ add r1, sp, #0x18
+ ldr r0, [sp, #0x10]
+ ldr r1, [r1, r7]
+ mov r2, #0x4c
+ add r6, r5, r7
+ bl FUN_02006704
+ str r0, [r6, #0x1c]
+ cmp r0, #0
+ beq _021D96F4
+ ldr r1, [sp, #0x14]
+ add r1, r1, r7
+ bl FUN_020B0138
+ cmp r0, #0
+ bne _021D96F8
+ ldr r0, [r6, #0x2c]
+ bl FUN_02016A18
+ bl ErrorHandling
+ b _021D96F8
+_021D96F4:
+ bl ErrorHandling
+_021D96F8:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021D96C6
+ ldr r0, [sp, #0x10]
+ bl FUN_020066F4
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x1c
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x1a
+ mov r3, #3
+ bl FUN_020068C8
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r5, #0x2c]
+ mov r2, #0xa
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x11
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0xf
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r0, #0x80
+ mov r1, #0x10
+ mov r2, #4
+ mov r3, #0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x1b
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x19
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0xc]
+ mov r0, #0x80
+ mov r1, #0x18
+ mov r3, #2
+ bl FUN_020068C8
+ ldr r0, [r5, #0x10]
+ bl MOD63_021DA6E8
+ ldr r0, [r5, #0x10]
+ bl MOD63_021DAA5C
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x14]
+ bl MOD63_021DABCC
+ mov r0, #0xe
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ mov r0, #1
+ strb r0, [r5, #3]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D980C: .word 0x021DBB2C
+ thumb_func_end MOD63_021D96A0
+
+ thumb_func_start MOD63_021D9810
+MOD63_021D9810: ; 0x021D9810
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ add r5, r0, #0
+ mov r0, #0x80
+ mov r1, #0x46
+ mov r2, #0x4c
+ bl LoadFromNarc_2
+ str r0, [r5, #0x3c]
+ bl FUN_020BC0FC
+ str r0, [r5, #0x40]
+ bl FUN_0201B3C4
+ cmp r0, #0
+ bne _021D9834
+ bl ErrorHandling
+_021D9834:
+ ldr r0, [r5, #0x40]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021D9840
+ bl ErrorHandling
+_021D9840:
+ ldr r2, [r5, #0x40]
+ ldr r0, [r5, #0x3c]
+ ldr r1, [r2, #0x14]
+ add r1, r2, r1
+ sub r1, r1, r0
+ bl FUN_02016B44
+ mov r0, #0x80
+ mov r1, #0x4c
+ bl FUN_02006670
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x48
+ mov r7, #0
+ str r0, [sp, #0x10]
+_021D9862:
+ ldr r1, _021D9964 ; =0x021DBB90
+ lsl r2, r7, #2
+ ldr r1, [r1, r2]
+ mov r0, #0x58
+ add r6, r7, #0
+ mul r6, r0
+ ldr r0, [sp, #0xc]
+ mov r2, #0x4c
+ bl FUN_02006704
+ add r1, r5, r6
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, r6
+ add r0, #0x9c
+ ldr r0, [r0]
+ ldr r1, [r5, #0x40]
+ bl FUN_0201B3A8
+ cmp r0, #0
+ bne _021D9890
+ bl ErrorHandling
+_021D9890:
+ add r0, r5, r6
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl FUN_020BC13C
+ ldrb r0, [r0, #9]
+ cmp r0, #1
+ beq _021D98A4
+ bl ErrorHandling
+_021D98A4:
+ add r0, r5, r6
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl FUN_020BC13C
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r4, r0, r1
+ bne _021D98BC
+ bl ErrorHandling
+_021D98BC:
+ ldr r0, [sp, #0x10]
+ add r1, r4, #0
+ add r0, r0, r6
+ bl FUN_020B80B4
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x40
+ bl FUN_020BC094
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x80
+ bl FUN_020BC094
+ mov r2, #2
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #8
+ bl FUN_020BC094
+ mov r2, #1
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #0xa
+ bl FUN_020BC094
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0xf
+ bl FUN_020BC02C
+ add r0, r7, #1
+ lsl r0, r0, #0x18
+ lsr r7, r0, #0x18
+ cmp r7, #6
+ blo _021D9862
+ ldr r0, [sp, #0xc]
+ bl FUN_020066F4
+ mov r0, #0x4c
+ bl FUN_0201EB64
+ add r3, sp, #0x20
+ ldr r4, _021D9968 ; =0x021DBAE4
+ str r0, [r5, #0x44]
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ ldr r1, _021D996C ; =0x0029AEC1
+ str r0, [r3]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x44]
+ ldr r3, _021D9970 ; =0x000005C1
+ str r0, [sp, #8]
+ add r0, r2, #0
+ ldr r2, _021D9974 ; =0x021DBB80
+ bl FUN_0201ECA8
+ ldr r0, _021D9978 ; =0x00000981
+ ldr r1, [r5, #0x44]
+ bl FUN_0201EEF0
+ ldr r4, _021D997C ; =0x021DBB08
+ add r3, sp, #0x14
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ ldr r1, [r5, #0x44]
+ add r0, r2, #0
+ bl FUN_0201EF70
+ ldr r0, [r5, #0x44]
+ bl FUN_0201EB8C
+ mov r0, #1
+ strb r0, [r5, #4]
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9964: .word 0x021DBB90
+_021D9968: .word 0x021DBAE4
+_021D996C: .word 0x0029AEC1
+_021D9970: .word 0x000005C1
+_021D9974: .word 0x021DBB80
+_021D9978: .word 0x00000981
+_021D997C: .word 0x021DBB08
+ thumb_func_end MOD63_021D9810
+
+ thumb_func_start MOD63_021D9980
+MOD63_021D9980: ; 0x021D9980
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x3c
+ ldr r4, _021D99E4 ; =0x021DBD4C
+ add r5, r0, #0
+ add r3, sp, #0x18
+ mov r2, #4
+_021D998C:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D998C
+ ldr r0, [r4]
+ add r2, sp, #0xc
+ str r0, [r3]
+ ldr r3, _021D99E8 ; =0x021DBAFC
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, sp, #0
+ str r0, [r2]
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ mov r4, #0
+ add r5, #0x48
+ add r7, sp, #0
+ mov r6, #0x58
+_021D99BE:
+ add r0, r4, #0
+ mul r0, r6
+ add r0, r5, r0
+ add r1, r7, #0
+ add r2, sp, #0x18
+ add r3, sp, #0xc
+ bl FUN_0201B26C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #6
+ blo _021D99BE
+ mov r0, #0
+ mov r1, #1
+ bl FUN_020222B4
+ add sp, #0x3c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D99E4: .word 0x021DBD4C
+_021D99E8: .word 0x021DBAFC
+ thumb_func_end MOD63_021D9980
+
+ thumb_func_start MOD63_021D99EC
+MOD63_021D99EC: ; 0x021D99EC
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldrb r0, [r4, #6]
+ add r5, r1, #0
+ cmp r0, #0
+ bne _021D9A00
+ ldr r0, [r4, #0x14]
+ bl MOD63_021DB38C
+_021D9A00:
+ ldrb r0, [r4, #6]
+ ldrb r1, [r4, #7]
+ add r0, r0, #1
+ bl _s32_div_f
+ strb r1, [r4, #6]
+ ldrb r0, [r4, #1]
+ cmp r0, #0x11
+ bhi _021D9B0C
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9A1E: ; jump table
+ .short _021D9A42 - _021D9A1E - 2 ; case 0
+ .short _021D9A6A - _021D9A1E - 2 ; case 1
+ .short _021D9A7A - _021D9A1E - 2 ; case 2
+ .short _021D9AB8 - _021D9A1E - 2 ; case 3
+ .short _021D9AEE - _021D9A1E - 2 ; case 4
+ .short _021D9B3E - _021D9A1E - 2 ; case 5
+ .short _021D9B72 - _021D9A1E - 2 ; case 6
+ .short _021D9BC8 - _021D9A1E - 2 ; case 7
+ .short _021D9C04 - _021D9A1E - 2 ; case 8
+ .short _021D9C70 - _021D9A1E - 2 ; case 9
+ .short _021D9CB4 - _021D9A1E - 2 ; case 10
+ .short _021D9CFC - _021D9A1E - 2 ; case 11
+ .short _021D9D38 - _021D9A1E - 2 ; case 12
+ .short _021D9D94 - _021D9A1E - 2 ; case 13
+ .short _021D9DF8 - _021D9A1E - 2 ; case 14
+ .short _021D9E48 - _021D9A1E - 2 ; case 15
+ .short _021D9E84 - _021D9A1E - 2 ; case 16
+ .short _021D9E9A - _021D9A1E - 2 ; case 17
+_021D9A42:
+ mov r0, #0xa
+ lsl r0, r0, #6
+ cmp r5, r0
+ blt _021D9B0C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E74C
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #8
+ mov r1, #0
+ mov r2, #0x10
+ mov r3, #1
+ bl FUN_0200A208
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9A6A:
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl MOD63_021DACA0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9A7A:
+ ldr r0, _021D9DCC ; =0x000002E9
+ cmp r5, r0
+ bne _021D9A88
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+_021D9A88:
+ ldr r0, _021D9DD0 ; =0x000003C5
+ cmp r5, r0
+ blt _021D9B0C
+ mov r0, #7
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x12
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ ldr r3, _021D9DD4 ; =0x00007FFF
+ mov r0, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #0x10
+ strb r0, [r4, #7]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9AB8:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD63_021D9F38
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD63_021DAD6C
+ ldr r0, _021D9DD8 ; =0x00000631
+ cmp r5, r0
+ blt _021D9B0C
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ mov r1, #0
+ str r0, [sp, #8]
+ ldr r3, _021D9DD4 ; =0x00007FFF
+ mov r0, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9AEE:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD63_021D9F38
+ ldr r0, [r4, #0x10]
+ add r1, r5, #0
+ bl MOD63_021DAD6C
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9B0C
+ ldr r0, _021D9DDC ; =0x0000064A
+ cmp r5, r0
+ bge _021D9B0E
+_021D9B0C:
+ b _021D9EA0
+_021D9B0E:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #1
+ bl MOD63_021DAC24
+ bl MOD63_021D8CC0
+ mov r0, #0
+ strb r0, [r4, #5]
+ mov r0, #0x12
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ ldr r3, _021D9DD4 ; =0x00007FFF
+ mov r0, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9B3E:
+ add r0, r4, #0
+ bl MOD63_021D9EE0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9C12
+ ldr r0, _021D9DE0 ; =0x000006B3
+ cmp r5, r0
+ blt _021D9C12
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9B72:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9C12
+ mov r1, #0
+ ldr r0, _021D9DE4 ; =0x04000050
+ mov r2, #0x38
+ add r3, r1, #0
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #8
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAD18
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9BC8:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9C12
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ add r2, r5, #0
+ bl MOD63_021DB5CC
+ cmp r0, #0
+ beq _021D9C12
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9C04:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9C12
+ ldr r0, _021D9DE8 ; =0x00000721
+ cmp r5, r0
+ bge _021D9C14
+_021D9C12:
+ b _021D9EA0
+_021D9C14:
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl MOD63_021DACA0
+ mov r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAC24
+ mov r1, #1
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAC24
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #1
+ bl MOD63_021DAD18
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x38]
+ mov r2, #7
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ mov r2, #1
+ bl MOD63_021DAC24
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9C70:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, _021D9DE8 ; =0x00000721
+ cmp r5, r0
+ blt _021D9D46
+ ldr r0, [r4, #0x10]
+ bl MOD63_021DACC0
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, _021D9DEC ; =0x00000785
+ cmp r5, r0
+ blt _021D9D46
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9CB4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ mov r2, #0
+ bl MOD63_021DAD18
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x30]
+ mov r2, #7
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ mov r2, #0
+ bl MOD63_021DAC24
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9CFC:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ add r2, r5, #0
+ bl MOD63_021DB5CC
+ cmp r0, #0
+ beq _021D9D46
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9D38:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9D46
+ ldr r0, _021D9DF0 ; =0x000007F8
+ cmp r5, r0
+ bgt _021D9D48
+_021D9D46:
+ b _021D9EA0
+_021D9D48:
+ mov r1, #1
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAD18
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #1
+ bl MOD63_021DAC24
+ ldr r0, [r4, #0x10]
+ bl MOD63_021DAC6C
+ ldr r0, [r4, #0x10]
+ mov r1, #4
+ bl MOD63_021DAC80
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #8]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9D94:
+ add r0, r4, #0
+ bl MOD63_021D9F00
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EA0
+ ldr r0, _021D9DF4 ; =0x00000861
+ cmp r5, r0
+ ble _021D9EA0
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ str r0, [r4, #8]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+ .align 2, 0
+_021D9DCC: .word 0x000002E9
+_021D9DD0: .word 0x000003C5
+_021D9DD4: .word 0x00007FFF
+_021D9DD8: .word 0x00000631
+_021D9DDC: .word 0x0000064A
+_021D9DE0: .word 0x000006B3
+_021D9DE4: .word 0x04000050
+_021D9DE8: .word 0x00000721
+_021D9DEC: .word 0x00000785
+_021D9DF0: .word 0x000007F8
+_021D9DF4: .word 0x00000861
+_021D9DF8:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EA0
+ mov r1, #0
+ ldr r0, [r4, #0x10]
+ add r2, r1, #0
+ bl MOD63_021DAD18
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ mov r2, #0
+ bl MOD63_021DAD18
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x34]
+ mov r2, #7
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9E48:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EA0
+ ldr r0, [r4, #0x18]
+ mov r1, #2
+ add r2, r5, #0
+ bl MOD63_021DB5CC
+ cmp r0, #0
+ beq _021D9EA0
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9E84:
+ add r0, r4, #0
+ bl MOD63_021D9F20
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9EA0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021D9EA0
+_021D9E9A:
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D9EA0:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021D99EC
+
+ thumb_func_start MOD63_021D9EA8
+MOD63_021D9EA8: ; 0x021D9EA8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ lsl r7, r2, #5
+ add r6, r1, #0
+ ldr r0, [r5, #0xc]
+ add r1, r7, #0
+ add r4, r3, #0
+ bl DC_FlushRange
+ ldr r1, [r5, #0xc]
+ cmp r6, #0
+ bne _021D9ED0
+ lsl r0, r4, #1
+ add r0, r1, r0
+ add r1, sp, #8
+ ldrb r1, [r1, #0x10]
+ add r2, r7, #0
+ bl GX_LoadBGPltt
+ pop {r3, r4, r5, r6, r7, pc}
+_021D9ED0:
+ lsl r0, r4, #1
+ add r0, r1, r0
+ add r1, sp, #8
+ ldrb r1, [r1, #0x10]
+ add r2, r7, #0
+ bl GXS_LoadBGPltt
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD63_021D9EA8
+
+ thumb_func_start MOD63_021D9EE0
+MOD63_021D9EE0: ; 0x021D9EE0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ add r0, r1, #1
+ str r0, [r4, #8]
+ cmp r1, #0x18
+ ble _021D9EFE
+ mov r2, #4
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ sub r3, r2, #5
+ bl FUN_020179E0
+ mov r0, #0
+ str r0, [r4, #8]
+_021D9EFE:
+ pop {r4, pc}
+ thumb_func_end MOD63_021D9EE0
+
+ thumb_func_start MOD63_021D9F00
+MOD63_021D9F00: ; 0x021D9F00
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ add r0, r1, #1
+ str r0, [r4, #8]
+ cmp r1, #3
+ ble _021D9F1E
+ mov r2, #1
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r0, #0
+ str r0, [r4, #8]
+_021D9F1E:
+ pop {r4, pc}
+ thumb_func_end MOD63_021D9F00
+
+ thumb_func_start MOD63_021D9F20
+MOD63_021D9F20: ; 0x021D9F20
+ push {r4, lr}
+ add r4, r0, #0
+ mov r2, #1
+ add r3, r2, #0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ sub r3, #0x11
+ bl FUN_020179E0
+ mov r0, #0
+ str r0, [r4, #8]
+ pop {r4, pc}
+ thumb_func_end MOD63_021D9F20
+
+ thumb_func_start MOD63_021D9F38
+MOD63_021D9F38: ; 0x021D9F38
+ push {r4, r5, r6, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ add r5, r1, #0
+ add r0, sp, #0x44
+ mov r1, #0
+ str r1, [r0]
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ ldr r1, _021DA078 ; =0x000004AB
+ cmp r5, r1
+ bgt _021D9FE2
+ ldr r0, [r4, #0x44]
+ bl FUN_0201F008
+ ldr r1, _021DA07C ; =0x000005C1
+ sub r0, #0x20
+ cmp r0, r1
+ ble _021D9F68
+ ldr r0, _021DA080 ; =0x0000FFE0
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EF2C
+ b _021D9F70
+_021D9F68:
+ add r0, r1, #0
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EEF0
+_021D9F70:
+ mov r0, #2
+ ldr r1, [sp, #0x4c]
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ str r0, [sp, #0x4c]
+ ldr r1, [r4, #0x44]
+ add r0, sp, #0x44
+ bl FUN_0201EF70
+ ldr r0, _021DA078 ; =0x000004AB
+ cmp r5, r0
+ bne _021DA074
+ ldr r5, _021DA084 ; =0x021DBAD8
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ ldr r1, _021DA088 ; =0x0029AEC1
+ str r0, [r3]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x44]
+ ldr r3, _021DA07C ; =0x000005C1
+ str r0, [sp, #8]
+ add r0, r2, #0
+ ldr r2, _021DA08C ; =0x021DBB80
+ bl FUN_0201ECA8
+ ldr r5, _021DA090 ; =0x021DBB20
+ add r3, sp, #0x2c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r1, [r4, #0x44]
+ add r0, r2, #0
+ bl FUN_0201EF70
+ ldr r2, _021DA094 ; =0x021DBAC8
+ add r1, sp, #0xc
+ ldrh r3, [r2]
+ add r0, sp, #0xc
+ strh r3, [r1]
+ ldrh r3, [r2, #2]
+ strh r3, [r1, #2]
+ ldrh r3, [r2, #4]
+ ldrh r2, [r2, #6]
+ strh r3, [r1, #4]
+ strh r2, [r1, #6]
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EFB4
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+_021D9FE2:
+ add r1, #0xd2
+ cmp r5, r1
+ bgt _021DA044
+ mov r1, #1
+ ldr r2, [sp, #0x44]
+ lsl r1, r1, #0xc
+ add r1, r2, r1
+ str r1, [sp, #0x44]
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EF70
+ ldr r3, _021DA098 ; =0x0000057D
+ cmp r5, r3
+ bne _021DA074
+ ldr r6, _021DA09C ; =0x021DBB14
+ add r5, sp, #0x20
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ ldr r1, _021DA088 ; =0x0029AEC1
+ str r0, [r5]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x44]
+ add r3, #0x44
+ str r0, [sp, #8]
+ add r0, r2, #0
+ ldr r2, _021DA08C ; =0x021DBB80
+ bl FUN_0201ECA8
+ ldr r0, _021DA07C ; =0x000005C1
+ ldr r1, [r4, #0x44]
+ bl FUN_0201EEF0
+ ldr r5, _021DA0A0 ; =0x021DBAF0
+ add r3, sp, #0x14
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r1, [r4, #0x44]
+ add r0, r2, #0
+ bl FUN_0201EF70
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+_021DA044:
+ ldr r0, _021DA0A4 ; =0x00000618
+ cmp r5, r0
+ blt _021DA062
+ ldr r0, [r4, #0x44]
+ bl FUN_0201F008
+ mov r1, #1
+ add r0, #0x20
+ lsl r1, r1, #0xe
+ cmp r0, r1
+ bge _021DA062
+ ldr r1, [r4, #0x44]
+ mov r0, #0x20
+ bl FUN_0201EF2C
+_021DA062:
+ mov r0, #1
+ ldr r1, [sp, #0x4c]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x4c]
+ ldr r1, [r4, #0x44]
+ add r0, sp, #0x44
+ bl FUN_0201EF70
+_021DA074:
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DA078: .word 0x000004AB
+_021DA07C: .word 0x000005C1
+_021DA080: .word 0x0000FFE0
+_021DA084: .word 0x021DBAD8
+_021DA088: .word 0x0029AEC1
+_021DA08C: .word 0x021DBB80
+_021DA090: .word 0x021DBB20
+_021DA094: .word 0x021DBAC8
+_021DA098: .word 0x0000057D
+_021DA09C: .word 0x021DBB14
+_021DA0A0: .word 0x021DBAF0
+_021DA0A4: .word 0x00000618
+ thumb_func_end MOD63_021D9F38
+
+ thumb_func_start MOD63_021DA0A8
+MOD63_021DA0A8: ; 0x021DA0A8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r5, #0xa3
+ lsl r5, r5, #2
+ cmp r0, #0
+ beq _021DA0BA
+ mov r0, #3
+ strb r0, [r4, r5]
+_021DA0BA:
+ ldrb r0, [r4, r5]
+ cmp r0, #3
+ bhi _021DA116
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DA0CC: ; jump table
+ .short _021DA0D4 - _021DA0CC - 2 ; case 0
+ .short _021DA0E2 - _021DA0CC - 2 ; case 1
+ .short _021DA0F4 - _021DA0CC - 2 ; case 2
+ .short _021DA10C - _021DA0CC - 2 ; case 3
+_021DA0D4:
+ add r0, r4, #0
+ bl MOD63_021DA11C
+ ldrb r0, [r4, r5]
+ add r0, r0, #1
+ strb r0, [r4, r5]
+ b _021DA116
+_021DA0E2:
+ mov r0, #0xa3
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD63_021DA158
+ ldrb r0, [r4, r5]
+ add r0, r0, #1
+ strb r0, [r4, r5]
+ b _021DA116
+_021DA0F4:
+ mov r0, #0xa3
+ lsl r0, r0, #2
+ ldr r1, [r4, #4]
+ add r0, r4, r0
+ bl MOD63_021DA30C
+ cmp r0, #0
+ beq _021DA116
+ ldrb r0, [r4, r5]
+ add r0, r0, #1
+ strb r0, [r4, r5]
+ b _021DA116
+_021DA10C:
+ add r0, r4, #0
+ bl MOD63_021DA418
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DA116:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DA0A8
+
+ thumb_func_start MOD63_021DA11C
+MOD63_021DA11C: ; 0x021DA11C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD63_021D88D0
+ add r0, r4, #0
+ bl MOD63_021D8ADC
+ mov r0, #0xa6
+ ldr r1, [r4, #0xc]
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ ldr r0, _021DA150 ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ ldr r0, _021DA154 ; =0x0000028E
+ mov r1, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021DA150: .word 0x04000050
+_021DA154: .word 0x0000028E
+ thumb_func_end MOD63_021DA11C
+
+ thumb_func_start MOD63_021DA158
+MOD63_021DA158: ; 0x021DA158
+ push {r3, r4, r5, lr}
+ sub sp, #0x20
+ add r4, r0, #0
+ mov r0, #0x80
+ mov r1, #0x4c
+ bl FUN_02006670
+ mov r1, #0x35
+ mov r2, #0x4c
+ add r5, r0, #0
+ bl FUN_02006704
+ str r0, [r4, #0x10]
+ cmp r0, #0
+ beq _021DA18E
+ add r1, r4, #0
+ add r1, #0x14
+ bl FUN_020B0138
+ cmp r0, #0
+ bne _021DA192
+ ldr r0, [r4, #0x14]
+ bl FUN_02016A18
+ bl ErrorHandling
+ b _021DA192
+_021DA18E:
+ bl ErrorHandling
+_021DA192:
+ add r0, r5, #0
+ bl FUN_020066F4
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, [r4, #0x14]
+ mov r2, #9
+ add r3, r1, #0
+ bl MOD63_021D9EA8
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ mov r2, #9
+ bl MOD63_021D9EA8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x36
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3b
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x38
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3d
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x39
+ mov r3, #3
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3e
+ mov r3, #3
+ bl FUN_020068C8
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3a
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ str r3, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3f
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x37
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0xc]
+ mov r0, #0x80
+ mov r1, #0x3c
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0xe
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ mov r2, #1
+ mov r3, #0x40
+ bl FUN_020179E0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ bl FX_Inv
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ bl OS_WaitVBlankIntr
+ mov r0, #0x60
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ add r2, sp, #0x10
+ mov r3, #0x80
+ bl FUN_02017BD0
+ mov r0, #0x60
+ str r0, [sp]
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ add r2, sp, #0x10
+ mov r3, #0xc0
+ bl FUN_02017BD0
+ mov r0, #1
+ strb r0, [r4, #3]
+ add sp, #0x20
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DA158
+
+ thumb_func_start MOD63_021DA30C
+MOD63_021DA30C: ; 0x021DA30C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r5, r1, #0
+ ldrb r1, [r4, #1]
+ cmp r1, #3
+ bhi _021DA3EC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021DA326: ; jump table
+ .short _021DA32E - _021DA326 - 2 ; case 0
+ .short _021DA352 - _021DA326 - 2 ; case 1
+ .short _021DA36A - _021DA326 - 2 ; case 2
+ .short _021DA3DA - _021DA326 - 2 ; case 3
+_021DA32E:
+ ldr r0, _021DA3F8 ; =0x000008E3
+ cmp r5, r0
+ blt _021DA3EC
+ mov r0, #0x78
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021DA3EC
+_021DA352:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DA3EC
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [r4, #4]
+ str r0, [r4, #8]
+ b _021DA3EC
+_021DA36A:
+ ldr r0, _021DA3FC ; =0x0000097E
+ cmp r5, r0
+ bne _021DA378
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD63_021DA588
+_021DA378:
+ ldr r0, _021DA400 ; =0x000009D3
+ cmp r5, r0
+ bne _021DA386
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD63_021DA588
+_021DA386:
+ ldr r0, _021DA404 ; =0x000009F1
+ cmp r5, r0
+ bne _021DA394
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD63_021DA588
+_021DA394:
+ ldr r0, _021DA408 ; =0x00000A1E
+ cmp r5, r0
+ bne _021DA3A2
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD63_021DA588
+_021DA3A2:
+ ldr r0, _021DA40C ; =0x00000A64
+ cmp r5, r0
+ blt _021DA3AE
+ add r0, r4, #0
+ bl MOD63_021DA478
+_021DA3AE:
+ ldr r0, _021DA410 ; =0x00000A78
+ cmp r5, r0
+ blt _021DA3EC
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ mov r0, #0
+ ldr r3, _021DA414 ; =0x00007FFF
+ add r1, r0, #0
+ add r2, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD63_021DA504
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _021DA3EC
+_021DA3DA:
+ bl MOD63_021DA504
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021DA3EC
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021DA3EC:
+ add r0, r4, #0
+ bl MOD63_021DA5A0
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021DA3F8: .word 0x000008E3
+_021DA3FC: .word 0x0000097E
+_021DA400: .word 0x000009D3
+_021DA404: .word 0x000009F1
+_021DA408: .word 0x00000A1E
+_021DA40C: .word 0x00000A64
+_021DA410: .word 0x00000A78
+_021DA414: .word 0x00007FFF
+ thumb_func_end MOD63_021DA30C
+
+ thumb_func_start MOD63_021DA418
+MOD63_021DA418: ; 0x021DA418
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021DA470 ; =0x0000028E
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ beq _021DA458
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4, #0xc]
+ bl FUN_02016A18
+ ldr r0, _021DA470 ; =0x0000028E
+ mov r1, #0
+ strb r1, [r4, r0]
+_021DA458:
+ ldr r0, _021DA474 ; =0x0000028F
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ beq _021DA46E
+ add r0, #0xd
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021DA474 ; =0x0000028F
+ mov r1, #0
+ strb r1, [r4, r0]
+_021DA46E:
+ pop {r4, pc}
+ .align 2, 0
+_021DA470: .word 0x0000028E
+_021DA474: .word 0x0000028F
+ thumb_func_end MOD63_021DA418
+
+ thumb_func_start MOD63_021DA478
+MOD63_021DA478: ; 0x021DA478
+ push {r4, r5, lr}
+ sub sp, #0x2c
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FX_Inv
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #8]
+ bl FX_Inv
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ bl OS_WaitVBlankIntr
+ mov r0, #1
+ ldr r1, [r4, #4]
+ lsl r0, r0, #0xa
+ add r1, r1, r0
+ mov r0, #3
+ lsl r0, r0, #0xc
+ cmp r1, r0
+ bgt _021DA4FE
+ str r1, [r4, #4]
+ add r0, sp, #0x1c
+ str r0, [sp]
+ mov r0, #0x80
+ str r0, [sp, #4]
+ mov r0, #0x5a
+ str r0, [sp, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02017B60
+ mov r0, #1
+ ldr r1, [r4, #8]
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ str r0, [r4, #8]
+ add r0, sp, #0xc
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ mov r0, #0x5a
+ str r0, [sp, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02017B60
+_021DA4FE:
+ add sp, #0x2c
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DA478
+
+ thumb_func_start MOD63_021DA504
+MOD63_021DA504: ; 0x021DA504
+ push {r4, r5, lr}
+ sub sp, #0x2c
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FX_Inv
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0x1c]
+ str r1, [sp, #0x20]
+ str r1, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldr r0, [r4, #8]
+ bl FX_Inv
+ add r5, r0, #0
+ ldr r0, [r4, #8]
+ bl FX_Inv
+ mov r1, #0
+ str r5, [sp, #0xc]
+ str r1, [sp, #0x10]
+ str r1, [sp, #0x14]
+ str r0, [sp, #0x18]
+ bl OS_WaitVBlankIntr
+ mov r0, #2
+ ldr r1, [r4, #4]
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ str r0, [r4, #4]
+ add r0, sp, #0x1c
+ str r0, [sp]
+ mov r0, #0x80
+ str r0, [sp, #4]
+ mov r0, #0x5a
+ str r0, [sp, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02017B60
+ mov r0, #2
+ ldr r1, [r4, #8]
+ lsl r0, r0, #0xa
+ add r0, r1, r0
+ str r0, [r4, #8]
+ add r0, sp, #0xc
+ str r0, [sp]
+ mov r0, #0xc0
+ str r0, [sp, #4]
+ mov r0, #0x5a
+ str r0, [sp, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02017B60
+ add sp, #0x2c
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DA504
+
+ thumb_func_start MOD63_021DA588
+MOD63_021DA588: ; 0x021DA588
+ mov r1, #1
+ strb r1, [r0]
+ mov r2, #6
+ strb r2, [r0, #3]
+ mov r2, #0
+ strb r2, [r0, #1]
+ ldr r3, _021DA59C ; =FUN_0201E6E4
+ add r0, r1, #0
+ bx r3
+ nop
+_021DA59C: .word FUN_0201E6E4
+ thumb_func_end MOD63_021DA588
+
+ thumb_func_start MOD63_021DA5A0
+MOD63_021DA5A0: ; 0x021DA5A0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ ldrb r0, [r5, #0x18]
+ add r4, r5, #0
+ add r4, #0x18
+ cmp r0, #0
+ beq _021DA630
+ ldrb r3, [r4, #1]
+ ldr r0, _021DA634 ; =0x021DBF40
+ ldrb r1, [r4, #3]
+ ldrb r0, [r0, r3]
+ cmp r1, r0
+ blo _021DA614
+ mov r1, #0
+ str r1, [sp]
+ ldr r6, _021DA638 ; =0x021DBF48
+ ldr r0, [r5, #0x14]
+ ldrb r3, [r6, r3]
+ mov r2, #1
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ bl MOD63_021D9EA8
+ mov r0, #0x20
+ str r0, [sp]
+ ldrb r6, [r4, #1]
+ ldr r3, _021DA63C ; =0x021DBF44
+ ldr r0, [r5, #0x14]
+ ldrb r3, [r3, r6]
+ mov r1, #0
+ mov r2, #1
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ bl MOD63_021D9EA8
+ mov r0, #0x20
+ str r0, [sp]
+ ldr r0, [r5, #0x14]
+ mov r1, #1
+ ldrb r5, [r4, #1]
+ ldr r3, _021DA63C ; =0x021DBF44
+ add r2, r1, #0
+ ldrb r3, [r3, r5]
+ lsl r3, r3, #0x1c
+ lsr r3, r3, #0x18
+ bl MOD63_021D9EA8
+ mov r1, #0
+ strb r1, [r4, #3]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #4
+ blo _021DA618
+ strb r1, [r4]
+ b _021DA618
+_021DA614:
+ add r0, r1, #1
+ strb r0, [r4, #3]
+_021DA618:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ bne _021DA630
+ ldr r0, _021DA634 ; =0x021DBF40
+ ldrb r1, [r4, #3]
+ ldrb r0, [r0]
+ cmp r1, r0
+ blo _021DA630
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+_021DA630:
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021DA634: .word 0x021DBF40
+_021DA638: .word 0x021DBF48
+_021DA63C: .word 0x021DBF44
+ thumb_func_end MOD63_021DA5A0
+
+ thumb_func_start MOD63_021DA640
+MOD63_021DA640: ; 0x021DA640
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021DA66C ; =0x021DBE4C
+ 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, #5
+ mov r1, #0x4c
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DA66C: .word 0x021DBE4C
+ thumb_func_end MOD63_021DA640
+
+ thumb_func_start MOD63_021DA670
+MOD63_021DA670: ; 0x021DA670
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ add r6, r0, #0
+ mov r0, #0
+ str r6, [sp]
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r2, [sp, #0x10]
+ mov r2, #0x4b
+ add r5, r1, #0
+ lsl r2, r2, #2
+ ldr r1, [r5, r2]
+ add r4, r3, #0
+ str r1, [sp, #0x14]
+ add r1, r2, #4
+ ldr r1, [r5, r1]
+ add r3, r6, #0
+ str r1, [sp, #0x18]
+ add r1, r2, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ add r2, #0xc
+ str r1, [sp, #0x1c]
+ ldr r1, [r5, r2]
+ add r2, r6, #0
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x40]
+ add r1, r6, #0
+ bl FUN_02008AA4
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r4]
+ ldr r0, [sp, #0x40]
+ str r0, [r4, #4]
+ str r1, [r4, #8]
+ str r1, [r4, #0xc]
+ mov r0, #1
+ str r1, [r4, #0x10]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ strh r1, [r4, #0x20]
+ mov r0, #1
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ mov r0, #0x4c
+ str r0, [r4, #0x2c]
+ add sp, #0x2c
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD63_021DA670
+
+ thumb_func_start MOD63_021DA6E0
+MOD63_021DA6E0: ; 0x021DA6E0
+ mov r0, #0x1b
+ lsl r0, r0, #4
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD63_021DA6E0
+
+ thumb_func_start MOD63_021DA6E8
+MOD63_021DA6E8: ; 0x021DA6E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ add r5, r0, #0
+ ldr r1, [r2]
+ ldr r0, _021DA9FC ; =0xFFCFFFEF
+ and r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r2]
+ bl MOD63_021DA640
+ 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, #0x4c
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r0, #0x19
+ add r1, r5, #4
+ mov r2, #0x4c
+ bl FUN_02008C9C
+ mov r2, #1
+ str r0, [r5]
+ add r0, r5, #4
+ mov r1, #0
+ lsl r2, r2, #0x14
+ bl FUN_02008D24
+ ldr r4, _021DAA00 ; =0x021DBE28
+ mov r7, #0
+ add r6, r5, #0
+_021DA73C:
+ ldrb r0, [r4]
+ add r1, r7, #0
+ mov r2, #0x4c
+ bl FUN_02008DEC
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r6, r1]
+ add r7, r7, #1
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r7, #4
+ blt _021DA73C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x26
+ bl FUN_02008F34
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x27
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x28
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x29
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2a
+ mov r3, #0
+ bl FUN_02008F34
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x21
+ bl FUN_02008FEC
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x22
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x23
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x24
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #0x17
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x25
+ mov r3, #0
+ bl FUN_02008FEC
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2b
+ bl FUN_020090AC
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2c
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2d
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x59
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2e
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x2f
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x30
+ bl FUN_020090AC
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x31
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x32
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #3
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x33
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r5, r0]
+ mov r1, #0x80
+ mov r2, #0x34
+ mov r3, #0
+ bl FUN_020090AC
+ mov r1, #0x62
+ lsl r1, r1, #2
+ add r7, r1, #0
+ add r6, r1, #0
+ str r0, [r5, r1]
+ mov r4, #0
+ sub r7, #0x4c
+ sub r6, #0x48
+_021DA9DC:
+ ldr r0, [r5, r7]
+ bl FUN_02009A50
+ ldr r0, [r5, r6]
+ bl FUN_02009CF0
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #5
+ blt _021DA9DC
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DA9FC: .word 0xFFCFFFEF
+_021DAA00: .word 0x021DBE28
+ thumb_func_end MOD63_021DA6E8
+
+ thumb_func_start MOD63_021DAA04
+MOD63_021DAA04: ; 0x021DAA04
+ push {r3, r4, r5, r6, r7, lr}
+ mov r7, #5
+ add r5, r0, #0
+ mov r4, #0
+ lsl r7, r7, #6
+_021DAA0E:
+ lsl r0, r4, #4
+ add r6, r5, r0
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ ldr r0, [r6, r7]
+ bl FUN_02009E04
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #5
+ blo _021DAA0E
+ mov r6, #0x4b
+ mov r4, #0
+ lsl r6, r6, #2
+_021DAA32:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02008E2C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021DAA32
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DAA04
+
+ thumb_func_start MOD63_021DAA5C
+MOD63_021DAA5C: ; 0x021DAA5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xa4
+ ldr r3, _021DABC0 ; =0x021DBE5C
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x38
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r3, _021DABC4 ; =0x021DBE74
+ add r2, sp, #0x20
+ 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, _021DABC8 ; =0x021DBE8C
+ 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}
+ add r0, sp, #0x80
+ str r0, [sp]
+ mov r0, #0
+ add r1, r5, #0
+ mov r2, #1
+ add r3, sp, #0x50
+ bl MOD63_021DA670
+ mov r0, #5
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x58]
+ mov r0, #7
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x50
+ bl FUN_0201FE94
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, sp, #0x80
+ str r0, [sp]
+ mov r0, #1
+ add r1, r5, #0
+ add r2, r0, #0
+ add r3, sp, #0x50
+ bl MOD63_021DA670
+ mov r0, #5
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x58]
+ mov r0, #7
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x50
+ bl FUN_0201FE94
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD63_021DAC80
+ add r0, sp, #0x80
+ str r0, [sp]
+ mov r0, #2
+ add r1, r5, #0
+ mov r2, #1
+ add r3, sp, #0x50
+ bl MOD63_021DA670
+ mov r0, #5
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x58]
+ mov r0, #7
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x50
+ bl FUN_0201FE94
+ mov r1, #0x65
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0
+ str r0, [sp, #4]
+ add r7, sp, #0x20
+ add r6, sp, #8
+ add r4, sp, #0x38
+_021DAB58:
+ add r0, sp, #0x80
+ str r0, [sp]
+ mov r0, #3
+ add r1, r5, #0
+ mov r2, #0
+ add r3, sp, #0x50
+ bl MOD63_021DA670
+ ldr r0, [r7]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x58]
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x5c]
+ add r0, sp, #0x50
+ bl FUN_0201FE94
+ ldr r1, [r4]
+ lsl r1, r1, #2
+ add r2, r5, r1
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r2, r1]
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4]
+ lsl r0, r0, #2
+ add r1, r5, r0
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [sp, #4]
+ add r7, r7, #4
+ add r0, r0, #1
+ add r6, r6, #4
+ add r4, r4, #4
+ str r0, [sp, #4]
+ cmp r0, #6
+ blt _021DAB58
+ add sp, #0xa4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DABC0: .word 0x021DBE5C
+_021DABC4: .word 0x021DBE74
+_021DABC8: .word 0x021DBE8C
+ thumb_func_end MOD63_021DAA5C
+
+ thumb_func_start MOD63_021DABCC
+MOD63_021DABCC: ; 0x021DABCC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x58
+ add r2, r0, #0
+ add r0, sp, #0x34
+ add r6, r1, #0
+ str r0, [sp]
+ add r1, r2, #0
+ mov r0, #4
+ mov r2, #0
+ add r3, sp, #4
+ bl MOD63_021DA670
+ mov r0, #2
+ str r0, [sp, #0x2c]
+ mov r5, #0
+ add r7, sp, #4
+_021DABEC:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD63_021DAF80
+ add r4, r0, #0
+ add r0, r7, #0
+ bl FUN_0201FE94
+ str r0, [r4]
+ mov r1, #0
+ bl FUN_020200BC
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_020200A0
+ add r5, r5, #1
+ cmp r5, #0x10
+ blt _021DABEC
+ add sp, #0x58
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DABCC
+
+ thumb_func_start MOD63_021DAC18
+MOD63_021DAC18: ; 0x021DAC18
+ ldr r3, _021DAC20 ; =FUN_0201FDEC
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DAC20: .word FUN_0201FDEC
+ thumb_func_end MOD63_021DAC18
+
+ thumb_func_start MOD63_021DAC24
+MOD63_021DAC24: ; 0x021DAC24
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ ldr r3, _021DAC34 ; =FUN_020200A0
+ add r1, r2, #0
+ bx r3
+ .align 2, 0
+_021DAC34: .word FUN_020200A0
+ thumb_func_end MOD63_021DAC24
+
+ thumb_func_start MOD63_021DAC38
+MOD63_021DAC38: ; 0x021DAC38
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r2, #0
+ mov r2, #0x63
+ lsl r2, r2, #2
+ add r4, r0, r2
+ lsl r5, r1, #2
+ ldr r0, [r4, r5]
+ add r7, r3, #0
+ bl FUN_0202011C
+ add r3, r0, #0
+ add r2, sp, #0
+ ldmia r3!, {r0, r1}
+ mov ip, r2
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ mov r1, ip
+ str r0, [r2]
+ str r6, [sp]
+ str r7, [sp, #4]
+ ldr r0, [r4, r5]
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD63_021DAC38
+
+ thumb_func_start MOD63_021DAC6C
+MOD63_021DAC6C: ; 0x021DAC6C
+ push {r3, lr}
+ mov r2, #0xb
+ mov r3, #7
+ mov r1, #1
+ lsl r2, r2, #0x10
+ lsl r3, r3, #0x10
+ bl MOD63_021DAC38
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DAC6C
+
+ thumb_func_start MOD63_021DAC80
+MOD63_021DAC80: ; 0x021DAC80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_02020130
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_02020130
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DAC80
+
+ thumb_func_start MOD63_021DACA0
+MOD63_021DACA0: ; 0x021DACA0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_020200BC
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020200BC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DACA0
+
+ thumb_func_start MOD63_021DACC0
+MOD63_021DACC0: ; 0x021DACC0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202011C
+ add r5, r0, #0
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ mov r0, #0xe
+ ldr r1, [sp]
+ lsl r0, r0, #0xc
+ sub r1, r1, r0
+ mov r0, #0xb
+ lsl r0, r0, #0x10
+ str r1, [sp]
+ cmp r1, r0
+ bgt _021DAD04
+ str r0, [sp]
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021DAD04:
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DACC0
+
+ thumb_func_start MOD63_021DAD18
+MOD63_021DAD18: ; 0x021DAD18
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ lsl r4, r1, #2
+ mov r0, #0x63
+ add r1, r5, r4
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ add r6, r2, #0
+ bl FUN_02020354
+ mov r1, #1
+ bl FUN_020B19C4
+ add r7, r0, #0
+ cmp r6, #0
+ bne _021DAD44
+ ldr r0, _021DAD64 ; =0x021DBFA0
+ add r1, r7, #0
+ mov r2, #0x20
+ bl GX_LoadOBJPltt
+ pop {r3, r4, r5, r6, r7, pc}
+_021DAD44:
+ ldr r0, _021DAD68 ; =0x021DBF64
+ ldr r0, [r0, r4]
+ lsl r0, r0, #4
+ add r1, r5, r0
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ bl FUN_0200955C
+ ldr r0, [r0, #0xc]
+ add r1, r7, #0
+ mov r2, #0x20
+ bl GX_LoadOBJPltt
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DAD64: .word 0x021DBFA0
+_021DAD68: .word 0x021DBF64
+ thumb_func_end MOD63_021DAD18
+
+ thumb_func_start MOD63_021DAD6C
+MOD63_021DAD6C: ; 0x021DAD6C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r3, _021DAE44 ; =0x021DBE40
+ add r2, sp, #0x18
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldmia r3!, {r0, r1}
+ str r2, [sp, #8]
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r3, _021DAE48 ; =0x021DBE34
+ str r0, [r2]
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0xc
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r1, _021DAE4C ; =0x000005C8
+ str r0, [r2]
+ ldr r0, [sp, #4]
+ cmp r0, r1
+ blt _021DADE6
+ mov r4, #0
+_021DAD98:
+ ldr r0, [sp, #8]
+ lsl r7, r4, #2
+ ldr r0, [r0, r7]
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ add r5, r0, r1
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0x24
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldr r0, _021DAE50 ; =0x021DBF4C
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, r7]
+ sub r0, r1, r0
+ str r0, [sp, #0x24]
+ mov r0, #1
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #0x28]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _021DAD98
+_021DADE6:
+ ldr r1, _021DAE54 ; =0x000005E6
+ ldr r0, [sp, #4]
+ cmp r0, r1
+ blt _021DAE3E
+ mov r5, #0
+_021DADF0:
+ lsl r7, r5, #2
+ add r0, sp, #0xc
+ ldr r0, [r0, r7]
+ lsl r1, r0, #2
+ ldr r0, [sp]
+ add r4, r0, r1
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0x24
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ ldr r0, _021DAE58 ; =0x021DBF58
+ ldr r1, [sp, #0x24]
+ ldr r0, [r0, r7]
+ sub r0, r1, r0
+ str r0, [sp, #0x24]
+ mov r0, #1
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xe
+ sub r0, r1, r0
+ str r0, [sp, #0x28]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r2, #0
+ bl FUN_02020044
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, #3
+ blo _021DADF0
+_021DAE3E:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DAE44: .word 0x021DBE40
+_021DAE48: .word 0x021DBE34
+_021DAE4C: .word 0x000005C8
+_021DAE50: .word 0x021DBF4C
+_021DAE54: .word 0x000005E6
+_021DAE58: .word 0x021DBF58
+ thumb_func_end MOD63_021DAD6C
+
+ thumb_func_start MOD63_021DAE5C
+MOD63_021DAE5C: ; 0x021DAE5C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _021DAE88 ; =0x021DBEAC
+ 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, #1
+ mov r1, #0x4c
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DAE88: .word 0x021DBEAC
+ thumb_func_end MOD63_021DAE5C
+
+ thumb_func_start MOD63_021DAE8C
+MOD63_021DAE8C: ; 0x021DAE8C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r6, r2, #0
+ str r1, [sp, #0xc]
+ mov r2, #0x4b
+ str r1, [sp, #0x10]
+ lsl r2, r2, #2
+ 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]
+ add r2, #0xc
+ str r0, [sp, #0x1c]
+ ldr r0, [r5, r2]
+ add r2, r1, #0
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ str r1, [sp, #0x28]
+ add r0, r6, #0
+ bl FUN_02008AA4
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r4]
+ str r6, [r4, #4]
+ str r1, [r4, #8]
+ str r1, [r4, #0xc]
+ mov r0, #1
+ str r1, [r4, #0x10]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x14]
+ str r0, [r4, #0x18]
+ str r0, [r4, #0x1c]
+ strh r1, [r4, #0x20]
+ mov r0, #1
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ mov r0, #0x4c
+ str r0, [r4, #0x2c]
+ add sp, #0x2c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DAE8C
+
+ thumb_func_start MOD63_021DAEF8
+MOD63_021DAEF8: ; 0x021DAEF8
+ push {r4, lr}
+ mov r1, #0x7d
+ mov r0, #0x4c
+ lsl r1, r1, #2
+ bl FUN_02016998
+ mov r2, #0x7d
+ add r4, r0, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ bl MOD63_021DAFEC
+ add r0, r4, #0
+ bl MOD63_021DB150
+ add r0, r4, #0
+ pop {r4, pc}
+ thumb_func_end MOD63_021DAEF8
+
+ thumb_func_start MOD63_021DAF20
+MOD63_021DAF20: ; 0x021DAF20
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x4c
+ mov r1, #8
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0xc
+ add r6, r5, #0
+ mul r6, r0
+ mov r0, #0x4c
+ add r1, r6, #0
+ bl FUN_02016998
+ mov r1, #0
+ add r2, r6, #0
+ str r0, [r4, #4]
+ bl Call_FillMemWithValue
+ str r5, [r4]
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD63_021DAF20
+
+ thumb_func_start MOD63_021DAF4C
+MOD63_021DAF4C: ; 0x021DAF4C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _021DAF72
+ add r4, r6, #0
+_021DAF5A:
+ ldr r0, [r5, #4]
+ add r0, r0, r4
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ beq _021DAF68
+ bl FUN_0200CAB4
+_021DAF68:
+ ldr r0, [r5]
+ add r6, r6, #1
+ add r4, #0xc
+ cmp r6, r0
+ blt _021DAF5A
+_021DAF72:
+ ldr r0, [r5, #4]
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD63_021DAF4C
+
+ thumb_func_start MOD63_021DAF80
+MOD63_021DAF80: ; 0x021DAF80
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r4, r0
+ blt _021DAF90
+ bl ErrorHandling
+_021DAF90:
+ mov r0, #0xc
+ ldr r1, [r5, #4]
+ mul r0, r4
+ add r0, r1, r0
+ add r0, r0, #4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DAF80
+
+ thumb_func_start MOD63_021DAF9C
+MOD63_021DAF9C: ; 0x021DAF9C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl MOD63_021DB108
+ mov r6, #0x73
+ mov r4, #0
+ lsl r6, r6, #2
+_021DAFAA:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _021DAFB8
+ bl FUN_0200CAB4
+_021DAFB8:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _021DAFAA
+ mov r6, #0x55
+ mov r4, #0
+ mov r7, #0xc
+ lsl r6, r6, #2
+_021DAFCA:
+ add r0, r4, #0
+ mul r0, r7
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _021DAFDA
+ bl FUN_0200CAB4
+_021DAFDA:
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #0xa
+ blo _021DAFCA
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD63_021DAF9C
+
+ thumb_func_start MOD63_021DAFEC
+MOD63_021DAFEC: ; 0x021DAFEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ add r7, r0, #0
+ add r3, r1, #0
+ ldr r0, _021DB0FC ; =0xFFCFFFEF
+ mov r1, #0x10
+ and r3, r0
+ orr r3, r1
+ str r3, [r2]
+ ldr r3, _021DB100 ; =0x04001000
+ ldr r2, [r3]
+ and r0, r2
+ orr r0, r1
+ str r0, [r3]
+ bl MOD63_021DAE5C
+ 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, #0x4c
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r0, #0xa
+ add r1, r7, #4
+ mov r2, #0x4c
+ bl FUN_02008C9C
+ ldr r4, _021DB104 ; =0x021DBEBC
+ str r0, [r7]
+ mov r6, #0
+ add r5, r7, #0
+_021DB040:
+ ldrb r0, [r4]
+ add r1, r6, #0
+ mov r2, #0x4c
+ bl FUN_02008DEC
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r6, r6, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r6, #4
+ blt _021DB040
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe0
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ mov r2, #4
+ bl FUN_02008F34
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #3
+ str r2, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x4c
+ str r0, [sp, #0xc]
+ add r0, #0xe4
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ bl FUN_02008FEC
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r7, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xe8
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ mov r2, #5
+ bl FUN_020090AC
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4c
+ str r0, [sp, #8]
+ add r0, #0xec
+ ldr r0, [r7, r0]
+ mov r1, #0x80
+ mov r2, #6
+ bl FUN_020090AC
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r7, r1]
+ sub r1, #0xc
+ ldr r0, [r7, r1]
+ bl FUN_02009A50
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r7, r0]
+ bl FUN_02009CF0
+ 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}
+ nop
+_021DB0FC: .word 0xFFCFFFEF
+_021DB100: .word 0x04001000
+_021DB104: .word 0x021DBEBC
+ thumb_func_end MOD63_021DAFEC
+
+ thumb_func_start MOD63_021DB108
+MOD63_021DB108: ; 0x021DB108
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009C0C
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02009E04
+ mov r6, #0x4b
+ mov r4, #0
+ lsl r6, r6, #2
+_021DB126:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02008E2C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #4
+ blo _021DB126
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB108
+
+ thumb_func_start MOD63_021DB150
+MOD63_021DB150: ; 0x021DB150
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r6, #0
+ add r5, r7, #0
+_021DB15C:
+ add r0, r7, #0
+ add r1, sp, #0
+ add r2, sp, #0x30
+ bl MOD63_021DAE8C
+ add r0, sp, #0
+ str r4, [sp, #8]
+ str r4, [sp, #0xc]
+ bl FUN_0201FE94
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #2
+ lsl r0, r0, #0xc
+ add r6, r6, #1
+ add r4, r4, r0
+ add r5, #0xc
+ cmp r6, #0xa
+ blt _021DB15C
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB150
+
+ thumb_func_start MOD63_021DB1A0
+MOD63_021DB1A0: ; 0x021DB1A0
+ ldr r3, _021DB1A8 ; =FUN_0201FDEC
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DB1A8: .word FUN_0201FDEC
+ thumb_func_end MOD63_021DB1A0
+
+ thumb_func_start MOD63_021DB1AC
+MOD63_021DB1AC: ; 0x021DB1AC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ cmp r1, #0xb4
+ bne _021DB1CE
+ mov r2, #3
+ str r2, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #0x71
+ lsl r0, r0, #2
+ add r0, r4, r0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD63_021DB1F8
+ b _021DB1E8
+_021DB1CE:
+ ldr r0, _021DB1F4 ; =0x0000011D
+ cmp r1, r0
+ bne _021DB1E8
+ mov r2, #3
+ add r0, #0xb7
+ str r2, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r0, r4, r0
+ add r1, r4, #0
+ add r3, r2, #0
+ bl MOD63_021DB1F8
+_021DB1E8:
+ add r0, r4, #0
+ bl MOD63_021DB1A0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021DB1F4: .word 0x0000011D
+ thumb_func_end MOD63_021DB1AC
+
+ thumb_func_start MOD63_021DB1F8
+MOD63_021DB1F8: ; 0x021DB1F8
+ push {r4, lr}
+ add r4, r0, #0
+ strb r2, [r4]
+ ldr r2, _021DB228 ; =0xFFFFFFF8
+ strb r3, [r4, #1]
+ add r2, sp
+ ldrb r0, [r2, #0x10]
+ strb r0, [r4, #2]
+ mov r0, #0
+ strb r0, [r4, #4]
+ strb r0, [r4, #3]
+ mov r0, #0x53
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [r4, #0xc]
+ ldrb r0, [r2, #0x14]
+ add r1, r4, #0
+ mov r2, #0xa
+ strb r0, [r4, #5]
+ ldr r0, _021DB22C ; =MOD63_021DB2F8
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ pop {r4, pc}
+ .align 2, 0
+_021DB228: .word 0xFFFFFFF8
+_021DB22C: .word MOD63_021DB2F8
+ thumb_func_end MOD63_021DB1F8
+
+ thumb_func_start MOD63_021DB230
+MOD63_021DB230: ; 0x021DB230
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ str r0, [sp]
+ cmp r2, #0
+ bne _021DB240
+ mov r7, #0x40
+ b _021DB242
+_021DB240:
+ mov r7, #0x20
+_021DB242:
+ mov r5, #0
+ cmp r6, #0
+ bls _021DB2BE
+_021DB248:
+ ldr r0, [sp]
+ mov r1, #0xa
+ bl MOD63_021DB2C8
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x19
+ sub r2, r2, r1
+ mov r0, #0x19
+ ror r2, r0
+ add r0, r1, r2
+ add r0, #0x40
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x1a
+ sub r2, r2, r1
+ mov r0, #0x1a
+ ror r2, r0
+ add r0, r1, r2
+ add r0, r7, r0
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ bl FUN_02020044
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _021DB2C4 ; =MOD63_021DB334
+ add r1, r4, #0
+ mov r2, #0x14
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r6
+ blo _021DB248
+_021DB2BE:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB2C4: .word MOD63_021DB334
+ thumb_func_end MOD63_021DB230
+
+ thumb_func_start MOD63_021DB2C8
+MOD63_021DB2C8: ; 0x021DB2C8
+ push {r4, lr}
+ mov r4, #0
+ mov r2, #0xc
+_021DB2CE:
+ add r1, r4, #0
+ mul r1, r2
+ add r3, r0, r1
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ bne _021DB2E6
+ mov r0, #1
+ strb r0, [r3]
+ mov r0, #0
+ strb r0, [r3, #1]
+ add r0, r3, #0
+ pop {r4, pc}
+_021DB2E6:
+ add r1, r4, #1
+ lsl r1, r1, #0x18
+ lsr r4, r1, #0x18
+ cmp r4, #0xa
+ blo _021DB2CE
+ bl ErrorHandling
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD63_021DB2C8
+
+ thumb_func_start MOD63_021DB2F8
+MOD63_021DB2F8: ; 0x021DB2F8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #4]
+ add r5, r0, #0
+ add r0, r1, #1
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #1]
+ cmp r1, r0
+ blo _021DB330
+ ldrb r1, [r4]
+ ldrb r2, [r4, #5]
+ ldr r0, [r4, #0xc]
+ bl MOD63_021DB230
+ mov r0, #0
+ strb r0, [r4, #4]
+ ldrb r0, [r4, #3]
+ add r0, r0, #1
+ strb r0, [r4, #3]
+ ldrb r1, [r4, #3]
+ ldrb r0, [r4, #2]
+ cmp r1, r0
+ blo _021DB330
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #8]
+_021DB330:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB2F8
+
+ thumb_func_start MOD63_021DB334
+MOD63_021DB334: ; 0x021DB334
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r6, r0, #0
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ str r0, [r3]
+ mov r0, #3
+ ldr r1, [sp, #4]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r0, [r4, #4]
+ add r1, r2, #0
+ bl FUN_02020044
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ ldrb r0, [r4, #1]
+ cmp r0, #0x50
+ blo _021DB388
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r1, #0
+ str r1, [r4, #8]
+ strb r1, [r4]
+ ldr r0, [r4, #4]
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020200A0
+_021DB388:
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD63_021DB334
+
+ thumb_func_start MOD63_021DB38C
+MOD63_021DB38C: ; 0x021DB38C
+ ldr r3, _021DB394 ; =MOD63_021DB398
+ mov r1, #2
+ bx r3
+ nop
+_021DB394: .word MOD63_021DB398
+ thumb_func_end MOD63_021DB38C
+
+ thumb_func_start MOD63_021DB398
+MOD63_021DB398: ; 0x021DB398
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ add r7, r1, #0
+ str r0, [sp]
+ ldr r5, _021DB418 ; =0x00000000
+ beq _021DB414
+_021DB3A8:
+ ldr r0, [sp]
+ ldr r1, [r6]
+ bl MOD63_021DB2C8
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #4
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ bl FUN_0201B9EC
+ mov r1, #0xe0
+ bl _s32_div_f
+ add r1, #0xa
+ lsl r0, r1, #0xc
+ str r0, [sp, #4]
+ bl FUN_0201B9EC
+ mov r1, #0x38
+ bl _s32_div_f
+ ldr r0, _021DB41C ; =0x0000013A
+ add r0, r1, r0
+ lsl r0, r0, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ add r1, sp, #4
+ bl FUN_02020044
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _021DB420 ; =MOD63_021DB424
+ add r1, r4, #0
+ mov r2, #0x14
+ bl FUN_0200CA44
+ str r0, [r4, #8]
+ add r0, r5, #1
+ lsl r0, r0, #0x18
+ lsr r5, r0, #0x18
+ cmp r5, r7
+ blo _021DB3A8
+_021DB414:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DB418: .word 0x00000000
+_021DB41C: .word 0x0000013A
+_021DB420: .word MOD63_021DB424
+ thumb_func_end MOD63_021DB398
+
+ thumb_func_start MOD63_021DB424
+MOD63_021DB424: ; 0x021DB424
+ push {r4, lr}
+ add r4, r1, #0
+ ldrb r1, [r4, #1]
+ add r1, r1, #1
+ strb r1, [r4, #1]
+ ldrb r1, [r4, #1]
+ cmp r1, #8
+ blo _021DB44C
+ bl FUN_0200CAB4
+ mov r1, #0
+ str r1, [r4, #8]
+ strb r1, [r4]
+ ldr r0, [r4, #4]
+ bl FUN_020200BC
+ ldr r0, [r4, #4]
+ mov r1, #0
+ bl FUN_020200A0
+_021DB44C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB424
+
+ thumb_func_start MOD63_021DB450
+MOD63_021DB450: ; 0x021DB450
+ push {r4, lr}
+ ldr r3, _021DB470 ; =0x021064B8
+ mov r2, #0
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bl FUN_0201327C
+ cmp r4, #0
+ bne _021DB468
+ bl ErrorHandling
+_021DB468:
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_021DB470: .word 0x021064B8
+ thumb_func_end MOD63_021DB450
+
+ thumb_func_start MOD63_021DB474
+MOD63_021DB474: ; 0x021DB474
+ push {r4, lr}
+ ldr r3, _021DB494 ; =0x021064C0
+ mov r2, #1
+ ldr r3, [r3]
+ blx r3
+ add r4, r0, #0
+ bne _021DB486
+ bl ErrorHandling
+_021DB486:
+ add r0, r4, #0
+ bl FUN_020132BC
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0xd
+ pop {r4, pc}
+ nop
+_021DB494: .word 0x021064C0
+ thumb_func_end MOD63_021DB474
+
+ thumb_func_start MOD63_021DB498
+MOD63_021DB498: ; 0x021DB498
+ mov r0, #0x20
+ bx lr
+ thumb_func_end MOD63_021DB498
+
+ thumb_func_start MOD63_021DB49C
+MOD63_021DB49C: ; 0x021DB49C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ ldr r3, _021DB56C ; =0x021DBECC
+ add r5, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ mov r0, #0x4c
+ bl FUN_02006D98
+ ldr r7, _021DB570 ; =0x021DBEF0
+ str r0, [r5]
+ mov r4, #0
+_021DB4BA:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ lsl r6, r4, #2
+ add r1, sp, #0x10
+ ldr r1, [r1, r6]
+ add r0, sp, #0x1c
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02068C00
+ ldr r0, _021DB574 ; =0x000003FF
+ lsl r2, r4, #3
+ str r0, [sp]
+ str r4, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r3, r7, r2
+ ldr r0, [r5]
+ ldr r2, [r7, r2]
+ ldr r3, [r3, #4]
+ add r1, sp, #0x1c
+ add r6, r5, r6
+ bl FUN_020073A0
+ mov r1, #6
+ mov r2, #1
+ str r0, [r6, #4]
+ bl FUN_02007558
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _021DB4BA
+ ldr r0, [r5, #8]
+ mov r1, #0x23
+ mov r2, #1
+ bl FUN_02007558
+ mov r0, #1
+ str r0, [r5, #0x10]
+ bl FUN_02012CC8
+ mov r1, #0x12
+ mov r0, #0x4c
+ lsl r1, r1, #0xa
+ bl FUN_02016998
+ str r0, [r5, #0x14]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0x4c
+ str r0, [sp, #4]
+ mov r3, #0x12
+ ldr r0, _021DB578 ; =MOD63_021DB450
+ ldr r1, _021DB57C ; =MOD63_021DB474
+ ldr r2, [r5, #0x14]
+ lsl r3, r3, #0xa
+ bl FUN_02012CDC
+ str r0, [r5, #0x18]
+ bl FUN_0201343C
+ add r2, r0, #0
+ mov r0, #1
+ mov r1, #0xe1
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ mov r0, #0x3d
+ mov r1, #4
+ mov r2, #0x4c
+ bl FUN_0201318C
+ add r1, r0, #0
+ ldr r0, [r5, #0x18]
+ mov r2, #0xa
+ mov r3, #1
+ bl FUN_02013194
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DB56C: .word 0x021DBECC
+_021DB570: .word 0x021DBEF0
+_021DB574: .word 0x000003FF
+_021DB578: .word MOD63_021DB450
+_021DB57C: .word MOD63_021DB474
+ thumb_func_end MOD63_021DB49C
+
+ thumb_func_start MOD63_021DB580
+MOD63_021DB580: ; 0x021DB580
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ bl FUN_02012DE4
+ ldr r0, [r4, #0x14]
+ bl FUN_02016A18
+ ldr r0, [r4]
+ bl FUN_020072E8
+ pop {r4, pc}
+ thumb_func_end MOD63_021DB580
+
+ thumb_func_start MOD63_021DB598
+MOD63_021DB598: ; 0x021DB598
+ push {r3, lr}
+ cmp r0, #0
+ beq _021DB5A4
+ ldr r0, [r0]
+ bl FUN_020081C4
+_021DB5A4:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB598
+
+ thumb_func_start MOD63_021DB5A8
+MOD63_021DB5A8: ; 0x021DB5A8
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021DB5C8
+ bl FUN_020222AC
+ bl FUN_020B02C8
+ ldr r0, [r4]
+ bl FUN_02006ED4
+ bl MOD63_021DB934
+ mov r0, #1
+ mov r1, #0
+ bl FUN_020222B4
+_021DB5C8:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB5A8
+
+ thumb_func_start MOD63_021DB5CC
+MOD63_021DB5CC: ; 0x021DB5CC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r7, r2, #0
+ ldrb r2, [r4, #0x1c]
+ add r5, r4, #0
+ add r6, r1, #0
+ add r5, #0x1c
+ cmp r2, #5
+ bls _021DB5E2
+ b _021DB6FC
+_021DB5E2:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021DB5EE: ; jump table
+ .short _021DB5FA - _021DB5EE - 2 ; case 0
+ .short _021DB63C - _021DB5EE - 2 ; case 1
+ .short _021DB658 - _021DB5EE - 2 ; case 2
+ .short _021DB690 - _021DB5EE - 2 ; case 3
+ .short _021DB6BE - _021DB5EE - 2 ; case 4
+ .short _021DB6E4 - _021DB5EE - 2 ; case 5
+_021DB5FA:
+ ldr r0, _021DB704 ; =0x0400004A
+ mov r1, #0x3f
+ ldrh r2, [r0]
+ add r7, r4, #4
+ bic r2, r1
+ mov r1, #0x11
+ orr r1, r2
+ mov r2, #0x20
+ orr r1, r2
+ strh r1, [r0]
+ lsl r0, r6, #2
+ str r0, [sp]
+ ldr r0, [r7, r0]
+ mov r1, #0xc
+ lsl r2, r2, #5
+ bl FUN_02007558
+ ldr r0, [sp]
+ mov r2, #1
+ ldr r0, [r7, r0]
+ mov r1, #0xd
+ lsl r2, r2, #0xa
+ bl FUN_02007558
+ ldr r0, [sp]
+ mov r1, #6
+ ldr r0, [r7, r0]
+ mov r2, #0
+ bl FUN_02007558
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+_021DB63C:
+ ldr r2, _021DB708 ; =0x021DBED8
+ lsl r3, r6, #3
+ ldr r2, [r2, r3]
+ add r0, r4, #0
+ add r1, r6, #0
+ blx r2
+ cmp r0, #0
+ beq _021DB6FC
+ mov r0, #0
+ strb r0, [r4, #0x1d]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DB6FC
+_021DB658:
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_02013440
+ lsl r0, r6, #2
+ str r0, [sp, #4]
+ ldr r1, _021DB70C ; =0x021DBF08
+ lsl r6, r6, #3
+ ldr r3, [sp, #4]
+ add r7, r4, #4
+ ldr r0, [r4, #0x18]
+ ldr r1, [r1, r6]
+ ldr r2, _021DB710 ; =MOD63_021DB940
+ ldr r3, [r7, r3]
+ bl FUN_020133AC
+ ldr r1, _021DB714 ; =0x021DBF0C
+ ldr r3, [sp, #4]
+ ldr r0, [r4, #0x18]
+ ldr r1, [r1, r6]
+ ldr r2, _021DB710 ; =MOD63_021DB940
+ ldr r3, [r7, r3]
+ bl FUN_020133AC
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DB6FC
+_021DB690:
+ ldr r0, [r4, #0x18]
+ bl FUN_020133C8
+ cmp r0, #0
+ bne _021DB6FC
+ ldr r0, _021DB718 ; =0x021DBEC0
+ lsl r1, r6, #2
+ ldr r0, [r0, r1]
+ cmp r7, r0
+ blt _021DB6FC
+ ldr r1, _021DB704 ; =0x0400004A
+ mov r0, #0x3f
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #0x10
+ orr r2, r0
+ mov r0, #0x20
+ orr r0, r2
+ strh r0, [r1]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DB6FC
+_021DB6BE:
+ ldr r2, _021DB71C ; =0x021DBEDC
+ lsl r3, r6, #3
+ ldr r2, [r2, r3]
+ blx r2
+ cmp r0, #0
+ beq _021DB6FC
+ lsl r0, r6, #2
+ add r0, r4, r0
+ ldr r0, [r0, #4]
+ mov r1, #6
+ mov r2, #1
+ bl FUN_02007558
+ mov r0, #0
+ strb r0, [r4, #0x1d]
+ ldrb r0, [r5]
+ add r0, r0, #1
+ strb r0, [r5]
+ b _021DB6FC
+_021DB6E4:
+ ldrb r0, [r4, #0x1d]
+ add r0, r0, #1
+ strb r0, [r4, #0x1d]
+ ldrb r0, [r4, #0x1d]
+ cmp r0, #0x14
+ blo _021DB6FC
+ mov r0, #0
+ strb r0, [r4, #0x1d]
+ strb r0, [r5]
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB6FC:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB704: .word 0x0400004A
+_021DB708: .word 0x021DBED8
+_021DB70C: .word 0x021DBF08
+_021DB710: .word MOD63_021DB940
+_021DB714: .word 0x021DBF0C
+_021DB718: .word 0x021DBEC0
+_021DB71C: .word 0x021DBEDC
+ thumb_func_end MOD63_021DB5CC
+
+ thumb_func_start MOD63_021DB720
+MOD63_021DB720: ; 0x021DB720
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #6
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x11
+ bl FUN_020079E0
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8d
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB780
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB780:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB720
+
+ thumb_func_start MOD63_021DB784
+MOD63_021DB784: ; 0x021DB784
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ sub r2, r1, #3
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x13
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB7CC
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB7CC:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB784
+
+ thumb_func_start MOD63_021DB7D0
+MOD63_021DB7D0: ; 0x021DB7D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x10
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x11
+ bl FUN_020079E0
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8d
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB832
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB832:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB7D0
+
+ thumb_func_start MOD63_021DB838
+MOD63_021DB838: ; 0x021DB838
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ sub r2, r1, #6
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x11
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB880
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB880:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB838
+
+ thumb_func_start MOD63_021DB884
+MOD63_021DB884: ; 0x021DB884
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #8
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x11
+ bl FUN_020079E0
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8c
+ bl FUN_020079E0
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x8d
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB8E4
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB8E4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB884
+
+ thumb_func_start MOD63_021DB8E8
+MOD63_021DB8E8: ; 0x021DB8E8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ ldr r4, [r0, #4]
+ mov r1, #0
+ add r0, r4, #0
+ mov r2, #6
+ bl FUN_020079E0
+ mov r1, #1
+ add r2, r1, #0
+ add r0, r4, #0
+ sub r2, #0x15
+ bl FUN_020079E0
+ ldrb r0, [r5, #0x1d]
+ add r0, r0, #1
+ strb r0, [r5, #0x1d]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #6
+ blo _021DB930
+ mov r1, #0xc
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf4
+ bl FUN_02007558
+ mov r1, #0xd
+ add r2, r1, #0
+ add r0, r4, #0
+ add r2, #0xf3
+ bl FUN_02007558
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB930:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD63_021DB8E8
+
+ thumb_func_start MOD63_021DB934
+MOD63_021DB934: ; 0x021DB934
+ push {r3, lr}
+ bl FUN_02013364
+ bl FUN_02013388
+ pop {r3, pc}
+ thumb_func_end MOD63_021DB934
+
+ thumb_func_start MOD63_021DB940
+MOD63_021DB940: ; 0x021DB940
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ bl FUN_0201341C
+ add r2, sp, #0
+ mov r1, #0
+ str r1, [r2]
+ str r1, [r2, #4]
+ add r4, r0, #0
+ str r1, [r2, #8]
+ bl FUN_0200782C
+ sub r0, #0x80
+ mov r1, #0xac
+ mul r1, r0
+ str r1, [sp]
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0200782C
+ sub r0, #0x60
+ mov r1, #0xac
+ mul r1, r0
+ str r1, [sp, #4]
+ mov r0, #0x40
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp]
+ ldr r0, [r0]
+ ldr r0, [r0, #4]
+ add r0, r1, r0
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #4]
+ ldr r0, [r0]
+ ldr r0, [r0, #8]
+ add r0, r1, r0
+ str r0, [r5, #0x2c]
+ ldr r0, [r5, #0x20]
+ ldr r1, [sp, #8]
+ ldr r0, [r0]
+ ldr r0, [r0, #0xc]
+ add r0, r1, r0
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD63_021DB940
+
+ .section .rodata
+ ; 0x021DB9A0
+ .incbin "baserom.nds", 0x2B6EC0, 0x478
+
+ .global MOD63_UNK_021DBE18
+MOD63_UNK_021DBE18:
+ .incbin "baserom.nds", 0x2B7338, 0x108
+
+ .section .data
+ ; 0x021DBF40
+ .incbin "baserom.nds", 0x2B7460, 0x60
+
+ .section .bss
+ ; 0x021DBFA0
+ .space 0x20
+
diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s
new file mode 100644
index 00000000..be87b0fd
--- /dev/null
+++ b/arm9/modules/64/asm/module_64.s
@@ -0,0 +1,3582 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD64_021D74E0
+MOD64_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ mov r2, #1
+ add r4, r0, #0
+ mov r0, #3
+ mov r1, #0x2f
+ lsl r2, r2, #0x12
+ bl FUN_0201681C
+ ldr r1, _021D7630 ; =0x000006B4
+ add r0, r4, #0
+ mov r2, #0x2f
+ bl FUN_02006268
+ add r5, r0, #0
+ bne _021D7504
+ bl ErrorHandling
+_021D7504:
+ ldr r2, _021D7630 ; =0x000006B4
+ add r0, r5, #0
+ mov r1, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x25
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0x2f
+ mov r2, #0x20
+ bl FUN_02016B20
+ add r0, r4, #0
+ bl FUN_0200628C
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_02025084
+ ldr r1, _021D7634 ; =0x000006A8
+ str r0, [r5, r1]
+ ldr r0, [r4, #4]
+ bl FUN_02024FF4
+ ldr r1, _021D7638 ; =0x000006AC
+ str r0, [r5, r1]
+ mov r0, #8
+ mov r1, #0x2f
+ bl FUN_0201C24C
+ ldr r0, _021D763C ; =MOD64_021D77A4
+ add r1, r5, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ cmp r0, #1
+ beq _021D755E
+ bl ErrorHandling
+_021D755E:
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD64_021D7810
+ mov r0, #0x2f
+ bl FUN_02016B94
+ add r1, r5, #0
+ add r1, #0x94
+ str r0, [r1]
+ mov r1, #1
+ mov r0, #0
+ str r0, [sp, #4]
+ add r0, sp, #0
+ str r1, [sp]
+ str r1, [sp, #8]
+ str r1, [sp, #0xc]
+ bl FUN_02016BBC
+ add r0, r5, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r1, #0x2f
+ bl MOD64_021D7970
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD64_021D7A54
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD64_021D87CC
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD64_021D8EF4
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD64_021D7B04
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD64_021D7C34
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD64_021D7C74
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD64_021D7F60
+ add r0, r5, #0
+ mov r1, #0x2f
+ bl MOD64_021D824C
+ add r0, r5, #0
+ bl MOD64_021D82CC
+ add r0, r5, #0
+ bl MOD64_021D8354
+ mov r1, #6
+ lsl r1, r1, #8
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x2f
+ bl MOD64_021D892C
+ mov r1, #6
+ lsl r1, r1, #8
+ add r0, r5, #0
+ add r1, r5, r1
+ mov r2, #0x2f
+ bl MOD64_021D89FC
+ mov r0, #6
+ lsl r0, r0, #8
+ add r0, r5, r0
+ bl MOD64_021D8AE0
+ mov r0, #0x65
+ lsl r0, r0, #4
+ add r0, r5, r0
+ add r1, r5, #0
+ mov r2, #0x2f
+ bl MOD64_021D8B70
+ mov r1, #0
+ mov r0, #0x3c
+ add r2, r1, #0
+ bl FUN_0200433C
+ mov r0, #1
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7630: .word 0x000006B4
+_021D7634: .word 0x000006A8
+_021D7638: .word 0x000006AC
+_021D763C: .word MOD64_021D77A4
+ thumb_func_end MOD64_021D74E0
+
+ thumb_func_start MOD64_021D7640
+MOD64_021D7640: ; 0x021D7640
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r2, _021D76F0 ; =0x000008C3
+ add r1, sp, #0
+ strh r2, [r1]
+ ldr r1, [r4]
+ add r6, r0, #0
+ cmp r1, #4
+ bhi _021D76E2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7664: ; jump table
+ .short _021D766E - _021D7664 - 2 ; case 0
+ .short _021D7684 - _021D7664 - 2 ; case 1
+ .short _021D76A0 - _021D7664 - 2 ; case 2
+ .short _021D76BC - _021D7664 - 2 ; case 3
+ .short _021D76C8 - _021D7664 - 2 ; case 4
+_021D766E:
+ bl MOD64_021D77C8
+ add r0, sp, #0
+ mov r1, #0
+ mov r2, #2
+ bl GX_LoadBGPltt
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D76E2
+_021D7684:
+ bl MOD64_021D7808
+ cmp r0, #0
+ beq _021D76E2
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D76E2
+_021D76A0:
+ mov r1, #0x2f
+ bl MOD64_021D80A4
+ add r5, r0, #0
+ add r0, r6, #0
+ mov r1, #0x2f
+ bl MOD64_021D8100
+ cmp r5, #1
+ bne _021D76E2
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D76E2
+_021D76BC:
+ bl MOD64_021D77E8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D76E2
+_021D76C8:
+ bl MOD64_021D7808
+ cmp r0, #0
+ beq _021D76E2
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D76E2:
+ add r0, r6, #0
+ bl MOD64_021D81D8
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D76F0: .word 0x000008C3
+ thumb_func_end MOD64_021D7640
+
+ thumb_func_start MOD64_021D76F4
+MOD64_021D76F4: ; 0x021D76F4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r6, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ ldr r0, [r4, #0x54]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD64_021D9044
+ str r0, [r6]
+ bl FUN_0201CD04
+ cmp r0, #1
+ beq _021D7726
+ bl ErrorHandling
+_021D7726:
+ mov r0, #0x65
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD64_021D8C0C
+ mov r0, #6
+ lsl r0, r0, #8
+ add r0, r4, r0
+ bl MOD64_021D8A78
+ mov r1, #6
+ lsl r1, r1, #8
+ add r0, r4, #0
+ add r1, r4, r1
+ bl MOD64_021D89B8
+ mov r0, #6
+ lsl r0, r0, #8
+ add r0, r4, r0
+ bl MOD64_021D8B44
+ add r0, r4, #0
+ bl MOD64_021D82BC
+ add r0, r4, #0
+ bl MOD64_021D8034
+ add r0, r4, #0
+ bl MOD64_021D7CE0
+ add r0, r4, #0
+ bl MOD64_021D7C08
+ add r0, r4, #0
+ bl MOD64_021D7C64
+ add r0, r4, #0
+ bl MOD64_021D7AEC
+ add r0, r4, #0
+ bl MOD64_021D8FAC
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ bl MOD64_021D7A38
+ add r4, #0x94
+ ldr r0, [r4]
+ bl FUN_02016A18
+ bl MOD64_021D7828
+ bl FUN_0201C29C
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x2f
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD64_021D76F4
+
+ thumb_func_start MOD64_021D77A4
+MOD64_021D77A4: ; 0x021D77A4
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02009F80
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ bl FUN_0201AB60
+ mov r0, #2
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_020081C4
+ bl FUN_0201C30C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D77A4
+
+ thumb_func_start MOD64_021D77C8
+MOD64_021D77C8: ; 0x021D77C8
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x2f
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D77C8
+
+ thumb_func_start MOD64_021D77E8
+MOD64_021D77E8: ; 0x021D77E8
+ push {lr}
+ sub sp, #0xc
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x2f
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add sp, #0xc
+ pop {pc}
+ thumb_func_end MOD64_021D77E8
+
+ thumb_func_start MOD64_021D7808
+MOD64_021D7808: ; 0x021D7808
+ ldr r3, _021D780C ; =FUN_0200E308
+ bx r3
+ .align 2, 0
+_021D780C: .word FUN_0200E308
+ thumb_func_end MOD64_021D7808
+
+ thumb_func_start MOD64_021D7810
+MOD64_021D7810: ; 0x021D7810
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ bl MOD64_021D783C
+ add r0, r4, #0
+ bl MOD64_021D785C
+ add r0, r5, #0
+ bl MOD64_021D78B4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD64_021D7810
+
+ thumb_func_start MOD64_021D7828
+MOD64_021D7828: ; 0x021D7828
+ push {r3, lr}
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ bl MOD64_021D7964
+ pop {r3, pc}
+ thumb_func_end MOD64_021D7828
+
+ thumb_func_start MOD64_021D783C
+MOD64_021D783C: ; 0x021D783C
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7858 ; =0x021D90E8
+ add r3, sp, #0
+ mov r2, #5
+_021D7846:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7846
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7858: .word 0x021D90E8
+ thumb_func_end MOD64_021D783C
+
+ thumb_func_start MOD64_021D785C
+MOD64_021D785C: ; 0x021D785C
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r4, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x80
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ add r2, r0, #0
+ str r4, [sp, #0x10]
+ bl FUN_02009EAC
+ ldr r5, _021D78AC ; =0x021D9074
+ add r3, sp, #0x14
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ ldr r1, _021D78B0 ; =0x00200010
+ mov r2, #0x10
+ str r4, [sp, #0x20]
+ bl FUN_0201D060
+ mov r0, #0x20
+ add r1, r4, #0
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x24
+ pop {r4, r5, pc}
+ nop
+_021D78AC: .word 0x021D9074
+_021D78B0: .word 0x00200010
+ thumb_func_end MOD64_021D785C
+
+ thumb_func_start MOD64_021D78B4
+MOD64_021D78B4: ; 0x021D78B4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _021D7940 ; =0x04000060
+ ldr r1, _021D7944 ; =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, _021D7948 ; =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]
+ add r3, r4, #0
+ and r2, r1
+ mov r1, #0x20
+ orr r1, r2
+ strh r1, [r0]
+ ldr r1, _021D794C ; =0x00001084
+ ldr r0, _021D7950 ; =0x0000063C
+ mov r2, #0
+_021D7900:
+ add r2, r2, #1
+ strh r1, [r3, r0]
+ add r3, r3, #2
+ cmp r2, #8
+ blt _021D7900
+ ldr r0, _021D7950 ; =0x0000063C
+ add r0, r4, r0
+ bl G3X_SetEdgeColorTable
+ mov r1, #0
+ ldr r0, _021D7954 ; =0x000043FF
+ ldr r2, _021D7958 ; =0x00007FFF
+ mov r3, #0x3f
+ str r1, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021D795C ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _021D7960 ; =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
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D7940: .word 0x04000060
+_021D7944: .word 0xFFFFCFFD
+_021D7948: .word 0x0000CFFB
+_021D794C: .word 0x00001084
+_021D7950: .word 0x0000063C
+_021D7954: .word 0x000043FF
+_021D7958: .word 0x00007FFF
+_021D795C: .word 0x04000540
+_021D7960: .word 0xBFFF0000
+ thumb_func_end MOD64_021D78B4
+
+ thumb_func_start MOD64_021D7964
+MOD64_021D7964: ; 0x021D7964
+ push {r3, lr}
+ bl FUN_020AEAF4
+ bl FUN_020AEC60
+ pop {r3, pc}
+ thumb_func_end MOD64_021D7964
+
+ thumb_func_start MOD64_021D7970
+MOD64_021D7970: ; 0x021D7970
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r4, r1, #0
+ ldr r1, _021D7A28 ; =0x04000008
+ add r5, r0, #0
+ ldrh r2, [r1]
+ mov r0, #3
+ mov r7, #1
+ bic r2, r0
+ add r0, r2, #0
+ orr r0, r7
+ add r3, sp, #0x38
+ ldr r6, _021D7A2C ; =0x021D90B0
+ strh r0, [r1]
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r7, #0
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r7, #0
+ mov r1, #0x20
+ mov r2, #0
+ add r3, r4, #0
+ bl FUN_02017F18
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02018744
+ ldr r6, _021D7A30 ; =0x021D9094
+ add r3, sp, #0x1c
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ add r3, r4, #0
+ bl FUN_02017F18
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r6, _021D7A34 ; =0x021D90CC
+ add r3, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r6]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ add r3, r4, #0
+ bl FUN_02017F18
+ add r0, r5, #0
+ mov r1, #3
+ bl FUN_02018744
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7A28: .word 0x04000008
+_021D7A2C: .word 0x021D90B0
+_021D7A30: .word 0x021D9094
+_021D7A34: .word 0x021D90CC
+ thumb_func_end MOD64_021D7970
+
+ thumb_func_start MOD64_021D7A38
+MOD64_021D7A38: ; 0x021D7A38
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ pop {r4, pc}
+ thumb_func_end MOD64_021D7A38
+
+ thumb_func_start MOD64_021D7A54
+MOD64_021D7A54: ; 0x021D7A54
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018FF4
+ add r1, r5, #0
+ add r1, #0x98
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl FUN_0201901C
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #4]
+ mov r3, #4
+ add r1, r5, #0
+ str r3, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ add r0, #0x94
+ add r1, #0x98
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #1
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, _021D7AE8 ; =0x000006A8
+ mov r1, #1
+ ldr r0, [r5, r0]
+ lsl r2, r1, #9
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ add r0, r5, #0
+ str r4, [sp, #4]
+ add r0, #0x94
+ ldr r0, [r0]
+ mov r3, #0
+ bl FUN_0200CD68
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x52
+ mov r1, #0x10
+ mov r2, #0
+ mov r3, #0x40
+ str r4, [sp, #4]
+ bl FUN_02006930
+ add r5, #0x98
+ mov r1, #0
+ mov r2, #2
+ ldr r0, [r5]
+ lsl r2, r2, #8
+ add r3, r1, #0
+ bl FUN_0200D0BC
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D7AE8: .word 0x000006A8
+ thumb_func_end MOD64_021D7A54
+
+ thumb_func_start MOD64_021D7AEC
+MOD64_021D7AEC: ; 0x021D7AEC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl FUN_02019178
+ add r4, #0x98
+ ldr r0, [r4]
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D7AEC
+
+ thumb_func_start MOD64_021D7B04
+MOD64_021D7B04: ; 0x021D7B04
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ bl FUN_02006D98
+ mov r1, #2
+ lsl r1, r1, #8
+ str r0, [r5, r1]
+ ldr r3, _021D7BA4 ; =0x021064B8
+ lsl r0, r1, #6
+ mov r1, #0
+ ldr r3, [r3]
+ add r2, r1, #0
+ blx r3
+ ldr r3, _021D7BA8 ; =0x021064C0
+ add r4, r0, #0
+ ldr r3, [r3]
+ mov r0, #0x80
+ mov r1, #0
+ mov r2, #1
+ blx r3
+ ldr r2, _021D7BAC ; =0x7FFF0000
+ add r6, r0, #0
+ mov r0, #2
+ lsl r0, r0, #8
+ and r2, r4
+ lsl r1, r4, #0x10
+ lsr r2, r2, #0x10
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0xd
+ lsl r2, r2, #4
+ bl FUN_020081A8
+ ldr r2, _021D7BB0 ; =0xFFFF0000
+ mov r0, #2
+ lsl r0, r0, #8
+ and r2, r6
+ lsl r1, r6, #0x10
+ lsr r2, r2, #0x10
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0xd
+ lsl r2, r2, #3
+ bl FUN_020081B4
+ mov r2, #0x81
+ lsl r2, r2, #2
+ add r0, r5, r2
+ add r1, r5, #0
+ sub r2, #0x81
+ bl MOD64_021D7BB4
+ mov r2, #0x82
+ lsl r2, r2, #2
+ add r0, r5, r2
+ add r1, r5, #0
+ sub r2, #0x82
+ bl MOD64_021D7BB4
+ mov r2, #0x83
+ lsl r2, r2, #2
+ add r0, r5, r2
+ add r1, r5, #0
+ sub r2, #0x83
+ bl MOD64_021D7BB4
+ mov r6, #0x81
+ mov r4, #0
+ mov r7, #6
+ lsl r6, r6, #2
+_021D7B8E:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ mov r2, #1
+ bl FUN_02007558
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021D7B8E
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7BA4: .word 0x021064B8
+_021D7BA8: .word 0x021064C0
+_021D7BAC: .word 0x7FFF0000
+_021D7BB0: .word 0xFFFF0000
+ thumb_func_end MOD64_021D7B04
+
+ thumb_func_start MOD64_021D7BB4
+MOD64_021D7BB4: ; 0x021D7BB4
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ add r6, r2, #0
+ add r5, r0, #0
+ lsl r0, r6, #0x10
+ add r4, r1, #0
+ lsr r0, r0, #0x10
+ mov r1, #0
+ bl FUN_02068A20
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ lsl r1, r6, #0x10
+ lsl r2, r2, #0x18
+ str r0, [sp, #8]
+ add r0, sp, #0x10
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x18
+ mov r3, #2
+ bl FUN_02068C00
+ ldr r0, _021D7C04 ; =0x000003FF
+ add r1, sp, #0x10
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #2
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r2, #0x80
+ mov r3, #0x60
+ bl FUN_020073A0
+ str r0, [r5]
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D7C04: .word 0x000003FF
+ thumb_func_end MOD64_021D7BB4
+
+ thumb_func_start MOD64_021D7C08
+MOD64_021D7C08: ; 0x021D7C08
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x81
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #2
+_021D7C14:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _021D7C1E
+ bl FUN_02007534
+_021D7C1E:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021D7C14
+ mov r0, #2
+ lsl r0, r0, #8
+ ldr r0, [r7, r0]
+ bl FUN_020072E8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D7C08
+
+ thumb_func_start MOD64_021D7C34
+MOD64_021D7C34: ; 0x021D7C34
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r5, _021D7C5C ; =0x021D9084
+ add r3, sp, #0
+ add r4, r0, #0
+ add r6, r1, #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
+ str r6, [sp, #0xc]
+ bl FUN_02013CD4
+ ldr r1, _021D7C60 ; =0x0000064C
+ str r0, [r4, r1]
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021D7C5C: .word 0x021D9084
+_021D7C60: .word 0x0000064C
+ thumb_func_end MOD64_021D7C34
+
+ thumb_func_start MOD64_021D7C64
+MOD64_021D7C64: ; 0x021D7C64
+ ldr r1, _021D7C6C ; =0x0000064C
+ ldr r3, _021D7C70 ; =FUN_02013D18
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_021D7C6C: .word 0x0000064C
+_021D7C70: .word FUN_02013D18
+ thumb_func_end MOD64_021D7C64
+
+ thumb_func_start MOD64_021D7C74
+MOD64_021D7C74: ; 0x021D7C74
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, r5, #0
+ mov r0, #2
+ add r1, #0xbc
+ add r2, r4, #0
+ bl FUN_02008C9C
+ mov r1, #0x79
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_02008DEC
+ mov r1, #0x7a
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ mov r1, #1
+ add r2, r4, #0
+ bl FUN_02008DEC
+ mov r1, #0x7b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #2
+ add r1, r0, #0
+ add r2, r4, #0
+ bl FUN_02008DEC
+ mov r1, #0x1f
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #2
+ mov r1, #3
+ add r2, r4, #0
+ bl FUN_02008DEC
+ mov r1, #0x7d
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D7C74
+
+ thumb_func_start MOD64_021D7CE0
+MOD64_021D7CE0: ; 0x021D7CE0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201FD58
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02008E2C
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02008E2C
+ mov r0, #0x1f
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02008E2C
+ mov r0, #0x7d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02008E2C
+ pop {r4, pc}
+ thumb_func_end MOD64_021D7CE0
+
+ thumb_func_start MOD64_021D7D18
+MOD64_021D7D18: ; 0x021D7D18
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r7, r2, #0
+ add r5, r0, #0
+ add r4, r3, #0
+ mov r1, #0
+ mov r2, #0x98
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD64_021D7D7C
+ ldr r3, [sp, #0x18]
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD64_021D7DC0
+ mov r1, #1
+ lsl r1, r1, #0xc
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD64_021D7EE0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD64_021D7D18
+
+ thumb_func_start MOD64_021D7D50
+MOD64_021D7D50: ; 0x021D7D50
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #0x98
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD64_021D7D7C
+ mov r1, #1
+ lsl r1, r1, #0xc
+ add r0, r5, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD64_021D7EE0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D7D50
+
+ thumb_func_start MOD64_021D7D7C
+MOD64_021D7D7C: ; 0x021D7D7C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r3, r2, #0
+ mov r2, #0
+ add r4, r0, #0
+ str r2, [sp]
+ mov r0, #0x52
+ bl FUN_02006C98
+ str r0, [r4, #0x54]
+ bl FUN_020BC13C
+ str r0, [r4, #0x58]
+ ldrh r1, [r0, #0xe]
+ add r1, r0, r1
+ ldr r1, [r1, #0xc]
+ add r0, r0, r1
+ str r0, [r4, #0x5c]
+ ldr r0, [r4, #0x54]
+ bl FUN_020BC0FC
+ str r0, [r4, #0x60]
+ bl FUN_0201B3C4
+ ldr r0, [r4, #0x54]
+ ldr r1, [r4, #0x60]
+ bl FUN_0201B3A8
+ ldr r1, [r4, #0x5c]
+ add r0, r4, #0
+ bl FUN_020B80B4
+ add sp, #4
+ pop {r3, r4, pc}
+ thumb_func_end MOD64_021D7D7C
+
+ thumb_func_start MOD64_021D7DC0
+MOD64_021D7DC0: ; 0x021D7DC0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r6, r2, #0
+ mov r2, #0
+ add r4, r0, #0
+ add r5, r3, #0
+ str r2, [sp]
+ mov r0, #0x52
+ add r3, r6, #0
+ bl FUN_02006C98
+ str r0, [r4, #0x64]
+ mov r1, #0
+ bl FUN_020BC4C8
+ str r0, [r4, #0x68]
+ ldr r1, [r4, #0x68]
+ ldr r2, [r4, #0x5c]
+ add r0, r5, #0
+ bl FUN_020BB8D0
+ str r0, [r4, #0x6c]
+ ldr r1, [r4, #0x68]
+ ldr r2, [r4, #0x5c]
+ ldr r3, [r4, #0x60]
+ bl FUN_020B8110
+ ldr r1, [r4, #0x6c]
+ add r0, r4, #0
+ bl FUN_020B7EFC
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D7DC0
+
+ thumb_func_start MOD64_021D7E04
+MOD64_021D7E04: ; 0x021D7E04
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x54]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _021D7E14
+ bl FUN_02016A18
+_021D7E14:
+ ldr r0, [r5, #0x64]
+ cmp r0, #0
+ beq _021D7E28
+ ldr r1, [r5, #0x6c]
+ add r0, r4, #0
+ bl thunk_FUN_020ae84c
+ ldr r0, [r5, #0x64]
+ bl FUN_02016A18
+_021D7E28:
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #0x98
+ bl Call_FillMemWithValue
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD64_021D7E04
+
+ thumb_func_start MOD64_021D7E34
+MOD64_021D7E34: ; 0x021D7E34
+ push {r4, lr}
+ sub sp, #0x48
+ add r4, r0, #0
+ add r0, sp, #0x24
+ bl MTX_Identity33_
+ add r0, r4, #0
+ add r0, #0x90
+ ldrh r0, [r0]
+ ldr r3, _021D7ECC ; =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, #0
+ bl MTX_RotX33_
+ add r1, sp, #0x24
+ add r0, sp, #0
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r0, r4, #0
+ add r0, #0x92
+ ldrh r0, [r0]
+ ldr r3, _021D7ECC ; =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, #0
+ bl MTX_RotY33_
+ add r1, sp, #0x24
+ add r0, sp, #0
+ add r2, r1, #0
+ bl MTX_Concat33
+ add r0, r4, #0
+ add r0, #0x94
+ ldrh r0, [r0]
+ ldr r3, _021D7ECC ; =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, #0
+ bl MTX_RotZ33_
+ add r1, sp, #0x24
+ add r0, sp, #0
+ add r2, r1, #0
+ bl MTX_Concat33
+ ldr r0, [r4, #0x74]
+ cmp r0, #0
+ beq _021D7EC8
+ add r1, r4, #0
+ add r0, r4, #0
+ add r4, #0x84
+ add r1, #0x78
+ add r2, sp, #0x24
+ add r3, r4, #0
+ bl FUN_0201B26C
+_021D7EC8:
+ add sp, #0x48
+ pop {r4, pc}
+ .align 2, 0
+_021D7ECC: .word 0x020FFA38
+ thumb_func_end MOD64_021D7E34
+
+ thumb_func_start MOD64_021D7ED0
+MOD64_021D7ED0: ; 0x021D7ED0
+ str r1, [r0, #0x74]
+ bx lr
+ thumb_func_end MOD64_021D7ED0
+
+ thumb_func_start MOD64_021D7ED4
+MOD64_021D7ED4: ; 0x021D7ED4
+ str r1, [r0, #0x78]
+ str r2, [r0, #0x7c]
+ add r0, #0x80
+ str r3, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD64_021D7ED4
+
+ thumb_func_start MOD64_021D7EE0
+MOD64_021D7EE0: ; 0x021D7EE0
+ push {r3, r4}
+ add r4, r0, #0
+ add r4, #0x84
+ str r1, [r4]
+ add r1, r0, #0
+ add r1, #0x88
+ str r2, [r1]
+ add r0, #0x8c
+ str r3, [r0]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD64_021D7EE0
+
+ thumb_func_start MOD64_021D7EF8
+MOD64_021D7EF8: ; 0x021D7EF8
+ push {r3, r4}
+ add r4, r0, #0
+ add r4, #0x90
+ strh r1, [r4]
+ add r1, r0, #0
+ add r1, #0x92
+ strh r2, [r1]
+ add r0, #0x94
+ strh r3, [r0]
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD64_021D7EF8
+
+ thumb_func_start MOD64_021D7F10
+MOD64_021D7F10: ; 0x021D7F10
+ ldr r1, [r0, #0x6c]
+ ldr r2, [r0, #0x70]
+ ldr r1, [r1, #8]
+ ldrh r1, [r1, #4]
+ lsl r3, r1, #0xc
+ mov r1, #1
+ lsl r1, r1, #0xc
+ add r1, r2, r1
+ cmp r1, r3
+ bge _021D7F2A
+ str r1, [r0, #0x70]
+ mov r2, #0
+ b _021D7F2E
+_021D7F2A:
+ str r3, [r0, #0x70]
+ mov r2, #1
+_021D7F2E:
+ ldr r1, [r0, #0x70]
+ ldr r0, [r0, #0x6c]
+ str r1, [r0]
+ add r0, r2, #0
+ bx lr
+ thumb_func_end MOD64_021D7F10
+
+ thumb_func_start MOD64_021D7F38
+MOD64_021D7F38: ; 0x021D7F38
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #1
+ ldr r1, [r4, #0x70]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ ldr r1, [r4, #0x6c]
+ ldr r1, [r1, #8]
+ ldrh r1, [r1, #4]
+ lsl r1, r1, #0xc
+ bl _s32_div_f
+ str r1, [r4, #0x70]
+ ldr r0, [r4, #0x6c]
+ str r1, [r0]
+ pop {r4, pc}
+ thumb_func_end MOD64_021D7F38
+
+ thumb_func_start MOD64_021D7F58
+MOD64_021D7F58: ; 0x021D7F58
+ str r1, [r0, #0x70]
+ ldr r0, [r0, #0x6c]
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD64_021D7F58
+
+ thumb_func_start MOD64_021D7F60
+MOD64_021D7F60: ; 0x021D7F60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ mov r0, #0x25
+ add r7, r1, #0
+ lsl r0, r0, #4
+ add r1, r6, r0
+ add r0, #0x10
+ str r1, [sp]
+ add r0, r6, r0
+ mov r1, #1
+ mov r2, #0
+ add r3, r7, #0
+ bl MOD64_021D7D18
+ mov r0, #0x26
+ lsl r0, r0, #4
+ add r0, r6, r0
+ mov r1, #1
+ bl MOD64_021D7ED0
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ add r0, r6, r0
+ mov r1, #8
+ add r2, r7, #0
+ bl MOD64_021D7D50
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ add r0, r6, r0
+ mov r1, #0
+ bl MOD64_021D7ED0
+ mov r0, #0x26
+ lsl r0, r0, #4
+ add r1, r6, r0
+ lsr r0, r0, #1
+ add r5, r1, r0
+ mov r0, #0x25
+ lsl r0, r0, #4
+ add r0, r6, r0
+ mov r4, #2
+ str r0, [sp, #4]
+_021D7FB8:
+ sub r0, r4, #2
+ lsl r2, r0, #1
+ ldr r0, [sp, #4]
+ add r1, r2, #3
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r2, #2
+ add r3, r7, #0
+ bl MOD64_021D7D18
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD64_021D7ED0
+ add r4, r4, #1
+ add r5, #0x98
+ cmp r4, #4
+ ble _021D7FB8
+ ldr r0, _021D8028 ; =0x00000558
+ mov r1, #9
+ add r0, r6, r0
+ add r2, r7, #0
+ bl MOD64_021D7D50
+ ldr r0, _021D8028 ; =0x00000558
+ mov r1, #1
+ add r0, r6, r0
+ bl MOD64_021D7ED0
+ ldr r0, _021D8028 ; =0x00000558
+ mov r3, #0xa
+ ldr r2, _021D802C ; =0xFFFE4000
+ add r0, r6, r0
+ mov r1, #0
+ lsl r3, r3, #0xe
+ bl MOD64_021D7ED4
+ ldr r0, _021D8028 ; =0x00000558
+ mov r1, #0xe
+ lsl r1, r1, #0xa
+ mov r2, #1
+ add r0, r6, r0
+ lsl r2, r2, #0xc
+ add r3, r1, #0
+ bl MOD64_021D7EE0
+ ldr r0, _021D8028 ; =0x00000558
+ mov r1, #0
+ ldr r2, _021D8030 ; =0x00007FFF
+ add r0, r6, r0
+ add r3, r1, #0
+ bl MOD64_021D7EF8
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8028: .word 0x00000558
+_021D802C: .word 0xFFFE4000
+_021D8030: .word 0x00007FFF
+ thumb_func_end MOD64_021D7F60
+
+ thumb_func_start MOD64_021D8034
+MOD64_021D8034: ; 0x021D8034
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x26
+ lsl r0, r0, #4
+ add r7, r0, #0
+ mov r4, #0
+ add r5, r6, r0
+ sub r7, #0x10
+_021D8044:
+ add r0, r5, #0
+ add r1, r6, r7
+ bl MOD64_021D7E04
+ add r4, r4, #1
+ add r5, #0x98
+ cmp r4, #6
+ blt _021D8044
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D8034
+
+ thumb_func_start MOD64_021D8058
+MOD64_021D8058: ; 0x021D8058
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0
+ ldr r2, _021D809C ; =0xFFFFF000
+ add r1, r0, #0
+ add r3, r0, #0
+ bl FUN_020B8418
+ ldr r1, _021D80A0 ; =0x00007FFF
+ mov r0, #0
+ bl FUN_020B8404
+ ldr r0, _021D80A0 ; =0x00007FFF
+ mov r2, #0
+ add r1, r0, #0
+ bl FUN_020B83E0
+ ldr r0, _021D80A0 ; =0x00007FFF
+ mov r2, #0
+ add r1, r0, #0
+ bl FUN_020B83BC
+ mov r0, #0x26
+ lsl r0, r0, #4
+ mov r4, #0
+ add r5, r5, r0
+_021D808C:
+ add r0, r5, #0
+ bl MOD64_021D7E34
+ add r4, r4, #1
+ add r5, #0x98
+ cmp r4, #6
+ blt _021D808C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D809C: .word 0xFFFFF000
+_021D80A0: .word 0x00007FFF
+ thumb_func_end MOD64_021D8058
+
+ thumb_func_start MOD64_021D80A4
+MOD64_021D80A4: ; 0x021D80A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #1
+ bne _021D80B2
+ mov r0, #0
+ pop {r4, pc}
+_021D80B2:
+ bl MOD64_021D83D0
+ cmp r0, #5
+ bhi _021D80F4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D80C6: ; jump table
+ .short _021D80F4 - _021D80C6 - 2 ; case 0
+ .short _021D80F4 - _021D80C6 - 2 ; case 1
+ .short _021D80F4 - _021D80C6 - 2 ; case 2
+ .short _021D80D2 - _021D80C6 - 2 ; case 3
+ .short _021D80F4 - _021D80C6 - 2 ; case 4
+ .short _021D80F0 - _021D80C6 - 2 ; case 5
+_021D80D2:
+ add r0, r4, #0
+ bl MOD64_021D8384
+ ldr r0, _021D80F8 ; =0x021C48B8
+ mov r1, #1
+ ldr r0, [r0, #0x48]
+ tst r0, r1
+ beq _021D80F4
+ add r0, r4, #0
+ bl MOD64_021D83C4
+ ldr r0, _021D80FC ; =0x000005DC
+ bl FUN_020054C8
+ b _021D80F4
+_021D80F0:
+ mov r0, #1
+ pop {r4, pc}
+_021D80F4:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D80F8: .word 0x021C48B8
+_021D80FC: .word 0x000005DC
+ thumb_func_end MOD64_021D80A4
+
+ thumb_func_start MOD64_021D8100
+MOD64_021D8100: ; 0x021D8100
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD64_021D83D0
+ cmp r0, #5
+ bhi _021D81CA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D811A: ; jump table
+ .short _021D8126 - _021D811A - 2 ; case 0
+ .short _021D8146 - _021D811A - 2 ; case 1
+ .short _021D815E - _021D811A - 2 ; case 2
+ .short _021D81B0 - _021D811A - 2 ; case 3
+ .short _021D81BA - _021D811A - 2 ; case 4
+ .short _021D81C4 - _021D811A - 2 ; case 5
+_021D8126:
+ mov r1, #1
+ str r1, [r4, #8]
+ mov r0, #0x24
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ bl MOD64_021D83C4
+ mov r0, #6
+ str r0, [sp]
+ ldr r0, _021D81CC ; =0x04000050
+ mov r1, #8
+ mov r2, #0x15
+ mov r3, #0xa
+ bl G2x_SetBlendAlpha_
+ pop {r3, r4, r5, pc}
+_021D8146:
+ ldr r0, [r4, #0xc]
+ sub r0, r0, #1
+ str r0, [r4, #0xc]
+ bpl _021D81CA
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD64_021D83C4
+ ldr r0, _021D81D0 ; =0x000006CA
+ bl FUN_020054C8
+ pop {r3, r4, r5, pc}
+_021D815E:
+ mov r0, #0x26
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD64_021D7F10
+ cmp r0, #0
+ beq _021D81CA
+ mov r0, #0x26
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD64_021D7ED0
+ mov r0, #0xbe
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #1
+ bl MOD64_021D7ED0
+ mov r0, #0x39
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #1
+ bl MOD64_021D7ED0
+ ldr r0, _021D81D4 ; =0x00000428
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD64_021D7ED0
+ mov r0, #0x13
+ lsl r0, r0, #6
+ add r0, r4, r0
+ mov r1, #1
+ bl MOD64_021D7ED0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD64_021D83C4
+ pop {r3, r4, r5, pc}
+_021D81B0:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD64_021D83D4
+ pop {r3, r4, r5, pc}
+_021D81BA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD64_021D8570
+ pop {r3, r4, r5, pc}
+_021D81C4:
+ ldr r0, _021D81CC ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+_021D81CA:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D81CC: .word 0x04000050
+_021D81D0: .word 0x000006CA
+_021D81D4: .word 0x00000428
+ thumb_func_end MOD64_021D8100
+
+ thumb_func_start MOD64_021D81D8
+MOD64_021D81D8: ; 0x021D81D8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl FUN_020222AC
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ bl FUN_020BB394
+ bl FUN_020B02C8
+ mov r0, #2
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ bl FUN_02006ED4
+ ldr r0, _021D8248 ; =0x0000064C
+ ldr r0, [r4, r0]
+ bl FUN_02013D5C
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #4
+ str r2, [sp, #4]
+ bl FUN_020BB1C0
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ bl FUN_0201EBA4
+ add r0, r4, #0
+ bl MOD64_021D8058
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #0
+ str r2, [sp]
+ bl FUN_020BB1C0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020222B4
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201FDEC
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_021D8248: .word 0x0000064C
+ thumb_func_end MOD64_021D81D8
+
+ thumb_func_start MOD64_021D824C
+MOD64_021D824C: ; 0x021D824C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r1, #0
+ bl FUN_0201EB64
+ mov r1, #0x5f
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ add r1, r4, r1
+ bl MOD64_021D8268
+ pop {r4, pc}
+ thumb_func_end MOD64_021D824C
+
+ thumb_func_start MOD64_021D8268
+MOD64_021D8268: ; 0x021D8268
+ push {r4, lr}
+ sub sp, #0x20
+ mov r3, #0
+ str r3, [r1]
+ str r3, [r1, #4]
+ add r4, r0, #0
+ ldr r2, _021D82B4 ; =0x0000EAAB
+ str r3, [r1, #8]
+ add r0, sp, #0xc
+ strh r2, [r0]
+ strh r3, [r0, #2]
+ strh r3, [r0, #4]
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r1, #0
+ mov r1, #0x4b
+ ldr r3, _021D82B8 ; =0x00000FA4
+ lsl r1, r1, #0xe
+ add r2, sp, #0xc
+ str r4, [sp, #8]
+ bl FUN_0201ECA8
+ mov r1, #0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x18]
+ str r1, [sp, #0x14]
+ str r1, [sp, #0x1c]
+ add r0, sp, #0x14
+ add r1, r4, #0
+ bl FUN_0201EC58
+ add r0, r4, #0
+ bl FUN_0201EB8C
+ add sp, #0x20
+ pop {r4, pc}
+ .align 2, 0
+_021D82B4: .word 0x0000EAAB
+_021D82B8: .word 0x00000FA4
+ thumb_func_end MOD64_021D8268
+
+ thumb_func_start MOD64_021D82BC
+MOD64_021D82BC: ; 0x021D82BC
+ mov r1, #0x5f
+ lsl r1, r1, #4
+ ldr r3, _021D82C8 ; =FUN_0201EB70
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_021D82C8: .word FUN_0201EB70
+ thumb_func_end MOD64_021D82BC
+
+ thumb_func_start MOD64_021D82CC
+MOD64_021D82CC: ; 0x021D82CC
+ push {r4, r5, r6, r7}
+ mov r5, #0
+ add r4, r5, #0
+ add r6, r0, #0
+ sub r3, r5, #4
+ add r1, r5, #0
+ sub r4, #0x2c
+ mov r2, #0x20
+_021D82DC:
+ cmp r5, #0
+ beq _021D82EA
+ cmp r5, #1
+ beq _021D82F2
+ cmp r5, #2
+ beq _021D82FC
+ b _021D8306
+_021D82EA:
+ str r4, [r6, #0x58]
+ str r3, [r6, #0x5c]
+ str r2, [r6, #0x60]
+ b _021D8306
+_021D82F2:
+ str r1, [r6, #0x58]
+ str r3, [r6, #0x5c]
+ mov r7, #0x3e
+ str r7, [r6, #0x60]
+ b _021D8306
+_021D82FC:
+ mov r7, #0x26
+ str r7, [r6, #0x58]
+ str r3, [r6, #0x5c]
+ mov r7, #0x1a
+ str r7, [r6, #0x60]
+_021D8306:
+ add r5, r5, #1
+ add r6, #0xc
+ cmp r5, #3
+ blt _021D82DC
+ mov r5, #0
+ mov r2, #0x82
+ mov r1, #0x52
+ mov r4, #0x4e
+ mov r3, #0x37
+_021D8318:
+ cmp r5, #0
+ beq _021D8326
+ cmp r5, #1
+ beq _021D8330
+ cmp r5, #2
+ beq _021D833A
+ b _021D8346
+_021D8326:
+ add r6, r0, #0
+ str r4, [r0, #0x7c]
+ add r6, #0x80
+ str r3, [r6]
+ b _021D8346
+_021D8330:
+ add r6, r0, #0
+ str r2, [r0, #0x7c]
+ add r6, #0x80
+ str r1, [r6]
+ b _021D8346
+_021D833A:
+ mov r6, #0xac
+ add r7, r0, #0
+ str r6, [r0, #0x7c]
+ add r7, #0x80
+ mov r6, #0x32
+ str r6, [r7]
+_021D8346:
+ add r5, r5, #1
+ add r0, #8
+ cmp r5, #3
+ blt _021D8318
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD64_021D82CC
+
+ thumb_func_start MOD64_021D8354
+MOD64_021D8354: ; 0x021D8354
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x26
+ lsl r0, r0, #4
+ mov r4, #0
+ add r6, r5, r0
+ mov r7, #0x98
+_021D8362:
+ add r0, r4, #2
+ add r1, r0, #0
+ mul r1, r7
+ add r0, r6, r1
+ ldr r1, [r5, #0x58]
+ ldr r2, [r5, #0x5c]
+ ldr r3, [r5, #0x60]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ lsl r3, r3, #0xc
+ bl MOD64_021D7ED4
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #3
+ blt _021D8362
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD64_021D8354
+
+ thumb_func_start MOD64_021D8384
+MOD64_021D8384: ; 0x021D8384
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D83BC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x20
+ tst r0, r1
+ beq _021D83A0
+ ldr r0, [r4, #0x54]
+ sub r0, r0, #1
+ bmi _021D83A0
+ str r0, [r4, #0x54]
+ ldr r0, _021D83C0 ; =0x000005DC
+ bl FUN_020054C8
+_021D83A0:
+ ldr r0, _021D83BC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #0x10
+ tst r0, r1
+ beq _021D83BA
+ ldr r0, [r4, #0x54]
+ add r0, r0, #1
+ cmp r0, #3
+ bge _021D83BA
+ str r0, [r4, #0x54]
+ ldr r0, _021D83C0 ; =0x000005DC
+ bl FUN_020054C8
+_021D83BA:
+ pop {r4, pc}
+ .align 2, 0
+_021D83BC: .word 0x021C48B8
+_021D83C0: .word 0x000005DC
+ thumb_func_end MOD64_021D8384
+
+ thumb_func_start MOD64_021D83C4
+MOD64_021D83C4: ; 0x021D83C4
+ ldr r2, [r0]
+ add r1, r2, r1
+ str r1, [r0]
+ mov r1, #0
+ str r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD64_021D83C4
+
+ thumb_func_start MOD64_021D83D0
+MOD64_021D83D0: ; 0x021D83D0
+ ldr r0, [r0]
+ bx lr
+ thumb_func_end MOD64_021D83D0
+
+ thumb_func_start MOD64_021D83D4
+MOD64_021D83D4: ; 0x021D83D4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r2, [r4, #4]
+ cmp r2, #8
+ bls _021D83E2
+ b _021D8510
+_021D83E2:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D83EE: ; jump table
+ .short _021D8400 - _021D83EE - 2 ; case 0
+ .short _021D8422 - _021D83EE - 2 ; case 1
+ .short _021D843A - _021D83EE - 2 ; case 2
+ .short _021D8450 - _021D83EE - 2 ; case 3
+ .short _021D8480 - _021D83EE - 2 ; case 4
+ .short _021D849E - _021D83EE - 2 ; case 5
+ .short _021D84CE - _021D83EE - 2 ; case 6
+ .short _021D84EC - _021D83EE - 2 ; case 7
+ .short _021D8506 - _021D83EE - 2 ; case 8
+_021D8400:
+ mov r2, #0x5f
+ lsl r2, r2, #4
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ add r0, #0x10
+ add r2, r4, r2
+ bl MOD64_021D8864
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, pc}
+_021D8422:
+ add r0, #0x10
+ bl MOD64_021D8928
+ cmp r0, #0
+ beq _021D8510
+ mov r0, #6
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, pc}
+_021D843A:
+ ldr r1, [r4, #0xc]
+ sub r1, r1, #1
+ str r1, [r4, #0xc]
+ bpl _021D8510
+ bl MOD64_021D8554
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, pc}
+_021D8450:
+ ldr r0, _021D8514 ; =0x0001020F
+ mov r2, #5
+ str r0, [sp]
+ ldr r0, _021D8518 ; =0x000006AC
+ lsl r2, r2, #6
+ ldr r0, [r4, r0]
+ mov r3, #0
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xac
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl MOD64_021D8744
+ mov r1, #0x6b
+ lsl r1, r1, #4
+ strb r0, [r4, r1]
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, pc}
+_021D8480:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D8510
+ add r0, r4, #0
+ bl MOD64_021D87B8
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, pc}
+_021D849E:
+ ldr r0, _021D8514 ; =0x0001020F
+ mov r2, #5
+ str r0, [sp]
+ ldr r0, _021D8518 ; =0x000006AC
+ lsl r2, r2, #6
+ ldr r0, [r4, r0]
+ mov r3, #7
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xac
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r0, [r0]
+ bl MOD64_021D8744
+ mov r1, #0x6b
+ lsl r1, r1, #4
+ strb r0, [r4, r1]
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, pc}
+_021D84CE:
+ mov r0, #0x6b
+ lsl r0, r0, #4
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021D8510
+ add r0, r4, #0
+ bl MOD64_021D87B8
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, pc}
+_021D84EC:
+ mov r0, #6
+ lsl r0, r0, #8
+ add r0, r4, r0
+ mov r1, #1
+ bl MOD64_021D8B58
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, pc}
+_021D8506:
+ bl MOD64_021D851C
+ add r0, r4, #0
+ bl MOD64_021D8554
+_021D8510:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D8514: .word 0x0001020F
+_021D8518: .word 0x000006AC
+ thumb_func_end MOD64_021D83D4
+
+ thumb_func_start MOD64_021D851C
+MOD64_021D851C: ; 0x021D851C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x26
+ lsl r0, r0, #4
+ mov r5, #0
+ add r4, r6, r0
+ mov r7, #0x98
+_021D852A:
+ ldr r0, [r6, #0x54]
+ cmp r0, r5
+ bne _021D853E
+ add r0, r5, #2
+ add r1, r0, #0
+ mul r1, r7
+ add r0, r4, r1
+ bl MOD64_021D7F38
+ b _021D854C
+_021D853E:
+ add r1, r5, #2
+ mov r0, #0x98
+ mul r0, r1
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD64_021D7F58
+_021D854C:
+ add r5, r5, #1
+ cmp r5, #3
+ blt _021D852A
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD64_021D851C
+
+ thumb_func_start MOD64_021D8554
+MOD64_021D8554: ; 0x021D8554
+ add r2, r0, #0
+ ldr r0, [r2, #0x54]
+ ldr r3, _021D856C ; =MOD64_021D8B64
+ lsl r1, r0, #3
+ mov r0, #6
+ lsl r0, r0, #8
+ add r0, r2, r0
+ add r2, r2, r1
+ ldr r1, [r2, #0x7c]
+ add r2, #0x80
+ ldr r2, [r2]
+ bx r3
+ .align 2, 0
+_021D856C: .word MOD64_021D8B64
+ thumb_func_end MOD64_021D8554
+
+ thumb_func_start MOD64_021D8570
+MOD64_021D8570: ; 0x021D8570
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r2, [r4, #4]
+ add r5, r1, #0
+ cmp r2, #4
+ bls _021D8580
+ b _021D86D0
+_021D8580:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021D858C: ; jump table
+ .short _021D8596 - _021D858C - 2 ; case 0
+ .short _021D85C2 - _021D858C - 2 ; case 1
+ .short _021D8604 - _021D858C - 2 ; case 2
+ .short _021D8644 - _021D858C - 2 ; case 3
+ .short _021D867C - _021D858C - 2 ; case 4
+_021D8596:
+ mov r0, #6
+ lsl r0, r0, #8
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD64_021D8B58
+ add r0, r4, #0
+ bl MOD64_021D8554
+ add r0, r4, #0
+ bl MOD64_021D902C
+ add r0, r4, #0
+ bl MOD64_021D8D40
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #8]
+ pop {r3, r4, r5, pc}
+_021D85C2:
+ mov r0, #0x65
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #1
+ bl MOD64_021D8C30
+ ldr r0, [r4, #0x54]
+ mov r2, #0
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #6
+ bl FUN_02007558
+ add r0, r4, #0
+ bl MOD64_021D8DCC
+ cmp r0, #0
+ beq _021D86D0
+ ldr r0, [r4, #0x54]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl MOD64_021D9044
+ bl FUN_02005578
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021D8604:
+ ldr r0, _021D86D4 ; =0x0001020F
+ mov r2, #0xff
+ str r0, [sp]
+ str r2, [sp, #4]
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r3, [r4, #0x54]
+ ldr r0, [r0]
+ add r2, #0x41
+ add r3, r3, #1
+ bl MOD64_021D86DC
+ add r0, r4, #0
+ add r1, r4, #0
+ str r5, [sp]
+ add r0, #0x94
+ ldr r0, [r0]
+ ldr r2, _021D86D8 ; =0x0000029E
+ add r1, #0xb0
+ mov r3, #1
+ bl FUN_02002198
+ add r1, r4, #0
+ add r1, #0xb8
+ str r0, [r1]
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ add sp, #8
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+_021D8644:
+ add r0, #0xb8
+ ldr r0, [r0]
+ bl FUN_020021AC
+ cmp r0, #0
+ beq _021D8660
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D866C
+ add r1, r1, #1
+ add sp, #8
+ cmp r0, r1
+ pop {r3, r4, r5, pc}
+_021D8660:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD64_021D83C4
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_021D866C:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ add r0, r4, #0
+ bl MOD64_021D8DB0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+_021D867C:
+ bl MOD64_021D8DCC
+ cmp r0, #0
+ beq _021D86D0
+ mov r1, #0
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD64_021D83C4
+ mov r0, #7
+ str r0, [r4, #4]
+ mov r0, #0x65
+ lsl r0, r0, #4
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD64_021D8C30
+ ldr r0, [r4, #0x54]
+ mov r2, #1
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #6
+ bl FUN_02007558
+ ldr r0, _021D86D4 ; =0x0001020F
+ mov r2, #0xff
+ str r0, [sp]
+ add r0, r4, #0
+ str r2, [sp, #4]
+ add r0, #0x98
+ ldr r0, [r0]
+ add r1, r5, #0
+ add r2, #0x41
+ mov r3, #7
+ bl MOD64_021D86DC
+ mov r1, #0x6b
+ lsl r1, r1, #4
+ strb r0, [r4, r1]
+_021D86D0:
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D86D4: .word 0x0001020F
+_021D86D8: .word 0x0000029E
+ thumb_func_end MOD64_021D8570
+
+ thumb_func_start MOD64_021D86DC
+MOD64_021D86DC: ; 0x021D86DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r3, #0
+ mov r0, #0
+ mov r1, #0x1a
+ add r3, r4, #0
+ bl FUN_0200A86C
+ add r4, r0, #0
+ bne _021D86F8
+ bl ErrorHandling
+_021D86F8:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x2c]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ mov r1, #1
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ mov r1, #0
+ mov r2, #2
+ add r7, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #8
+ add r3, r1, #0
+ bl FUN_0200D0BC
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200A8B8
+ add r0, r7, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD64_021D86DC
+
+ thumb_func_start MOD64_021D8744
+MOD64_021D8744: ; 0x021D8744
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r4, [sp, #0x30]
+ add r5, r0, #0
+ ldr r0, [r4]
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp, #0x10]
+ cmp r0, #0
+ beq _021D875C
+ bl ErrorHandling
+_021D875C:
+ mov r0, #0
+ mov r1, #0x1a
+ add r2, r7, #0
+ add r3, r6, #0
+ bl FUN_0200A86C
+ add r6, r0, #0
+ bne _021D8770
+ bl ErrorHandling
+_021D8770:
+ ldr r1, [sp, #0x10]
+ add r0, r6, #0
+ bl FUN_0200A914
+ str r0, [r4]
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0
+ ldr r0, [sp, #0x2c]
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x28]
+ mov r1, #1
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r2, [r4]
+ add r0, r5, #0
+ bl FUN_0201BDE0
+ mov r1, #0
+ mov r2, #2
+ add r4, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #8
+ add r3, r1, #0
+ bl FUN_0200D0BC
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D8744
+
+ thumb_func_start MOD64_021D87B8
+MOD64_021D87B8: ; 0x021D87B8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_02021A20
+ mov r0, #0
+ add r4, #0xac
+ str r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD64_021D87B8
+
+ thumb_func_start MOD64_021D87CC
+MOD64_021D87CC: ; 0x021D87CC
+ push {r4, lr}
+ sub sp, #8
+ add r2, r0, #0
+ add r4, r1, #0
+ mov r1, #1
+ add r2, #0xb0
+ strb r1, [r2]
+ add r2, r0, #0
+ mov r3, #0x17
+ add r2, #0xb1
+ strb r3, [r2]
+ add r2, r0, #0
+ mov r3, #0xc
+ add r2, #0xb2
+ strb r3, [r2]
+ add r2, r0, #0
+ mov r3, #5
+ add r2, #0xb3
+ strb r3, [r2]
+ add r2, r0, #0
+ mov r3, #4
+ add r2, #0xb4
+ strb r3, [r2]
+ add r2, r0, #0
+ mov r3, #3
+ add r2, #0xb5
+ strb r3, [r2]
+ add r2, r0, #0
+ mov r3, #0xa7
+ add r2, #0xb6
+ strh r3, [r2]
+ mov r2, #0
+ str r2, [sp]
+ str r4, [sp, #4]
+ add r0, #0x94
+ ldr r0, [r0]
+ ldr r2, _021D882C ; =0x0000029E
+ add r3, r1, #0
+ bl FUN_0200CB00
+ mov r0, #0
+ mov r1, #0x60
+ add r2, r4, #0
+ bl FUN_02002ED0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021D882C: .word 0x0000029E
+ thumb_func_end MOD64_021D87CC
+
+ thumb_func_start MOD64_021D8830
+MOD64_021D8830: ; 0x021D8830
+ str r1, [r0]
+ str r1, [r0, #4]
+ sub r1, r2, r1
+ str r1, [r0, #8]
+ str r3, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD64_021D8830
+
+ thumb_func_start MOD64_021D883C
+MOD64_021D883C: ; 0x021D883C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r3, [r5, #0xc]
+ cmp r1, r3
+ blt _021D884A
+ mov r4, #1
+ b _021D884C
+_021D884A:
+ mov r4, #0
+_021D884C:
+ ldr r2, [r5, #8]
+ add r0, r2, #0
+ mul r0, r1
+ add r1, r3, #0
+ bl _s32_div_f
+ ldr r1, [r5, #4]
+ add r0, r0, r1
+ str r0, [r5]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D883C
+
+ thumb_func_start MOD64_021D8864
+MOD64_021D8864: ; 0x021D8864
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x40]
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r0, #0
+ beq _021D8876
+ bl ErrorHandling
+_021D8876:
+ ldr r1, _021D88B8 ; =0xFFFFEAAB
+ ldr r2, _021D88BC ; =0xFFFFDC72
+ add r0, r5, #0
+ mov r3, #6
+ bl MOD64_021D8830
+ add r0, r5, #0
+ mov r1, #0x4b
+ mov r2, #0x32
+ add r0, #0x10
+ lsl r1, r1, #0xe
+ lsl r2, r2, #0xe
+ mov r3, #6
+ bl MOD64_021D8830
+ add r0, r5, #0
+ mov r2, #9
+ add r0, #0x20
+ mov r1, #0
+ lsl r2, r2, #0xe
+ mov r3, #6
+ bl MOD64_021D8830
+ mov r2, #0
+ str r2, [r5, #0x3c]
+ str r4, [r5, #0x30]
+ str r6, [r5, #0x34]
+ ldr r0, _021D88C0 ; =MOD64_021D88C4
+ add r1, r5, #0
+ str r2, [r5, #0x38]
+ bl FUN_0200CA44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D88B8: .word 0xFFFFEAAB
+_021D88BC: .word 0xFFFFDC72
+_021D88C0: .word MOD64_021D88C4
+ thumb_func_end MOD64_021D8864
+
+ thumb_func_start MOD64_021D88C4
+MOD64_021D88C4: ; 0x021D88C4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r1, [r5, #0x38]
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD64_021D883C
+ add r4, r0, #0
+ add r0, r5, #0
+ ldr r1, [r5, #0x38]
+ add r0, #0x10
+ bl MOD64_021D883C
+ add r0, r5, #0
+ ldr r1, [r5, #0x38]
+ add r0, #0x20
+ bl MOD64_021D883C
+ ldr r1, [r5]
+ add r0, sp, #0
+ strh r1, [r0]
+ mov r1, #0
+ strh r1, [r0, #2]
+ strh r1, [r0, #4]
+ ldr r1, [r5, #0x30]
+ add r0, sp, #0
+ bl FUN_0201EF90
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x30]
+ bl FUN_0201EFE0
+ ldr r1, [r5, #0x20]
+ ldr r0, [r5, #0x34]
+ str r1, [r0, #8]
+ ldr r0, [r5, #0x38]
+ add r0, r0, #1
+ str r0, [r5, #0x38]
+ cmp r4, #1
+ bne _021D8924
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r5, #0x40]
+ mov r0, #1
+ str r0, [r5, #0x3c]
+_021D8924:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD64_021D88C4
+
+ thumb_func_start MOD64_021D8928
+MOD64_021D8928: ; 0x021D8928
+ ldr r0, [r0, #0x3c]
+ bx lr
+ thumb_func_end MOD64_021D8928
+
+ thumb_func_start MOD64_021D892C
+MOD64_021D892C: ; 0x021D892C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r6, r2, #0
+ mov r2, #0xa
+ add r5, r0, #0
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x7a
+ add r4, r1, #0
+ str r6, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x52
+ mov r3, #0
+ bl FUN_02008F34
+ str r0, [r4, #4]
+ bl FUN_02009B04
+ ldr r0, [r4, #4]
+ bl FUN_02009474
+ mov r2, #0xb
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x7b
+ str r6, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x52
+ mov r3, #0
+ bl FUN_02008FEC
+ str r0, [r4, #8]
+ bl FUN_02009D68
+ ldr r0, [r4, #8]
+ bl FUN_02009474
+ mov r2, #0xc
+ str r2, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1f
+ str r6, [sp, #8]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0x52
+ mov r3, #0
+ bl FUN_020090AC
+ str r0, [r4, #0xc]
+ mov r2, #0xd
+ str r2, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x7d
+ str r6, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x52
+ mov r3, #0
+ bl FUN_020090AC
+ str r0, [r4, #0x10]
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD64_021D892C
+
+ thumb_func_start MOD64_021D89B8
+MOD64_021D89B8: ; 0x021D89B8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_02009C0C
+ ldr r0, [r4, #8]
+ bl FUN_02009E04
+ mov r0, #0x7a
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #4]
+ bl FUN_02009490
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #8]
+ bl FUN_02009490
+ mov r0, #0x1f
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #0xc]
+ bl FUN_02009490
+ mov r0, #0x7d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #0x10]
+ bl FUN_02009490
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD64_021D89B8
+
+ thumb_func_start MOD64_021D89FC
+MOD64_021D89FC: ; 0x021D89FC
+ push {r4, r5, r6, lr}
+ sub sp, #0x70
+ add r5, r0, #0
+ mov r0, #0xd
+ str r0, [sp]
+ sub r0, #0xe
+ str r0, [sp, #4]
+ add r6, r2, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ mov r2, #0x7a
+ add r4, r1, #0
+ str r0, [sp, #0xc]
+ mov r1, #1
+ lsl r2, r2, #2
+ str r1, [sp, #0x10]
+ ldr r1, [r5, r2]
+ mov r3, #0xc
+ 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]
+ add r2, #0xc
+ str r1, [sp, #0x1c]
+ ldr r1, [r5, r2]
+ mov r2, #0xb
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, sp, #0x4c
+ mov r1, #0xa
+ bl FUN_02008AA4
+ mov r0, #0x79
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x2c]
+ add r0, sp, #0x4c
+ str r0, [sp, #0x30]
+ mov r0, #0x20
+ str r0, [sp, #0x40]
+ mov r0, #1
+ str r0, [sp, #0x44]
+ mov r0, #0
+ str r0, [sp, #0x34]
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ str r6, [sp, #0x48]
+ bl FUN_0201FF84
+ mov r1, #0
+ str r0, [r4]
+ bl FUN_020200A0
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ str r0, [r4, #0x20]
+ add sp, #0x70
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD64_021D89FC
+
+ thumb_func_start MOD64_021D8A78
+MOD64_021D8A78: ; 0x021D8A78
+ ldr r3, _021D8A80 ; =FUN_0201FFC8
+ ldr r0, [r0]
+ bx r3
+ nop
+_021D8A80: .word FUN_0201FFC8
+ thumb_func_end MOD64_021D8A78
+
+ thumb_func_start MOD64_021D8A84
+MOD64_021D8A84: ; 0x021D8A84
+ mov r3, #0
+ str r3, [r0]
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ str r3, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD64_021D8A84
+
+ thumb_func_start MOD64_021D8A90
+MOD64_021D8A90: ; 0x021D8A90
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0xc]
+ ldr r0, _021D8AD8 ; =0x0000FFFF
+ mul r0, r1
+ ldr r1, [r4, #8]
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _021D8ADC ; =0x020FFA38
+ ldr r2, [r4, #4]
+ ldrsh 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, [r4]
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #8]
+ add r0, r0, #1
+ bl _s32_div_f
+ str r1, [r4, #0xc]
+ pop {r4, pc}
+ nop
+_021D8AD8: .word 0x0000FFFF
+_021D8ADC: .word 0x020FFA38
+ thumb_func_end MOD64_021D8A90
+
+ thumb_func_start MOD64_021D8AE0
+MOD64_021D8AE0: ; 0x021D8AE0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _021D8AEE
+ bl ErrorHandling
+_021D8AEE:
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #0x2c
+ lsl r1, r1, #0xe
+ mov r2, #0x20
+ bl MOD64_021D8A84
+ ldr r0, _021D8B0C ; =MOD64_021D8B10
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x28]
+ pop {r4, pc}
+ nop
+_021D8B0C: .word MOD64_021D8B10
+ thumb_func_end MOD64_021D8AE0
+
+ thumb_func_start MOD64_021D8B10
+MOD64_021D8B10: ; 0x021D8B10
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r0, r4, #0
+ add r0, #0x2c
+ bl MOD64_021D8A90
+ add r5, r4, #0
+ add r5, #0x1c
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ ldr r1, [sp, #4]
+ ldr r0, [r4, #0x2c]
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r1, r2, #0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D8B10
+
+ thumb_func_start MOD64_021D8B44
+MOD64_021D8B44: ; 0x021D8B44
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _021D8B56
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x28]
+_021D8B56:
+ pop {r4, pc}
+ thumb_func_end MOD64_021D8B44
+
+ thumb_func_start MOD64_021D8B58
+MOD64_021D8B58: ; 0x021D8B58
+ ldr r3, _021D8B60 ; =FUN_020200A0
+ ldr r0, [r0]
+ bx r3
+ nop
+_021D8B60: .word FUN_020200A0
+ thumb_func_end MOD64_021D8B58
+
+ thumb_func_start MOD64_021D8B64
+MOD64_021D8B64: ; 0x021D8B64
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x1c]
+ lsl r1, r2, #0xc
+ str r1, [r0, #0x20]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD64_021D8B64
+
+ thumb_func_start MOD64_021D8B70
+MOD64_021D8B70: ; 0x021D8B70
+ push {r4, r5, r6, lr}
+ sub sp, #0x38
+ add r5, r0, #0
+ add r3, r5, #0
+ add r6, r2, #0
+ add r4, r1, #0
+ mov r0, #0x52
+ mov r1, #0xe
+ mov r2, #0
+ add r3, #0x14
+ str r6, [sp]
+ bl FUN_02006BB0
+ add r2, r5, #0
+ str r0, [r5, #0xc]
+ mov r0, #0x52
+ mov r1, #0xf
+ add r2, #0x18
+ add r3, r6, #0
+ bl FUN_02006C08
+ str r0, [r5, #0x10]
+ ldr r0, _021D8C04 ; =0x0000064C
+ ldr r0, [r4, r0]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x14]
+ str r0, [sp, #8]
+ add r0, sp, #4
+ bl FUN_02013D98
+ str r0, [r5]
+ ldr r0, _021D8C04 ; =0x0000064C
+ ldr r0, [r4, r0]
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0x18]
+ str r0, [sp, #0x30]
+ mov r0, #1
+ str r0, [sp, #0x34]
+ add r0, sp, #0x2c
+ bl FUN_02013E14
+ str r0, [r5, #4]
+ ldr r0, _021D8C04 ; =0x0000064C
+ mov r2, #0
+ ldr r0, [r4, r0]
+ mov r1, #0x1f
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ str r0, [sp, #0x14]
+ add r0, sp, #4
+ strh r2, [r0, #0x14]
+ strh r2, [r0, #0x16]
+ strh r2, [r0, #0x18]
+ str r1, [sp, #0x20]
+ ldr r1, _021D8C08 ; =0x000003FE
+ str r1, [sp, #0x24]
+ strh r2, [r0, #0x24]
+ add r0, sp, #0xc
+ bl FUN_02013E84
+ str r0, [r5, #8]
+ mov r1, #0
+ bl FUN_02013EB0
+ mov r1, #0x40
+ ldr r0, [r5, #8]
+ add r2, r1, #0
+ bl FUN_02013ED8
+ add sp, #0x38
+ pop {r4, r5, r6, pc}
+ nop
+_021D8C04: .word 0x0000064C
+_021D8C08: .word 0x000003FE
+ thumb_func_end MOD64_021D8B70
+
+ thumb_func_start MOD64_021D8C0C
+MOD64_021D8C0C: ; 0x021D8C0C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02013EA8
+ ldr r0, [r4]
+ bl FUN_02013DD4
+ ldr r0, [r4, #4]
+ bl FUN_02013E44
+ ldr r0, [r4, #0xc]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD64_021D8C0C
+
+ thumb_func_start MOD64_021D8C30
+MOD64_021D8C30: ; 0x021D8C30
+ ldr r3, _021D8C38 ; =FUN_02013EB0
+ ldr r0, [r0, #8]
+ bx r3
+ nop
+_021D8C38: .word FUN_02013EB0
+ thumb_func_end MOD64_021D8C30
+
+ thumb_func_start MOD64_021D8C3C
+MOD64_021D8C3C: ; 0x021D8C3C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x54]
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r0, #0
+ beq _021D8C50
+ bl ErrorHandling
+_021D8C50:
+ ldr r4, [sp, #0x24]
+ add r0, r5, #0
+ add r0, #0x1c
+ add r1, r6, #0
+ add r2, r7, #0
+ add r3, r4, #0
+ bl MOD64_021D8830
+ add r0, r5, #0
+ ldr r1, [sp]
+ ldr r2, [sp, #0x18]
+ add r0, #0x2c
+ add r3, r4, #0
+ bl MOD64_021D8830
+ add r0, r5, #0
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ add r0, #0x3c
+ add r3, r4, #0
+ bl MOD64_021D8830
+ mov r2, #0
+ str r2, [r5, #0x4c]
+ mov r0, #1
+ str r0, [r5, #0x50]
+ ldr r0, _021D8C90 ; =MOD64_021D8CC8
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #0x54]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8C90: .word MOD64_021D8CC8
+ thumb_func_end MOD64_021D8C3C
+
+ thumb_func_start MOD64_021D8C94
+MOD64_021D8C94: ; 0x021D8C94
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ beq _021D8CA2
+ bl ErrorHandling
+_021D8CA2:
+ mov r0, #1
+ mvn r0, r0
+ str r0, [r4, #0x50]
+ ldr r1, [r4, #0x28]
+ ldr r0, [r4, #0x4c]
+ cmp r0, r1
+ blt _021D8CB6
+ ldr r0, [r4, #0x50]
+ add r0, r1, r0
+ str r0, [r4, #0x4c]
+_021D8CB6:
+ ldr r0, _021D8CC4 ; =MOD64_021D8CC8
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x54]
+ pop {r4, pc}
+ .align 2, 0
+_021D8CC4: .word MOD64_021D8CC8
+ thumb_func_end MOD64_021D8C94
+
+ thumb_func_start MOD64_021D8CC8
+MOD64_021D8CC8: ; 0x021D8CC8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ ldr r1, [r5, #0x4c]
+ add r0, #0x1c
+ bl MOD64_021D883C
+ add r4, r0, #0
+ add r0, r5, #0
+ ldr r1, [r5, #0x4c]
+ add r0, #0x2c
+ bl MOD64_021D883C
+ add r0, r5, #0
+ ldr r1, [r5, #0x4c]
+ add r0, #0x3c
+ bl MOD64_021D883C
+ mov r2, #1
+ ldr r1, [r5, #0x1c]
+ lsl r2, r2, #0x12
+ sub r1, r1, r2
+ ldr r3, [r5, #0x2c]
+ lsl r1, r1, #4
+ sub r2, r3, r2
+ lsl r2, r2, #4
+ ldr r0, [r5, #8]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02013EC4
+ ldr r1, [r5, #0x3c]
+ ldr r0, [r5, #8]
+ add r2, r1, #0
+ bl FUN_02013EE0
+ cmp r4, #1
+ beq _021D8D1C
+ ldr r0, [r5, #0x4c]
+ cmp r0, #0
+ bge _021D8D26
+_021D8D1C:
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r5, #0x54]
+_021D8D26:
+ ldr r1, [r5, #0x4c]
+ ldr r0, [r5, #0x50]
+ add r0, r1, r0
+ str r0, [r5, #0x4c]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD64_021D8CC8
+
+ thumb_func_start MOD64_021D8D30
+MOD64_021D8D30: ; 0x021D8D30
+ ldr r0, [r0, #0x54]
+ cmp r0, #0
+ bne _021D8D3A
+ mov r0, #1
+ bx lr
+_021D8D3A:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD64_021D8D30
+
+ thumb_func_start MOD64_021D8D40
+MOD64_021D8D40: ; 0x021D8D40
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r2, #1
+ lsl r0, r0, #3
+ add r1, r5, r0
+ ldr r0, [r1, #0x7c]
+ add r1, #0x80
+ lsl r6, r0, #0xc
+ ldr r0, [r1]
+ ldr r1, _021D8DAC ; =0x00000666
+ add r0, #0x30
+ lsl r4, r0, #0xc
+ mov r0, #6
+ lsl r0, r0, #0x10
+ str r0, [sp]
+ str r1, [sp, #4]
+ lsl r2, r2, #0xc
+ str r2, [sp, #8]
+ mov r0, #6
+ sub r1, #0x16
+ str r0, [sp, #0xc]
+ add r0, r5, r1
+ add r1, r6, #0
+ lsl r2, r2, #7
+ add r3, r4, #0
+ bl MOD64_021D8C3C
+ mov r0, #6
+ mov r3, #1
+ mov r1, #0x21
+ str r4, [sp]
+ lsl r0, r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _021D8DAC ; =0x00000666
+ lsl r3, r3, #0xc
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ mov r0, #6
+ str r0, [sp, #0x10]
+ ldr r2, [r5, #0x54]
+ lsl r1, r1, #4
+ lsl r2, r2, #2
+ add r0, r5, r1
+ add r2, r5, r2
+ sub r1, #0xc
+ ldr r1, [r2, r1]
+ add r2, r6, #0
+ lsl r3, r3, #7
+ bl MOD64_021D8DDC
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D8DAC: .word 0x00000666
+ thumb_func_end MOD64_021D8D40
+
+ thumb_func_start MOD64_021D8DB0
+MOD64_021D8DB0: ; 0x021D8DB0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x65
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD64_021D8C94
+ mov r0, #0x21
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD64_021D8E34
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D8DB0
+
+ thumb_func_start MOD64_021D8DCC
+MOD64_021D8DCC: ; 0x021D8DCC
+ mov r1, #0x65
+ lsl r1, r1, #4
+ ldr r3, _021D8DD8 ; =MOD64_021D8D30
+ add r0, r0, r1
+ bx r3
+ nop
+_021D8DD8: .word MOD64_021D8D30
+ thumb_func_end MOD64_021D8DCC
+
+ thumb_func_start MOD64_021D8DDC
+MOD64_021D8DDC: ; 0x021D8DDC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x3c]
+ add r6, r1, #0
+ add r7, r2, #0
+ str r3, [sp]
+ cmp r0, #0
+ beq _021D8DF0
+ bl ErrorHandling
+_021D8DF0:
+ ldr r4, [sp, #0x28]
+ ldr r2, [sp]
+ add r0, r5, #4
+ add r1, r7, #0
+ add r3, r4, #0
+ bl MOD64_021D8830
+ add r0, r5, #0
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x1c]
+ add r0, #0x14
+ add r3, r4, #0
+ bl MOD64_021D8830
+ add r0, r5, #0
+ ldr r1, [sp, #0x20]
+ ldr r2, [sp, #0x24]
+ add r0, #0x24
+ add r3, r4, #0
+ bl MOD64_021D8830
+ str r6, [r5]
+ mov r2, #0
+ str r2, [r5, #0x34]
+ mov r0, #1
+ str r0, [r5, #0x38]
+ ldr r0, _021D8E30 ; =MOD64_021D8E68
+ add r1, r5, #0
+ bl FUN_0200CA44
+ str r0, [r5, #0x3c]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8E30: .word MOD64_021D8E68
+ thumb_func_end MOD64_021D8DDC
+
+ thumb_func_start MOD64_021D8E34
+MOD64_021D8E34: ; 0x021D8E34
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x3c]
+ cmp r0, #0
+ beq _021D8E42
+ bl ErrorHandling
+_021D8E42:
+ mov r0, #1
+ mvn r0, r0
+ str r0, [r4, #0x38]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x34]
+ cmp r0, r1
+ blt _021D8E56
+ ldr r0, [r4, #0x38]
+ add r0, r1, r0
+ str r0, [r4, #0x34]
+_021D8E56:
+ ldr r0, _021D8E64 ; =MOD64_021D8E68
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x3c]
+ pop {r4, pc}
+ .align 2, 0
+_021D8E64: .word MOD64_021D8E68
+ thumb_func_end MOD64_021D8E34
+
+ thumb_func_start MOD64_021D8E68
+MOD64_021D8E68: ; 0x021D8E68
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r1, [r5, #0x34]
+ add r7, r0, #0
+ add r0, r5, #4
+ bl MOD64_021D883C
+ add r6, r0, #0
+ add r0, r5, #0
+ ldr r1, [r5, #0x34]
+ add r0, #0x14
+ bl MOD64_021D883C
+ add r0, r5, #0
+ ldr r1, [r5, #0x34]
+ add r0, #0x24
+ bl MOD64_021D883C
+ ldr r2, [r5, #0x24]
+ asr r0, r2, #0x1f
+ lsr r1, r2, #0xc
+ lsl r0, r0, #0x14
+ lsl r3, r2, #0x14
+ mov r2, #2
+ orr r0, r1
+ mov r1, #0
+ lsl r2, r2, #0xa
+ add r2, r3, r2
+ adc r0, r1
+ lsl r0, r0, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r0
+ asr r4, r2, #0xc
+ ldr r2, [r5, #4]
+ ldr r0, [r5]
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ ldr r2, [r5, #0x14]
+ ldr r0, [r5]
+ mov r1, #1
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #0xc
+ add r2, r4, #0
+ bl FUN_02007558
+ ldr r0, [r5]
+ mov r1, #0xd
+ add r2, r4, #0
+ bl FUN_02007558
+ cmp r6, #1
+ beq _021D8EDE
+ ldr r0, [r5, #0x34]
+ cmp r0, #0
+ bge _021D8EE8
+_021D8EDE:
+ add r0, r7, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r5, #0x3c]
+_021D8EE8:
+ ldr r1, [r5, #0x34]
+ ldr r0, [r5, #0x38]
+ add r0, r1, r0
+ str r0, [r5, #0x34]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D8E68
+
+ thumb_func_start MOD64_021D8EF4
+MOD64_021D8EF4: ; 0x021D8EF4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0x14]
+ mov r0, #0x20
+ str r0, [sp]
+ add r0, r1, #0
+ str r1, [sp, #0x18]
+ str r0, [sp, #4]
+ mov r0, #0x52
+ mov r1, #0x11
+ mov r2, #0
+ mov r3, #0xa0
+ bl FUN_02006930
+ ldr r5, [sp, #0x14]
+ mov r4, #0
+ mov r6, #1
+_021D8F16:
+ ldr r0, [sp, #0x18]
+ mov r1, #1
+ bl FUN_02018FF4
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl FUN_0201901C
+ cmp r4, #0
+ beq _021D8F3C
+ cmp r4, #1
+ beq _021D8F44
+ cmp r4, #2
+ beq _021D8F4C
+ b _021D8F52
+_021D8F3C:
+ mov r0, #0xc
+ str r0, [sp, #0x1c]
+ mov r7, #4
+ b _021D8F52
+_021D8F44:
+ mov r0, #4
+ str r0, [sp, #0x1c]
+ mov r7, #0xe
+ b _021D8F52
+_021D8F4C:
+ mov r0, #0x14
+ str r0, [sp, #0x1c]
+ mov r7, #0xd
+_021D8F52:
+ lsl r0, r7, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #5
+ str r0, [sp, #0xc]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, r5, #0
+ ldr r3, [sp, #0x1c]
+ add r0, #0x94
+ add r1, #0x9c
+ lsl r3, r3, #0x18
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #3
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ ldr r0, _021D8FA8 ; =0x0001020A
+ mov r2, #5
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ ldr r1, [sp, #0x18]
+ lsl r2, r2, #6
+ add r3, r4, #4
+ bl MOD64_021D8FD0
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0x40
+ cmp r4, #3
+ blt _021D8F16
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8FA8: .word 0x0001020A
+ thumb_func_end MOD64_021D8EF4
+
+ thumb_func_start MOD64_021D8FAC
+MOD64_021D8FAC: ; 0x021D8FAC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D8FB2:
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021D8FB2
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD64_021D8FAC
+
+ thumb_func_start MOD64_021D8FD0
+MOD64_021D8FD0: ; 0x021D8FD0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r3, #0
+ mov r0, #0
+ mov r1, #0x1a
+ add r3, r4, #0
+ bl FUN_0200A86C
+ add r4, r0, #0
+ bne _021D8FEC
+ bl ErrorHandling
+_021D8FEC:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_0200A914
+ ldr r1, [sp, #0x20]
+ add r6, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x20]
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ mov r3, #1
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_0200A8B8
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD64_021D8FD0
+
+ thumb_func_start MOD64_021D902C
+MOD64_021D902C: ; 0x021D902C
+ add r1, r0, #0
+ add r1, #0xa8
+ ldr r1, [r1]
+ ldr r3, _021D9040 ; =FUN_02019570
+ lsl r1, r1, #2
+ add r0, r0, r1
+ add r0, #0x9c
+ ldr r0, [r0]
+ bx r3
+ nop
+_021D9040: .word FUN_02019570
+ thumb_func_end MOD64_021D902C
+
+ thumb_func_start MOD64_021D9044
+MOD64_021D9044: ; 0x021D9044
+ push {r3, lr}
+ cmp r0, #0
+ beq _021D9054
+ cmp r0, #1
+ beq _021D9058
+ cmp r0, #2
+ beq _021D905C
+ b _021D9060
+_021D9054:
+ ldr r0, _021D9068 ; =0x00000183
+ pop {r3, pc}
+_021D9058:
+ ldr r0, _021D906C ; =0x00000186
+ pop {r3, pc}
+_021D905C:
+ ldr r0, _021D9070 ; =0x00000189
+ pop {r3, pc}
+_021D9060:
+ bl ErrorHandling
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021D9068: .word 0x00000183
+_021D906C: .word 0x00000186
+_021D9070: .word 0x00000189
+ thumb_func_end MOD64_021D9044
+
+ .section .rodata
+ ; 0x021D9074
+ .incbin "baserom.nds", 0x2B9194, 0x9C
+ ; 0x021D9110
diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s
new file mode 100644
index 00000000..07e7acd3
--- /dev/null
+++ b/arm9/modules/65/asm/module_65.s
@@ -0,0 +1,5500 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD65_021D74E0
+MOD65_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_0200628C
+ mov r2, #2
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x2d
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ mov r1, #2
+ add r0, r4, #0
+ lsl r1, r1, #8
+ mov r2, #0x2d
+ bl FUN_02006268
+ mov r2, #2
+ mov r1, #0
+ lsl r2, r2, #8
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x2d
+ str r0, [r4]
+ str r5, [r4, #0x20]
+ ldrb r0, [r5, #3]
+ strb r0, [r4, #0x1b]
+ ldr r0, _021D7520 ; =0x0000FFFF
+ strh r0, [r4, #0x14]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7520: .word 0x0000FFFF
+ thumb_func_end MOD65_021D74E0
+
+ thumb_func_start MOD65_021D7524
+MOD65_021D7524: ; 0x021D7524
+ push {r3, lr}
+ bl FUN_02006278
+ bl MOD65_021D757C
+ cmp r0, #0
+ beq _021D7536
+ mov r0, #1
+ pop {r3, pc}
+_021D7536:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D7524
+
+ thumb_func_start MOD65_021D753C
+MOD65_021D753C: ; 0x021D753C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldrb r1, [r4, #0x1a]
+ ldr r0, [r4, #0x20]
+ strb r1, [r0, #1]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x20]
+ strb r1, [r0, #2]
+ ldrb r1, [r4, #0x1b]
+ ldr r0, [r4, #0x20]
+ strb r1, [r0, #3]
+ add r0, r4, #0
+ add r0, #0x80
+ ldrh r1, [r0]
+ ldr r0, [r4, #0x20]
+ strh r1, [r0, #4]
+ add r0, r4, #0
+ add r0, #0x82
+ ldrh r1, [r0]
+ ldr r0, [r4, #0x20]
+ strh r1, [r0, #6]
+ add r0, r5, #0
+ bl FUN_0200627C
+ ldr r0, [r4]
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD65_021D753C
+
+ thumb_func_start MOD65_021D757C
+MOD65_021D757C: ; 0x021D757C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #6
+ bls _021D758A
+ b _021D76BE
+_021D758A:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7596: ; jump table
+ .short _021D75A4 - _021D7596 - 2 ; case 0
+ .short _021D75F4 - _021D7596 - 2 ; case 1
+ .short _021D761C - _021D7596 - 2 ; case 2
+ .short _021D762E - _021D7596 - 2 ; case 3
+ .short _021D7664 - _021D7596 - 2 ; case 4
+ .short _021D7676 - _021D7596 - 2 ; case 5
+ .short _021D7684 - _021D7596 - 2 ; case 6
+_021D75A4:
+ 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, _021D76D0 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D76D4 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ b _021D76C4
+_021D75F4:
+ bl MOD65_021D798C
+ cmp r0, #0
+ bne _021D7602
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D7602:
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [r4]
+ add r3, r0, #0
+ str r2, [sp, #8]
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ b _021D76C4
+_021D761C:
+ bl MOD65_021D8954
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D76C4
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D762E:
+ bl MOD65_021D8954
+ ldrh r1, [r4, #0x18]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _021D76D8 ; =0x021DA07C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ bne _021D7648
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D7648:
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r1, [r4]
+ add r2, r0, #0
+ str r1, [sp, #8]
+ add r1, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ b _021D76C4
+_021D7664:
+ bl MOD65_021D8954
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D76C4
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D7676:
+ bl MOD65_021D7A00
+ cmp r0, #0
+ bne _021D76C4
+ add sp, #0xc
+ mov r0, #0
+ pop {r3, r4, pc}
+_021D7684:
+ bl FUN_0201CD04
+ 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
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D76D0 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D76D4 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ b _021D76C4
+_021D76BE:
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_021D76C4:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D76D0: .word 0xFFFFE0FF
+_021D76D4: .word 0x04001000
+_021D76D8: .word 0x021DA07C
+ thumb_func_end MOD65_021D757C
+
+ thumb_func_start MOD65_021D76DC
+MOD65_021D76DC: ; 0x021D76DC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D76EE
+ bl FUN_0200BC30
+_021D76EE:
+ bl FUN_0201C30C
+ ldr r0, [r4, #0x24]
+ bl FUN_0201AB60
+ ldr r3, _021D7708 ; =0x027E0000
+ ldr r1, _021D770C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_021D7708: .word 0x027E0000
+_021D770C: .word 0x00003FF8
+ thumb_func_end MOD65_021D76DC
+
+ thumb_func_start MOD65_021D7710
+MOD65_021D7710: ; 0x021D7710
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D7748 ; =0x021DA094
+ bl FUN_02020988
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021D7744
+ ldr r0, _021D7748 ; =0x021DA094
+ bl FUN_02020968
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021D7740
+ ldrh r0, [r4, #0x14]
+ cmp r0, #1
+ bne _021D7740
+ ldrb r1, [r4, #0x1b]
+ add r0, r4, #0
+ mov r2, #2
+ bl MOD65_021D8280
+_021D7740:
+ mov r0, #0
+ mvn r0, r0
+_021D7744:
+ pop {r4, pc}
+ nop
+_021D7748: .word 0x021DA094
+ thumb_func_end MOD65_021D7710
+
+ thumb_func_start MOD65_021D774C
+MOD65_021D774C: ; 0x021D774C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ mov r4, #0
+ mvn r4, r4
+ cmp r1, #0
+ bne _021D7762
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D7762:
+ bl MOD65_021D7710
+ add r1, r0, #0
+ ldr r0, _021D77F8 ; =0x021C48B8
+ ldr r0, [r0, #0x44]
+ cmp r0, #0
+ beq _021D7784
+ ldrh r0, [r5, #0x14]
+ cmp r0, #0
+ bne _021D7796
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ b _021D7796
+_021D7784:
+ cmp r1, #0
+ blt _021D7792
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD65_021D83A0
+_021D7792:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D7796:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _021D77A2
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D77A2:
+ ldr r0, _021D77F8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _021D77BE
+ ldr r0, _021D77FC ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0xff
+ strb r0, [r5, #0x1a]
+ mov r0, #0
+ str r0, [r5, #0x10]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D77BE:
+ mov r0, #1
+ tst r0, r1
+ beq _021D77F2
+ ldr r0, _021D77FC ; =0x000005DC
+ bl FUN_020054C8
+ cmp r4, #0xff
+ beq _021D77DC
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _021D77DC
+ add r0, r0, #1
+ cmp r4, r0
+ bne _021D77E8
+_021D77DC:
+ mov r0, #0xff
+ strb r0, [r5, #0x1a]
+ mov r0, #0
+ str r0, [r5, #0x10]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D77E8:
+ strb r4, [r5, #0x1a]
+ mov r0, #1
+ strh r0, [r5, #0x18]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D77F2:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D77F8: .word 0x021C48B8
+_021D77FC: .word 0x000005DC
+ thumb_func_end MOD65_021D774C
+
+ thumb_func_start MOD65_021D7800
+MOD65_021D7800: ; 0x021D7800
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #1
+ bl MOD65_021D8970
+ add r0, r4, #0
+ bl MOD65_021D8634
+ mov r0, #2
+ strh r0, [r4, #0x18]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD65_021D7800
+
+ thumb_func_start MOD65_021D7818
+MOD65_021D7818: ; 0x021D7818
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ ldr r0, _021D78A4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #2
+ tst r0, r1
+ beq _021D784A
+ ldr r0, _021D78A8 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD65_021D86BC
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD65_021D8970
+ mov r0, #0
+ strh r0, [r5, #0x18]
+ pop {r3, r4, r5, pc}
+_021D784A:
+ mov r0, #1
+ tst r0, r1
+ beq _021D789E
+ ldr r0, _021D78A8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ bhi _021D786E
+ bhs _021D788C
+ cmp r4, #1
+ bhi _021D788C
+ cmp r4, #0
+ beq _021D7874
+ cmp r4, #1
+ beq _021D787A
+ b _021D788C
+_021D786E:
+ add r0, r0, #1
+ cmp r4, r0
+ b _021D788C
+_021D7874:
+ mov r0, #1
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, pc}
+_021D787A:
+ add r0, r5, #0
+ bl MOD65_021D86BC
+ add r0, r5, #0
+ bl MOD65_021D8718
+ mov r0, #3
+ strh r0, [r5, #0x18]
+ b _021D789E
+_021D788C:
+ add r0, r5, #0
+ bl MOD65_021D86BC
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD65_021D8970
+ mov r0, #0
+ strh r0, [r5, #0x18]
+_021D789E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D78A4: .word 0x021C48B8
+_021D78A8: .word 0x000005DC
+ thumb_func_end MOD65_021D7818
+
+ thumb_func_start MOD65_021D78AC
+MOD65_021D78AC: ; 0x021D78AC
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #0x1f]
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021D78BE
+ mov r0, #0
+ pop {r4, pc}
+_021D78BE:
+ add r0, r4, #0
+ bl MOD65_021D87B0
+ mov r0, #4
+ strh r0, [r4, #0x18]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD65_021D78AC
+
+ thumb_func_start MOD65_021D78CC
+MOD65_021D78CC: ; 0x021D78CC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xd4
+ ldr r0, [r0]
+ ldr r1, [r4]
+ bl FUN_020021AC
+ cmp r0, #0
+ beq _021D78E8
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D78FC
+ b _021D7916
+_021D78E8:
+ ldr r0, _021D791C ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD65_021D8764
+ mov r0, #5
+ strh r0, [r4, #0x18]
+ mov r0, #0
+ pop {r4, pc}
+_021D78FC:
+ ldr r0, _021D791C ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200D0E0
+ mov r0, #1
+ strh r0, [r4, #0x18]
+ mov r0, #0
+ pop {r4, pc}
+_021D7916:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021D791C: .word 0x000005DC
+ thumb_func_end MOD65_021D78CC
+
+ thumb_func_start MOD65_021D7920
+MOD65_021D7920: ; 0x021D7920
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #0x1f]
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021D7932
+ mov r0, #0
+ pop {r4, pc}
+_021D7932:
+ ldr r0, _021D7988 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021D7940
+ mov r0, #0
+ pop {r4, pc}
+_021D7940:
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #1
+ bl FUN_0200D0E0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019570
+ ldrb r0, [r4, #0x1a]
+ ldr r3, [r4, #0x20]
+ lsl r2, r0, #3
+ add r3, #0x20
+ ldrb r1, [r3, r2]
+ mov r0, #0x40
+ orr r0, r1
+ strb r0, [r3, r2]
+ ldr r0, [r4, #0x20]
+ mov r1, #1
+ strb r1, [r0, #2]
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD65_021D8214
+ add r0, r4, #0
+ bl MOD65_021D80C8
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD65_021D8970
+ mov r0, #0
+ strh r0, [r4, #0x18]
+ pop {r4, pc}
+ .align 2, 0
+_021D7988: .word 0x021C48B8
+ thumb_func_end MOD65_021D7920
+
+ thumb_func_start MOD65_021D798C
+MOD65_021D798C: ; 0x021D798C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #5
+ bhi _021D79F0
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D79A2: ; jump table
+ .short _021D79AE - _021D79A2 - 2 ; case 0
+ .short _021D79B4 - _021D79A2 - 2 ; case 1
+ .short _021D79BA - _021D79A2 - 2 ; case 2
+ .short _021D79C6 - _021D79A2 - 2 ; case 3
+ .short _021D79CC - _021D79A2 - 2 ; case 4
+ .short _021D79D2 - _021D79A2 - 2 ; case 5
+_021D79AE:
+ bl MOD65_021D7A8C
+ b _021D79F0
+_021D79B4:
+ bl MOD65_021D7B24
+ b _021D79F0
+_021D79BA:
+ bl MOD65_021D7CC8
+ add r0, r4, #0
+ bl MOD65_021D7C04
+ b _021D79F0
+_021D79C6:
+ bl MOD65_021D8850
+ b _021D79F0
+_021D79CC:
+ bl MOD65_021D7DD8
+ b _021D79F0
+_021D79D2:
+ bl MOD65_021D80C8
+ ldrb r1, [r4, #0x1b]
+ add r0, r4, #0
+ mov r2, #4
+ bl MOD65_021D8280
+ ldr r0, _021D79FC ; =MOD65_021D76DC
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0
+ str r0, [r4, #8]
+ mov r0, #1
+ pop {r4, pc}
+_021D79F0:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021D79FC: .word MOD65_021D76DC
+ thumb_func_end MOD65_021D798C
+
+ thumb_func_start MOD65_021D7A00
+MOD65_021D7A00: ; 0x021D7A00
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #5
+ bhi _021D7A62
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7A16: ; jump table
+ .short _021D7A22 - _021D7A16 - 2 ; case 0
+ .short _021D7A3A - _021D7A16 - 2 ; case 1
+ .short _021D7A46 - _021D7A16 - 2 ; case 2
+ .short _021D7A52 - _021D7A16 - 2 ; case 3
+ .short _021D7A58 - _021D7A16 - 2 ; case 4
+ .short _021D7A5E - _021D7A16 - 2 ; case 5
+_021D7A22:
+ add r1, r4, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _021D7A30
+ bl MOD65_021D86BC
+_021D7A30:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD65_021D8214
+ b _021D7A62
+_021D7A3A:
+ bl MOD65_021D7F44
+ add r0, r4, #0
+ bl MOD65_021D8928
+ b _021D7A62
+_021D7A46:
+ bl MOD65_021D7CA8
+ add r0, r4, #0
+ bl MOD65_021D7D74
+ b _021D7A62
+_021D7A52:
+ bl MOD65_021D7C00
+ b _021D7A62
+_021D7A58:
+ bl MOD65_021D7B04
+ b _021D7A62
+_021D7A5E:
+ mov r0, #1
+ pop {r4, pc}
+_021D7A62:
+ ldr r0, [r4, #8]
+ add r0, r0, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD65_021D7A00
+
+ thumb_func_start MOD65_021D7A6C
+MOD65_021D7A6C: ; 0x021D7A6C
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7A88 ; =0x021DA0B0
+ add r3, sp, #0
+ mov r2, #5
+_021D7A76:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7A76
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7A88: .word 0x021DA0B0
+ thumb_func_end MOD65_021D7A6C
+
+ thumb_func_start MOD65_021D7A8C
+MOD65_021D7A8C: ; 0x021D7A8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xb8
+ add r5, r0, #0
+ bl MOD65_021D7A6C
+ ldr r0, [r5]
+ bl FUN_02016B94
+ add r3, sp, #0
+ ldr r4, _021D7AFC ; =0x021DA040
+ str r0, [r5, #0x24]
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r4, _021D7B00 ; =0x021DA140
+ add r3, sp, #0x10
+ mov r2, #0x15
+_021D7AB8:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7AB8
+ mov r4, #0
+ add r7, r4, #0
+ add r6, sp, #0x10
+_021D7AC6:
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x24]
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ mov r3, #0
+ bl FUN_02016C18
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x24]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ lsl r0, r4, #0x18
+ ldr r3, [r5]
+ lsr r0, r0, #0x18
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ add r7, r7, #1
+ add r4, r4, #1
+ add r6, #0x1c
+ cmp r7, #6
+ blt _021D7AC6
+ add sp, #0xb8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7AFC: .word 0x021DA040
+_021D7B00: .word 0x021DA140
+ thumb_func_end MOD65_021D7A8C
+
+ thumb_func_start MOD65_021D7B04
+MOD65_021D7B04: ; 0x021D7B04
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D7B0A:
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x24]
+ lsr r1, r1, #0x18
+ bl FUN_020178A0
+ add r4, r4, #1
+ cmp r4, #6
+ blt _021D7B0A
+ ldr r0, [r5, #0x24]
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D7B04
+
+ thumb_func_start MOD65_021D7B24
+MOD65_021D7B24: ; 0x021D7B24
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r0, #0x53
+ bl FUN_02006670
+ add r4, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x53
+ bl FUN_02079B60
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x53
+ bl FUN_02079B60
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #6
+ lsl r0, r0, #6
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x53
+ bl FUN_02079B60
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #6
+ lsl r0, r0, #6
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x53
+ bl FUN_02079B60
+ mov r0, #0xa
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x53
+ bl FUN_02079B60
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x24]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x53
+ bl FUN_02079B60
+ add r0, r4, #0
+ bl FUN_020066F4
+ ldr r0, [r5, #0x24]
+ mov r1, #3
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x24]
+ mov r1, #5
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D7B24
+
+ thumb_func_start MOD65_021D7C00
+MOD65_021D7C00: ; 0x021D7C00
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD65_021D7C00
+
+ thumb_func_start MOD65_021D7C04
+MOD65_021D7C04: ; 0x021D7C04
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x24]
+ mov r2, #0x1f
+ mov r3, #0xf
+ bl FUN_0200CB00
+ ldr r0, [r6, #0x20]
+ ldr r0, [r0, #0x18]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldr r0, [r6]
+ mov r1, #1
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x24]
+ add r2, r1, #0
+ mov r3, #0xe
+ bl FUN_0200CD68
+ mov r1, #0x1a
+ ldr r2, [r6]
+ mov r0, #0
+ lsl r1, r1, #4
+ bl FUN_02002ED0
+ mov r1, #6
+ ldr r2, [r6]
+ mov r0, #0
+ lsl r1, r1, #6
+ bl FUN_02002EEC
+ mov r1, #0x1a
+ ldr r2, [r6]
+ mov r0, #4
+ lsl r1, r1, #4
+ bl FUN_02002ED0
+ add r5, r6, #0
+ ldr r4, _021D7CA4 ; =0x021DA0D8
+ mov r7, #0
+ add r5, #0xe8
+_021D7C68:
+ ldrb r0, [r4, #2]
+ add r1, r5, #0
+ str r0, [sp]
+ ldrb r0, [r4, #3]
+ str r0, [sp, #4]
+ ldrb r0, [r4, #4]
+ str r0, [sp, #8]
+ ldrb r0, [r4, #5]
+ str r0, [sp, #0xc]
+ ldrh r0, [r4, #6]
+ str r0, [sp, #0x10]
+ ldrb r2, [r4]
+ ldrb r3, [r4, #1]
+ ldr r0, [r6, #0x24]
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r7, r7, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r7, #0xd
+ blt _021D7C68
+ add r0, r6, #0
+ bl MOD65_021D87D4
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7CA4: .word 0x021DA0D8
+ thumb_func_end MOD65_021D7C04
+
+ thumb_func_start MOD65_021D7CA8
+MOD65_021D7CA8: ; 0x021D7CA8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0xe8
+_021D7CB0:
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0xd
+ blt _021D7CB0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D7CA8
+
+ thumb_func_start MOD65_021D7CC8
+MOD65_021D7CC8: ; 0x021D7CC8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r0, #2
+ bl FUN_02002C50
+ mov r2, #0x67
+ ldr r3, [r5]
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ bl FUN_0200A86C
+ str r0, [r5, #0x2c]
+ ldr r0, [r5]
+ bl FUN_02014518
+ str r0, [r5, #0x28]
+ ldr r2, [r5]
+ mov r0, #2
+ mov r1, #0x40
+ bl FUN_0200AA90
+ str r0, [r5, #0x30]
+ ldr r1, [r5]
+ mov r0, #0x40
+ bl FUN_020219F4
+ str r0, [r5, #0x34]
+ ldr r0, [r5, #0x2c]
+ mov r1, #6
+ bl FUN_0200A914
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #0x2c]
+ mov r1, #0x16
+ bl FUN_0200A914
+ str r0, [r5, #0x3c]
+ ldr r0, [r5, #0x2c]
+ mov r1, #4
+ bl FUN_0200A914
+ str r0, [r5, #0x40]
+ ldr r0, [r5, #0x2c]
+ mov r1, #7
+ bl FUN_0200A914
+ str r0, [r5, #0x44]
+ ldr r0, [r5, #0x2c]
+ mov r1, #8
+ bl FUN_0200A914
+ str r0, [r5, #0x48]
+ ldr r0, [r5, #0x2c]
+ mov r1, #0
+ bl FUN_0200A914
+ str r0, [r5, #0x4c]
+ mov r4, #0
+ add r6, r5, #0
+_021D7D42:
+ add r1, r4, #0
+ ldr r0, [r5, #0x2c]
+ add r1, #0xb
+ bl FUN_0200A914
+ str r0, [r6, #0x50]
+ cmp r4, #5
+ bge _021D7D66
+ add r1, r4, #0
+ ldr r0, [r5, #0x2c]
+ add r1, #0x11
+ bl FUN_0200A914
+ str r0, [r6, #0x68]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, #6
+ blt _021D7D42
+_021D7D66:
+ ldr r0, [r5, #0x20]
+ ldr r0, [r0, #0x18]
+ bl FUN_02024FF4
+ add r5, #0x7c
+ strb r0, [r5]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD65_021D7CC8
+
+ thumb_func_start MOD65_021D7D74
+MOD65_021D7D74: ; 0x021D7D74
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_021D7D7C:
+ ldr r0, [r5, #0x50]
+ bl FUN_02021A20
+ cmp r4, #5
+ bge _021D7D94
+ ldr r0, [r5, #0x68]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D7D7C
+_021D7D94:
+ ldr r0, [r6, #0x4c]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x48]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x44]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x40]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x3c]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x38]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x34]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x30]
+ bl FUN_0200AB18
+ ldr r0, [r6, #0x28]
+ bl FUN_02014564
+ ldr r0, [r6, #0x2c]
+ bl FUN_0200A8B8
+ mov r0, #2
+ bl FUN_02002CF8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD65_021D7D74
+
+ thumb_func_start MOD65_021D7DD8
+MOD65_021D7DD8: ; 0x021D7DD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r6, _021D7F30 ; =0x021DA1E8
+ mov r7, #0
+ add r4, r5, #0
+_021D7DE4:
+ mov r0, #0x6e
+ mov r1, #0x6f
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200BE38
+ mov r1, #7
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #0x28
+ add r4, r4, #4
+ cmp r7, #3
+ blt _021D7DE4
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r6, _021D7F34 ; =0x021DA050
+ mov r7, #0
+ add r4, r5, #0
+_021D7E3A:
+ mov r0, #0x6e
+ mov r1, #0x6f
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, _021D7F38 ; =0x021DA260
+ bl FUN_0200BE38
+ mov r1, #0x73
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r7, #3
+ bl FUN_02020130
+ mov r0, #0x73
+ mov r1, #0
+ mov r2, #2
+ lsl r0, r0, #2
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C6E4
+ add r7, r7, #1
+ add r4, r4, #4
+ add r6, r6, #4
+ cmp r7, #5
+ blt _021D7E3A
+ mov r7, #0
+ ldr r6, _021D7F3C ; =0x021DA064
+ add r4, r5, #0
+ str r7, [sp, #0x10]
+_021D7E8C:
+ mov r0, #0x6e
+ mov r1, #0x6f
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ ldr r2, _021D7F40 ; =0x021DA288
+ bl FUN_0200BE38
+ mov r1, #0x1e
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ ldr r1, [sp, #0x10]
+ bl FUN_02020130
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ mov r1, #2
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, r7, #2
+ bl FUN_02020248
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x1e
+ mov r1, #0
+ mov r2, #2
+ lsl r0, r0, #4
+ ldrsh r1, [r6, r1]
+ ldrsh r2, [r6, r2]
+ ldr r0, [r4, r0]
+ bl FUN_0200C6E4
+ ldr r0, [sp, #0x10]
+ add r7, r7, #1
+ add r0, r0, #3
+ add r4, r4, #4
+ add r6, r6, #4
+ str r0, [sp, #0x10]
+ cmp r7, #6
+ blt _021D7E8C
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x7e
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r2, #0xe7
+ mov r3, #0x4c
+ bl FUN_02088490
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #0
+ ldr r0, [r0, #4]
+ bl FUN_0200C644
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7F30: .word 0x021DA1E8
+_021D7F34: .word 0x021DA050
+_021D7F38: .word 0x021DA260
+_021D7F3C: .word 0x021DA064
+_021D7F40: .word 0x021DA288
+ thumb_func_end MOD65_021D7DD8
+
+ thumb_func_start MOD65_021D7F44
+MOD65_021D7F44: ; 0x021D7F44
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0x7e
+ add r5, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_02088694
+ mov r7, #0x1e
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #4
+_021D7F5E:
+ ldr r0, [r4, r7]
+ bl FUN_0200BC14
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _021D7F5E
+ mov r7, #0x73
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #2
+_021D7F74:
+ ldr r0, [r4, r7]
+ bl FUN_0200BC14
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #5
+ blt _021D7F74
+ mov r6, #7
+ mov r4, #0
+ lsl r6, r6, #6
+_021D7F88:
+ ldr r0, [r5, r6]
+ bl FUN_0200BC14
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021D7F88
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD65_021D7F44
+
+ thumb_func_start MOD65_021D7F98
+MOD65_021D7F98: ; 0x021D7F98
+ ldrb r2, [r0, #4]
+ mov r1, #0x20
+ bic r2, r1
+ strb r2, [r0, #4]
+ mov r1, #0xff
+ strb r1, [r0, #6]
+ ldrb r1, [r0, #6]
+ strb r1, [r0, #7]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD65_021D7F98
+
+ thumb_func_start MOD65_021D7FAC
+MOD65_021D7FAC: ; 0x021D7FAC
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ cmp r3, #0
+ beq _021D7FCA
+ mov r0, #0x42
+ lsl r0, r0, #2
+ mov r1, #1
+ add r0, r5, r0
+ add r2, r1, #0
+ mov r3, #0xe
+ bl FUN_0200D0BC
+_021D7FCA:
+ mov r0, #0xd8
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ add r0, #0xe8
+ mov r2, #0
+ add r0, r5, r0
+ mov r1, #0xff
+ add r3, r2, #0
+ bl FUN_020196F4
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _021D800C ; =0x0001020F
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r0, r5, r0
+ mov r1, #1
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ strb r0, [r5, #0x1f]
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D800C: .word 0x0001020F
+ thumb_func_end MOD65_021D7FAC
+
+ thumb_func_start MOD65_021D8010
+MOD65_021D8010: ; 0x021D8010
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r5, r1, #0
+ mov r0, #0xff
+ strb r0, [r5, #0x1e]
+ ldrb r0, [r5, #0x1e]
+ strb r0, [r5, #0x1d]
+ ldrb r2, [r5, #0x1b]
+ cmp r2, #5
+ bne _021D802E
+ mov r7, #0x1f
+ b _021D8044
+_021D802E:
+ mov r7, #1
+ ldr r1, [sp, #4]
+ cmp r2, #0
+ ble _021D8044
+_021D8036:
+ lsl r0, r7, #0x19
+ lsr r7, r0, #0x18
+ add r0, r1, #1
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ cmp r1, r2
+ blt _021D8036
+_021D8044:
+ ldr r0, [sp]
+ mov r6, #0
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _021D80BA
+ ldr r0, [sp]
+ str r0, [sp, #8]
+ add r0, #0x1c
+ str r0, [sp, #8]
+_021D8056:
+ ldr r0, [sp, #8]
+ lsl r1, r6, #3
+ add r4, r0, r1
+ add r0, r4, #0
+ bl MOD65_021D7F98
+ ldrb r0, [r4, #4]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x1f
+ beq _021D80AC
+ lsl r1, r0, #0x19
+ lsr r1, r1, #0x1f
+ bne _021D80AC
+ mov r1, #0x1f
+ and r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ tst r1, r7
+ beq _021D80AC
+ mov r1, #0x20
+ orr r0, r1
+ strb r0, [r4, #4]
+ ldrb r0, [r5, #0x1d]
+ cmp r0, #0xff
+ ldrb r0, [r4, #5]
+ bne _021D808E
+ strb r0, [r5, #0x1d]
+ b _021D809A
+_021D808E:
+ ldrb r1, [r5, #0x1e]
+ lsl r2, r1, #3
+ ldr r1, [sp]
+ add r1, r1, r2
+ add r1, #0x23
+ strb r0, [r1]
+_021D809A:
+ ldrb r0, [r5, #0x1e]
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #5]
+ strb r0, [r5, #0x1e]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #4]
+_021D80AC:
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ ldr r0, [sp]
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _021D8056
+_021D80BA:
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8010
+
+ thumb_func_start MOD65_021D80C8
+MOD65_021D80C8: ; 0x021D80C8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, [r5, #0x20]
+ add r1, r5, #0
+ bl MOD65_021D8010
+ strb r0, [r5, #0x1c]
+ ldrb r0, [r5, #0x1c]
+ ldr r1, [r5]
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xcc
+ str r0, [r1]
+ ldrb r4, [r5, #0x1e]
+ cmp r4, #0xff
+ beq _021D8142
+ mov r7, #0
+_021D80EE:
+ ldr r1, [r5, #0x20]
+ lsl r0, r4, #3
+ add r1, #0x1c
+ add r6, r1, r0
+ ldrb r4, [r6, #6]
+ ldrb r1, [r6, #2]
+ ldr r0, [r5, #0x28]
+ bl FUN_02014588
+ add r2, r0, #0
+ str r7, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x30]
+ add r1, r7, #0
+ add r3, r7, #0
+ bl FUN_0200ABB4
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldrb r2, [r6, #1]
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x30]
+ ldr r1, [r5, #0x34]
+ ldr r2, [r5, #0x3c]
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ add r0, #0xcc
+ ldrb r2, [r6, #5]
+ ldr r0, [r0]
+ ldr r1, [r5, #0x34]
+ bl FUN_020128A0
+ cmp r4, #0xff
+ bne _021D80EE
+_021D8142:
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ ldr r1, [r5, #0x38]
+ mov r2, #0xff
+ bl FUN_020128A0
+ add r1, r5, #0
+ ldr r0, _021D8210 ; =0x021DA2E0
+ add r1, #0x84
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ ldr r0, [r5, #0x20]
+ ldrh r1, [r0, #6]
+ add r0, r5, #0
+ add r0, #0x82
+ strh r1, [r0]
+ ldr r0, [r5, #0x20]
+ ldrh r1, [r0, #4]
+ add r0, r5, #0
+ add r0, #0x80
+ strh r1, [r0]
+ ldr r0, [r5, #0x20]
+ ldrb r0, [r0, #2]
+ cmp r0, #0
+ beq _021D81C0
+ add r0, r5, #0
+ add r0, #0x80
+ ldrh r0, [r0]
+ cmp r0, #0
+ bne _021D81A4
+ add r0, r5, #0
+ add r0, #0x82
+ ldrh r1, [r0]
+ cmp r1, #0
+ beq _021D81BA
+ ldrb r0, [r5, #0x1c]
+ sub r0, r0, #1
+ cmp r1, r0
+ blt _021D81BA
+ add r0, r5, #0
+ add r0, #0x82
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x82
+ strh r1, [r0]
+ b _021D81BA
+_021D81A4:
+ add r1, r0, #6
+ ldrb r0, [r5, #0x1c]
+ cmp r1, r0
+ blt _021D81BA
+ add r0, r5, #0
+ add r0, #0x80
+ ldrh r0, [r0]
+ sub r1, r0, #1
+ add r0, r5, #0
+ add r0, #0x80
+ strh r1, [r0]
+_021D81BA:
+ ldr r0, [r5, #0x20]
+ mov r1, #0
+ strb r1, [r0, #2]
+_021D81C0:
+ add r1, r5, #0
+ add r0, r5, #0
+ add r1, #0xe8
+ add r0, #0x90
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0xa0
+ str r5, [r0]
+ add r0, r5, #0
+ add r2, r5, #0
+ ldrb r1, [r5, #0x1c]
+ add r0, #0x94
+ add r2, #0x82
+ strh r1, [r0]
+ mov r0, #0
+ strh r0, [r5, #0x16]
+ add r1, r5, #0
+ add r1, #0x80
+ ldr r3, [r5]
+ add r0, r5, #0
+ lsl r3, r3, #0x18
+ ldrh r1, [r1]
+ ldrh r2, [r2]
+ add r0, #0x84
+ lsr r3, r3, #0x18
+ bl FUN_020010A8
+ add r1, r5, #0
+ add r1, #0xc4
+ str r0, [r1]
+ mov r0, #1
+ strh r0, [r5, #0x16]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8210: .word 0x021DA2E0
+ thumb_func_end MOD65_021D80C8
+
+ thumb_func_start MOD65_021D8214
+MOD65_021D8214: ; 0x021D8214
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0xb0
+ str r0, [sp]
+ mov r0, #0x60
+ add r4, r1, #0
+ mov r1, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xe8
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ cmp r4, #0
+ beq _021D823E
+ add r0, r5, #0
+ add r0, #0xe8
+ bl FUN_02019570
+_021D823E:
+ add r0, r5, #0
+ add r0, #0xc4
+ add r1, r5, #0
+ add r2, r5, #0
+ ldr r0, [r0]
+ add r1, #0x80
+ add r2, #0x82
+ bl FUN_02001300
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r5, #0
+ add r0, #0x80
+ ldrh r1, [r0]
+ ldr r0, [r5, #0x20]
+ strh r1, [r0, #4]
+ add r0, r5, #0
+ add r0, #0x82
+ ldrh r1, [r0]
+ ldr r0, [r5, #0x20]
+ strh r1, [r0, #6]
+ add r0, r5, #0
+ mov r1, #0
+ add r0, #0xc4
+ str r1, [r0]
+ add r5, #0xcc
+ str r1, [r5]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8214
+
+ thumb_func_start MOD65_021D8280
+MOD65_021D8280: ; 0x021D8280
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ cmp r2, #4
+ bls _021D828C
+ b _021D8392
+_021D828C:
+ add r0, r2, r2
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8298: ; jump table
+ .short _021D82A2 - _021D8298 - 2 ; case 0
+ .short _021D82D2 - _021D8298 - 2 ; case 1
+ .short _021D8302 - _021D8298 - 2 ; case 2
+ .short _021D8330 - _021D8298 - 2 ; case 3
+ .short _021D835E - _021D8298 - 2 ; case 4
+_021D82A2:
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ add r6, r4, r0
+ lsl r7, r5, #2
+ lsl r1, r5, #1
+ ldr r0, [r6, r7]
+ add r1, r5, r1
+ bl FUN_02020130
+ ldr r0, [r6, r7]
+ mov r1, #0
+ bl FUN_020200BC
+ add r1, r4, #0
+ add r0, r5, #7
+ add r1, #0xe8
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #1
+ mov r2, #2
+ mov r3, #0
+ bl FUN_0201A8C8
+ b _021D8392
+_021D82D2:
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ add r6, r4, r0
+ lsl r7, r5, #2
+ ldr r0, [r6, r7]
+ bl FUN_02020198
+ ldr r0, [r6, r7]
+ mov r1, #1
+ bl FUN_020200BC
+ add r1, r4, #0
+ add r0, r5, #7
+ add r1, #0xe8
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ mov r2, #4
+ add r3, r1, #0
+ bl FUN_0201A8C8
+ mov r0, #1
+ strh r0, [r4, #0x14]
+ b _021D8392
+_021D8302:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ lsl r1, r5, #1
+ add r1, r5, r1
+ add r1, r1, #1
+ bl FUN_02020130
+ add r1, r4, #0
+ add r0, r5, #7
+ add r1, #0xe8
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #1
+ mov r2, #2
+ mov r3, #0
+ bl FUN_0201A8C8
+ mov r0, #0
+ strh r0, [r4, #0x14]
+ b _021D8392
+_021D8330:
+ lsl r0, r5, #2
+ add r1, r4, r0
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ lsl r1, r5, #1
+ add r1, r5, r1
+ add r1, r1, #2
+ bl FUN_02020130
+ add r1, r4, #0
+ add r0, r5, #7
+ add r1, #0xe8
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_0201A8C8
+ mov r0, #1
+ strh r0, [r4, #0x14]
+ b _021D8392
+_021D835E:
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ lsl r1, r5, #1
+ add r1, r5, r1
+ add r6, r4, r0
+ lsl r7, r5, #2
+ ldr r0, [r6, r7]
+ add r1, r1, #1
+ bl FUN_02020130
+ ldr r0, [r6, r7]
+ mov r1, #1
+ bl FUN_020200BC
+ add r1, r4, #0
+ add r0, r5, #7
+ add r1, #0xe8
+ lsl r0, r0, #4
+ add r0, r1, r0
+ mov r1, #0
+ mov r2, #2
+ add r3, r1, #0
+ bl FUN_0201A8C8
+ mov r0, #0
+ strh r0, [r4, #0x14]
+_021D8392:
+ add r0, r5, #7
+ add r4, #0xe8
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_020191D0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD65_021D8280
+
+ thumb_func_start MOD65_021D83A0
+MOD65_021D83A0: ; 0x021D83A0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _021D8470 ; =0x000005E4
+ add r5, r1, #0
+ bl FUN_020054C8
+ ldrh r1, [r4, #0x14]
+ ldr r0, _021D8474 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021D83D2
+ ldrb r1, [r4, #0x1b]
+ cmp r5, r1
+ bne _021D83CA
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #3
+ bl MOD65_021D8280
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021D83CA:
+ add r0, r4, #0
+ mov r2, #0
+ bl MOD65_021D8280
+_021D83D2:
+ add r0, r4, #0
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD65_021D8280
+ add r0, r4, #0
+ mov r1, #0
+ strb r5, [r4, #0x1b]
+ bl MOD65_021D8214
+ add r0, r4, #0
+ mov r2, #0
+ add r0, #0x82
+ strh r2, [r0]
+ add r0, r4, #0
+ add r0, #0x82
+ ldrh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x80
+ strh r1, [r0]
+ ldr r0, [r4, #0x20]
+ strh r2, [r0, #6]
+ ldr r1, [r4, #0x20]
+ ldrh r0, [r1, #6]
+ strh r0, [r1, #4]
+ add r0, r4, #0
+ bl MOD65_021D80C8
+ mov r1, #0xa0
+ str r1, [sp]
+ mov r0, #0x18
+ add r1, #0xa8
+ str r0, [sp, #4]
+ add r0, r4, r1
+ mov r1, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ ldrb r1, [r4, #0x1b]
+ cmp r1, #5
+ bne _021D8434
+ mov r0, #0x52
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_020191D0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021D8434:
+ lsl r1, r1, #2
+ add r1, r4, r1
+ mov r0, #0
+ ldr r1, [r1, #0x68]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r2, #0xa0
+ sub r3, r2, r0
+ mov r0, #3
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D8478 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r2, #0xa8
+ str r1, [sp, #0xc]
+ add r0, r4, r2
+ ldrb r2, [r4, #0x1b]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ lsr r4, r3, #0x1f
+ add r4, r3, r4
+ ldr r2, [r2, #0x68]
+ asr r3, r4, #1
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D8470: .word 0x000005E4
+_021D8474: .word 0x0000FFFF
+_021D8478: .word 0x00010200
+ thumb_func_end MOD65_021D83A0
+
+ thumb_func_start MOD65_021D847C
+MOD65_021D847C: ; 0x021D847C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ ldr r6, _021D84E0 ; =0x00000001
+ bne _021D84A6
+ mov r4, #0
+ mov r6, #0x73
+ add r7, r4, #0
+ lsl r6, r6, #2
+_021D848E:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #5
+ blo _021D848E
+ pop {r3, r4, r5, r6, r7, pc}
+_021D84A6:
+ mov r4, #0
+_021D84A8:
+ ldrb r0, [r7, #4]
+ tst r0, r6
+ beq _021D84C0
+ lsl r0, r4, #2
+ add r1, r5, r0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _021D84D0
+_021D84C0:
+ lsl r0, r4, #2
+ add r1, r5, r0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_021D84D0:
+ lsl r0, r6, #0x19
+ lsr r6, r0, #0x18
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #5
+ blo _021D84A8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D84E0: .word 0x00000001
+ thumb_func_end MOD65_021D847C
+
+ thumb_func_start MOD65_021D84E4
+MOD65_021D84E4: ; 0x021D84E4
+ ldr r3, _021D84EC ; =FUN_02001470
+ mov r1, #0x13
+ bx r3
+ nop
+_021D84EC: .word FUN_02001470
+ thumb_func_end MOD65_021D84E4
+
+ thumb_func_start MOD65_021D84F0
+MOD65_021D84F0: ; 0x021D84F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ mov r1, #0x13
+ add r7, r0, #0
+ add r6, r2, #0
+ bl FUN_02001470
+ add r4, r0, #0
+ cmp r6, #0
+ bne _021D850C
+ ldr r0, _021D862C ; =0x000005DC
+ bl FUN_020054C8
+_021D850C:
+ add r1, sp, #0x10
+ add r0, r7, #0
+ add r1, #2
+ add r2, sp, #0x10
+ bl FUN_02001448
+ add r2, sp, #0x10
+ ldrh r2, [r2]
+ mov r0, #7
+ lsl r0, r0, #6
+ lsl r2, r2, #4
+ add r2, #0x28
+ lsl r2, r2, #0x10
+ ldr r0, [r4, r0]
+ mov r1, #0x69
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ add r0, sp, #0x10
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ bne _021D8546
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021D8552
+_021D8546:
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D8552:
+ add r0, sp, #0x10
+ ldrh r1, [r0, #2]
+ ldrb r0, [r4, #0x1c]
+ sub r0, r0, #6
+ cmp r1, r0
+ bge _021D856C
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _021D8578
+_021D856C:
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_021D8578:
+ mov r0, #0x50
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #0x10
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r0, #0xf8
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_020196F4
+ cmp r5, #0xff
+ bne _021D85B4
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD65_021D847C
+ add r0, r4, #0
+ add r0, #0xf8
+ bl FUN_020191D0
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ ldr r0, [r0, #4]
+ bl FUN_0200C644
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+_021D85B4:
+ ldr r1, [r4, #0x20]
+ lsl r5, r5, #3
+ add r1, #0x1c
+ add r0, r4, #0
+ add r1, r1, r5
+ bl MOD65_021D847C
+ ldr r0, [r4, #0x34]
+ bl FUN_02021A4C
+ ldr r0, [r4, #0x20]
+ add r0, r0, r5
+ ldrb r2, [r0, #0x1f]
+ cmp r2, #0x63
+ bls _021D85D4
+ mov r2, #0x63
+_021D85D4:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x30]
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #0x34]
+ ldr r2, [r4, #0x40]
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021D8630 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x34]
+ add r0, #0xf8
+ mov r3, #8
+ bl FUN_0201BDE0
+ ldr r2, [r4, #0x20]
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ add r2, r2, r5
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldrb r2, [r2, #0x1e]
+ ldr r1, [r4, r1]
+ bl FUN_02088660
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ ldr r0, [r0, #4]
+ bl FUN_0200C644
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D862C: .word 0x000005DC
+_021D8630: .word 0x00010200
+ thumb_func_end MOD65_021D84F0
+
+ thumb_func_start MOD65_021D8634
+MOD65_021D8634: ; 0x021D8634
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r0, #3
+ bl FUN_02012838
+ add r1, r5, #0
+ add r1, #0xd0
+ str r0, [r1]
+ mov r4, #0
+_021D8648:
+ add r0, r5, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ ldr r1, [r5, #0x2c]
+ add r2, r4, #1
+ add r3, r4, #0
+ bl FUN_02012880
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #3
+ blo _021D8648
+ add r1, r5, #0
+ ldr r0, _021D86B8 ; =0x021DA2C0
+ add r1, #0xa4
+ mov r2, #0x20
+ bl MI_CpuCopy8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ add r1, r5, #0
+ add r0, r5, r0
+ add r1, #0xb0
+ str r0, [r1]
+ add r1, r5, #0
+ add r1, #0xd0
+ ldr r2, [r1]
+ add r1, r5, #0
+ add r1, #0xa4
+ str r2, [r1]
+ add r1, r5, #0
+ add r1, #0xc0
+ str r5, [r1]
+ add r1, r5, #0
+ mov r2, #3
+ add r1, #0xb4
+ strh r2, [r1]
+ mov r1, #1
+ mov r2, #0x1f
+ mov r3, #0xf
+ bl FUN_0200CCA4
+ ldr r3, [r5]
+ add r0, r5, #0
+ mov r1, #0
+ lsl r3, r3, #0x18
+ add r0, #0xa4
+ add r2, r1, #0
+ lsr r3, r3, #0x18
+ bl FUN_020010A8
+ add r5, #0xc8
+ str r0, [r5]
+ pop {r3, r4, r5, pc}
+ nop
+_021D86B8: .word 0x021DA2C0
+ thumb_func_end MOD65_021D8634
+
+ thumb_func_start MOD65_021D86BC
+MOD65_021D86BC: ; 0x021D86BC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ add r0, r4, r0
+ mov r1, #0
+ bl FUN_0200CCF8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0xc8
+ add r2, sp, #0
+ ldr r0, [r0]
+ add r1, sp, #0
+ add r2, #2
+ bl FUN_02001300
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_02012870
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xc8
+ str r1, [r0]
+ add r4, #0xd0
+ str r1, [r4]
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D86BC
+
+ thumb_func_start MOD65_021D8704
+MOD65_021D8704: ; 0x021D8704
+ push {r3, lr}
+ cmp r2, #0
+ bne _021D8710
+ ldr r0, _021D8714 ; =0x000005DC
+ bl FUN_020054C8
+_021D8710:
+ pop {r3, pc}
+ nop
+_021D8714: .word 0x000005DC
+ thumb_func_end MOD65_021D8704
+
+ thumb_func_start MOD65_021D8718
+MOD65_021D8718: ; 0x021D8718
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ bl FUN_02021A4C
+ ldrb r1, [r4, #0x1a]
+ ldr r2, [r4, #0x20]
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #3
+ add r1, r2, r1
+ ldrb r1, [r1, #0x1e]
+ bl FUN_02014588
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #2
+ str r3, [sp, #4]
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200ABB4
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #0x34]
+ ldr r2, [r4, #0x44]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ ldr r1, [r4, #0x34]
+ add r4, #0x7c
+ ldrb r2, [r4]
+ mov r3, #1
+ bl MOD65_021D7FAC
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8718
+
+ thumb_func_start MOD65_021D8764
+MOD65_021D8764: ; 0x021D8764
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ bl FUN_02021A4C
+ ldrb r1, [r4, #0x1a]
+ ldr r2, [r4, #0x20]
+ ldr r0, [r4, #0x28]
+ lsl r1, r1, #3
+ add r1, r2, r1
+ ldrb r1, [r1, #0x1e]
+ bl FUN_02014588
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #2
+ str r3, [sp, #4]
+ ldr r0, [r4, #0x30]
+ mov r1, #0
+ bl FUN_0200ABB4
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #0x34]
+ ldr r2, [r4, #0x48]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ ldr r1, [r4, #0x34]
+ add r4, #0x7c
+ ldrb r2, [r4]
+ mov r3, #0
+ bl MOD65_021D7FAC
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8764
+
+ thumb_func_start MOD65_021D87B0
+MOD65_021D87B0: ; 0x021D87B0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r1, _021D87D0 ; =0x021DA2B8
+ str r0, [sp]
+ ldr r0, [r4, #0x24]
+ mov r2, #0x1f
+ mov r3, #0xf
+ bl FUN_02002198
+ add r4, #0xd4
+ str r0, [r4]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D87D0: .word 0x021DA2B8
+ thumb_func_end MOD65_021D87B0
+
+ thumb_func_start MOD65_021D87D4
+MOD65_021D87D4: ; 0x021D87D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ ldr r0, _021D8844 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ mov r0, #0x4e
+ lsl r0, r0, #2
+ ldr r2, [r5, #0x4c]
+ add r0, r5, r0
+ mov r3, #4
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0xe8
+ ldr r4, _021D8848 ; =0x021DA2B0
+ mov r6, #0
+ str r0, [sp, #0x10]
+_021D8800:
+ ldr r1, [r5, #0x50]
+ mov r0, #2
+ mov r2, #0
+ bl FUN_02002E14
+ mov r1, #0x40
+ sub r3, r1, r0
+ ldrb r0, [r4]
+ lsr r7, r3, #0x1f
+ add r7, r3, r7
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _021D884C ; =0x00020301
+ asr r3, r7, #1
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r6, #7
+ lsl r1, r0, #4
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x50]
+ add r0, r0, r1
+ mov r1, #2
+ bl FUN_0201BDE0
+ add r6, r6, #1
+ add r5, r5, #4
+ add r4, r4, #1
+ cmp r6, #6
+ blt _021D8800
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8844: .word 0x00010200
+_021D8848: .word 0x021DA2B0
+_021D884C: .word 0x00020301
+ thumb_func_end MOD65_021D87D4
+
+ thumb_func_start MOD65_021D8850
+MOD65_021D8850: ; 0x021D8850
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x54
+ add r4, r0, #0
+ ldr r1, [r4]
+ mov r0, #0x20
+ bl FUN_0201C24C
+ ldr r0, [r4]
+ bl FUN_0200BB14
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_0200BB34
+ mov r7, #0x6f
+ lsl r7, r7, #2
+ add r2, sp, #0x34
+ ldr r3, _021D891C ; =0x021DA330
+ 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, _021D8920 ; =0x021DA300
+ stmia r2!, {r0, r1}
+ add r3, sp, #0x20
+ 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, #0xe
+ bl FUN_0200BBF0
+ ldr r0, [r4]
+ bl FUN_0200A064
+ ldr r0, [r4]
+ bl FUN_0200A06C
+ ldr r5, _021D8924 ; =0x021DA314
+ add r3, sp, #4
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ sub r1, r7, #4
+ str r0, [r3]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_0200BD20
+ mov r1, #1
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [r4]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02088320
+ add r1, r7, #0
+ add r1, #0x3c
+ str r0, [r4, r1]
+ bl FUN_02030F40
+ cmp r0, #0
+ beq _021D8908
+ bl FUN_02033E74
+_021D8908:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ add sp, #0x54
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D891C: .word 0x021DA330
+_021D8920: .word 0x021DA300
+_021D8924: .word 0x021DA314
+ thumb_func_end MOD65_021D8850
+
+ thumb_func_start MOD65_021D8928
+MOD65_021D8928: ; 0x021D8928
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02088360
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_0200BCE0
+ mov r0, #0x6e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ pop {r4, pc}
+ thumb_func_end MOD65_021D8928
+
+ thumb_func_start MOD65_021D8954
+MOD65_021D8954: ; 0x021D8954
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200BC1C
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02088484
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8954
+
+ thumb_func_start MOD65_021D8970
+MOD65_021D8970: ; 0x021D8970
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ bne _021D899E
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02020248
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ pop {r4, pc}
+_021D899E:
+ mov r0, #7
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #9
+ bl FUN_02020248
+ mov r0, #0x71
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #0x72
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ pop {r4, pc}
+ thumb_func_end MOD65_021D8970
+
+ thumb_func_start MOD65_021D89C4
+MOD65_021D89C4: ; 0x021D89C4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r5, r1, #0
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ str r0, [r1, #4]
+ add r4, r2, #0
+ str r0, [r1, #8]
+ add r7, r3, #0
+ ldr r0, [r4]
+ add r1, r7, #0
+ bl FX_Div
+ str r0, [r5]
+ ldr r0, [r4, #4]
+ add r1, r7, #0
+ bl FX_Div
+ str r0, [r5, #4]
+ ldr r0, [r4, #8]
+ add r1, r7, #0
+ bl FX_Div
+ add r2, sp, #0
+ str r0, [r5, #8]
+ ldmia r2!, {r0, r1}
+ stmia r6!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r6]
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D89C4
+
+ thumb_func_start MOD65_021D8A08
+MOD65_021D8A08: ; 0x021D8A08
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_0200628C
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x2e
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ mov r1, #0x6f
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x2e
+ bl FUN_02006268
+ mov r2, #0x6f
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl MI_CpuFill8
+ mov r0, #0x2e
+ str r0, [r4]
+ str r5, [r4, #0x10]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD65_021D8A08
+
+ thumb_func_start MOD65_021D8A40
+MOD65_021D8A40: ; 0x021D8A40
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r5]
+ cmp r0, #2
+ blt _021D8A64
+ cmp r0, #5
+ bgt _021D8A64
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD65_021D9F50
+ ldr r0, [r4, #0x5c]
+ bl FUN_02088484
+_021D8A64:
+ ldr r0, [r5]
+ cmp r0, #7
+ bls _021D8A6C
+ b _021D8B9E
+_021D8A6C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8A78: ; jump table
+ .short _021D8A88 - _021D8A78 - 2 ; case 0
+ .short _021D8ACE - _021D8A78 - 2 ; case 1
+ .short _021D8AE8 - _021D8A78 - 2 ; case 2
+ .short _021D8B12 - _021D8A78 - 2 ; case 3
+ .short _021D8B20 - _021D8A78 - 2 ; case 4
+ .short _021D8B4A - _021D8A78 - 2 ; case 5
+ .short _021D8B58 - _021D8A78 - 2 ; case 6
+ .short _021D8B68 - _021D8A78 - 2 ; case 7
+_021D8A88:
+ 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, _021D8BB0 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D8BB4 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ b _021D8BA4
+_021D8ACE:
+ add r0, r4, #0
+ bl MOD65_021D8BD8
+ cmp r0, #0
+ bne _021D8ADE
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, pc}
+_021D8ADE:
+ ldr r0, _021D8BB8 ; =MOD65_021D8C88
+ add r1, r4, #0
+ bl FUN_02015F10
+ b _021D8BA4
+_021D8AE8:
+ ldr r1, [r4, #4]
+ add r0, r1, #1
+ str r0, [r4, #4]
+ cmp r1, #4
+ bge _021D8AF8
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, pc}
+_021D8AF8:
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [r4]
+ add r3, r0, #0
+ str r2, [sp, #8]
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ b _021D8BA4
+_021D8B12:
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D8BA4
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, pc}
+_021D8B20:
+ add r0, r4, #0
+ bl MOD65_021D9074
+ cmp r0, #0
+ bne _021D8B30
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, pc}
+_021D8B30:
+ 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
+ b _021D8BA4
+_021D8B4A:
+ bl FUN_0200E308
+ cmp r0, #0
+ bne _021D8BA4
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, pc}
+_021D8B58:
+ add r0, r4, #0
+ bl MOD65_021D8C30
+ cmp r0, #0
+ bne _021D8BA4
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, pc}
+_021D8B68:
+ 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
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D8BB0 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D8BB4 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ b _021D8BA4
+_021D8B9E:
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D8BA4:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D8BB0: .word 0xFFFFE0FF
+_021D8BB4: .word 0x04001000
+_021D8BB8: .word MOD65_021D8C88
+ thumb_func_end MOD65_021D8A40
+
+ thumb_func_start MOD65_021D8BBC
+MOD65_021D8BBC: ; 0x021D8BBC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200627C
+ ldr r0, [r4]
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8BBC
+
+ thumb_func_start MOD65_021D8BD8
+MOD65_021D8BD8: ; 0x021D8BD8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _021D8BEC
+ cmp r1, #1
+ beq _021D8BF8
+ cmp r1, #2
+ beq _021D8C04
+ b _021D8C24
+_021D8BEC:
+ bl MOD65_021D8CD8
+ add r0, r4, #0
+ bl MOD65_021D8D90
+ b _021D8C24
+_021D8BF8:
+ bl MOD65_021D8EC4
+ add r0, r4, #0
+ bl MOD65_021D8E68
+ b _021D8C24
+_021D8C04:
+ bl MOD65_021D8F34
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4]
+ add r0, #0x40
+ add r1, #0x30
+ bl MOD65_021D9E98
+ add r0, r4, #0
+ bl MOD65_021D8FB0
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8C24:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8BD8
+
+ thumb_func_start MOD65_021D8C30
+MOD65_021D8C30: ; 0x021D8C30
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #3
+ bhi _021D8C7C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D8C46: ; jump table
+ .short _021D8C4E - _021D8C46 - 2 ; case 0
+ .short _021D8C62 - _021D8C46 - 2 ; case 1
+ .short _021D8C6E - _021D8C46 - 2 ; case 2
+ .short _021D8C74 - _021D8C46 - 2 ; case 3
+_021D8C4E:
+ bl MOD65_021D9054
+ add r0, r4, #0
+ add r0, #0x40
+ bl MOD65_021D9F8C
+ add r0, r4, #0
+ bl MOD65_021D8FA4
+ b _021D8C7C
+_021D8C62:
+ bl MOD65_021D8EB0
+ add r0, r4, #0
+ bl MOD65_021D8F08
+ b _021D8C7C
+_021D8C6E:
+ bl MOD65_021D8D68
+ b _021D8C7C
+_021D8C74:
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021D8C7C:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8C30
+
+ thumb_func_start MOD65_021D8C88
+MOD65_021D8C88: ; 0x021D8C88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x68]
+ bl FUN_0201AB60
+ ldr r0, [r4, #0x44]
+ bl FUN_020081C4
+ bl FUN_0200BC30
+ bl FUN_0201C30C
+ ldr r3, _021D8CB0 ; =0x027E0000
+ ldr r1, _021D8CB4 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ nop
+_021D8CB0: .word 0x027E0000
+_021D8CB4: .word 0x00003FF8
+ thumb_func_end MOD65_021D8C88
+
+ thumb_func_start MOD65_021D8CB8
+MOD65_021D8CB8: ; 0x021D8CB8
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D8CD4 ; =0x021DA3A0
+ add r3, sp, #0
+ mov r2, #5
+_021D8CC2:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D8CC2
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D8CD4: .word 0x021DA3A0
+ thumb_func_end MOD65_021D8CB8
+
+ thumb_func_start MOD65_021D8CD8
+MOD65_021D8CD8: ; 0x021D8CD8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x6c
+ add r5, r0, #0
+ bl MOD65_021D8CB8
+ ldr r0, [r5]
+ bl FUN_02016B94
+ add r3, sp, #8
+ ldr r4, _021D8D5C ; =0x021DA35C
+ str r0, [r5, #0x68]
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r4, _021D8D60 ; =0x021DA3C8
+ add r3, sp, #0x18
+ mov r2, #0xa
+_021D8D04:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D8D04
+ ldr r1, _021D8D64 ; =0x021DA350
+ ldr r0, [r4]
+ ldrb r2, [r1]
+ str r0, [r3]
+ add r0, sp, #4
+ strb r2, [r0]
+ ldrb r2, [r1, #1]
+ ldrb r1, [r1, #2]
+ add r4, sp, #4
+ strb r2, [r0, #1]
+ strb r1, [r0, #2]
+ mov r0, #0
+ str r0, [sp]
+ add r6, sp, #0x18
+_021D8D28:
+ ldrb r7, [r4]
+ ldr r0, [r5, #0x68]
+ add r2, r6, #0
+ add r1, r7, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #0x68]
+ add r1, r7, #0
+ bl FUN_02018744
+ ldr r3, [r5]
+ add r0, r7, #0
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r0, [sp]
+ add r4, r4, #1
+ add r0, r0, #1
+ add r6, #0x1c
+ str r0, [sp]
+ cmp r0, #3
+ blt _021D8D28
+ add sp, #0x6c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8D5C: .word 0x021DA35C
+_021D8D60: .word 0x021DA3C8
+_021D8D64: .word 0x021DA350
+ thumb_func_end MOD65_021D8CD8
+
+ thumb_func_start MOD65_021D8D68
+MOD65_021D8D68: ; 0x021D8D68
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #1
+_021D8D6E:
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x68]
+ lsr r1, r1, #0x18
+ bl FUN_020178A0
+ add r4, r4, #1
+ cmp r4, #3
+ blt _021D8D6E
+ ldr r0, [r5, #0x68]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r5, #0x68]
+ bl FUN_02016A18
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8D68
+
+ thumb_func_start MOD65_021D8D90
+MOD65_021D8D90: ; 0x021D8D90
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r0, #0x57
+ bl FUN_02006670
+ add r4, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x68]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x57
+ bl FUN_02079B60
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x68]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x57
+ bl FUN_02079B60
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x20
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r0, [r5, #0x68]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x57
+ bl FUN_02079B60
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xa0
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x68]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x57
+ bl FUN_02079B60
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x68]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x57
+ bl FUN_02079B60
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x68]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x57
+ bl FUN_02079B60
+ add r0, r4, #0
+ bl FUN_020066F4
+ ldr r0, [r5, #0x68]
+ mov r1, #2
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x68]
+ mov r1, #4
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4, r5, pc}
+ thumb_func_end MOD65_021D8D90
+
+ thumb_func_start MOD65_021D8E68
+MOD65_021D8E68: ; 0x021D8E68
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #0x68]
+ ldr r2, _021D8EAC ; =0x021DA354
+ add r1, #0x6c
+ bl FUN_02019150
+ add r0, r4, #0
+ add r0, #0x6c
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ ldrb r0, [r0, #0xb]
+ add r2, r1, #0
+ mov r3, #0xe
+ str r0, [sp]
+ ldr r0, [r4]
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x68]
+ bl FUN_0200CD68
+ mov r1, #0x1e
+ ldr r2, [r4]
+ mov r0, #0
+ lsl r1, r1, #4
+ bl FUN_02002EEC
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021D8EAC: .word 0x021DA354
+ thumb_func_end MOD65_021D8E68
+
+ thumb_func_start MOD65_021D8EB0
+MOD65_021D8EB0: ; 0x021D8EB0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x6c
+ bl FUN_02019570
+ add r4, #0x6c
+ add r0, r4, #0
+ bl FUN_02019178
+ pop {r4, pc}
+ thumb_func_end MOD65_021D8EB0
+
+ thumb_func_start MOD65_021D8EC4
+MOD65_021D8EC4: ; 0x021D8EC4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r2, _021D8F04 ; =0x0000019B
+ ldr r3, [r6]
+ mov r0, #0
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ str r0, [r6, #0x18]
+ ldr r2, [r6]
+ mov r0, #1
+ mov r1, #0x40
+ bl FUN_0200AA90
+ str r0, [r6, #0x1c]
+ ldr r1, [r6]
+ mov r0, #0x40
+ bl FUN_020219F4
+ str r0, [r6, #0x20]
+ mov r4, #0
+ add r5, r6, #0
+_021D8EF0:
+ ldr r0, [r6, #0x18]
+ add r1, r4, #0
+ bl FUN_0200A914
+ str r0, [r5, #0x24]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021D8EF0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8F04: .word 0x0000019B
+ thumb_func_end MOD65_021D8EC4
+
+ thumb_func_start MOD65_021D8F08
+MOD65_021D8F08: ; 0x021D8F08
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_021D8F10:
+ ldr r0, [r5, #0x24]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #3
+ blt _021D8F10
+ ldr r0, [r6, #0x20]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x1c]
+ bl FUN_0200AB18
+ ldr r0, [r6, #0x18]
+ bl FUN_0200A8B8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D8F08
+
+ thumb_func_start MOD65_021D8F34
+MOD65_021D8F34: ; 0x021D8F34
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #5
+ ldr r0, [r0]
+ mov r2, #0
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0]
+ bl FUN_020671BC
+ strh r0, [r4, #0x34]
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0]
+ bl FUN_020689E0
+ add r1, r4, #0
+ add r1, #0x37
+ strb r0, [r1]
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0]
+ bl FUN_02068854
+ add r1, r4, #0
+ add r1, #0x36
+ strb r0, [r1]
+ ldrh r0, [r4, #0x34]
+ mov r1, #0x1c
+ bl FUN_02068678
+ mov r1, #1
+ eor r1, r0
+ add r0, r4, #0
+ add r0, #0x38
+ strb r1, [r0]
+ ldr r1, [r4]
+ mov r0, #0xc
+ bl FUN_020219F4
+ str r0, [r4, #0x3c]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r4, #0x3c]
+ ldr r0, [r0]
+ mov r1, #0x76
+ bl FUN_020671BC
+ add r1, r4, #0
+ ldr r0, [r4, #0x10]
+ add r1, #0x36
+ ldrb r1, [r1]
+ ldr r0, [r0, #4]
+ bl FUN_020881D0
+ add r4, #0x39
+ strb r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD65_021D8F34
+
+ thumb_func_start MOD65_021D8FA4
+MOD65_021D8FA4: ; 0x021D8FA4
+ ldr r3, _021D8FAC ; =FUN_02021A20
+ ldr r0, [r0, #0x3c]
+ bx r3
+ nop
+_021D8FAC: .word FUN_02021A20
+ thumb_func_end MOD65_021D8FA4
+
+ thumb_func_start MOD65_021D8FB0
+MOD65_021D8FB0: ; 0x021D8FB0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x44
+ add r4, r0, #0
+ ldr r1, [r4]
+ mov r0, #0x20
+ bl FUN_0201C24C
+ ldr r0, [r4]
+ bl FUN_0200BB14
+ add r2, sp, #0x24
+ ldr r5, _021D904C ; =0x021DA380
+ str r0, [r4, #0x7c]
+ ldmia r5!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ ldr r6, _021D9050 ; =0x021DA36C
+ stmia r2!, {r0, r1}
+ add r5, sp, #0x10
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r3, #0
+ str r0, [r5]
+ ldr r0, [r4, #0x7c]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ ldr r0, [r4]
+ bl FUN_0200A064
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #2
+ ldr r0, [r4]
+ add r2, r1, #0
+ mov r3, #1
+ bl FUN_02088320
+ str r0, [r4, #0x5c]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r1, [r4, #0x10]
+ ldr r0, [r4, #0x5c]
+ ldrh r1, [r1, #8]
+ mov r2, #0x64
+ mov r3, #0x5a
+ bl FUN_02088490
+ str r0, [r4, #0x60]
+ ldr r0, [r0, #4]
+ mov r1, #0
+ bl FUN_0200C644
+ bl FUN_02030F40
+ cmp r0, #0
+ beq _021D9040
+ bl FUN_02033E74
+_021D9040:
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x44
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D904C: .word 0x021DA380
+_021D9050: .word 0x021DA36C
+ thumb_func_end MOD65_021D8FB0
+
+ thumb_func_start MOD65_021D9054
+MOD65_021D9054: ; 0x021D9054
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x5c]
+ ldr r1, [r4, #0x60]
+ bl FUN_02088694
+ ldr r0, [r4, #0x5c]
+ bl FUN_02088360
+ ldr r0, [r4, #0x7c]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D9054
+
+ thumb_func_start MOD65_021D9074
+MOD65_021D9074: ; 0x021D9074
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #8
+ bhi _021D90F4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D908A: ; jump table
+ .short _021D909C - _021D908A - 2 ; case 0
+ .short _021D90A8 - _021D908A - 2 ; case 1
+ .short _021D90B4 - _021D908A - 2 ; case 2
+ .short _021D90C0 - _021D908A - 2 ; case 3
+ .short _021D90CC - _021D908A - 2 ; case 4
+ .short _021D90D8 - _021D908A - 2 ; case 5
+ .short _021D90E4 - _021D908A - 2 ; case 6
+ .short _021D90EC - _021D908A - 2 ; case 7
+ .short _021D90F4 - _021D908A - 2 ; case 8
+_021D909C:
+ add r1, r4, #0
+ add r1, #0x80
+ bl MOD65_021D9150
+ str r0, [r4, #4]
+ b _021D90FC
+_021D90A8:
+ add r1, r4, #0
+ add r1, #0x80
+ bl MOD65_021D922C
+ str r0, [r4, #4]
+ b _021D90FC
+_021D90B4:
+ add r1, r4, #0
+ add r1, #0x80
+ bl MOD65_021D923C
+ str r0, [r4, #4]
+ b _021D90FC
+_021D90C0:
+ add r1, r4, #0
+ add r1, #0x80
+ bl MOD65_021D926C
+ str r0, [r4, #4]
+ b _021D90FC
+_021D90CC:
+ add r1, r4, #0
+ add r1, #0x80
+ bl MOD65_021D9284
+ str r0, [r4, #4]
+ b _021D90FC
+_021D90D8:
+ add r1, r4, #0
+ add r1, #0x80
+ bl MOD65_021D92B4
+ str r0, [r4, #4]
+ b _021D90FC
+_021D90E4:
+ bl MOD65_021D92C4
+ str r0, [r4, #4]
+ b _021D90FC
+_021D90EC:
+ bl MOD65_021D9338
+ str r0, [r4, #4]
+ b _021D90FC
+_021D90F4:
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021D90FC:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD65_021D9074
+
+ thumb_func_start MOD65_021D9100
+MOD65_021D9100: ; 0x021D9100
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r2, #0
+ add r3, r5, #0
+ add r0, r1, #0
+ mov r2, #0x1c
+ add r3, #0xcc
+ mul r0, r2
+ add r4, r3, r0
+ add r0, r4, #0
+ mov r1, #0
+ bl MI_CpuFill8
+ str r5, [r4, #0x14]
+ add r0, r6, #0
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x18]
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD65_021D9100
+
+ thumb_func_start MOD65_021D9130
+MOD65_021D9130: ; 0x021D9130
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ bl FUN_0200CAB4
+ ldr r1, [r4, #0x14]
+ mov r2, #0x1c
+ ldr r0, [r1, #4]
+ sub r0, r0, #1
+ str r0, [r1, #4]
+ add r0, r4, #0
+ mov r1, #0
+ bl MI_CpuFill8
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD65_021D9130
+
+ thumb_func_start MOD65_021D9150
+MOD65_021D9150: ; 0x021D9150
+ push {r3, r4, r5, lr}
+ sub sp, #0x18
+ add r4, r1, #0
+ mov r2, #0x4f
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #2
+ bl MI_CpuFill8
+ ldr r0, [r5, #0x60]
+ mov r2, #0x18
+ ldr r0, [r0, #4]
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ str r1, [r0]
+ ldr r1, [r5, #0x58]
+ add r0, r4, #0
+ add r0, #0xc8
+ str r1, [r0]
+ add r5, #0x39
+ ldrb r0, [r5]
+ mov r1, #2
+ lsl r1, r1, #0x12
+ str r0, [r4, #8]
+ str r2, [r4]
+ mov r0, #0xe
+ str r1, [r4, #0xc]
+ lsl r0, r0, #0x10
+ str r0, [r4, #0x10]
+ str r1, [r4, #0x18]
+ lsl r0, r2, #0xe
+ str r0, [r4, #0x1c]
+ lsr r0, r1, #7
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ lsr r0, r1, #8
+ str r0, [r4, #0x3c]
+ str r0, [r4, #0x40]
+ add r1, r4, #0
+ str r2, [r4, #0x64]
+ mov r0, #0
+ str r0, [r4, #0x60]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, #0xc
+ bl FUN_02020044
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0xc
+ add r1, #0x18
+ add r2, sp, #0xc
+ bl VEC_Subtract
+ add r1, r4, #0
+ mov r3, #6
+ add r0, sp, #0
+ add r1, #0x48
+ add r2, sp, #0xc
+ lsl r3, r3, #0xe
+ bl MOD65_021D89C4
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020200EC
+ add r0, r4, #0
+ add r0, #0xc4
+ add r1, r4, #0
+ ldr r0, [r0]
+ add r1, #0x30
+ bl FUN_02020064
+ ldr r2, _021D921C ; =MOD65_021D9380
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD65_021D9100
+ ldr r2, _021D9220 ; =MOD65_021D94AC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD65_021D9100
+ ldr r2, _021D9224 ; =MOD65_021D967C
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD65_021D9100
+ ldr r2, _021D9228 ; =MOD65_021D97C4
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD65_021D9100
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, pc}
+ nop
+_021D921C: .word MOD65_021D9380
+_021D9220: .word MOD65_021D94AC
+_021D9224: .word MOD65_021D967C
+_021D9228: .word MOD65_021D97C4
+ thumb_func_end MOD65_021D9150
+
+ thumb_func_start MOD65_021D922C
+MOD65_021D922C: ; 0x021D922C
+ ldr r0, [r1, #4]
+ cmp r0, #0
+ beq _021D9236
+ mov r0, #1
+ bx lr
+_021D9236:
+ mov r0, #2
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD65_021D922C
+
+ thumb_func_start MOD65_021D923C
+MOD65_021D923C: ; 0x021D923C
+ push {r3, lr}
+ add r1, r0, #0
+ add r0, #0x39
+ ldrb r0, [r0]
+ cmp r0, #1
+ ldr r0, [r1]
+ bne _021D925A
+ str r0, [sp]
+ ldrh r1, [r1, #0x34]
+ mov r0, #0xb
+ mov r2, #0
+ mov r3, #0x7f
+ bl FUN_020056AC
+ b _021D9268
+_021D925A:
+ str r0, [sp]
+ ldrh r1, [r1, #0x34]
+ mov r0, #0
+ add r2, r0, #0
+ mov r3, #0x7f
+ bl FUN_020056AC
+_021D9268:
+ mov r0, #3
+ pop {r3, pc}
+ thumb_func_end MOD65_021D923C
+
+ thumb_func_start MOD65_021D926C
+MOD65_021D926C: ; 0x021D926C
+ push {r3, lr}
+ bl FUN_02005670
+ cmp r0, #0
+ beq _021D927A
+ mov r0, #3
+ pop {r3, pc}
+_021D927A:
+ mov r0, #0
+ bl FUN_02005614
+ mov r0, #4
+ pop {r3, pc}
+ thumb_func_end MOD65_021D926C
+
+ thumb_func_start MOD65_021D9284
+MOD65_021D9284: ; 0x021D9284
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ add r0, #0x68
+ mov r1, #0
+ mov r2, #0x5c
+ bl MI_CpuFill8
+ ldr r2, _021D92AC ; =MOD65_021D99C0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD65_021D9100
+ ldr r2, _021D92B0 ; =MOD65_021D9B0C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD65_021D9100
+ mov r0, #5
+ pop {r4, pc}
+ .align 2, 0
+_021D92AC: .word MOD65_021D99C0
+_021D92B0: .word MOD65_021D9B0C
+ thumb_func_end MOD65_021D9284
+
+ thumb_func_start MOD65_021D92B4
+MOD65_021D92B4: ; 0x021D92B4
+ ldr r0, [r1, #4]
+ cmp r0, #0
+ beq _021D92BE
+ mov r0, #5
+ bx lr
+_021D92BE:
+ mov r0, #6
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD65_021D92B4
+
+ thumb_func_start MOD65_021D92C4
+MOD65_021D92C4: ; 0x021D92C4
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #1
+ add r4, r0, #0
+ add r0, #0x6c
+ add r2, r1, #0
+ mov r3, #0xe
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ add r0, #0x6c
+ mov r1, #0xff
+ bl FUN_02019620
+ ldr r0, [r4, #0x20]
+ bl FUN_02021A4C
+ mov r0, #1
+ str r0, [sp]
+ mov r3, #2
+ str r3, [sp, #4]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x3c]
+ mov r1, #0
+ bl FUN_0200ABB4
+ add r2, r4, #0
+ add r2, #0x39
+ ldrb r2, [r2]
+ ldr r0, [r4, #0x1c]
+ ldr r1, [r4, #0x20]
+ lsl r2, r2, #2
+ add r2, r4, r2
+ ldr r2, [r2, #0x24]
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ ldrb r0, [r0, #0xa]
+ str r0, [sp, #4]
+ ldr r0, _021D9334 ; =0x0001020F
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x20]
+ add r0, #0x6c
+ bl FUN_0201BDE0
+ strh r0, [r4, #0xc]
+ mov r0, #0
+ strh r0, [r4, #0xe]
+ mov r0, #7
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021D9334: .word 0x0001020F
+ thumb_func_end MOD65_021D92C4
+
+ thumb_func_start MOD65_021D9338
+MOD65_021D9338: ; 0x021D9338
+ push {r4, lr}
+ add r4, r0, #0
+ ldrh r0, [r4, #0xc]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021D934E
+ mov r0, #7
+ pop {r4, pc}
+_021D934E:
+ ldr r0, _021D937C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021D9366
+ ldrh r1, [r4, #0xe]
+ add r0, r1, #1
+ strh r0, [r4, #0xe]
+ cmp r1, #0x5a
+ bhs _021D9366
+ mov r0, #7
+ pop {r4, pc}
+_021D9366:
+ add r0, r4, #0
+ add r0, #0x6c
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r4, #0x6c
+ add r0, r4, #0
+ bl FUN_02019570
+ mov r0, #8
+ pop {r4, pc}
+ .align 2, 0
+_021D937C: .word 0x021C48B8
+ thumb_func_end MOD65_021D9338
+
+ thumb_func_start MOD65_021D9380
+MOD65_021D9380: ; 0x021D9380
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r1, #0
+ ldr r4, [r6, #0x14]
+ add r7, r0, #0
+ mov r0, #0x18
+ add r5, r4, #0
+ str r0, [r6, #4]
+ mov r0, #1
+ add r5, #0xc
+ lsl r0, r0, #0xc
+ str r0, [r5, #0x24]
+ str r0, [r5, #0x28]
+ lsr r0, r0, #1
+ str r0, [r5, #0x30]
+ str r0, [r5, #0x34]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x24
+ add r1, #0x30
+ add r2, sp, #0xc
+ bl VEC_Subtract
+ ldr r0, [r6, #4]
+ cmp r0, #0
+ ble _021D93C6
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D93D4
+_021D93C6:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D93D4:
+ bl _ffix
+ add r1, r5, #0
+ add r3, r0, #0
+ add r0, sp, #0
+ add r1, #0x3c
+ add r2, sp, #0xc
+ bl MOD65_021D89C4
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020200A0
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_020200EC
+ add r4, #0xc4
+ add r5, #0x24
+ ldr r0, [r4]
+ add r1, r5, #0
+ bl FUN_02020064
+ ldr r1, _021D9418 ; =MOD65_021D941C
+ add r0, r7, #0
+ bl FUN_0201B6C4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9418: .word MOD65_021D941C
+ thumb_func_end MOD65_021D9380
+
+ thumb_func_start MOD65_021D941C
+MOD65_021D941C: ; 0x021D941C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ add r1, sp, #0
+ mov r0, #0
+ str r0, [r1]
+ add r4, r6, #0
+ str r0, [r1, #4]
+ str r0, [r1, #8]
+ add r4, #0xc
+ ldr r0, [r4, #0x3c]
+ ldr r2, [r5, #0xc]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r2, r0, #0
+ mov r0, #2
+ add r3, r1, #0
+ mov r7, #0
+ lsl r0, r0, #0xa
+ add r0, r2, r0
+ adc r3, r7
+ ldr r1, [r4, #0x24]
+ lsl r2, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r2
+ sub r0, r1, r0
+ str r0, [sp]
+ ldr r0, [r4, #0x40]
+ ldr r2, [r5, #0xc]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r3, #2
+ ldr r2, [r4, #0x28]
+ add r4, r7, #0
+ lsl r3, r3, #0xa
+ add r3, r0, r3
+ adc r1, r4
+ lsl r0, r1, #0x14
+ lsr r1, r3, #0xc
+ orr r1, r0
+ sub r0, r2, r1
+ str r0, [sp, #4]
+ add r0, r6, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, sp, #0
+ bl FUN_02020064
+ mov r0, #1
+ ldr r1, [r5, #0xc]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+ bne _021D94A8
+ add r6, #0xc4
+ ldr r0, [r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r0, r5, #0
+ bl MOD65_021D9130
+_021D94A8:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD65_021D941C
+
+ thumb_func_start MOD65_021D94AC
+MOD65_021D94AC: ; 0x021D94AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ add r7, r0, #0
+ add r3, sp, #0xc
+ mov r0, #0
+ str r0, [r3]
+ str r0, [r3, #4]
+ str r0, [r3, #8]
+ mov r2, #0x18
+ mov r1, #2
+ add r4, r6, #0
+ mov r0, #0xe
+ str r2, [r5, #4]
+ lsl r1, r1, #0x12
+ add r4, #0xc
+ str r1, [r6, #0xc]
+ lsl r0, r0, #0x10
+ str r0, [r4, #4]
+ str r1, [r4, #0xc]
+ lsl r0, r2, #0xe
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0xc
+ add r1, r4, #0
+ add r2, r3, #0
+ bl VEC_Subtract
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ ble _021D94FE
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D950C
+_021D94FE:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D950C:
+ bl _ffix
+ add r1, r4, #0
+ add r3, r0, #0
+ add r0, sp, #0
+ add r1, #0x18
+ add r2, sp, #0xc
+ bl MOD65_021D89C4
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ ble _021D9536
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9544
+_021D9536:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9544:
+ bl _ffix
+ add r1, r0, #0
+ mov r0, #0x2d
+ lsl r0, r0, #0xe
+ bl FX_Div
+ str r0, [r4, #0x48]
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ ble _021D956C
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D957A
+_021D956C:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D957A:
+ bl _ffix
+ add r1, r0, #0
+ mov r0, #1
+ lsl r0, r0, #0xc
+ bl FX_Div
+ add r6, #0xc4
+ str r0, [r4, #0x4c]
+ ldr r0, [r6]
+ add r1, r4, #0
+ bl FUN_02020044
+ ldr r1, _021D95A0 ; =MOD65_021D95A4
+ add r0, r7, #0
+ bl FUN_0201B6C4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D95A0: .word MOD65_021D95A4
+ thumb_func_end MOD65_021D94AC
+
+ thumb_func_start MOD65_021D95A4
+MOD65_021D95A4: ; 0x021D95A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ ldr r2, [r5, #0xc]
+ add r4, r6, #0
+ add r4, #0xc
+ ldr r0, [r4, #0x18]
+ asr r3, r2, #0x1f
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ add r2, r0, #0
+ mov r0, #2
+ add r3, r1, #0
+ mov r7, #0
+ lsl r0, r0, #0xa
+ add r0, r2, r0
+ adc r3, r7
+ ldr r1, [r6, #0xc]
+ lsl r2, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r2
+ add r0, r1, r0
+ str r0, [sp]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r5, #0xc]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r2, r0, #0
+ mov r0, #2
+ add r3, r1, #0
+ lsl r0, r0, #0xa
+ add r0, r2, r0
+ adc r3, r7
+ ldr r1, [r4, #4]
+ lsl r2, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r2
+ add r0, r1, r0
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x48]
+ ldr r2, [r5, #0xc]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ add r3, r7, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ lsl r0, r1, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B970
+ ldr r2, _021D9678 ; =0xFFFC0000
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x12
+ bl _ll_mul
+ add r3, r7, #0
+ mov r7, #2
+ add r2, r1, #0
+ lsl r7, r7, #0xa
+ add r0, r0, r7
+ adc r2, r3
+ lsl r2, r2, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r2
+ asr r4, r0, #0x1f
+ lsr r2, r0, #0x14
+ lsl r4, r4, #0xc
+ orr r4, r2
+ lsl r0, r0, #0xc
+ add r2, r0, r7
+ adc r4, r3
+ ldr r1, [sp, #4]
+ lsl r0, r4, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r0
+ add r0, r1, r2
+ add r6, #0xc4
+ str r0, [sp, #4]
+ ldr r0, [r6]
+ add r1, sp, #0
+ bl FUN_02020044
+ ldr r1, [r5, #0xc]
+ lsl r0, r7, #1
+ add r0, r1, r0
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+ bne _021D9674
+ add r0, r5, #0
+ bl MOD65_021D9130
+_021D9674:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9678: .word 0xFFFC0000
+ thumb_func_end MOD65_021D95A4
+
+ thumb_func_start MOD65_021D967C
+MOD65_021D967C: ; 0x021D967C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ add r7, r0, #0
+ add r4, r6, #0
+ mov r1, #0x18
+ mov r0, #1
+ add r4, #0x68
+ str r1, [r5, #4]
+ lsl r0, r0, #0xc
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ lsl r0, r1, #8
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x30
+ add r1, #0x24
+ add r2, sp, #0xc
+ bl VEC_Subtract
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ ble _021D96C2
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D96D0
+_021D96C2:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D96D0:
+ bl _ffix
+ add r4, #0x3c
+ add r3, r0, #0
+ add r0, sp, #0
+ add r1, r4, #0
+ add r2, sp, #0xc
+ bl MOD65_021D89C4
+ add r0, r6, #0
+ add r0, #0xc8
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r0]
+ add r2, #0xf4
+ bl FUN_02007558
+ add r6, #0xc8
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r6]
+ add r2, #0xf3
+ bl FUN_02007558
+ ldr r1, _021D970C ; =MOD65_021D9710
+ add r0, r7, #0
+ bl FUN_0201B6C4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D970C: .word MOD65_021D9710
+ thumb_func_end MOD65_021D967C
+
+ thumb_func_start MOD65_021D9710
+MOD65_021D9710: ; 0x021D9710
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ add r4, r6, #0
+ add r4, #0x68
+ str r0, [sp, #4]
+ asr r7, r0, #0x1f
+ ldr r0, [r4, #0x40]
+ ldr r2, [sp, #4]
+ asr r1, r0, #0x1f
+ add r3, r7, #0
+ bl _ll_mul
+ mov r3, #2
+ add r2, r0, #0
+ lsl r3, r3, #0xa
+ add r3, r2, r3
+ ldr r2, _021D97C0 ; =0x00000000
+ ldr r0, [r4, #0x28]
+ adc r1, r2
+ lsr r2, r3, #0xc
+ lsl r1, r1, #0x14
+ orr r2, r1
+ add r0, r0, r2
+ str r0, [sp]
+ ldr r0, [r4, #0x3c]
+ ldr r2, [sp, #4]
+ asr r1, r0, #0x1f
+ add r3, r7, #0
+ bl _ll_mul
+ mov r2, #2
+ add r3, r0, #0
+ add r0, r6, #0
+ add r7, r1, #0
+ add r0, #0xc8
+ lsl r2, r2, #0xa
+ mov r1, #0xc
+ add r3, r3, r2
+ ldr r2, _021D97C0 ; =0x00000000
+ ldr r4, [r4, #0x24]
+ adc r7, r2
+ lsl r2, r7, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ add r2, r4, r3
+ ldr r0, [r0]
+ asr r2, r2, #4
+ bl FUN_02007558
+ add r0, r6, #0
+ add r0, #0xc8
+ ldr r2, [sp]
+ ldr r0, [r0]
+ mov r1, #0xd
+ asr r2, r2, #4
+ bl FUN_02007558
+ mov r0, #1
+ ldr r1, [r5, #0xc]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+ bne _021D97BA
+ add r0, r6, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ mov r2, #0x80
+ bl FUN_02007558
+ add r6, #0xc8
+ ldr r0, [r6]
+ mov r1, #1
+ mov r2, #0x60
+ bl FUN_02007558
+ add r0, r5, #0
+ bl MOD65_021D9130
+_021D97BA:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D97C0: .word 0x00000000
+ thumb_func_end MOD65_021D9710
+
+ thumb_func_start MOD65_021D97C4
+MOD65_021D97C4: ; 0x021D97C4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r6, r1, #0
+ ldr r4, [r6, #0x14]
+ add r7, r0, #0
+ mov r0, #0x18
+ mov r1, #2
+ add r5, r4, #0
+ str r0, [r6, #4]
+ lsl r1, r1, #0x12
+ add r5, #0x68
+ str r1, [r4, #0x68]
+ lsl r0, r0, #0xe
+ str r0, [r5, #4]
+ mov r0, #7
+ str r1, [r5, #0xc]
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x10]
+ add r0, r5, #0
+ add r0, #0xc
+ add r1, r5, #0
+ add r2, sp, #0xc
+ bl VEC_Subtract
+ ldr r0, [r6, #4]
+ cmp r0, #0
+ ble _021D980C
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D981A
+_021D980C:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D981A:
+ bl _ffix
+ add r1, r5, #0
+ add r3, r0, #0
+ add r0, sp, #0
+ add r1, #0x18
+ add r2, sp, #0xc
+ bl MOD65_021D89C4
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r2, [r5]
+ ldr r0, [r0]
+ mov r1, #0
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ add r4, #0xc8
+ ldr r2, [r5, #4]
+ ldr r0, [r4]
+ mov r1, #1
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ ldr r1, _021D9858 ; =MOD65_021D985C
+ add r0, r7, #0
+ bl FUN_0201B6C4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9858: .word MOD65_021D985C
+ thumb_func_end MOD65_021D97C4
+
+ thumb_func_start MOD65_021D985C
+MOD65_021D985C: ; 0x021D985C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ ldr r7, [r5, #0xc]
+ add r4, r6, #0
+ str r0, [sp]
+ asr r0, r7, #0x1f
+ str r0, [sp, #8]
+ add r4, #0x68
+ ldr r0, [r4, #0x1c]
+ ldr r3, [sp, #8]
+ asr r1, r0, #0x1f
+ add r2, r7, #0
+ bl _ll_mul
+ mov r3, #2
+ add r2, r0, #0
+ lsl r3, r3, #0xa
+ add r3, r2, r3
+ ldr r2, _021D9990 ; =0x00000000
+ ldr r0, [r4, #4]
+ adc r1, r2
+ lsr r2, r3, #0xc
+ lsl r1, r1, #0x14
+ orr r2, r1
+ add r0, r0, r2
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x18]
+ ldr r3, [sp, #8]
+ asr r1, r0, #0x1f
+ add r2, r7, #0
+ bl _ll_mul
+ mov ip, r0
+ ldr r2, [r6, #0x68]
+ add r7, r1, #0
+ str r2, [sp, #0xc]
+ mov r2, #2
+ add r0, r6, #0
+ add r0, #0xc8
+ mov r1, #0
+ mov r3, ip
+ lsl r2, r2, #0xa
+ add r2, r3, r2
+ adc r7, r1
+ lsl r3, r7, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r3
+ ldr r3, [sp, #0xc]
+ ldr r0, [r0]
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ add r0, r6, #0
+ add r0, #0xc8
+ ldr r2, [sp, #4]
+ ldr r0, [r0]
+ mov r1, #1
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x50
+ ldrh r0, [r0]
+ sub r0, r0, #4
+ add r1, r0, #0
+ mul r1, r0
+ mov r0, #0x10
+ sub r0, r0, r1
+ neg r0, r0
+ cmp r0, #0
+ ble _021D9902
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9910
+_021D9902:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9910:
+ bl _ffix
+ ldr r2, _021D9994 ; =0x00001666
+ asr r1, r0, #0x1f
+ mov r3, #0
+ bl _ll_mul
+ add r3, r1, #0
+ mov r1, #4
+ add r7, r0, #0
+ add r0, r6, #0
+ add r0, #0xc8
+ lsl r2, r1, #9
+ add r7, r7, r2
+ ldr r2, _021D9990 ; =0x00000000
+ ldr r0, [r0]
+ adc r3, r2
+ lsl r2, r3, #0x14
+ lsr r3, r7, #0xc
+ orr r3, r2
+ asr r2, r3, #0xc
+ bl FUN_02007558
+ add r0, r4, #0
+ add r0, #0x50
+ ldrh r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x50
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x50
+ ldrh r0, [r0]
+ cmp r0, #8
+ bls _021D995E
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x50
+ strh r1, [r0]
+_021D995E:
+ mov r0, #1
+ ldr r1, [r5, #0xc]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r5, #0xc]
+ ldr r1, [r5, #4]
+ sub r0, r1, #1
+ str r0, [r5, #4]
+ cmp r1, #0
+ bne _021D998C
+ add r6, #0xc8
+ ldr r0, [r6]
+ mov r1, #4
+ mov r2, #0
+ bl FUN_02007558
+ mov r0, #0
+ add r4, #0x50
+ strh r0, [r4]
+ ldr r0, [sp]
+ ldr r1, _021D9998 ; =MOD65_021D999C
+ bl FUN_0201B6C4
+_021D998C:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9990: .word 0x00000000
+_021D9994: .word 0x00001666
+_021D9998: .word MOD65_021D999C
+ thumb_func_end MOD65_021D985C
+
+ thumb_func_start MOD65_021D999C
+MOD65_021D999C: ; 0x021D999C
+ push {r3, lr}
+ ldr r3, [r1, #0x14]
+ add r3, #0x68
+ add r0, r3, #0
+ add r0, #0x50
+ ldrh r2, [r0]
+ add r0, r3, #0
+ add r0, #0x50
+ ldrh r0, [r0]
+ add r3, #0x50
+ add r0, r0, #1
+ strh r0, [r3]
+ cmp r2, #4
+ blo _021D99BE
+ add r0, r1, #0
+ bl MOD65_021D9130
+_021D99BE:
+ pop {r3, pc}
+ thumb_func_end MOD65_021D999C
+
+ thumb_func_start MOD65_021D99C0
+MOD65_021D99C0: ; 0x021D99C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ add r7, r0, #0
+ add r4, r6, #0
+ mov r1, #8
+ mov r0, #6
+ add r4, #0x68
+ str r1, [r5, #4]
+ lsl r0, r0, #0xa
+ str r0, [r4, #0x24]
+ str r0, [r4, #0x28]
+ lsl r0, r1, #9
+ str r0, [r4, #0x30]
+ str r0, [r4, #0x34]
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0x30
+ add r1, #0x24
+ add r2, sp, #0xc
+ bl VEC_Subtract
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ ble _021D9A06
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9A14
+_021D9A06:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9A14:
+ bl _ffix
+ add r4, #0x3c
+ add r3, r0, #0
+ add r0, sp, #0
+ add r1, r4, #0
+ add r2, sp, #0xc
+ bl MOD65_021D89C4
+ add r0, r6, #0
+ add r0, #0xc8
+ mov r1, #0xc
+ ldr r0, [r0]
+ lsl r2, r1, #5
+ bl FUN_02007558
+ add r6, #0xc8
+ mov r2, #6
+ ldr r0, [r6]
+ mov r1, #0xd
+ lsl r2, r2, #6
+ bl FUN_02007558
+ ldr r1, _021D9A50 ; =MOD65_021D9A54
+ add r0, r7, #0
+ bl FUN_0201B6C4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9A50: .word MOD65_021D9A54
+ thumb_func_end MOD65_021D99C0
+
+ thumb_func_start MOD65_021D9A54
+MOD65_021D9A54: ; 0x021D9A54
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ ldr r0, [r5, #0xc]
+ add r4, r6, #0
+ add r4, #0x68
+ str r0, [sp, #4]
+ asr r7, r0, #0x1f
+ ldr r0, [r4, #0x40]
+ ldr r2, [sp, #4]
+ asr r1, r0, #0x1f
+ add r3, r7, #0
+ bl _ll_mul
+ mov r3, #2
+ add r2, r0, #0
+ lsl r3, r3, #0xa
+ add r3, r2, r3
+ ldr r2, _021D9B08 ; =0x00000000
+ ldr r0, [r4, #0x28]
+ adc r1, r2
+ lsr r2, r3, #0xc
+ lsl r1, r1, #0x14
+ orr r2, r1
+ add r0, r0, r2
+ str r0, [sp]
+ ldr r0, [r4, #0x3c]
+ ldr r2, [sp, #4]
+ asr r1, r0, #0x1f
+ add r3, r7, #0
+ bl _ll_mul
+ mov r2, #2
+ add r3, r0, #0
+ add r0, r6, #0
+ add r7, r1, #0
+ add r0, #0xc8
+ lsl r2, r2, #0xa
+ mov r1, #0xc
+ add r3, r3, r2
+ ldr r2, _021D9B08 ; =0x00000000
+ ldr r4, [r4, #0x24]
+ adc r7, r2
+ lsl r2, r7, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ add r2, r4, r3
+ ldr r0, [r0]
+ asr r2, r2, #4
+ bl FUN_02007558
+ add r0, r6, #0
+ add r0, #0xc8
+ ldr r2, [sp]
+ ldr r0, [r0]
+ mov r1, #0xd
+ asr r2, r2, #4
+ bl FUN_02007558
+ mov r0, #1
+ ldr r1, [r5, #0xc]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+ bne _021D9B02
+ add r0, r6, #0
+ add r0, #0xc8
+ mov r1, #0xc
+ add r2, r1, #0
+ ldr r0, [r0]
+ add r2, #0xf4
+ bl FUN_02007558
+ add r6, #0xc8
+ mov r1, #0xd
+ add r2, r1, #0
+ ldr r0, [r6]
+ add r2, #0xf3
+ bl FUN_02007558
+ add r0, r5, #0
+ bl MOD65_021D9130
+_021D9B02:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9B08: .word 0x00000000
+ thumb_func_end MOD65_021D9A54
+
+ thumb_func_start MOD65_021D9B0C
+MOD65_021D9B0C: ; 0x021D9B0C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ add r7, r0, #0
+ mov r0, #8
+ add r4, r6, #0
+ str r0, [r5, #4]
+ lsl r1, r0, #0x10
+ mov r0, #7
+ add r4, #0x68
+ str r1, [r6, #0x68]
+ lsl r0, r0, #0x10
+ str r0, [r4, #4]
+ mov r0, #6
+ str r1, [r4, #0xc]
+ lsl r0, r0, #0x10
+ str r0, [r4, #0x10]
+ add r0, r4, #0
+ add r0, #0xc
+ add r1, r4, #0
+ add r2, sp, #0xc
+ bl VEC_Subtract
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ ble _021D9B54
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9B62
+_021D9B54:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9B62:
+ bl _ffix
+ add r1, r4, #0
+ add r3, r0, #0
+ add r0, sp, #0
+ add r1, #0x18
+ add r2, sp, #0xc
+ bl MOD65_021D89C4
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ ble _021D9B8C
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9B9A
+_021D9B8C:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9B9A:
+ bl _ffix
+ add r1, r0, #0
+ mov r0, #0x2d
+ lsl r0, r0, #0xe
+ bl FX_Div
+ str r0, [r4, #0x48]
+ add r0, r6, #0
+ add r0, #0xc8
+ ldr r2, [r4]
+ ldr r0, [r0]
+ mov r1, #0
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ add r6, #0xc8
+ ldr r2, [r4, #4]
+ ldr r0, [r6]
+ mov r1, #1
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ ldr r1, _021D9BD4 ; =MOD65_021D9BD8
+ add r0, r7, #0
+ bl FUN_0201B6C4
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9BD4: .word MOD65_021D9BD8
+ thumb_func_end MOD65_021D9B0C
+
+ thumb_func_start MOD65_021D9BD8
+MOD65_021D9BD8: ; 0x021D9BD8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ ldr r6, [r4, #0x14]
+ ldr r7, [r4, #0xc]
+ add r5, r6, #0
+ str r0, [sp]
+ asr r0, r7, #0x1f
+ str r0, [sp, #8]
+ add r5, #0x68
+ ldr r0, [r5, #0x1c]
+ ldr r3, [sp, #8]
+ asr r1, r0, #0x1f
+ add r2, r7, #0
+ bl _ll_mul
+ mov r3, #2
+ add r2, r0, #0
+ lsl r3, r3, #0xa
+ add r3, r2, r3
+ ldr r2, _021D9CD4 ; =0x00000000
+ ldr r0, [r5, #4]
+ adc r1, r2
+ lsr r2, r3, #0xc
+ lsl r1, r1, #0x14
+ orr r2, r1
+ add r0, r0, r2
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x18]
+ ldr r3, [sp, #8]
+ asr r1, r0, #0x1f
+ add r2, r7, #0
+ bl _ll_mul
+ mov ip, r0
+ ldr r2, [r6, #0x68]
+ add r7, r1, #0
+ str r2, [sp, #0xc]
+ mov r2, #2
+ add r0, r6, #0
+ add r0, #0xc8
+ mov r1, #0
+ mov r3, ip
+ lsl r2, r2, #0xa
+ add r2, r3, r2
+ adc r7, r1
+ lsl r3, r7, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r3
+ ldr r3, [sp, #0xc]
+ ldr r0, [r0]
+ add r2, r3, r2
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ add r0, r6, #0
+ add r0, #0xc8
+ ldr r2, [sp, #4]
+ ldr r0, [r0]
+ mov r1, #1
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ ldr r0, [r5, #0x48]
+ ldr r2, [r4, #0xc]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ lsl r0, r1, #4
+ lsr r0, r0, #0x10
+ bl FUN_0201B970
+ ldr r2, _021D9CD8 ; =0xFFFFA000
+ asr r1, r0, #0x1f
+ asr r3, r2, #0xf
+ bl _ll_mul
+ add r5, r1, #0
+ mov r1, #4
+ add r3, r0, #0
+ add r0, r6, #0
+ add r0, #0xc8
+ mov r7, #0
+ lsl r2, r1, #9
+ add r2, r3, r2
+ adc r5, r7
+ lsl r3, r5, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r3
+ ldr r0, [r0]
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ add r2, r4, #0
+ add r2, #0xc
+ mov r0, #1
+ ldr r1, [r2]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [r2]
+ ldr r0, [r4, #4]
+ sub r0, r0, #1
+ str r0, [r4, #4]
+ bne _021D9CCE
+ add r6, #0xc8
+ ldr r0, [r6]
+ mov r1, #4
+ add r2, r7, #0
+ bl FUN_02007558
+ ldr r0, [sp]
+ ldr r1, _021D9CDC ; =MOD65_021D9CE0
+ bl FUN_0201B6C4
+_021D9CCE:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9CD4: .word 0x00000000
+_021D9CD8: .word 0xFFFFA000
+_021D9CDC: .word MOD65_021D9CE0
+ thumb_func_end MOD65_021D9BD8
+
+ thumb_func_start MOD65_021D9CE0
+MOD65_021D9CE0: ; 0x021D9CE0
+ push {r3, lr}
+ ldr r3, [r1, #4]
+ add r2, r3, #1
+ str r2, [r1, #4]
+ cmp r3, #4
+ blt _021D9D10
+ ldr r2, [r1, #0x14]
+ ldr r2, [r2, #8]
+ cmp r2, #0
+ beq _021D9CFA
+ cmp r2, #1
+ beq _021D9D02
+ b _021D9D0A
+_021D9CFA:
+ ldr r1, _021D9D14 ; =MOD65_021D9D1C
+ bl FUN_0201B6C4
+ pop {r3, pc}
+_021D9D02:
+ ldr r1, _021D9D18 ; =MOD65_021D9DFC
+ bl FUN_0201B6C4
+ pop {r3, pc}
+_021D9D0A:
+ add r0, r1, #0
+ bl MOD65_021D9130
+_021D9D10:
+ pop {r3, pc}
+ nop
+_021D9D14: .word MOD65_021D9D1C
+_021D9D18: .word MOD65_021D9DFC
+ thumb_func_end MOD65_021D9CE0
+
+ thumb_func_start MOD65_021D9D1C
+MOD65_021D9D1C: ; 0x021D9D1C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ add r0, #0x68
+ mov r2, #0x5c
+ bl MI_CpuFill8
+ mov r0, #3
+ str r0, [r4, #4]
+ ldr r1, _021D9D3C ; =MOD65_021D9D40
+ add r0, r5, #0
+ bl FUN_0201B6C4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D9D3C: .word MOD65_021D9D40
+ thumb_func_end MOD65_021D9D1C
+
+ thumb_func_start MOD65_021D9D40
+MOD65_021D9D40: ; 0x021D9D40
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ ldr r7, [r5, #0x14]
+ add r4, r7, #0
+ add r4, #0x68
+ add r0, r4, #0
+ add r0, #0x50
+ ldrh r0, [r0]
+ sub r0, r0, #4
+ add r1, r0, #0
+ mul r1, r0
+ mov r0, #0x10
+ sub r0, r0, r1
+ neg r0, r0
+ cmp r0, #0
+ ble _021D9D72
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9D80
+_021D9D72:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9D80:
+ bl _ffix
+ ldr r2, _021D9DF4 ; =0x00001666
+ asr r1, r0, #0x1f
+ mov r3, #0
+ bl _ll_mul
+ add r6, r1, #0
+ mov r1, #4
+ add r3, r0, #0
+ add r0, r7, #0
+ add r0, #0xc8
+ lsl r2, r1, #9
+ add r3, r3, r2
+ ldr r2, _021D9DF8 ; =0x00000000
+ ldr r0, [r0]
+ adc r6, r2
+ lsl r2, r6, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ asr r2, r3, #0xc
+ bl FUN_02007558
+ add r1, r4, #0
+ mov r0, #0
+ add r1, #0x52
+ strh r0, [r1]
+ add r1, r4, #0
+ add r1, #0x50
+ ldrh r1, [r1]
+ add r2, r1, #1
+ add r1, r4, #0
+ add r1, #0x50
+ strh r2, [r1]
+ add r1, r4, #0
+ add r1, #0x50
+ ldrh r1, [r1]
+ cmp r1, #8
+ bls _021D9DD8
+ add r4, #0x50
+ strh r0, [r4]
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+_021D9DD8:
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bne _021D9DF0
+ add r7, #0xc8
+ ldr r0, [r7]
+ mov r1, #4
+ mov r2, #0
+ bl FUN_02007558
+ add r0, r5, #0
+ bl MOD65_021D9130
+_021D9DF0:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9DF4: .word 0x00001666
+_021D9DF8: .word 0x00000000
+ thumb_func_end MOD65_021D9D40
+
+ thumb_func_start MOD65_021D9DFC
+MOD65_021D9DFC: ; 0x021D9DFC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ add r0, #0x68
+ mov r2, #0x5c
+ bl MI_CpuFill8
+ mov r0, #0x20
+ str r0, [r4, #4]
+ ldr r1, _021D9E1C ; =MOD65_021D9E20
+ add r0, r5, #0
+ bl FUN_0201B6C4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D9E1C: .word MOD65_021D9E20
+ thumb_func_end MOD65_021D9DFC
+
+ thumb_func_start MOD65_021D9E20
+MOD65_021D9E20: ; 0x021D9E20
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r6, [r5, #0x14]
+ add r4, r6, #0
+ add r4, #0x68
+ add r0, r4, #0
+ add r0, #0x50
+ ldrh r0, [r0]
+ bl FUN_0201B970
+ asr r1, r0, #0x1f
+ lsr r2, r0, #0x13
+ lsl r1, r1, #0xd
+ orr r1, r2
+ mov r2, #2
+ lsl r3, r0, #0xd
+ mov r0, #0
+ lsl r2, r2, #0xa
+ add r2, r3, r2
+ adc r1, r0
+ lsl r1, r1, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ add r1, r4, #0
+ add r1, #0x50
+ ldrh r3, [r1]
+ ldr r1, _021D9E94 ; =0x00000167
+ cmp r3, r1
+ bls _021D9E5C
+ b _021D9E64
+_021D9E5C:
+ add r0, r4, #0
+ add r0, #0x50
+ ldrh r0, [r0]
+ add r0, #0x5a
+_021D9E64:
+ add r4, #0x50
+ strh r0, [r4]
+ add r0, r6, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #3
+ asr r2, r2, #0xc
+ bl FUN_02007558
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+ bne _021D9E90
+ add r6, #0xc8
+ ldr r0, [r6]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_02007558
+ add r0, r5, #0
+ bl MOD65_021D9130
+_021D9E90:
+ pop {r4, r5, r6, pc}
+ nop
+_021D9E94: .word 0x00000167
+ thumb_func_end MOD65_021D9E20
+
+ thumb_func_start MOD65_021D9E98
+MOD65_021D9E98: ; 0x021D9E98
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r4, r2, #0
+ mov r1, #0
+ mov r2, #0x1c
+ add r5, r0, #0
+ bl MI_CpuFill8
+ bl FUN_020BB7F4
+ bl G3X_Init
+ bl G3X_InitMtxStack
+ ldr r0, _021D9F34 ; =0x04000060
+ ldr r1, _021D9F38 ; =0xFFFFCFFD
+ ldrh r2, [r0]
+ ldr r3, _021D9F3C ; =0x0000CFFB
+ and r2, r1
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r3
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r6, [r0]
+ add r1, r1, #2
+ sub r3, #0x1c
+ and r6, r2
+ mov r2, #8
+ orr r2, r6
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r3
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _021D9F40 ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021D9F44 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _021D9F48 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD65_021D9FA0
+ add r0, r5, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl MOD65_021DA000
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r1, _021D9F4C ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ mov r0, #1
+ orr r0, r2
+ strh r0, [r1]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9F34: .word 0x04000060
+_021D9F38: .word 0xFFFFCFFD
+_021D9F3C: .word 0x0000CFFB
+_021D9F40: .word 0x00007FFF
+_021D9F44: .word 0x04000540
+_021D9F48: .word 0xBFFF0000
+_021D9F4C: .word 0x04000008
+ thumb_func_end MOD65_021D9E98
+
+ thumb_func_start MOD65_021D9F50
+MOD65_021D9F50: ; 0x021D9F50
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ ldr r2, _021D9F84 ; =0x04000440
+ mov r3, #0
+ add r1, r2, #0
+ str r3, [r2]
+ add r1, #0x14
+ str r3, [r1]
+ mov r0, #2
+ str r0, [r2]
+ str r3, [r1]
+ bl FUN_020B849C
+ bl FUN_020B02C8
+ ldr r0, [r4, #4]
+ bl FUN_02006ED4
+ ldr r0, _021D9F88 ; =0x04000540
+ mov r1, #1
+ str r1, [r0]
+ pop {r4, pc}
+ .align 2, 0
+_021D9F84: .word 0x04000440
+_021D9F88: .word 0x04000540
+ thumb_func_end MOD65_021D9F50
+
+ thumb_func_start MOD65_021D9F8C
+MOD65_021D9F8C: ; 0x021D9F8C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_0201EB70
+ ldr r0, [r4, #4]
+ bl FUN_020072E8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD65_021D9F8C
+
+ thumb_func_start MOD65_021D9FA0
+MOD65_021D9FA0: ; 0x021D9FA0
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ ldr r5, _021D9FF8 ; =0x021DA41C
+ add r4, r0, #0
+ add r2, r1, #0
+ ldmia r5!, {r0, r1}
+ add r3, sp, #0x10
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, sp, #8
+ str r0, [r3]
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ add r0, r2, #0
+ bl FUN_0201EB64
+ str r0, [r4]
+ mov r1, #1
+ str r1, [sp]
+ ldr r0, [r4]
+ ldr r3, _021D9FFC ; =0x000005C1
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ lsl r1, r1, #0x10
+ add r2, sp, #8
+ bl FUN_0201ED10
+ mov r1, #0x19
+ ldr r2, [r4]
+ mov r0, #0
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ ldr r0, [r4]
+ bl FUN_0201EC88
+ ldr r0, [r4]
+ bl FUN_0201EB8C
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D9FF8: .word 0x021DA41C
+_021D9FFC: .word 0x000005C1
+ thumb_func_end MOD65_021D9FA0
+
+ thumb_func_start MOD65_021DA000
+MOD65_021DA000: ; 0x021DA000
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r0, r2, #0
+ add r4, r1, #0
+ bl FUN_02006D98
+ str r0, [r5, #4]
+ ldr r1, [r4]
+ add r0, sp, #0x10
+ mov r2, #2
+ bl FUN_02068B68
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #4]
+ add r1, sp, #0x10
+ mov r2, #0x80
+ mov r3, #0x60
+ bl FUN_020073A0
+ ldrb r2, [r4, #8]
+ mov r1, #0x23
+ add r6, r0, #0
+ bl FUN_02007558
+ str r6, [r5, #0x18]
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD65_021DA000
+
+ .section .rodata
+ ; 0x021DA040
+ .incbin "baserom.nds", 0x2BBF60, 0x3E8
+
+ .section .data
+ ; 0x021DA440
+ .incbin "baserom.nds", 0x2BC360, 0xA0
diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s
new file mode 100644
index 00000000..e1053077
--- /dev/null
+++ b/arm9/modules/66/asm/module_66.s
@@ -0,0 +1,4216 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD66_021D74E0
+MOD66_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_0200628C
+ mov r2, #2
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x11
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r4, #0
+ mov r1, #0xe4
+ mov r2, #0x11
+ bl FUN_02006268
+ mov r1, #0
+ mov r2, #0xe4
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ ldr r0, _021D7534 ; =0x00000139
+ str r5, [r4, #0x2c]
+ ldrb r0, [r5, r0]
+ cmp r0, #3
+ bhs _021D7516
+ b _021D7518
+_021D7516:
+ mov r0, #0
+_021D7518:
+ strb r0, [r4]
+ mov r0, #0x4f
+ lsl r0, r0, #2
+ ldrh r0, [r5, r0]
+ mov r1, #0
+ add r2, r1, #0
+ strh r0, [r4, #2]
+ mov r0, #0x11
+ str r0, [r4, #4]
+ mov r0, #0x37
+ bl FUN_0200433C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7534: .word 0x00000139
+ thumb_func_end MOD66_021D74E0
+
+ thumb_func_start MOD66_021D7538
+MOD66_021D7538: ; 0x021D7538
+ push {r4, lr}
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #8
+ bhi _021D75AA
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7552: ; jump table
+ .short _021D7564 - _021D7552 - 2 ; case 0
+ .short _021D756C - _021D7552 - 2 ; case 1
+ .short _021D75AA - _021D7552 - 2 ; case 2
+ .short _021D7574 - _021D7552 - 2 ; case 3
+ .short _021D7582 - _021D7552 - 2 ; case 4
+ .short _021D75AA - _021D7552 - 2 ; case 5
+ .short _021D7590 - _021D7552 - 2 ; case 6
+ .short _021D75A6 - _021D7552 - 2 ; case 7
+ .short _021D759E - _021D7552 - 2 ; case 8
+_021D7564:
+ bl MOD66_021D7A88
+ str r0, [r4, #8]
+ b _021D75AA
+_021D756C:
+ bl MOD66_021D7AB0
+ str r0, [r4, #8]
+ b _021D75AA
+_021D7574:
+ bl MOD66_021D7AE8
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD66_021D77C4
+ b _021D75AA
+_021D7582:
+ bl MOD66_021D7AFC
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD66_021D77C4
+ b _021D75AA
+_021D7590:
+ bl MOD66_021D7B38
+ str r0, [r4, #8]
+ add r0, r4, #0
+ bl MOD66_021D77C4
+ b _021D75AA
+_021D759E:
+ bl MOD66_021D7B94
+ str r0, [r4, #8]
+ b _021D75AA
+_021D75A6:
+ mov r0, #1
+ pop {r4, pc}
+_021D75AA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D7538
+
+ thumb_func_start MOD66_021D75B0
+MOD66_021D75B0: ; 0x021D75B0
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02006278
+ add r0, r4, #0
+ bl FUN_0200627C
+ mov r0, #0x11
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD66_021D75B0
+
+ thumb_func_start MOD66_021D75C8
+MOD66_021D75C8: ; 0x021D75C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r2, [r4]
+ mov r1, #0x24
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D75FC ; =0x021D95E8
+ ldr r1, [r1, r3]
+ cmp r1, #0
+ beq _021D75DE
+ blx r1
+_021D75DE:
+ bl FUN_020AEEB8
+ add r0, r4, #0
+ bl MOD66_021D9220
+ ldr r0, [r4, #0x28]
+ bl FUN_0201AB60
+ ldr r3, _021D7600 ; =0x027E0000
+ ldr r1, _021D7604 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D75FC: .word 0x021D95E8
+_021D7600: .word 0x027E0000
+_021D7604: .word 0x00003FF8
+ thumb_func_end MOD66_021D75C8
+
+ thumb_func_start MOD66_021D7608
+MOD66_021D7608: ; 0x021D7608
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7624 ; =0x021D95A0
+ add r3, sp, #0
+ mov r2, #5
+_021D7612:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7612
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7624: .word 0x021D95A0
+ thumb_func_end MOD66_021D7608
+
+ thumb_func_start MOD66_021D7628
+MOD66_021D7628: ; 0x021D7628
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021D763C
+ cmp r0, #1
+ beq _021D76E4
+ cmp r0, #2
+ beq _021D7710
+ b _021D772E
+_021D763C:
+ 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, _021D7738 ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D773C ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r0]
+ cmp r1, #0
+ bne _021D767C
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ bne _021D767C
+ mov r0, #3
+ str r0, [r4, #0x20]
+ mov r0, #0x1b
+ str r0, [r4, #0x24]
+ b _021D7694
+_021D767C:
+ asr r0, r1, #4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r0, r0, #5
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r0, #4]
+ asr r0, r1, #4
+ lsr r0, r0, #0x1b
+ add r0, r1, r0
+ asr r0, r0, #5
+ str r0, [r4, #0x24]
+_021D7694:
+ ldr r0, [r4, #0x20]
+ ldr r2, _021D7740 ; =0x0000017E
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x24]
+ mov r1, #0x1a
+ str r0, [r4, #0x1c]
+ ldr r3, [r4, #4]
+ mov r0, #1
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0x80
+ str r0, [r1]
+ mov r2, #0x8b
+ ldr r3, [r4, #4]
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0x84
+ str r0, [r1]
+ ldr r1, [r4, #4]
+ mov r0, #0x16
+ bl FUN_020219F4
+ add r1, r4, #0
+ add r1, #0x88
+ str r0, [r1]
+ ldr r0, [r4, #4]
+ bl FUN_020345A8
+ str r0, [r4, #0x30]
+ ldr r0, _021D7744 ; =0x021D9AA0
+ ldr r1, [r4, #4]
+ bl MOD66_021D94A4
+ str r0, [r4, #0x40]
+ b _021D772E
+_021D76E4:
+ bl MOD66_021D7608
+ ldr r0, [r4, #4]
+ bl FUN_02016B94
+ str r0, [r4, #0x28]
+ ldr r1, [r4, #0x28]
+ add r0, r4, #0
+ bl MOD66_021D77E4
+ add r0, r4, #0
+ bl MOD66_021D78B4
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ add r0, r4, #0
+ bl MOD66_021D913C
+ b _021D772E
+_021D7710:
+ ldr r0, _021D7748 ; =MOD66_021D75C8
+ add r1, r4, #0
+ bl FUN_02015F10
+ ldrb r1, [r4]
+ mov r0, #0x24
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021D774C ; =0x021D95D8
+ ldr r0, [r0, r2]
+ str r0, [r4, #0x38]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #1
+ pop {r4, pc}
+_021D772E:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ str r0, [r4, #0xc]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D7738: .word 0xFFFFE0FF
+_021D773C: .word 0x04001000
+_021D7740: .word 0x0000017E
+_021D7744: .word 0x021D9AA0
+_021D7748: .word MOD66_021D75C8
+_021D774C: .word 0x021D95D8
+ thumb_func_end MOD66_021D7628
+
+ thumb_func_start MOD66_021D7750
+MOD66_021D7750: ; 0x021D7750
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_0201CD04
+ mov r0, #0x1f
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x1f
+ mov r1, #0
+ bl FUN_0201E74C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ add r0, r5, #0
+ bl MOD66_021D91F4
+ add r0, r5, #0
+ bl MOD66_021D7A34
+ mov r4, #0
+_021D7782:
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x28]
+ lsr r1, r1, #0x18
+ bl FUN_020178A0
+ add r4, r4, #1
+ cmp r4, #8
+ blt _021D7782
+ ldr r0, [r5, #0x28]
+ bl FUN_02016A18
+ ldr r0, [r5, #0x40]
+ bl MOD66_021D9544
+ ldr r0, [r5, #0x30]
+ bl FUN_020345DC
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r5, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r5, #0x80
+ ldr r0, [r5]
+ bl FUN_0200A8B8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D7750
+
+ thumb_func_start MOD66_021D77C4
+MOD66_021D77C4: ; 0x021D77C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r2, [r4]
+ mov r1, #0x24
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D77E0 ; =0x021D95E0
+ ldr r1, [r1, r3]
+ blx r1
+ add r0, r4, #0
+ bl MOD66_021D9214
+ pop {r4, pc}
+ nop
+_021D77E0: .word 0x021D95E0
+ thumb_func_end MOD66_021D77C4
+
+ thumb_func_start MOD66_021D77E4
+MOD66_021D77E4: ; 0x021D77E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xf4
+ ldr r4, _021D78AC ; =0x021D9590
+ add r3, sp, #4
+ str r0, [sp]
+ add r6, r1, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r4, _021D78B0 ; =0x021D9634
+ add r3, sp, #0x14
+ mov r2, #0x1c
+_021D7806:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D7806
+ mov r4, #0
+ add r7, r4, #0
+ add r5, sp, #0x14
+_021D7814:
+ lsl r1, r4, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ add r2, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ lsl r1, r4, #0x18
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ add r4, r4, #1
+ bl FUN_02018744
+ add r7, r7, #1
+ add r5, #0x1c
+ cmp r7, #8
+ blt _021D7814
+ ldr r3, [sp]
+ mov r0, #0
+ ldr r3, [r3, #4]
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ ldr r3, [sp]
+ mov r0, #1
+ ldr r3, [r3, #4]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [sp]
+ mov r0, #2
+ ldr r3, [r3, #4]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [sp]
+ mov r0, #3
+ ldr r3, [r3, #4]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [sp]
+ mov r0, #4
+ ldr r3, [r3, #4]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [sp]
+ mov r0, #5
+ ldr r3, [r3, #4]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [sp]
+ mov r0, #6
+ ldr r3, [r3, #4]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ ldr r3, [sp]
+ mov r0, #7
+ ldr r3, [r3, #4]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ add sp, #0xf4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D78AC: .word 0x021D9590
+_021D78B0: .word 0x021D9634
+ thumb_func_end MOD66_021D77E4
+
+ thumb_func_start MOD66_021D78B4
+MOD66_021D78B4: ; 0x021D78B4
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r1, [r5, #4]
+ mov r0, #0x11
+ bl FUN_02006670
+ add r4, r0, #0
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #4]
+ add r2, r4, #0
+ mov r3, #0x11
+ bl FUN_02079B60
+ mov r0, #0x14
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #4]
+ add r2, r4, #0
+ mov r3, #0x11
+ bl FUN_02079B60
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #4]
+ add r2, r4, #0
+ mov r3, #0x11
+ bl FUN_02079B60
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r1, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #4]
+ add r2, r4, #0
+ mov r3, #0x11
+ bl FUN_02079B60
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ ldr r1, [r5, #4]
+ add r2, r4, #0
+ mov r3, #0x11
+ bl FUN_02079B60
+ ldr r0, [r5, #4]
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x11
+ mov r2, #0x18
+ add r3, #0xb8
+ bl FUN_02079C40
+ add r1, r5, #0
+ add r1, #0x98
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x11
+ mov r2, #0x16
+ add r3, #0xbc
+ bl FUN_02079C40
+ add r1, r5, #0
+ add r1, #0x9c
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x11
+ mov r2, #0x17
+ add r3, #0xc0
+ bl FUN_02079C40
+ add r1, r5, #0
+ add r1, #0xa0
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x11
+ mov r2, #0x19
+ add r3, #0xc4
+ bl FUN_02079C40
+ add r1, r5, #0
+ add r1, #0xa4
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x11
+ mov r2, #0x1a
+ add r3, #0xc8
+ bl FUN_02079C40
+ add r1, r5, #0
+ add r1, #0xa8
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x11
+ mov r2, #0x1b
+ add r3, #0xcc
+ bl FUN_02079C40
+ add r1, r5, #0
+ add r1, #0xac
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x11
+ mov r2, #0x1c
+ add r3, #0xd0
+ bl FUN_02079C40
+ add r1, r5, #0
+ add r1, #0xb0
+ str r0, [r1]
+ ldr r0, [r5, #4]
+ add r3, r5, #0
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x11
+ mov r2, #0x1d
+ add r3, #0xd4
+ bl FUN_02079C40
+ add r1, r5, #0
+ add r1, #0xb4
+ str r0, [r1]
+ add r0, r4, #0
+ bl FUN_020066F4
+ mov r1, #0x1e
+ ldr r2, [r5, #4]
+ mov r0, #0
+ lsl r1, r1, #4
+ bl FUN_02002ED0
+ mov r1, #0x1e
+ ldr r2, [r5, #4]
+ mov r0, #4
+ lsl r1, r1, #4
+ bl FUN_02002ED0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D78B4
+
+ thumb_func_start MOD66_021D7A34
+MOD66_021D7A34: ; 0x021D7A34
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xb0
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xac
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl FUN_02016A18
+ add r4, #0x98
+ ldr r0, [r4]
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D7A34
+
+ thumb_func_start MOD66_021D7A88
+MOD66_021D7A88: ; 0x021D7A88
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD66_021D7628
+ cmp r0, #1
+ beq _021D7A98
+ mov r0, #0
+ pop {r4, pc}
+_021D7A98:
+ ldrb r2, [r4]
+ mov r1, #0x24
+ add r0, r4, #0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D7AAC ; =0x021D95C8
+ ldr r1, [r1, r3]
+ blx r1
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7AAC: .word 0x021D95C8
+ thumb_func_end MOD66_021D7A88
+
+ thumb_func_start MOD66_021D7AB0
+MOD66_021D7AB0: ; 0x021D7AB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r2, [r4]
+ mov r1, #0x24
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D7AE0 ; =0x021D95CC
+ ldr r1, [r1, r3]
+ blx r1
+ cmp r0, #1
+ beq _021D7ACA
+ mov r0, #1
+ pop {r4, pc}
+_021D7ACA:
+ ldrb r2, [r4]
+ mov r1, #0x24
+ add r0, r4, #0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D7AE4 ; =0x021D95D0
+ ldr r1, [r1, r3]
+ blx r1
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_021D7AE0: .word 0x021D95CC
+_021D7AE4: .word 0x021D95D0
+ thumb_func_end MOD66_021D7AB0
+
+ thumb_func_start MOD66_021D7AE8
+MOD66_021D7AE8: ; 0x021D7AE8
+ push {r3, lr}
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7AF6
+ mov r0, #4
+ pop {r3, pc}
+_021D7AF6:
+ mov r0, #3
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D7AE8
+
+ thumb_func_start MOD66_021D7AFC
+MOD66_021D7AFC: ; 0x021D7AFC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x38]
+ blx r1
+ cmp r0, #1
+ beq _021D7B1C
+ ldrb r2, [r4]
+ mov r1, #0x24
+ add r0, r4, #0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D7B30 ; =0x021D95DC
+ ldr r1, [r1, r3]
+ blx r1
+ mov r0, #4
+ pop {r4, pc}
+_021D7B1C:
+ ldrb r2, [r4]
+ mov r1, #0x24
+ add r0, r4, #0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D7B34 ; =0x021D95D4
+ ldr r1, [r1, r3]
+ blx r1
+ mov r0, #6
+ pop {r4, pc}
+ .align 2, 0
+_021D7B30: .word 0x021D95DC
+_021D7B34: .word 0x021D95D4
+ thumb_func_end MOD66_021D7AFC
+
+ thumb_func_start MOD66_021D7B38
+MOD66_021D7B38: ; 0x021D7B38
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7B76
+ mov r1, #0
+ ldr r0, _021D7B8C ; =0x04000050
+ add r2, r1, #0
+ mov r3, #0x1f
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0200E3A0
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0200E3A0
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ add sp, #4
+ mov r0, #8
+ pop {r3, r4, pc}
+_021D7B76:
+ ldrb r2, [r4]
+ mov r1, #0x24
+ add r0, r4, #0
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D7B90 ; =0x021D95DC
+ ldr r1, [r1, r3]
+ blx r1
+ mov r0, #6
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D7B8C: .word 0x04000050
+_021D7B90: .word 0x021D95DC
+ thumb_func_end MOD66_021D7B38
+
+ thumb_func_start MOD66_021D7B94
+MOD66_021D7B94: ; 0x021D7B94
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r2, [r4]
+ mov r1, #0x24
+ add r3, r2, #0
+ mul r3, r1
+ ldr r1, _021D7BB0 ; =0x021D95E4
+ ldr r1, [r1, r3]
+ blx r1
+ add r0, r4, #0
+ bl MOD66_021D7750
+ mov r0, #7
+ pop {r4, pc}
+ .align 2, 0
+_021D7BB0: .word 0x021D95E4
+ thumb_func_end MOD66_021D7B94
+
+ thumb_func_start MOD66_021D7BB4
+MOD66_021D7BB4: ; 0x021D7BB4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0x11
+ ldr r0, [r4, #4]
+ lsl r1, r1, #4
+ bl FUN_02016998
+ mov r2, #0x11
+ mov r1, #0
+ lsl r2, r2, #4
+ str r0, [r4, #0x34]
+ bl Call_FillMemWithValue
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D7BB4
+
+ thumb_func_start MOD66_021D7BD4
+MOD66_021D7BD4: ; 0x021D7BD4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x34]
+ bl MOD66_021D89B8
+ ldrb r0, [r5]
+ cmp r0, #2
+ beq _021D7BEA
+ add r0, r5, #0
+ bl MOD66_021D8E34
+_021D7BEA:
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl MOD66_021D9350
+ add r0, r5, #0
+ bl MOD66_021D8670
+ add r0, r4, #0
+ bl FUN_02016A18
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD66_021D7BD4
+
+ thumb_func_start MOD66_021D7C04
+MOD66_021D7C04: ; 0x021D7C04
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x34]
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021D7C16
+ cmp r1, #1
+ beq _021D7C60
+ b _021D7CA2
+_021D7C16:
+ ldr r1, [r5, #0x18]
+ str r1, [r4, #0x18]
+ ldr r1, [r5, #0x1c]
+ str r1, [r4, #0x1c]
+ mov r1, #0
+ mvn r1, r1
+ str r1, [r4, #0x20]
+ ldr r1, [r4, #0x18]
+ lsl r2, r1, #4
+ add r1, r4, #0
+ sub r2, #0x68
+ add r1, #0x8c
+ str r2, [r1]
+ ldr r1, [r4, #0x1c]
+ lsl r2, r1, #4
+ add r1, r4, #0
+ sub r2, #0x60
+ add r1, #0x90
+ str r2, [r1]
+ add r1, r4, #0
+ add r2, r4, #0
+ add r1, #0x8c
+ add r2, #0x90
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD66_021D8BF0
+ add r0, r5, #0
+ bl MOD66_021D8554
+ ldrb r0, [r5]
+ cmp r0, #2
+ beq _021D7CA2
+ add r0, r5, #0
+ bl MOD66_021D8CD0
+ b _021D7CA2
+_021D7C60:
+ bl MOD66_021D8838
+ add r0, r5, #0
+ bl MOD66_021D8AF4
+ ldr r0, [r5, #4]
+ add r1, r5, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ mov r2, #0x49
+ ldr r3, [r5, #0x2c]
+ lsl r2, r2, #2
+ add r2, r3, r2
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r3, #0x14
+ bl MOD66_021D9228
+ add r1, r4, #0
+ add r1, #0x9c
+ str r0, [r1]
+ add r0, r5, #0
+ bl MOD66_021D818C
+ add r0, r5, #0
+ bl MOD66_021D8140
+ mov r0, #0
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D7CA2:
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD66_021D7C04
+
+ thumb_func_start MOD66_021D7CAC
+MOD66_021D7CAC: ; 0x021D7CAC
+ push {lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [r0, #0x14]
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r0, #4]
+ mov r2, #0x25
+ str r0, [sp, #8]
+ add r0, r1, #0
+ mov r1, #0x11
+ bl FUN_0200E1D0
+ ldr r0, _021D7CF0 ; =0x0000068F
+ bl FUN_020054C8
+ mov r0, #0
+ bl FUN_0200E394
+ mov r0, #1
+ bl FUN_0200E394
+ mov r1, #4
+ ldr r0, _021D7CF4 ; =0x04000050
+ mov r2, #8
+ mov r3, #0x1c
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ mov r0, #0
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+_021D7CF0: .word 0x0000068F
+_021D7CF4: .word 0x04000050
+ thumb_func_end MOD66_021D7CAC
+
+ thumb_func_start MOD66_021D7CF8
+MOD66_021D7CF8: ; 0x021D7CF8
+ push {lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [r0, #0x14]
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r0, #4]
+ mov r1, #0x10
+ str r0, [sp, #8]
+ mov r0, #2
+ mov r2, #0x24
+ bl FUN_0200E1D0
+ mov r0, #0x69
+ lsl r0, r0, #4
+ bl FUN_020054C8
+ mov r0, #0
+ add sp, #0xc
+ pop {pc}
+ thumb_func_end MOD66_021D7CF8
+
+ thumb_func_start MOD66_021D7D24
+MOD66_021D7D24: ; 0x021D7D24
+ push {lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [r0, #0x14]
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r0, #4]
+ mov r1, #0x11
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, _021D7D64 ; =0x0000068F
+ bl FUN_020054C8
+ mov r0, #0
+ bl FUN_0200E394
+ mov r1, #4
+ ldr r0, _021D7D68 ; =0x04000050
+ mov r2, #8
+ mov r3, #0x1c
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ mov r0, #0
+ add sp, #0xc
+ pop {pc}
+ nop
+_021D7D64: .word 0x0000068F
+_021D7D68: .word 0x04000050
+ thumb_func_end MOD66_021D7D24
+
+ thumb_func_start MOD66_021D7D6C
+MOD66_021D7D6C: ; 0x021D7D6C
+ push {lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [r0, #0x14]
+ mov r1, #6
+ str r1, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r0, #4]
+ mov r1, #0x10
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #0x69
+ lsl r0, r0, #4
+ bl FUN_020054C8
+ mov r0, #0
+ add sp, #0xc
+ pop {pc}
+ thumb_func_end MOD66_021D7D6C
+
+ thumb_func_start MOD66_021D7D98
+MOD66_021D7D98: ; 0x021D7D98
+ push {r3, lr}
+ ldr r1, [r0, #0x34]
+ ldrb r3, [r1, #0x14]
+ cmp r3, #1
+ bhi _021D7DB6
+ ldr r1, _021D7DCC ; =0x021C48B8
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ tst r1, r2
+ beq _021D7DB6
+ ldr r0, _021D7DD0 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, pc}
+_021D7DB6:
+ cmp r3, #1
+ bls _021D7DBE
+ mov r0, #0
+ pop {r3, pc}
+_021D7DBE:
+ ldr r1, _021D7DCC ; =0x021C48B8
+ ldr r1, [r1, #0x44]
+ bl MOD66_021D8054
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D7DCC: .word 0x021C48B8
+_021D7DD0: .word 0x000005DD
+ thumb_func_end MOD66_021D7D98
+
+ thumb_func_start MOD66_021D7DD4
+MOD66_021D7DD4: ; 0x021D7DD4
+ push {r3, lr}
+ ldr r1, [r0, #0x34]
+ ldrb r1, [r1, #0x14]
+ cmp r1, #1
+ bhi _021D7E0E
+ ldr r2, _021D7E24 ; =0x021C48B8
+ ldr r3, [r2, #0x48]
+ mov r2, #1
+ tst r2, r3
+ beq _021D7DFE
+ bl MOD66_021D90F0
+ cmp r0, #0
+ beq _021D7DFA
+ ldr r0, _021D7E28 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, pc}
+_021D7DFA:
+ mov r0, #0
+ pop {r3, pc}
+_021D7DFE:
+ mov r2, #2
+ tst r2, r3
+ beq _021D7E0E
+ ldr r0, _021D7E28 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, pc}
+_021D7E0E:
+ cmp r1, #1
+ bls _021D7E16
+ mov r0, #0
+ pop {r3, pc}
+_021D7E16:
+ ldr r1, _021D7E24 ; =0x021C48B8
+ ldr r1, [r1, #0x44]
+ bl MOD66_021D8054
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D7E24: .word 0x021C48B8
+_021D7E28: .word 0x000005DD
+ thumb_func_end MOD66_021D7DD4
+
+ thumb_func_start MOD66_021D7E2C
+MOD66_021D7E2C: ; 0x021D7E2C
+ push {r3, lr}
+ ldr r2, _021D7E4C ; =0x021C48B8
+ mov r1, #2
+ ldr r3, [r2, #0x48]
+ tst r1, r3
+ beq _021D7E42
+ ldr r0, _021D7E50 ; =0x000005DD
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, pc}
+_021D7E42:
+ ldr r1, [r2, #0x44]
+ bl MOD66_021D8054
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021D7E4C: .word 0x021C48B8
+_021D7E50: .word 0x000005DD
+ thumb_func_end MOD66_021D7E2C
+
+ thumb_func_start MOD66_021D7E54
+MOD66_021D7E54: ; 0x021D7E54
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x34]
+ mov r1, #1
+ ldrb r2, [r4, #0x12]
+ tst r1, r2
+ beq _021D7E80
+ ldrb r1, [r4, #0x15]
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x1c
+ cmp r1, #2
+ blo _021D7E94
+ bl MOD66_021D8140
+ mov r0, #0
+ strb r0, [r4, #0x12]
+ strh r0, [r4, #0x16]
+ ldrb r1, [r4, #0x15]
+ mov r0, #0xf
+ bic r1, r0
+ strb r1, [r4, #0x15]
+ b _021D7E94
+_021D7E80:
+ ldrb r1, [r4, #0x10]
+ cmp r1, #1
+ bne _021D7E94
+ ldrh r1, [r4, #0x16]
+ cmp r1, #1
+ bne _021D7E94
+ ldr r2, [r4, #0x20]
+ mov r1, #0
+ bl MOD66_021D8480
+_021D7E94:
+ add r0, r5, #0
+ bl MOD66_021D8380
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D7E54
+
+ thumb_func_start MOD66_021D7EA0
+MOD66_021D7EA0: ; 0x021D7EA0
+ push {r3, lr}
+ add r1, r0, #0
+ ldr r0, [r1, #0x34]
+ ldrb r1, [r1]
+ add r0, #0x9c
+ ldr r0, [r0]
+ bl MOD66_021D945C
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD66_021D7EA0
+
+ thumb_func_start MOD66_021D7EB4
+MOD66_021D7EB4: ; 0x021D7EB4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r1, r6, #0
+ add r1, #0x94
+ ldr r5, [r1]
+ add r1, r6, #0
+ add r1, #0x90
+ ldr r7, [r1]
+ add r1, r6, #0
+ add r1, #0x8c
+ ldr r1, [r1]
+ ldr r4, [r6, #0x34]
+ cmp r1, #0
+ bne _021D7ED8
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_021D7ED8:
+ add r1, r6, #0
+ mov r2, #0
+ add r1, #0x8c
+ str r2, [r1]
+ cmp r5, #0
+ bne _021D7EF8
+ add r4, #0x58
+ add r1, r4, #0
+ bl MOD66_021D82B8
+ add r0, r6, #0
+ bl MOD66_021D8494
+ add sp, #0xc
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_021D7EF8:
+ add r1, r4, #0
+ add r1, #0x58
+ add r2, r5, #0
+ bl MOD66_021D82B8
+ add r0, r6, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ bl FUN_02021A4C
+ ldr r2, [r4, #0x18]
+ ldr r3, [r4, #0x1c]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD66_021D81B4
+ ldrh r0, [r5, #4]
+ ldr r2, _021D7FA0 ; =0x0000013B
+ mov r1, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r5, #6]
+ mov r3, #0xe
+ str r0, [sp, #4]
+ ldr r0, [r6, #4]
+ str r0, [sp, #8]
+ ldr r0, [r6, #0x28]
+ bl FUN_0200D300
+ ldrh r0, [r5, #4]
+ cmp r0, #1
+ bhi _021D7F40
+ add r7, r4, #0
+ add r7, #0x38
+ b _021D7F44
+_021D7F40:
+ add r7, r4, #0
+ add r7, #0x48
+_021D7F44:
+ str r7, [r4, #0x78]
+ ldrb r0, [r4, #0x15]
+ mov r1, #0xf0
+ ldr r2, _021D7FA0 ; =0x0000013B
+ bic r0, r1
+ ldrh r1, [r5, #4]
+ mov r3, #0xe
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ lsl r1, r1, #0x1c
+ lsr r1, r1, #0x18
+ orr r0, r1
+ strb r0, [r4, #0x15]
+ ldrh r0, [r5, #4]
+ mov r1, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ add r0, r7, #0
+ bl FUN_0200D6F8
+ add r0, r7, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r6, #0x88
+ ldr r2, [r6]
+ add r0, r7, #0
+ mov r1, #1
+ bl FUN_0201BD84
+ add r0, r7, #0
+ bl FUN_020191D0
+ add r4, #0x58
+ add r0, r4, #0
+ bl FUN_020191D0
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7FA0: .word 0x0000013B
+ thumb_func_end MOD66_021D7EB4
+
+ thumb_func_start MOD66_021D7FA4
+MOD66_021D7FA4: ; 0x021D7FA4
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #1
+ sub r0, r0, r6
+ ldr r1, _021D7FF4 ; =0x021D9720
+ lsl r0, r0, #2
+ add r0, r1, r0
+ bl FUN_02020988
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _021D7FC8
+ cmp r6, #1
+ bne _021D7FCE
+_021D7FC8:
+ add sp, #8
+ add r0, r4, #0
+ pop {r4, r5, r6, pc}
+_021D7FCE:
+ mov r1, #0x12
+ add r0, sp, #4
+ strh r1, [r0]
+ add r0, sp, #4
+ str r0, [sp]
+ ldr r3, _021D7FF8 ; =0x021C48F8
+ ldr r0, [r5, #0x28]
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #5
+ bl FUN_0201AFBC
+ cmp r0, #0
+ beq _021D7FEE
+ mov r4, #0
+ mvn r4, r4
+_021D7FEE:
+ add r0, r4, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D7FF4: .word 0x021D9720
+_021D7FF8: .word 0x021C48F8
+ thumb_func_end MOD66_021D7FA4
+
+ thumb_func_start MOD66_021D7FFC
+MOD66_021D7FFC: ; 0x021D7FFC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r1, [r5, #0x2c]
+ ldr r0, _021D8050 ; =0x00000139
+ ldr r4, [r5, #0x34]
+ ldrb r0, [r1, r0]
+ cmp r0, #2
+ bne _021D8010
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D8010:
+ bl FUN_02020A98
+ cmp r0, #0
+ ldrb r0, [r4, #0x14]
+ beq _021D803E
+ cmp r0, #0
+ bne _021D804C
+ ldrb r1, [r4, #0x10]
+ add r0, r5, #0
+ bl MOD66_021D7FA4
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _021D804C
+ ldrb r1, [r4, #0x10]
+ add r0, r5, #0
+ bl MOD66_021D8E70
+ mov r0, #3
+ strb r0, [r4, #0x14]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D803E:
+ cmp r0, #3
+ beq _021D8046
+ cmp r0, #1
+ bne _021D804C
+_021D8046:
+ ldrb r0, [r4, #0x14]
+ sub r0, r0, #1
+ strb r0, [r4, #0x14]
+_021D804C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8050: .word 0x00000139
+ thumb_func_end MOD66_021D7FFC
+
+ thumb_func_start MOD66_021D8054
+MOD66_021D8054: ; 0x021D8054
+ push {r3, r4, r5, lr}
+ ldr r4, [r0, #0x34]
+ add r5, r1, #0
+ ldrb r1, [r4, #0x11]
+ cmp r1, #0
+ beq _021D8084
+ mov r0, #0xf0
+ tst r0, r5
+ bne _021D813C
+ ldrb r2, [r4, #0x15]
+ lsl r0, r2, #0x1c
+ lsr r1, r0, #0x1c
+ cmp r1, #1
+ bne _021D813C
+ mov r0, #0xf
+ bic r2, r0
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0xf
+ and r0, r1
+ orr r0, r2
+ strb r0, [r4, #0x15]
+ pop {r3, r4, r5, pc}
+_021D8084:
+ bl MOD66_021D7FFC
+ cmp r0, #0
+ bne _021D813C
+ mov r0, #0xf0
+ tst r0, r5
+ bne _021D80B0
+ ldrb r2, [r4, #0x15]
+ lsl r0, r2, #0x1c
+ lsr r1, r0, #0x1c
+ cmp r1, #1
+ bne _021D813C
+ mov r0, #0xf
+ bic r2, r0
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ mov r0, #0xf
+ and r0, r1
+ orr r0, r2
+ strb r0, [r4, #0x15]
+ pop {r3, r4, r5, pc}
+_021D80B0:
+ mov r0, #0x40
+ tst r0, r5
+ beq _021D80C8
+ ldr r0, [r4, #0x1c]
+ cmp r0, #7
+ blt _021D80C8
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ ldrb r1, [r4, #0x11]
+ mov r0, #8
+ orr r0, r1
+ strb r0, [r4, #0x11]
+_021D80C8:
+ mov r0, #0x80
+ tst r0, r5
+ beq _021D80E0
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x1b
+ bgt _021D80E0
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ ldrb r1, [r4, #0x11]
+ mov r0, #4
+ orr r0, r1
+ strb r0, [r4, #0x11]
+_021D80E0:
+ mov r0, #0x10
+ tst r0, r5
+ beq _021D80F8
+ ldr r0, [r4, #0x18]
+ cmp r0, #0x1b
+ bgt _021D80F8
+ add r0, r0, #1
+ str r0, [r4, #0x18]
+ ldrb r1, [r4, #0x11]
+ mov r0, #1
+ orr r0, r1
+ strb r0, [r4, #0x11]
+_021D80F8:
+ mov r0, #0x20
+ tst r0, r5
+ beq _021D8110
+ ldr r0, [r4, #0x18]
+ cmp r0, #2
+ blt _021D8110
+ sub r0, r0, #1
+ str r0, [r4, #0x18]
+ ldrb r1, [r4, #0x11]
+ mov r0, #2
+ orr r0, r1
+ strb r0, [r4, #0x11]
+_021D8110:
+ mov r0, #3
+ strb r0, [r4, #0x13]
+ ldrb r1, [r4, #0x11]
+ mov r0, #0x80
+ orr r0, r1
+ strb r0, [r4, #0x11]
+ ldrb r0, [r4, #0x12]
+ cmp r0, #0
+ beq _021D8128
+ ldrh r0, [r4, #0x16]
+ add r0, r0, #1
+ b _021D812A
+_021D8128:
+ mov r0, #0
+_021D812A:
+ strh r0, [r4, #0x16]
+ mov r0, #0
+ strb r0, [r4, #0x12]
+ ldrb r1, [r4, #0x15]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ strb r0, [r4, #0x15]
+_021D813C:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D8054
+
+ thumb_func_start MOD66_021D8140
+MOD66_021D8140: ; 0x021D8140
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x34]
+ ldr r1, [r4, #0x1c]
+ str r1, [sp]
+ add r1, r4, #0
+ ldr r2, [r4, #0x20]
+ ldr r3, [r4, #0x18]
+ add r1, #0x28
+ bl MOD66_021D820C
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ ldr r1, [r4, #0x20]
+ ldr r2, [r4, #0x18]
+ ldr r3, [r4, #0x1c]
+ bl MOD66_021D93F4
+ ldrb r0, [r4, #0x10]
+ cmp r0, #1
+ bne _021D818A
+ add r1, r4, #0
+ add r1, #0xa0
+ ldr r1, [r1]
+ ldr r2, [r4, #0x20]
+ add r0, r5, #0
+ bl MOD66_021D8480
+ ldr r0, [r5, #0x28]
+ mov r1, #4
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x28]
+ mov r1, #5
+ bl FUN_0201AC68
+_021D818A:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD66_021D8140
+
+ thumb_func_start MOD66_021D818C
+MOD66_021D818C: ; 0x021D818C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x34]
+ ldr r0, [r4, #0x20]
+ str r0, [r4, #0x24]
+ ldr r0, [r5, #0x30]
+ ldr r1, [r4, #0x18]
+ ldr r2, [r4, #0x1c]
+ bl FUN_020345F0
+ str r0, [r4, #0x20]
+ ldrh r3, [r5, #2]
+ ldr r0, [r5, #0x40]
+ ldr r1, [r4, #0x18]
+ ldr r2, [r4, #0x1c]
+ bl MOD66_021D9558
+ add r4, #0xa0
+ str r0, [r4]
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD66_021D818C
+
+ thumb_func_start MOD66_021D81B4
+MOD66_021D81B4: ; 0x021D81B4
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ beq _021D81CA
+ add r0, r1, #0
+ ldr r1, [r4, #4]
+ add r4, #0x88
+ ldr r2, [r4]
+ bl FUN_02064E60
+ pop {r3, r4, r5, pc}
+_021D81CA:
+ ldr r5, _021D8204 ; =0x021D97B4
+ mov r1, #0
+_021D81CE:
+ ldrh r0, [r5]
+ cmp r2, r0
+ bne _021D81EC
+ ldrh r0, [r5, #2]
+ cmp r3, r0
+ bne _021D81EC
+ ldr r0, _021D8208 ; =0x021D97B8
+ lsl r1, r1, #3
+ ldr r0, [r0, r1]
+ ldr r1, [r4, #4]
+ add r4, #0x88
+ ldr r2, [r4]
+ bl FUN_02064E60
+ pop {r3, r4, r5, pc}
+_021D81EC:
+ add r1, r1, #1
+ add r5, #8
+ cmp r1, #0xd
+ blo _021D81CE
+ ldr r1, [r4, #4]
+ add r4, #0x88
+ ldr r2, [r4]
+ mov r0, #0
+ bl FUN_02064E60
+ pop {r3, r4, r5, pc}
+ nop
+_021D8204: .word 0x021D97B4
+_021D8208: .word 0x021D97B8
+ thumb_func_end MOD66_021D81B4
+
+ thumb_func_start MOD66_021D820C
+MOD66_021D820C: ; 0x021D820C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ add r4, r1, #0
+ ldr r6, [r5, #0x34]
+ add r7, r2, #0
+ str r3, [sp, #0x10]
+ bl FUN_02021A4C
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r6, #0xa0
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _021D8278
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x28]
+ add r0, r5, #0
+ add r1, r7, #0
+ bl MOD66_021D81B4
+ ldrb r0, [r5]
+ cmp r0, #1
+ bne _021D8248
+ mov r3, #0x7a
+ b _021D825C
+_021D8248:
+ add r1, r5, #0
+ add r1, #0x88
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xd0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+_021D825C:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D82B4 ; =0x00010200
+ add r2, r5, #0
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ add r2, #0x88
+ ldr r2, [r2]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+_021D8278:
+ ldrb r0, [r5]
+ cmp r0, #1
+ bne _021D82AA
+ add r5, #0x84
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0200A914
+ add r5, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D82B4 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+_021D82AA:
+ add r0, r4, #0
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D82B4: .word 0x00010200
+ thumb_func_end MOD66_021D820C
+
+ thumb_func_start MOD66_021D82B8
+MOD66_021D82B8: ; 0x021D82B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ bne _021D82DC
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r6, #0
+ bl FUN_020191D0
+ add r0, r6, #0
+ bl FUN_02019570
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+_021D82DC:
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldrh r1, [r4, #8]
+ ldr r0, _021D8378 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021D832C
+ ldr r2, [r5, #0x2c]
+ ldrh r0, [r4, #0x16]
+ add r2, #0x5c
+ ldrb r0, [r2, r0]
+ lsl r2, r0, #0x1e
+ lsr r2, r2, #0x1e
+ beq _021D8300
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1e
+ beq _021D832C
+_021D8300:
+ add r0, r5, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #0xe]
+ mov r1, #0
+ add r2, r7, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D837C ; =0x00010200
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldrh r3, [r4, #0xc]
+ add r0, r6, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+_021D832C:
+ ldrh r1, [r4, #0xa]
+ ldr r0, _021D8378 ; =0x0000FFFF
+ cmp r1, r0
+ beq _021D8372
+ ldr r2, [r5, #0x2c]
+ ldrh r0, [r4, #0x16]
+ add r2, #0x5c
+ ldrb r0, [r2, r0]
+ lsl r2, r0, #0x1a
+ lsr r2, r2, #0x1e
+ beq _021D8348
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ beq _021D8372
+_021D8348:
+ add r5, #0x84
+ ldr r0, [r5]
+ bl FUN_0200A914
+ add r5, r0, #0
+ ldrh r0, [r4, #0x12]
+ mov r1, #0
+ add r2, r5, #0
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D837C ; =0x00010200
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldrh r3, [r4, #0x10]
+ add r0, r6, #0
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+_021D8372:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8378: .word 0x0000FFFF
+_021D837C: .word 0x00010200
+ thumb_func_end MOD66_021D82B8
+
+ thumb_func_start MOD66_021D8380
+MOD66_021D8380: ; 0x021D8380
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ ldr r5, [r6, #0x34]
+ mov r4, #5
+ ldrb r1, [r5, #0x13]
+ cmp r1, #0
+ beq _021D847C
+ sub r0, r1, #1
+ strb r0, [r5, #0x13]
+ cmp r1, #3
+ bne _021D83F0
+ ldr r1, [r5, #0x18]
+ add r0, r4, #0
+ mov r2, #7
+ add r3, r1, #0
+ mul r3, r2
+ add r3, #0x19
+ lsl r1, r3, #0x10
+ ldr r3, [r5, #0x1c]
+ add r0, #0xff
+ mul r2, r3
+ sub r2, #0x22
+ lsl r2, r2, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ add r0, r4, #0
+ add r0, #0xff
+ mov r1, #1
+ ldr r0, [r5, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020201E4
+ add r0, r6, #0
+ bl MOD66_021D818C
+ ldr r0, [r5, #0x18]
+ ldr r7, [r5, #0x1c]
+ str r0, [sp, #4]
+ ldr r0, [r6, #0x30]
+ ldr r1, [sp, #4]
+ add r2, r7, #0
+ bl FUN_020345F0
+ add r1, r5, #0
+ add r2, r0, #0
+ ldr r3, [sp, #4]
+ add r0, r6, #0
+ add r1, #0x28
+ str r7, [sp]
+ bl MOD66_021D820C
+ add r4, r4, #1
+_021D83F0:
+ ldrb r1, [r5, #0x11]
+ mov r0, #8
+ tst r0, r1
+ beq _021D8406
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ sub r1, r0, r4
+ add r0, r5, #0
+ add r0, #0x90
+ str r1, [r0]
+_021D8406:
+ ldrb r1, [r5, #0x11]
+ mov r0, #4
+ tst r0, r1
+ beq _021D841C
+ add r0, r5, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ add r1, r0, r4
+ add r0, r5, #0
+ add r0, #0x90
+ str r1, [r0]
+_021D841C:
+ ldrb r1, [r5, #0x11]
+ mov r0, #1
+ tst r0, r1
+ beq _021D8432
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ add r1, r0, r4
+ add r0, r5, #0
+ add r0, #0x8c
+ str r1, [r0]
+_021D8432:
+ ldrb r1, [r5, #0x11]
+ mov r0, #2
+ tst r0, r1
+ beq _021D8448
+ add r0, r5, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ sub r1, r0, r4
+ add r0, r5, #0
+ add r0, #0x8c
+ str r1, [r0]
+_021D8448:
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0x8c
+ add r2, #0x90
+ ldr r1, [r1]
+ ldr r2, [r2]
+ add r0, r6, #0
+ bl MOD66_021D8BF0
+ ldrb r0, [r5, #0x13]
+ cmp r0, #0
+ bne _021D847C
+ mov r0, #1
+ strb r0, [r5, #0x12]
+ mov r2, #0
+ strb r2, [r5, #0x11]
+ ldr r1, [r5, #0x24]
+ ldr r0, [r5, #0x20]
+ cmp r1, r0
+ beq _021D847C
+ add r5, #0x9c
+ ldr r0, [r5]
+ sub r1, r2, #1
+ add r3, r2, #0
+ bl MOD66_021D93F4
+_021D847C:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD66_021D8380
+
+ thumb_func_start MOD66_021D8480
+MOD66_021D8480: ; 0x021D8480
+ add r3, r0, #0
+ add r3, #0x90
+ str r2, [r3]
+ add r2, r0, #0
+ add r2, #0x94
+ str r1, [r2]
+ mov r1, #1
+ add r0, #0x8c
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD66_021D8480
+
+ thumb_func_start MOD66_021D8494
+MOD66_021D8494: ; 0x021D8494
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r4, [r6, #0x34]
+ mov r1, #0
+ ldr r5, [r4, #0x78]
+ str r1, [r4, #0x78]
+ cmp r5, #0
+ beq _021D84C6
+ add r0, r5, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ bl FUN_02019570
+ ldrb r1, [r4, #0x15]
+ add r0, r5, #0
+ mov r2, #0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x1c
+ bl FUN_0200D7A0
+ ldr r0, [r6, #0x28]
+ mov r1, #4
+ bl FUN_0201AC68
+_021D84C6:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD66_021D8494
+
+ thumb_func_start MOD66_021D84C8
+MOD66_021D84C8: ; 0x021D84C8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r0, #0xcc
+ add r5, r1, #0
+ ldr r0, [r0]
+ mov r1, #0xc
+ str r1, [sp]
+ mov r1, #2
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ mov r3, #0
+ str r3, [sp, #0xc]
+ mov r1, #7
+ str r1, [sp, #0x10]
+ ldrh r1, [r0]
+ mov r2, #0xa
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #5
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x28]
+ bl FUN_020181EC
+ add r4, #0x84
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0
+ add r1, r6, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x50
+ sub r4, r1, r0
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8550 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ lsr r3, r4, #1
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_020191D0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D8550: .word 0x00010200
+ thumb_func_end MOD66_021D84C8
+
+ thumb_func_start MOD66_021D8554
+MOD66_021D8554: ; 0x021D8554
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r4, [r5, #0x34]
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #0x1d
+ str r0, [sp, #4]
+ mov r3, #3
+ str r3, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ mov r0, #0xea
+ lsl r0, r0, #2
+ str r0, [sp, #0x10]
+ add r1, r4, #0
+ ldr r0, [r5, #0x28]
+ add r1, #0x28
+ mov r2, #1
+ bl FUN_02019064
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x15
+ str r0, [sp, #4]
+ mov r2, #4
+ add r1, r4, #0
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ ldr r0, _021D8660 ; =0x000003AB
+ add r1, #0x38
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ mov r3, #9
+ bl FUN_02019064
+ mov r0, #3
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ mov r2, #4
+ add r1, r4, #0
+ str r2, [sp, #8]
+ mov r0, #0xe
+ str r0, [sp, #0xc]
+ ldr r0, _021D8664 ; =0x0000033B
+ add r1, #0x48
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0x1c
+ str r0, [sp, #4]
+ mov r0, #0xe
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021D8668 ; =0x000001B3
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ add r1, #0x58
+ mov r2, #4
+ mov r3, #1
+ bl FUN_02019064
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ ldr r0, _021D866C ; =0x0000019F
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x28]
+ add r1, #0x68
+ mov r2, #4
+ mov r3, #0xb
+ bl FUN_02019064
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x38
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x48
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x58
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x68
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x28
+ bl FUN_020191D0
+ add r0, r4, #0
+ add r0, #0x38
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x48
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x58
+ bl FUN_02019570
+ add r4, #0x68
+ add r0, r4, #0
+ bl FUN_02019570
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_021D8660: .word 0x000003AB
+_021D8664: .word 0x0000033B
+_021D8668: .word 0x000001B3
+_021D866C: .word 0x0000019F
+ thumb_func_end MOD66_021D8554
+
+ thumb_func_start MOD66_021D8670
+MOD66_021D8670: ; 0x021D8670
+ push {r3, r4, r5, lr}
+ ldr r4, [r0, #0x34]
+ mov r5, #0
+ add r4, #0x28
+_021D8678:
+ lsl r0, r5, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #5
+ blo _021D8678
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD66_021D8670
+
+ thumb_func_start MOD66_021D868C
+MOD66_021D868C: ; 0x021D868C
+ push {r4, r5, lr}
+ sub sp, #0x1c
+ add r5, r0, #0
+ add r4, r1, #0
+ cmp r2, #0
+ beq _021D86CA
+ add r0, #0xd0
+ ldr r0, [r0]
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ mov r2, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldrh r1, [r0]
+ add r3, r2, #0
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #5
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x28]
+ bl FUN_02018170
+_021D86CA:
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ mov r2, #6
+ str r2, [sp]
+ mov r1, #7
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ add r1, r4, #0
+ mul r1, r2
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0xc]
+ mov r1, #0
+ str r1, [sp, #0x10]
+ ldrh r1, [r0]
+ mov r2, #0xd
+ mov r3, #0xa
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #5
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r5, #0x28]
+ bl FUN_020181EC
+ add sp, #0x1c
+ pop {r4, r5, pc}
+ thumb_func_end MOD66_021D868C
+
+ thumb_func_start MOD66_021D870C
+MOD66_021D870C: ; 0x021D870C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ lsl r0, r1, #2
+ str r1, [sp, #0x1c]
+ mov r1, #6
+ add r2, r0, #0
+ mul r2, r1
+ ldr r1, _021D8834 ; =0x021D9754
+ add r3, r0, #1
+ add r6, r1, r2
+ mov r1, #6
+ add r2, r3, #0
+ mul r2, r1
+ ldr r1, _021D8834 ; =0x021D9754
+ mov r4, #6
+ add r3, r1, r2
+ add r1, r0, #2
+ mul r4, r1
+ ldr r1, _021D8834 ; =0x021D9754
+ add r0, r0, #3
+ add r4, r1, r4
+ mov r1, #6
+ mul r1, r0
+ ldr r0, _021D8834 ; =0x021D9754
+ str r1, [sp, #0x20]
+ add r7, r0, r1
+ add r0, r5, #0
+ add r0, #0xc0
+ ldrb r1, [r3, #4]
+ ldr r0, [r0]
+ str r1, [sp]
+ ldrb r1, [r3, #5]
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ ldr r1, _021D8834 ; =0x021D9754
+ ldrb r1, [r1, r2]
+ str r1, [sp, #0xc]
+ ldrb r1, [r3, #1]
+ str r1, [sp, #0x10]
+ ldrh r1, [r0]
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #2
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldrb r2, [r3, #2]
+ ldrb r3, [r3, #3]
+ ldr r0, [r5, #0x28]
+ bl FUN_02018170
+ add r0, r5, #0
+ add r0, #0xd4
+ ldrb r1, [r7, #4]
+ ldr r0, [r0]
+ ldr r2, _021D8834 ; =0x021D9754
+ str r1, [sp]
+ ldrb r1, [r7, #5]
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ ldr r1, [sp, #0x20]
+ ldrb r1, [r2, r1]
+ str r1, [sp, #0xc]
+ ldrb r1, [r7, #1]
+ str r1, [sp, #0x10]
+ ldrh r1, [r0]
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #6
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldrb r2, [r7, #2]
+ ldrb r3, [r7, #3]
+ ldr r0, [r5, #0x28]
+ bl FUN_020181EC
+ ldr r0, [sp, #0x1c]
+ cmp r0, #2
+ beq _021D882E
+ add r0, r5, #0
+ add r0, #0xc0
+ ldrb r1, [r6, #4]
+ ldr r0, [r0]
+ str r1, [sp]
+ ldrb r1, [r6, #5]
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ ldrb r1, [r6]
+ str r1, [sp, #0xc]
+ ldrb r1, [r6, #1]
+ str r1, [sp, #0x10]
+ ldrh r1, [r0]
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #3
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldrb r2, [r6, #2]
+ ldrb r3, [r6, #3]
+ ldr r0, [r5, #0x28]
+ bl FUN_02018170
+ add r0, r5, #0
+ add r0, #0xd4
+ ldrb r1, [r4, #4]
+ ldr r0, [r0]
+ str r1, [sp]
+ ldrb r1, [r4, #5]
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ ldrb r1, [r4]
+ str r1, [sp, #0xc]
+ ldrb r1, [r4, #1]
+ str r1, [sp, #0x10]
+ ldrh r1, [r0]
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #7
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldrb r2, [r4, #2]
+ ldrb r3, [r4, #3]
+ ldr r0, [r5, #0x28]
+ bl FUN_020181EC
+_021D882E:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8834: .word 0x021D9754
+ thumb_func_end MOD66_021D870C
+
+ thumb_func_start MOD66_021D8838
+MOD66_021D8838: ; 0x021D8838
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ mov r2, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldrh r1, [r0]
+ add r3, r2, #0
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #2
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x28]
+ bl FUN_02018170
+ add r0, r4, #0
+ add r0, #0xbc
+ mov r2, #0
+ ldr r0, [r0]
+ mov r1, #0x20
+ str r1, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldrh r1, [r0]
+ add r3, r2, #0
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #3
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x28]
+ bl FUN_02018170
+ ldrb r0, [r4]
+ cmp r0, #1
+ beq _021D88DE
+ add r0, r4, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ mov r1, #2
+ str r1, [sp]
+ mov r1, #3
+ add r2, r0, #0
+ str r1, [sp, #4]
+ add r2, #0xc
+ str r2, [sp, #8]
+ mov r2, #0
+ str r2, [sp, #0xc]
+ mov r3, #0x15
+ str r3, [sp, #0x10]
+ ldrh r2, [r0]
+ lsl r2, r2, #0x15
+ lsr r2, r2, #0x18
+ str r2, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r2, #0x10
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x28]
+ bl FUN_02018170
+_021D88DE:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD66_021D868C
+ add r0, r4, #0
+ add r0, #0xc8
+ mov r2, #0
+ ldr r0, [r0]
+ mov r1, #0x40
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldrh r1, [r0]
+ add r3, r2, #0
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #6
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x28]
+ bl FUN_020181EC
+ add r0, r4, #0
+ add r0, #0xc4
+ mov r2, #0
+ ldr r0, [r0]
+ mov r1, #0x40
+ str r1, [sp]
+ str r1, [sp, #4]
+ add r1, r0, #0
+ add r1, #0xc
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldrh r1, [r0]
+ add r3, r2, #0
+ lsl r1, r1, #0x15
+ lsr r1, r1, #0x18
+ str r1, [sp, #0x14]
+ ldrh r0, [r0, #2]
+ mov r1, #7
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [r4, #0x28]
+ bl FUN_020181EC
+ ldrh r1, [r4, #2]
+ mov r0, #1
+ tst r0, r1
+ beq _021D895C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD66_021D870C
+_021D895C:
+ ldrh r1, [r4, #2]
+ mov r0, #2
+ tst r0, r1
+ beq _021D896C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD66_021D870C
+_021D896C:
+ ldrh r1, [r4, #2]
+ mov r0, #4
+ tst r0, r1
+ beq _021D897C
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD66_021D870C
+_021D897C:
+ ldrh r1, [r4, #2]
+ mov r0, #8
+ tst r0, r1
+ beq _021D898C
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD66_021D870C
+_021D898C:
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #5
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #6
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #7
+ bl FUN_0201AC68
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ thumb_func_end MOD66_021D8838
+
+ thumb_func_start MOD66_021D89B8
+MOD66_021D89B8: ; 0x021D89B8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ mov r1, #6
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ ldr r0, [r4, #0x28]
+ mov r1, #7
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ mov r2, #0
+ ldr r0, [r4, #0x28]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r2, #0
+ ldr r0, [r4, #0x28]
+ mov r1, #7
+ add r3, r2, #0
+ bl FUN_020179E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ mov r1, #6
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r4, #0x28]
+ mov r1, #7
+ add r3, r2, #0
+ bl FUN_02018540
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #1
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #2
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #3
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #4
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #5
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #6
+ bl FUN_0201AC68
+ ldr r0, [r4, #0x28]
+ mov r1, #7
+ bl FUN_0201AC68
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D89B8
+
+ thumb_func_start MOD66_021D8AF4
+MOD66_021D8AF4: ; 0x021D8AF4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _021D8BE4 ; =0x021D981C
+ ldr r4, [r5, #0x34]
+ bl FUN_0200BE38
+ mov r1, #1
+ lsl r1, r1, #8
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r1, #1
+ lsl r1, r1, #8
+ ldr r0, [r4, r1]
+ lsl r1, r1, #4
+ bl FUN_020200D8
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #0x80
+ mov r2, #0x6c
+ bl FUN_0200C6E4
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _021D8BE8 ; =0x021D9844
+ bl FUN_0200BE38
+ mov r1, #0x41
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x41
+ lsl r0, r0, #2
+ mov r1, #2
+ ldr r0, [r4, r0]
+ lsl r1, r1, #0xc
+ bl FUN_020200D8
+ mov r0, #0x41
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r1, [r4, #0x18]
+ mov r0, #0x41
+ lsl r0, r0, #2
+ mov r2, #7
+ add r3, r1, #0
+ mul r3, r2
+ add r3, #0x19
+ lsl r1, r3, #0x10
+ ldr r3, [r4, #0x1c]
+ ldr r0, [r4, r0]
+ mul r2, r3
+ sub r2, #0x22
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _021D8BEC ; =0x021D986C
+ bl FUN_0200BE38
+ mov r1, #0x42
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [r5, #0x2c]
+ mov r0, #0x42
+ ldr r1, [r1, #0xc]
+ lsl r0, r0, #2
+ lsl r1, r1, #0x10
+ ldr r0, [r4, r0]
+ lsr r1, r1, #0x10
+ bl FUN_02020208
+ ldr r1, [r4, #0x18]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ mov r2, #7
+ add r3, r1, #0
+ mul r3, r2
+ add r3, #0x19
+ lsl r1, r3, #0x10
+ ldr r3, [r4, #0x1c]
+ ldr r0, [r4, r0]
+ mul r2, r3
+ sub r2, #0x22
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8BE4: .word 0x021D981C
+_021D8BE8: .word 0x021D9844
+_021D8BEC: .word 0x021D986C
+ thumb_func_end MOD66_021D8AF4
+
+ thumb_func_start MOD66_021D8BF0
+MOD66_021D8BF0: ; 0x021D8BF0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #8
+ bge _021D8C16
+ ldr r0, [r5, #0x28]
+ mov r1, #6
+ mov r2, #0
+ mov r3, #8
+ bl FUN_0201AEE4
+ ldr r0, [r5, #0x28]
+ mov r1, #7
+ mov r2, #0
+ mov r3, #8
+ bl FUN_0201AEE4
+ b _021D8C4A
+_021D8C16:
+ cmp r4, #0xf8
+ ldr r0, [r5, #0x28]
+ ble _021D8C34
+ mov r1, #6
+ mov r2, #0
+ mov r3, #0xf8
+ bl FUN_0201AEE4
+ ldr r0, [r5, #0x28]
+ mov r1, #7
+ mov r2, #0
+ mov r3, #0xf8
+ bl FUN_0201AEE4
+ b _021D8C4A
+_021D8C34:
+ mov r1, #6
+ mov r2, #0
+ add r3, r4, #0
+ bl FUN_0201AEE4
+ ldr r0, [r5, #0x28]
+ mov r1, #7
+ mov r2, #0
+ add r3, r4, #0
+ bl FUN_0201AEE4
+_021D8C4A:
+ cmp r6, #0x50
+ bge _021D8C68
+ ldr r0, [r5, #0x28]
+ mov r1, #6
+ mov r2, #3
+ mov r3, #0x50
+ bl FUN_0201AEE4
+ ldr r0, [r5, #0x28]
+ mov r1, #7
+ mov r2, #3
+ mov r3, #0x50
+ bl FUN_0201AEE4
+ pop {r4, r5, r6, pc}
+_021D8C68:
+ mov r3, #0x13
+ lsl r3, r3, #4
+ cmp r6, r3
+ ldr r0, [r5, #0x28]
+ ble _021D8C8A
+ mov r1, #6
+ mov r2, #3
+ bl FUN_0201AEE4
+ mov r3, #0x13
+ ldr r0, [r5, #0x28]
+ mov r1, #7
+ mov r2, #3
+ lsl r3, r3, #4
+ bl FUN_0201AEE4
+ pop {r4, r5, r6, pc}
+_021D8C8A:
+ mov r1, #6
+ mov r2, #3
+ add r3, r6, #0
+ bl FUN_0201AEE4
+ ldr r0, [r5, #0x28]
+ mov r1, #7
+ mov r2, #3
+ add r3, r6, #0
+ bl FUN_0201AEE4
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D8BF0
+
+ thumb_func_start MOD66_021D8CA4
+MOD66_021D8CA4: ; 0x021D8CA4
+ push {r4, r5}
+ ldr r5, [r0]
+ mov r4, #0
+ cmp r5, #0
+ ble _021D8CC8
+_021D8CAE:
+ ldr r3, [r0, #0xc]
+ cmp r1, r3
+ bne _021D8CC0
+ ldr r3, [r0, #0x10]
+ cmp r2, r3
+ bne _021D8CC0
+ add r0, r4, #0
+ pop {r4, r5}
+ bx lr
+_021D8CC0:
+ add r4, r4, #1
+ add r0, #0x10
+ cmp r4, r5
+ blt _021D8CAE
+_021D8CC8:
+ mov r0, #0
+ mvn r0, r0
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD66_021D8CA4
+
+ thumb_func_start MOD66_021D8CD0
+MOD66_021D8CD0: ; 0x021D8CD0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r6, r0, #0
+ ldr r0, [r6, #0x34]
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, #0xa4
+ mov r2, #0x5c
+ bl MI_CpuFill8
+ mov r0, #0
+ ldr r7, [sp, #8]
+ str r0, [sp, #4]
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ add r7, #0xa4
+ str r0, [sp, #0xc]
+ add r0, #0xb0
+ str r0, [sp, #0xc]
+_021D8CF6:
+ ldr r1, [r6, #0x2c]
+ ldr r0, [sp]
+ add r1, #0x20
+ add r4, r1, r0
+ ldrh r0, [r4, #0xa]
+ cmp r0, #0
+ beq _021D8DAA
+ ldr r1, [r4]
+ ldr r0, [r6, #0x20]
+ cmp r1, r0
+ bne _021D8D14
+ ldr r2, [r4, #4]
+ ldr r0, [r6, #0x24]
+ cmp r2, r0
+ beq _021D8D9A
+_021D8D14:
+ ldr r2, [r4, #4]
+ add r0, r7, #0
+ bl MOD66_021D8CA4
+ cmp r0, #0
+ bge _021D8D32
+ ldr r0, [sp, #8]
+ add r0, #0xa4
+ ldr r1, [r0]
+ ldr r0, [r7]
+ lsl r1, r1, #4
+ add r0, r0, #1
+ str r0, [r7]
+ ldr r0, [sp, #0xc]
+ b _021D8D36
+_021D8D32:
+ lsl r1, r0, #4
+ ldr r0, [sp, #0xc]
+_021D8D36:
+ add r5, r0, r1
+ ldr r0, [r4]
+ str r0, [r5]
+ ldr r0, [r4, #4]
+ str r0, [r5, #4]
+ ldrh r0, [r4, #8]
+ cmp r0, #3
+ bls _021D8D4A
+ mov r0, #0
+ b _021D8D50
+_021D8D4A:
+ lsl r1, r0, #1
+ ldr r0, _021D8DD4 ; =0x021D9718
+ ldrh r0, [r0, r1]
+_021D8D50:
+ strh r0, [r5, #8]
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ strb r0, [r5, #0xa]
+ mov r0, #1
+ strb r0, [r5, #0xb]
+ add r0, r6, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r2, _021D8DD8 ; =0x021D972C
+ bl FUN_0200BE38
+ str r0, [r5, #0xc]
+ ldr r2, [r5]
+ mov r1, #7
+ mul r1, r2
+ add r1, #0x19
+ lsl r1, r1, #0x10
+ ldr r3, [r5, #4]
+ mov r2, #7
+ mul r2, r3
+ sub r2, #0x22
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ ldr r0, [r5, #0xc]
+ mov r1, #2
+ bl FUN_02020310
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_020200A0
+_021D8D9A:
+ ldr r0, [sp]
+ add r0, #0xc
+ str r0, [sp]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #5
+ blt _021D8CF6
+_021D8DAA:
+ ldr r0, [sp, #8]
+ add r0, #0xa4
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D8DD0
+ sub r1, r0, #1
+ ldr r0, [sp, #8]
+ mov r2, #1
+ add r0, #0xae
+ strb r1, [r0]
+ ldr r1, [sp, #8]
+ ldr r0, _021D8DDC ; =MOD66_021D8DE0
+ add r1, #0xa4
+ bl FUN_0200CA44
+ ldr r1, [sp, #8]
+ add r1, #0xa8
+ str r1, [sp, #8]
+ str r0, [r1]
+_021D8DD0:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8DD4: .word 0x021D9718
+_021D8DD8: .word 0x021D972C
+_021D8DDC: .word MOD66_021D8DE0
+ thumb_func_end MOD66_021D8CD0
+
+ thumb_func_start MOD66_021D8DE0
+MOD66_021D8DE0: ; 0x021D8DE0
+ push {r4, lr}
+ add r4, r1, #0
+ ldrh r0, [r4, #8]
+ add r1, r0, #1
+ strh r1, [r4, #8]
+ mov r1, #0x1a
+ bl _s32_div_f
+ cmp r1, #0
+ bgt _021D8E30
+ ldrb r0, [r4, #0xb]
+ mov r1, #0
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020200A0
+ ldrb r0, [r4, #0xa]
+ mov r1, #1
+ lsl r0, r0, #4
+ add r0, r4, r0
+ ldr r0, [r0, #0x18]
+ bl FUN_020200A0
+ ldrb r0, [r4, #0xa]
+ strb r0, [r4, #0xb]
+ ldr r1, [r4]
+ ldrb r2, [r4, #0xa]
+ sub r0, r1, #1
+ add r0, r2, r0
+ bl _s32_div_f
+ strb r1, [r4, #0xa]
+ mov r0, #0x41
+ ldrh r1, [r4, #8]
+ lsl r0, r0, #2
+ cmp r1, r0
+ bls _021D8E30
+ mov r0, #1
+ strh r0, [r4, #8]
+_021D8E30:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D8DE0
+
+ thumb_func_start MOD66_021D8E34
+MOD66_021D8E34: ; 0x021D8E34
+ push {r4, r5, r6, lr}
+ ldr r6, [r0, #0x34]
+ add r0, r6, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D8E46
+ bl FUN_0200CAB4
+_021D8E46:
+ add r0, r6, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D8E6C
+ add r5, r6, #0
+_021D8E54:
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_0200BC14
+ add r0, r6, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, r0
+ blt _021D8E54
+_021D8E6C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D8E34
+
+ thumb_func_start MOD66_021D8E70
+MOD66_021D8E70: ; 0x021D8E70
+ push {r4, lr}
+ add r3, r0, #0
+ ldr r4, [r3, #0x34]
+ mov r2, #0
+ str r2, [r4, #4]
+ str r2, [r4, #8]
+ cmp r1, #0
+ bne _021D8E90
+ ldr r0, _021D8EA0 ; =MOD66_021D8EA8
+ add r1, r3, #0
+ bl FUN_0200CA44
+ mov r1, #0x43
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+_021D8E90:
+ ldr r0, _021D8EA4 ; =MOD66_021D9020
+ add r1, r3, #0
+ bl FUN_0200CA44
+ mov r1, #0x43
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D8EA0: .word MOD66_021D8EA8
+_021D8EA4: .word MOD66_021D9020
+ thumb_func_end MOD66_021D8E70
+
+ thumb_func_start MOD66_021D8EA8
+MOD66_021D8EA8: ; 0x021D8EA8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ ldr r4, [r5, #0x34]
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #4
+ bls _021D8EBA
+ b _021D9014
+_021D8EBA:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8EC6: ; jump table
+ .short _021D8ED0 - _021D8EC6 - 2 ; case 0
+ .short _021D8F04 - _021D8EC6 - 2 ; case 1
+ .short _021D8F40 - _021D8EC6 - 2 ; case 2
+ .short _021D8F7C - _021D8EC6 - 2 ; case 3
+ .short _021D8FF2 - _021D8EC6 - 2 ; case 4
+_021D8ED0:
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_02020208
+ ldr r0, _021D9018 ; =0x000005E4
+ bl FUN_020054C8
+ ldr r0, [r4, #4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_021D8F04:
+ ldr r1, [r4, #8]
+ mov r0, #0x1f
+ lsr r3, r1, #0x1f
+ lsl r2, r1, #0x1f
+ sub r2, r2, r3
+ ror r2, r0
+ add r0, r3, r2
+ beq _021D8F2C
+ add r3, r1, r3
+ ldr r1, _021D901C ; =0x021D9714
+ asr r2, r3, #1
+ ldrb r1, [r1, r2]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD66_021D868C
+ ldr r0, [r5, #0x28]
+ mov r1, #5
+ bl FUN_0201AC68
+_021D8F2C:
+ ldr r1, [r4, #8]
+ add r0, r1, #1
+ str r0, [r4, #8]
+ cmp r1, #7
+ ble _021D9014
+ ldr r0, [r4, #4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_021D8F40:
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r3, #0
+ str r3, [r5, #0x14]
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ mov r1, #0xd
+ str r0, [sp, #8]
+ mov r0, #4
+ mov r2, #2
+ bl FUN_0200E1D0
+ ldr r0, [r4, #4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_021D8F7C:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9014
+ mov r0, #1
+ strb r0, [r4, #0x10]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x28]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x28]
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_02018540
+ add r1, r4, #0
+ add r0, r5, #0
+ add r1, #0x68
+ bl MOD66_021D84C8
+ add r0, r5, #0
+ bl MOD66_021D818C
+ add r0, r5, #0
+ bl MOD66_021D8140
+ mov r3, #0
+ str r3, [r5, #0x14]
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ mov r1, #0xd
+ str r0, [sp, #8]
+ mov r0, #4
+ mov r2, #5
+ bl FUN_0200E1D0
+ ldr r0, [r4, #4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_021D8FF2:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D9014
+ mov r0, #0
+ str r0, [r4, #8]
+ str r0, [r4, #4]
+ ldrb r0, [r4, #0x14]
+ sub r0, r0, #2
+ strb r0, [r4, #0x14]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ mov r0, #0x43
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_021D9014:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9018: .word 0x000005E4
+_021D901C: .word 0x021D9714
+ thumb_func_end MOD66_021D8EA8
+
+ thumb_func_start MOD66_021D9020
+MOD66_021D9020: ; 0x021D9020
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ ldr r4, [r5, #0x34]
+ add r6, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021D903C
+ cmp r0, #1
+ beq _021D9066
+ cmp r0, #2
+ beq _021D90C4
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_021D903C:
+ mov r3, #0
+ str r3, [r5, #0x14]
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ mov r1, #0xd
+ str r0, [sp, #8]
+ mov r0, #4
+ mov r2, #2
+ bl FUN_0200E1D0
+ ldr r0, _021D90EC ; =0x00000691
+ bl FUN_020054C8
+ ldr r0, [r4, #4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_021D9066:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D90E8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x11
+ str r0, [sp, #0xc]
+ ldr r0, [r5, #0x28]
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02018540
+ add r0, r5, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD66_021D868C
+ ldr r0, [r5, #0x28]
+ mov r1, #4
+ bl FUN_0201AC68
+ ldr r0, [r5, #0x28]
+ mov r1, #5
+ bl FUN_0201AC68
+ mov r3, #0
+ str r3, [r5, #0x14]
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ mov r1, #0xd
+ str r0, [sp, #8]
+ mov r0, #4
+ mov r2, #5
+ bl FUN_0200E1D0
+ ldr r0, [r4, #4]
+ add sp, #0x10
+ add r0, r0, #1
+ str r0, [r4, #4]
+ pop {r4, r5, r6, pc}
+_021D90C4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D90E8
+ mov r0, #0
+ strb r0, [r4, #0x10]
+ str r0, [r4, #4]
+ str r0, [r4, #8]
+ ldrb r0, [r4, #0x14]
+ sub r0, r0, #2
+ strb r0, [r4, #0x14]
+ add r0, r6, #0
+ bl FUN_0200CAB4
+ mov r0, #0x43
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+_021D90E8:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D90EC: .word 0x00000691
+ thumb_func_end MOD66_021D9020
+
+ thumb_func_start MOD66_021D90F0
+MOD66_021D90F0: ; 0x021D90F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r4, [r5, #0x34]
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _021D9104
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9104:
+ add r0, r4, #0
+ add r0, #0x9c
+ ldr r0, [r0]
+ ldr r1, [r4, #0x20]
+ ldr r2, [r4, #0x18]
+ ldr r3, [r4, #0x1c]
+ bl MOD66_021D9390
+ cmp r0, #0
+ beq _021D911E
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bne _021D9122
+_021D911E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D9122:
+ ldr r1, [r5, #0x2c]
+ mov r0, #1
+ str r0, [r1, #0x10]
+ ldr r2, [r4, #0x18]
+ ldr r1, [r5, #0x2c]
+ str r2, [r1, #0x14]
+ ldr r2, [r4, #0x1c]
+ ldr r1, [r5, #0x2c]
+ str r2, [r1, #0x18]
+ ldr r2, [r4, #0x20]
+ ldr r1, [r5, #0x2c]
+ str r2, [r1, #0x1c]
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD66_021D90F0
+
+ thumb_func_start MOD66_021D913C
+MOD66_021D913C: ; 0x021D913C
+ push {r4, r5, r6, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r1, [r4, #4]
+ mov r0, #0x20
+ bl FUN_0201C24C
+ ldr r0, [r4, #4]
+ bl FUN_0200BB14
+ add r1, r4, #0
+ add r1, #0xd8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ add r1, r4, #0
+ add r1, #0xdc
+ add r2, sp, #0x30
+ ldr r5, _021D91E8 ; =0x021D98C4
+ str r0, [r1]
+ ldmia r5!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ ldr r6, _021D91EC ; =0x021D9894
+ stmia r2!, {r0, r1}
+ add r5, sp, #0x1c
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r3, #0
+ str r0, [r5]
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x1c
+ bl FUN_0200BBF0
+ ldr r5, _021D91F0 ; =0x021D98A8
+ 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
+ add r0, #0xd8
+ add r4, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r4]
+ bl FUN_0200BD20
+ add sp, #0x50
+ pop {r4, r5, r6, pc}
+ nop
+_021D91E8: .word 0x021D98C4
+_021D91EC: .word 0x021D9894
+_021D91F0: .word 0x021D98A8
+ thumb_func_end MOD66_021D913C
+
+ thumb_func_start MOD66_021D91F4
+MOD66_021D91F4: ; 0x021D91F4
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200BCE0
+ add r4, #0xd8
+ ldr r0, [r4]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ pop {r4, pc}
+ thumb_func_end MOD66_021D91F4
+
+ thumb_func_start MOD66_021D9214
+MOD66_021D9214: ; 0x021D9214
+ ldr r3, _021D921C ; =FUN_0200BC1C
+ add r0, #0xdc
+ ldr r0, [r0]
+ bx r3
+ .align 2, 0
+_021D921C: .word FUN_0200BC1C
+ thumb_func_end MOD66_021D9214
+
+ thumb_func_start MOD66_021D9220
+MOD66_021D9220: ; 0x021D9220
+ ldr r3, _021D9224 ; =FUN_0200BC30
+ bx r3
+ .align 2, 0
+_021D9224: .word FUN_0200BC30
+ thumb_func_end MOD66_021D9220
+
+ thumb_func_start MOD66_021D9228
+MOD66_021D9228: ; 0x021D9228
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ ldr r5, [sp, #0x28]
+ str r0, [sp]
+ str r1, [sp, #4]
+ add r0, r5, #0
+ mov r1, #0xc
+ str r2, [sp, #8]
+ add r4, r3, #0
+ bl FUN_02016998
+ add r7, r0, #0
+ mov r0, #0
+ strb r0, [r7]
+ strb r0, [r7, #1]
+ strb r0, [r7, #2]
+ strb r0, [r7, #3]
+ strb r0, [r7, #4]
+ strb r0, [r7, #5]
+ strb r0, [r7, #6]
+ strb r0, [r7, #7]
+ strb r0, [r7, #8]
+ strb r0, [r7, #9]
+ strb r0, [r7, #0xa]
+ strb r0, [r7, #0xb]
+ strh r4, [r7]
+ ldrh r2, [r7]
+ mov r1, #0x1c
+ add r0, r5, #0
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [r7, #8]
+ ldrh r3, [r7]
+ mov r2, #0x1c
+ mov r1, #0
+ mul r2, r3
+ bl Call_FillMemWithValue
+ ldrh r0, [r7]
+ mov r6, #0
+ ldr r5, _021D9344 ; =0x021D990C
+ cmp r0, #0
+ ble _021D933E
+ str r6, [sp, #0xc]
+_021D9282:
+ ldr r0, [r7, #8]
+ ldr r1, [sp, #0xc]
+ ldr r2, [r5]
+ add r4, r0, r1
+ str r2, [r0, r1]
+ ldrb r0, [r5, #8]
+ ldr r1, [sp, #4]
+ ldr r2, _021D9348 ; =0x021D98E4
+ strb r0, [r4, #8]
+ ldrb r0, [r5, #9]
+ strb r0, [r4, #9]
+ ldrh r0, [r5, #0xa]
+ strh r0, [r4, #0xa]
+ ldr r0, [r5, #0xc]
+ str r0, [r4, #0xc]
+ ldr r0, [r5, #0x10]
+ str r0, [r4, #0x10]
+ ldr r0, [sp, #8]
+ ldrb r0, [r0, r6]
+ str r0, [r4, #0x14]
+ ldr r0, [sp]
+ bl FUN_0200BE38
+ str r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [r4, #0x14]
+ cmp r1, #0
+ beq _021D92CC
+ ldrb r2, [r4, #9]
+ ldr r0, [r4, #0x18]
+ add r2, r2, #5
+ add r1, r2, r1
+ bl FUN_02020248
+ b _021D92E2
+_021D92CC:
+ ldrh r1, [r4, #0xa]
+ ldr r0, _021D934C ; =0x0000FFFF
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _021D92E2
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_020200A0
+_021D92E2:
+ ldrb r0, [r4, #8]
+ cmp r0, #0
+ beq _021D92FA
+ lsl r0, r0, #0xc
+ bl _fflt
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ b _021D9308
+_021D92FA:
+ lsl r0, r0, #0xc
+ bl _fflt
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+_021D9308:
+ bl _ffix
+ add r1, r0, #0
+ ldr r0, [r4, #0x18]
+ bl FUN_020201E4
+ ldr r1, [r4, #0xc]
+ ldr r2, [r4, #0x10]
+ add r1, #0x19
+ sub r2, #0x22
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r4, #0x18]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ ldr r0, [sp, #0xc]
+ add r5, #0x14
+ add r0, #0x1c
+ str r0, [sp, #0xc]
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldrh r0, [r7]
+ cmp r6, r0
+ blt _021D9282
+_021D933E:
+ add r0, r7, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9344: .word 0x021D990C
+_021D9348: .word 0x021D98E4
+_021D934C: .word 0x0000FFFF
+ thumb_func_end MOD66_021D9228
+
+ thumb_func_start MOD66_021D9350
+MOD66_021D9350: ; 0x021D9350
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrh r0, [r5]
+ mov r6, #0
+ cmp r0, #0
+ ble _021D9380
+ add r4, r6, #0
+_021D935E:
+ ldr r0, [r5, #8]
+ mov r1, #0
+ add r7, r0, r4
+ ldr r0, [r7, #0x18]
+ add r2, r1, #0
+ bl FUN_0202008C
+ ldr r0, [r7, #0x18]
+ bl FUN_0201FFC8
+ add r0, r6, #1
+ lsl r0, r0, #0x10
+ asr r6, r0, #0x10
+ ldrh r0, [r5]
+ add r4, #0x1c
+ cmp r6, r0
+ blt _021D935E
+_021D9380:
+ ldr r0, [r5, #8]
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D9350
+
+ thumb_func_start MOD66_021D9390
+MOD66_021D9390: ; 0x021D9390
+ push {r3, r4, r5, r6}
+ ldrh r5, [r0]
+ mov r4, #0
+ cmp r5, #0
+ ble _021D93EC
+ ldr r0, [r0, #8]
+_021D939C:
+ ldr r6, [r0]
+ cmp r6, r1
+ bne _021D93E0
+ ldrh r6, [r0, #0xa]
+ cmp r6, #3
+ bhi _021D93E0
+ add r6, r6, r6
+ add r6, pc
+ ldrh r6, [r6, #6]
+ lsl r6, r6, #0x10
+ asr r6, r6, #0x10
+ add pc, r6
+_021D93B4: ; jump table
+ .short _021D93BC - _021D93B4 - 2 ; case 0
+ .short _021D93C0 - _021D93B4 - 2 ; case 1
+ .short _021D93CC - _021D93B4 - 2 ; case 2
+ .short _021D93D8 - _021D93B4 - 2 ; case 3
+_021D93BC:
+ pop {r3, r4, r5, r6}
+ bx lr
+_021D93C0:
+ cmp r2, #9
+ bne _021D93E0
+ cmp r3, #0x1c
+ bne _021D93E0
+ pop {r3, r4, r5, r6}
+ bx lr
+_021D93CC:
+ cmp r2, #0x1a
+ bne _021D93E0
+ cmp r3, #0x12
+ bne _021D93E0
+ pop {r3, r4, r5, r6}
+ bx lr
+_021D93D8:
+ cmp r2, #0x1a
+ bne _021D93E0
+ cmp r3, #0x11
+ beq _021D93EE
+_021D93E0:
+ add r4, r4, #1
+ lsl r4, r4, #0x10
+ asr r4, r4, #0x10
+ add r0, #0x1c
+ cmp r4, r5
+ blt _021D939C
+_021D93EC:
+ mov r0, #0
+_021D93EE:
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD66_021D9390
+
+ thumb_func_start MOD66_021D93F4
+MOD66_021D93F4: ; 0x021D93F4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bne _021D93FE
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D93FE:
+ bl MOD66_021D9390
+ add r4, r0, #0
+ beq _021D940C
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _021D9426
+_021D940C:
+ ldr r3, [r5, #4]
+ cmp r3, #0
+ beq _021D9420
+ ldrb r1, [r3, #9]
+ ldr r0, [r3, #0x18]
+ add r2, r1, #5
+ ldr r1, [r3, #0x14]
+ add r1, r2, r1
+ bl FUN_02020248
+_021D9420:
+ mov r0, #0
+ str r0, [r5, #4]
+ pop {r3, r4, r5, pc}
+_021D9426:
+ ldr r1, [r5, #4]
+ cmp r1, #0
+ bne _021D9434
+ mov r0, #0
+ strb r0, [r5, #2]
+ strb r0, [r5, #3]
+ b _021D9450
+_021D9434:
+ ldrh r2, [r4, #0xa]
+ ldr r0, _021D9458 ; =0x0000FFFE
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r0, #1
+ bhi _021D9450
+ ldrb r2, [r1, #9]
+ ldr r0, [r1, #0x18]
+ ldr r1, [r1, #0x14]
+ add r2, r2, #5
+ add r1, r2, r1
+ bl FUN_02020248
+_021D9450:
+ str r4, [r5, #4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D9458: .word 0x0000FFFE
+ thumb_func_end MOD66_021D93F4
+
+ thumb_func_start MOD66_021D945C
+MOD66_021D945C: ; 0x021D945C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r3, [r4, #4]
+ cmp r3, #0
+ beq _021D94A0
+ cmp r1, #1
+ bne _021D94A0
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ ldr r0, [r3, #0x18]
+ bne _021D947C
+ ldrb r1, [r3, #9]
+ add r1, #8
+ bl FUN_02020248
+ b _021D9488
+_021D947C:
+ ldrb r1, [r3, #9]
+ add r2, r1, #5
+ ldr r1, [r3, #0x14]
+ add r1, r2, r1
+ bl FUN_02020248
+_021D9488:
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ ldrb r0, [r4, #2]
+ cmp r0, #0x10
+ bne _021D94A0
+ mov r0, #0
+ strb r0, [r4, #2]
+ ldrb r1, [r4, #3]
+ mov r0, #1
+ eor r0, r1
+ strb r0, [r4, #3]
+_021D94A0:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D945C
+
+ thumb_func_start MOD66_021D94A4
+MOD66_021D94A4: ; 0x021D94A4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x4c
+ add r5, r0, #0
+ add r0, sp, #4
+ add r4, r1, #0
+ bl FS_InitFile
+ add r0, sp, #4
+ add r1, r5, #0
+ bl FS_OpenFile
+ cmp r0, #0
+ bne _021D94C8
+ bl ErrorHandling
+ add sp, #0x4c
+ mov r0, #0
+ pop {r4, r5, r6, r7, pc}
+_021D94C8:
+ add r0, sp, #4
+ add r1, sp, #0
+ mov r2, #4
+ bl FS_ReadFile
+ cmp r0, #0
+ bge _021D94DA
+ bl ErrorHandling
+_021D94DA:
+ add r0, r4, #0
+ mov r1, #8
+ bl FUN_02016998
+ add r6, r0, #0
+ mov r0, #0
+ strb r0, [r6]
+ strb r0, [r6, #1]
+ strb r0, [r6, #2]
+ strb r0, [r6, #3]
+ strb r0, [r6, #4]
+ strb r0, [r6, #5]
+ strb r0, [r6, #6]
+ strb r0, [r6, #7]
+ ldr r2, [sp]
+ mov r1, #0x18
+ add r0, r4, #0
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [r6, #4]
+ ldr r3, [sp]
+ mov r2, #0x18
+ mov r1, #0
+ mul r2, r3
+ bl Call_FillMemWithValue
+ ldr r0, [sp]
+ mov r4, #0
+ str r0, [r6]
+ cmp r0, #0
+ ble _021D9536
+ add r5, r4, #0
+_021D951C:
+ ldr r0, [r6, #4]
+ mov r2, #0x18
+ add r7, r0, r5
+ add r0, sp, #4
+ add r1, r7, #0
+ bl FS_ReadFile
+ strh r4, [r7, #0x16]
+ ldr r0, [r6]
+ add r4, r4, #1
+ add r5, #0x18
+ cmp r4, r0
+ blt _021D951C
+_021D9536:
+ add r0, sp, #4
+ bl FS_CloseFile
+ add r0, r6, #0
+ add sp, #0x4c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D94A4
+
+ thumb_func_start MOD66_021D9544
+MOD66_021D9544: ; 0x021D9544
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD66_021D9544
+
+ thumb_func_start MOD66_021D9558
+MOD66_021D9558: ; 0x021D9558
+ push {r3, r4, r5, r6}
+ ldr r6, [r0]
+ mov r5, #0
+ cmp r6, #0
+ ble _021D9588
+ ldr r0, [r0, #4]
+_021D9564:
+ ldrh r4, [r0]
+ cmp r4, r1
+ bne _021D9580
+ ldrh r4, [r0, #2]
+ cmp r4, r2
+ bne _021D9580
+ ldrh r1, [r0, #0x14]
+ cmp r1, #0
+ beq _021D958A
+ tst r1, r3
+ bne _021D958A
+ mov r0, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+_021D9580:
+ add r5, r5, #1
+ add r0, #0x18
+ cmp r5, r6
+ blt _021D9564
+_021D9588:
+ mov r0, #0
+_021D958A:
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD66_021D9558
+
+ .section .rodata
+ ; 0x021D9590
+ .incbin "baserom.nds", 0x2BE4B0, 0x50C
+
+ .section .data
+ ; 0x021D9AA0
+ .incbin "baserom.nds", 0x2BE9C0, 0xA0
diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s
new file mode 100644
index 00000000..c7484f37
--- /dev/null
+++ b/arm9/modules/67/asm/module_67.s
@@ -0,0 +1,4337 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD67_021D74E0
+MOD67_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, 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 r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _021D75C0 ; =0xFFFFE0FF
+ ldr r3, _021D75C4 ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ add r0, #0x50
+ and r1, r2
+ str r1, [r3]
+ mov r1, #0
+ strh r1, [r0]
+ add r3, #0x50
+ strh r1, [r3]
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ mov r2, #2
+ mov r0, #3
+ mov r1, #0x2a
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ add r0, r4, #0
+ bl FUN_0200628C
+ add r5, r0, #0
+ ldr r1, _021D75C8 ; =0x00001068
+ add r0, r4, #0
+ mov r2, #0x2a
+ bl FUN_02006268
+ ldr r2, _021D75C8 ; =0x00001068
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x2a
+ bl FUN_02016B94
+ str r0, [r4]
+ str r5, [r4, #0x4c]
+ add r0, r5, #0
+ bl FUN_020289A4
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ bl FUN_020238F4
+ str r0, [r4, #0x48]
+ mov r0, #0
+ mov r1, #0x2a
+ bl FUN_02079A70
+ mov r0, #0
+ mov r1, #0x2a
+ bl FUN_02002C84
+ bl MOD67_021D7680
+ ldr r0, [r4]
+ bl MOD67_021D76A0
+ add r0, r4, #0
+ bl MOD67_021D77B0
+ add r0, r4, #0
+ bl MOD67_021D7880
+ add r0, r4, #0
+ bl MOD67_021D7D60
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD67_021D7D9C
+ add r0, r4, #0
+ bl MOD67_021D7B84
+ ldr r0, _021D75CC ; =MOD67_021D7660
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_0201E788
+ bl FUN_02033E74
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r1, #0
+ mov r0, #0x43
+ add r2, r1, #0
+ bl FUN_0200433C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D75C0: .word 0xFFFFE0FF
+_021D75C4: .word 0x04001000
+_021D75C8: .word 0x00001068
+_021D75CC: .word MOD67_021D7660
+ thumb_func_end MOD67_021D74E0
+
+ thumb_func_start MOD67_021D75D0
+MOD67_021D75D0: ; 0x021D75D0
+ push {r4, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ cmp r1, #4
+ bhi _021D7620
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D75EA: ; jump table
+ .short _021D75F4 - _021D75EA - 2 ; case 0
+ .short _021D75FC - _021D75EA - 2 ; case 1
+ .short _021D7604 - _021D75EA - 2 ; case 2
+ .short _021D760C - _021D75EA - 2 ; case 3
+ .short _021D7614 - _021D75EA - 2 ; case 4
+_021D75F4:
+ bl MOD67_021D78C4
+ str r0, [r4]
+ b _021D7620
+_021D75FC:
+ bl MOD67_021D78D8
+ str r0, [r4]
+ b _021D7620
+_021D7604:
+ bl MOD67_021D795C
+ str r0, [r4]
+ b _021D7620
+_021D760C:
+ bl MOD67_021D7A38
+ str r0, [r4]
+ b _021D7620
+_021D7614:
+ bl MOD67_021D7AA8
+ cmp r0, #1
+ bne _021D7620
+ mov r0, #1
+ pop {r4, pc}
+_021D7620:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD67_021D75D0
+
+ thumb_func_start MOD67_021D7624
+MOD67_021D7624: ; 0x021D7624
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ add r0, r4, #0
+ bl MOD67_021D7D84
+ ldr r0, [r4]
+ bl MOD67_021D777C
+ add r0, r4, #0
+ bl MOD67_021D78AC
+ mov r0, #0
+ bl FUN_02002CC0
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x2a
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D7624
+
+ thumb_func_start MOD67_021D7660
+MOD67_021D7660: ; 0x021D7660
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_0201AB60
+ ldr r3, _021D7678 ; =0x027E0000
+ ldr r1, _021D767C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021D7678: .word 0x027E0000
+_021D767C: .word 0x00003FF8
+ thumb_func_end MOD67_021D7660
+
+ thumb_func_start MOD67_021D7680
+MOD67_021D7680: ; 0x021D7680
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D769C ; =0x021D97B0
+ add r3, sp, #0
+ mov r2, #5
+_021D768A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D768A
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D769C: .word 0x021D97B0
+ thumb_func_end MOD67_021D7680
+
+ thumb_func_start MOD67_021D76A0
+MOD67_021D76A0: ; 0x021D76A0
+ push {r3, r4, r5, lr}
+ sub sp, #0x80
+ ldr r5, _021D7768 ; =0x021D9730
+ 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, _021D776C ; =0x021D975C
+ 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, _021D7770 ; =0x021D9740
+ 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, _021D7774 ; =0x021D9778
+ 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
+ ldr r5, _021D7778 ; =0x021D9794
+ 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
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x2a
+ bl FUN_02017F18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x2a
+ bl FUN_02017F18
+ add sp, #0x80
+ pop {r3, r4, r5, pc}
+ nop
+_021D7768: .word 0x021D9730
+_021D776C: .word 0x021D975C
+_021D7770: .word 0x021D9740
+_021D7774: .word 0x021D9778
+_021D7778: .word 0x021D9794
+ thumb_func_end MOD67_021D76A0
+
+ thumb_func_start MOD67_021D777C
+MOD67_021D777C: ; 0x021D777C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_0201E6D8
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ mov r0, #0x2a
+ add r1, r4, #0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D777C
+
+ thumb_func_start MOD67_021D77B0
+MOD67_021D77B0: ; 0x021D77B0
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #0x48]
+ bl FUN_020239CC
+ cmp r0, #0
+ bne _021D7802
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x2a
+ str r0, [sp, #0xc]
+ mov r1, #2
+ ldr r2, [r4]
+ mov r0, #0x50
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x2a
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x50
+ mov r3, #2
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x2a
+ str r0, [sp, #4]
+ mov r0, #0x50
+ mov r1, #4
+ add r3, r2, #0
+ bl FUN_02006930
+ b _021D7844
+_021D7802:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x2a
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x50
+ mov r1, #3
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x2a
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x50
+ mov r1, #1
+ mov r3, #2
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x2a
+ str r0, [sp, #4]
+ mov r0, #0x50
+ mov r1, #5
+ add r3, r2, #0
+ bl FUN_02006930
+_021D7844:
+ ldr r0, [r4]
+ mov r1, #2
+ bl FUN_0201886C
+ add r1, r4, #0
+ mov r2, #2
+ add r1, #0x5c
+ lsl r2, r2, #0xa
+ bl MIi_CpuCopy16
+ ldr r0, [r4]
+ add r4, #0x5c
+ mov r3, #2
+ mov r1, #3
+ add r2, r4, #0
+ lsl r3, r3, #0xa
+ bl FUN_02017DFC
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x2a
+ bl FUN_02002ED0
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ add sp, #0x10
+ pop {r4, pc}
+ thumb_func_end MOD67_021D77B0
+
+ thumb_func_start MOD67_021D7880
+MOD67_021D7880: ; 0x021D7880
+ push {r4, lr}
+ ldr r2, _021D78A8 ; =0x00000142
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x2a
+ bl FUN_0200A86C
+ str r0, [r4, #0x50]
+ mov r0, #0x2a
+ bl FUN_0200AA80
+ str r0, [r4, #0x54]
+ mov r0, #0x80
+ mov r1, #0x2a
+ bl FUN_020219F4
+ str r0, [r4, #0x58]
+ pop {r4, pc}
+ nop
+_021D78A8: .word 0x00000142
+ thumb_func_end MOD67_021D7880
+
+ thumb_func_start MOD67_021D78AC
+MOD67_021D78AC: ; 0x021D78AC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x54]
+ bl FUN_0200AB18
+ ldr r0, [r4, #0x58]
+ bl FUN_02021A20
+ pop {r4, pc}
+ thumb_func_end MOD67_021D78AC
+
+ thumb_func_start MOD67_021D78C4
+MOD67_021D78C4: ; 0x021D78C4
+ push {r3, lr}
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D78D2
+ mov r0, #1
+ pop {r3, pc}
+_021D78D2:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D78C4
+
+ thumb_func_start MOD67_021D78D8
+MOD67_021D78D8: ; 0x021D78D8
+ push {r3, lr}
+ ldr r1, _021D7954 ; =0x021C48B8
+ ldr r3, [r1, #0x48]
+ mov r1, #0x20
+ add r2, r3, #0
+ tst r2, r1
+ beq _021D78F8
+ sub r1, #0x21
+ bl MOD67_021D7B1C
+ cmp r0, #1
+ bne _021D78F4
+ mov r0, #2
+ pop {r3, pc}
+_021D78F4:
+ mov r0, #1
+ pop {r3, pc}
+_021D78F8:
+ mov r1, #0x11
+ tst r1, r3
+ beq _021D7910
+ mov r1, #1
+ bl MOD67_021D7B1C
+ cmp r0, #1
+ bne _021D790C
+ mov r0, #3
+ pop {r3, pc}
+_021D790C:
+ mov r0, #1
+ pop {r3, pc}
+_021D7910:
+ mov r2, #2
+ add r1, r3, #0
+ tst r1, r2
+ beq _021D793A
+ ldr r1, _021D7958 ; =0x0000105C
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ beq _021D792E
+ sub r1, r2, #3
+ bl MOD67_021D7B1C
+ cmp r0, #1
+ bne _021D793A
+ mov r0, #2
+ pop {r3, pc}
+_021D792E:
+ mov r0, #1
+ mov r1, #0x2a
+ bl FUN_02079A70
+ mov r0, #4
+ pop {r3, pc}
+_021D793A:
+ ldr r0, _021D7954 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #8
+ tst r0, r1
+ beq _021D7950
+ mov r0, #1
+ mov r1, #0x2a
+ bl FUN_02079A70
+ mov r0, #4
+ pop {r3, pc}
+_021D7950:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+_021D7954: .word 0x021C48B8
+_021D7958: .word 0x0000105C
+ thumb_func_end MOD67_021D78D8
+
+ thumb_func_start MOD67_021D795C
+MOD67_021D795C: ; 0x021D795C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ ldr r1, _021D7A18 ; =0x0000105E
+ add r4, r0, #0
+ ldrsb r1, [r4, r1]
+ cmp r1, #0
+ beq _021D7970
+ cmp r1, #1
+ beq _021D79AC
+ b _021D7A12
+_021D7970:
+ bl MOD67_021D7AB0
+ ldr r2, _021D7A1C ; =0x00001063
+ add r0, r4, #0
+ ldrb r1, [r4, r2]
+ sub r2, r2, #7
+ ldrsb r2, [r4, r2]
+ sub r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl MOD67_021D7B5C
+ ldr r1, _021D7A20 ; =0x0000105C
+ ldrsb r0, [r4, r1]
+ sub r0, r0, #1
+ strb r0, [r4, r1]
+ add r1, r1, #4
+ ldrsb r2, [r4, r1]
+ mov r1, #1
+ add r0, r4, #0
+ eor r1, r2
+ bl MOD67_021D7D9C
+ ldr r0, _021D7A18 ; =0x0000105E
+ mov r1, #1
+ strb r1, [r4, r0]
+ ldr r0, _021D7A24 ; =0x00000691
+ bl FUN_020054C8
+ b _021D7A12
+_021D79AC:
+ bl MOD67_021D7C30
+ cmp r0, #1
+ bne _021D7A12
+ ldr r1, _021D7A28 ; =0x0000105F
+ mov r3, #0
+ strb r3, [r4, r1]
+ sub r0, r1, #1
+ strb r3, [r4, r0]
+ add r0, r1, #1
+ ldrsb r2, [r4, r0]
+ mov r0, #1
+ eor r2, r0
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ ldr r2, _021D7A2C ; =0x0000085C
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r1, r1, #3
+ ldrb r1, [r4, r1]
+ ldr r0, [r4]
+ add r2, r4, r2
+ bl FUN_02018148
+ mov r3, #0
+ add r2, r4, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r1, _021D7A30 ; =0x00001061
+ ldr r0, [r4]
+ ldrb r1, [r4, r1]
+ add r2, #0x5c
+ bl FUN_02018148
+ ldr r1, _021D7A34 ; =0x00001062
+ ldr r0, [r4]
+ ldrb r1, [r4, r1]
+ bl FUN_0201AC68
+ ldr r1, _021D7A30 ; =0x00001061
+ ldr r0, [r4]
+ ldrb r1, [r4, r1]
+ bl FUN_0201AC68
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_021D7A12:
+ mov r0, #2
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D7A18: .word 0x0000105E
+_021D7A1C: .word 0x00001063
+_021D7A20: .word 0x0000105C
+_021D7A24: .word 0x00000691
+_021D7A28: .word 0x0000105F
+_021D7A2C: .word 0x0000085C
+_021D7A30: .word 0x00001061
+_021D7A34: .word 0x00001062
+ thumb_func_end MOD67_021D795C
+
+ thumb_func_start MOD67_021D7A38
+MOD67_021D7A38: ; 0x021D7A38
+ push {r4, lr}
+ ldr r1, _021D7A98 ; =0x0000105E
+ add r4, r0, #0
+ ldrsb r1, [r4, r1]
+ cmp r1, #0
+ beq _021D7A4A
+ cmp r1, #1
+ beq _021D7A72
+ b _021D7A92
+_021D7A4A:
+ bl MOD67_021D7AB0
+ ldr r1, _021D7A9C ; =0x0000105C
+ ldrsb r0, [r4, r1]
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ add r1, r1, #4
+ ldrsb r2, [r4, r1]
+ mov r1, #1
+ add r0, r4, #0
+ eor r1, r2
+ bl MOD67_021D7D9C
+ ldr r0, _021D7A98 ; =0x0000105E
+ mov r1, #1
+ strb r1, [r4, r0]
+ ldr r0, _021D7AA0 ; =0x00000691
+ bl FUN_020054C8
+ b _021D7A92
+_021D7A72:
+ bl MOD67_021D7CBC
+ cmp r0, #1
+ bne _021D7A92
+ ldr r1, _021D7AA4 ; =0x0000105F
+ mov r2, #0
+ strb r2, [r4, r1]
+ sub r0, r1, #1
+ strb r2, [r4, r0]
+ add r0, r1, #1
+ ldrsb r2, [r4, r0]
+ mov r0, #1
+ add r1, r1, #1
+ eor r2, r0
+ strb r2, [r4, r1]
+ pop {r4, pc}
+_021D7A92:
+ mov r0, #3
+ pop {r4, pc}
+ nop
+_021D7A98: .word 0x0000105E
+_021D7A9C: .word 0x0000105C
+_021D7AA0: .word 0x00000691
+_021D7AA4: .word 0x0000105F
+ thumb_func_end MOD67_021D7A38
+
+ thumb_func_start MOD67_021D7AA8
+MOD67_021D7AA8: ; 0x021D7AA8
+ ldr r3, _021D7AAC ; =FUN_0200E308
+ bx r3
+ .align 2, 0
+_021D7AAC: .word FUN_0200E308
+ thumb_func_end MOD67_021D7AA8
+
+ thumb_func_start MOD67_021D7AB0
+MOD67_021D7AB0: ; 0x021D7AB0
+ ldr r2, _021D7AEC ; =0x00001060
+ ldrsb r1, [r0, r2]
+ cmp r1, #0
+ bne _021D7AD2
+ mov r3, #0
+ add r1, r2, #2
+ strb r3, [r0, r1]
+ mov r3, #2
+ add r1, r2, #1
+ strb r3, [r0, r1]
+ mov r3, #1
+ add r1, r2, #4
+ strb r3, [r0, r1]
+ mov r3, #3
+ add r1, r2, #3
+ strb r3, [r0, r1]
+ bx lr
+_021D7AD2:
+ mov r3, #1
+ add r1, r2, #2
+ strb r3, [r0, r1]
+ mov r3, #3
+ add r1, r2, #1
+ strb r3, [r0, r1]
+ mov r3, #0
+ add r1, r2, #4
+ strb r3, [r0, r1]
+ mov r3, #2
+ add r1, r2, #3
+ strb r3, [r0, r1]
+ bx lr
+ .align 2, 0
+_021D7AEC: .word 0x00001060
+ thumb_func_end MOD67_021D7AB0
+
+ thumb_func_start MOD67_021D7AF0
+MOD67_021D7AF0: ; 0x021D7AF0
+ push {r3, lr}
+ ldr r0, [r0, #0x44]
+ add r3, r1, #0
+ add r1, sp, #0
+ mov r2, #0
+ bl FUN_02029584
+ ldr r1, [sp]
+ lsl r0, r1, #0x19
+ lsr r0, r0, #0x19
+ bne _021D7B16
+ lsl r0, r1, #0x15
+ lsr r0, r0, #0x1c
+ bne _021D7B16
+ lsl r0, r1, #0xd
+ lsr r0, r0, #0x1b
+ bne _021D7B16
+ mov r0, #0
+ pop {r3, pc}
+_021D7B16:
+ mov r0, #1
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D7AF0
+
+ thumb_func_start MOD67_021D7B1C
+MOD67_021D7B1C: ; 0x021D7B1C
+ push {r3, lr}
+ cmp r1, #1
+ ldr r1, _021D7B58 ; =0x0000105C
+ bne _021D7B3C
+ ldrsb r1, [r0, r1]
+ cmp r1, #9
+ beq _021D7B54
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD67_021D7AF0
+ cmp r0, #1
+ bne _021D7B54
+ mov r0, #1
+ pop {r3, pc}
+_021D7B3C:
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ beq _021D7B54
+ sub r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl MOD67_021D7AF0
+ cmp r0, #1
+ bne _021D7B54
+ mov r0, #1
+ pop {r3, pc}
+_021D7B54:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021D7B58: .word 0x0000105C
+ thumb_func_end MOD67_021D7B1C
+
+ thumb_func_start MOD67_021D7B5C
+MOD67_021D7B5C: ; 0x021D7B5C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r2, [sp, #8]
+ mov r2, #0
+ ldr r0, [r5]
+ add r3, r2, #0
+ add r4, r1, #0
+ bl FUN_020186B4
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl FUN_0201AC68
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D7B5C
+
+ thumb_func_start MOD67_021D7B84
+MOD67_021D7B84: ; 0x021D7B84
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0201886C
+ ldr r2, _021D7B9C ; =0x0000085C
+ add r1, r4, r2
+ sub r2, #0x5c
+ bl MIi_CpuCopy16
+ pop {r4, pc}
+ .align 2, 0
+_021D7B9C: .word 0x0000085C
+ thumb_func_end MOD67_021D7B84
+
+ thumb_func_start MOD67_021D7BA0
+MOD67_021D7BA0: ; 0x021D7BA0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r2, [sp, #0x10]
+ add r6, r1, #0
+ ldr r1, [sp, #0x10]
+ add r7, r0, #0
+ lsl r1, r1, #0x18
+ ldr r0, [r7]
+ lsr r1, r1, #0x18
+ add r5, r3, #0
+ bl FUN_0201886C
+ str r0, [sp, #0x14]
+ ldr r1, _021D7C2C ; =0x021D97D8
+ lsl r0, r5, #5
+ add r5, r1, r0
+ ldr r0, [sp, #0x10]
+ mov r4, #0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0x18]
+_021D7BCA:
+ ldrb r0, [r5, r4]
+ cmp r0, #0xff
+ bne _021D7BF0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x20
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r3, r4, #0x18
+ ldr r0, [r7]
+ ldr r1, [sp, #0x18]
+ mov r2, #0
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ b _021D7C10
+_021D7BF0:
+ ldr r0, [sp, #0x14]
+ lsl r1, r4, #1
+ mov r2, #0
+ add r3, r0, r1
+_021D7BF8:
+ ldrb r0, [r5, r4]
+ lsl r1, r2, #5
+ add r0, r1, r0
+ lsl r0, r0, #1
+ ldrh r0, [r6, r0]
+ lsl r1, r1, #1
+ strh r0, [r3, r1]
+ add r0, r2, #1
+ lsl r0, r0, #0x10
+ lsr r2, r0, #0x10
+ cmp r2, #0x20
+ blo _021D7BF8
+_021D7C10:
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0x20
+ blo _021D7BCA
+ ldr r1, [sp, #0x10]
+ ldr r0, [r7]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ bl FUN_0201AC68
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D7C2C: .word 0x021D97D8
+ thumb_func_end MOD67_021D7BA0
+
+ thumb_func_start MOD67_021D7C30
+MOD67_021D7C30: ; 0x021D7C30
+ push {r4, lr}
+ ldr r3, _021D7CA8 ; =0x00001062
+ add r4, r0, #0
+ ldrb r2, [r4, r3]
+ sub r3, r3, #3
+ ldr r1, _021D7CAC ; =0x0000085C
+ ldrsb r3, [r4, r3]
+ add r1, r4, r1
+ bl MOD67_021D7BA0
+ ldr r3, _021D7CB0 ; =0x00001061
+ add r1, r4, #0
+ ldrb r2, [r4, r3]
+ sub r3, r3, #2
+ ldrsb r3, [r4, r3]
+ add r0, r4, #0
+ add r1, #0x5c
+ bl MOD67_021D7BA0
+ ldr r2, _021D7CB0 ; =0x00001061
+ add r0, r4, #0
+ ldrb r1, [r4, r2]
+ sub r2, r2, #5
+ ldrsb r2, [r4, r2]
+ add r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ bl MOD67_021D7B5C
+ ldr r0, _021D7CB4 ; =0x0000105F
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldrsb r1, [r4, r0]
+ cmp r1, #9
+ bne _021D7CA4
+ add r0, r0, #5
+ ldrb r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, _021D7CB8 ; =0x00001063
+ mov r1, #1
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ ldr r0, _021D7CA8 ; =0x00001062
+ mov r1, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ ldr r0, _021D7CB0 ; =0x00001061
+ mov r1, #3
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ mov r0, #1
+ pop {r4, pc}
+_021D7CA4:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D7CA8: .word 0x00001062
+_021D7CAC: .word 0x0000085C
+_021D7CB0: .word 0x00001061
+_021D7CB4: .word 0x0000105F
+_021D7CB8: .word 0x00001063
+ thumb_func_end MOD67_021D7C30
+
+ thumb_func_start MOD67_021D7CBC
+MOD67_021D7CBC: ; 0x021D7CBC
+ push {r3, r4, r5, lr}
+ ldr r3, _021D7D48 ; =0x00001064
+ add r4, r0, #0
+ ldrb r2, [r4, r3]
+ sub r3, r3, #5
+ ldrsb r5, [r4, r3]
+ mov r3, #8
+ ldr r1, _021D7D4C ; =0x0000085C
+ sub r3, r3, r5
+ lsl r3, r3, #0x10
+ add r1, r4, r1
+ lsr r3, r3, #0x10
+ bl MOD67_021D7BA0
+ ldr r3, _021D7D50 ; =0x00001063
+ add r1, r4, #0
+ ldrb r2, [r4, r3]
+ sub r3, r3, #4
+ ldrsb r5, [r4, r3]
+ mov r3, #8
+ add r0, r4, #0
+ sub r3, r3, r5
+ lsl r3, r3, #0x10
+ add r1, #0x5c
+ lsr r3, r3, #0x10
+ bl MOD67_021D7BA0
+ ldr r2, _021D7D50 ; =0x00001063
+ add r0, r4, #0
+ ldrb r1, [r4, r2]
+ sub r2, r2, #7
+ ldrb r2, [r4, r2]
+ bl MOD67_021D7B5C
+ ldr r0, _021D7D54 ; =0x0000105F
+ ldrsb r1, [r4, r0]
+ cmp r1, #1
+ bne _021D7D30
+ add r0, r0, #5
+ ldrb r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020178BC
+ ldr r0, _021D7D50 ; =0x00001063
+ mov r1, #1
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ ldr r0, _021D7D58 ; =0x00001062
+ mov r1, #2
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+ ldr r0, _021D7D5C ; =0x00001061
+ mov r1, #3
+ ldrb r0, [r4, r0]
+ bl FUN_020178BC
+_021D7D30:
+ ldr r0, _021D7D54 ; =0x0000105F
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ ldrsb r0, [r4, r0]
+ cmp r0, #9
+ bne _021D7D42
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D7D42:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D7D48: .word 0x00001064
+_021D7D4C: .word 0x0000085C
+_021D7D50: .word 0x00001063
+_021D7D54: .word 0x0000105F
+_021D7D58: .word 0x00001062
+_021D7D5C: .word 0x00001061
+ thumb_func_end MOD67_021D7CBC
+
+ thumb_func_start MOD67_021D7D60
+MOD67_021D7D60: ; 0x021D7D60
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r4, _021D7D80 ; =0x021D98F8
+ mov r6, #0
+ add r5, r7, #4
+_021D7D6A:
+ ldr r0, [r7]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #4
+ blo _021D7D6A
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7D80: .word 0x021D98F8
+ thumb_func_end MOD67_021D7D60
+
+ thumb_func_start MOD67_021D7D84
+MOD67_021D7D84: ; 0x021D7D84
+ push {r3, r4, r5, lr}
+ mov r4, #0
+ add r5, r0, #4
+_021D7D8A:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blo _021D7D8A
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D7D84
+
+ thumb_func_start MOD67_021D7D9C
+MOD67_021D7D9C: ; 0x021D7D9C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ cmp r1, #0
+ bne _021D7DAC
+ add r4, r5, #0
+ add r6, r5, #4
+ add r4, #0x14
+ b _021D7DB4
+_021D7DAC:
+ add r6, r5, #0
+ add r4, r5, #0
+ add r6, #0x24
+ add r4, #0x34
+_021D7DB4:
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r1, r6, #0
+ add r2, r4, #0
+ bl MOD67_021D7E00
+ cmp r0, #1
+ bne _021D7DF2
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD67_021D7F18
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD67_021D81C4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD67_021D8208
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD67_021D8344
+_021D7DF2:
+ add r0, r6, #0
+ bl FUN_02019220
+ add r0, r4, #0
+ bl FUN_02019220
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD67_021D7D9C
+
+ thumb_func_start MOD67_021D7E00
+MOD67_021D7E00: ; 0x021D7E00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ ldr r3, _021D7F10 ; =0x0000105C
+ add r5, r0, #0
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, #0x44]
+ add r7, r1, #0
+ str r2, [sp, #0x10]
+ add r1, sp, #0x14
+ mov r2, #0
+ bl FUN_02029584
+ ldr r1, [sp, #0x14]
+ lsl r0, r1, #0x19
+ lsr r0, r0, #0x19
+ bne _021D7E32
+ lsl r0, r1, #0x15
+ lsr r0, r0, #0x1c
+ bne _021D7E32
+ lsl r0, r1, #0xd
+ lsr r0, r0, #0x1b
+ bne _021D7E32
+ add sp, #0x18
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_021D7E32:
+ ldr r0, [r5, #0x50]
+ mov r1, #1
+ bl FUN_0200A914
+ ldr r2, [sp, #0x14]
+ add r4, r0, #0
+ lsl r2, r2, #0x15
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ lsr r2, r2, #0x1c
+ bl FUN_0200B764
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [sp, #0x14]
+ ldr r0, [r5, #0x54]
+ lsl r2, r2, #0xd
+ lsr r2, r2, #0x1b
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7F14 ; =0x00010200
+ add r3, r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x58]
+ add r0, r7, #0
+ bl FUN_0201BDE0
+ mov r0, #0
+ ldr r1, [r5, #0x58]
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldr r1, [sp, #0x14]
+ add r4, r0, #0
+ lsl r1, r1, #0x12
+ lsr r1, r1, #0x1d
+ ldr r0, [r5, #0x50]
+ add r1, r1, #2
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r1, #0
+ add r4, #0xc
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7F14 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r3, r4, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [r5, #0x50]
+ mov r1, #0
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, [sp, #0x14]
+ lsr r0, r0, #0x13
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7F14 ; =0x00010200
+ add r3, r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ mov r0, #1
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7F10: .word 0x0000105C
+_021D7F14: .word 0x00010200
+ thumb_func_end MOD67_021D7E00
+
+ thumb_func_start MOD67_021D7F18
+MOD67_021D7F18: ; 0x021D7F18
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ ldr r3, _021D81C0 ; =0x0000105C
+ add r6, r0, #0
+ ldrb r3, [r6, r3]
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ add r1, sp, #0
+ mov r2, #1
+ bl FUN_02029584
+ mov r4, #0
+ add r5, sp, #0
+_021D7F32:
+ ldrb r0, [r5]
+ cmp r0, #0x23
+ bls _021D7F3A
+ b _021D81B0
+_021D7F3A:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7F46: ; jump table
+ .short _021D7F8E - _021D7F46 - 2 ; case 0
+ .short _021D7F92 - _021D7F46 - 2 ; case 1
+ .short _021D7FA2 - _021D7F46 - 2 ; case 2
+ .short _021D7FB2 - _021D7F46 - 2 ; case 3
+ .short _021D7FC2 - _021D7F46 - 2 ; case 4
+ .short _021D7FD2 - _021D7F46 - 2 ; case 5
+ .short _021D7FE2 - _021D7F46 - 2 ; case 6
+ .short _021D7FF2 - _021D7F46 - 2 ; case 7
+ .short _021D8002 - _021D7F46 - 2 ; case 8
+ .short _021D8012 - _021D7F46 - 2 ; case 9
+ .short _021D8022 - _021D7F46 - 2 ; case 10
+ .short _021D8032 - _021D7F46 - 2 ; case 11
+ .short _021D8042 - _021D7F46 - 2 ; case 12
+ .short _021D8052 - _021D7F46 - 2 ; case 13
+ .short _021D8062 - _021D7F46 - 2 ; case 14
+ .short _021D8072 - _021D7F46 - 2 ; case 15
+ .short _021D8082 - _021D7F46 - 2 ; case 16
+ .short _021D8092 - _021D7F46 - 2 ; case 17
+ .short _021D80A2 - _021D7F46 - 2 ; case 18
+ .short _021D80C2 - _021D7F46 - 2 ; case 19
+ .short _021D80D2 - _021D7F46 - 2 ; case 20
+ .short _021D8102 - _021D7F46 - 2 ; case 21
+ .short _021D80F2 - _021D7F46 - 2 ; case 22
+ .short _021D80E2 - _021D7F46 - 2 ; case 23
+ .short _021D80B2 - _021D7F46 - 2 ; case 24
+ .short _021D8122 - _021D7F46 - 2 ; case 25
+ .short _021D8112 - _021D7F46 - 2 ; case 26
+ .short _021D8132 - _021D7F46 - 2 ; case 27
+ .short _021D8142 - _021D7F46 - 2 ; case 28
+ .short _021D8152 - _021D7F46 - 2 ; case 29
+ .short _021D8162 - _021D7F46 - 2 ; case 30
+ .short _021D81B0 - _021D7F46 - 2 ; case 31
+ .short _021D8182 - _021D7F46 - 2 ; case 32
+ .short _021D8172 - _021D7F46 - 2 ; case 33
+ .short _021D8192 - _021D7F46 - 2 ; case 34
+ .short _021D81A2 - _021D7F46 - 2 ; case 35
+_021D7F8E:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+_021D7F92:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D84A8
+ b _021D81B0
+_021D7FA2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D84E4
+ b _021D81B0
+_021D7FB2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8520
+ b _021D81B0
+_021D7FC2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D855C
+ b _021D81B0
+_021D7FD2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8598
+ b _021D81B0
+_021D7FE2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D85D4
+ b _021D81B0
+_021D7FF2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8610
+ b _021D81B0
+_021D8002:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D864C
+ b _021D81B0
+_021D8012:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8688
+ b _021D81B0
+_021D8022:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D86DC
+ b _021D81B0
+_021D8032:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D873C
+ b _021D81B0
+_021D8042:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8790
+ b _021D81B0
+_021D8052:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D87E4
+ b _021D81B0
+_021D8062:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8840
+ b _021D81B0
+_021D8072:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D88AC
+ b _021D81B0
+_021D8082:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8914
+ b _021D81B0
+_021D8092:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8950
+ b _021D81B0
+_021D80A2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D898C
+ b _021D81B0
+_021D80B2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D89E0
+ b _021D81B0
+_021D80C2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8A3C
+ b _021D81B0
+_021D80D2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8A98
+ b _021D81B0
+_021D80E2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8AF4
+ b _021D81B0
+_021D80F2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8B50
+ b _021D81B0
+_021D8102:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8BAC
+ b _021D81B0
+_021D8112:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8C08
+ b _021D81B0
+_021D8122:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8C64
+ b _021D81B0
+_021D8132:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8CC0
+ b _021D81B0
+_021D8142:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8D1C
+ b _021D81B0
+_021D8152:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8D78
+ b _021D81B0
+_021D8162:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8DD4
+ b _021D81B0
+_021D8172:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8E10
+ b _021D81B0
+_021D8182:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8E4C
+ b _021D81B0
+_021D8192:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8E88
+ b _021D81B0
+_021D81A2:
+ lsl r3, r4, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D8EC4
+_021D81B0:
+ add r4, r4, #1
+ add r5, #8
+ cmp r4, #4
+ bhs _021D81BA
+ b _021D7F32
+_021D81BA:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D81C0: .word 0x0000105C
+ thumb_func_end MOD67_021D7F18
+
+ thumb_func_start MOD67_021D81C4
+MOD67_021D81C4: ; 0x021D81C4
+ push {r3, r4, r5, lr}
+ ldr r3, _021D8204 ; =0x0000105C
+ add r5, r0, #0
+ ldrb r3, [r5, r3]
+ ldr r0, [r5, #0x44]
+ add r4, r1, #0
+ add r1, sp, #0
+ mov r2, #2
+ bl FUN_02029584
+ add r0, sp, #0
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021D8200
+ cmp r0, #1
+ beq _021D81EA
+ cmp r0, #2
+ beq _021D81F6
+ pop {r3, r4, r5, pc}
+_021D81EA:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD67_021D8F40
+ pop {r3, r4, r5, pc}
+_021D81F6:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, sp, #0
+ bl MOD67_021D8FEC
+_021D8200:
+ pop {r3, r4, r5, pc}
+ nop
+_021D8204: .word 0x0000105C
+ thumb_func_end MOD67_021D81C4
+
+ thumb_func_start MOD67_021D8208
+MOD67_021D8208: ; 0x021D8208
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldr r3, _021D8334 ; =0x0000105C
+ add r4, r0, #0
+ ldrb r3, [r4, r3]
+ ldr r0, [r4, #0x44]
+ add r7, r1, #0
+ add r1, sp, #0x10
+ mov r2, #3
+ bl FUN_02029584
+ add r0, sp, #0x10
+ ldrh r1, [r0]
+ lsl r1, r1, #0x1f
+ lsr r1, r1, #0x1f
+ bne _021D822A
+ b _021D832E
+_021D822A:
+ ldrh r0, [r0, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r1, _021D8338 ; =0x0000017E
+ mov r0, #0x1a
+ mov r3, #0x2a
+ bl FUN_0200A738
+ add r6, r0, #0
+ bl FUN_02021D3C
+ add r5, r0, #0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, sp, #0x10
+ ldrh r0, [r0]
+ mov r1, #1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x11
+ bl FUN_0206AC74
+ cmp r0, #0x3f
+ bne _021D828A
+ ldr r0, [r4, #0x50]
+ mov r1, #0x38
+ bl FUN_0200A914
+ add r6, r0, #0
+ ldr r0, [r4, #0x54]
+ ldr r2, [r4, #0x4c]
+ mov r1, #1
+ bl FUN_0200ABE4
+ ldr r0, [r4, #0x54]
+ ldr r1, [r4, #0x58]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ ldr r0, [r4, #0x58]
+ bl FUN_02021D3C
+ add r5, r5, r0
+ add r0, r6, #0
+ bl FUN_02021A20
+ b _021D82BA
+_021D828A:
+ add r2, sp, #0x10
+ ldrh r2, [r2]
+ ldr r1, _021D833C ; =0x0000022F
+ mov r0, #0x1a
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x11
+ mov r3, #0x2a
+ bl FUN_0200A738
+ add r6, r0, #0
+ bl FUN_02021D3C
+ add r5, r5, r0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r2, sp, #0x10
+ ldrh r2, [r2]
+ ldr r0, [r4, #0x54]
+ mov r1, #1
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x11
+ bl FUN_0200B10C
+_021D82BA:
+ cmp r5, #0xe
+ bhi _021D82CA
+ ldr r0, [r4, #0x50]
+ mov r1, #0x34
+ bl FUN_0200A914
+ add r5, r0, #0
+ b _021D82F2
+_021D82CA:
+ cmp r5, #0x10
+ bhi _021D82DA
+ ldr r0, [r4, #0x50]
+ mov r1, #0x35
+ bl FUN_0200A914
+ add r5, r0, #0
+ b _021D82F2
+_021D82DA:
+ cmp r5, #0x13
+ ldr r0, [r4, #0x50]
+ bhi _021D82EA
+ mov r1, #0x36
+ bl FUN_0200A914
+ add r5, r0, #0
+ b _021D82F2
+_021D82EA:
+ mov r1, #0x37
+ bl FUN_0200A914
+ add r5, r0, #0
+_021D82F2:
+ add r0, sp, #0x10
+ ldrh r0, [r0, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r4, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r4, #0x54]
+ ldr r1, [r4, #0x58]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8340 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x58]
+ add r0, r7, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+_021D832E:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8334: .word 0x0000105C
+_021D8338: .word 0x0000017E
+_021D833C: .word 0x0000022F
+_021D8340: .word 0x00010200
+ thumb_func_end MOD67_021D8208
+
+ thumb_func_start MOD67_021D8344
+MOD67_021D8344: ; 0x021D8344
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x74
+ ldr r3, _021D84A4 ; =0x0000105C
+ add r6, r0, #0
+ ldrb r3, [r6, r3]
+ ldr r0, [r6, #0x44]
+ add r7, r1, #0
+ add r1, sp, #0
+ mov r2, #4
+ bl FUN_02029584
+ mov r5, #0
+ add r4, sp, #0
+_021D835E:
+ ldrb r0, [r4]
+ cmp r0, #0x10
+ bls _021D8366
+ b _021D8496
+_021D8366:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D8372: ; jump table
+ .short _021D8394 - _021D8372 - 2 ; case 0
+ .short _021D8398 - _021D8372 - 2 ; case 1
+ .short _021D83A8 - _021D8372 - 2 ; case 2
+ .short _021D83B8 - _021D8372 - 2 ; case 3
+ .short _021D83C8 - _021D8372 - 2 ; case 4
+ .short _021D83D8 - _021D8372 - 2 ; case 5
+ .short _021D83E8 - _021D8372 - 2 ; case 6
+ .short _021D83F8 - _021D8372 - 2 ; case 7
+ .short _021D8408 - _021D8372 - 2 ; case 8
+ .short _021D8418 - _021D8372 - 2 ; case 9
+ .short _021D8428 - _021D8372 - 2 ; case 10
+ .short _021D8438 - _021D8372 - 2 ; case 11
+ .short _021D8448 - _021D8372 - 2 ; case 12
+ .short _021D8458 - _021D8372 - 2 ; case 13
+ .short _021D8468 - _021D8372 - 2 ; case 14
+ .short _021D8478 - _021D8372 - 2 ; case 15
+ .short _021D8488 - _021D8372 - 2 ; case 16
+_021D8394:
+ add sp, #0x74
+ pop {r4, r5, r6, r7, pc}
+_021D8398:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D90D4
+ b _021D8496
+_021D83A8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9158
+ b _021D8496
+_021D83B8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D91DC
+ b _021D8496
+_021D83C8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9274
+ b _021D8496
+_021D83D8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D92F8
+ b _021D8496
+_021D83E8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9390
+ b _021D8496
+_021D83F8:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D93EC
+ b _021D8496
+_021D8408:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9458
+ b _021D8496
+_021D8418:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9494
+ b _021D8496
+_021D8428:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D94F0
+ b _021D8496
+_021D8438:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D952C
+ b _021D8496
+_021D8448:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D95B0
+ b _021D8496
+_021D8458:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D95EC
+ b _021D8496
+_021D8468:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D964C
+ b _021D8496
+_021D8478:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D9688
+ b _021D8496
+_021D8488:
+ lsl r3, r5, #0x18
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ lsr r3, r3, #0x18
+ bl MOD67_021D96F4
+_021D8496:
+ add r5, r5, #1
+ add r4, #0x3a
+ cmp r5, #2
+ bhs _021D84A0
+ b _021D835E
+_021D84A0:
+ add sp, #0x74
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D84A4: .word 0x0000105C
+ thumb_func_end MOD67_021D8344
+
+ thumb_func_start MOD67_021D84A8
+MOD67_021D84A8: ; 0x021D84A8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #9
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D84E0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D84E0: .word 0x00010200
+ thumb_func_end MOD67_021D84A8
+
+ thumb_func_start MOD67_021D84E4
+MOD67_021D84E4: ; 0x021D84E4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xa
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D851C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D851C: .word 0x00010200
+ thumb_func_end MOD67_021D84E4
+
+ thumb_func_start MOD67_021D8520
+MOD67_021D8520: ; 0x021D8520
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xb
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8558 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8558: .word 0x00010200
+ thumb_func_end MOD67_021D8520
+
+ thumb_func_start MOD67_021D855C
+MOD67_021D855C: ; 0x021D855C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xc
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8594 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8594: .word 0x00010200
+ thumb_func_end MOD67_021D855C
+
+ thumb_func_start MOD67_021D8598
+MOD67_021D8598: ; 0x021D8598
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xd
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D85D0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D85D0: .word 0x00010200
+ thumb_func_end MOD67_021D8598
+
+ thumb_func_start MOD67_021D85D4
+MOD67_021D85D4: ; 0x021D85D4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xe
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D860C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D860C: .word 0x00010200
+ thumb_func_end MOD67_021D85D4
+
+ thumb_func_start MOD67_021D8610
+MOD67_021D8610: ; 0x021D8610
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0xf
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8648 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8648: .word 0x00010200
+ thumb_func_end MOD67_021D8610
+
+ thumb_func_start MOD67_021D864C
+MOD67_021D864C: ; 0x021D864C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x10
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8684 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8684: .word 0x00010200
+ thumb_func_end MOD67_021D864C
+
+ thumb_func_start MOD67_021D8688
+MOD67_021D8688: ; 0x021D8688
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x11
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #2]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200B430
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D86D8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D86D8: .word 0x00010200
+ thumb_func_end MOD67_021D8688
+
+ thumb_func_start MOD67_021D86DC
+MOD67_021D86DC: ; 0x021D86DC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x12
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #2]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200B430
+ ldrh r2, [r4, #4]
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ bl FUN_0200B10C
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8738 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8738: .word 0x00010200
+ thumb_func_end MOD67_021D86DC
+
+ thumb_func_start MOD67_021D873C
+MOD67_021D873C: ; 0x021D873C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x13
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #4]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200B10C
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D878C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D878C: .word 0x00010200
+ thumb_func_end MOD67_021D873C
+
+ thumb_func_start MOD67_021D8790
+MOD67_021D8790: ; 0x021D8790
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x14
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #4]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200B10C
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D87E0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D87E0: .word 0x00010200
+ thumb_func_end MOD67_021D8790
+
+ thumb_func_start MOD67_021D87E4
+MOD67_021D87E4: ; 0x021D87E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x15
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D883C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D883C: .word 0x00010200
+ thumb_func_end MOD67_021D87E4
+
+ thumb_func_start MOD67_021D8840
+MOD67_021D8840: ; 0x021D8840
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ ldrh r4, [r2, #2]
+ add r5, r0, #0
+ add r6, r3, #0
+ str r1, [sp, #0x10]
+ cmp r4, #0x2f
+ beq _021D8858
+ cmp r4, #0x40
+ beq _021D8858
+ cmp r4, #0x31
+ bne _021D8864
+_021D8858:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x17
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D886E
+_021D8864:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x16
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D886E:
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ add r2, r4, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D88A8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D88A8: .word 0x00010200
+ thumb_func_end MOD67_021D8840
+
+ thumb_func_start MOD67_021D88AC
+MOD67_021D88AC: ; 0x021D88AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldrh r0, [r2, #2]
+ add r7, r1, #0
+ add r4, r3, #0
+ str r0, [sp, #0x10]
+ bl FUN_02029960
+ cmp r0, #0
+ ldr r0, [r5, #0x50]
+ bne _021D88CC
+ mov r1, #0x17
+ bl FUN_0200A914
+ b _021D88D2
+_021D88CC:
+ mov r1, #0x18
+ bl FUN_0200A914
+_021D88D2:
+ add r6, r0, #0
+ ldr r0, [r5, #0x54]
+ ldr r2, [sp, #0x10]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ lsl r0, r4, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8910 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x58]
+ add r0, r7, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8910: .word 0x00010200
+ thumb_func_end MOD67_021D88AC
+
+ thumb_func_start MOD67_021D8914
+MOD67_021D8914: ; 0x021D8914
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x19
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D894C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D894C: .word 0x00010200
+ thumb_func_end MOD67_021D8914
+
+ thumb_func_start MOD67_021D8950
+MOD67_021D8950: ; 0x021D8950
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x1a
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8988 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8988: .word 0x00010200
+ thumb_func_end MOD67_021D8950
+
+ thumb_func_start MOD67_021D898C
+MOD67_021D898C: ; 0x021D898C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x1d
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r2, [r4, #6]
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AE38
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D89DC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D89DC: .word 0x00010200
+ thumb_func_end MOD67_021D898C
+
+ thumb_func_start MOD67_021D89E0
+MOD67_021D89E0: ; 0x021D89E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x23
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8A38 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8A38: .word 0x00010200
+ thumb_func_end MOD67_021D89E0
+
+ thumb_func_start MOD67_021D8A3C
+MOD67_021D8A3C: ; 0x021D8A3C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x1e
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8A94 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8A94: .word 0x00010200
+ thumb_func_end MOD67_021D8A3C
+
+ thumb_func_start MOD67_021D8A98
+MOD67_021D8A98: ; 0x021D8A98
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x1f
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8AF0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8AF0: .word 0x00010200
+ thumb_func_end MOD67_021D8A98
+
+ thumb_func_start MOD67_021D8AF4
+MOD67_021D8AF4: ; 0x021D8AF4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x26
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8B4C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8B4C: .word 0x00010200
+ thumb_func_end MOD67_021D8AF4
+
+ thumb_func_start MOD67_021D8B50
+MOD67_021D8B50: ; 0x021D8B50
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x21
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8BA8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8BA8: .word 0x00010200
+ thumb_func_end MOD67_021D8B50
+
+ thumb_func_start MOD67_021D8BAC
+MOD67_021D8BAC: ; 0x021D8BAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x20
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8C04 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8C04: .word 0x00010200
+ thumb_func_end MOD67_021D8BAC
+
+ thumb_func_start MOD67_021D8C08
+MOD67_021D8C08: ; 0x021D8C08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x25
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8C60 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8C60: .word 0x00010200
+ thumb_func_end MOD67_021D8C08
+
+ thumb_func_start MOD67_021D8C64
+MOD67_021D8C64: ; 0x021D8C64
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x24
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8CBC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8CBC: .word 0x00010200
+ thumb_func_end MOD67_021D8C64
+
+ thumb_func_start MOD67_021D8CC0
+MOD67_021D8CC0: ; 0x021D8CC0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x22
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8D18 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8D18: .word 0x00010200
+ thumb_func_end MOD67_021D8CC0
+
+ thumb_func_start MOD67_021D8D1C
+MOD67_021D8D1C: ; 0x021D8D1C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x29
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8D74 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8D74: .word 0x00010200
+ thumb_func_end MOD67_021D8D1C
+
+ thumb_func_start MOD67_021D8D78
+MOD67_021D8D78: ; 0x021D8D78
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x27
+ add r6, r3, #0
+ bl FUN_0200A914
+ add r7, r0, #0
+ ldrh r0, [r4, #2]
+ bl FUN_02034824
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl FUN_0200AFF4
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8DD0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D8DD0: .word 0x00010200
+ thumb_func_end MOD67_021D8D78
+
+ thumb_func_start MOD67_021D8DD4
+MOD67_021D8DD4: ; 0x021D8DD4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x28
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8E0C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8E0C: .word 0x00010200
+ thumb_func_end MOD67_021D8DD4
+
+ thumb_func_start MOD67_021D8E10
+MOD67_021D8E10: ; 0x021D8E10
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x2a
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8E48 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8E48: .word 0x00010200
+ thumb_func_end MOD67_021D8E10
+
+ thumb_func_start MOD67_021D8E4C
+MOD67_021D8E4C: ; 0x021D8E4C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x2b
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8E84 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8E84: .word 0x00010200
+ thumb_func_end MOD67_021D8E4C
+
+ thumb_func_start MOD67_021D8E88
+MOD67_021D8E88: ; 0x021D8E88
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x1b
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8EC0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8EC0: .word 0x00010200
+ thumb_func_end MOD67_021D8E88
+
+ thumb_func_start MOD67_021D8EC4
+MOD67_021D8EC4: ; 0x021D8EC4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x1c
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8EFC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8EFC: .word 0x00010200
+ thumb_func_end MOD67_021D8EC4
+
+ thumb_func_start MOD67_021D8F00
+MOD67_021D8F00: ; 0x021D8F00
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r2, #0
+ str r3, [sp, #0xc]
+ mov r0, #0x2a
+ add r7, r1, #0
+ bl FUN_020669C0
+ str r4, [sp]
+ mov r1, #0
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ add r6, r0, #0
+ add r1, r7, #0
+ mov r2, #1
+ mov r3, #0x20
+ bl FUN_02066DD4
+ add r0, r6, #0
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r5, #0x54]
+ ldr r1, [sp, #0xc]
+ bl FUN_0200AC60
+ add r0, r6, #0
+ bl FUN_02016A18
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD67_021D8F00
+
+ thumb_func_start MOD67_021D8F40
+MOD67_021D8F40: ; 0x021D8F40
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ add r7, r1, #0
+ lsl r1, r0, #0x1e
+ lsr r1, r1, #0x1e
+ beq _021D8F58
+ cmp r1, #1
+ beq _021D8F64
+ b _021D8F70
+_021D8F58:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2c
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D8F9A
+_021D8F64:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2d
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D8F9A
+_021D8F70:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _021D8F82
+ ldr r0, [r5, #0x50]
+ mov r1, #0x2e
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D8F9A
+_021D8F82:
+ cmp r0, #1
+ ldr r0, [r5, #0x50]
+ bne _021D8F92
+ mov r1, #0x2f
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D8F9A
+_021D8F92:
+ mov r1, #0x2c
+ bl FUN_0200A914
+ add r6, r0, #0
+_021D8F9A:
+ ldrb r2, [r4, #1]
+ ldrh r1, [r4, #2]
+ add r0, r5, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1e
+ mov r3, #0
+ bl MOD67_021D8F00
+ ldrb r2, [r4, #1]
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1c
+ bl FUN_0200B468
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0x50
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D8FE8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x58]
+ add r0, r7, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8FE8: .word 0x00010200
+ thumb_func_end MOD67_021D8F40
+
+ thumb_func_start MOD67_021D8FEC
+MOD67_021D8FEC: ; 0x021D8FEC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ add r7, r1, #0
+ lsl r1, r0, #0x1e
+ lsr r1, r1, #0x1e
+ beq _021D9004
+ cmp r1, #1
+ beq _021D9010
+ b _021D901C
+_021D9004:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x30
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D9046
+_021D9010:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x31
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D9046
+_021D901C:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1e
+ bne _021D902E
+ ldr r0, [r5, #0x50]
+ mov r1, #0x32
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D9046
+_021D902E:
+ cmp r0, #1
+ ldr r0, [r5, #0x50]
+ bne _021D903E
+ mov r1, #0x33
+ bl FUN_0200A914
+ add r6, r0, #0
+ b _021D9046
+_021D903E:
+ mov r1, #0x30
+ bl FUN_0200A914
+ add r6, r0, #0
+_021D9046:
+ ldrb r2, [r4, #1]
+ ldrh r1, [r4, #2]
+ add r0, r5, #0
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x1e
+ mov r3, #0
+ bl MOD67_021D8F00
+ ldrb r2, [r4, #1]
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ lsl r2, r2, #0x1a
+ lsr r2, r2, #0x1c
+ bl FUN_0200B468
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #0x50
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9094 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x58]
+ add r0, r7, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9094: .word 0x00010200
+ thumb_func_end MOD67_021D8FEC
+
+ thumb_func_start MOD67_021D9098
+MOD67_021D9098: ; 0x021D9098
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x20
+ mov r1, #0x2a
+ add r7, r2, #0
+ str r3, [sp, #8]
+ bl FUN_020219F4
+ add r1, r6, #0
+ add r4, r0, #0
+ bl FUN_02021E28
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x54]
+ ldr r1, [sp, #8]
+ add r2, r4, #0
+ add r3, r7, #0
+ bl FUN_0200ABB4
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD67_021D9098
+
+ thumb_func_start MOD67_021D90D4
+MOD67_021D90D4: ; 0x021D90D4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D90F2
+ cmp r0, #1
+ beq _021D90FE
+ cmp r0, #2
+ beq _021D910A
+ b _021D9114
+_021D90F2:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x39
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9114
+_021D90FE:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3a
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9114
+_021D910A:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3b
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D9114:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9154 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9154: .word 0x00010200
+ thumb_func_end MOD67_021D90D4
+
+ thumb_func_start MOD67_021D9158
+MOD67_021D9158: ; 0x021D9158
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D9176
+ cmp r0, #1
+ beq _021D9182
+ cmp r0, #2
+ beq _021D918E
+ b _021D9198
+_021D9176:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3c
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9198
+_021D9182:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3d
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9198
+_021D918E:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3e
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D9198:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D91D8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D91D8: .word 0x00010200
+ thumb_func_end MOD67_021D9158
+
+ thumb_func_start MOD67_021D91DC
+MOD67_021D91DC: ; 0x021D91DC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D91FA
+ cmp r0, #1
+ beq _021D9206
+ cmp r0, #2
+ beq _021D9212
+ b _021D921C
+_021D91FA:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x3f
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D921C
+_021D9206:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x40
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D921C
+_021D9212:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x41
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D921C:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1a
+ add r1, #0x12
+ lsr r2, r2, #0x1f
+ mov r3, #1
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9270 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9270: .word 0x00010200
+ thumb_func_end MOD67_021D91DC
+
+ thumb_func_start MOD67_021D9274
+MOD67_021D9274: ; 0x021D9274
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D9292
+ cmp r0, #1
+ beq _021D929E
+ cmp r0, #2
+ beq _021D92AA
+ b _021D92B4
+_021D9292:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x42
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D92B4
+_021D929E:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x43
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D92B4
+_021D92AA:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x44
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D92B4:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D92F4 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D92F4: .word 0x00010200
+ thumb_func_end MOD67_021D9274
+
+ thumb_func_start MOD67_021D92F8
+MOD67_021D92F8: ; 0x021D92F8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D9316
+ cmp r0, #1
+ beq _021D9322
+ cmp r0, #2
+ beq _021D932E
+ b _021D9338
+_021D9316:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x45
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9338
+_021D9322:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x46
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D9338
+_021D932E:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x47
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D9338:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1a
+ add r1, #0x12
+ lsr r2, r2, #0x1f
+ mov r3, #1
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D938C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D938C: .word 0x00010200
+ thumb_func_end MOD67_021D92F8
+
+ thumb_func_start MOD67_021D9390
+MOD67_021D9390: ; 0x021D9390
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x48
+ add r6, r3, #0
+ bl FUN_0200A914
+ ldrb r2, [r4, #1]
+ add r7, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1b
+ add r1, r4, #2
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D93E8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D93E8: .word 0x00010200
+ thumb_func_end MOD67_021D9390
+
+ thumb_func_start MOD67_021D93EC
+MOD67_021D93EC: ; 0x021D93EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x49
+ add r6, r3, #0
+ bl FUN_0200A914
+ ldrb r2, [r4, #1]
+ add r7, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1b
+ add r1, r4, #2
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x18
+ add r1, #0x22
+ lsr r2, r2, #0x1e
+ mov r3, #1
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9454 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9454: .word 0x00010200
+ thumb_func_end MOD67_021D93EC
+
+ thumb_func_start MOD67_021D9458
+MOD67_021D9458: ; 0x021D9458
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x4a
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9490 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9490: .word 0x00010200
+ thumb_func_end MOD67_021D9458
+
+ thumb_func_start MOD67_021D9494
+MOD67_021D9494: ; 0x021D9494
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x4b
+ add r6, r3, #0
+ bl FUN_0200A914
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r7, r0, #0
+ lsl r2, r2, #0x18
+ add r0, r5, #0
+ add r1, #0x22
+ lsr r2, r2, #0x1e
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D94EC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D94EC: .word 0x00010200
+ thumb_func_end MOD67_021D9494
+
+ thumb_func_start MOD67_021D94F0
+MOD67_021D94F0: ; 0x021D94F0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x4c
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9528 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9528: .word 0x00010200
+ thumb_func_end MOD67_021D94F0
+
+ thumb_func_start MOD67_021D952C
+MOD67_021D952C: ; 0x021D952C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r4, r2, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #1]
+ str r1, [sp, #0x10]
+ add r6, r3, #0
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ beq _021D954A
+ cmp r0, #1
+ beq _021D9556
+ cmp r0, #2
+ beq _021D9562
+ b _021D956C
+_021D954A:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x4d
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D956C
+_021D9556:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x4e
+ bl FUN_0200A914
+ add r7, r0, #0
+ b _021D956C
+_021D9562:
+ ldr r0, [r5, #0x50]
+ mov r1, #0x4f
+ bl FUN_0200A914
+ add r7, r0, #0
+_021D956C:
+ ldrb r2, [r4, #1]
+ add r0, r5, #0
+ add r1, r4, #2
+ lsl r2, r2, #0x1b
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D95AC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D95AC: .word 0x00010200
+ thumb_func_end MOD67_021D952C
+
+ thumb_func_start MOD67_021D95B0
+MOD67_021D95B0: ; 0x021D95B0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x50
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D95E8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D95E8: .word 0x00010200
+ thumb_func_end MOD67_021D95B0
+
+ thumb_func_start MOD67_021D95EC
+MOD67_021D95EC: ; 0x021D95EC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ mov r1, #0x51
+ add r4, r2, #0
+ add r6, r3, #0
+ bl FUN_0200A914
+ mov r1, #0
+ str r1, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ ldrb r2, [r4, #1]
+ add r7, r0, #0
+ ldr r0, [r5, #0x54]
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x1c
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9648 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9648: .word 0x00010200
+ thumb_func_end MOD67_021D95EC
+
+ thumb_func_start MOD67_021D964C
+MOD67_021D964C: ; 0x021D964C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x52
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D9684 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D9684: .word 0x00010200
+ thumb_func_end MOD67_021D964C
+
+ thumb_func_start MOD67_021D9688
+MOD67_021D9688: ; 0x021D9688
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x50]
+ str r1, [sp, #0x10]
+ add r4, r2, #0
+ mov r1, #0x53
+ add r6, r3, #0
+ bl FUN_0200A914
+ ldrb r2, [r4, #1]
+ add r7, r0, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x1b
+ add r1, r4, #2
+ lsr r2, r2, #0x1f
+ mov r3, #0
+ bl MOD67_021D9098
+ ldrb r2, [r4, #1]
+ add r1, r4, #0
+ add r0, r5, #0
+ lsl r2, r2, #0x18
+ add r1, #0x22
+ lsr r2, r2, #0x1e
+ mov r3, #1
+ bl MOD67_021D9098
+ ldr r0, [r5, #0x54]
+ ldr r1, [r5, #0x58]
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ lsl r0, r6, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D96F0 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r0, [sp, #0x10]
+ ldr r2, [r5, #0x58]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D96F0: .word 0x00010200
+ thumb_func_end MOD67_021D9688
+
+ thumb_func_start MOD67_021D96F4
+MOD67_021D96F4: ; 0x021D96F4
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ ldr r0, [r0, #0x50]
+ add r6, r1, #0
+ add r5, r3, #0
+ mov r1, #0x54
+ bl FUN_0200A914
+ add r4, r0, #0
+ lsl r0, r5, #4
+ add r0, #0x70
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D972C ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D972C: .word 0x00010200
+ thumb_func_end MOD67_021D96F4
+
+ .section .rodata
+ ; 0x021D9730
+ .incbin "baserom.nds", 0x2C0E50, 0x1E8
diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s
new file mode 100644
index 00000000..1ee371c6
--- /dev/null
+++ b/arm9/modules/68/asm/module_68.s
@@ -0,0 +1,2461 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD68_021D74E0
+MOD68_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, 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, _021D75CC ; =0xFFFFE0FF
+ ldr r3, _021D75D0 ; =0x04001000
+ and r1, r0
+ str r1, [r2]
+ ldr r1, [r3]
+ and r0, r1
+ str r0, [r3]
+ add r0, r2, #0
+ mov r1, #0
+ add r0, #0x50
+ strh r1, [r0]
+ add r3, #0x50
+ strh r1, [r3]
+ mov r0, #3
+ mov r1, #0x24
+ lsr r2, r2, #9
+ bl FUN_0201681C
+ mov r1, #0x81
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x24
+ bl FUN_02006268
+ mov r2, #0x81
+ mov r1, #0
+ lsl r2, r2, #2
+ add r5, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ bl FUN_0200628C
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0x24
+ bl FUN_02016B94
+ str r0, [r5]
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x24
+ ldrb r0, [r0, #8]
+ bl FUN_02085274
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ mov r1, #0x24
+ bl FUN_02079A70
+ bl MOD_021D76A0
+ ldr r0, [r5]
+ bl MOD_021D76C0
+ add r0, r5, #0
+ bl MOD_021D77A4
+ bl MOD_021D7858
+ add r0, r5, #0
+ bl MOD_021D7870
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ add r0, r5, #0
+ bl MOD_021D7EEC
+ add r0, r5, #0
+ bl MOD_021D78C8
+ add r0, r5, #0
+ bl MOD_021D7D5C
+ add r0, r5, #0
+ bl MOD_021D80B4
+ add r0, r5, #0
+ bl MOD_021D8294
+ ldr r0, _021D75D4 ; =MOD_021D7680
+ add r1, r5, #0
+ bl FUN_02015F10
+ bl FUN_02033F20
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D75CC: .word 0xFFFFE0FF
+_021D75D0: .word 0x04001000
+_021D75D4: .word MOD_021D7680
+ thumb_func_end MOD68_021D74E0
+
+ thumb_func_start MOD_021D75D8
+MOD_021D75D8: ; 0x021D75D8
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhi _021D7620
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D75F4: ; jump table
+ .short _021D75FC - _021D75F4 - 2 ; case 0
+ .short _021D7604 - _021D75F4 - 2 ; case 1
+ .short _021D760C - _021D75F4 - 2 ; case 2
+ .short _021D7614 - _021D75F4 - 2 ; case 3
+_021D75FC:
+ bl MOD_021D7D74
+ str r0, [r4]
+ b _021D7620
+_021D7604:
+ bl MOD_021D7D9C
+ str r0, [r4]
+ b _021D7620
+_021D760C:
+ bl MOD_021D7E84
+ str r0, [r4]
+ b _021D7620
+_021D7614:
+ bl MOD_021D7E78
+ cmp r0, #1
+ bne _021D7620
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D7620:
+ add r0, r5, #0
+ bl MOD_021D806C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D75D8
+
+ thumb_func_start MOD_021D762C
+MOD_021D762C: ; 0x021D762C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r4, #4
+ bl MOD_021D78EC
+ ldr r0, [r4]
+ bl MOD_021D7774
+ bl FUN_0201CD04
+ add r0, r4, #0
+ bl MOD_021D78A8
+ add r0, r4, #0
+ bl MOD_021D80A8
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x24
+ bl FUN_020168D0
+ ldr r0, _021D767C ; =0x04000050
+ mov r1, #0
+ strh r1, [r0]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D767C: .word 0x04000050
+ thumb_func_end MOD_021D762C
+
+ thumb_func_start MOD_021D7680
+MOD_021D7680: ; 0x021D7680
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_0201AB60
+ ldr r3, _021D7698 ; =0x027E0000
+ ldr r1, _021D769C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021D7698: .word 0x027E0000
+_021D769C: .word 0x00003FF8
+ thumb_func_end MOD_021D7680
+
+ thumb_func_start MOD_021D76A0
+MOD_021D76A0: ; 0x021D76A0
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D76BC ; =0x021D892C
+ add r3, sp, #0
+ mov r2, #5
+_021D76AA:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D76AA
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D76BC: .word 0x021D892C
+ thumb_func_end MOD_021D76A0
+
+ thumb_func_start MOD_021D76C0
+MOD_021D76C0: ; 0x021D76C0
+ push {r4, r5, lr}
+ sub sp, #0x64
+ ldr r5, _021D7764 ; =0x021D88C8
+ 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
+ bl MOD_021D7FD8
+ ldr r5, _021D7768 ; =0x021D8910
+ 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, _021D776C ; =0x021D88D8
+ 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
+ mov r2, #3
+ mov r3, #8
+ bl FUN_0201AEE4
+ ldr r5, _021D7770 ; =0x021D88F4
+ 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
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x24
+ bl FUN_02017F18
+ add sp, #0x64
+ pop {r4, r5, pc}
+ nop
+_021D7764: .word 0x021D88C8
+_021D7768: .word 0x021D8910
+_021D776C: .word 0x021D88D8
+_021D7770: .word 0x021D88F4
+ thumb_func_end MOD_021D76C0
+
+ thumb_func_start MOD_021D7774
+MOD_021D7774: ; 0x021D7774
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xf
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ mov r0, #0x24
+ add r1, r4, #0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D7774
+
+ thumb_func_start MOD_021D77A4
+MOD_021D77A4: ; 0x021D77A4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ mov r1, #2
+ ldr r2, [r5]
+ mov r0, #0x35
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #0x35
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ ldr r2, [r5]
+ mov r0, #0x35
+ mov r1, #1
+ mov r3, #3
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x24
+ str r0, [sp, #4]
+ mov r0, #0x35
+ mov r1, #3
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0x24
+ mov r1, #0x80
+ bl FUN_02016998
+ add r4, r0, #0
+ ldr r0, _021D7854 ; =0x00003001
+ mov r2, #0
+ add r3, r4, #0
+_021D7812:
+ add r1, r2, r0
+ strh r1, [r3]
+ add r2, r2, #1
+ add r3, r3, #2
+ cmp r2, #0x40
+ blo _021D7812
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r5]
+ mov r1, #1
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_02018148
+ add r0, r4, #0
+ bl FUN_02016A18
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r1, #0x1e
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x24
+ bl FUN_02002ED0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7854: .word 0x00003001
+ thumb_func_end MOD_021D77A4
+
+ thumb_func_start MOD_021D7858
+MOD_021D7858: ; 0x021D7858
+ push {r3, lr}
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _021D786C ; =0x04000050
+ mov r1, #1
+ mov r2, #0xe
+ mov r3, #0x17
+ bl G2x_SetBlendAlpha_
+ pop {r3, pc}
+ .align 2, 0
+_021D786C: .word 0x04000050
+ thumb_func_end MOD_021D7858
+
+ thumb_func_start MOD_021D7870
+MOD_021D7870: ; 0x021D7870
+ push {r4, lr}
+ ldr r2, _021D78A4 ; =0x0000015F
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x24
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xc4
+ str r0, [r1]
+ mov r0, #0xf
+ mov r1, #2
+ mov r2, #0
+ mov r3, #0x24
+ bl FUN_0200B870
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ mov r0, #0x24
+ bl FUN_0200AA80
+ add r4, #0xc8
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+_021D78A4: .word 0x0000015F
+ thumb_func_end MOD_021D7870
+
+ thumb_func_start MOD_021D78A8
+MOD_021D78A8: ; 0x021D78A8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0200B990
+ add r4, #0xc8
+ ldr r0, [r4]
+ bl FUN_0200AB18
+ pop {r4, pc}
+ thumb_func_end MOD_021D78A8
+
+ thumb_func_start MOD_021D78C8
+MOD_021D78C8: ; 0x021D78C8
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r4, _021D78E8 ; =0x021D8954
+ mov r6, #0
+ add r5, r7, #4
+_021D78D2:
+ ldr r0, [r7]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r6, r6, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r6, #0xc
+ blo _021D78D2
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D78E8: .word 0x021D8954
+ thumb_func_end MOD_021D78C8
+
+ thumb_func_start MOD_021D78EC
+MOD_021D78EC: ; 0x021D78EC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D78F2:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0xc
+ blo _021D78F2
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D78EC
+
+ thumb_func_start MOD_021D7904
+MOD_021D7904: ; 0x021D7904
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #4
+ add r0, #0xc4
+ lsl r4, r1, #4
+ ldr r0, [r0]
+ add r1, r2, #0
+ add r6, r3, #0
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ mov r0, #0
+ ldr r1, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r7, r0, #0
+ add r0, r5, r4
+ bl FUN_0201AB0C
+ add r3, r0, #0
+ mov r1, #0
+ lsl r3, r3, #3
+ sub r3, r3, r7
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r6, [sp, #8]
+ ldr r2, [sp, #0x10]
+ add r0, r5, r4
+ lsr r3, r3, #1
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r5, r4
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD_021D7904
+
+ thumb_func_start MOD_021D7958
+MOD_021D7958: ; 0x021D7958
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r4, #4
+ mov r1, #4
+ bl FUN_02019620
+ mov r1, #0
+ ldr r3, _021D7974 ; =0x00010204
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D7974: .word 0x00010204
+ thumb_func_end MOD_021D7958
+
+ thumb_func_start MOD_021D7978
+MOD_021D7978: ; 0x021D7978
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x24
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D7994 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #2
+ mov r2, #1
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D7994: .word 0x000F0200
+ thumb_func_end MOD_021D7978
+
+ thumb_func_start MOD_021D7998
+MOD_021D7998: ; 0x021D7998
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x34
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D79B4 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #3
+ mov r2, #2
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D79B4: .word 0x000F0200
+ thumb_func_end MOD_021D7998
+
+ thumb_func_start MOD_021D79B8
+MOD_021D79B8: ; 0x021D79B8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x44
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D79D4 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #4
+ mov r2, #3
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D79D4: .word 0x000F0200
+ thumb_func_end MOD_021D79B8
+
+ thumb_func_start MOD_021D79D8
+MOD_021D79D8: ; 0x021D79D8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x54
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D79F4 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #5
+ mov r2, #4
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D79F4: .word 0x000F0200
+ thumb_func_end MOD_021D79D8
+
+ thumb_func_start MOD_021D79F8
+MOD_021D79F8: ; 0x021D79F8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_02019620
+ ldr r3, _021D7A14 ; =0x000F0200
+ add r0, r4, #0
+ mov r1, #6
+ mov r2, #5
+ bl MOD_021D7904
+ pop {r4, pc}
+ nop
+_021D7A14: .word 0x000F0200
+ thumb_func_end MOD_021D79F8
+
+ thumb_func_start MOD_021D7A18
+MOD_021D7A18: ; 0x021D7A18
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x14
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #5
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #0
+ bl FUN_0200B9A8
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #6
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #6
+ mov r1, #0x24
+ bl FUN_020219F4
+ mov r3, #2
+ add r6, r0, #0
+ mov r2, #0x7e
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r5, #0
+ ldrb r2, [r2, #8]
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ add r2, r2, #1
+ bl FUN_0200AD38
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7AE0 ; =0x000F0200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r3, #0x10
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x24
+ ldrb r0, [r0, #8]
+ bl FUN_020852E8
+ add r5, r0, #0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7AE0 ; =0x000F0200
+ add r2, r5, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r3, #0x28
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7AE0: .word 0x000F0200
+ thumb_func_end MOD_021D7A18
+
+ thumb_func_start MOD_021D7AE4
+MOD_021D7AE4: ; 0x021D7AE4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0xb4
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ ldrb r0, [r0, #8]
+ bl FUN_02085310
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7B30 ; =0x00010200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7B30: .word 0x00010200
+ thumb_func_end MOD_021D7AE4
+
+ thumb_func_start MOD_021D7B34
+MOD_021D7B34: ; 0x021D7B34
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0x94
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #0xa
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7B7C ; =0x000F0200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7B7C: .word 0x000F0200
+ thumb_func_end MOD_021D7B34
+
+ thumb_func_start MOD_021D7B80
+MOD_021D7B80: ; 0x021D7B80
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0xa4
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_02085290
+ add r1, r0, #0
+ beq _021D7BA4
+ sub r1, r1, #1
+_021D7BA4:
+ add r4, #0xc4
+ ldr r0, [r4]
+ add r1, #0xb
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7BD8 ; =0x000F0200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7BD8: .word 0x000F0200
+ thumb_func_end MOD_021D7B80
+
+ thumb_func_start MOD_021D7BDC
+MOD_021D7BDC: ; 0x021D7BDC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r5, r4, #0
+ add r5, #0x74
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #8
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7C24 ; =0x000F0200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7C24: .word 0x000F0200
+ thumb_func_end MOD_021D7BDC
+
+ thumb_func_start MOD_021D7C28
+MOD_021D7C28: ; 0x021D7C28
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r6, r5, #0
+ add r6, #0x84
+ add r0, r6, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02085290
+ mov r1, #0xfa
+ lsl r1, r1, #2
+ mul r1, r0
+ add r0, r1, #0
+ mov r1, #0xfe
+ bl _u32_div_f
+ add r0, r0, #5
+ mov r1, #0xa
+ bl _u32_div_f
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #9
+ bl FUN_0200A914
+ str r0, [sp, #0x10]
+ mov r0, #0x20
+ mov r1, #0x24
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r7, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ mov r1, #0
+ add r2, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r3, #2
+ bl FUN_0200AD38
+ add r0, r7, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ mov r0, #0
+ add r2, r1, #0
+ str r0, [sp]
+ mov r1, #1
+ add r0, r5, #0
+ str r1, [sp, #4]
+ add r0, #0xc8
+ ldr r0, [r0]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ add r5, #0xc8
+ ldr r0, [r5]
+ ldr r2, [sp, #0x10]
+ add r1, r4, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7CEC ; =0x000F0200
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02019220
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7CEC: .word 0x000F0200
+ thumb_func_end MOD_021D7C28
+
+ thumb_func_start MOD_021D7CF0
+MOD_021D7CF0: ; 0x021D7CF0
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #7
+ bhi _021D7D5A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7D04: ; jump table
+ .short _021D7D14 - _021D7D04 - 2 ; case 0
+ .short _021D7D1A - _021D7D04 - 2 ; case 1
+ .short _021D7D20 - _021D7D04 - 2 ; case 2
+ .short _021D7D26 - _021D7D04 - 2 ; case 3
+ .short _021D7D32 - _021D7D04 - 2 ; case 4
+ .short _021D7D3E - _021D7D04 - 2 ; case 5
+ .short _021D7D4A - _021D7D04 - 2 ; case 6
+ .short _021D7D56 - _021D7D04 - 2 ; case 7
+_021D7D14:
+ bl MOD_021D7958
+ pop {r4, pc}
+_021D7D1A:
+ bl MOD_021D7978
+ pop {r4, pc}
+_021D7D20:
+ bl MOD_021D7A18
+ pop {r4, pc}
+_021D7D26:
+ bl MOD_021D79F8
+ add r0, r4, #0
+ bl MOD_021D7998
+ pop {r4, pc}
+_021D7D32:
+ bl MOD_021D79B8
+ add r0, r4, #0
+ bl MOD_021D79D8
+ pop {r4, pc}
+_021D7D3E:
+ bl MOD_021D7BDC
+ add r0, r4, #0
+ bl MOD_021D7C28
+ pop {r4, pc}
+_021D7D4A:
+ bl MOD_021D7B34
+ add r0, r4, #0
+ bl MOD_021D7B80
+ pop {r4, pc}
+_021D7D56:
+ bl MOD_021D7AE4
+_021D7D5A:
+ pop {r4, pc}
+ thumb_func_end MOD_021D7CF0
+
+ thumb_func_start MOD_021D7D5C
+MOD_021D7D5C: ; 0x021D7D5C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D7D62:
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl MOD_021D7CF0
+ add r4, r4, #1
+ cmp r4, #8
+ blo _021D7D62
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD_021D7D5C
+
+ thumb_func_start MOD_021D7D74
+MOD_021D7D74: ; 0x021D7D74
+ push {r3, lr}
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021D7D92
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021D7D98 ; =0x04000050
+ mov r1, #2
+ mov r2, #4
+ mov r3, #0x10
+ bl G2x_SetBlendAlpha_
+ mov r0, #1
+ pop {r3, pc}
+_021D7D92:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D7D98: .word 0x04000050
+ thumb_func_end MOD_021D7D74
+
+ thumb_func_start MOD_021D7D9C
+MOD_021D7D9C: ; 0x021D7D9C
+ push {r4, lr}
+ ldr r1, _021D7E70 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r3, [r1, #0x44]
+ mov r2, #0x40
+ add r0, r3, #0
+ tst r0, r2
+ beq _021D7DF8
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ sub r2, #0x41
+ ldrb r1, [r0, #8]
+ bl MOD_021D7F44
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ ldr r3, [r4, r1]
+ ldrb r2, [r3, #8]
+ cmp r2, r0
+ beq _021D7DF4
+ strb r0, [r3, #8]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #9
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ strb r2, [r4, r0]
+ ldr r1, [r4, r1]
+ ldrb r0, [r1, #0xa]
+ cmp r0, #3
+ bne _021D7DEA
+ ldrb r0, [r1, #9]
+ cmp r0, #0
+ beq _021D7DEA
+ sub r0, r0, #1
+ strb r0, [r1, #9]
+ b _021D7DF0
+_021D7DEA:
+ ldrb r0, [r1, #0xa]
+ sub r0, r0, #1
+ strb r0, [r1, #0xa]
+_021D7DF0:
+ mov r0, #2
+ pop {r4, pc}
+_021D7DF4:
+ mov r0, #1
+ pop {r4, pc}
+_021D7DF8:
+ mov r0, #0x80
+ tst r0, r3
+ beq _021D7E50
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r2, #1
+ ldrb r1, [r0, #8]
+ bl MOD_021D7F44
+ mov r1, #0x7e
+ lsl r1, r1, #2
+ ldr r3, [r4, r1]
+ ldrb r2, [r3, #8]
+ cmp r2, r0
+ beq _021D7E4C
+ strb r0, [r3, #8]
+ add r0, r1, #0
+ mov r2, #0
+ add r0, #9
+ strb r2, [r4, r0]
+ add r0, r1, #0
+ add r0, #8
+ strb r2, [r4, r0]
+ ldr r3, [r4, r1]
+ ldrb r0, [r3, #0xa]
+ cmp r0, #5
+ bne _021D7E42
+ ldrb r1, [r3, #9]
+ ldrb r0, [r3, #0xb]
+ add r2, r1, #0
+ add r2, #9
+ cmp r2, r0
+ bge _021D7E42
+ add r0, r1, #1
+ strb r0, [r3, #9]
+ b _021D7E48
+_021D7E42:
+ ldrb r0, [r3, #0xa]
+ add r0, r0, #1
+ strb r0, [r3, #0xa]
+_021D7E48:
+ mov r0, #2
+ pop {r4, pc}
+_021D7E4C:
+ mov r0, #1
+ pop {r4, pc}
+_021D7E50:
+ ldr r1, [r1, #0x48]
+ mov r0, #2
+ tst r0, r1
+ bne _021D7E60
+ ldr r0, _021D7E74 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021D7E6C
+_021D7E60:
+ mov r0, #1
+ mov r1, #0x24
+ bl FUN_02079A70
+ mov r0, #3
+ pop {r4, pc}
+_021D7E6C:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7E70: .word 0x021C48B8
+_021D7E74: .word 0x021C48F8
+ thumb_func_end MOD_021D7D9C
+
+ thumb_func_start MOD_021D7E78
+MOD_021D7E78: ; 0x021D7E78
+ push {r3, lr}
+ bl FUN_0200E308
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, pc}
+ thumb_func_end MOD_021D7E78
+
+ thumb_func_start MOD_021D7E84
+MOD_021D7E84: ; 0x021D7E84
+ push {r3, r4, r5, lr}
+ mov r4, #2
+ add r5, r0, #0
+ lsl r1, r4, #8
+ ldrb r1, [r5, r1]
+ cmp r1, #0
+ bne _021D7EA8
+ ldr r0, _021D7EE4 ; =0x00000201
+ ldrb r1, [r5, r0]
+ add r1, r1, #4
+ strb r1, [r5, r0]
+ ldrb r0, [r5, r0]
+ cmp r0, #0x10
+ bne _021D7ECE
+ mov r1, #1
+ lsl r0, r1, #9
+ strb r1, [r5, r0]
+ b _021D7ECE
+_021D7EA8:
+ cmp r1, #1
+ bne _021D7EB8
+ bl MOD_021D7F98
+ add r1, r4, #0
+ lsl r0, r1, #8
+ strb r1, [r5, r0]
+ b _021D7ECE
+_021D7EB8:
+ ldr r0, _021D7EE4 ; =0x00000201
+ ldrb r1, [r5, r0]
+ sub r1, r1, #4
+ strb r1, [r5, r0]
+ ldrb r1, [r5, r0]
+ cmp r1, #0
+ bne _021D7ECE
+ mov r1, #0
+ sub r0, r0, #1
+ strb r1, [r5, r0]
+ mov r4, #1
+_021D7ECE:
+ ldr r0, _021D7EE4 ; =0x00000201
+ ldrb r2, [r5, r0]
+ mov r0, #0x10
+ sub r1, r0, r2
+ lsl r0, r2, #8
+ orr r1, r0
+ ldr r0, _021D7EE8 ; =0x04000052
+ strh r1, [r0]
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D7EE4: .word 0x00000201
+_021D7EE8: .word 0x04000052
+ thumb_func_end MOD_021D7E84
+
+ thumb_func_start MOD_021D7EEC
+MOD_021D7EEC: ; 0x021D7EEC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #8]
+ bl MOD_021D7F3C
+ mov r3, #1
+ add r1, r0, #0
+ str r3, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x24
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0x35
+ bl FUN_0200687C
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldrb r0, [r0, #8]
+ bl MOD_021D7F40
+ add r1, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x24
+ str r0, [sp, #4]
+ mov r0, #0x35
+ mov r2, #0
+ mov r3, #0x60
+ bl FUN_02006930
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D7EEC
+
+ thumb_func_start MOD_021D7F3C
+MOD_021D7F3C: ; 0x021D7F3C
+ add r0, r0, #6
+ bx lr
+ thumb_func_end MOD_021D7F3C
+
+ thumb_func_start MOD_021D7F40
+MOD_021D7F40: ; 0x021D7F40
+ add r0, #0x46
+ bx lr
+ thumb_func_end MOD_021D7F40
+
+ thumb_func_start MOD_021D7F44
+MOD_021D7F44: ; 0x021D7F44
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r5, r2, #0
+ add r6, r0, #0
+ add r4, r7, #0
+ cmp r5, #0
+ bge _021D7F72
+ cmp r7, #0
+ beq _021D7F92
+_021D7F56:
+ sub r4, r4, #1
+ lsl r1, r4, #0x10
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ bl FUN_02085224
+ cmp r0, #1
+ bne _021D7F6C
+ add r7, r4, #0
+ add r5, r5, #1
+ beq _021D7F92
+_021D7F6C:
+ cmp r4, #0
+ beq _021D7F92
+ b _021D7F56
+_021D7F72:
+ cmp r7, #0x3f
+ beq _021D7F92
+_021D7F76:
+ add r4, r4, #1
+ lsl r1, r4, #0x10
+ add r0, r6, #0
+ lsr r1, r1, #0x10
+ bl FUN_02085224
+ cmp r0, #1
+ bne _021D7F8E
+ lsl r0, r4, #0x10
+ lsr r7, r0, #0x10
+ sub r5, r5, #1
+ beq _021D7F92
+_021D7F8E:
+ cmp r4, #0x3f
+ bne _021D7F76
+_021D7F92:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D7F44
+
+ thumb_func_start MOD_021D7F98
+MOD_021D7F98: ; 0x021D7F98
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x7e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x24
+ ldrb r0, [r0, #8]
+ bl FUN_02085274
+ mov r1, #0x7f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD_021D7D5C
+ add r0, r4, #0
+ bl MOD_021D7EEC
+ add r0, r4, #0
+ bl MOD_021D85F4
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_02017CD0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D7F98
+
+ thumb_func_start MOD_021D7FD8
+MOD_021D7FD8: ; 0x021D7FD8
+ push {r3, r4, lr}
+ sub sp, #4
+ bl G3X_Init
+ bl G3X_InitMtxStack
+ ldr r0, _021D8050 ; =0x04000060
+ ldr r1, _021D8054 ; =0xFFFFCFFD
+ ldrh r2, [r0]
+ ldr r3, _021D8058 ; =0x0000CFFB
+ and r2, r1
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r3
+ strh r2, [r0]
+ add r2, r1, #2
+ ldrh r4, [r0]
+ add r1, r1, #2
+ sub r3, #0x1c
+ and r4, r2
+ mov r2, #8
+ orr r2, r4
+ strh r2, [r0]
+ ldrh r2, [r0]
+ and r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r3
+ strh r1, [r0]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl G3X_SetFog
+ mov r0, #0
+ ldr r2, _021D805C ; =0x00007FFF
+ add r1, r0, #0
+ mov r3, #0x3f
+ str r0, [sp]
+ bl G3X_SetClearColor
+ ldr r1, _021D8060 ; =0x04000540
+ mov r0, #0
+ str r0, [r1]
+ ldr r0, _021D8064 ; =0xBFFF0000
+ str r0, [r1, #0x40]
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r1, _021D8068 ; =0x04000008
+ mov r0, #3
+ ldrh r2, [r1]
+ bic r2, r0
+ strh r2, [r1]
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D8050: .word 0x04000060
+_021D8054: .word 0xFFFFCFFD
+_021D8058: .word 0x0000CFFB
+_021D805C: .word 0x00007FFF
+_021D8060: .word 0x04000540
+_021D8064: .word 0xBFFF0000
+_021D8068: .word 0x04000008
+ thumb_func_end MOD_021D7FD8
+
+ thumb_func_start MOD_021D806C
+MOD_021D806C: ; 0x021D806C
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_020222AC
+ bl FUN_0201EBA4
+ ldr r2, _021D80A0 ; =0x04000440
+ mov r3, #0
+ add r1, r2, #0
+ str r3, [r2]
+ add r1, #0x14
+ str r3, [r1]
+ mov r0, #2
+ str r0, [r2]
+ add r0, r4, #0
+ add r0, #0xd4
+ str r3, [r1]
+ bl MOD_021D8124
+ add r0, r4, #0
+ bl MOD_021D81C0
+ ldr r0, _021D80A4 ; =0x04000540
+ mov r1, #1
+ str r1, [r0]
+ pop {r4, pc}
+ .align 2, 0
+_021D80A0: .word 0x04000440
+_021D80A4: .word 0x04000540
+ thumb_func_end MOD_021D806C
+
+ thumb_func_start MOD_021D80A8
+MOD_021D80A8: ; 0x021D80A8
+ ldr r3, _021D80B0 ; =FUN_0201EB70
+ add r0, #0xd0
+ ldr r0, [r0]
+ bx r3
+ .align 2, 0
+_021D80B0: .word FUN_0201EB70
+ thumb_func_end MOD_021D80A8
+
+ thumb_func_start MOD_021D80B4
+MOD_021D80B4: ; 0x021D80B4
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ ldr r3, _021D811C ; =0x021D88BC
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x10
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, sp, #8
+ str r0, [r2]
+ mov r0, #0
+ strh r0, [r1]
+ strh r0, [r1, #2]
+ strh r0, [r1, #4]
+ strh r0, [r1, #6]
+ mov r0, #0x24
+ bl FUN_0201EB64
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ mov r1, #1
+ add r0, r4, #0
+ str r1, [sp]
+ add r0, #0xd0
+ ldr r0, [r0]
+ ldr r3, _021D8120 ; =0x000005C1
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ lsl r1, r1, #0x10
+ add r2, sp, #8
+ bl FUN_0201ED10
+ add r2, r4, #0
+ add r2, #0xd0
+ mov r1, #0x19
+ ldr r2, [r2]
+ mov r0, #0
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_0201EC88
+ add r4, #0xd0
+ ldr r0, [r4]
+ bl FUN_0201EB8C
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+_021D811C: .word 0x021D88BC
+_021D8120: .word 0x000005C1
+ thumb_func_end MOD_021D80B4
+
+ thumb_func_start MOD_021D8124
+MOD_021D8124: ; 0x021D8124
+ push {r4, r5, r6, r7}
+ add r4, r0, #0
+ ldr r0, _021D818C ; =0x121800C0
+ ldr r1, _021D8190 ; =0x040004A4
+ ldr r2, _021D8194 ; =0x00003FE8
+ str r0, [r1]
+ mov r0, #1
+ str r0, [r1, #0x5c]
+ ldr r0, _021D8198 ; =0x0400048C
+ mov r3, #0
+ sub r1, #0x24
+_021D813A:
+ str r2, [r1]
+ ldrh r7, [r4, #2]
+ ldrh r5, [r4]
+ ldrh r6, [r4, #4]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0]
+ str r6, [r0]
+ str r2, [r1]
+ ldrh r7, [r4, #8]
+ ldrh r5, [r4, #6]
+ ldrh r6, [r4, #0xa]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0]
+ str r6, [r0]
+ str r2, [r1]
+ ldrh r7, [r4, #0x14]
+ ldrh r5, [r4, #0x12]
+ ldrh r6, [r4, #0x16]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0]
+ str r6, [r0]
+ str r2, [r1]
+ ldrh r7, [r4, #0xe]
+ ldrh r5, [r4, #0xc]
+ ldrh r6, [r4, #0x10]
+ lsl r7, r7, #0x10
+ orr r5, r7
+ str r5, [r0]
+ add r3, r3, #1
+ add r4, #0x18
+ str r6, [r0]
+ cmp r3, #4
+ blo _021D813A
+ ldr r0, _021D819C ; =0x04000504
+ mov r1, #0
+ str r1, [r0]
+ pop {r4, r5, r6, r7}
+ bx lr
+ .align 2, 0
+_021D818C: .word 0x121800C0
+_021D8190: .word 0x040004A4
+_021D8194: .word 0x00003FE8
+_021D8198: .word 0x0400048C
+_021D819C: .word 0x04000504
+ thumb_func_end MOD_021D8124
+
+ thumb_func_start MOD_021D81A0
+MOD_021D81A0: ; 0x021D81A0
+ mov r2, #0
+ ldrsh r3, [r0, r2]
+ ldrsh r2, [r1, r2]
+ add r2, r3, r2
+ strh r2, [r0]
+ mov r2, #2
+ ldrsh r3, [r0, r2]
+ ldrsh r2, [r1, r2]
+ add r2, r3, r2
+ strh r2, [r0, #2]
+ mov r2, #4
+ ldrsh r3, [r0, r2]
+ ldrsh r1, [r1, r2]
+ add r1, r3, r1
+ strh r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD_021D81A0
+
+ thumb_func_start MOD_021D81C0
+MOD_021D81C0: ; 0x021D81C0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp]
+ mov r0, #0x7d
+ ldr r1, [sp]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ cmp r1, #4
+ beq _021D828E
+ cmp r1, #3
+ bne _021D81FA
+ ldr r6, [sp]
+ mov r5, #0
+ sub r0, #0x60
+_021D81DC:
+ add r3, r6, #0
+ add r4, r6, r0
+ add r3, #0xd4
+ mov r2, #0xc
+_021D81E4:
+ ldrh r1, [r4]
+ add r4, r4, #2
+ strh r1, [r3]
+ add r3, r3, #2
+ sub r2, r2, #1
+ bne _021D81E4
+ add r5, r5, #1
+ add r6, #0x18
+ cmp r5, #4
+ blo _021D81DC
+ b _021D8280
+_021D81FA:
+ mov r1, #0
+ str r1, [sp, #4]
+ add r2, r0, #0
+ ldr r1, [sp]
+ sub r2, #0xc0
+ add r1, r1, r2
+ str r1, [sp, #0x14]
+ ldr r1, [sp]
+ add r2, r0, #0
+ str r1, [sp, #0x10]
+ add r1, #0xd4
+ str r1, [sp, #0x10]
+ ldr r1, [sp]
+ sub r2, #0xba
+ add r1, r1, r2
+ add r2, r0, #0
+ str r1, [sp, #0xc]
+ ldr r1, [sp]
+ sub r2, #0xb4
+ str r1, [sp, #8]
+ add r1, #0xda
+ str r1, [sp, #8]
+ ldr r1, [sp]
+ sub r0, #0xae
+ add r4, r1, #0
+ add r5, r1, #0
+ add r7, r1, r2
+ add r4, #0xe0
+ add r6, r1, r0
+ add r5, #0xe6
+_021D8236:
+ ldr r0, [sp, #0x10]
+ ldr r1, [sp, #0x14]
+ bl MOD_021D81A0
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl MOD_021D81A0
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD_021D81A0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD_021D81A0
+ ldr r0, [sp, #0x14]
+ add r7, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r4, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ add r6, #0x18
+ add r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r5, #0x18
+ add r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #4]
+ cmp r0, #4
+ blo _021D8236
+_021D8280:
+ mov r1, #0x7d
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r2, r0, #1
+ ldr r0, [sp]
+ str r2, [r0, r1]
+_021D828E:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD_021D81C0
+
+ thumb_func_start MOD_021D8294
+MOD_021D8294: ; 0x021D8294
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ ldr r1, _021D840C ; =0x021D89BC
+ add r5, r0, #0
+ ldrh r2, [r1, #0x34]
+ add r3, sp, #0
+ add r5, #0xd8
+ strh r2, [r3, #0x12]
+ ldrh r2, [r1, #0x36]
+ strh r2, [r3, #0x14]
+ ldrh r1, [r1, #0x38]
+ strh r1, [r3, #0x16]
+ add r1, r0, #0
+ ldrh r4, [r3, #0x12]
+ add r1, #0xd4
+ strh r4, [r1]
+ add r1, r0, #0
+ ldrh r2, [r3, #0x14]
+ add r1, #0xd6
+ strh r2, [r1]
+ ldrh r1, [r3, #0x16]
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xda
+ strh r4, [r5]
+ add r5, r0, #0
+ add r5, #0xdc
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xde
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xe0
+ strh r4, [r5]
+ add r5, r0, #0
+ add r5, #0xe2
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xe4
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xe6
+ strh r4, [r5]
+ add r4, r0, #0
+ add r4, #0xe8
+ strh r2, [r4]
+ add r2, r0, #0
+ add r2, #0xea
+ strh r1, [r2]
+ ldr r1, _021D8410 ; =0x021D89FC
+ add r5, r0, #0
+ ldrh r2, [r1, #0x2a]
+ add r5, #0xf0
+ strh r2, [r3, #0xc]
+ ldrh r2, [r1, #0x2c]
+ strh r2, [r3, #0xe]
+ ldrh r1, [r1, #0x2e]
+ add r2, r0, #0
+ add r2, #0xec
+ strh r1, [r3, #0x10]
+ ldrh r1, [r3, #0xc]
+ strh r1, [r2]
+ add r2, r0, #0
+ ldrh r4, [r3, #0xe]
+ add r2, #0xee
+ strh r4, [r2]
+ ldrh r2, [r3, #0x10]
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xf2
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xf4
+ strh r4, [r5]
+ add r5, r0, #0
+ add r5, #0xf6
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xf8
+ strh r1, [r5]
+ add r5, r0, #0
+ add r5, #0xfa
+ strh r4, [r5]
+ add r5, r0, #0
+ add r5, #0xfc
+ strh r2, [r5]
+ add r5, r0, #0
+ add r5, #0xfe
+ strh r1, [r5]
+ mov r1, #1
+ lsl r1, r1, #8
+ strh r4, [r0, r1]
+ add r4, r1, #2
+ strh r2, [r0, r4]
+ ldr r2, _021D8414 ; =0x021D8A3C
+ ldrh r4, [r2, #0x20]
+ strh r4, [r3, #6]
+ ldrh r4, [r2, #0x22]
+ strh r4, [r3, #8]
+ ldrh r2, [r2, #0x24]
+ strh r2, [r3, #0xa]
+ ldrh r6, [r3, #6]
+ add r2, r1, #4
+ strh r6, [r0, r2]
+ ldrh r5, [r3, #8]
+ add r2, r1, #6
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ ldrh r4, [r3, #0xa]
+ add r2, #8
+ strh r4, [r0, r2]
+ add r2, r1, #0
+ add r2, #0xa
+ strh r6, [r0, r2]
+ add r2, r1, #0
+ add r2, #0xc
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0xe
+ strh r4, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x10
+ strh r6, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x12
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x14
+ strh r4, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x16
+ strh r6, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x18
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ add r2, #0x1a
+ strh r4, [r0, r2]
+ ldr r2, _021D8418 ; =0x021D8A7C
+ ldrh r4, [r2, #0x16]
+ strh r4, [r3]
+ ldrh r4, [r2, #0x18]
+ strh r4, [r3, #2]
+ ldrh r2, [r2, #0x1a]
+ strh r2, [r3, #4]
+ add r2, r1, #0
+ ldrh r5, [r3]
+ add r2, #0x1c
+ strh r5, [r0, r2]
+ add r2, r1, #0
+ ldrh r4, [r3, #2]
+ add r2, #0x1e
+ strh r4, [r0, r2]
+ ldrh r2, [r3, #4]
+ add r3, r1, #0
+ add r3, #0x20
+ strh r2, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x22
+ strh r5, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x24
+ strh r4, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x26
+ strh r2, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x28
+ strh r5, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x2a
+ strh r4, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x2c
+ strh r2, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x2e
+ strh r5, [r0, r3]
+ add r3, r1, #0
+ add r3, #0x30
+ strh r4, [r0, r3]
+ add r1, #0x32
+ strh r2, [r0, r1]
+ bl MOD_021D85F4
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ nop
+_021D840C: .word 0x021D89BC
+_021D8410: .word 0x021D89FC
+_021D8414: .word 0x021D8A3C
+_021D8418: .word 0x021D8A7C
+ thumb_func_end MOD_021D8294
+
+ thumb_func_start MOD_021D841C
+MOD_021D841C: ; 0x021D841C
+ push {r4, r5}
+ cmp r2, #0xff
+ bne _021D8432
+ ldrh r2, [r0]
+ strh r2, [r1]
+ ldrh r2, [r0, #2]
+ strh r2, [r1, #2]
+ ldrh r0, [r0, #4]
+ strh r0, [r1, #4]
+ pop {r4, r5}
+ bx lr
+_021D8432:
+ cmp r2, #0
+ bne _021D8446
+ ldrh r2, [r0, #6]
+ strh r2, [r1]
+ ldrh r2, [r0, #8]
+ strh r2, [r1, #2]
+ ldrh r0, [r0, #0xa]
+ strh r0, [r1, #4]
+ pop {r4, r5}
+ bx lr
+_021D8446:
+ mov r3, #6
+ ldrsh r5, [r0, r3]
+ mov r3, #0xc
+ ldrsh r3, [r0, r3]
+ add r4, r3, #0
+ mul r4, r2
+ add r3, r5, r4
+ strh r3, [r1]
+ mov r3, #8
+ ldrsh r5, [r0, r3]
+ mov r3, #0xe
+ ldrsh r3, [r0, r3]
+ add r4, r3, #0
+ mul r4, r2
+ add r3, r5, r4
+ strh r3, [r1, #2]
+ mov r3, #0xa
+ ldrsh r4, [r0, r3]
+ mov r3, #0x10
+ ldrsh r0, [r0, r3]
+ mul r2, r0
+ add r0, r4, r2
+ strh r0, [r1, #4]
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD_021D841C
+
+ thumb_func_start MOD_021D8478
+MOD_021D8478: ; 0x021D8478
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r0]
+ add r6, r2, #0
+ sub r7, r1, r0
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ mov r1, #0
+ bl _fgr
+ bls _021D84CC
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ bl _ffix
+ b _021D84F2
+_021D84CC:
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+ bl _ffix
+_021D84F2:
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r6]
+ mov r0, #2
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r0]
+ sub r7, r1, r0
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ mov r1, #0
+ bl _fgr
+ bls _021D8544
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ bl _ffix
+ b _021D856A
+_021D8544:
+ add r0, r7, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+ bl _ffix
+_021D856A:
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r6, #2]
+ mov r0, #4
+ ldrsh r1, [r4, r0]
+ ldrsh r0, [r5, r0]
+ sub r4, r1, r0
+ add r0, r4, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ mov r1, #0
+ bl _fgr
+ bls _021D85BC
+ add r0, r4, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ add r1, r0, #0
+ mov r0, #0x3f
+ lsl r0, r0, #0x18
+ bl _fadd
+ bl _ffix
+ b _021D85E2
+_021D85BC:
+ add r0, r4, #0
+ bl _fflt
+ ldr r1, _021D85EC ; =0x45800000
+ bl _fdiv
+ ldr r1, _021D85F0 ; =0x40800000
+ bl _fdiv
+ add r1, r0, #0
+ ldr r0, _021D85EC ; =0x45800000
+ bl _fmul
+ mov r1, #0x3f
+ lsl r1, r1, #0x18
+ bl _fsub
+ bl _ffix
+_021D85E2:
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ strh r0, [r6, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D85EC: .word 0x45800000
+_021D85F0: .word 0x40800000
+ thumb_func_end MOD_021D8478
+
+ thumb_func_start MOD_021D85F4
+MOD_021D85F4: ; 0x021D85F4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #5
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x65
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D885C ; =0x021D89B4
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D8860 ; =0x0000019A
+ lsl r2, r2, #0x18
+ ldr r0, _021D8864 ; =0x021D89C6
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #7
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D8868 ; =0x000001A6
+ lsl r2, r2, #0x18
+ ldr r0, _021D886C ; =0x021D89D8
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ ldr r0, _021D8870 ; =0x021D89EA
+ add r1, r5, r1
+ mov r2, #0
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #9
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D8874 ; =0x021D89FC
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #5
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D8878 ; =0x000001B2
+ lsl r2, r2, #0x18
+ ldr r0, _021D887C ; =0x021D8A0E
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ ldr r1, _021D8880 ; =0x000001BE
+ ldr r0, _021D8884 ; =0x021D8A20
+ add r1, r5, r1
+ mov r2, #0
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #8
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x6e
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D8888 ; =0x021D8A32
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #9
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x71
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D888C ; =0x021D8A44
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ ldr r1, _021D8890 ; =0x000001CA
+ ldr r0, _021D8894 ; =0x021D8A56
+ add r1, r5, r1
+ mov r2, #0
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #7
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D8898 ; =0x000001D6
+ lsl r2, r2, #0x18
+ ldr r0, _021D889C ; =0x021D8A68
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #8
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x1d
+ lsl r1, r1, #4
+ lsl r2, r2, #0x18
+ ldr r0, _021D88A0 ; =0x021D8A7A
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r1, #0x77
+ lsl r1, r1, #2
+ ldr r0, _021D88A4 ; =0x021D8A8C
+ add r1, r5, r1
+ mov r2, #0
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D88A8 ; =0x000001E2
+ lsl r2, r2, #0x18
+ ldr r0, _021D88AC ; =0x021D8A9E
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #7
+ bl FUN_02085290
+ add r2, r0, #0
+ ldr r1, _021D88B0 ; =0x000001EE
+ lsl r2, r2, #0x18
+ ldr r0, _021D88B4 ; =0x021D8AB0
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0x7f
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #8
+ bl FUN_02085290
+ add r2, r0, #0
+ mov r1, #0x7a
+ lsl r1, r1, #2
+ lsl r2, r2, #0x18
+ ldr r0, _021D88B8 ; =0x021D8AC2
+ add r1, r5, r1
+ lsr r2, r2, #0x18
+ bl MOD_021D841C
+ mov r0, #0
+ str r0, [sp, #0x24]
+ mov r0, #0x4d
+ lsl r0, r0, #2
+ add r1, r5, r0
+ str r1, [sp, #0x20]
+ add r1, r0, #0
+ add r1, #0x60
+ add r1, r5, r1
+ str r1, [sp, #0x1c]
+ add r1, r5, #0
+ str r1, [sp, #0x18]
+ add r1, #0xd4
+ str r1, [sp, #0x18]
+ add r1, r0, #6
+ add r1, r5, r1
+ str r1, [sp, #0x14]
+ add r1, r0, #0
+ add r1, #0x66
+ add r1, r5, r1
+ str r1, [sp, #0x10]
+ add r1, r5, #0
+ str r1, [sp, #0xc]
+ add r1, #0xda
+ str r1, [sp, #0xc]
+ add r1, r0, #0
+ add r1, #0xc
+ add r1, r5, r1
+ str r1, [sp, #8]
+ add r1, r0, #0
+ add r1, #0x6c
+ add r1, r5, r1
+ str r1, [sp, #4]
+ add r1, r5, #0
+ str r1, [sp]
+ add r1, #0xe0
+ str r1, [sp]
+ add r1, r0, #0
+ add r1, #0x12
+ add r0, #0x72
+ add r4, r5, #0
+ add r7, r5, r1
+ add r6, r5, r0
+ add r4, #0xe6
+_021D87E2:
+ ldr r0, [sp, #0x18]
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x20]
+ bl MOD_021D8478
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ bl MOD_021D8478
+ ldr r0, [sp]
+ ldr r1, [sp, #4]
+ ldr r2, [sp, #8]
+ bl MOD_021D8478
+ add r0, r4, #0
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD_021D8478
+ ldr r0, [sp, #0x20]
+ add r7, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x1c]
+ add r6, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r4, #0x18
+ add r0, #0x18
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, #0x18
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r0, #0x18
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ add r0, #0x18
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #8]
+ add r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r0, #0x18
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ add r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #4
+ blo _021D87E2
+ mov r0, #0x7d
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D885C: .word 0x021D89B4
+_021D8860: .word 0x0000019A
+_021D8864: .word 0x021D89C6
+_021D8868: .word 0x000001A6
+_021D886C: .word 0x021D89D8
+_021D8870: .word 0x021D89EA
+_021D8874: .word 0x021D89FC
+_021D8878: .word 0x000001B2
+_021D887C: .word 0x021D8A0E
+_021D8880: .word 0x000001BE
+_021D8884: .word 0x021D8A20
+_021D8888: .word 0x021D8A32
+_021D888C: .word 0x021D8A44
+_021D8890: .word 0x000001CA
+_021D8894: .word 0x021D8A56
+_021D8898: .word 0x000001D6
+_021D889C: .word 0x021D8A68
+_021D88A0: .word 0x021D8A7A
+_021D88A4: .word 0x021D8A8C
+_021D88A8: .word 0x000001E2
+_021D88AC: .word 0x021D8A9E
+_021D88B0: .word 0x000001EE
+_021D88B4: .word 0x021D8AB0
+_021D88B8: .word 0x021D8AC2
+ thumb_func_end MOD_021D85F4
+
+ .section .rodata
+ ; 0x021D88BC
+ .incbin "baserom.nds", 0x2C25DC, 0x218
diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s
new file mode 100644
index 00000000..6470d422
--- /dev/null
+++ b/arm9/modules/69/asm/module_69.s
@@ -0,0 +1,4143 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD69_0222D5C0
+MOD69_0222D5C0: ; 0x0222D5C0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #3
+ mov r1, #0x3f
+ lsl r2, r0, #0x10
+ bl FUN_0201681C
+ ldr r1, _0222D70C ; =0x00001B60
+ add r0, r5, #0
+ mov r2, #0x3f
+ bl FUN_02006268
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ mov r2, #0x4e
+ str r0, [r4, #0xc]
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #0x3f
+ bl FUN_0200A86C
+ ldr r1, _0222D710 ; =0x00001B5C
+ str r0, [r4, r1]
+ mov r0, #0x7d
+ lsl r0, r0, #2
+ mov r1, #0x3f
+ bl FUN_020219F4
+ ldr r1, _0222D714 ; =0x00001B54
+ str r0, [r4, r1]
+ mov r0, #0x7d
+ lsl r0, r0, #2
+ mov r1, #0x3f
+ bl FUN_020219F4
+ ldr r1, _0222D718 ; =0x00001B58
+ str r0, [r4, r1]
+ mov r0, #0x3f
+ bl FUN_0200AA80
+ ldr r1, _0222D71C ; =0x00001B50
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #4]
+ bl FUN_0206B9AC
+ add r6, r0, #0
+ mov r5, #0
+ cmp r6, #0
+ ble _0222D664
+ mov r7, #0x7b
+ lsl r7, r7, #2
+_0222D63A:
+ ldr r0, [r4, #0xc]
+ add r1, r5, #0
+ ldr r0, [r0, #4]
+ bl FUN_0206B9B0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222D65E
+ ldr r0, [r4, #4]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ str r5, [r0, r7]
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_0222D65E:
+ add r5, r5, #1
+ cmp r5, r6
+ blt _0222D63A
+_0222D664:
+ add r0, r4, #0
+ bl MOD69_0222DBAC
+ add r0, r4, #0
+ bl MOD69_0222DD54
+ add r0, r4, #0
+ bl MOD69_0222DE98
+ ldr r0, _0222D720 ; =0x00001B3C
+ mov r1, #0
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD69_0222EDCC
+ ldr r1, _0222D724 ; =0x00001B38
+ mov r2, #5
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ ldr r1, _0222D728 ; =0xFFFFF493
+ lsl r2, r2, #0xe
+ bl MOD69_0222EEBC
+ ldr r0, _0222D724 ; =0x00001B38
+ mov r2, #0xf
+ ldr r0, [r4, r0]
+ ldr r1, _0222D72C ; =0xFFFFF923
+ lsl r2, r2, #0xe
+ bl MOD69_0222EEBC
+ ldr r0, _0222D724 ; =0x00001B38
+ mov r2, #0xa
+ ldr r0, [r4, r0]
+ ldr r1, _0222D730 ; =0xFFFFFDB6
+ lsl r2, r2, #0xe
+ bl MOD69_0222EEBC
+ ldr r0, _0222D724 ; =0x00001B38
+ mov r2, #0x23
+ ldr r0, [r4, r0]
+ ldr r1, _0222D734 ; =0x0000024A
+ lsl r2, r2, #0xe
+ bl MOD69_0222EEBC
+ ldr r0, _0222D724 ; =0x00001B38
+ mov r2, #0x1e
+ ldr r0, [r4, r0]
+ ldr r1, _0222D738 ; =0x000006DD
+ lsl r2, r2, #0xe
+ bl MOD69_0222EEBC
+ ldr r0, _0222D724 ; =0x00001B38
+ mov r2, #0xa
+ ldr r0, [r4, r0]
+ ldr r1, _0222D73C ; =0x00000B6D
+ lsl r2, r2, #0x10
+ bl MOD69_0222EEBC
+ add r0, r4, #0
+ bl MOD69_0222F1B0
+ ldr r1, _0222D720 ; =0x00001B3C
+ ldr r2, _0222D740 ; =0x04000304
+ str r0, [r4, r1]
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ mov r0, #0
+ str r0, [r4]
+ ldr r0, _0222D744 ; =MOD69_0222DB2C
+ add r1, r4, #0
+ mov r2, #6
+ bl MOD69_0222DBA4
+ ldr r1, _0222D748 ; =0x00001B34
+ mov r2, #1
+ str r0, [r4, r1]
+ ldr r1, _0222D74C ; =0x00000493
+ mov r0, #8
+ bl FUN_0200433C
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222D70C: .word 0x00001B60
+_0222D710: .word 0x00001B5C
+_0222D714: .word 0x00001B54
+_0222D718: .word 0x00001B58
+_0222D71C: .word 0x00001B50
+_0222D720: .word 0x00001B3C
+_0222D724: .word 0x00001B38
+_0222D728: .word 0xFFFFF493
+_0222D72C: .word 0xFFFFF923
+_0222D730: .word 0xFFFFFDB6
+_0222D734: .word 0x0000024A
+_0222D738: .word 0x000006DD
+_0222D73C: .word 0x00000B6D
+_0222D740: .word 0x04000304
+_0222D744: .word MOD69_0222DB2C
+_0222D748: .word 0x00001B34
+_0222D74C: .word 0x00000493
+
+ thumb_func_start MOD69_0222D750
+MOD69_0222D750: ; 0x0222D750
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r1, [r5]
+ add r6, r0, #0
+ cmp r1, #0
+ beq _0222D762
+ cmp r1, #1
+ beq _0222D7C6
+ b _0222D7D2
+_0222D762:
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, _0222D7D8 ; =0x00001B34
+ ldr r0, [r4, r0]
+ bl FUN_0200CAB4
+ ldr r0, _0222D7DC ; =0x00001B3C
+ ldr r0, [r4, r0]
+ bl MOD69_0222F360
+ ldr r0, _0222D7E0 ; =0x00001B38
+ ldr r0, [r4, r0]
+ bl MOD69_0222F150
+ add r0, r4, #0
+ bl MOD69_0222E1A0
+ add r0, r4, #0
+ bl MOD69_0222DE88
+ add r0, r4, #0
+ bl MOD69_0222DD18
+ ldr r0, _0222D7E4 ; =0x00001B50
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ ldr r0, _0222D7E8 ; =0x00001B54
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0222D7EC ; =0x00001B58
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0222D7F0 ; =0x00001B5C
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ add r0, r6, #0
+ bl FUN_0200627C
+ mov r0, #0x3f
+ bl FUN_020168D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _0222D7D2
+_0222D7C6:
+ bl MOD69_0222F19C
+ cmp r0, #0
+ beq _0222D7D2
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_0222D7D2:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_0222D7D8: .word 0x00001B34
+_0222D7DC: .word 0x00001B3C
+_0222D7E0: .word 0x00001B38
+_0222D7E4: .word 0x00001B50
+_0222D7E8: .word 0x00001B54
+_0222D7EC: .word 0x00001B58
+_0222D7F0: .word 0x00001B5C
+
+ thumb_func_start MOD69_0222D7F4
+MOD69_0222D7F4: ; 0x0222D7F4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ cmp r1, #5
+ bhs _0222D820
+ lsl r2, r1, #2
+ ldr r1, _0222D824 ; =0x0222F7D4
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _0222D81C
+ mov r0, #0
+ str r0, [r4]
+ str r0, [r4, #8]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+_0222D81C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0222D820:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222D824: .word 0x0222F7D4
+
+ thumb_func_start MOD69_0222D828
+MOD69_0222D828: ; 0x0222D828
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0222D83A
+ cmp r0, #1
+ beq _0222D858
+ b _0222D866
+_0222D83A:
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3f
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222D866
+_0222D858:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222D866
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_0222D866:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+
+ thumb_func_start MOD69_0222D86C
+MOD69_0222D86C: ; 0x0222D86C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _0222D87E
+ cmp r0, #1
+ beq _0222D8A6
+ b _0222D8BC
+_0222D87E:
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3f
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #0
+ mov r1, #0x1e
+ bl FUN_020053CC
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222D8BC
+_0222D8A6:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222D8BC
+ bl FUN_02005404
+ cmp r0, #0
+ bne _0222D8BC
+ add sp, #0xc
+ mov r0, #1
+ pop {r3, r4, pc}
+_0222D8BC:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD69_0222D8C4
+MOD69_0222D8C4: ; 0x0222D8C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _0222D8D6
+ sub r0, r1, #1
+ str r0, [r4, #8]
+ mov r0, #0
+ pop {r4, pc}
+_0222D8D6:
+ ldr r1, [r4]
+ cmp r1, #6
+ bhi _0222D9CC
+ add r2, r1, r1
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_0222D8E8: ; jump table
+ .short _0222D8F6 - _0222D8E8 - 2 ; case 0
+ .short _0222D900 - _0222D8E8 - 2 ; case 1
+ .short _0222D920 - _0222D8E8 - 2 ; case 2
+ .short _0222D936 - _0222D8E8 - 2 ; case 3
+ .short _0222D956 - _0222D8E8 - 2 ; case 4
+ .short _0222D978 - _0222D8E8 - 2 ; case 5
+ .short _0222D992 - _0222D8E8 - 2 ; case 6
+_0222D8F6:
+ ldr r0, _0222D9D0 ; =0x0222F960
+ mov r2, #0
+ str r2, [r0]
+ add r0, r1, #1
+ str r0, [r4]
+_0222D900:
+ ldr r1, _0222D9D0 ; =0x0222F960
+ add r0, r4, #0
+ ldr r1, [r1]
+ mov r2, #0
+ bl MOD69_0222E218
+ ldr r1, _0222D9D0 ; =0x0222F960
+ add r0, r4, #0
+ ldr r1, [r1]
+ mov r2, #1
+ bl MOD69_0222E53C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222D9CC
+_0222D920:
+ mov r1, #0
+ bl MOD69_0222DB14
+ cmp r0, #0
+ beq _0222D9CC
+ mov r0, #0x14
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222D9CC
+_0222D936:
+ ldr r1, _0222D9D0 ; =0x0222F960
+ mov r2, #1
+ ldr r1, [r1]
+ mov r3, #0
+ bl MOD69_0222E6FC
+ ldr r1, _0222D9D0 ; =0x0222F960
+ add r0, r4, #0
+ ldr r1, [r1]
+ mov r2, #1
+ bl MOD69_0222E804
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222D9CC
+_0222D956:
+ mov r1, #0
+ bl MOD69_0222DB14
+ cmp r0, #0
+ beq _0222D9CC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD69_0222DB14
+ cmp r0, #0
+ beq _0222D9CC
+ mov r0, #0x1e
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222D9CC
+_0222D978:
+ mov r1, #0
+ bl MOD69_0222EA84
+ ldr r1, _0222D9D0 ; =0x0222F960
+ add r0, r4, #0
+ ldr r1, [r1]
+ mov r2, #1
+ bl MOD69_0222E590
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222D9CC
+_0222D992:
+ mov r1, #0
+ bl MOD69_0222DB14
+ cmp r0, #0
+ beq _0222D9CC
+ ldr r0, _0222D9D0 ; =0x0222F960
+ ldr r0, [r0]
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, _0222D9D0 ; =0x0222F960
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+ ldr r0, [r4, #4]
+ cmp r1, r0
+ bge _0222D9C8
+ mov r0, #0x1e
+ str r0, [r4, #8]
+ mov r0, #1
+ str r0, [r4]
+ b _0222D9CC
+_0222D9C8:
+ mov r0, #1
+ pop {r4, pc}
+_0222D9CC:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0222D9D0: .word 0x0222F960
+
+ thumb_func_start MOD69_0222D9D4
+MOD69_0222D9D4: ; 0x0222D9D4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq _0222D9EA
+ sub r0, r1, #1
+ str r0, [r4, #8]
+ add sp, #0x10
+ mov r0, #0
+ pop {r4, pc}
+_0222D9EA:
+ ldr r1, [r4]
+ cmp r1, #8
+ bhi _0222DAD4
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222D9FC: ; jump table
+ .short _0222DA0E - _0222D9FC - 2 ; case 0
+ .short _0222DA2E - _0222D9FC - 2 ; case 1
+ .short _0222DA44 - _0222D9FC - 2 ; case 2
+ .short _0222DA66 - _0222D9FC - 2 ; case 3
+ .short _0222DA74 - _0222D9FC - 2 ; case 4
+ .short _0222DA90 - _0222D9FC - 2 ; case 5
+ .short _0222DA9E - _0222D9FC - 2 ; case 6
+ .short _0222DAB4 - _0222D9FC - 2 ; case 7
+ .short _0222DAC4 - _0222D9FC - 2 ; case 8
+_0222DA0E:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x3f
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x10]
+ mov r0, #0x69
+ mov r3, #3
+ bl FUN_020068C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222DAD4
+_0222DA2E:
+ mov r1, #0
+ bl MOD69_0222E2D8
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD69_0222E5F0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222DAD4
+_0222DA44:
+ mov r1, #0
+ bl MOD69_0222DB14
+ cmp r0, #0
+ beq _0222DAD4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD69_0222DB14
+ cmp r0, #0
+ beq _0222DAD4
+ mov r0, #0x14
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222DAD4
+_0222DA66:
+ mov r1, #0
+ bl MOD69_0222E644
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222DAD4
+_0222DA74:
+ mov r1, #0
+ bl MOD69_0222DB14
+ cmp r0, #0
+ beq _0222DAD4
+ add r0, r4, #0
+ bl MOD69_0222EB4C
+ mov r0, #0x14
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222DAD4
+_0222DA90:
+ mov r1, #0
+ bl MOD69_0222EC60
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222DAD4
+_0222DA9E:
+ mov r1, #0
+ bl MOD69_0222DB14
+ cmp r0, #0
+ beq _0222DAD4
+ mov r0, #0x14
+ str r0, [r4, #8]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222DAD4
+_0222DAB4:
+ ldr r0, _0222DADC ; =0x00001B3C
+ ldr r0, [r4, r0]
+ bl MOD69_0222F378
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222DAD4
+_0222DAC4:
+ ldr r0, _0222DAE0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _0222DAD4
+ add sp, #0x10
+ mov r0, #1
+ pop {r4, pc}
+_0222DAD4:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222DADC: .word 0x00001B3C
+_0222DAE0: .word 0x021C48B8
+
+ thumb_func_start MOD69_0222DAE4
+MOD69_0222DAE4: ; 0x0222DAE4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _0222DAF4
+ cmp r1, #1
+ beq _0222DB02
+ b _0222DB10
+_0222DAF4:
+ mov r1, #0
+ bl MOD69_0222E6A0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _0222DB10
+_0222DB02:
+ mov r1, #0
+ bl MOD69_0222DB14
+ cmp r0, #0
+ beq _0222DB10
+ mov r0, #1
+ pop {r4, pc}
+_0222DB10:
+ mov r0, #0
+ pop {r4, pc}
+
+ thumb_func_start MOD69_0222DB14
+MOD69_0222DB14: ; 0x0222DB14
+ lsl r1, r1, #2
+ add r1, r0, r1
+ mov r0, #0x6d
+ lsl r0, r0, #6
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _0222DB26
+ mov r0, #1
+ bx lr
+_0222DB26:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD69_0222DB2C
+MOD69_0222DB2C: ; 0x0222DB2C
+ push {r4, lr}
+ sub sp, #8
+ ldr r0, _0222DB94 ; =0x04000600
+ add r4, r1, #0
+ ldr r1, [r0]
+ mov r0, #2
+ lsl r0, r0, #0x1a
+ tst r0, r1
+ bne _0222DB8E
+ bl G3X_ResetMtxStack
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ ldr r0, _0222DB98 ; =0x00001B38
+ ldr r0, [r4, r0]
+ bl MOD69_0222F11C
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #4
+ str r2, [sp, #4]
+ bl FUN_020BB1C0
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ ldr r0, _0222DB9C ; =0x00001B3C
+ ldr r0, [r4, r0]
+ bl MOD69_0222F63C
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #0
+ str r2, [sp]
+ bl FUN_020BB1C0
+ ldr r0, _0222DBA0 ; =0x04000540
+ mov r1, #1
+ str r1, [r0]
+ ldr r0, [r4, #0x24]
+ bl FUN_0201FDEC
+ bl FUN_02009F80
+_0222DB8E:
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0222DB94: .word 0x04000600
+_0222DB98: .word 0x00001B38
+_0222DB9C: .word 0x00001B3C
+_0222DBA0: .word 0x04000540
+
+ thumb_func_start MOD69_0222DBA4
+MOD69_0222DBA4: ; 0x0222DBA4
+ ldr r3, _0222DBA8 ; =FUN_0200CA60
+ bx r3
+ .align 2, 0
+_0222DBA8: .word FUN_0200CA60
+
+ thumb_func_start MOD69_0222DBAC
+MOD69_0222DBAC: ; 0x0222DBAC
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x3f
+ bl FUN_02016B94
+ str r0, [r4, #0x10]
+ ldr r0, _0222DCF4 ; =0x0222F8CC
+ bl FUN_0201E66C
+ ldr r2, _0222DCF8 ; =0x04000304
+ ldr r0, _0222DCFC ; =0xFFFF7FFF
+ ldrh r1, [r2]
+ and r0, r1
+ strh r0, [r2]
+ ldr r0, _0222DD00 ; =0x0222F7C4
+ bl FUN_02016BBC
+ ldr r0, [r4, #0x10]
+ ldr r2, _0222DD04 ; =0x0222F850
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ ldr r2, _0222DD08 ; =0x0222F818
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r4, #0x10]
+ ldr r2, _0222DD0C ; =0x0222F834
+ mov r1, #3
+ mov r3, #0
+ bl FUN_02016C18
+ mov r2, #0
+ str r2, [sp]
+ mov r1, #1
+ ldr r0, [r4, #0x10]
+ add r3, r1, #0
+ bl FUN_02017F48
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ mov r3, #0
+ add r1, r4, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r2, #1
+ str r2, [sp, #0xc]
+ str r2, [sp, #0x10]
+ ldr r0, [r4, #0x10]
+ add r1, #0x14
+ bl FUN_02019064
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019548
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019270
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3f
+ str r0, [sp, #0xc]
+ mov r1, #3
+ ldr r2, [r4, #0x10]
+ mov r0, #0x69
+ add r3, r1, #0
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3f
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #0x10]
+ mov r0, #0x69
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #0x3f
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x69
+ mov r1, #4
+ 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, #0x3f
+ str r0, [sp, #0xc]
+ mov r1, #2
+ ldr r2, [r4, #0x10]
+ mov r0, #0x69
+ add r3, r1, #0
+ bl FUN_020068C8
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_02017CD0
+ ldr r0, _0222DD10 ; =0x04000040
+ mov r1, #0
+ strh r1, [r0]
+ add r4, r0, #0
+ strh r1, [r0, #4]
+ add r4, #8
+ ldrh r3, [r4]
+ mov r2, #0x3f
+ mov r1, #0x1b
+ bic r3, r2
+ orr r1, r3
+ mov r3, #0x20
+ orr r1, r3
+ strh r1, [r4]
+ add r0, #0xa
+ ldrh r4, [r0]
+ mov r1, #0x1f
+ bic r4, r2
+ orr r1, r4
+ orr r1, r3
+ strh r1, [r0]
+ lsl r2, r3, #0x15
+ ldr r1, [r2]
+ ldr r0, _0222DD14 ; =0xFFFF1FFF
+ and r1, r0
+ lsl r0, r3, #8
+ orr r0, r1
+ str r0, [r2]
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_0222DCF4: .word 0x0222F8CC
+_0222DCF8: .word 0x04000304
+_0222DCFC: .word 0xFFFF7FFF
+_0222DD00: .word 0x0222F7C4
+_0222DD04: .word 0x0222F850
+_0222DD08: .word 0x0222F818
+_0222DD0C: .word 0x0222F834
+_0222DD10: .word 0x04000040
+_0222DD14: .word 0xFFFF1FFF
+
+ thumb_func_start MOD69_0222DD18
+MOD69_0222DD18: ; 0x0222DD18
+ push {r4, lr}
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ add r4, r0, #0
+ ldr r1, [r2]
+ ldr r0, _0222DD50 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019178
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+_0222DD50: .word 0xFFFF1FFF
+
+ thumb_func_start MOD69_0222DD54
+MOD69_0222DD54: ; 0x0222DD54
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _0222DDE4 ; =0x04000060
+ ldr r2, _0222DDE8 ; =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, _0222DDEC ; =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, _0222DDF0 ; =0x04000540
+ mov r0, #2
+ str r0, [r1]
+ ldr r0, _0222DDF4 ; =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 r0, _0222DDF8 ; =0x04000008
+ mov r1, #3
+ ldrh r2, [r0]
+ bic r2, r1
+ mov r1, #2
+ orr r1, r2
+ strh r1, [r0]
+ mov r1, #0
+ add r0, #0x48
+ mov r2, #0x18
+ add r3, r1, #0
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ add r0, r4, #0
+ bl MOD69_0222DDFC
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222DDE4: .word 0x04000060
+_0222DDE8: .word 0xFFFFCFFD
+_0222DDEC: .word 0x0000CFFB
+_0222DDF0: .word 0x04000540
+_0222DDF4: .word 0xBFFF0000
+_0222DDF8: .word 0x04000008
+
+ thumb_func_start MOD69_0222DDFC
+MOD69_0222DDFC: ; 0x0222DDFC
+ push {r4, lr}
+ sub sp, #0x18
+ add r4, r0, #0
+ mov r0, #0x3f
+ bl FUN_0201EB64
+ ldr r2, _0222DE80 ; =0x00001B1C
+ ldr r3, _0222DE84 ; =0x00000FA4
+ str r0, [r4, r2]
+ mov r0, #0
+ add r1, r2, #4
+ str r0, [r4, r1]
+ add r1, r2, #0
+ add r1, #8
+ str r0, [r4, r1]
+ add r1, r2, #0
+ add r1, #0xc
+ str r0, [r4, r1]
+ add r1, r2, #0
+ add r1, #0x10
+ strh r0, [r4, r1]
+ add r1, r2, #0
+ add r1, #0x12
+ strh r0, [r4, r1]
+ add r1, r2, #0
+ add r1, #0x14
+ strh r0, [r4, r1]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, r2]
+ mov r1, #5
+ str r0, [sp, #8]
+ add r0, r2, #4
+ add r2, #0x10
+ add r0, r4, r0
+ lsl r1, r1, #0xc
+ add r2, r4, r2
+ 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, _0222DE80 ; =0x00001B1C
+ add r0, sp, #0xc
+ ldr r1, [r4, r1]
+ bl FUN_0201EC58
+ ldr r0, _0222DE80 ; =0x00001B1C
+ ldr r0, [r4, r0]
+ bl FUN_0201EB8C
+ ldr r2, _0222DE80 ; =0x00001B1C
+ mov r0, #1
+ mov r1, #0x7d
+ ldr r2, [r4, r2]
+ lsl r0, r0, #0xc
+ lsl r1, r1, #0xe
+ bl FUN_0201EC94
+ add sp, #0x18
+ pop {r4, pc}
+ nop
+_0222DE80: .word 0x00001B1C
+_0222DE84: .word 0x00000FA4
+
+ thumb_func_start MOD69_0222DE88
+MOD69_0222DE88: ; 0x0222DE88
+ ldr r1, _0222DE90 ; =0x00001B1C
+ ldr r3, _0222DE94 ; =FUN_0201EB70
+ ldr r0, [r0, r1]
+ bx r3
+ .align 2, 0
+_0222DE90: .word 0x00001B1C
+_0222DE94: .word FUN_0201EB70
+
+ thumb_func_start MOD69_0222DE98
+MOD69_0222DE98: ; 0x0222DE98
+ 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, #0x3f
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r4, #0
+ mov r0, #0x40
+ add r1, #0x28
+ mov r2, #0x3f
+ bl FUN_02008C9C
+ str r0, [r4, #0x24]
+ mov r0, #0x3f
+ str r0, [sp]
+ mov r0, #0x1b
+ mov r1, #0x29
+ mov r2, #0
+ add r3, sp, #0x18
+ bl FUN_02006C30
+ mov r1, #0x5b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3f
+ str r0, [sp]
+ mov r0, #0x1b
+ mov r1, #0x2a
+ mov r2, #0
+ add r3, sp, #0x14
+ bl FUN_02006C5C
+ mov r1, #0x17
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r1, [sp, #0x18]
+ ldr r2, [sp, #0x14]
+ add r0, r4, #0
+ bl MOD69_0222DF0C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD69_0222DF0C
+MOD69_0222DF0C: ; 0x0222DF0C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xd4
+ mov r3, #0
+ str r0, [sp, #0x14]
+ str r1, [sp, #0xac]
+ str r2, [sp, #0xb0]
+ str r3, [sp, #0xa4]
+ str r3, [sp, #0xb4]
+ str r3, [sp, #0xb8]
+ str r3, [sp, #0xbc]
+ mov r1, #3
+ add r0, sp, #0xc0
+ strb r1, [r0]
+ add r0, sp, #0x5c
+ str r0, [sp, #0xa0]
+ add r0, sp, #0x48
+ str r0, [sp, #0xa8]
+ ldr r0, [sp, #0x14]
+ mov r1, #0x28
+ ldr r0, [r0, #0x24]
+ add r2, r3, #0
+ str r0, [sp, #0x80]
+ add r0, sp, #0xa0
+ str r0, [sp, #0x84]
+ mov r0, #1
+ str r0, [sp, #0x98]
+ mov r0, #0x3f
+ str r3, [sp, #0x88]
+ str r3, [sp, #0x8c]
+ str r3, [sp, #0x90]
+ str r0, [sp, #0x9c]
+ str r0, [sp]
+ mov r0, #0x1b
+ add r3, sp, #0x44
+ bl FUN_02006BB0
+ str r0, [sp, #0x28]
+ mov r0, #0x1b
+ mov r1, #0x27
+ add r2, sp, #0x40
+ mov r3, #0x3f
+ bl FUN_02006C08
+ str r0, [sp, #0x24]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ bgt _0222DF72
+ b _0222E0D4
+_0222DF72:
+ mov r0, #0x32
+ lsl r0, r0, #6
+ mov r1, #0x5d
+ ldr r5, [sp, #0x14]
+ str r0, [sp, #0x1c]
+ ldr r7, [sp, #0x20]
+ lsl r1, r1, #2
+ add r0, r5, #0
+ add r0, r0, r1
+ str r0, [sp, #0x18]
+ add r1, #0xa8
+ add r0, r5, #0
+ add r4, r0, r1
+ ldr r0, [sp, #0x1c]
+ add r6, r7, #0
+ str r0, [sp, #0x38]
+ str r0, [sp, #0x3c]
+ str r0, [sp, #0x30]
+ str r0, [sp, #0x34]
+_0222DF98:
+ add r0, sp, #0x5c
+ bl FUN_020B1A24
+ add r0, sp, #0x48
+ bl FUN_020B19DC
+ ldr r0, [sp, #0x44]
+ add r1, r7, #0
+ mov r2, #1
+ add r3, sp, #0x5c
+ bl FUN_020B1768
+ ldr r0, [sp, #0x40]
+ add r1, r6, #0
+ mov r2, #1
+ add r3, sp, #0x48
+ bl FUN_020B1240
+ ldr r0, [sp, #0x20]
+ add r0, r0, #1
+ str r0, [sp, #0x94]
+ add r0, sp, #0x80
+ bl FUN_0201FF84
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [sp, #0x14]
+ mov r1, #0x7b
+ ldr r0, [r0, #0xc]
+ lsl r1, r1, #2
+ ldr r0, [r0, #4]
+ ldr r1, [r5, r1]
+ bl FUN_0206B9B0
+ str r0, [sp, #0x2c]
+ ldr r1, [sp, #0x2c]
+ add r0, sp, #0xc4
+ mov r2, #2
+ bl FUN_02068B68
+ ldr r0, [sp, #0x2c]
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x81
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r1, #0
+ ldr r0, [sp, #0x2c]
+ add r2, r1, #0
+ bl FUN_020671BC
+ str r4, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, sp, #0xc4
+ str r0, [sp, #0x10]
+ add r0, sp, #0xc4
+ ldrh r0, [r0]
+ ldrh r1, [r1, #2]
+ ldr r3, _0222E198 ; =0x0222F86C
+ mov r2, #0x3f
+ bl FUN_02012530
+ ldr r1, [sp, #0x30]
+ add r0, r4, #0
+ bl DC_FlushRange
+ ldr r2, [sp, #0x34]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl GX_LoadOBJ
+ mov r1, #0
+ ldr r0, [sp, #0x2c]
+ add r2, r1, #0
+ bl FUN_020671BC
+ str r4, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, sp, #0xc4
+ str r0, [sp, #0x10]
+ add r0, sp, #0xc4
+ ldrh r0, [r0]
+ ldrh r1, [r1, #2]
+ ldr r3, _0222E19C ; =0x0222F87C
+ mov r2, #0x3f
+ bl FUN_02012530
+ ldr r1, [sp, #0x38]
+ add r0, r4, #0
+ bl DC_FlushRange
+ ldr r1, [sp, #0x1c]
+ ldr r2, [sp, #0x3c]
+ add r0, r4, #0
+ bl GX_LoadOBJ
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3f
+ str r0, [sp, #4]
+ add r0, sp, #0xc4
+ add r1, sp, #0xc4
+ ldrh r0, [r0]
+ ldrh r1, [r1, #4]
+ mov r2, #1
+ add r3, r6, #0
+ bl FUN_02006930
+ mov r1, #0x81
+ lsl r1, r1, #2
+ ldr r1, [r5, r1]
+ ldr r0, [sp, #0x18]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02069010
+ mov r0, #0x19
+ lsl r0, r0, #8
+ ldr r1, [sp, #0x1c]
+ add r7, r7, r0
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ add r6, #0x20
+ add r0, #0x14
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x20]
+ add r5, r5, #4
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x14]
+ ldr r1, [r0, #4]
+ ldr r0, [sp, #0x20]
+ cmp r0, r1
+ bge _0222E0D4
+ b _0222DF98
+_0222E0D4:
+ add r0, sp, #0x5c
+ bl FUN_020B1A24
+ add r0, sp, #0x48
+ bl FUN_020B19DC
+ mov r1, #0x96
+ ldr r0, [sp, #0x44]
+ lsl r1, r1, #8
+ mov r2, #1
+ add r3, sp, #0x5c
+ bl FUN_020B1768
+ ldr r0, [sp, #0x40]
+ mov r1, #0xc0
+ mov r2, #1
+ add r3, sp, #0x48
+ bl FUN_020B1240
+ ldr r0, [sp, #0x14]
+ ldr r0, [r0, #0xc]
+ ldr r0, [r0]
+ bl FUN_020239CC
+ cmp r0, #1
+ bne _0222E10C
+ mov r1, #1
+ b _0222E10E
+_0222E10C:
+ mov r1, #0
+_0222E10E:
+ lsl r1, r1, #0x10
+ add r0, sp, #0xc4
+ lsr r1, r1, #0x10
+ bl FUN_020690AC
+ mov r1, #0x87
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ str r0, [sp]
+ add r1, sp, #0xc4
+ ldrh r0, [r1]
+ ldrh r1, [r1, #2]
+ ldr r3, _0222E198 ; =0x0222F86C
+ mov r2, #0x3f
+ bl FUN_02012400
+ mov r1, #0x87
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ mov r1, #0x32
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r1, #0x87
+ mov r2, #0x32
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ mov r1, #0x96
+ lsl r1, r1, #8
+ lsl r2, r2, #6
+ bl GX_LoadOBJ
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3f
+ str r0, [sp, #4]
+ add r1, sp, #0xc4
+ ldrh r0, [r1]
+ ldrh r1, [r1, #4]
+ mov r2, #1
+ mov r3, #0xc0
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp, #0x94]
+ add r0, sp, #0x80
+ bl FUN_0201FF84
+ mov r2, #0x5a
+ ldr r1, [sp, #0x14]
+ lsl r2, r2, #2
+ str r0, [r1, r2]
+ add r0, r1, #0
+ ldr r0, [r0, r2]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [sp, #0x24]
+ bl FUN_02016A18
+ ldr r0, [sp, #0x28]
+ bl FUN_02016A18
+ add sp, #0xd4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222E198: .word 0x0222F86C
+_0222E19C: .word 0x0222F87C
+
+ thumb_func_start MOD69_0222E1A0
+MOD69_0222E1A0: ; 0x0222E1A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #4]
+ mov r4, #0
+ cmp r0, #0
+ ble _0222E1C2
+ mov r7, #0x15
+ add r5, r6, #0
+ lsl r7, r7, #4
+_0222E1B2:
+ ldr r0, [r5, r7]
+ bl FUN_0201FFC8
+ ldr r0, [r6, #4]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0222E1B2
+_0222E1C2:
+ mov r0, #0x17
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ mov r0, #0x5b
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02016A18
+ ldr r0, [r6, #0x24]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD69_0222E1E4
+MOD69_0222E1E4: ; 0x0222E1E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r1, #4]
+ mov r2, #0
+ str r2, [r0]
+ ldr r0, [r1]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+ pop {r4, pc}
+
+ thumb_func_start MOD69_0222E1FC
+MOD69_0222E1FC: ; 0x0222E1FC
+ str r1, [r0]
+ str r2, [r0, #4]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD69_0222E204
+MOD69_0222E204: ; 0x0222E204
+ ldr r3, _0222E210 ; =FUN_0200CA98
+ add r1, r0, #0
+ ldr r0, _0222E214 ; =MOD69_0222E1E4
+ mov r2, #0
+ bx r3
+ nop
+_0222E210: .word FUN_0200CA98
+_0222E214: .word MOD69_0222E1E4
+
+ thumb_func_start MOD69_0222E218
+MOD69_0222E218: ; 0x0222E218
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x2c
+ str r2, [sp]
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r4, r6, r1
+ ldr r1, [sp]
+ add r5, r0, #0
+ lsl r1, r1, #2
+ str r1, [sp, #4]
+ ldr r2, [sp, #4]
+ add r1, r5, #0
+ add r2, r4, r2
+ bl MOD69_0222E1FC
+ lsl r0, r7, #2
+ add r1, r6, r0
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ ldr r3, _0222E298 ; =0x0222F7A8
+ str r0, [r5, #8]
+ lsl r0, r7, #0x1f
+ lsr r2, r0, #0x1c
+ ldr r0, _0222E29C ; =0x0222F7A4
+ ldr r6, [r0, r2]
+ add r0, r5, #0
+ ldr r2, [r3, r2]
+ add r0, #0x18
+ add r1, r6, #0
+ mov r3, #0x1c
+ bl MOD69_0222F680
+ mov r0, #6
+ add r1, r5, #0
+ str r6, [r5, #0xc]
+ lsl r0, r0, #0x10
+ str r0, [r5, #0x10]
+ mov r0, #0
+ str r0, [r5, #0x14]
+ ldr r0, [r5, #8]
+ add r1, #0xc
+ bl FUN_02020044
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0222E2A0 ; =MOD69_0222E2A4
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD69_0222DBA4
+ ldr r1, [sp, #4]
+ str r0, [r4, r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E298: .word 0x0222F7A8
+_0222E29C: .word 0x0222F7A4
+_0222E2A0: .word MOD69_0222E2A4
+
+ thumb_func_start MOD69_0222E2A4
+MOD69_0222E2A4: ; 0x0222E2A4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD69_0222F6A0
+ str r0, [r4, #0xc]
+ add r1, r4, #0
+ ldr r0, [r4, #8]
+ add r1, #0xc
+ bl FUN_02020044
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD69_0222F6C0
+ cmp r0, #0
+ beq _0222E2D6
+ add r0, r4, #0
+ bl MOD69_0222E204
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222E2D6:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD69_0222E2D8
+MOD69_0222E2D8: ; 0x0222E2D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x2c
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r5, r0, #0
+ add r4, r6, r1
+ lsl r7, r7, #2
+ add r1, r5, #0
+ add r2, r4, r7
+ bl MOD69_0222E1FC
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ mov r1, #0x3a
+ str r0, [r5, #8]
+ add r0, r5, #0
+ mov r2, #0x1a
+ add r0, #0x18
+ lsl r1, r1, #0xe
+ lsl r2, r2, #0xe
+ mov r3, #0x1c
+ bl MOD69_0222F680
+ mov r0, #2
+ lsl r0, r0, #0x12
+ str r0, [r5, #0xc]
+ mov r0, #0x3a
+ lsl r0, r0, #0xe
+ str r0, [r5, #0x10]
+ mov r0, #0
+ str r0, [r5, #0x14]
+ add r1, r5, #0
+ ldr r0, [r5, #8]
+ add r1, #0xc
+ bl FUN_02020044
+ ldr r0, [r5, #8]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0222E344 ; =MOD69_0222E348
+ add r1, r5, #0
+ mov r2, #0
+ bl MOD69_0222DBA4
+ str r0, [r4, r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E344: .word MOD69_0222E348
+
+ thumb_func_start MOD69_0222E348
+MOD69_0222E348: ; 0x0222E348
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD69_0222F6A0
+ str r0, [r4, #0x10]
+ add r1, r4, #0
+ ldr r0, [r4, #8]
+ add r1, #0xc
+ bl FUN_02020044
+ add r0, r4, #0
+ add r0, #0x18
+ bl MOD69_0222F6C0
+ cmp r0, #0
+ beq _0222E37A
+ add r0, r4, #0
+ bl MOD69_0222E204
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222E37A:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD69_0222E37C
+MOD69_0222E37C: ; 0x0222E37C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #8
+ bl MOD69_0222F6A0
+ asr r0, r0, #0xc
+ add r2, r0, #0
+ add r2, #0x60
+ cmp r0, #0
+ bge _0222E396
+ mov r0, #0
+_0222E396:
+ cmp r2, #0
+ bge _0222E39C
+ mov r2, #0
+_0222E39C:
+ cmp r0, #0xff
+ ble _0222E3A4
+ mov r2, #0
+ add r0, r2, #0
+_0222E3A4:
+ cmp r2, #0xff
+ ble _0222E3AA
+ mov r2, #0xff
+_0222E3AA:
+ lsl r1, r0, #8
+ mov r0, #0xff
+ lsl r0, r0, #8
+ and r1, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r1
+ ldr r1, _0222E3DC ; =0x04000040
+ strh r0, [r1]
+ ldr r0, _0222E3E0 ; =0x000020A0
+ strh r0, [r1, #4]
+ add r0, r4, #0
+ add r0, #8
+ bl MOD69_0222F6C0
+ cmp r0, #0
+ beq _0222E3D8
+ add r0, r4, #0
+ bl MOD69_0222E204
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222E3D8:
+ pop {r3, r4, r5, pc}
+ nop
+_0222E3DC: .word 0x04000040
+_0222E3E0: .word 0x000020A0
+
+ thumb_func_start MOD69_0222E3E4
+MOD69_0222E3E4: ; 0x0222E3E4
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #8
+ bl MOD69_0222F6A0
+ asr r2, r0, #0xc
+ ldr r0, [r4, #0x24]
+ add r3, r2, r0
+ cmp r2, #0
+ bge _0222E3FE
+ mov r2, #0
+_0222E3FE:
+ cmp r3, #0
+ bge _0222E404
+ mov r3, #0
+_0222E404:
+ cmp r2, #0xbf
+ ble _0222E40C
+ mov r3, #0
+ add r2, r3, #0
+_0222E40C:
+ cmp r3, #0xbf
+ ble _0222E412
+ mov r3, #0xbf
+_0222E412:
+ ldr r0, [r4, #0x1c]
+ ldr r6, [r4, #0x20]
+ lsl r1, r0, #8
+ mov r0, #0xff
+ lsl r0, r0, #8
+ lsl r6, r6, #0x18
+ lsl r2, r2, #8
+ and r1, r0
+ lsr r6, r6, #0x18
+ orr r6, r1
+ ldr r1, _0222E450 ; =0x04000040
+ and r2, r0
+ lsl r0, r3, #0x18
+ lsr r0, r0, #0x18
+ strh r6, [r1]
+ orr r0, r2
+ strh r0, [r1, #4]
+ add r0, r4, #0
+ add r0, #8
+ bl MOD69_0222F6C0
+ cmp r0, #0
+ beq _0222E44C
+ add r0, r4, #0
+ bl MOD69_0222E204
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222E44C:
+ pop {r4, r5, r6, pc}
+ nop
+_0222E450: .word 0x04000040
+
+ thumb_func_start MOD69_0222E454
+MOD69_0222E454: ; 0x0222E454
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #8
+ bl MOD69_0222F6A0
+ asr r4, r0, #0xc
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD69_0222F6A0
+ asr r2, r0, #0xc
+ cmp r4, #0
+ bge _0222E474
+ mov r4, #0
+_0222E474:
+ cmp r2, #0
+ bge _0222E47A
+ mov r2, #0
+_0222E47A:
+ cmp r4, #0xff
+ ble _0222E482
+ mov r2, #0
+ add r4, r2, #0
+_0222E482:
+ cmp r2, #0xff
+ ble _0222E488
+ mov r2, #0xff
+_0222E488:
+ ldr r0, [r5, #0x30]
+ mov r3, #0xff
+ lsl r2, r2, #0x18
+ ldr r1, [r5, #0x34]
+ lsl r4, r4, #8
+ lsl r3, r3, #8
+ and r4, r3
+ lsr r2, r2, #0x18
+ lsl r0, r0, #8
+ orr r4, r2
+ ldr r2, _0222E4C4 ; =0x04000040
+ and r3, r0
+ lsl r0, r1, #0x18
+ lsr r0, r0, #0x18
+ strh r4, [r2]
+ orr r0, r3
+ strh r0, [r2, #4]
+ add r0, r5, #0
+ add r0, #8
+ bl MOD69_0222F6C0
+ cmp r0, #0
+ beq _0222E4C2
+ add r0, r5, #0
+ bl MOD69_0222E204
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0222E4C2:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E4C4: .word 0x04000040
+
+ thumb_func_start MOD69_0222E4C8
+MOD69_0222E4C8: ; 0x0222E4C8
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #8
+ bl MOD69_0222F6A0
+ asr r4, r0, #0xc
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD69_0222F6A0
+ asr r2, r0, #0xc
+ cmp r4, #0
+ bge _0222E4E8
+ mov r4, #0
+_0222E4E8:
+ cmp r2, #0
+ bge _0222E4EE
+ mov r2, #0
+_0222E4EE:
+ cmp r4, #0xbf
+ ble _0222E4F6
+ mov r2, #0
+ add r4, r2, #0
+_0222E4F6:
+ cmp r2, #0xbf
+ ble _0222E4FC
+ mov r2, #0xbf
+_0222E4FC:
+ ldr r0, [r5, #0x30]
+ ldr r3, [r5, #0x34]
+ lsl r1, r0, #8
+ mov r0, #0xff
+ lsl r0, r0, #8
+ lsl r3, r3, #0x18
+ and r1, r0
+ lsr r3, r3, #0x18
+ orr r3, r1
+ ldr r1, _0222E538 ; =0x04000040
+ strh r3, [r1]
+ lsl r3, r4, #8
+ and r3, r0
+ lsl r0, r2, #0x18
+ lsr r0, r0, #0x18
+ orr r0, r3
+ strh r0, [r1, #4]
+ add r0, r5, #0
+ add r0, #8
+ bl MOD69_0222F6C0
+ cmp r0, #0
+ beq _0222E536
+ add r0, r5, #0
+ bl MOD69_0222E204
+ add r0, r6, #0
+ bl FUN_0200CAB4
+_0222E536:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E538: .word 0x04000040
+
+ thumb_func_start MOD69_0222E53C
+MOD69_0222E53C: ; 0x0222E53C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r7, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x1c
+ add r6, r2, #0
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r5, r0, #0
+ add r4, r4, r1
+ lsl r6, r6, #2
+ add r1, r5, #0
+ add r2, r4, r6
+ bl MOD69_0222E1FC
+ lsl r0, r7, #0x1f
+ lsr r2, r0, #0x1c
+ ldr r1, _0222E584 ; =0x0222F7B4
+ add r0, r5, #0
+ ldr r3, _0222E588 ; =0x0222F7B8
+ ldr r1, [r1, r2]
+ ldr r2, [r3, r2]
+ add r0, #8
+ mov r3, #0x1c
+ bl MOD69_0222F680
+ ldr r0, _0222E58C ; =MOD69_0222E37C
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD69_0222DBA4
+ str r0, [r4, r6]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E584: .word 0x0222F7B4
+_0222E588: .word 0x0222F7B8
+_0222E58C: .word MOD69_0222E37C
+
+ thumb_func_start MOD69_0222E590
+MOD69_0222E590: ; 0x0222E590
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r7, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x28
+ add r6, r2, #0
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r5, r0, #0
+ add r4, r4, r1
+ lsl r6, r6, #2
+ add r1, r5, #0
+ add r2, r4, r6
+ bl MOD69_0222E1FC
+ add r0, r5, #0
+ mov r1, #2
+ ldr r2, _0222E5E4 ; =0xFFF60000
+ add r0, #8
+ lsl r1, r1, #0x10
+ mov r3, #0x1c
+ bl MOD69_0222F680
+ lsl r0, r7, #0x1f
+ lsr r1, r0, #0x1d
+ ldr r0, _0222E5E8 ; =0x0222F790
+ mov r2, #1
+ ldr r0, [r0, r1]
+ add r1, r5, #0
+ str r0, [r5, #0x1c]
+ add r0, #0x60
+ str r0, [r5, #0x20]
+ mov r0, #0x80
+ str r0, [r5, #0x24]
+ ldr r0, _0222E5EC ; =MOD69_0222E3E4
+ bl MOD69_0222DBA4
+ str r0, [r4, r6]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E5E4: .word 0xFFF60000
+_0222E5E8: .word 0x0222F790
+_0222E5EC: .word MOD69_0222E3E4
+
+ thumb_func_start MOD69_0222E5F0
+MOD69_0222E5F0: ; 0x0222E5F0
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r6, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x28
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r5, r0, #0
+ add r4, r4, r1
+ lsl r6, r6, #2
+ add r1, r5, #0
+ add r2, r4, r6
+ bl MOD69_0222E1FC
+ add r0, r5, #0
+ mov r2, #6
+ ldr r1, _0222E63C ; =0xFFF70000
+ add r0, #8
+ lsl r2, r2, #0xe
+ mov r3, #0x1c
+ bl MOD69_0222F680
+ mov r0, #0x58
+ str r0, [r5, #0x1c]
+ mov r0, #0xa8
+ str r0, [r5, #0x20]
+ mov r0, #0x90
+ str r0, [r5, #0x24]
+ ldr r0, _0222E640 ; =MOD69_0222E3E4
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD69_0222DBA4
+ str r0, [r4, r6]
+ pop {r4, r5, r6, pc}
+ nop
+_0222E63C: .word 0xFFF70000
+_0222E640: .word MOD69_0222E3E4
+
+ thumb_func_start MOD69_0222E644
+MOD69_0222E644: ; 0x0222E644
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r6, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x38
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r5, r0, #0
+ add r4, r4, r1
+ lsl r6, r6, #2
+ add r1, r5, #0
+ add r2, r4, r6
+ bl MOD69_0222E1FC
+ add r0, r5, #0
+ mov r1, #0x16
+ add r0, #8
+ lsl r1, r1, #0xe
+ mov r2, #0
+ mov r3, #0xc
+ bl MOD69_0222F680
+ add r0, r5, #0
+ mov r1, #0x2a
+ mov r2, #0xff
+ add r0, #0x1c
+ lsl r1, r1, #0xe
+ lsl r2, r2, #0xc
+ mov r3, #0xc
+ bl MOD69_0222F680
+ mov r0, #0x18
+ str r0, [r5, #0x30]
+ add r0, #0x90
+ str r0, [r5, #0x34]
+ ldr r0, _0222E69C ; =MOD69_0222E454
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD69_0222DBA4
+ str r0, [r4, r6]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E69C: .word MOD69_0222E454
+
+ thumb_func_start MOD69_0222E6A0
+MOD69_0222E6A0: ; 0x0222E6A0
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r6, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x38
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r5, r0, #0
+ add r4, r4, r1
+ lsl r6, r6, #2
+ add r1, r5, #0
+ add r2, r4, r6
+ bl MOD69_0222E1FC
+ mov r1, #6
+ add r0, r5, #0
+ lsl r1, r1, #0xe
+ add r0, #8
+ lsl r2, r1, #2
+ mov r3, #0x18
+ bl MOD69_0222F680
+ add r0, r5, #0
+ mov r1, #0x2a
+ mov r2, #6
+ add r0, #0x1c
+ lsl r1, r1, #0xe
+ lsl r2, r2, #0x10
+ mov r3, #0x18
+ bl MOD69_0222F680
+ mov r0, #0
+ str r0, [r5, #0x30]
+ mov r0, #0xff
+ str r0, [r5, #0x34]
+ ldr r0, _0222E6F8 ; =MOD69_0222E4C8
+ add r1, r5, #0
+ mov r2, #1
+ bl MOD69_0222DBA4
+ str r0, [r4, r6]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E6F8: .word MOD69_0222E4C8
+
+ thumb_func_start MOD69_0222E6FC
+MOD69_0222E6FC: ; 0x0222E6FC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x74
+ str r2, [sp]
+ str r3, [sp, #4]
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r7, r5, r1
+ ldr r1, [sp, #4]
+ add r4, r0, #0
+ lsl r1, r1, #2
+ str r1, [sp, #0xc]
+ ldr r2, [sp, #0xc]
+ add r1, r4, #0
+ add r2, r7, r2
+ bl MOD69_0222E1FC
+ lsl r0, r6, #2
+ str r0, [sp, #8]
+ add r1, r5, r0
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r1, [r1, r0]
+ add r0, #0x24
+ str r1, [r4, #8]
+ add r1, r5, r0
+ mov r0, #0x14
+ mul r0, r6
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x10
+ str r1, [r4, #0xc]
+ bl FUN_02008010
+ ldr r0, [sp]
+ str r0, [r4, #0x6c]
+ ldr r0, [sp, #8]
+ add r1, r5, r0
+ mov r0, #0x81
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ str r0, [r4, #0x70]
+ ldr r0, [r4, #8]
+ bl FUN_02020350
+ add r3, r4, #0
+ add r5, r0, #0
+ add r3, #0x24
+ mov r2, #4
+_0222E768:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E768
+ ldr r0, [r5]
+ add r5, r4, #0
+ str r0, [r3]
+ add r3, r4, #0
+ add r5, #0x24
+ add r3, #0x48
+ mov r2, #4
+_0222E77E:
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E77E
+ ldr r0, [r5]
+ str r0, [r3]
+ add r0, r4, #0
+ add r0, #0x48
+ bl FUN_020B1A24
+ mov r3, #0x19
+ add r0, r4, #0
+ lsl r3, r3, #8
+ add r2, r6, #0
+ mul r2, r3
+ lsr r3, r3, #1
+ add r0, #0x48
+ mov r1, #1
+ add r2, r2, r3
+ bl FUN_020B1A1C
+ ldr r0, _0222E7BC ; =MOD69_0222E7C0
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ ldr r1, [sp, #0xc]
+ str r0, [r7, r1]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E7BC: .word MOD69_0222E7C0
+
+ thumb_func_start MOD69_0222E7C0
+MOD69_0222E7C0: ; 0x0222E7C0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0
+ beq _0222E7DA
+ ldr r0, [r4, #0x70]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02005578
+ mov r0, #0
+ str r0, [r4, #0x6c]
+_0222E7DA:
+ add r0, r4, #0
+ add r0, #0x10
+ bl FUN_02008030
+ add r2, r0, #0
+ bmi _0222E7F6
+ mov r1, #0x24
+ ldr r0, [r4, #8]
+ add r4, #0x24
+ mul r1, r2
+ add r1, r4, r1
+ bl FUN_02020334
+ pop {r3, r4, r5, pc}
+_0222E7F6:
+ add r0, r4, #0
+ bl MOD69_0222E204
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD69_0222E804
+MOD69_0222E804: ; 0x0222E804
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x38
+ str r2, [sp]
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r6, r5, r1
+ ldr r1, [sp]
+ add r4, r0, #0
+ lsl r1, r1, #2
+ str r1, [sp, #4]
+ ldr r2, [sp, #4]
+ add r1, r4, #0
+ add r2, r6, r2
+ bl MOD69_0222E1FC
+ str r5, [r4, #8]
+ ldr r0, [r5, #0x10]
+ ldr r1, _0222E894 ; =0x00001B50
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ add r0, #0x14
+ str r0, [r4, #0x10]
+ ldr r0, [r5, r1]
+ str r0, [r4, #0x14]
+ add r0, r1, #4
+ ldr r0, [r5, r0]
+ str r0, [r4, #0x18]
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ add r1, #0xc
+ str r0, [r4, #0x1c]
+ ldr r0, [r5, r1]
+ str r0, [r4, #0x20]
+ mov r0, #1
+ tst r0, r7
+ beq _0222E85E
+ mov r0, #0
+ b _0222E860
+_0222E85E:
+ mov r0, #0x78
+_0222E860:
+ lsl r1, r7, #2
+ str r0, [r4, #0x2c]
+ ldr r0, [r5, #0xc]
+ add r2, r5, r1
+ mov r1, #0x7b
+ lsl r1, r1, #2
+ ldr r0, [r0, #4]
+ ldr r1, [r2, r1]
+ bl FUN_0206B9B0
+ str r0, [r4, #0x24]
+ ldr r0, [r5, #0xc]
+ mov r2, #0
+ ldr r0, [r0]
+ add r1, r4, #0
+ str r0, [r4, #0x28]
+ str r2, [r4, #0x30]
+ ldr r0, _0222E898 ; =MOD69_0222E9AC
+ str r2, [r4, #0x34]
+ bl FUN_0200CA44
+ ldr r1, [sp, #4]
+ str r0, [r6, r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E894: .word 0x00001B50
+_0222E898: .word MOD69_0222E9AC
+
+ thumb_func_start MOD69_0222E89C
+MOD69_0222E89C: ; 0x0222E89C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r0, [r5, #0x1c]
+ add r4, r1, #0
+ bl FUN_02021D5C
+ mov r6, #0
+ str r0, [sp, #0x10]
+ cmp r0, #0
+ ble _0222E8F2
+_0222E8B2:
+ ldr r0, [r5, #0x18]
+ ldr r1, [r5, #0x1c]
+ add r2, r6, #0
+ bl FUN_02021D9C
+ mov r0, #0
+ ldr r1, [r5, #0x18]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x88
+ sub r0, r1, r0
+ lsr r7, r0, #1
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0222E8F8 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r3, [r5, #0x2c]
+ ldr r0, [r5, #0x10]
+ ldr r2, [r5, #0x18]
+ add r3, r3, r7
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r4, #0x10
+ cmp r6, r0
+ blt _0222E8B2
+_0222E8F2:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222E8F8: .word 0x00010200
+
+ thumb_func_start MOD69_0222E8FC
+MOD69_0222E8FC: ; 0x0222E8FC
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200AC60
+ ldr r0, [r4, #0x24]
+ bl FUN_020687C0
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r4, #0x14]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x24]
+ bl FUN_020689E0
+ cmp r0, #0
+ beq _0222E93C
+ cmp r0, #1
+ beq _0222E948
+ cmp r0, #2
+ b _0222E954
+_0222E93C:
+ ldr r0, [r4, #0x20]
+ ldr r2, [r4, #0x18]
+ mov r1, #1
+ bl FUN_0200A8E0
+ b _0222E95E
+_0222E948:
+ ldr r0, [r4, #0x20]
+ ldr r2, [r4, #0x18]
+ mov r1, #2
+ bl FUN_0200A8E0
+ b _0222E95E
+_0222E954:
+ ldr r0, [r4, #0x20]
+ ldr r2, [r4, #0x18]
+ mov r1, #3
+ bl FUN_0200A8E0
+_0222E95E:
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x1c]
+ ldr r2, [r4, #0x18]
+ bl FUN_0200B7B8
+ add sp, #8
+ pop {r4, pc}
+
+ thumb_func_start MOD69_0222E96C
+MOD69_0222E96C: ; 0x0222E96C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ ldr r1, [r5, #0x24]
+ ldr r2, [r5, #0x28]
+ bl MOD69_0222F6C4
+ add r4, r0, #0
+ beq _0222E982
+ cmp r4, #1
+ bne _0222E996
+_0222E982:
+ ldr r0, [r5, #0x24]
+ mov r1, #0x98
+ mov r2, #0
+ bl FUN_020671BC
+ add r2, r0, #0
+ ldr r0, [r5, #0x14]
+ mov r1, #0
+ bl FUN_0200AFF4
+_0222E996:
+ ldr r0, [r5, #0x20]
+ ldr r2, [r5, #0x18]
+ add r1, r4, #5
+ bl FUN_0200A8E0
+ ldr r0, [r5, #0x14]
+ ldr r1, [r5, #0x1c]
+ ldr r2, [r5, #0x18]
+ bl FUN_0200B7B8
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD69_0222E9AC
+MOD69_0222E9AC: ; 0x0222E9AC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _0222E9BE
+ sub r0, r0, #1
+ str r0, [r4, #0x30]
+ pop {r3, r4, r5, pc}
+_0222E9BE:
+ ldr r0, [r4, #0x34]
+ cmp r0, #3
+ bhi _0222EA82
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E9D0: ; jump table
+ .short _0222E9D8 - _0222E9D0 - 2 ; case 0
+ .short _0222E9FC - _0222E9D0 - 2 ; case 1
+ .short _0222EA2E - _0222E9D0 - 2 ; case 2
+ .short _0222EA76 - _0222E9D0 - 2 ; case 3
+_0222E9D8:
+ ldr r0, [r4, #0x20]
+ ldr r2, [r4, #0x1c]
+ mov r1, #0
+ bl FUN_0200A8E0
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD69_0222E89C
+ ldr r0, [r4, #0x10]
+ bl FUN_02019548
+ mov r0, #0x14
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x34]
+ add r0, r0, #1
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, pc}
+_0222E9FC:
+ ldr r0, [r4, #0x24]
+ ldr r2, [r4, #0x1c]
+ mov r1, #0x76
+ bl FUN_020671BC
+ add r0, r4, #0
+ mov r1, #0x48
+ bl MOD69_0222E89C
+ add r0, r4, #0
+ bl MOD69_0222E8FC
+ add r0, r4, #0
+ mov r1, #0x58
+ bl MOD69_0222E89C
+ ldr r0, [r4, #0x10]
+ bl FUN_02019548
+ mov r0, #0x14
+ str r0, [r4, #0x30]
+ ldr r0, [r4, #0x34]
+ add r0, r0, #1
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, pc}
+_0222EA2E:
+ ldr r0, [r4, #0x24]
+ bl FUN_020690E4
+ add r2, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl FUN_0200AD18
+ ldr r0, [r4, #0x20]
+ ldr r2, [r4, #0x18]
+ mov r1, #4
+ bl FUN_0200A8E0
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x1c]
+ ldr r2, [r4, #0x18]
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ mov r1, #0x78
+ bl MOD69_0222E89C
+ add r0, r4, #0
+ bl MOD69_0222E96C
+ add r0, r4, #0
+ mov r1, #0x88
+ bl MOD69_0222E89C
+ ldr r0, [r4, #0x10]
+ bl FUN_02019548
+ ldr r0, [r4, #0x34]
+ add r0, r0, #1
+ str r0, [r4, #0x34]
+ pop {r3, r4, r5, pc}
+_0222EA76:
+ add r0, r4, #0
+ bl MOD69_0222E204
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222EA82:
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start MOD69_0222EA84
+MOD69_0222EA84: ; 0x0222EA84
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r7, r1, #0
+ mov r0, #0x3f
+ mov r1, #0x30
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r4, r0, #0
+ add r6, r5, r1
+ lsl r7, r7, #2
+ add r1, r4, #0
+ add r2, r6, r7
+ bl MOD69_0222E1FC
+ ldr r0, [r5, #0x10]
+ add r5, #0x14
+ str r0, [r4, #0xc]
+ add r0, r4, #0
+ str r5, [r4, #0x10]
+ mov r2, #1
+ str r2, [r4, #0x2c]
+ mov r1, #0
+ add r0, #0x14
+ lsl r2, r2, #0x14
+ mov r3, #0x1c
+ str r1, [r4, #0x28]
+ bl MOD69_0222F680
+ ldr r0, _0222EAD0 ; =MOD69_0222EAD4
+ add r1, r4, #0
+ mov r2, #0
+ bl MOD69_0222DBA4
+ str r0, [r6, r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222EAD0: .word MOD69_0222EAD4
+
+ thumb_func_start MOD69_0222EAD4
+MOD69_0222EAD4: ; 0x0222EAD4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _0222EAEA
+ cmp r0, #1
+ beq _0222EB16
+ cmp r0, #2
+ beq _0222EB2C
+ pop {r3, r4, r5, pc}
+_0222EAEA:
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD69_0222F6A0
+ ldr r1, [r4, #0x2c]
+ asr r3, r0, #0xc
+ lsl r1, r1, #0x18
+ ldr r0, [r4, #0xc]
+ lsr r1, r1, #0x18
+ mov r2, #3
+ bl FUN_020179E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD69_0222F6C0
+ cmp r0, #0
+ beq _0222EB48
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, pc}
+_0222EB16:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r4, #0x10]
+ bl FUN_02019548
+ ldr r0, [r4, #0x28]
+ add r0, r0, #1
+ str r0, [r4, #0x28]
+ pop {r3, r4, r5, pc}
+_0222EB2C:
+ ldr r1, [r4, #0x2c]
+ ldr r0, [r4, #0xc]
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r0, r4, #0
+ bl MOD69_0222E204
+ add r0, r5, #0
+ bl FUN_0200CAB4
+_0222EB48:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD69_0222EB4C
+MOD69_0222EB4C: ; 0x0222EB4C
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r2, _0222EC50 ; =0x00001B5C
+ add r4, r0, #0
+ ldr r0, [r4, r2]
+ sub r2, #8
+ ldr r2, [r4, r2]
+ mov r1, #0xc
+ bl FUN_0200A8E0
+ ldr r1, _0222EC54 ; =0x00001B54
+ mov r0, #0
+ ldr r1, [r4, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #1
+ lsl r1, r1, #8
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0222EC58 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r2, _0222EC54 ; =0x00001B54
+ str r1, [sp, #0xc]
+ ldr r2, [r4, r2]
+ add r0, #0x14
+ bl FUN_0201BDE0
+ ldr r0, _0222EC5C ; =0x00001B50
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200ABC0
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0]
+ bl FUN_020239C0
+ add r2, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ ldr r0, _0222EC5C ; =0x00001B50
+ str r1, [sp, #4]
+ ldr r0, [r4, r0]
+ mov r3, #5
+ bl FUN_0200AD38
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #8]
+ bl FUN_02029EBC
+ add r2, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0222EC5C ; =0x00001B50
+ mov r1, #2
+ ldr r0, [r4, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [r4, #0xc]
+ ldr r0, [r0, #8]
+ bl FUN_02029EC0
+ mov r3, #2
+ add r2, r0, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _0222EC5C ; =0x00001B50
+ mov r1, #3
+ ldr r0, [r4, r0]
+ bl FUN_0200AD38
+ ldr r2, _0222EC50 ; =0x00001B5C
+ mov r1, #0xd
+ ldr r0, [r4, r2]
+ sub r2, r2, #4
+ ldr r2, [r4, r2]
+ bl FUN_0200A8E0
+ ldr r2, _0222EC5C ; =0x00001B50
+ add r1, r2, #4
+ ldr r0, [r4, r2]
+ add r2, #8
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ bl FUN_0200B7B8
+ ldr r1, _0222EC54 ; =0x00001B54
+ mov r0, #0
+ ldr r1, [r4, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #1
+ lsl r1, r1, #8
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #0xac
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0222EC58 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ ldr r2, _0222EC54 ; =0x00001B54
+ str r1, [sp, #0xc]
+ ldr r2, [r4, r2]
+ add r0, #0x14
+ bl FUN_0201BDE0
+ add r4, #0x14
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222EC50: .word 0x00001B5C
+_0222EC54: .word 0x00001B54
+_0222EC58: .word 0x00010200
+_0222EC5C: .word 0x00001B50
+
+ thumb_func_start MOD69_0222EC60
+MOD69_0222EC60: ; 0x0222EC60
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #0x3f
+ mov r1, #0xdc
+ bl FUN_02016998
+ mov r1, #0x6d
+ lsl r1, r1, #6
+ add r1, r5, r1
+ str r1, [sp, #0xc]
+ lsl r1, r6, #2
+ str r1, [sp, #0x10]
+ add r4, r0, #0
+ ldr r3, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ add r1, r4, #0
+ add r2, r3, r2
+ bl MOD69_0222E1FC
+ mov r0, #0x15
+ lsl r0, r0, #4
+ str r5, [r4, #0xc]
+ add r0, r5, r0
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ str r0, [sp, #8]
+ str r0, [r4, #0x18]
+ ldr r0, [r5, #4]
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ ble _0222ECE8
+ ldr r0, _0222ED24 ; =0x0222F8F4
+ ldr r5, [sp, #8]
+ str r0, [sp, #4]
+ add r7, r4, #0
+ add r6, r0, #0
+_0222ECAE:
+ ldr r3, [sp, #4]
+ add r2, r7, #0
+ ldmia r3!, {r0, r1}
+ add r2, #0x94
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ add r1, r6, #0
+ str r0, [r2]
+ ldr r0, [r4, #8]
+ ldr r0, [r0, r5]
+ bl FUN_02020044
+ ldr r0, [r4, #8]
+ mov r1, #1
+ ldr r0, [r0, r5]
+ bl FUN_020200A0
+ ldr r0, [sp, #4]
+ ldr r1, [r4, #0x14]
+ add r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, [sp, #8]
+ add r7, #0xc
+ add r0, r0, #1
+ add r6, #0xc
+ add r5, r5, #4
+ str r0, [sp, #8]
+ cmp r0, r1
+ blt _0222ECAE
+_0222ECE8:
+ mov r0, #0
+ add r7, r4, #0
+ ldr r6, _0222ED28 ; =0x0222F7E8
+ ldr r5, _0222ED24 ; =0x0222F8F4
+ str r0, [sp]
+ add r7, #0x1c
+_0222ECF4:
+ ldr r1, [r5]
+ ldr r2, [r6]
+ add r0, r7, #0
+ mov r3, #8
+ bl MOD69_0222F680
+ ldr r0, [sp]
+ add r6, r6, #4
+ add r0, r0, #1
+ add r5, #0xc
+ add r7, #0x14
+ str r0, [sp]
+ cmp r0, #6
+ blt _0222ECF4
+ ldr r0, _0222ED2C ; =MOD69_0222ED30
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+ ldr r2, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ str r0, [r2, r1]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222ED24: .word 0x0222F8F4
+_0222ED28: .word 0x0222F7E8
+_0222ED2C: .word MOD69_0222ED30
+
+ thumb_func_start MOD69_0222ED30
+MOD69_0222ED30: ; 0x0222ED30
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, [r5, #0x10]
+ mov r4, #0
+ str r0, [sp]
+ cmp r1, #0
+ ble _0222ED84
+ add r0, r5, #0
+ str r0, [sp, #8]
+ add r0, #0x1c
+ add r7, r5, #0
+ str r0, [sp, #8]
+ str r5, [sp, #4]
+ add r7, #0x94
+ add r6, r4, #0
+_0222ED50:
+ ldr r0, [sp, #8]
+ bl MOD69_0222F6A0
+ ldr r1, [sp, #4]
+ add r1, #0x94
+ str r0, [r1]
+ ldr r0, [r5, #0x14]
+ cmp r4, r0
+ bge _0222ED6C
+ ldr r0, [r5, #8]
+ add r1, r7, #0
+ ldr r0, [r0, r6]
+ bl FUN_02020044
+_0222ED6C:
+ ldr r0, [sp, #8]
+ ldr r1, [r5, #0x10]
+ add r0, #0x14
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r4, r4, #1
+ add r0, #0xc
+ str r0, [sp, #4]
+ add r7, #0xc
+ add r6, r6, #4
+ cmp r4, r1
+ blt _0222ED50
+_0222ED84:
+ ldr r0, [r5, #0x18]
+ cmp r0, #0
+ beq _0222ED92
+ sub r0, r0, #1
+ add sp, #0xc
+ str r0, [r5, #0x18]
+ pop {r4, r5, r6, r7, pc}
+_0222ED92:
+ cmp r1, #6
+ bge _0222EDA4
+ mov r0, #4
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x10]
+ add sp, #0xc
+ add r0, r0, #1
+ str r0, [r5, #0x10]
+ pop {r4, r5, r6, r7, pc}
+_0222EDA4:
+ ldr r0, [r5, #0x14]
+ add r2, r5, #0
+ sub r1, r0, #1
+ mov r0, #0x14
+ add r2, #0x1c
+ mul r0, r1
+ add r0, r2, r0
+ bl MOD69_0222F6C0
+ cmp r0, #0
+ beq _0222EDC6
+ add r0, r5, #0
+ bl MOD69_0222E204
+ ldr r0, [sp]
+ bl FUN_0200CAB4
+_0222EDC6:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+
+ thumb_func_start MOD69_0222EDCC
+MOD69_0222EDCC: ; 0x0222EDCC
+ push {r3, r4, r5, lr}
+ ldr r1, _0222EE10 ; =0x00000844
+ add r5, r0, #0
+ mov r0, #0x3f
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _0222EE0C
+ ldr r0, _0222EE14 ; =0x0222F940
+ mov r1, #1
+ str r1, [r0]
+ ldr r0, _0222EE18 ; =0x0222F960
+ mov r1, #2
+ str r1, [r0, #4]
+ ldr r0, _0222EE1C ; =0x0000083C
+ mov r1, #0
+ str r1, [r4, r0]
+ ldr r0, _0222EE20 ; =MOD69_0222EE80
+ add r1, r4, #0
+ mov r2, #5
+ bl MOD69_0222DBA4
+ ldr r1, _0222EE24 ; =0x00000838
+ mov r2, #3
+ str r0, [r4, r1]
+ add r1, #8
+ str r5, [r4, r1]
+ ldr r0, _0222EE28 ; =MOD69_0222EE2C
+ add r1, r4, #0
+ bl MOD69_0222DBA4
+ pop {r3, r4, r5, pc}
+_0222EE0C:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222EE10: .word 0x00000844
+_0222EE14: .word 0x0222F940
+_0222EE18: .word 0x0222F960
+_0222EE1C: .word 0x0000083C
+_0222EE20: .word MOD69_0222EE80
+_0222EE24: .word 0x00000838
+_0222EE28: .word MOD69_0222EE2C
+
+ thumb_func_start MOD69_0222EE2C
+MOD69_0222EE2C: ; 0x0222EE2C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, _0222EE70 ; =0x0222F940
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _0222EE60
+ add r1, r4, #0
+ mov r2, #2
+ add r0, r4, #0
+ add r1, #0x14
+ lsl r2, r2, #0xa
+ bl G3_BeginMakeDL
+ ldr r1, _0222EE74 ; =0x00007FFF
+ ldr r2, _0222EE78 ; =0x00004210
+ add r0, r4, #0
+ mov r3, #0
+ bl G3B_MaterialColorDiffAmb
+ mov r2, #0
+ ldr r1, _0222EE78 ; =0x00004210
+ add r0, r4, #0
+ add r3, r2, #0
+ bl G3B_MaterialColorSpecEmi
+ pop {r4, pc}
+_0222EE60:
+ ldr r1, _0222EE7C ; =0x0222F960
+ ldr r2, [r1, #4]
+ sub r2, r2, #1
+ str r2, [r1, #4]
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ nop
+_0222EE70: .word 0x0222F940
+_0222EE74: .word 0x00007FFF
+_0222EE78: .word 0x00004210
+_0222EE7C: .word 0x0222F960
+
+ thumb_func_start MOD69_0222EE80
+MOD69_0222EE80: ; 0x0222EE80
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, _0222EEB0 ; =0x0222F940
+ ldr r1, [r1]
+ cmp r1, #0
+ beq _0222EEA2
+ add r0, r4, #0
+ bl G3_EndMakeDL
+ ldr r1, _0222EEB4 ; =0x00000814
+ str r0, [r4, r1]
+ add r0, r4, #0
+ ldr r1, [r4, r1]
+ add r0, #0x14
+ bl DC_FlushRange
+ pop {r4, pc}
+_0222EEA2:
+ ldr r1, _0222EEB8 ; =0x0222F960
+ ldr r2, [r1, #4]
+ sub r2, r2, #1
+ str r2, [r1, #4]
+ bl FUN_0200CAB4
+ pop {r4, pc}
+ .align 2, 0
+_0222EEB0: .word 0x0222F940
+_0222EEB4: .word 0x00000814
+_0222EEB8: .word 0x0222F960
+
+ thumb_func_start MOD69_0222EEBC
+MOD69_0222EEBC: ; 0x0222EEBC
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r2, #0
+ bl FUN_0201B6C8
+ ldr r1, _0222EEF8 ; =0x0000083C
+ add r4, r0, #0
+ ldr r3, [r4, r1]
+ cmp r3, #8
+ bge _0222EEF4
+ add r1, r5, #0
+ add r2, r6, #0
+ bl MOD69_0222EF00
+ ldr r2, _0222EEF8 ; =0x0000083C
+ ldr r1, [r4, r2]
+ lsl r1, r1, #2
+ add r3, r4, r1
+ add r1, r2, #0
+ sub r1, #0x24
+ str r0, [r3, r1]
+ ldr r0, _0222EEFC ; =0x0222F960
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+ ldr r0, [r4, r2]
+ add r0, r0, #1
+ str r0, [r4, r2]
+_0222EEF4:
+ pop {r4, r5, r6, pc}
+ nop
+_0222EEF8: .word 0x0000083C
+_0222EEFC: .word 0x0222F960
+
+ thumb_func_start MOD69_0222EF00
+MOD69_0222EF00: ; 0x0222EF00
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ ldr r1, _0222EF78 ; =0x00000838
+ mov r0, #0x3f
+ add r7, r2, #0
+ add r4, r3, #0
+ bl FUN_02016998
+ add r1, r0, #0
+ beq _0222EF74
+ ldr r0, _0222EF7C ; =0x00000818
+ ldr r2, _0222EF80 ; =0x0222F88C
+ str r6, [r1]
+ lsl r3, r4, #2
+ ldr r3, [r2, r3]
+ add r2, r0, #0
+ strh r5, [r1, r0]
+ sub r2, #8
+ str r3, [r1, r2]
+ add r2, r0, #0
+ mov r3, #0
+ sub r2, #0x14
+ str r3, [r1, r2]
+ add r2, r0, #0
+ sub r2, #0x10
+ str r7, [r1, r2]
+ ldr r2, _0222EF84 ; =0x0222F798
+ lsl r6, r4, #1
+ ldrsh r6, [r2, r6]
+ add r2, r0, #0
+ sub r2, #0xc
+ str r6, [r1, r2]
+ sub r2, r0, #4
+ str r4, [r1, r2]
+ add r4, r5, #0
+ sub r4, #0x50
+ add r2, r0, #2
+ strh r4, [r1, r2]
+ ldr r2, _0222EF88 ; =0xFFFFF000
+ add r4, r0, #4
+ strh r2, [r1, r4]
+ add r4, r0, #6
+ strh r3, [r1, r4]
+ add r4, r0, #0
+ add r5, #0x50
+ add r4, #8
+ strh r5, [r1, r4]
+ add r4, r0, #0
+ add r4, #0xa
+ strh r2, [r1, r4]
+ add r0, #0xc
+ strh r3, [r1, r0]
+ ldr r0, _0222EF8C ; =MOD69_0222EF90
+ mov r2, #4
+ bl MOD69_0222DBA4
+ pop {r3, r4, r5, r6, r7, pc}
+_0222EF74:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EF78: .word 0x00000838
+_0222EF7C: .word 0x00000818
+_0222EF80: .word 0x0222F88C
+_0222EF84: .word 0x0222F798
+_0222EF88: .word 0xFFFFF000
+_0222EF8C: .word MOD69_0222EF90
+
+ thumb_func_start MOD69_0222EF90
+MOD69_0222EF90: ; 0x0222EF90
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ ldr r1, _0222F0FC ; =0x0222F940
+ ldr r1, [r1]
+ cmp r1, #0
+ bne _0222EFA0
+ b _0222F0EC
+_0222EFA0:
+ ldr r0, _0222F100 ; =0x00000808
+ add r1, r0, #4
+ ldr r2, [r5, r0]
+ ldr r1, [r5, r1]
+ add r1, r2, r1
+ str r1, [r5, r0]
+ add r1, r0, #4
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r0]
+ cmp r1, #0
+ ble _0222EFCE
+ mov r1, #0xaa
+ lsl r1, r1, #0xc
+ cmp r2, r1
+ blt _0222EFE4
+ add r1, r0, #4
+ ldr r2, [r5, r1]
+ mov r1, #0
+ mvn r1, r1
+ mul r1, r2
+ add r0, r0, #4
+ str r1, [r5, r0]
+ b _0222EFE4
+_0222EFCE:
+ mov r1, #0xa
+ lsl r1, r1, #0xc
+ cmp r2, r1
+ bgt _0222EFE4
+ add r1, r0, #4
+ ldr r2, [r5, r1]
+ mov r1, #0
+ mvn r1, r1
+ mul r1, r2
+ add r0, r0, #4
+ str r1, [r5, r0]
+_0222EFE4:
+ ldr r0, _0222F100 ; =0x00000808
+ mov r2, #0xa
+ ldr r0, [r5, r0]
+ lsl r2, r2, #0xa
+ asr r6, r0, #0xc
+ add r0, r6, #0
+ add r0, #0x5a
+ lsl r1, r0, #2
+ ldr r0, _0222F104 ; =0x020EDF50
+ mov r3, #0
+ ldr r0, [r0, r1]
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ ldr r4, _0222F108 ; =0x00000818
+ mov r3, #0
+ ldrsh r2, [r5, r4]
+ sub r4, #0x18
+ add r4, r0, r4
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r4, #0xc
+ orr r1, r0
+ add r4, r2, r1
+ mov r2, #0xa
+ ldr r0, _0222F104 ; =0x020EDF50
+ lsl r1, r6, #2
+ ldr r0, [r0, r1]
+ lsl r2, r2, #0xa
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r6, r0, r2
+ adc r1, r3
+ lsl r0, r1, #0x14
+ lsr r1, r6, #0xc
+ orr r1, r0
+ lsl r0, r2, #1
+ mov r7, #9
+ sub r6, r1, r0
+ lsl r7, r7, #6
+ add r0, r2, #0
+ sub r1, r4, r7
+ add r0, #0x26
+ strh r1, [r5, r0]
+ lsl r0, r6, #0x10
+ add r1, r2, #0
+ asr r0, r0, #0x10
+ add r1, #0x28
+ strh r0, [r5, r1]
+ add r1, r2, #0
+ add r1, #0x2a
+ strh r3, [r5, r1]
+ add r1, r2, #0
+ add r4, r4, r7
+ add r1, #0x2c
+ strh r4, [r5, r1]
+ add r1, r2, #0
+ add r1, #0x2e
+ strh r0, [r5, r1]
+ add r0, r2, #0
+ add r0, #0x30
+ add r2, #0x14
+ strh r3, [r5, r0]
+ ldr r0, [r5, r2]
+ add r1, r3, #0
+ str r0, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r2, r3, #0
+ ldr r0, [r5]
+ mov r3, #2
+ bl G3B_PolygonAttr
+ ldr r0, [r5]
+ mov r1, #1
+ bl G3B_Begin
+ mov r1, #0x81
+ lsl r1, r1, #4
+ ldr r1, [r5, r1]
+ ldr r0, [r5]
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl G3B_Color
+ ldr r3, _0222F10C ; =0x0000081A
+ ldr r0, [r5]
+ add r2, r3, #2
+ ldrsh r1, [r5, r3]
+ add r3, r3, #4
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ bl G3B_Vtx
+ mov r3, #0x82
+ lsl r3, r3, #4
+ add r2, r3, #2
+ ldrsh r1, [r5, r3]
+ add r3, r3, #4
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ ldr r0, [r5]
+ bl G3B_Vtx
+ ldr r3, _0222F110 ; =0x0000082C
+ ldr r0, [r5]
+ add r2, r3, #2
+ ldrsh r1, [r5, r3]
+ add r3, r3, #4
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ bl G3B_Vtx
+ ldr r3, _0222F114 ; =0x00000826
+ ldr r0, [r5]
+ add r2, r3, #2
+ ldrsh r1, [r5, r3]
+ add r3, r3, #4
+ ldrsh r2, [r5, r2]
+ ldrsh r3, [r5, r3]
+ bl G3B_Vtx
+ ldr r0, [r5]
+ bl G3B_End
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_0222F0EC:
+ ldr r1, _0222F118 ; =0x0222F960
+ ldr r2, [r1, #4]
+ sub r2, r2, #1
+ str r2, [r1, #4]
+ bl FUN_0200CAB4
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F0FC: .word 0x0222F940
+_0222F100: .word 0x00000808
+_0222F104: .word 0x020EDF50
+_0222F108: .word 0x00000818
+_0222F10C: .word 0x0000081A
+_0222F110: .word 0x0000082C
+_0222F114: .word 0x00000826
+_0222F118: .word 0x0222F960
+
+ thumb_func_start MOD69_0222F11C
+MOD69_0222F11C: ; 0x0222F11C
+ push {r3, lr}
+ cmp r0, #0
+ beq _0222F142
+ bl FUN_0201B6C8
+ add r3, r0, #0
+ ldr r0, _0222F144 ; =0x04000444
+ mov r1, #0
+ str r1, [r0]
+ ldr r2, _0222F148 ; =0x00000814
+ add r1, r3, #0
+ ldr r2, [r3, r2]
+ mov r0, #3
+ add r1, #0x14
+ bl MI_SendGXCommand
+ ldr r0, _0222F14C ; =0x04000448
+ mov r1, #1
+ str r1, [r0]
+_0222F142:
+ pop {r3, pc}
+ .align 2, 0
+_0222F144: .word 0x04000444
+_0222F148: .word 0x00000814
+_0222F14C: .word 0x04000448
+
+ thumb_func_start MOD69_0222F150
+MOD69_0222F150: ; 0x0222F150
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r1, _0222F190 ; =0x0222F940
+ mov r2, #0
+ str r2, [r1]
+ cmp r0, #0
+ beq _0222F18C
+ bl FUN_0201B6C8
+ add r6, r0, #0
+ ldr r0, _0222F194 ; =0x0000083C
+ mov r4, #0
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ ble _0222F186
+ ldr r7, _0222F194 ; =0x0000083C
+ add r5, r6, #0
+_0222F170:
+ ldr r0, _0222F198 ; =0x00000818
+ ldr r0, [r5, r0]
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ ldr r0, [r6, r7]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blt _0222F170
+_0222F186:
+ add r0, r6, #0
+ bl FUN_02016A18
+_0222F18C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F190: .word 0x0222F940
+_0222F194: .word 0x0000083C
+_0222F198: .word 0x00000818
+
+ thumb_func_start MOD69_0222F19C
+MOD69_0222F19C: ; 0x0222F19C
+ ldr r0, _0222F1AC ; =0x0222F960
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ bne _0222F1A8
+ mov r0, #1
+ bx lr
+_0222F1A8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0222F1AC: .word 0x0222F960
+
+ thumb_func_start MOD69_0222F1B0
+MOD69_0222F1B0: ; 0x0222F1B0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ ldr r1, _0222F344 ; =0x00008D64
+ mov r0, #0x3f
+ bl FUN_02016998
+ str r0, [sp, #0x28]
+ bl FUN_0201B9EC
+ str r0, [sp, #0x20]
+ ldr r0, _0222F348 ; =0x00003594
+ bl FUN_0201B9E0
+ mov r0, #0
+ ldr r4, [sp, #0x28]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ str r0, [sp, #0x18]
+ add r0, #0x34
+ str r0, [sp, #0x18]
+ add r0, r4, #0
+ str r0, [sp, #0x14]
+ add r0, #0x28
+ str r0, [sp, #0x14]
+ add r0, r4, #0
+ str r0, [sp, #0x10]
+ add r0, #0x2e
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ str r0, [sp, #0xc]
+_0222F1EE:
+ ldr r0, [sp, #0x1c]
+ lsl r1, r0, #2
+ ldr r0, _0222F34C ; =0x0222F8AC
+ ldr r0, [r0, r1]
+ str r0, [r4, #8]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, #8
+ blo _0222F206
+ mov r0, #0
+ str r0, [sp, #0x1c]
+_0222F206:
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x13
+ sub r1, r1, r2
+ mov r0, #0x13
+ ror r1, r0
+ mov r0, #1
+ add r1, r2, r1
+ lsl r0, r0, #0xc
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #8]
+ bl FUN_0201B9EC
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x13
+ sub r1, r1, r2
+ mov r0, #0x13
+ ror r1, r0
+ mov r0, #1
+ add r1, r2, r1
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ str r0, [sp, #4]
+ bl FUN_0201B9EC
+ mov r1, #0x29
+ lsl r1, r1, #4
+ bl _s32_div_f
+ mov r0, #0x52
+ lsl r0, r0, #2
+ sub r0, r1, r0
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ ldr r5, _0222F350 ; =0x0222F800
+ str r0, [sp]
+ mov r7, #0
+ add r6, r4, #0
+_0222F25C:
+ mov r0, #0
+ ldrsh r1, [r5, r0]
+ ldr r0, [sp, #8]
+ add r0, r0, r1
+ strh r0, [r6, #0x10]
+ mov r0, #2
+ ldrsh r1, [r5, r0]
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ strh r0, [r6, #0x12]
+ mov r0, #4
+ ldrsh r1, [r5, r0]
+ ldr r0, [sp]
+ add r0, r0, r1
+ strh r0, [r6, #0x14]
+ mov r0, #0
+ strh r0, [r4, #0x28]
+ strh r0, [r4, #0x2a]
+ strh r0, [r4, #0x2c]
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x17
+ sub r2, r2, r1
+ mov r0, #0x17
+ ror r2, r0
+ mov r0, #2
+ add r1, r1, r2
+ lsl r0, r0, #8
+ add r0, r1, r0
+ strh r0, [r4, #0x2e]
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x17
+ sub r2, r2, r1
+ mov r0, #0x17
+ ror r2, r0
+ mov r0, #2
+ add r1, r1, r2
+ lsl r0, r0, #8
+ add r0, r1, r0
+ strh r0, [r4, #0x30]
+ bl FUN_0201B9EC
+ lsr r1, r0, #0x1f
+ lsl r2, r0, #0x17
+ sub r2, r2, r1
+ mov r0, #0x17
+ ror r2, r0
+ mov r0, #2
+ add r1, r1, r2
+ lsl r0, r0, #8
+ add r0, r1, r0
+ strh r0, [r4, #0x32]
+ ldr r0, [sp, #0x18]
+ bl MTX_Identity44_
+ add r7, r7, #1
+ add r5, r5, #6
+ add r6, r6, #6
+ cmp r7, #4
+ blt _0222F25C
+ bl FUN_0201B9EC
+ mov r1, #7
+ and r0, r1
+ sub r5, r0, #1
+ cmp r0, #0
+ beq _0222F2FA
+_0222F2E8:
+ ldr r0, [sp, #0xc]
+ ldr r1, [sp, #0x10]
+ ldr r2, [sp, #0x14]
+ bl VEC_Fx16Add
+ add r0, r5, #0
+ sub r5, r5, #1
+ cmp r0, #0
+ bne _0222F2E8
+_0222F2FA:
+ ldr r0, [sp, #0x18]
+ add r4, #0x70
+ add r0, #0x70
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r0, #0x70
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r0, #0x70
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ add r0, #0x70
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x24]
+ add r0, r0, #1
+ str r0, [sp, #0x24]
+ cmp r0, #0x30
+ bge _0222F320
+ b _0222F1EE
+_0222F320:
+ ldr r0, [sp, #0x20]
+ bl FUN_0201B9E0
+ ldr r0, [sp, #0x28]
+ mov r2, #0
+ str r2, [r0]
+ ldr r1, _0222F354 ; =0x00008D20
+ str r2, [r0, #4]
+ str r2, [r0, r1]
+ ldr r0, _0222F358 ; =0x04000440
+ mov r2, #2
+ str r2, [r0]
+ ldr r0, _0222F35C ; =MOD69_0222F388
+ ldr r1, [sp, #0x28]
+ bl FUN_0200CA44
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F344: .word 0x00008D64
+_0222F348: .word 0x00003594
+_0222F34C: .word 0x0222F8AC
+_0222F350: .word 0x0222F800
+_0222F354: .word 0x00008D20
+_0222F358: .word 0x04000440
+_0222F35C: .word MOD69_0222F388
+
+ thumb_func_start MOD69_0222F360
+MOD69_0222F360: ; 0x0222F360
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0222F374
+ bl FUN_0201B6C8
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_0200CAB4
+_0222F374:
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start MOD69_0222F378
+MOD69_0222F378: ; 0x0222F378
+ push {r3, lr}
+ cmp r0, #0
+ beq _0222F386
+ bl FUN_0201B6C8
+ mov r1, #1
+ str r1, [r0]
+_0222F386:
+ pop {r3, pc}
+
+ thumb_func_start MOD69_0222F388
+MOD69_0222F388: ; 0x0222F388
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x68
+ add r7, r1, #0
+ ldr r0, [r7]
+ cmp r0, #0
+ bne _0222F396
+ b _0222F60C
+_0222F396:
+ ldr r1, _0222F610 ; =0x00001508
+ mov r2, #0x1e
+ add r0, r7, r1
+ add r1, #0x14
+ add r1, r7, r1
+ lsl r2, r2, #0xa
+ bl G3_BeginMakeDL
+ mov r0, #0x3f
+ str r0, [sp]
+ mov r0, #0x1f
+ str r0, [sp, #4]
+ ldr r0, _0222F610 ; =0x00001508
+ mov r1, #3
+ mov r2, #0
+ add r0, r7, r0
+ add r3, r1, #0
+ str r2, [sp, #8]
+ bl G3B_PolygonAttr
+ ldr r0, _0222F610 ; =0x00001508
+ mov r2, #0
+ ldr r1, _0222F614 ; =0x00005294
+ add r0, r7, r0
+ add r3, r2, #0
+ bl G3B_MaterialColorDiffAmb
+ mov r0, #0
+ str r0, [sp, #0x1c]
+ add r0, r7, #0
+ str r0, [sp, #0x18]
+ add r0, #0x28
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ str r0, [sp, #0x14]
+ add r0, #0x2e
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x18]
+ add r5, r7, #0
+ str r5, [sp, #0xc]
+ add r5, #0x34
+ add r4, r7, #0
+ str r0, [sp, #0x10]
+ str r5, [sp, #0xc]
+_0222F3EE:
+ mov r0, #0x24
+ ldrsh r0, [r4, r0]
+ sub r0, #0x55
+ strh r0, [r4, #0x24]
+ mov r0, #0x24
+ ldrsh r1, [r4, r0]
+ ldr r0, _0222F618 ; =0xFFFFF000
+ cmp r1, r0
+ bgt _0222F408
+ mov r0, #2
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ strh r0, [r4, #0x24]
+_0222F408:
+ mov r0, #0x24
+ ldrsh r1, [r4, r0]
+ ldr r0, _0222F61C ; =0x0000019A
+ ldr r2, [sp, #0x18]
+ sub r0, r1, r0
+ strh r0, [r4, #0x12]
+ mov r0, #0x12
+ ldrsh r0, [r4, r0]
+ ldr r1, [sp, #0x14]
+ strh r0, [r4, #0x18]
+ mov r0, #0x24
+ ldrsh r0, [r4, r0]
+ strh r0, [r4, #0x1e]
+ ldr r0, [sp, #0x10]
+ bl VEC_Fx16Add
+ ldr r0, [sp, #0xc]
+ bl MTX_Identity44_
+ mov r0, #0x14
+ ldrsh r0, [r4, r0]
+ mov r2, #0x10
+ mov r3, #0x12
+ str r0, [sp]
+ ldrsh r2, [r4, r2]
+ ldrsh r3, [r4, r3]
+ ldr r1, [sp, #0xc]
+ add r0, r5, #0
+ bl MTX_TransApply44
+ ldr r0, _0222F610 ; =0x00001508
+ ldr r2, _0222F620 ; =0x00002D6B
+ add r0, r7, r0
+ mov r1, #0
+ bl G3B_LightColor
+ ldr r2, [r4, #8]
+ ldr r0, _0222F610 ; =0x00001508
+ lsl r2, r2, #0x10
+ add r0, r7, r0
+ mov r1, #1
+ lsr r2, r2, #0x10
+ bl G3B_LightColor
+ mov r1, #0
+ add r0, sp, #0x20
+ strh r1, [r0]
+ ldr r1, _0222F624 ; =0x00000FFF
+ strh r1, [r0, #2]
+ ldr r1, _0222F628 ; =0xFFFFF001
+ strh r1, [r0, #4]
+ add r0, sp, #0x20
+ add r1, r0, #0
+ bl VEC_Fx16Normalize
+ add r3, sp, #0x20
+ add r1, sp, #0x20
+ mov r0, #4
+ ldrsh r0, [r1, r0]
+ mov r1, #0
+ add r2, r1, #0
+ str r0, [sp]
+ ldr r0, _0222F610 ; =0x00001508
+ ldrsh r2, [r3, r2]
+ add r6, r3, #0
+ mov r3, #2
+ ldrsh r3, [r6, r3]
+ add r0, r7, r0
+ bl G3B_LightVector
+ mov r1, #0
+ add r0, r6, #0
+ strh r1, [r0]
+ ldr r1, _0222F628 ; =0xFFFFF001
+ strh r1, [r0, #2]
+ lsr r1, r1, #0x14
+ strh r1, [r0, #4]
+ add r0, sp, #0x20
+ add r1, r0, #0
+ bl VEC_Fx16Normalize
+ add r1, r6, #0
+ mov r0, #4
+ ldrsh r0, [r1, r0]
+ add r3, r6, #0
+ mov r2, #0
+ str r0, [sp]
+ ldrsh r2, [r3, r2]
+ mov r3, #2
+ ldr r0, _0222F610 ; =0x00001508
+ ldrsh r3, [r6, r3]
+ add r0, r7, r0
+ mov r1, #1
+ bl G3B_LightVector
+ ldrh r0, [r4, #0x28]
+ ldr r3, _0222F62C ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _0222F62C ; =0x020FFA38
+ add r2, r0, r1
+ ldrsh r1, [r3, r1]
+ mov r3, #2
+ ldrsh r2, [r2, r3]
+ add r0, sp, #0x28
+ bl MTX_RotX44_
+ ldr r2, [sp, #0xc]
+ add r0, sp, #0x28
+ add r1, r5, #0
+ bl MTX_Concat44
+ ldrh r0, [r4, #0x2a]
+ ldr r3, _0222F62C ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _0222F62C ; =0x020FFA38
+ add r2, r0, r1
+ ldrsh r1, [r3, r1]
+ mov r3, #2
+ ldrsh r2, [r2, r3]
+ add r0, sp, #0x28
+ bl MTX_RotY44_
+ ldr r2, [sp, #0xc]
+ add r0, sp, #0x28
+ add r1, r5, #0
+ bl MTX_Concat44
+ ldrh r0, [r4, #0x2c]
+ ldr r3, _0222F62C ; =0x020FFA38
+ asr r0, r0, #4
+ lsl r1, r0, #2
+ ldr r0, _0222F62C ; =0x020FFA38
+ add r2, r0, r1
+ ldrsh r1, [r3, r1]
+ mov r3, #2
+ ldrsh r2, [r2, r3]
+ add r0, sp, #0x28
+ bl MTX_RotZ44_
+ ldr r2, [sp, #0xc]
+ add r0, sp, #0x28
+ add r1, r5, #0
+ bl MTX_Concat44
+ ldr r2, [r4, #8]
+ ldr r0, _0222F610 ; =0x00001508
+ lsl r2, r2, #0x10
+ ldr r1, _0222F630 ; =0x00007FFF
+ add r0, r7, r0
+ lsr r2, r2, #0x10
+ mov r3, #0
+ bl G3B_MaterialColorSpecEmi
+ ldr r0, _0222F610 ; =0x00001508
+ add r0, r7, r0
+ bl G3B_PushMtx
+ ldr r0, _0222F610 ; =0x00001508
+ add r1, r5, #0
+ add r0, r7, r0
+ bl G3B_LoadMtx44
+ ldr r0, _0222F610 ; =0x00001508
+ mov r1, #1
+ add r0, r7, r0
+ bl G3B_Begin
+ ldr r0, _0222F610 ; =0x00001508
+ mov r1, #0
+ ldr r3, _0222F628 ; =0xFFFFF001
+ add r0, r7, r0
+ add r2, r1, #0
+ bl G3B_Normal
+ mov r1, #0x9b
+ ldr r0, _0222F610 ; =0x00001508
+ mvn r1, r1
+ add r2, r1, #0
+ add r0, r7, r0
+ sub r2, #0x31
+ mov r3, #0
+ bl G3B_Vtx
+ ldr r0, _0222F610 ; =0x00001508
+ mov r2, #0xcc
+ add r0, r7, r0
+ mov r1, #0x9c
+ mvn r2, r2
+ mov r3, #0
+ bl G3B_Vtx
+ ldr r0, _0222F610 ; =0x00001508
+ mov r1, #0x9c
+ add r0, r7, r0
+ mov r2, #0xcd
+ mov r3, #0
+ bl G3B_Vtx
+ ldr r0, _0222F610 ; =0x00001508
+ mov r1, #0x9b
+ add r0, r7, r0
+ mvn r1, r1
+ mov r2, #0xcd
+ mov r3, #0
+ bl G3B_Vtx
+ ldr r0, _0222F610 ; =0x00001508
+ add r0, r7, r0
+ bl G3B_End
+ ldr r0, _0222F610 ; =0x00001508
+ mov r1, #1
+ add r0, r7, r0
+ bl G3B_PopMtx
+ ldr r0, [sp, #0x18]
+ add r4, #0x70
+ add r0, #0x70
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r5, #0x70
+ add r0, #0x70
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r0, #0x70
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0xc]
+ add r0, #0x70
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #1
+ str r0, [sp, #0x1c]
+ cmp r0, #0x30
+ bge _0222F5E2
+ b _0222F3EE
+_0222F5E2:
+ ldr r0, _0222F610 ; =0x00001508
+ add r0, r7, r0
+ bl G3_EndMakeDL
+ ldr r1, _0222F634 ; =0x00008D1C
+ str r0, [r7, r1]
+ ldr r0, _0222F638 ; =0x0000151C
+ ldr r1, [r7, r1]
+ add r0, r7, r0
+ bl DC_FlushRange
+ ldr r0, _0222F634 ; =0x00008D1C
+ ldr r1, [r7, r0]
+ mov r0, #0x1e
+ lsl r0, r0, #0xa
+ cmp r1, r0
+ blo _0222F608
+ bl ErrorHandling
+_0222F608:
+ mov r0, #1
+ str r0, [r7, #4]
+_0222F60C:
+ add sp, #0x68
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F610: .word 0x00001508
+_0222F614: .word 0x00005294
+_0222F618: .word 0xFFFFF000
+_0222F61C: .word 0x0000019A
+_0222F620: .word 0x00002D6B
+_0222F624: .word 0x00000FFF
+_0222F628: .word 0xFFFFF001
+_0222F62C: .word 0x020FFA38
+_0222F630: .word 0x00007FFF
+_0222F634: .word 0x00008D1C
+_0222F638: .word 0x0000151C
+
+ thumb_func_start MOD69_0222F63C
+MOD69_0222F63C: ; 0x0222F63C
+ push {r4, lr}
+ cmp r0, #0
+ beq _0222F66C
+ bl FUN_0201B6C8
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _0222F66C
+ ldr r0, _0222F670 ; =0x04000444
+ mov r1, #0
+ str r1, [r0]
+ ldr r2, _0222F674 ; =0x00008D1C
+ ldr r1, _0222F678 ; =0x0000151C
+ ldr r2, [r4, r2]
+ mov r0, #3
+ add r1, r4, r1
+ bl MI_SendGXCommand
+ ldr r0, _0222F67C ; =0x04000448
+ mov r1, #1
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r4, #4]
+_0222F66C:
+ pop {r4, pc}
+ nop
+_0222F670: .word 0x04000444
+_0222F674: .word 0x00008D1C
+_0222F678: .word 0x0000151C
+_0222F67C: .word 0x04000448
+
+ thumb_func_start MOD69_0222F680
+MOD69_0222F680: ; 0x0222F680
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ str r1, [r4]
+ add r5, r3, #0
+ sub r0, r2, r1
+ add r1, r5, #0
+ str r2, [r4, #8]
+ bl _s32_div_f
+ str r0, [r4, #4]
+ sub r0, r5, #1
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start MOD69_0222F6A0
+MOD69_0222F6A0: ; 0x0222F6A0
+ ldr r1, [r0, #0xc]
+ cmp r1, #0
+ beq _0222F6B6
+ sub r1, r1, #1
+ str r1, [r0, #0xc]
+ ldr r2, [r0]
+ ldr r1, [r0, #4]
+ add r1, r2, r1
+ str r1, [r0]
+ add r0, r1, #0
+ bx lr
+_0222F6B6:
+ mov r1, #1
+ str r1, [r0, #0x10]
+ ldr r0, [r0, #8]
+ bx lr
+ .align 2, 0
+
+ thumb_func_start MOD69_0222F6C0
+MOD69_0222F6C0: ; 0x0222F6C0
+ ldr r0, [r0, #0x10]
+ bx lr
+
+ thumb_func_start MOD69_0222F6C4
+MOD69_0222F6C4: ; 0x0222F6C4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r6, r2, #0
+ bl FUN_020669D4
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #0x79
+ mov r2, #0
+ bl FUN_020671BC
+ sub r1, r0, #1
+ cmp r1, #2
+ bhi _0222F6E8
+ mov r5, #4
+ b _0222F77A
+_0222F6E8:
+ sub r1, r0, #4
+ cmp r1, #1
+ bhi _0222F6F2
+ mov r5, #3
+ b _0222F77A
+_0222F6F2:
+ cmp r0, #0xf
+ bne _0222F6FA
+ mov r5, #5
+ b _0222F77A
+_0222F6FA:
+ add r0, r4, #0
+ mov r1, #0x6e
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ beq _0222F70C
+ mov r5, #6
+ b _0222F77A
+_0222F70C:
+ add r0, r6, #0
+ bl FUN_020239BC
+ add r7, r0, #0
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r7, r0
+ beq _0222F726
+ mov r5, #2
+ b _0222F77A
+_0222F726:
+ ldr r1, _0222F788 ; =0x00001B54
+ add r0, r6, #0
+ ldr r1, [r5, r1]
+ bl FUN_02023990
+ ldr r2, _0222F78C ; =0x00001B58
+ add r0, r4, #0
+ ldr r2, [r5, r2]
+ mov r1, #0x90
+ bl FUN_020671BC
+ ldr r1, _0222F788 ; =0x00001B54
+ ldr r0, [r5, r1]
+ add r1, r1, #4
+ ldr r1, [r5, r1]
+ bl FUN_02021CE0
+ cmp r0, #0
+ beq _0222F750
+ mov r5, #2
+ b _0222F77A
+_0222F750:
+ add r0, r4, #0
+ mov r1, #0x98
+ mov r2, #0
+ bl FUN_020671BC
+ mov r1, #0x7d
+ lsl r1, r1, #4
+ cmp r0, r1
+ blo _0222F766
+ mov r5, #6
+ b _0222F77A
+_0222F766:
+ add r0, r4, #0
+ mov r1, #0x92
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222F778
+ mov r5, #0
+ b _0222F77A
+_0222F778:
+ mov r5, #1
+_0222F77A:
+ ldr r1, [sp]
+ add r0, r4, #0
+ bl FUN_02066A20
+ add r0, r5, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222F788: .word 0x00001B54
+_0222F78C: .word 0x00001B58
+
+ .section .rodata
+ ; 0x0222F790
+ .incbin "baserom.nds", 0x2c49d0, 0x1ac
+
+ .section .data
+ ; 0x0222F940
+ .word 0x00000001
+
+ .section .bss
+ .space 0x20
diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s
new file mode 100644
index 00000000..dd072eaa
--- /dev/null
+++ b/arm9/modules/70/asm/module_70.s
@@ -0,0 +1,1702 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD70_021D74E0
+MOD70_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x3c
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ mov r2, #7
+ mov r0, #3
+ mov r1, #0x3d
+ lsl r2, r2, #0xe
+ bl FUN_0201681C
+ add r0, r5, #0
+ mov r1, #0xdc
+ mov r2, #0x3c
+ bl FUN_02006268
+ add r4, r0, #0
+ beq _021D7558
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xd4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_0202B1F0
+ add r1, r4, #0
+ add r1, #0xd0
+ str r0, [r1]
+ add r1, r4, #0
+ add r1, #0xcc
+ ldr r1, [r1]
+ add r0, r4, #0
+ bl MOD70_021D7724
+ add r0, r4, #0
+ add r1, r4, #0
+ bl MOD70_021D77CC
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ bl MOD70_021D7930
+ add r4, #0xd8
+ str r0, [r4]
+_021D7558:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_021D74E0
+
+ thumb_func_start MOD70_021D755C
+MOD70_021D755C: ; 0x021D755C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl MOD70_021D78A0
+ add r0, r4, #0
+ bl MOD70_021D7760
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0x3d
+ bl FUN_020168D0
+ mov r0, #0x3c
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D755C
+
+ thumb_func_start MOD70_021D758C
+MOD70_021D758C: ; 0x021D758C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021D75B8
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl MOD70_021D7958
+ cmp r0, #0
+ bne _021D75B0
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D75B0:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xd8
+ str r1, [r0]
+_021D75B8:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021D75C4
+ cmp r0, #1
+ beq _021D768A
+ b _021D768E
+_021D75C4:
+ ldr r0, _021D7694 ; =0x021C48B8
+ mov r1, #2
+ ldr r0, [r0, #0x48]
+ add r2, r0, #0
+ tst r2, r1
+ beq _021D75E0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD70_021D7698
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D768E
+_021D75E0:
+ mov r2, #1
+ add r3, r0, #0
+ tst r3, r2
+ beq _021D75F8
+ ldr r0, [r4, #0x1c]
+ mov r1, #4
+ eor r0, r2
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D75F8:
+ mov r2, #0x20
+ tst r2, r0
+ beq _021D7612
+ add r0, r4, #0
+ bl MOD70_021D76AC
+ cmp r0, #0
+ beq _021D768E
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD70_021D7698
+ b _021D768E
+_021D7612:
+ mov r2, #0x10
+ tst r2, r0
+ beq _021D762C
+ add r0, r4, #0
+ bl MOD70_021D76E8
+ cmp r0, #0
+ beq _021D768E
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD70_021D7698
+ b _021D768E
+_021D762C:
+ mov r2, #0x40
+ tst r2, r0
+ beq _021D765C
+ ldr r0, [r4, #0x18]
+ sub r0, r0, #1
+ str r0, [r4, #0x18]
+ bpl _021D7654
+ add r0, r4, #0
+ bl MOD70_021D76AC
+ cmp r0, #0
+ beq _021D768E
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ sub r0, r0, #1
+ str r0, [r4, #0x18]
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D7654:
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D765C:
+ mov r2, #0x80
+ tst r0, r2
+ beq _021D768E
+ ldr r0, [r4, #0x18]
+ add r2, r0, #1
+ str r2, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r2, r0
+ blt _021D7682
+ add r0, r4, #0
+ bl MOD70_021D76E8
+ cmp r0, #0
+ beq _021D768E
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD70_021D7698
+ b _021D768E
+_021D7682:
+ add r0, r4, #0
+ bl MOD70_021D7698
+ b _021D768E
+_021D768A:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D768E:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021D7694: .word 0x021C48B8
+ thumb_func_end MOD70_021D758C
+
+ thumb_func_start MOD70_021D7698
+MOD70_021D7698: ; 0x021D7698
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl MOD70_021D7930
+ add r4, #0xd8
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D7698
+
+ thumb_func_start MOD70_021D76AC
+MOD70_021D76AC: ; 0x021D76AC
+ push {r3, lr}
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ add r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xd4
+ str r2, [r1]
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r2, [r1]
+ add r1, r0, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ cmp r2, r1
+ blt _021D76D4
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0xd4
+ str r2, [r1]
+_021D76D4:
+ add r1, r0, #0
+ add r2, r0, #0
+ add r1, #0xcc
+ add r2, #0xd4
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD70_021D777C
+ mov r0, #1
+ pop {r3, pc}
+ thumb_func_end MOD70_021D76AC
+
+ thumb_func_start MOD70_021D76E8
+MOD70_021D76E8: ; 0x021D76E8
+ push {r3, lr}
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ sub r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xd4
+ str r2, [r1]
+ add r1, r0, #0
+ add r1, #0xd4
+ ldr r1, [r1]
+ cmp r1, #0
+ bge _021D7710
+ add r1, r0, #0
+ add r1, #0xd0
+ ldr r1, [r1]
+ sub r2, r1, #1
+ add r1, r0, #0
+ add r1, #0xd4
+ str r2, [r1]
+_021D7710:
+ add r1, r0, #0
+ add r2, r0, #0
+ add r1, #0xcc
+ add r2, #0xd4
+ ldr r1, [r1]
+ ldr r2, [r2]
+ bl MOD70_021D777C
+ mov r0, #1
+ pop {r3, pc}
+ thumb_func_end MOD70_021D76E8
+
+ thumb_func_start MOD70_021D7724
+MOD70_021D7724: ; 0x021D7724
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ str r0, [sp]
+ str r1, [sp, #4]
+ mov r4, #0
+ add r5, r0, #0
+ mov r6, #0xc
+ mov r7, #0x3c
+_021D7734:
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_020219F4
+ str r0, [r5, #0x20]
+ mov r0, #8
+ mov r1, #0x3c
+ bl FUN_020219F4
+ str r0, [r5, #0x24]
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, #6
+ blt _021D7734
+ ldr r0, [sp]
+ mov r2, #0
+ ldr r1, [sp, #4]
+ str r2, [r0, #0x1c]
+ bl MOD70_021D777C
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7724
+
+ thumb_func_start MOD70_021D7760
+MOD70_021D7760: ; 0x021D7760
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D7766:
+ ldr r0, [r5, #0x20]
+ bl FUN_02021A20
+ ldr r0, [r5, #0x24]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, #6
+ blt _021D7766
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_021D7760
+
+ thumb_func_start MOD70_021D777C
+MOD70_021D777C: ; 0x021D777C
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r6, r0, #0
+ str r2, [sp]
+ add r0, r7, #0
+ add r1, r2, #0
+ bl FUN_0202B21C
+ str r0, [r6]
+ ldr r1, [sp]
+ add r0, r7, #0
+ bl FUN_0202B250
+ str r0, [r6, #0x14]
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, r6, #4
+ bl FUN_0202B31C
+ ldr r0, [r6, #0x14]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D77C4
+ add r5, r6, #0
+ add r5, #0x20
+_021D77AE:
+ ldr r1, [sp]
+ add r0, r7, #0
+ add r2, r4, #0
+ add r3, r5, #0
+ bl FUN_0202B29C
+ ldr r0, [r6, #0x14]
+ add r4, r4, #1
+ add r5, #0x1c
+ cmp r4, r0
+ blt _021D77AE
+_021D77C4:
+ mov r0, #0
+ str r0, [r6, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D777C
+
+ thumb_func_start MOD70_021D77CC
+MOD70_021D77CC: ; 0x021D77CC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r6, r1, #0
+ add r5, r0, #0
+ ldr r1, _021D7894 ; =0x00000E1C
+ mov r0, #0x3d
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _021D788C
+ str r5, [r4]
+ str r6, [r4, #4]
+ mov r0, #0x3d
+ bl FUN_02016B94
+ str r0, [r4, #0x10]
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x80
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x3d
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ add r1, r4, #0
+ mov r0, #0x40
+ add r1, #0x38
+ mov r2, #0x3d
+ bl FUN_02008C9C
+ str r0, [r4, #0x34]
+ ldr r2, _021D7898 ; =0x00000139
+ mov r0, #0
+ mov r1, #0x1a
+ mov r3, #0x3d
+ bl FUN_0200A86C
+ mov r2, #6
+ lsl r2, r2, #6
+ str r0, [r4, r2]
+ mov r0, #1
+ mov r1, #0x1a
+ sub r2, #0x16
+ mov r3, #0x3d
+ bl FUN_0200A86C
+ mov r2, #0x61
+ lsl r2, r2, #2
+ str r0, [r4, r2]
+ mov r0, #1
+ mov r1, #0x1a
+ add r2, #0xc8
+ mov r3, #0x3d
+ bl FUN_0200A86C
+ mov r1, #0x62
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3d
+ bl FUN_0200AA80
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x8c
+ add r0, r1, #0
+ mov r1, #0x3d
+ bl FUN_020219F4
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x90
+ add r0, r1, #0
+ mov r1, #0x3d
+ bl FUN_020219F4
+ mov r1, #0x65
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3d
+ bl FUN_020669C0
+ mov r1, #0x66
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, _021D789C ; =MOD70_021D790C
+ add r1, r4, #0
+ bl FUN_02015F10
+_021D788C:
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7894: .word 0x00000E1C
+_021D7898: .word 0x00000139
+_021D789C: .word MOD70_021D790C
+ thumb_func_end MOD70_021D77CC
+
+ thumb_func_start MOD70_021D78A0
+MOD70_021D78A0: ; 0x021D78A0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _021D790A
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x62
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ ldr r0, [r4, #0x34]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+_021D790A:
+ pop {r4, pc}
+ thumb_func_end MOD70_021D78A0
+
+ thumb_func_start MOD70_021D790C
+MOD70_021D790C: ; 0x021D790C
+ push {r3, lr}
+ ldr r0, [r0, #0x34]
+ bl FUN_0201FDEC
+ bl FUN_02009F80
+ ldr r3, _021D7928 ; =0x027E0000
+ ldr r1, _021D792C ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021D7928: .word 0x027E0000
+_021D792C: .word 0x00003FF8
+ thumb_func_end MOD70_021D790C
+
+ thumb_func_start MOD70_021D7930
+MOD70_021D7930: ; 0x021D7930
+ push {r3, lr}
+ add r2, r1, #0
+ str r2, [r0, #0xc]
+ mov r1, #0
+ lsl r3, r2, #2
+ str r1, [r0, #8]
+ ldr r2, _021D7954 ; =0x021D82E0
+ add r1, r0, #0
+ ldr r2, [r2, r3]
+ add r1, #8
+ blx r2
+ cmp r0, #0
+ bne _021D794E
+ mov r0, #1
+ pop {r3, pc}
+_021D794E:
+ mov r0, #0
+ pop {r3, pc}
+ nop
+_021D7954: .word 0x021D82E0
+ thumb_func_end MOD70_021D7930
+
+ thumb_func_start MOD70_021D7958
+MOD70_021D7958: ; 0x021D7958
+ push {r3, lr}
+ ldr r2, [r0, #0xc]
+ add r1, r0, #0
+ lsl r3, r2, #2
+ ldr r2, _021D796C ; =0x021D82E0
+ add r1, #8
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, pc}
+ nop
+_021D796C: .word 0x021D82E0
+ thumb_func_end MOD70_021D7958
+
+ thumb_func_start MOD70_021D7970
+MOD70_021D7970: ; 0x021D7970
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0
+ beq _021D7984
+ cmp r1, #1
+ beq _021D79AC
+ b _021D79BA
+_021D7984:
+ bl MOD70_021D7AF4
+ add r0, r5, #0
+ bl MOD70_021D7F70
+ mov r0, #6
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x3d
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D79BA
+_021D79AC:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D79BA
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D79BA:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ thumb_func_end MOD70_021D7970
+
+ thumb_func_start MOD70_021D79C0
+MOD70_021D79C0: ; 0x021D79C0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D79D4
+ cmp r0, #1
+ beq _021D79FA
+ b _021D7A14
+_021D79D4:
+ ldr r0, _021D7A1C ; =0x0000060E
+ bl FUN_020054C8
+ mov r1, #0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x3d
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7A14
+_021D79FA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7A14
+ add r0, r5, #0
+ bl MOD70_021D7FC4
+ add r0, r5, #0
+ bl MOD70_021D7C10
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D7A14:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D7A1C: .word 0x0000060E
+ thumb_func_end MOD70_021D79C0
+
+ thumb_func_start MOD70_021D7A20
+MOD70_021D7A20: ; 0x021D7A20
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r7, [r0, #4]
+ str r0, [sp]
+ ldr r0, [r7, #0x14]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D7A82
+ ldr r5, [sp]
+ add r6, r7, #0
+_021D7A32:
+ ldr r0, [r7, #0x18]
+ cmp r4, r0
+ bne _021D7A5E
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020398
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020310
+ mov r0, #1
+ bl FUN_02005E80
+ ldrh r0, [r6, #0x30]
+ bl FUN_02005578
+ b _021D7A76
+_021D7A5E:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020398
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #1
+ bl FUN_02020310
+_021D7A76:
+ ldr r0, [r7, #0x14]
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0x1c
+ cmp r4, r0
+ blt _021D7A32
+_021D7A82:
+ ldr r0, [sp]
+ bl MOD70_021D7D98
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7A20
+
+ thumb_func_start MOD70_021D7A8C
+MOD70_021D7A8C: ; 0x021D7A8C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ cmp r1, #3
+ bhi _021D7AD6
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D7AA2: ; jump table
+ .short _021D7AAA - _021D7AA2 - 2 ; case 0
+ .short _021D7AB6 - _021D7AA2 - 2 ; case 1
+ .short _021D7AC2 - _021D7AA2 - 2 ; case 2
+ .short _021D7ACE - _021D7AA2 - 2 ; case 3
+_021D7AAA:
+ bl MOD70_021D7CC0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7AD6
+_021D7AB6:
+ bl MOD70_021D820C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7AD6
+_021D7AC2:
+ bl MOD70_021D80C8
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D7AD6
+_021D7ACE:
+ bl MOD70_021D7CB0
+ mov r0, #1
+ pop {r4, pc}
+_021D7AD6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D7A8C
+
+ thumb_func_start MOD70_021D7ADC
+MOD70_021D7ADC: ; 0x021D7ADC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D7AF0 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r4, #0
+ bl MOD70_021D7D98
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7AF0: .word 0x000005DC
+ thumb_func_end MOD70_021D7ADC
+
+ thumb_func_start MOD70_021D7AF4
+MOD70_021D7AF4: ; 0x021D7AF4
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _021D7BF8 ; =0x021D8284
+ bl FUN_0201E66C
+ ldr r2, _021D7BFC ; =0x04000304
+ ldrh r1, [r2]
+ lsr r0, r2, #0xb
+ orr r0, r1
+ strh r0, [r2]
+ ldr r0, _021D7C00 ; =0x021D823C
+ bl FUN_02016BBC
+ ldr r0, [r5, #0x10]
+ ldr r2, _021D7C04 ; =0x021D8268
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r0, [r5, #0x10]
+ ldr r2, _021D7C08 ; =0x021D824C
+ mov r1, #2
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x3d
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x65
+ mov r3, #2
+ bl FUN_0200687C
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x3d
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #0x10]
+ mov r0, #0x65
+ mov r3, #2
+ bl FUN_020068C8
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0x3d
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r0, #0x65
+ mov r1, #2
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r2, #0
+ str r2, [sp]
+ mov r1, #1
+ ldr r0, [r5, #0x10]
+ add r3, r1, #0
+ bl FUN_02017F48
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r2, [sp, #0xc]
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ add r3, r2, #0
+ bl FUN_02018540
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD70_021D7C2C
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD70_021D7CB0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x3d
+ str r0, [sp, #4]
+ lsl r2, r4, #0x10
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_0200CB00
+ add r0, r5, #0
+ lsl r2, r4, #0x10
+ add r0, #0x14
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ lsl r2, r4, #0x10
+ add r0, #0x24
+ mov r1, #0
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_0200CCA4
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_02017CD0
+ mov r3, #8
+ ldr r0, _021D7C0C ; =0x04000050
+ mov r1, #0
+ mov r2, #6
+ str r3, [sp]
+ bl G2x_SetBlendAlpha_
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D7BF8: .word 0x021D8284
+_021D7BFC: .word 0x04000304
+_021D7C00: .word 0x021D823C
+_021D7C04: .word 0x021D8268
+_021D7C08: .word 0x021D824C
+_021D7C0C: .word 0x04000050
+ thumb_func_end MOD70_021D7AF4
+
+ thumb_func_start MOD70_021D7C10
+MOD70_021D7C10: ; 0x021D7C10
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ bl MOD70_021D7C98
+ pop {r4, pc}
+ thumb_func_end MOD70_021D7C10
+
+ thumb_func_start MOD70_021D7C2C
+MOD70_021D7C2C: ; 0x021D7C2C
+ push {r4, r5, lr}
+ sub sp, #0x14
+ mov r2, #1
+ add r5, r0, #0
+ str r2, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #2
+ add r4, r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ ldr r0, [r5, #0x10]
+ add r1, #0x14
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1e
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x3c
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ mov r2, #1
+ ldr r0, [r5, #0x10]
+ add r1, #0x24
+ add r3, r2, #0
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019270
+ add r5, #0x24
+ add r0, r5, #0
+ bl FUN_02019270
+ add r4, #0xb4
+ add r0, r4, #0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D7C2C
+
+ thumb_func_start MOD70_021D7C98
+MOD70_021D7C98: ; 0x021D7C98
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x14
+_021D7CA0:
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #2
+ blt _021D7CA0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_021D7C98
+
+ thumb_func_start MOD70_021D7CB0
+MOD70_021D7CB0: ; 0x021D7CB0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD70_021D7CE8
+ add r0, r4, #0
+ bl MOD70_021D7D98
+ pop {r4, pc}
+ thumb_func_end MOD70_021D7CB0
+
+ thumb_func_start MOD70_021D7CC0
+MOD70_021D7CC0: ; 0x021D7CC0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x14
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x24
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019548
+ add r4, #0x24
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r4, pc}
+ thumb_func_end MOD70_021D7CC0
+
+ thumb_func_start MOD70_021D7CE8
+MOD70_021D7CE8: ; 0x021D7CE8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ add r6, r5, #0
+ ldr r0, [r5, r0]
+ ldr r2, [r4]
+ mov r3, #4
+ add r6, #0x14
+ bl FUN_0200AD38
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ mov r2, #0x7d
+ ldr r3, [r4, #4]
+ lsl r2, r2, #4
+ add r2, r3, r2
+ ldr r0, [r5, r0]
+ mov r3, #4
+ bl FUN_0200AD38
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #8]
+ mov r1, #2
+ bl FUN_0200B764
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [r4, #0xc]
+ mov r1, #3
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #0
+ bl FUN_0200A8E0
+ mov r2, #0x63
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #8
+ add r2, r2, #4
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x95
+ ldr r2, [r5, r2]
+ add r0, r6, #0
+ add r3, r1, #0
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02019548
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD70_021D7CE8
+
+ thumb_func_start MOD70_021D7D98
+MOD70_021D7D98: ; 0x021D7D98
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r4, [r5, #4]
+ mov r0, #0x1c
+ ldr r1, [r4, #0x18]
+ add r2, r4, #0
+ mul r0, r1
+ add r2, #0x20
+ add r7, r2, r0
+ add r0, r5, #0
+ str r0, [sp, #0xc]
+ add r0, #0x24
+ mov r1, #0xf
+ str r0, [sp, #0xc]
+ bl FUN_02019620
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _021D7DC8
+ cmp r0, #1
+ bne _021D7DC6
+ b _021D7F1C
+_021D7DC6:
+ b _021D7F66
+_021D7DC8:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldr r2, [r7]
+ add r3, r1, #0
+ bl FUN_0201BD84
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #5
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0x48
+ bl FUN_0201BD84
+ mov r2, #0x61
+ lsl r2, r2, #2
+ ldr r0, [r5, r2]
+ add r2, #0xc
+ ldrh r1, [r7, #0x10]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0x5e
+ bl FUN_0201BD84
+ ldrh r0, [r7, #0x10]
+ ldr r1, [r7, #8]
+ bl FUN_02068A20
+ cmp r0, #0
+ beq _021D7E3A
+ cmp r0, #1
+ beq _021D7E4C
+ b _021D7E5E
+_021D7E3A:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #3
+ bl FUN_0200A8E0
+ b _021D7E68
+_021D7E4C:
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #4
+ bl FUN_0200A8E0
+ b _021D7E68
+_021D7E5E:
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02021A4C
+_021D7E68:
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0xae
+ bl FUN_0201BD84
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #1
+ bl FUN_0200A8E0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldrb r2, [r7, #0x12]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ mov r2, #0x63
+ lsl r2, r2, #2
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #8
+ add r2, r2, #4
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ add r2, #0x95
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r3, #0xc2
+ bl FUN_0201BD84
+ mov r2, #6
+ lsl r2, r2, #6
+ ldr r0, [r5, r2]
+ add r2, #0x10
+ ldr r2, [r5, r2]
+ mov r1, #2
+ bl FUN_0200A8E0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r2, #0xff
+ str r2, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ add r2, #0x91
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ add r3, r1, #0
+ bl FUN_0201BD84
+ mov r1, #0x19
+ lsl r1, r1, #4
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ str r1, [sp, #8]
+ ldr r0, [sp, #0xc]
+ ldr r2, [r7, #4]
+ bl FUN_0201BD84
+ b _021D7F66
+_021D7F1C:
+ mov r4, #0
+_021D7F1E:
+ ldrh r1, [r7, #0x14]
+ cmp r1, #0
+ beq _021D7F66
+ mov r0, #0x62
+ mov r2, #0x19
+ lsl r0, r0, #2
+ lsl r2, r2, #4
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ bl FUN_0200A8E0
+ lsr r0, r4, #0x1f
+ add r0, r4, r0
+ asr r0, r0, #1
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0
+ mov r2, #0x19
+ str r0, [sp, #8]
+ lsl r2, r2, #4
+ mov r3, #1
+ add r6, r4, #0
+ and r6, r3
+ mov r3, #0x60
+ ldr r0, [sp, #0xc]
+ ldr r2, [r5, r2]
+ mov r1, #0
+ mul r3, r6
+ bl FUN_0201BD84
+ add r4, r4, #1
+ add r7, r7, #2
+ cmp r4, #4
+ blt _021D7F1E
+_021D7F66:
+ ldr r0, [sp, #0xc]
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7D98
+
+ thumb_func_start MOD70_021D7F70
+MOD70_021D7F70: ; 0x021D7F70
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0x3d
+ str r0, [sp]
+ mov r0, #0x1b
+ mov r1, #0x29
+ mov r2, #0
+ add r3, sp, #8
+ bl FUN_02006C30
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x3d
+ str r0, [sp]
+ mov r0, #0x1b
+ mov r1, #0x2a
+ mov r2, #0
+ add r3, sp, #4
+ bl FUN_02006C5C
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r1, #0x20
+ mov r2, #0x32
+ mov r0, #0
+ add r1, r4, r1
+ lsl r2, r2, #6
+ bl MIi_CpuClearFast
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #4]
+ add r0, r4, #0
+ bl MOD70_021D7FF8
+ add r0, r4, #0
+ bl MOD70_021D80C8
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD70_021D7F70
+
+ thumb_func_start MOD70_021D7FC4
+MOD70_021D7FC4: ; 0x021D7FC4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ mov r6, #0x16
+ mov r4, #0
+ add r5, r7, #0
+ lsl r6, r6, #4
+_021D7FD0:
+ ldr r0, [r5, r6]
+ cmp r0, #0
+ beq _021D7FDA
+ bl FUN_0201FFC8
+_021D7FDA:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D7FD0
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ bl FUN_02016A18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_021D7FC4
+
+ thumb_func_start MOD70_021D7FF8
+MOD70_021D7FF8: ; 0x021D7FF8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x94
+ mov r3, #0
+ add r5, r0, #0
+ str r1, [sp, #0x7c]
+ str r2, [sp, #0x80]
+ str r3, [sp, #0x74]
+ str r3, [sp, #0x84]
+ str r3, [sp, #0x88]
+ str r3, [sp, #0x8c]
+ add r0, sp, #0x90
+ strb r3, [r0]
+ add r0, sp, #0x2c
+ str r0, [sp, #0x70]
+ add r0, sp, #0x18
+ str r0, [sp, #0x78]
+ ldr r0, [r5, #0x34]
+ mov r1, #0x28
+ str r0, [sp, #0x50]
+ add r0, sp, #0x70
+ str r0, [sp, #0x54]
+ mov r0, #1
+ str r0, [sp, #0x68]
+ mov r0, #0x3d
+ str r3, [sp, #0x60]
+ str r0, [sp, #0x6c]
+ str r0, [sp]
+ add r2, r3, #0
+ mov r0, #0x1b
+ add r3, sp, #0x14
+ bl FUN_02006BB0
+ str r0, [sp, #0xc]
+ mov r0, #0x1b
+ mov r1, #0x27
+ add r2, sp, #0x10
+ mov r3, #0x3d
+ bl FUN_02006C08
+ mov r4, #0
+ ldr r6, _021D80C4 ; =0x021D82AC
+ str r0, [sp, #8]
+ str r4, [sp, #4]
+ add r7, r4, #0
+_021D8050:
+ add r0, sp, #0x2c
+ bl FUN_020B1A24
+ add r0, sp, #0x18
+ bl FUN_020B19DC
+ ldr r0, [sp, #0x14]
+ add r1, r4, #0
+ mov r2, #1
+ add r3, sp, #0x2c
+ bl FUN_020B1768
+ ldr r0, [sp, #0x10]
+ add r1, r7, #0
+ mov r2, #1
+ add r3, sp, #0x18
+ bl FUN_020B1240
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x58]
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x5c]
+ ldr r0, [sp, #4]
+ add r0, r0, #1
+ str r0, [sp, #0x64]
+ add r0, sp, #0x50
+ bl FUN_0201FF84
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x32
+ lsl r0, r0, #6
+ add r4, r4, r0
+ ldr r0, [sp, #4]
+ add r7, #0x20
+ add r0, r0, #1
+ add r6, #8
+ add r5, r5, #4
+ str r0, [sp, #4]
+ cmp r0, #6
+ blt _021D8050
+ ldr r0, [sp, #8]
+ bl FUN_02016A18
+ ldr r0, [sp, #0xc]
+ bl FUN_02016A18
+ add sp, #0x94
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D80C4: .word 0x021D82AC
+ thumb_func_end MOD70_021D7FF8
+
+ thumb_func_start MOD70_021D80C8
+MOD70_021D80C8: ; 0x021D80C8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r7, r0, #0
+ ldr r0, [r7, #4]
+ mov r4, #0
+ str r0, [sp, #0x20]
+ ldr r0, [r0, #0x14]
+ cmp r0, #0
+ bgt _021D80DC
+ b _021D81E4
+_021D80DC:
+ ldr r5, [sp, #0x20]
+ str r4, [sp, #0x18]
+ add r0, r5, #0
+ str r0, [sp, #0x1c]
+ add r0, #0x33
+ str r0, [sp, #0x1c]
+ mov r0, #0x67
+ lsl r0, r0, #2
+ add r0, r7, r0
+ str r4, [sp, #0x14]
+ add r6, r7, #0
+ str r0, [sp, #0x24]
+_021D80F4:
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, [r5, #0x28]
+ add r2, r5, #0
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, [r5, #0x2c]
+ add r2, #0x32
+ str r0, [sp, #0xc]
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldrh r1, [r5, #0x30]
+ ldrb r2, [r2]
+ ldr r0, [r7, r0]
+ mov r3, #0x20
+ bl FUN_02066ACC
+ mov r0, #0x66
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ ldr r2, [sp, #0x1c]
+ mov r1, #0x70
+ bl FUN_02067830
+ mov r1, #0x66
+ lsl r1, r1, #2
+ ldr r1, [r7, r1]
+ add r0, sp, #0x28
+ mov r2, #2
+ bl FUN_02068B68
+ ldr r0, [sp, #0x24]
+ add r1, sp, #0x28
+ str r0, [sp]
+ ldr r0, [r5, #0x28]
+ ldr r3, _021D8208 ; =0x021D822C
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ mov r0, #2
+ str r0, [sp, #0xc]
+ ldrh r0, [r5, #0x30]
+ mov r2, #0x3d
+ str r0, [sp, #0x10]
+ add r0, sp, #0x28
+ ldrh r0, [r0]
+ ldrh r1, [r1, #2]
+ bl FUN_02012530
+ mov r1, #0x32
+ ldr r0, [sp, #0x24]
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ mov r2, #0x32
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x18]
+ lsl r2, r2, #6
+ bl GX_LoadOBJ
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0x3d
+ str r0, [sp, #4]
+ add r0, sp, #0x28
+ add r1, sp, #0x28
+ ldrh r0, [r0]
+ ldrh r1, [r1, #4]
+ ldr r3, [sp, #0x14]
+ mov r2, #1
+ bl FUN_02006930
+ ldr r0, [sp, #0x20]
+ ldr r0, [r0, #0x18]
+ cmp r4, r0
+ bne _021D81A8
+ mov r0, #1
+ bl FUN_02005E80
+ ldrh r0, [r5, #0x30]
+ bl FUN_02005578
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #0
+ bl FUN_02020398
+ b _021D81B4
+_021D81A8:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_02020398
+_021D81B4:
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [sp, #0x1c]
+ ldr r1, [sp, #0x18]
+ add r0, #0x1c
+ str r0, [sp, #0x1c]
+ mov r0, #0x32
+ lsl r0, r0, #6
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x14]
+ add r4, r4, #1
+ add r0, #0x20
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x20]
+ add r5, #0x1c
+ ldr r0, [r0, #0x14]
+ add r6, r6, #4
+ cmp r4, r0
+ blt _021D80F4
+_021D81E4:
+ cmp r4, #6
+ bge _021D8202
+ lsl r0, r4, #2
+ mov r6, #0x16
+ add r5, r7, r0
+ mov r7, #0
+ lsl r6, r6, #4
+_021D81F2:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D81F2
+_021D8202:
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8208: .word 0x021D822C
+ thumb_func_end MOD70_021D80C8
+
+ thumb_func_start MOD70_021D820C
+MOD70_021D820C: ; 0x021D820C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r4, #0
+ mov r6, #0x16
+ add r5, r0, #0
+ add r7, r4, #0
+ lsl r6, r6, #4
+_021D8218:
+ ldr r0, [r5, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D8218
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_021D820C
+
+ .section .rodata
+ ; 0x021D822C
+ .incbin "baserom.nds", 0x2C594C, 0xB0
+
+ .section .data
+ ; 0x021D82E0
+ .incbin "baserom.nds", 0x2C5A00, 0x20
diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s
new file mode 100644
index 00000000..9aa14aef
--- /dev/null
+++ b/arm9/modules/71/asm/module_71.s
@@ -0,0 +1,7155 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD71_0222D5C0
+MOD71_0222D5C0: ; 0x0222D5C0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _0222D72C ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _0222D730 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ ldr r2, _0222D734 ; =0x000707D0
+ mov r0, #3
+ mov r1, #0x1a
+ bl FUN_0201681C
+ ldr r1, _0222D738 ; =0x000036B4
+ add r0, r5, #0
+ mov r2, #0x1a
+ bl FUN_02006268
+ add r4, r0, #0
+ ldr r2, _0222D738 ; =0x000036B4
+ mov r0, #0
+ add r1, r4, #0
+ bl MIi_CpuClearFast
+ mov r0, #0x1a
+ bl FUN_02016B94
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0xc
+ mov r1, #0x16
+ mov r2, #0x1a
+ bl FUN_0200AA90
+ mov r1, #0x5e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_0200AA80
+ mov r1, #0x5f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_0200AA80
+ mov r2, #6
+ lsl r2, r2, #6
+ str r0, [r4, r2]
+ mov r1, #0x1a
+ mov r0, #0
+ sub r2, #0x44
+ add r3, r1, #0
+ bl FUN_0200A86C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0
+ str r0, [r4, #0x40]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD70_0222E76C
+ mov r0, #4
+ mov r1, #8
+ bl FUN_0201669C
+ bl MOD70_0222E558
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E578
+ mov r0, #0x10
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ add r0, r4, #0
+ bl MOD70_0222E900
+ ldr r0, _0222D73C ; =MOD70_0222E4DC
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl MOD70_0222EA38
+ add r0, r4, #0
+ bl MOD70_0222EA68
+ add r0, r4, #0
+ bl MOD70_0222EF90
+ mov r0, #0x5d
+ ldr r2, [r4, #8]
+ lsl r0, r0, #2
+ ldr r1, _0222D740 ; =0x00000438
+ ldr r0, [r4, r0]
+ ldr r2, [r2, #0x18]
+ add r1, r4, r1
+ bl MOD70_02230C48
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ ldr r0, [r0]
+ str r0, [r4]
+ bl FUN_02083D10
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222D744 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r0, [r4]
+ bl FUN_02083B84
+ mov r0, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_020335F0
+ bl FUN_02033E74
+ bl FUN_0201277C
+ cmp r0, #0
+ bne _0222D71A
+ ldr r1, _0222D748 ; =0x0000043D
+ mov r0, #4
+ mov r2, #1
+ bl FUN_0200433C
+ b _0222D724
+_0222D71A:
+ ldr r1, _0222D74C ; =0x0000043E
+ mov r0, #4
+ mov r2, #1
+ bl FUN_0200433C
+_0222D724:
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_0222D72C: .word 0xFFFFE0FF
+_0222D730: .word 0x04001000
+_0222D734: .word 0x000707D0
+_0222D738: .word 0x000036B4
+_0222D73C: .word MOD70_0222E4DC
+_0222D740: .word 0x00000438
+_0222D744: .word 0x000005A8
+_0222D748: .word 0x0000043D
+_0222D74C: .word 0x0000043E
+ thumb_func_end MOD71_0222D5C0
+
+ thumb_func_start MOD70_0222D750
+MOD70_0222D750: ; 0x0222D750
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ ldr r1, [sp, #0x10]
+ add r4, r2, #0
+ lsl r1, r1, #4
+ add r1, #0x92
+ mov r2, #2
+ ldr r0, [r0, #0x14]
+ add r6, r3, #0
+ lsl r1, r1, #5
+ lsl r2, r2, #8
+ bl GX_LoadOBJ
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ ldr r0, [sp, #0x14]
+ add r1, #0xa
+ bl FUN_020202A8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD70_0222D750
+
+ thumb_func_start MOD70_0222D780
+MOD70_0222D780: ; 0x0222D780
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r4, r0, #0
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #0x1a
+ bl FUN_020239A0
+ add r4, r0, #0
+ add r0, r6, #0
+ mov r1, #0x1a
+ bl FUN_020239A0
+ add r6, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x30
+ bl FUN_0200A914
+ add r7, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0222D814 ; =0x00000438
+ add r1, r4, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD70_02230EFC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0222D818 ; =0x00000448
+ add r1, r6, #0
+ add r0, r5, r0
+ mov r2, #0xa
+ mov r3, #0
+ bl MOD70_02230EFC
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, _0222D81C ; =0x00000498
+ add r1, r7, #0
+ add r0, r5, r0
+ mov r2, #5
+ mov r3, #0
+ bl MOD70_02230EFC
+ add r0, r7, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222D814: .word 0x00000438
+_0222D818: .word 0x00000448
+_0222D81C: .word 0x00000498
+ thumb_func_end MOD70_0222D780
+
+ thumb_func_start MOD70_0222D820
+MOD70_0222D820: ; 0x0222D820
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl MOD70_0222E558
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E578
+ add r0, r4, #0
+ bl MOD70_0222E900
+ add r0, r4, #0
+ bl MOD70_0222D93C
+ add r0, r4, #0
+ bl MOD70_0222D780
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #0x18]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ mov r2, #0x5d
+ str r0, [sp]
+ mov r0, #0x1a
+ lsl r2, r2, #2
+ str r0, [sp, #4]
+ ldr r0, [r4, r2]
+ mov r1, #0
+ add r2, #0x65
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ mov r2, #0x5d
+ str r1, [sp]
+ mov r0, #0x1a
+ lsl r2, r2, #2
+ str r0, [sp, #4]
+ ldr r0, [r4, r2]
+ add r2, #0x83
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222D92C ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ bl MOD70_0222EA38
+ add r0, r4, #0
+ bl MOD70_0222EA68
+ add r0, r4, #0
+ bl MOD70_0222EF90
+ ldr r0, _0222D930 ; =0x00002218
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ ldr r0, _0222D934 ; =0x0000221C
+ mov r1, #6
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0222D938 ; =MOD70_0222E4DC
+ add r1, r4, #0
+ bl FUN_02015F10
+ add sp, #8
+ pop {r4, pc}
+ nop
+_0222D92C: .word 0x00000588
+_0222D930: .word 0x00002218
+_0222D934: .word 0x0000221C
+_0222D938: .word MOD70_0222E4DC
+ thumb_func_end MOD70_0222D820
+
+ thumb_func_start MOD70_0222D93C
+MOD70_0222D93C: ; 0x0222D93C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x5e
+ ldr r1, _0222D9B8 ; =0x00002218
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ mov r2, #0
+ bl MOD70_0222DB5C
+ mov r0, #0x5e
+ ldr r1, _0222D9BC ; =0x0000221C
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ mov r2, #6
+ bl MOD70_0222DB5C
+ mov r0, #0
+ mov r2, #0x5e
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r3, _0222D9B8 ; =0x00002218
+ ldr r0, _0222D9C0 ; =0x000004A8
+ ldr r1, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r0, r5, r0
+ bl MOD70_0222DB94
+ mov r0, #6
+ mov r2, #0x5e
+ str r0, [sp]
+ lsl r2, r2, #2
+ ldr r3, _0222D9BC ; =0x0000221C
+ ldr r0, _0222D9C4 ; =0x00000508
+ ldr r1, [r5, r2]
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r0, r5, r0
+ bl MOD70_0222DB94
+ ldr r0, _0222D9B8 ; =0x00002218
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r4, r0, #0
+ ldr r0, _0222D9BC ; =0x0000221C
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r2, r0, #0
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl MOD70_0222E8DC
+ pop {r3, r4, r5, pc}
+ nop
+_0222D9B8: .word 0x00002218
+_0222D9BC: .word 0x0000221C
+_0222D9C0: .word 0x000004A8
+_0222D9C4: .word 0x00000508
+ thumb_func_end MOD70_0222D93C
+
+ thumb_func_start MOD70_0222D9C8
+MOD70_0222D9C8: ; 0x0222D9C8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ bl FUN_02006278
+ ldr r1, [r5]
+ add r4, r0, #0
+ mov r6, #0
+ cmp r1, #0
+ beq _0222D9E8
+ cmp r1, #1
+ beq _0222D9FC
+ cmp r1, #2
+ bne _0222D9E6
+ b _0222DB28
+_0222D9E6:
+ b _0222DB32
+_0222D9E8:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DA02
+ mov r0, #1
+ str r0, [r5]
+ add r0, r4, #0
+ bl MOD70_0222D780
+ b _0222DB32
+_0222D9FC:
+ ldr r1, [r4, #0x48]
+ cmp r1, #7
+ bls _0222DA04
+_0222DA02:
+ b _0222DB32
+_0222DA04:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222DA10: ; jump table
+ .short _0222DA20 - _0222DA10 - 2 ; case 0
+ .short _0222DA28 - _0222DA10 - 2 ; case 1
+ .short _0222DA36 - _0222DA10 - 2 ; case 2
+ .short _0222DA54 - _0222DA10 - 2 ; case 3
+ .short _0222DA72 - _0222DA10 - 2 ; case 4
+ .short _0222DAAE - _0222DA10 - 2 ; case 5
+ .short _0222DAFE - _0222DA10 - 2 ; case 6
+ .short _0222DB1A - _0222DA10 - 2 ; case 7
+_0222DA20:
+ bl MOD70_0222DD60
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DA28:
+ bl MOD70_0222E2D4
+ str r0, [r4, #0x48]
+ add r0, r4, #0
+ bl MOD70_0222F264
+ b _0222DB32
+_0222DA36:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r6, #0
+ add r2, r6, #0
+ add r3, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #2
+ str r0, [r5]
+ b _0222DB32
+_0222DA54:
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r1, r6, #0
+ add r2, r6, #0
+ add r3, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #4
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DA72:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DB32
+ add r0, r4, #0
+ bl MOD70_0222E3D4
+ add r0, r4, #0
+ bl MOD70_0222E378
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E848
+ mov r0, #1
+ str r0, [r4, #0x44]
+ mov r0, #5
+ str r0, [r4, #0x48]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl _s32_div_f
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD70_0222F59C
+ b _0222DB32
+_0222DAAE:
+ ldr r0, [r4, #0x40]
+ bl FUN_02006290
+ cmp r0, #0
+ beq _0222DB32
+ ldr r0, [r4, #0x40]
+ bl FUN_02006260
+ add r0, r4, #0
+ bl MOD70_0222D820
+ add r0, r6, #0
+ str r0, [r4, #0x44]
+ add r0, r4, #0
+ add r0, #0x20
+ ldrb r2, [r0]
+ ldr r1, [r4, #0x3c]
+ mov r0, #6
+ mul r0, r1
+ add r1, r2, r0
+ add r0, r4, #0
+ add r0, #0x88
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD70_0222E224
+ add r0, r4, #0
+ mov r1, #0xce
+ add r0, #0x88
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r6, #0
+ bl MOD70_0222F350
+ bl FUN_02033E74
+ mov r0, #6
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DAFE:
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ add r0, r6, #0
+ add r2, r1, #0
+ add r3, r6, #0
+ bl FUN_0200E1D0
+ mov r0, #7
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DB1A:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DB32
+ mov r0, #1
+ str r0, [r4, #0x48]
+ b _0222DB32
+_0222DB28:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _0222DB32
+ mov r6, #1
+_0222DB32:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ bne _0222DB48
+ add r0, r4, #0
+ bl MOD70_02230B3C
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0201FDEC
+_0222DB48:
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_020335F0
+ add r0, r6, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222D9C8
+
+ thumb_func_start MOD70_0222DB5C
+MOD70_0222DB5C: ; 0x0222DB5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ add r6, r2, #0
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DB92
+_0222DB70:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ add r0, r7, #0
+ add r1, r4, r6
+ bl FUN_0200ACF8
+ add r0, r5, #0
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0222DB70
+_0222DB92:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222DB5C
+
+ thumb_func_start MOD70_0222DB94
+MOD70_0222DB94: ; 0x0222DB94
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r0, r3, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ str r3, [sp, #0x10]
+ ldr r6, [sp, #0x28]
+ mov r4, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DBE6
+ add r7, r6, #1
+_0222DBB0:
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ add r2, r7, r4
+ mov r3, #0x1a
+ bl FUN_0200A9C4
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r6, #0
+ mov r2, #8
+ mov r3, #0
+ bl MOD70_02230EFC
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ add r5, #0x10
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0222DBB0
+_0222DBE6:
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222DB94
+
+ thumb_func_start MOD70_0222DBEC
+MOD70_0222DBEC: ; 0x0222DBEC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ str r2, [sp, #0x20]
+ mov r7, #0
+ bl FUN_0206B9AC
+ cmp r0, #0
+ bgt _0222DC02
+ b _0222DD10
+_0222DC02:
+ mov r1, #0x1f
+ ldr r0, [sp, #0x20]
+ lsl r1, r1, #6
+ add r0, r0, r1
+ str r0, [sp, #0x1c]
+_0222DC0C:
+ ldr r0, [sp, #0xc]
+ ldr r2, _0222DD50 ; =0x00000696
+ add r0, r7, r0
+ str r0, [sp, #0x10]
+ lsl r0, r0, #2
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #4
+ ldr r0, [sp, #0x20]
+ add r4, r0, r1
+ ldr r1, [sp, #0x18]
+ ldrb r2, [r4, r2]
+ add r5, r0, r1
+ mov r0, #0x69
+ ldr r1, _0222DD54 ; =0x00000695
+ lsl r0, r0, #4
+ ldrh r0, [r4, r0]
+ ldrb r1, [r4, r1]
+ bl FUN_0206B6D4
+ add r1, r0, #0
+ mov r0, #0x1a
+ str r0, [sp]
+ ldr r6, [sp, #0x1c]
+ ldr r3, [sp, #0x18]
+ mov r0, #0x13
+ mov r2, #0
+ add r3, r6, r3
+ bl FUN_02006BB0
+ mov r1, #0x79
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ add r0, r1, #0
+ add r0, #0x30
+ ldr r0, [r5, r0]
+ mov r1, #2
+ ldr r0, [r0, #0x14]
+ lsl r1, r1, #8
+ bl DC_FlushRange
+ ldr r0, [sp, #0x10]
+ mov r1, #0x69
+ str r0, [sp]
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r2, _0222DD50 ; =0x00000696
+ str r0, [sp, #4]
+ ldr r3, _0222DD54 ; =0x00000695
+ mov r0, #0x1f
+ lsl r1, r1, #4
+ lsl r0, r0, #6
+ ldrh r1, [r4, r1]
+ ldrb r2, [r4, r2]
+ ldrb r3, [r4, r3]
+ ldr r0, [r5, r0]
+ bl MOD70_0222D750
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0222DD58 ; =0x00000692
+ ldrh r0, [r4, r0]
+ cmp r0, #0
+ bne _0222DCA4
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0222DCCC
+_0222DCA4:
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x20]
+ add r1, r0, r1
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ str r1, [sp, #0x14]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3a
+ ldr r1, [sp, #0x14]
+ lsl r0, r0, #4
+ ldr r0, [r1, r0]
+ ldr r1, _0222DD58 ; =0x00000692
+ ldrh r1, [r4, r1]
+ add r1, r1, #2
+ bl FUN_02020130
+_0222DCCC:
+ ldr r0, _0222DD5C ; =0x0000069C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222DCE2
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0222DD02
+_0222DCE2:
+ ldr r0, [sp, #0x10]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x20]
+ add r4, r0, r1
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0x15
+ bl FUN_02020130
+_0222DD02:
+ ldr r0, [sp, #8]
+ add r7, r7, #1
+ bl FUN_0206B9AC
+ cmp r7, r0
+ bge _0222DD10
+ b _0222DC0C
+_0222DD10:
+ cmp r7, #6
+ bge _0222DD4C
+ ldr r0, [sp, #0xc]
+ mov r6, #0x3a
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x20]
+ lsl r6, r6, #4
+ add r1, r0, r1
+ lsl r0, r7, #2
+ add r5, r6, #0
+ add r4, r1, r0
+ add r5, #0x30
+_0222DD28:
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, r6]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, r5]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #6
+ blt _0222DD28
+_0222DD4C:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222DD50: .word 0x00000696
+_0222DD54: .word 0x00000695
+_0222DD58: .word 0x00000692
+_0222DD5C: .word 0x0000069C
+ thumb_func_end MOD70_0222DBEC
+
+ thumb_func_start MOD70_0222DD60
+MOD70_0222DD60: ; 0x0222DD60
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ bl MOD70_02230C1C
+ ldr r0, [r4, #0x4c]
+ cmp r0, #0x13
+ bls _0222DD72
+ b _0222E0E8
+_0222DD72:
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0222DD7E: ; jump table
+ .short _0222DDA6 - _0222DD7E - 2 ; case 0
+ .short _0222DDC0 - _0222DD7E - 2 ; case 1
+ .short _0222DE12 - _0222DD7E - 2 ; case 2
+ .short _0222DE22 - _0222DD7E - 2 ; case 3
+ .short _0222DE38 - _0222DD7E - 2 ; case 4
+ .short _0222DE48 - _0222DD7E - 2 ; case 5
+ .short _0222DE60 - _0222DD7E - 2 ; case 6
+ .short _0222DE74 - _0222DD7E - 2 ; case 7
+ .short _0222DE86 - _0222DD7E - 2 ; case 8
+ .short _0222DEB2 - _0222DD7E - 2 ; case 9
+ .short _0222DEC0 - _0222DD7E - 2 ; case 10
+ .short _0222DECC - _0222DD7E - 2 ; case 11
+ .short _0222DF58 - _0222DD7E - 2 ; case 12
+ .short _0222DF74 - _0222DD7E - 2 ; case 13
+ .short _0222DF80 - _0222DD7E - 2 ; case 14
+ .short _0222DF92 - _0222DD7E - 2 ; case 15
+ .short _0222DFD6 - _0222DD7E - 2 ; case 16
+ .short _0222E010 - _0222DD7E - 2 ; case 17
+ .short _0222E054 - _0222DD7E - 2 ; case 18
+ .short _0222E094 - _0222DD7E - 2 ; case 19
+_0222DDA6:
+ mov r0, #0x50
+ bl FUN_02031588
+ mov r0, #2
+ bl FUN_020166A8
+ add r0, r4, #0
+ bl MOD70_02230B88
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DDC0:
+ mov r0, #0x50
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222DEB8
+ ldr r0, [r4, #8]
+ ldr r0, [r0, #0x34]
+ cmp r0, #0
+ bne _0222DDD6
+ mov r0, #6
+ b _0222DDD8
+_0222DDD6:
+ mov r0, #2
+_0222DDD8:
+ str r0, [r4, #0x4c]
+ bl FUN_02031190
+ cmp r0, #0
+ bne _0222DE04
+ bl FUN_0201B9EC
+ ldr r1, _0222E0F0 ; =0x00000445
+ bl _s32_div_f
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #0x3c
+ blo _0222DDF8
+ bl ErrorHandling
+_0222DDF8:
+ bl FUN_02031190
+ mov r1, #0x1f
+ add r2, r5, #3
+ bl MOD70_0222F42C
+_0222DE04:
+ ldr r0, [r4, #4]
+ bl MOD70_0222F4A8
+ add r0, r4, #0
+ bl MOD70_02230C08
+ b _0222E0E8
+_0222DE12:
+ mov r1, #0x8b
+ lsl r1, r1, #6
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _0222DEB8
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE22:
+ mov r0, #0x8b
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ sub r1, r1, #1
+ str r1, [r4, r0]
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222DEB8
+ mov r0, #4
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE38:
+ ldr r0, _0222E0F4 ; =0x0000369C
+ add r0, r4, r0
+ bl FUN_020336C0
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE48:
+ ldr r2, _0222E0F4 ; =0x0000369C
+ ldr r0, [r4, #4]
+ mov r1, #2
+ add r2, r4, r2
+ bl FUN_020336C8
+ cmp r0, #0
+ beq _0222DEB8
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE60:
+ mov r0, #1
+ bl FUN_02031400
+ mov r0, #0x51
+ bl FUN_02031588
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE74:
+ mov r0, #0x51
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222DEB8
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DE86:
+ mov r0, #0
+ str r0, [r4, #0x50]
+ str r0, [r4, #0x54]
+ str r0, [r4, #0x58]
+ bl FUN_02031190
+ cmp r0, #1
+ bne _0222DEAA
+ bl FUN_02031190
+ ldr r1, _0222E0F8 ; =0x00002218
+ ldr r2, [r4, #0x50]
+ ldr r1, [r4, r1]
+ bl MOD70_0222F480
+ ldr r0, [r4, #0x50]
+ add r0, r0, #1
+ str r0, [r4, #0x50]
+_0222DEAA:
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DEB2:
+ ldr r0, [r4, #0x54]
+ cmp r0, #0
+ bne _0222DEBA
+_0222DEB8:
+ b _0222E0E8
+_0222DEBA:
+ mov r0, #0xa
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DEC0:
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ bl MOD70_0222D93C
+ b _0222E0E8
+_0222DECC:
+ mov r1, #0
+ mov r0, #0x69
+ add r2, r4, #0
+ add r5, r1, #0
+ lsl r0, r0, #4
+_0222DED6:
+ add r1, r1, #1
+ strh r5, [r2, r0]
+ add r2, #0x10
+ cmp r1, #0xd
+ blt _0222DED6
+ ldr r0, _0222E0F8 ; =0x00002218
+ ldr r0, [r4, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DF12
+ mov r0, #0x69
+ lsl r0, r0, #4
+ ldr r7, _0222E0F8 ; =0x00002218
+ add r6, r4, r0
+_0222DEF4:
+ ldr r0, _0222E0F8 ; =0x00002218
+ add r1, r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9B0
+ add r1, r6, #0
+ bl MOD70_0222E118
+ ldr r0, [r4, r7]
+ add r6, #0x10
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222DEF4
+_0222DF12:
+ ldr r0, _0222E0FC ; =0x0000221C
+ mov r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222DF48
+ mov r0, #0x69
+ lsl r0, r0, #4
+ ldr r7, _0222E0FC ; =0x0000221C
+ add r6, r4, r0
+_0222DF28:
+ ldr r0, _0222E0FC ; =0x0000221C
+ add r1, r5, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9B0
+ add r1, r5, #6
+ lsl r1, r1, #4
+ add r1, r6, r1
+ bl MOD70_0222E118
+ ldr r0, [r4, r7]
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222DF28
+_0222DF48:
+ mov r0, #0x75
+ mov r1, #1
+ lsl r0, r0, #4
+ strh r1, [r4, r0]
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF58:
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ ldr r2, _0222E100 ; =0x00002224
+ ldr r1, [r4, r2]
+ add r2, r2, #4
+ add r2, r4, r2
+ bl MOD70_0222F4BC
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF74:
+ ldr r1, [r4, #0x54]
+ cmp r1, #3
+ bne _0222DFD4
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF80:
+ ldr r0, [r4, #4]
+ bl FUN_02029EF8
+ bl MOD70_0222F528
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222DF92:
+ ldr r1, [r4, #0x54]
+ cmp r1, #4
+ bne _0222DFD4
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ mov r0, #0x10
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, _0222E0F8 ; =0x00002218
+ mov r1, #0
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ ldr r0, _0222E0FC ; =0x0000221C
+ mov r1, #6
+ ldr r0, [r4, r0]
+ add r2, r4, #0
+ bl MOD70_0222DBEC
+ mov r6, #0xce
+ mov r5, #0
+ mov r7, #1
+ lsl r6, r6, #2
+_0222DFC4:
+ ldr r0, [r4, r6]
+ add r1, r7, #0
+ bl FUN_020200A0
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #2
+ blt _0222DFC4
+_0222DFD4:
+ b _0222E0E8
+_0222DFD6:
+ mov r1, #0
+ mov r0, #1
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #8
+ sub r2, #0x10
+ mov r3, #0x1e
+ bl FUN_0200A208
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222E010:
+ mov r0, #1
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _0222E0E8
+ ldr r0, _0222E0F8 ; =0x00002218
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0206B9B0
+ mov r2, #0x7f
+ ldr r3, _0222E104 ; =0x000020F0
+ lsl r2, r2, #4
+ add r1, r0, #0
+ mov r0, #0
+ add r2, r4, r2
+ add r3, r4, r3
+ bl MOD70_0222EBFC
+ ldr r1, _0222E108 ; =0x00002110
+ ldr r2, _0222E0F8 ; =0x00002218
+ str r0, [r4, r1]
+ str r4, [sp]
+ ldr r0, _0222E10C ; =0x00000438
+ mov r1, #0
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ add r3, r1, #0
+ bl MOD70_0222ECD4
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ b _0222E0E8
+_0222E054:
+ mov r1, #0
+ mov r0, #2
+ add r2, r1, #0
+ str r0, [sp]
+ mov r0, #8
+ sub r2, #0x10
+ mov r3, #0x17
+ bl FUN_0200A208
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #1
+ bl FUN_0201797C
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ ldr r0, [r4, #0x4c]
+ add r0, r0, #1
+ str r0, [r4, #0x4c]
+ add r0, r4, #0
+ bl MOD70_02230BA8
+ b _0222E0E8
+_0222E094:
+ mov r0, #2
+ bl FUN_0200A344
+ cmp r0, #0
+ beq _0222E0E8
+ ldr r0, _0222E110 ; =0x000005A8
+ mov r1, #0
+ add r0, r4, r0
+ bl FUN_0200D0E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222E114 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #2
+ bl FUN_020166B8
+ add sp, #0x10
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0222E0E8:
+ mov r0, #0
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0222E0F0: .word 0x00000445
+_0222E0F4: .word 0x0000369C
+_0222E0F8: .word 0x00002218
+_0222E0FC: .word 0x0000221C
+_0222E100: .word 0x00002224
+_0222E104: .word 0x000020F0
+_0222E108: .word 0x00002110
+_0222E10C: .word 0x00000438
+_0222E110: .word 0x000005A8
+_0222E114: .word 0x00000588
+ thumb_func_end MOD70_0222DD60
+
+ thumb_func_start MOD70_0222E118
+MOD70_0222E118: ; 0x0222E118
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl FUN_020669D4
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0x9a
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #4]
+ add r0, r5, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4]
+ add r0, r5, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #6]
+ add r0, r5, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ strb r0, [r4, #5]
+ add r0, r5, #0
+ mov r1, #0x6f
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r4, #8]
+ add r0, r5, #0
+ mov r1, #0xa1
+ mov r2, #0
+ bl FUN_020671BC
+ str r0, [r4, #0xc]
+ add r0, r5, #0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ add r6, r0, #0
+ add r0, r5, #0
+ add r1, r7, #0
+ bl FUN_02066A20
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _0222E18E
+ mov r1, #0x1c
+ bl FUN_02068678
+ strh r0, [r4, #0xa]
+_0222E18E:
+ cmp r6, #0
+ beq _0222E19E
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_0206EA98
+ add r0, r0, #1
+ strh r0, [r4, #2]
+_0222E19E:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222E118
+
+ thumb_func_start MOD70_0222E1A0
+MOD70_0222E1A0: ; 0x0222E1A0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ ldr r0, _0222E20C ; =0x0000221C
+ add r7, r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0206B9B0
+ add r6, r0, #0
+ add r0, r4, #0
+ mov r1, #6
+ bl _s32_div_f
+ add r1, r6, #0
+ mov r2, #0x7f
+ mov r6, #0x32
+ add r3, r0, #0
+ lsl r2, r2, #4
+ lsl r6, r6, #6
+ mul r6, r3
+ add r2, r5, r2
+ add r2, r2, r6
+ ldr r6, _0222E210 ; =0x000020F0
+ lsl r3, r3, #4
+ add r6, r5, r6
+ mov r0, #1
+ add r3, r6, r3
+ bl MOD70_0222EBFC
+ ldr r1, _0222E214 ; =0x00002110
+ ldr r2, _0222E20C ; =0x0000221C
+ str r0, [r5, r1]
+ str r5, [sp]
+ ldr r0, _0222E218 ; =0x00000438
+ ldr r2, [r5, r2]
+ add r0, r5, r0
+ mov r1, #1
+ add r3, r7, #0
+ bl MOD70_0222ECD4
+ lsl r1, r4, #4
+ add r2, r5, r1
+ ldr r1, _0222E21C ; =0x00000694
+ ldr r0, _0222E220 ; =0x0000040C
+ ldrb r1, [r2, r1]
+ ldr r0, [r5, r0]
+ add r1, r1, #5
+ bl FUN_02020130
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E20C: .word 0x0000221C
+_0222E210: .word 0x000020F0
+_0222E214: .word 0x00002110
+_0222E218: .word 0x00000438
+_0222E21C: .word 0x00000694
+_0222E220: .word 0x0000040C
+ thumb_func_end MOD70_0222E1A0
+
+ thumb_func_start MOD70_0222E224
+MOD70_0222E224: ; 0x0222E224
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r1, r5, #0
+ add r1, #0x88
+ ldr r1, [r1]
+ cmp r1, #0xc
+ beq _0222E2B8
+ cmp r1, #6
+ bge _0222E29E
+ ldr r0, _0222E2BC ; =0x00002218
+ ldr r0, [r5, r0]
+ bl FUN_0206B9B0
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl _s32_div_f
+ mov r2, #0x7f
+ add r3, r0, #0
+ lsl r2, r2, #4
+ add r1, r4, #0
+ add r4, r5, r2
+ mov r2, #0x32
+ lsl r2, r2, #6
+ mul r2, r3
+ add r2, r4, r2
+ ldr r4, _0222E2C0 ; =0x000020F0
+ lsl r3, r3, #4
+ add r4, r5, r4
+ mov r0, #0
+ add r3, r4, r3
+ bl MOD70_0222EBFC
+ ldr r1, _0222E2C4 ; =0x00002110
+ add r3, r5, #0
+ str r0, [r5, r1]
+ ldr r0, _0222E2C8 ; =0x00000438
+ ldr r2, _0222E2BC ; =0x00002218
+ str r5, [sp]
+ add r3, #0x88
+ ldr r2, [r5, r2]
+ ldr r3, [r3]
+ add r0, r5, r0
+ mov r1, #0
+ bl MOD70_0222ECD4
+ ldr r0, _0222E2C8 ; =0x00000438
+ mov r1, #1
+ add r0, r5, r0
+ add r2, r5, #0
+ bl MOD70_0222EF24
+ ldr r0, _0222E2CC ; =0x0000040C
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ pop {r3, r4, r5, pc}
+_0222E29E:
+ bl MOD70_0222E1A0
+ ldr r0, _0222E2C8 ; =0x00000438
+ mov r1, #0
+ add r0, r5, r0
+ add r2, r5, #0
+ bl MOD70_0222EF24
+ ldr r0, _0222E2D0 ; =0x00000408
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+_0222E2B8:
+ pop {r3, r4, r5, pc}
+ nop
+_0222E2BC: .word 0x00002218
+_0222E2C0: .word 0x000020F0
+_0222E2C4: .word 0x00002110
+_0222E2C8: .word 0x00000438
+_0222E2CC: .word 0x0000040C
+_0222E2D0: .word 0x00000408
+ thumb_func_end MOD70_0222E224
+
+ thumb_func_start MOD70_0222E2D4
+MOD70_0222E2D4: ; 0x0222E2D4
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r1, _0222E374 ; =0x00002214
+ add r4, r0, #0
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ beq _0222E2EA
+ blx r1
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+_0222E2EA:
+ mov r0, #5
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #3
+ bhi _0222E314
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_0222E300: ; jump table
+ .short _0222E314 - _0222E300 - 2 ; case 0
+ .short _0222E314 - _0222E300 - 2 ; case 1
+ .short _0222E308 - _0222E300 - 2 ; case 2
+ .short _0222E30E - _0222E300 - 2 ; case 3
+_0222E308:
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, pc}
+_0222E30E:
+ add sp, #4
+ mov r0, #3
+ pop {r3, r4, pc}
+_0222E314:
+ mov r0, #0
+ mov r2, #0xce
+ str r0, [sp]
+ mov r0, #0x53
+ lsl r2, r2, #2
+ mov r3, #0x69
+ lsl r0, r0, #2
+ add r1, r4, #0
+ lsl r3, r3, #4
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ add r1, #0x88
+ add r3, r4, r3
+ bl MOD70_0222F3DC
+ cmp r0, #0
+ beq _0222E33C
+ add r0, r4, #0
+ bl MOD70_0222E224
+_0222E33C:
+ mov r0, #1
+ mov r2, #0xcf
+ str r0, [sp]
+ mov r0, #0x15
+ lsl r2, r2, #2
+ mov r3, #0x69
+ lsl r0, r0, #4
+ add r1, r4, #0
+ lsl r3, r3, #4
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ add r1, #0x8c
+ add r3, r4, r3
+ bl MOD70_0222F3DC
+ add r0, r4, #0
+ add r0, #0x90
+ bl MOD70_0222F2D8
+ add r0, r4, #0
+ add r4, #0x88
+ ldr r2, [r4]
+ mov r1, #0x17
+ bl MOD70_0222F440
+ mov r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222E374: .word 0x00002214
+ thumb_func_end MOD70_0222E2D4
+
+ thumb_func_start MOD70_0222E378
+MOD70_0222E378: ; 0x0222E378
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r0, #0x2d
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r6, r0]
+ bl FUN_02009C0C
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_02009E04
+ mov r7, #0xb
+ mov r4, #0
+ add r5, r6, #0
+ lsl r7, r7, #6
+_0222E3AC:
+ ldr r0, [r5, r7]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _0222E3AC
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ bl FUN_0201FD58
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E378
+
+ thumb_func_start MOD70_0222E3D4
+MOD70_0222E3D4: ; 0x0222E3D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _0222E42C ; =0x00002218
+ mov r4, #0
+ ldr r0, [r6, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222E402
+ ldr r7, _0222E42C ; =0x00002218
+ add r5, r6, #0
+_0222E3EA:
+ mov r0, #0x79
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02016A18
+ ldr r0, [r6, r7]
+ add r5, r5, #4
+ add r4, r4, #1
+ bl FUN_0206B9AC
+ cmp r4, r0
+ blt _0222E3EA
+_0222E402:
+ ldr r0, _0222E430 ; =0x0000221C
+ mov r5, #0
+ ldr r0, [r6, r0]
+ bl FUN_0206B9AC
+ cmp r0, #0
+ ble _0222E42A
+ ldr r7, _0222E430 ; =0x0000221C
+ add r4, r6, #0
+_0222E414:
+ ldr r0, _0222E434 ; =0x000007A8
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, [r6, r7]
+ add r4, r4, #4
+ add r5, r5, #1
+ bl FUN_0206B9AC
+ cmp r5, r0
+ blt _0222E414
+_0222E42A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222E42C: .word 0x00002218
+_0222E430: .word 0x0000221C
+_0222E434: .word 0x000007A8
+ thumb_func_end MOD70_0222E3D4
+
+ thumb_func_start MOD70_0222E438
+MOD70_0222E438: ; 0x0222E438
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200628C
+ ldr r1, [r4, #0x5c]
+ str r1, [r0, #0x28]
+ add r0, r4, #0
+ bl MOD70_0222E3D4
+ mov r0, #0x19
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ ldr r0, _0222E4D4 ; =0x0000221C
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl MOD70_0222E378
+ ldr r0, _0222E4D8 ; =0x00000438
+ add r0, r4, r0
+ bl MOD70_02230E88
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD70_0222E848
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r0, #0x1a
+ bl FUN_02016A8C
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x5e
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ mov r0, #0x63
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #0x1a
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_0222E4D4: .word 0x0000221C
+_0222E4D8: .word 0x00000438
+ thumb_func_end MOD70_0222E438
+
+ thumb_func_start MOD70_0222E4DC
+MOD70_0222E4DC: ; 0x0222E4DC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0201AB60
+ ldr r0, _0222E548 ; =0x00002110
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _0222E52E
+ sub r4, r0, #1
+ mov r0, #0x7f
+ mov r2, #0x32
+ lsl r0, r0, #4
+ lsl r2, r2, #6
+ add r1, r4, #0
+ add r0, r5, r0
+ mul r1, r2
+ add r0, r0, r1
+ bl GXS_LoadOBJ
+ lsl r1, r4, #4
+ mov r0, #0x20
+ add r2, r5, r1
+ str r0, [sp]
+ mov r0, #0x1a
+ add r3, r4, #2
+ ldr r1, _0222E54C ; =0x000020F0
+ str r0, [sp, #4]
+ ldrh r0, [r2, r1]
+ add r1, r1, #4
+ ldrh r1, [r2, r1]
+ mov r2, #5
+ lsl r3, r3, #5
+ bl FUN_02006930
+ ldr r0, _0222E548 ; =0x00002110
+ mov r1, #0
+ str r1, [r5, r0]
+_0222E52E:
+ bl FUN_0201C30C
+ bl FUN_02009F80
+ ldr r3, _0222E550 ; =0x027E0000
+ ldr r1, _0222E554 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_0222E548: .word 0x00002110
+_0222E54C: .word 0x000020F0
+_0222E550: .word 0x027E0000
+_0222E554: .word 0x00003FF8
+ thumb_func_end MOD70_0222E4DC
+
+ thumb_func_start MOD70_0222E558
+MOD70_0222E558: ; 0x0222E558
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _0222E574 ; =0x022311B0
+ add r3, sp, #0
+ mov r2, #5
+_0222E562:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0222E562
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_0222E574: .word 0x022311B0
+ thumb_func_end MOD70_0222E558
+
+ thumb_func_start MOD70_0222E578
+MOD70_0222E578: ; 0x0222E578
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xd4
+ ldr r4, _0222E748 ; =0x022310B4
+ add r3, sp, #0xc4
+ add r5, r0, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r4, _0222E74C ; =0x0223115C
+ add r3, sp, #0xa8
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #0
+ str r0, [r3]
+ add r0, r5, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r4, _0222E750 ; =0x02231124
+ add r3, sp, #0x8c
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #1
+ bl FUN_02018744
+ ldr r4, _0222E754 ; =0x02231178
+ add r3, sp, #0x70
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r4, _0222E758 ; =0x02231194
+ add r3, sp, #0x54
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r4, _0222E75C ; =0x022310EC
+ add r3, sp, #0x38
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [r3]
+ add r0, r5, #0
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r5, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r4, _0222E760 ; =0x02231108
+ add r3, sp, #0x1c
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #5
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r4, _0222E764 ; =0x02231140
+ add r3, sp, #0
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ mov r1, #6
+ str r0, [r3]
+ add r0, r5, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #0x1a
+ bl FUN_02017F18
+ mov r0, #1
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x1a
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #0x1a
+ bl FUN_02017F18
+ mov r4, #0
+ mov r6, #3
+ add r7, r4, #0
+_0222E6BC:
+ lsl r1, r4, #0x18
+ mov r2, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ add r3, r7, #0
+ bl FUN_020179E0
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ mov r2, #0
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r3, r2, #0
+ bl FUN_020179E0
+ add r1, r4, #4
+ lsl r1, r1, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ mov r2, #3
+ mov r3, #0
+ bl FUN_020179E0
+ add r4, r4, #1
+ cmp r4, #4
+ blt _0222E6BC
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_0201797C
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #3
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #5
+ mov r1, #0
+ bl FUN_0201797C
+ mov r0, #6
+ mov r1, #0
+ bl FUN_0201797C
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _0222E768 ; =0xFFFF1FFF
+ and r0, r1
+ str r0, [r2]
+ add sp, #0xd4
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0222E748: .word 0x022310B4
+_0222E74C: .word 0x0223115C
+_0222E750: .word 0x02231124
+_0222E754: .word 0x02231178
+_0222E758: .word 0x02231194
+_0222E75C: .word 0x022310EC
+_0222E760: .word 0x02231108
+_0222E764: .word 0x02231140
+_0222E768: .word 0xFFFF1FFF
+ thumb_func_end MOD70_0222E578
+
+ thumb_func_start MOD70_0222E76C
+MOD70_0222E76C: ; 0x0222E76C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ bl FUN_0200628C
+ add r4, r0, #0
+ mov r2, #6
+ ldr r0, _0222E830 ; =0x00000668
+ str r4, [r5, #8]
+ mov r1, #4
+ str r1, [r5, r0]
+ mov r3, #0
+ str r3, [r5, #0x44]
+ sub r0, r0, #4
+ str r3, [r5, r0]
+ mov r0, #0x5b
+ lsl r0, r0, #2
+ str r2, [r5, r0]
+ add r1, r0, #4
+ str r2, [r5, r1]
+ add r1, r5, #0
+ add r1, #0x88
+ str r3, [r1]
+ add r1, r5, #0
+ add r1, #0x8c
+ str r2, [r1]
+ sub r0, #0x2c
+ str r3, [r5, r0]
+ str r3, [r5, #0x48]
+ ldr r0, _0222E834 ; =MOD70_0222F538
+ ldr r1, _0222E838 ; =0x00002214
+ str r3, [r5, #0x4c]
+ str r0, [r5, r1]
+ str r3, [r5, #0x60]
+ str r3, [r5, #0x64]
+ ldr r0, _0222E83C ; =0x00002110
+ str r3, [r5, #0x5c]
+ str r3, [r5, r0]
+ ldr r0, _0222E840 ; =0x000036A0
+ sub r6, r2, #7
+ str r6, [r5, r0]
+ add r2, r0, #4
+ str r6, [r5, r2]
+ add r2, r1, #0
+ add r2, #0xac
+ str r3, [r5, r2]
+ add r2, r0, #0
+ add r2, #0xc
+ str r3, [r5, r2]
+ add r0, #0x10
+ str r3, [r5, r0]
+ add r0, r1, #4
+ ldr r2, [r4, #8]
+ add r1, #0x10
+ str r2, [r5, r0]
+ ldr r0, [r4, #0xc]
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x10]
+ str r0, [r5, #4]
+ bl FUN_0206B8A4
+ add r1, r0, #0
+ mov r0, #0x1a
+ bl FUN_02016998
+ ldr r1, _0222E844 ; =0x0000221C
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #6
+ bl FUN_0206B8CC
+ bl FUN_0206B8A4
+ add r2, r0, #0
+ ldr r0, _0222E844 ; =0x0000221C
+ mov r1, #0xff
+ ldr r0, [r5, r0]
+ bl Call_FillMemWithValue
+ ldr r0, [r4, #4]
+ mov r1, #0x1a
+ bl FUN_020239A0
+ mov r1, #0x63
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #8
+ ldr r0, [r5, r1]
+ mov r1, #0x28
+ bl FUN_0200A914
+ mov r1, #0x19
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r4, #0x14]
+ bl FUN_02033778
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222E830: .word 0x00000668
+_0222E834: .word MOD70_0222F538
+_0222E838: .word 0x00002214
+_0222E83C: .word 0x00002110
+_0222E840: .word 0x000036A0
+_0222E844: .word 0x0000221C
+ thumb_func_end MOD70_0222E76C
+
+ thumb_func_start MOD70_0222E848
+MOD70_0222E848: ; 0x0222E848
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ pop {r4, pc}
+ thumb_func_end MOD70_0222E848
+
+ thumb_func_start MOD70_0222E884
+MOD70_0222E884: ; 0x0222E884
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r2, #0
+ mov r2, #1
+ add r4, r3, #0
+ str r2, [sp]
+ ldr r2, [sp, #0x20]
+ ldr r3, [sp, #0x24]
+ bl FUN_02006C98
+ add r6, r0, #0
+ beq _0222E8D6
+ add r1, sp, #4
+ bl FUN_020B0180
+ cmp r0, #0
+ beq _0222E8D0
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ bne _0222E8B2
+ ldr r0, [sp, #4]
+ ldr r0, [r0, #8]
+ str r0, [sp, #0x1c]
+_0222E8B2:
+ lsl r1, r4, #0x18
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ bl FUN_0201886C
+ cmp r0, #0
+ beq _0222E8D0
+ ldr r2, [sp, #4]
+ lsl r1, r4, #0x18
+ ldr r3, [sp, #0x1c]
+ add r0, r5, #0
+ lsr r1, r1, #0x18
+ add r2, #0xc
+ bl FUN_02017DFC
+_0222E8D0:
+ add r0, r6, #0
+ bl FUN_02016A18
+_0222E8D6:
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E884
+
+ thumb_func_start MOD70_0222E8DC
+MOD70_0222E8DC: ; 0x0222E8DC
+ push {r3, r4, lr}
+ sub sp, #4
+ mov r1, #2
+ add r4, r0, #0
+ bl FUN_0201886C
+ add r2, r0, #0
+ mov r0, #0
+ mov r3, #6
+ str r0, [sp]
+ add r0, r4, #0
+ mov r1, #2
+ lsl r3, r3, #8
+ bl FUN_02017CE8
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E8DC
+
+ thumb_func_start MOD70_0222E900
+MOD70_0222E900: ; 0x0222E900
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0x5d
+ lsl r1, r1, #2
+ ldr r4, [r0, r1]
+ sub r1, #0x54
+ str r1, [sp]
+ mov r0, #0x1a
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0x36
+ mov r2, #4
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r1, #0
+ mov r0, #0x12
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #0x36
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02006930
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02017FE4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_02017FE4
+ mov r1, #0x1a
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #0x1a
+ bl FUN_02002EEC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #9
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r1, #1
+ str r1, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ add r2, r4, #0
+ mov r3, #2
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ mov r1, #3
+ add r2, r4, #0
+ mov r3, #2
+ bl MOD70_0222E884
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ mov r1, #4
+ add r2, r4, #0
+ mov r3, #3
+ bl FUN_020068C8
+ mov r0, #0
+ mov r1, #0x40
+ mov r2, #0x1a
+ bl FUN_02002EEC
+ mov r0, #0
+ mov r1, #0x60
+ mov r2, #0x1a
+ bl FUN_02002ED0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ lsl r0, r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ mov r1, #2
+ add r2, r4, #0
+ mov r3, #5
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ mov r1, #5
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #6
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ mov r1, #6
+ str r0, [sp, #0xc]
+ mov r0, #0x36
+ add r2, r4, #0
+ add r3, r1, #0
+ bl FUN_020068C8
+ mov r0, #4
+ mov r1, #0x40
+ mov r2, #0x1a
+ bl FUN_02002EEC
+ mov r0, #4
+ mov r1, #0x60
+ mov r2, #0x1a
+ bl FUN_02002ED0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222E900
+
+ thumb_func_start MOD70_0222EA38
+MOD70_0222EA38: ; 0x0222EA38
+ push {r4, lr}
+ sub sp, #0x10
+ ldr r4, _0222EA64 ; =0x022310C4
+ add r3, sp, #0
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_0201D040
+ mov r0, #0x14
+ mov r1, #0x1a
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0222EA64: .word 0x022310C4
+ thumb_func_end MOD70_0222EA38
+
+ thumb_func_start MOD70_0222EA68
+MOD70_0222EA68: ; 0x0222EA68
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x7f
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ mov r2, #0x1a
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ mov r1, #0x66
+ lsl r1, r1, #2
+ mov r0, #0x2d
+ add r1, r5, r1
+ mov r2, #0x1a
+ bl FUN_02008C9C
+ mov r1, #0x65
+ lsl r1, r1, #2
+ mov r7, #0xb
+ str r0, [r5, r1]
+ mov r6, #0
+ add r4, r5, #0
+ lsl r7, r7, #6
+_0222EAA6:
+ mov r0, #2
+ add r1, r6, #0
+ mov r2, #0x1a
+ bl FUN_02008DEC
+ str r0, [r4, r7]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #4
+ blt _0222EAA6
+ mov r0, #0
+ str r0, [sp]
+ mov r3, #1
+ str r3, [sp, #4]
+ mov r0, #0x1a
+ str r0, [sp, #8]
+ mov r0, #0xb
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ mov r2, #7
+ bl FUN_02008F34
+ mov r1, #0x2d
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #9
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ sub r1, #0xc
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ add r3, r2, #0
+ bl FUN_02008FEC
+ mov r1, #0xb5
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #8
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0xb6
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0xc
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #9
+ mov r3, #1
+ bl FUN_020090AC
+ mov r1, #0xb7
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #0xa
+ bl FUN_02008F34
+ mov r1, #0x2e
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0x1a
+ mov r2, #0
+ sub r1, #0x1c
+ str r0, [sp, #0xc]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ add r3, r2, #0
+ bl FUN_02008FEC
+ mov r1, #0xb9
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #0xb
+ bl FUN_020090AC
+ mov r1, #0xba
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ mov r3, #1
+ str r3, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ sub r1, #0x1c
+ str r0, [sp, #8]
+ ldr r0, [r5, r1]
+ mov r1, #0x36
+ mov r2, #0xc
+ bl FUN_020090AC
+ mov r1, #0xbb
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ bl FUN_02009A50
+ mov r0, #0x2e
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02009A50
+ mov r0, #0xb5
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ mov r0, #0xb9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02009CF0
+ bl FUN_0206B888
+ mov r3, #0x80
+ add r1, r0, #0
+ str r3, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ mov r0, #0x13
+ mov r2, #1
+ add r3, #0xc0
+ bl FUN_02006930
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222EA68
+
+ thumb_func_start MOD70_0222EBFC
+MOD70_0222EBFC: ; 0x0222EBFC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ add r5, r0, #0
+ add r4, r2, #0
+ add r0, r3, #0
+ mov r2, #2
+ add r6, r1, #0
+ str r3, [sp, #0x20]
+ bl FUN_02068B68
+ mov r1, #0
+ add r0, r6, #0
+ add r2, r1, #0
+ bl FUN_020671BC
+ add r7, r0, #0
+ add r0, r6, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ mov r3, #0
+ str r3, [sp]
+ mov r1, #0xa
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ str r4, [sp, #0xc]
+ str r7, [sp, #0x10]
+ str r3, [sp, #0x14]
+ mov r1, #2
+ str r1, [sp, #0x18]
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x20]
+ ldrh r0, [r0]
+ ldrh r1, [r1, #2]
+ mov r2, #0x1a
+ bl FUN_020124B4
+ mov r1, #0x32
+ add r0, r4, #0
+ lsl r1, r1, #6
+ bl DC_FlushRange
+ add r0, r5, #1
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222EBFC
+
+ thumb_func_start MOD70_0222EC5C
+MOD70_0222EC5C: ; 0x0222EC5C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ mov r0, #0x14
+ mov r1, #0x1a
+ str r3, [sp, #8]
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0206B9B0
+ mov r1, #0x76
+ add r2, r4, #0
+ bl FUN_020671BC
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [sp, #0x20]
+ ldr r2, [sp, #8]
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r4, #0
+ mov r3, #0
+ bl MOD70_02230EFC
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_0222EC5C
+
+ thumb_func_start MOD70_0222ECA8
+MOD70_0222ECA8: ; 0x0222ECA8
+ push {r4, lr}
+ ldrh r0, [r0]
+ add r4, r3, #0
+ cmp r0, #0x1d
+ beq _0222ECB6
+ cmp r0, #0x20
+ bne _0222ECCE
+_0222ECB6:
+ add r0, r1, #0
+ add r1, r2, #0
+ bl FUN_0206B9B0
+ mov r1, #0x4d
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _0222ECCE
+ mov r0, #2
+ pop {r4, pc}
+_0222ECCE:
+ add r0, r4, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222ECA8
+
+ thumb_func_start MOD70_0222ECD4
+MOD70_0222ECD4: ; 0x0222ECD4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ add r6, r0, #0
+ add r5, r1, #0
+ add r0, r2, #0
+ add r1, r3, #0
+ str r2, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r4, [sp, #0x50]
+ bl FUN_0206B9B0
+ mov r1, #2
+ bl FUN_02068E14
+ str r0, [sp, #0x10]
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r7, r4, r0
+ lsl r0, r5, #2
+ str r0, [sp, #0x14]
+ ldr r0, [r7, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xc
+ add r3, r5, #0
+ mul r3, r0
+ ldr r1, _0222EF10 ; =0x022311D8
+ ldr r0, [sp, #0x14]
+ ldr r2, _0222EF14 ; =0x022311DC
+ ldr r1, [r1, r3]
+ ldr r3, [r2, r3]
+ ldr r2, [sp, #0x10]
+ ldr r0, [r7, r0]
+ add r2, r2, r3
+ add r2, #0xc0
+ bl MOD70_02230B70
+ cmp r5, #0
+ bne _0222ED36
+ ldr r1, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _0222EF18 ; =0x0000069A
+ ldr r0, [r7, r0]
+ ldrh r1, [r2, r1]
+ bl FUN_02020100
+_0222ED36:
+ ldr r1, [sp, #0xc]
+ mov r0, #1
+ lsl r1, r1, #4
+ add r2, r4, r1
+ ldr r1, _0222EF1C ; =0x00000694
+ lsl r0, r0, #0xa
+ add r7, r4, r0
+ add r0, r5, #2
+ ldrb r1, [r2, r1]
+ lsl r0, r0, #2
+ str r0, [sp, #0x18]
+ ldr r0, [r7, r0]
+ add r1, r1, #5
+ bl FUN_02020130
+ ldr r0, [sp, #0x18]
+ mov r1, #1
+ ldr r0, [r7, r0]
+ bl FUN_020200A0
+ mov r0, #6
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x1a
+ lsl r0, r0, #4
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ add r0, r6, r0
+ mov r3, #9
+ bl MOD70_0222EC5C
+ mov r7, #0x69
+ mov r0, #6
+ add r1, r5, #0
+ mul r1, r0
+ ldr r0, [sp, #0xc]
+ lsl r7, r7, #4
+ add r0, r0, r1
+ lsl r0, r0, #4
+ str r0, [sp, #0x34]
+ add r1, r4, r7
+ ldr r3, [sp, #0x34]
+ add r0, r1, r0
+ add r3, r4, r3
+ add r7, #8
+ ldrh r3, [r3, r7]
+ ldr r1, [sp, #8]
+ ldr r2, [sp, #0xc]
+ bl MOD70_0222ECA8
+ ldr r1, _0222EF20 ; =0x00000695
+ add r2, r4, r1
+ ldr r1, [sp, #0x34]
+ str r2, [sp, #0x1c]
+ ldrb r1, [r2, r1]
+ cmp r1, #0
+ beq _0222EDAA
+ mov r0, #2
+_0222EDAA:
+ cmp r0, #0
+ beq _0222EDCA
+ cmp r0, #1
+ beq _0222EDF0
+ cmp r0, #2
+ bne _0222EE14
+ add r0, r5, #4
+ lsl r0, r0, #2
+ add r1, r4, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _0222EE14
+_0222EDCA:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r0, r4, r0
+ str r0, [sp, #0x20]
+ add r0, r5, #4
+ lsl r0, r0, #2
+ ldr r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [sp, #0x20]
+ ldr r0, [sp, #0x24]
+ ldr r0, [r1, r0]
+ mov r1, #0x17
+ bl FUN_02020130
+ b _0222EE14
+_0222EDF0:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r0, r4, r0
+ str r0, [sp, #0x28]
+ add r0, r5, #4
+ lsl r0, r0, #2
+ ldr r1, [sp, #0x28]
+ str r0, [sp, #0x2c]
+ ldr r0, [r1, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, [sp, #0x28]
+ ldr r0, [sp, #0x2c]
+ ldr r0, [r1, r0]
+ mov r1, #0x16
+ bl FUN_02020130
+_0222EE14:
+ ldr r1, [sp, #0x1c]
+ ldr r0, [sp, #0x34]
+ ldrb r0, [r1, r0]
+ cmp r0, #0
+ bne _0222EE9A
+ mov r0, #0xa
+ mov r1, #0x1a
+ bl FUN_020219F4
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0x1c
+ lsl r0, r0, #4
+ str r0, [sp, #0x30]
+ add r0, r6, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x27
+ add r2, r7, #0
+ bl FUN_0200A8E0
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x30]
+ add r1, r7, #0
+ add r0, r6, r0
+ mov r2, #9
+ mov r3, #0xff
+ bl MOD70_02230EFC
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ mov r1, #0xa0
+ mov r2, #0
+ bl FUN_020671BC
+ lsl r0, r0, #0x10
+ lsr r1, r0, #0x10
+ mov r0, #1
+ str r0, [sp]
+ add r0, r7, #0
+ mov r2, #3
+ mov r3, #0
+ bl FUN_02021B04
+ mov r0, #0x1e
+ str r0, [sp]
+ ldr r0, [sp, #0x30]
+ mov r3, #0
+ add r0, r6, r0
+ add r1, r7, #0
+ mov r2, #9
+ str r3, [sp, #4]
+ bl MOD70_02230EFC
+ add r0, r7, #0
+ bl FUN_02021A20
+ b _0222EEA6
+_0222EE9A:
+ add r0, r5, #0
+ add r0, #0x1c
+ lsl r0, r0, #4
+ add r0, r6, r0
+ bl FUN_02019570
+_0222EEA6:
+ mov r0, #3
+ str r0, [sp]
+ mov r3, #0
+ add r0, r5, #0
+ mov r1, #0x19
+ add r0, #0x1e
+ lsl r0, r0, #4
+ str r3, [sp, #4]
+ lsl r1, r1, #4
+ ldr r1, [r4, r1]
+ add r0, r6, r0
+ mov r2, #7
+ bl MOD70_02230EFC
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ mov r1, #6
+ mov r2, #0
+ bl FUN_020671BC
+ add r5, #0x20
+ lsl r0, r0, #0x10
+ lsl r4, r5, #4
+ lsr r7, r0, #0x10
+ add r0, r6, r4
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x14
+ mov r1, #0x1a
+ bl FUN_020219F4
+ add r1, r7, #0
+ mov r2, #0x1a
+ add r5, r0, #0
+ bl FUN_0206E768
+ mov r0, #3
+ str r0, [sp]
+ mov r3, #0
+ add r0, r6, r4
+ add r1, r5, #0
+ mov r2, #9
+ str r3, [sp, #4]
+ bl MOD70_02230EFC
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222EF10: .word 0x022311D8
+_0222EF14: .word 0x022311DC
+_0222EF18: .word 0x0000069A
+_0222EF1C: .word 0x00000694
+_0222EF20: .word 0x00000695
+ thumb_func_end MOD70_0222ECD4
+
+ thumb_func_start MOD70_0222EF24
+MOD70_0222EF24: ; 0x0222EF24
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ lsl r0, r4, #2
+ add r1, r6, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #2
+ lsl r0, r0, #2
+ add r1, r6, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #4
+ lsl r0, r0, #2
+ add r1, r6, r0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r1, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r4, #0
+ add r0, #0x1a
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x1c
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r0, r4, #0
+ add r0, #0x1e
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ add r4, #0x20
+ lsl r0, r4, #4
+ add r0, r5, r0
+ bl FUN_02019570
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD70_0222EF24
+
+ thumb_func_start MOD70_0222EF90
+MOD70_0222EF90: ; 0x0222EF90
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x5c
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ sub r0, r1, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r2, #0xb
+ str r1, [sp, #0xc]
+ mov r0, #2
+ lsl r2, r2, #6
+ str r0, [sp, #0x10]
+ ldr r0, [r5, r2]
+ add r3, r1, #0
+ str r0, [sp, #0x14]
+ add r0, r2, #4
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x18]
+ add r0, r2, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ str r0, [sp, #0x1c]
+ add r0, r2, #0
+ add r0, #0xc
+ ldr r0, [r5, r0]
+ add r2, #0x30
+ str r0, [sp, #0x20]
+ str r1, [sp, #0x24]
+ add r0, r5, r2
+ add r2, r1, #0
+ str r1, [sp, #0x28]
+ bl FUN_02008AA4
+ mov r1, #1
+ mov r3, #0xb
+ str r1, [sp]
+ sub r0, r1, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r3, r3, #6
+ ldr r2, [r5, r3]
+ str r2, [sp, #0x14]
+ add r2, r3, #4
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x18]
+ add r2, r3, #0
+ add r2, #8
+ ldr r2, [r5, r2]
+ str r2, [sp, #0x1c]
+ add r2, r3, #0
+ add r2, #0xc
+ ldr r2, [r5, r2]
+ add r3, #0x54
+ str r2, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r5, r3
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02008AA4
+ mov r0, #0x65
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #2
+ str r0, [sp, #0x2c]
+ mov r0, #0x2f
+ lsl r0, r0, #4
+ add r0, r5, r0
+ str r0, [sp, #0x30]
+ mov r0, #6
+ lsl r1, r1, #0x10
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x38]
+ lsr r0, r1, #5
+ mov r7, #0
+ str r1, [sp, #0x34]
+ str r7, [sp, #0x3c]
+ str r0, [sp, #0x40]
+ str r0, [sp, #0x44]
+ str r0, [sp, #0x48]
+ add r0, sp, #0x2c
+ strh r7, [r0, #0x20]
+ mov r0, #1
+ str r0, [sp, #0x54]
+ mov r0, #0x1a
+ ldr r6, _0222F218 ; =0x02231220
+ str r7, [sp, #0x50]
+ str r0, [sp, #0x58]
+ add r4, r5, #0
+_0222F04C:
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0xce
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ add r0, r4, #0
+ mov r1, #0xce
+ add r0, #0x88
+ lsl r1, r1, #2
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ add r2, r7, #0
+ bl MOD70_0222F350
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x64
+ bl FUN_02020310
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #2
+ blt _0222F04C
+ ldr r6, _0222F218 ; =0x02231220
+ mov r7, #0
+ add r4, r5, #0
+_0222F0A8:
+ ldr r0, [r6]
+ add r0, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ sub r0, r0, #6
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x37
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ add r1, r7, #5
+ bl FUN_02020130
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_02020310
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _0222F0A8
+ ldr r6, _0222F218 ; =0x02231220
+ mov r7, #0
+ add r4, r5, #0
+_0222F102:
+ ldr r0, [r6]
+ add r0, #0x24
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ add r0, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ mov r0, #0
+ str r0, [sp, #0x50]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x3a
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl FUN_02020310
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _0222F102
+ ldr r6, _0222F218 ; =0x02231220
+ mov r7, #0
+ add r4, r5, #0
+_0222F148:
+ ldr r0, [r6]
+ add r0, #0x2d
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r6, #4]
+ add r0, #0x10
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ mov r0, #0
+ str r0, [sp, #0x50]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #0x3d
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r1, #0
+ ldr r0, [r4, r0]
+ mov r1, #3
+ bl FUN_02020310
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r7, r7, #1
+ add r6, #8
+ add r4, r4, #4
+ cmp r7, #0xc
+ blt _0222F148
+ mov r0, #6
+ lsl r0, r0, #0x10
+ str r0, [sp, #0x34]
+ mov r0, #0x42
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x38]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ ldr r1, _0222F21C ; =0x00000418
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, _0222F21C ; =0x00000418
+ mov r1, #0x14
+ ldr r0, [r5, r0]
+ bl FUN_02020130
+ ldr r0, _0222F21C ; =0x00000418
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_020200A0
+ mov r0, #0xc5
+ lsl r0, r0, #2
+ ldr r4, _0222F220 ; =0x022311D8
+ mov r6, #0
+ add r7, r5, r0
+_0222F1C4:
+ ldr r0, [r4]
+ str r7, [sp, #0x30]
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x34]
+ ldr r0, [r4, #4]
+ lsl r1, r0, #0xc
+ mov r0, #3
+ lsl r0, r0, #0x12
+ add r0, r1, r0
+ str r0, [sp, #0x38]
+ mov r0, #2
+ str r0, [sp, #0x54]
+ add r0, sp, #0x2c
+ bl FUN_0201FE94
+ mov r1, #1
+ lsl r1, r1, #0xa
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200BC
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r5, r0]
+ ldr r1, [r4, #8]
+ bl FUN_02020130
+ add r6, r6, #1
+ add r4, #0xc
+ add r5, r5, #4
+ cmp r6, #6
+ blt _0222F1C4
+ add sp, #0x5c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F218: .word 0x02231220
+_0222F21C: .word 0x00000418
+_0222F220: .word 0x022311D8
+ thumb_func_end MOD70_0222EF90
+
+ thumb_func_start MOD70_0222F224
+MOD70_0222F224: ; 0x0222F224
+ push {r3, r4}
+ ldr r3, _0222F260 ; =0x021C48B8
+ mov r1, #0
+ ldr r3, [r3, #0x4c]
+ mov r4, #0x40
+ add r2, r1, #0
+ tst r4, r3
+ beq _0222F238
+ mov r2, #1
+ add r1, r1, #1
+_0222F238:
+ mov r4, #0x80
+ tst r4, r3
+ beq _0222F242
+ mov r2, #2
+ add r1, r1, #1
+_0222F242:
+ mov r4, #0x20
+ tst r4, r3
+ beq _0222F24C
+ mov r2, #3
+ add r1, r1, #1
+_0222F24C:
+ mov r4, #0x10
+ tst r3, r4
+ beq _0222F256
+ mov r2, #4
+ add r1, r1, #1
+_0222F256:
+ cmp r1, #0
+ beq _0222F25C
+ str r2, [r0]
+_0222F25C:
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+_0222F260: .word 0x021C48B8
+ thumb_func_end MOD70_0222F224
+
+ thumb_func_start MOD70_0222F264
+MOD70_0222F264: ; 0x0222F264
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #6
+ bge _0222F2CA
+ ldr r0, _0222F2CC ; =0x022310AC
+ bl FUN_02020988
+ add r5, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r5, r0
+ beq _0222F2CA
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ lsl r0, r0, #4
+ add r2, r4, r0
+ ldr r0, _0222F2D0 ; =0x00000695
+ ldrb r1, [r2, r0]
+ cmp r1, #0
+ bne _0222F2CA
+ sub r0, r0, #5
+ ldrh r0, [r2, r0]
+ ldr r1, _0222F2D4 ; =0x000001B9
+ cmp r0, r1
+ bne _0222F2AE
+ ldr r0, [r4, #4]
+ bl FUN_02029EF8
+ mov r1, #0
+ mov r2, #0x64
+ add r3, r1, #0
+ bl FUN_02005E90
+ b _0222F2B2
+_0222F2AE:
+ bl FUN_02005578
+_0222F2B2:
+ mov r0, #1
+ lsl r0, r0, #0xa
+ add r4, r4, r0
+ lsl r6, r5, #2
+ ldr r0, [r4, r6]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, r6]
+ add r1, r5, #4
+ bl FUN_02020130
+_0222F2CA:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222F2CC: .word 0x022310AC
+_0222F2D0: .word 0x00000695
+_0222F2D4: .word 0x000001B9
+ thumb_func_end MOD70_0222F264
+
+ thumb_func_start MOD70_0222F2D8
+MOD70_0222F2D8: ; 0x0222F2D8
+ push {r3, lr}
+ ldrh r1, [r0]
+ add r1, #0x14
+ strh r1, [r0]
+ ldrh r2, [r0]
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ cmp r2, r1
+ bls _0222F2EE
+ mov r1, #0
+ strh r1, [r0]
+_0222F2EE:
+ ldrh r0, [r0]
+ bl FUN_0201B970
+ mov r1, #0xa
+ mul r1, r0
+ asr r0, r1, #0xb
+ lsr r0, r0, #0x14
+ add r0, r1, r0
+ asr r0, r0, #0xc
+ add r0, #0xf
+ lsl r1, r0, #5
+ mov r0, #0x1d
+ orr r1, r0
+ add r0, sp, #0
+ strh r1, [r0]
+ add r0, sp, #0
+ mov r1, #0x3a
+ mov r2, #2
+ bl GX_LoadOBJPltt
+ pop {r3, pc}
+ thumb_func_end MOD70_0222F2D8
+
+ thumb_func_start MOD70_0222F318
+MOD70_0222F318: ; 0x0222F318
+ push {r3, r4, r5, r6}
+ mov r5, #0x18
+ mul r5, r0
+ ldr r6, _0222F34C ; =0x02231288
+ mov r0, #6
+ mov r4, #0
+ add r5, r6, r5
+ mul r0, r1
+ add r5, r5, r0
+ add r3, r4, #0
+ add r1, r5, #0
+_0222F32E:
+ ldrb r0, [r1]
+ lsl r0, r0, #4
+ ldrh r0, [r2, r0]
+ cmp r0, #0
+ beq _0222F33C
+ ldrb r4, [r5, r3]
+ b _0222F344
+_0222F33C:
+ add r3, r3, #1
+ add r1, r1, #1
+ cmp r3, #6
+ blt _0222F32E
+_0222F344:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_0222F34C: .word 0x02231288
+ thumb_func_end MOD70_0222F318
+
+ thumb_func_start MOD70_0222F350
+MOD70_0222F350: ; 0x0222F350
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ cmp r5, #0xd
+ blt _0222F362
+ bl ErrorHandling
+_0222F362:
+ ldr r1, _0222F3C8 ; =0x02231220
+ lsl r0, r5, #3
+ ldr r1, [r1, r0]
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ ldr r1, _0222F3CC ; =0x02231224
+ ldr r0, [r1, r0]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ cmp r5, #0xc
+ bne _0222F394
+ add r0, r6, #0
+ bl FUN_02020044
+ mov r1, #0xc
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, _0222F3D0 ; =0x022310DC
+ add r0, r6, #0
+ ldr r1, [r1, r2]
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222F394:
+ add r0, r6, #0
+ bl FUN_02020044
+ cmp r5, #6
+ bge _0222F3B2
+ mov r1, #0xc
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, _0222F3D4 ; =0x022310D4
+ add r0, r6, #0
+ ldr r1, [r1, r2]
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+_0222F3B2:
+ mov r1, #0xc
+ add r2, r4, #0
+ mul r2, r1
+ ldr r1, _0222F3D8 ; =0x022310D8
+ add r0, r6, #0
+ ldr r1, [r1, r2]
+ bl FUN_02020130
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222F3C8: .word 0x02231220
+_0222F3CC: .word 0x02231224
+_0222F3D0: .word 0x022310DC
+_0222F3D4: .word 0x022310D4
+_0222F3D8: .word 0x022310D8
+ thumb_func_end MOD70_0222F350
+
+ thumb_func_start MOD70_0222F3DC
+MOD70_0222F3DC: ; 0x0222F3DC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ str r2, [sp]
+ ldr r0, [r5]
+ add r4, r1, #0
+ ldr r2, [sp, #0x18]
+ sub r1, r0, #1
+ mov r7, #0
+ cmp r2, #0
+ bne _0222F41C
+ cmp r0, #0
+ beq _0222F416
+ ldr r0, [r4]
+ add r2, r3, #0
+ bl MOD70_0222F318
+ ldr r1, [sp]
+ ldr r2, [sp, #0x18]
+ add r6, r0, #0
+ bl MOD70_0222F350
+ ldr r0, [r4]
+ cmp r0, r6
+ beq _0222F416
+ ldr r0, _0222F428 ; =0x000005DC
+ bl FUN_020054C8
+ str r6, [r4]
+ mov r7, #1
+_0222F416:
+ mov r0, #0
+ str r0, [r5]
+ b _0222F424
+_0222F41C:
+ ldr r0, [r4]
+ ldr r1, [sp]
+ bl MOD70_0222F350
+_0222F424:
+ add r0, r7, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222F428: .word 0x000005DC
+ thumb_func_end MOD70_0222F3DC
+
+ thumb_func_start MOD70_0222F42C
+MOD70_0222F42C: ; 0x0222F42C
+ push {r3, lr}
+ add r0, sp, #0
+ strb r2, [r0]
+ add r0, r1, #0
+ add r1, sp, #0
+ mov r2, #1
+ bl FUN_02030ADC
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222F42C
+
+ thumb_func_start MOD70_0222F440
+MOD70_0222F440: ; 0x0222F440
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _0222F470 ; =0x000036A0
+ add r4, r1, #0
+ ldr r1, [r5, r0]
+ add r6, r2, #0
+ cmp r6, r1
+ bne _0222F458
+ add r0, r0, #4
+ ldr r0, [r5, r0]
+ cmp r4, r0
+ beq _0222F46C
+_0222F458:
+ bl FUN_02031190
+ add r1, r4, #0
+ add r2, r6, #0
+ bl MOD70_0222F42C
+ ldr r0, _0222F470 ; =0x000036A0
+ str r6, [r5, r0]
+ add r0, r0, #4
+ str r4, [r5, r0]
+_0222F46C:
+ pop {r4, r5, r6, pc}
+ nop
+_0222F470: .word 0x000036A0
+ thumb_func_end MOD70_0222F440
+
+ thumb_func_start MOD70_0222F474
+MOD70_0222F474: ; 0x0222F474
+ mov r2, #0x59
+ lsl r2, r2, #4
+ mul r2, r1
+ add r0, r0, r2
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD70_0222F474
+
+ thumb_func_start MOD70_0222F480
+MOD70_0222F480: ; 0x0222F480
+ push {r3, r4, r5, lr}
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add r5, r1, #0
+ add r4, r2, #0
+ bl FUN_02030E7C
+ cmp r0, #0
+ beq _0222F4A6
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD70_0222F474
+ mov r2, #0x59
+ add r1, r0, #0
+ mov r0, #0x16
+ lsl r2, r2, #4
+ bl FUN_02030A78
+_0222F4A6:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_0222F480
+
+ thumb_func_start MOD70_0222F4A8
+MOD70_0222F4A8: ; 0x0222F4A8
+ push {r3, lr}
+ bl FUN_0202A918
+ add r1, r0, #0
+ mov r0, #0x20
+ mov r2, #0xe
+ bl FUN_02030ADC
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222F4A8
+
+ thumb_func_start MOD70_0222F4BC
+MOD70_0222F4BC: ; 0x0222F4BC
+ push {r4, r5, r6, lr}
+ add r4, r2, #0
+ add r6, r0, #0
+ add r5, r1, #0
+ bl FUN_0202398C
+ add r1, r0, #0
+ add r0, r4, #0
+ bl StringCopy
+ add r0, r6, #0
+ bl FUN_020239BC
+ str r0, [r4, #0x10]
+ add r0, r6, #0
+ bl FUN_02023A70
+ strb r0, [r4, #0x14]
+ add r0, r6, #0
+ bl FUN_02023A68
+ strb r0, [r4, #0x15]
+ add r0, r6, #0
+ bl FUN_020239CC
+ strb r0, [r4, #0x16]
+ mov r0, #0
+ add r1, r4, #0
+_0222F4F4:
+ ldr r2, [r5, #0x10]
+ str r2, [r1, #0x18]
+ ldrb r3, [r5, #0x15]
+ add r2, r4, r0
+ add r2, #0x58
+ strb r3, [r2]
+ add r2, r4, r0
+ ldrb r3, [r5, #0x14]
+ add r2, #0x68
+ add r1, r1, #4
+ strb r3, [r2]
+ add r2, r4, r0
+ ldrb r3, [r5, #0x16]
+ add r2, #0x78
+ add r0, r0, #1
+ add r5, #0x88
+ strb r3, [r2]
+ cmp r0, #0x10
+ blt _0222F4F4
+ mov r0, #0x1c
+ add r1, r4, #0
+ mov r2, #0x88
+ bl FUN_02030A78
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD70_0222F4BC
+
+ thumb_func_start MOD70_0222F528
+MOD70_0222F528: ; 0x0222F528
+ ldr r3, _0222F534 ; =FUN_02030A78
+ mov r2, #0xfa
+ add r1, r0, #0
+ mov r0, #0x1d
+ lsl r2, r2, #2
+ bx r3
+ .align 2, 0
+_0222F534: .word FUN_02030A78
+ thumb_func_end MOD70_0222F528
+
+ thumb_func_start MOD70_0222F538
+MOD70_0222F538: ; 0x0222F538
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x53
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD70_0222F224
+ ldr r0, _0222F588 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F584
+ mov r0, #0x53
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _0222F584
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0xc
+ bne _0222F56C
+ ldr r1, _0222F58C ; =MOD70_0222F674
+ ldr r0, _0222F590 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F584
+_0222F56C:
+ cmp r0, #6
+ bge _0222F578
+ ldr r1, _0222F594 ; =MOD70_0222FDD8
+ ldr r0, _0222F590 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F584
+_0222F578:
+ blt _0222F584
+ cmp r0, #0xc
+ bge _0222F584
+ ldr r1, _0222F598 ; =MOD70_02230810
+ ldr r0, _0222F590 ; =0x00002214
+ str r1, [r4, r0]
+_0222F584:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_0222F588: .word 0x021C48B8
+_0222F58C: .word MOD70_0222F674
+_0222F590: .word 0x00002214
+_0222F594: .word MOD70_0222FDD8
+_0222F598: .word MOD70_02230810
+ thumb_func_end MOD70_0222F538
+
+ thumb_func_start MOD70_0222F59C
+MOD70_0222F59C: ; 0x0222F59C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bne _0222F5CC
+ ldr r0, _0222F660 ; =0x00002218
+ ldr r0, [r5, r0]
+ str r0, [r5, #0xc]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #8]
+ bl FUN_0206B9AC
+ strb r0, [r5, #0x1f]
+ mov r0, #0
+ str r0, [r5, #0x34]
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xc
+ bl FUN_0207C2A4
+ b _0222F606
+_0222F5CC:
+ ldr r0, _0222F664 ; =0x0000221C
+ ldr r1, [r5, r0]
+ str r1, [r5, #0xc]
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ strb r0, [r5, #0x1f]
+ bl FUN_02031190
+ mov r2, #1
+ ldr r1, _0222F668 ; =0x00002E14
+ eor r2, r0
+ mov r0, #0xfb
+ lsl r0, r0, #2
+ add r1, r5, r1
+ mul r0, r2
+ add r0, r1, r0
+ str r0, [r5, #0x34]
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xc
+ bl FUN_0207C2A4
+_0222F606:
+ mov r0, #1
+ strb r0, [r5, #0x1d]
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r1, #6
+ bl _s32_div_f
+ add r0, r5, #0
+ add r0, #0x20
+ strb r1, [r0]
+ mov r0, #1
+ strb r0, [r5, #0x1e]
+ mov r0, #0
+ strh r0, [r5, #0x24]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x10]
+ bl FUN_02079C70
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x30]
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x18]
+ str r0, [r5, #0x10]
+ ldr r0, [r5, #8]
+ ldr r0, [r0, #0x10]
+ bl FUN_0202A918
+ str r0, [r5, #0x2c]
+ add r0, r5, #0
+ ldr r1, _0222F66C ; =0x022313C0
+ add r0, #0xc
+ bl FUN_0207B000
+ add r1, r5, #0
+ ldr r0, _0222F670 ; =0x020FA6E8
+ add r1, #0xc
+ mov r2, #0x1a
+ bl FUN_02006234
+ str r0, [r5, #0x40]
+ str r4, [r5, #0x3c]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0222F660: .word 0x00002218
+_0222F664: .word 0x0000221C
+_0222F668: .word 0x00002E14
+_0222F66C: .word 0x022313C0
+_0222F670: .word 0x020FA6E8
+ thumb_func_end MOD70_0222F59C
+
+ thumb_func_start MOD70_0222F674
+MOD70_0222F674: ; 0x0222F674
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F6BC ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x19
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F6C0 ; =MOD70_0222F6C8
+ ldr r0, _0222F6C4 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222F6BC: .word 0x000005A8
+_0222F6C0: .word MOD70_0222F6C8
+_0222F6C4: .word 0x00002214
+ thumb_func_end MOD70_0222F674
+
+ thumb_func_start MOD70_0222F6C8
+MOD70_0222F6C8: ; 0x0222F6C8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222F778 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222F6EE
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F738
+ b _0222F772
+_0222F6EE:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F77C ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD70_02230F40
+ add r0, r4, #0
+ mov r1, #0x18
+ mov r2, #1
+ bl MOD70_0222F440
+ ldr r1, _0222F780 ; =MOD70_0222FD9C
+ ldr r0, _0222F784 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ str r0, [r4, #0x5c]
+ b _0222F772
+_0222F738:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F788 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F78C ; =MOD70_0222F538
+ ldr r0, _0222F784 ; =0x00002214
+ str r1, [r4, r0]
+_0222F772:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0222F778: .word 0x00000658
+_0222F77C: .word 0x000005A8
+_0222F780: .word MOD70_0222FD9C
+_0222F784: .word 0x00002214
+_0222F788: .word 0x00000588
+_0222F78C: .word MOD70_0222F538
+ thumb_func_end MOD70_0222F6C8
+
+ thumb_func_start MOD70_0222F790
+MOD70_0222F790: ; 0x0222F790
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F7D8 ; =0x000005A8
+ ldr r1, [r4, #0x68]
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F7DC ; =MOD70_0222F7E4
+ ldr r0, _0222F7E0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222F7D8: .word 0x000005A8
+_0222F7DC: .word MOD70_0222F7E4
+_0222F7E0: .word 0x00002214
+ thumb_func_end MOD70_0222F790
+
+ thumb_func_start MOD70_0222F7E4
+MOD70_0222F7E4: ; 0x0222F7E4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, _0222F83C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _0222F834
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222F840 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222F844 ; =MOD70_0222F538
+ ldr r0, _0222F848 ; =0x00002214
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD70_02230390
+_0222F834:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_0222F83C: .word 0x021C48B8
+_0222F840: .word 0x00000588
+_0222F844: .word MOD70_0222F538
+_0222F848: .word 0x00002214
+ thumb_func_end MOD70_0222F7E4
+
+ thumb_func_start MOD70_0222F84C
+MOD70_0222F84C: ; 0x0222F84C
+ push {r3, r4, lr}
+ sub sp, #4
+ ldr r4, _0222F86C ; =0x00003674
+ add r3, r0, #0
+ ldr r0, [r3, r4]
+ add r4, r4, #4
+ str r0, [sp]
+ ldr r0, _0222F870 ; =0x000005A8
+ mov r2, #1
+ add r0, r3, r0
+ ldr r3, [r3, r4]
+ bl MOD70_02230F40
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_0222F86C: .word 0x00003674
+_0222F870: .word 0x000005A8
+ thumb_func_end MOD70_0222F84C
+
+ thumb_func_start MOD70_0222F874
+MOD70_0222F874: ; 0x0222F874
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222F8B4 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222F898
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F8A0
+ b _0222F8AE
+_0222F898:
+ ldr r1, _0222F8B8 ; =MOD70_0222FBF0
+ ldr r0, _0222F8BC ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F8AE
+_0222F8A0:
+ add r0, r4, #0
+ mov r1, #0x22
+ bl MOD70_0222F84C
+ ldr r1, _0222F8C0 ; =MOD70_0222FADC
+ ldr r0, _0222F8BC ; =0x00002214
+ str r1, [r4, r0]
+_0222F8AE:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222F8B4: .word 0x00000658
+_0222F8B8: .word MOD70_0222FBF0
+_0222F8BC: .word 0x00002214
+_0222F8C0: .word MOD70_0222FADC
+ thumb_func_end MOD70_0222F874
+
+ thumb_func_start MOD70_0222F8C4
+MOD70_0222F8C4: ; 0x0222F8C4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222F938 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222F8EA
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222F910
+ b _0222F932
+_0222F8EA:
+ ldr r1, _0222F93C ; =0x00003694
+ ldr r0, [r4, r1]
+ sub r1, #0x24
+ ldr r1, [r4, r1]
+ bl FUN_02028468
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, _0222F940 ; =0x0000366C
+ ldr r0, [r4, #4]
+ ldr r1, [r4, r1]
+ mov r2, #0x1f
+ mov r3, #0x1a
+ bl FUN_02033A70
+ ldr r1, _0222F944 ; =MOD70_0222FBF0
+ ldr r0, _0222F948 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222F932
+_0222F910:
+ ldr r0, _0222F940 ; =0x0000366C
+ ldr r0, [r4, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222F94C ; =0x00003674
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200ABC0
+ add r0, r4, #0
+ mov r1, #0x23
+ bl MOD70_0222F84C
+ ldr r1, _0222F950 ; =MOD70_0222F874
+ ldr r0, _0222F948 ; =0x00002214
+ str r1, [r4, r0]
+_0222F932:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222F938: .word 0x00000658
+_0222F93C: .word 0x00003694
+_0222F940: .word 0x0000366C
+_0222F944: .word MOD70_0222FBF0
+_0222F948: .word 0x00002214
+_0222F94C: .word 0x00003674
+_0222F950: .word MOD70_0222F874
+ thumb_func_end MOD70_0222F8C4
+
+ thumb_func_start MOD70_0222F954
+MOD70_0222F954: ; 0x0222F954
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0xda
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r4, r0, #0
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _0222F976
+ add r0, r0, #1
+ cmp r4, r0
+ bne _0222F9A0
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0222F976:
+ ldr r0, _0222FA10 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222FA14 ; =0x0000366C
+ ldr r0, [r5, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222FA18 ; =0x00003674
+ mov r1, #0
+ ldr r0, [r5, r0]
+ bl FUN_0200ABC0
+ add r0, r5, #0
+ mov r1, #0x23
+ bl MOD70_0222F84C
+ ldr r1, _0222FA1C ; =MOD70_0222F874
+ ldr r0, _0222FA20 ; =0x00002214
+ str r1, [r5, r0]
+ b _0222F9E4
+_0222F9A0:
+ ldr r0, _0222FA10 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _0222FA24 ; =0x00003670
+ str r4, [r5, r0]
+ mov r0, #0x1a
+ bl FUN_02023928
+ add r6, r0, #0
+ ldr r0, _0222FA28 ; =0x00003694
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_0202395C
+ ldr r0, _0222FA18 ; =0x00003674
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r6, #0
+ bl FUN_0200ABC0
+ add r0, r6, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ mov r1, #0x24
+ bl MOD70_0222F84C
+ ldr r1, _0222FA2C ; =MOD70_0222F8C4
+ ldr r0, _0222FA20 ; =0x00002214
+ str r1, [r5, r0]
+_0222F9E4:
+ ldr r0, _0222FA30 ; =0x00003684
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_0200CCF8
+ ldr r0, _0222FA30 ; =0x00003684
+ add r0, r5, r0
+ bl FUN_02019178
+ mov r0, #0xda
+ lsl r0, r0, #6
+ mov r1, #0
+ ldr r0, [r5, r0]
+ add r2, r1, #0
+ bl FUN_02001300
+ ldr r0, _0222FA34 ; =0x0000367C
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_0222FA10: .word 0x000005DC
+_0222FA14: .word 0x0000366C
+_0222FA18: .word 0x00003674
+_0222FA1C: .word MOD70_0222F874
+_0222FA20: .word 0x00002214
+_0222FA24: .word 0x00003670
+_0222FA28: .word 0x00003694
+_0222FA2C: .word MOD70_0222F8C4
+_0222FA30: .word 0x00003684
+_0222FA34: .word 0x0000367C
+ thumb_func_end MOD70_0222F954
+
+ thumb_func_start MOD70_0222FA38
+MOD70_0222FA38: ; 0x0222FA38
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _0222FACC ; =0x00003694
+ ldr r0, [r5, r0]
+ bl FUN_02028448
+ str r0, [sp]
+ add r0, r0, #1
+ mov r1, #0x1a
+ bl FUN_02012838
+ ldr r1, _0222FAD0 ; =0x0000367C
+ str r0, [r5, r1]
+ mov r0, #0x64
+ mov r1, #0x1a
+ bl FUN_020219F4
+ ldr r7, _0222FACC ; =0x00003694
+ add r6, r0, #0
+ mov r4, #0
+_0222FA60:
+ ldr r0, [r5, r7]
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ beq _0222FA8A
+ ldr r0, _0222FACC ; =0x00003694
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_020283A4
+ add r1, r0, #0
+ add r0, r6, #0
+ bl FUN_02021E28
+ ldr r0, _0222FAD0 ; =0x0000367C
+ add r1, r6, #0
+ ldr r0, [r5, r0]
+ add r2, r4, #0
+ bl FUN_020128A0
+_0222FA8A:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _0222FA60
+ ldr r1, _0222FAD0 ; =0x0000367C
+ mov r2, #0xb
+ ldr r0, [r5, r1]
+ sub r1, r1, #4
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0xd
+ bl FUN_02012880
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r2, _0222FAD0 ; =0x0000367C
+ mov r3, #0x5d
+ lsl r3, r3, #2
+ ldr r0, [r5, r2]
+ add r2, #8
+ ldr r1, [sp]
+ ldr r3, [r5, r3]
+ add r2, r5, r2
+ bl MOD70_02231018
+ mov r1, #0xda
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ ldr r1, _0222FAD4 ; =MOD70_0222F954
+ ldr r0, _0222FAD8 ; =0x00002214
+ str r1, [r5, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FACC: .word 0x00003694
+_0222FAD0: .word 0x0000367C
+_0222FAD4: .word MOD70_0222F954
+_0222FAD8: .word 0x00002214
+ thumb_func_end MOD70_0222FA38
+
+ thumb_func_start MOD70_0222FADC
+MOD70_0222FADC: ; 0x0222FADC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222FB30 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222FB00
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FB08
+ b _0222FB2A
+_0222FB00:
+ ldr r1, _0222FB34 ; =MOD70_0222FA38
+ ldr r0, _0222FB38 ; =0x00002214
+ str r1, [r4, r0]
+ b _0222FB2A
+_0222FB08:
+ ldr r0, _0222FB3C ; =0x0000366C
+ ldr r0, [r4, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222FB40 ; =0x00003674
+ mov r1, #0
+ ldr r0, [r4, r0]
+ bl FUN_0200ABC0
+ add r0, r4, #0
+ mov r1, #0x23
+ bl MOD70_0222F84C
+ ldr r1, _0222FB44 ; =MOD70_0222F874
+ ldr r0, _0222FB38 ; =0x00002214
+ str r1, [r4, r0]
+_0222FB2A:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_0222FB30: .word 0x00000658
+_0222FB34: .word MOD70_0222FA38
+_0222FB38: .word 0x00002214
+_0222FB3C: .word 0x0000366C
+_0222FB40: .word 0x00003674
+_0222FB44: .word MOD70_0222F874
+ thumb_func_end MOD70_0222FADC
+
+ thumb_func_start MOD70_0222FB48
+MOD70_0222FB48: ; 0x0222FB48
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ mov r0, #0x5d
+ ldr r2, _0222FBC4 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r5, r2
+ add r2, #0xc
+ ldr r0, [r5, r0]
+ add r2, r5, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0222FB6E
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FBB6
+ b _0222FBBC
+_0222FB6E:
+ ldr r1, _0222FBC8 ; =MOD70_0222FBF0
+ ldr r0, _0222FBCC ; =0x00002214
+ ldr r6, _0222FBD0 ; =0x00003694
+ str r1, [r5, r0]
+ mov r4, #0
+_0222FB78:
+ ldr r0, [r5, r6]
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _0222FB98
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, _0222FBD4 ; =0x0000366C
+ ldr r0, [r5, #4]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ mov r3, #0x1a
+ bl FUN_02033A70
+ b _0222FB9E
+_0222FB98:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _0222FB78
+_0222FB9E:
+ cmp r4, #0x20
+ bne _0222FBBC
+ add r0, r5, #0
+ mov r1, #0x22
+ bl MOD70_0222F84C
+ ldr r1, _0222FBD8 ; =MOD70_0222FADC
+ ldr r0, _0222FBCC ; =0x00002214
+ add sp, #4
+ str r1, [r5, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_0222FBB6:
+ ldr r1, _0222FBC8 ; =MOD70_0222FBF0
+ ldr r0, _0222FBCC ; =0x00002214
+ str r1, [r5, r0]
+_0222FBBC:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_0222FBC4: .word 0x00000658
+_0222FBC8: .word MOD70_0222FBF0
+_0222FBCC: .word 0x00002214
+_0222FBD0: .word 0x00003694
+_0222FBD4: .word 0x0000366C
+_0222FBD8: .word MOD70_0222FADC
+ thumb_func_end MOD70_0222FB48
+
+ thumb_func_start MOD70_0222FBDC
+MOD70_0222FBDC: ; 0x0222FBDC
+ push {r3, lr}
+ mov r0, #0x13
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _0222FBEC
+ mov r0, #2
+ pop {r3, pc}
+_0222FBEC:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD70_0222FBDC
+
+ thumb_func_start MOD70_0222FBF0
+MOD70_0222FBF0: ; 0x0222FBF0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r1, #0
+ ldr r0, _0222FCE4 ; =0x0000366C
+ mvn r1, r1
+ str r1, [r6, r0]
+ mov r4, #0
+ bl FUN_02030F20
+ cmp r0, #0
+ ble _0222FC2C
+ ldr r7, _0222FCE8 ; =0x000035EC
+ add r5, r6, #0
+_0222FC0A:
+ ldr r0, [r5, r7]
+ cmp r0, #2
+ bne _0222FC20
+ ldr r0, _0222FCE4 ; =0x0000366C
+ lsl r1, r4, #2
+ str r4, [r6, r0]
+ mov r2, #0
+ add r1, r6, r1
+ sub r0, #0x80
+ str r2, [r1, r0]
+ b _0222FC2C
+_0222FC20:
+ add r5, r5, #4
+ add r4, r4, #1
+ bl FUN_02030F20
+ cmp r4, r0
+ blt _0222FC0A
+_0222FC2C:
+ ldr r0, _0222FCE4 ; =0x0000366C
+ mov r1, #0
+ ldr r2, [r6, r0]
+ mvn r1, r1
+ cmp r2, r1
+ bne _0222FC70
+ add r0, #0xc
+ ldr r0, [r6, r0]
+ bl FUN_0200A8B8
+ ldr r0, _0222FCEC ; =0x00003674
+ ldr r0, [r6, r0]
+ bl FUN_0200AB18
+ mov r0, #0x13
+ bl FUN_02031588
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r6, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222FCF0 ; =0x000005A8
+ ldr r3, [r6, r3]
+ add r0, r6, r0
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222FCF4 ; =MOD70_0222FBDC
+ ldr r0, _0222FCF8 ; =0x00002214
+ str r1, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FC70:
+ ldr r0, [r6, #4]
+ bl FUN_0206F158
+ ldr r1, _0222FCFC ; =0x000001B5
+ mov r2, #1
+ mov r3, #0x1a
+ bl FUN_0206EE50
+ cmp r0, #1
+ bne _0222FCAA
+ ldr r0, _0222FCE4 ; =0x0000366C
+ ldr r0, [r6, r0]
+ bl FUN_0202DFA4
+ add r2, r0, #0
+ ldr r0, _0222FCEC ; =0x00003674
+ mov r1, #0
+ ldr r0, [r6, r0]
+ bl FUN_0200ABC0
+ add r0, r6, #0
+ mov r1, #0x21
+ bl MOD70_0222F84C
+ ldr r1, _0222FD00 ; =MOD70_0222FB48
+ ldr r0, _0222FCF8 ; =0x00002214
+ str r1, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0222FCAA:
+ ldr r0, [r6, #4]
+ bl FUN_020286EC
+ add r5, r0, #0
+ mov r4, #0
+_0222FCB4:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_0202842C
+ cmp r0, #0
+ bne _0222FCD4
+ mov r0, #0
+ str r0, [sp]
+ ldr r1, _0222FCE4 ; =0x0000366C
+ ldr r0, [r6, #4]
+ ldr r1, [r6, r1]
+ add r2, r4, #0
+ mov r3, #0x1a
+ bl FUN_02033A70
+ b _0222FCDA
+_0222FCD4:
+ add r4, r4, #1
+ cmp r4, #0x20
+ blt _0222FCB4
+_0222FCDA:
+ ldr r1, _0222FD04 ; =MOD70_0222FBF0
+ ldr r0, _0222FCF8 ; =0x00002214
+ str r1, [r6, r0]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0222FCE4: .word 0x0000366C
+_0222FCE8: .word 0x000035EC
+_0222FCEC: .word 0x00003674
+_0222FCF0: .word 0x000005A8
+_0222FCF4: .word MOD70_0222FBDC
+_0222FCF8: .word 0x00002214
+_0222FCFC: .word 0x000001B5
+_0222FD00: .word MOD70_0222FB48
+_0222FD04: .word MOD70_0222FBF0
+ thumb_func_end MOD70_0222FBF0
+
+ thumb_func_start MOD70_0222FD08
+MOD70_0222FD08: ; 0x0222FD08
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r1, _0222FD78 ; =0x000035EC
+ ldr r0, [r4, #4]
+ add r1, r4, r1
+ mov r2, #0x1a
+ bl FUN_020339B4
+ cmp r0, #0
+ bne _0222FD48
+ mov r0, #0x13
+ bl FUN_02031588
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _0222FD7C ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x1c
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0222FD80 ; =MOD70_0222FBDC
+ ldr r0, _0222FD84 ; =0x00002214
+ add sp, #4
+ str r1, [r4, r0]
+ mov r0, #0
+ pop {r3, r4, pc}
+_0222FD48:
+ mov r0, #0x1a
+ bl FUN_0200AA80
+ ldr r1, _0222FD88 ; =0x00003674
+ ldr r2, _0222FD8C ; =0x00000251
+ str r0, [r4, r1]
+ mov r1, #0x1a
+ mov r0, #0
+ add r3, r1, #0
+ bl FUN_0200A86C
+ ldr r1, _0222FD90 ; =0x00003678
+ str r0, [r4, r1]
+ ldr r0, [r4, #4]
+ bl FUN_020286EC
+ ldr r1, _0222FD94 ; =0x00003694
+ str r0, [r4, r1]
+ ldr r1, _0222FD98 ; =MOD70_0222FBF0
+ ldr r0, _0222FD84 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_0222FD78: .word 0x000035EC
+_0222FD7C: .word 0x000005A8
+_0222FD80: .word MOD70_0222FBDC
+_0222FD84: .word 0x00002214
+_0222FD88: .word 0x00003674
+_0222FD8C: .word 0x00000251
+_0222FD90: .word 0x00003678
+_0222FD94: .word 0x00003694
+_0222FD98: .word MOD70_0222FBF0
+ thumb_func_end MOD70_0222FD08
+
+ thumb_func_start MOD70_0222FD9C
+MOD70_0222FD9C: ; 0x0222FD9C
+ ldr r2, [r0, #0x60]
+ cmp r2, #0
+ beq _0222FDC8
+ ldr r1, [r0, #0x64]
+ cmp r1, #0
+ beq _0222FDC8
+ cmp r2, #1
+ bne _0222FDB8
+ cmp r1, #1
+ bne _0222FDB8
+ ldr r2, _0222FDCC ; =MOD70_0222FD08
+ ldr r1, _0222FDD0 ; =0x00002214
+ str r2, [r0, r1]
+ b _0222FDBE
+_0222FDB8:
+ ldr r2, _0222FDD4 ; =MOD70_0222F790
+ ldr r1, _0222FDD0 ; =0x00002214
+ str r2, [r0, r1]
+_0222FDBE:
+ mov r1, #0
+ str r1, [r0, #0x60]
+ str r1, [r0, #0x64]
+ mov r1, #0x1d
+ str r1, [r0, #0x68]
+_0222FDC8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_0222FDCC: .word MOD70_0222FD08
+_0222FDD0: .word 0x00002214
+_0222FDD4: .word MOD70_0222F790
+ thumb_func_end MOD70_0222FD9C
+
+ thumb_func_start MOD70_0222FDD8
+MOD70_0222FDD8: ; 0x0222FDD8
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ mov r0, #0
+ add r1, sp, #0x10
+ strb r0, [r1, #8]
+ mov r0, #1
+ strb r0, [r1, #9]
+ mov r0, #3
+ strb r0, [r1, #0xa]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xf
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0x30
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xc0
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldr r0, _0222FED0 ; =0x00002218
+ add r1, r4, #0
+ add r1, #0x88
+ ldr r0, [r4, r0]
+ ldr r1, [r1]
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _0222FED4 ; =0x00000598
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #3
+ mov r1, #0x1a
+ bl FUN_02012838
+ ldr r1, _0222FED8 ; =0x0000065C
+ mov r2, #0x11
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r3, #0
+ bl FUN_02012880
+ ldr r0, _0222FED8 ; =0x0000065C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x12
+ mov r3, #1
+ bl FUN_02012880
+ ldr r0, _0222FED8 ; =0x0000065C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ mov r3, #2
+ bl FUN_02012880
+ ldr r0, _0222FED8 ; =0x0000065C
+ ldr r1, [r4, r0]
+ str r1, [sp, #0x10]
+ sub r0, #0xa4
+ add r0, r4, r0
+ str r0, [sp, #0x14]
+ bl MOD70_02231004
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r1, #0x66
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r1, _0222FEDC ; =MOD70_0222FEE4
+ ldr r0, _0222FEE0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ nop
+_0222FED0: .word 0x00002218
+_0222FED4: .word 0x00000598
+_0222FED8: .word 0x0000065C
+_0222FEDC: .word MOD70_0222FEE4
+_0222FEE0: .word 0x00002214
+ thumb_func_end MOD70_0222FDD8
+
+ thumb_func_start MOD70_0222FEE4
+MOD70_0222FEE4: ; 0x0222FEE4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001C78
+ cmp r0, #2
+ bhi _0222FF06
+ cmp r0, #0
+ beq _0222FF10
+ cmp r0, #1
+ beq _0222FF64
+ cmp r0, #2
+ beq _0222FFB4
+ b _02230002
+_0222FF06:
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _0222FFB4
+ b _02230002
+_0222FF10:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230008 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223000C ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _02230010 ; =MOD70_0222F538
+ ldr r0, _02230014 ; =0x00002214
+ add sp, #0x10
+ str r1, [r4, r0]
+ mov r0, #3
+ pop {r4, pc}
+_0222FF64:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230018 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223000C ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _0223001C ; =MOD70_02230020
+ ldr r0, _02230014 ; =0x00002214
+ str r1, [r4, r0]
+ b _02230002
+_0222FFB4:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230008 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _0223000C ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _02230010 ; =MOD70_0222F538
+ ldr r0, _02230014 ; =0x00002214
+ str r1, [r4, r0]
+_02230002:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230008: .word 0x00000588
+_0223000C: .word 0x0000065C
+_02230010: .word MOD70_0222F538
+_02230014: .word 0x00002214
+_02230018: .word 0x000005A8
+_0223001C: .word MOD70_02230020
+ thumb_func_end MOD70_0222FEE4
+
+ thumb_func_start MOD70_02230020
+MOD70_02230020: ; 0x02230020
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230070 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ add r0, r4, #0
+ mov r1, #0x18
+ mov r2, #2
+ bl MOD70_0222F440
+ ldr r1, _02230074 ; =MOD70_0223007C
+ ldr r0, _02230078 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230070: .word 0x000005A8
+_02230074: .word MOD70_0223007C
+_02230078: .word 0x00002214
+ thumb_func_end MOD70_02230020
+
+ thumb_func_start MOD70_0223007C
+MOD70_0223007C: ; 0x0223007C
+ ldr r2, [r0, #0x60]
+ cmp r2, #0
+ beq _022300A8
+ ldr r1, [r0, #0x64]
+ cmp r1, #0
+ beq _022300A8
+ cmp r2, #2
+ bne _02230098
+ cmp r1, #2
+ bne _02230098
+ ldr r2, _022300AC ; =MOD70_022300B8
+ ldr r1, _022300B0 ; =0x00002214
+ str r2, [r0, r1]
+ b _0223009E
+_02230098:
+ ldr r2, _022300B4 ; =MOD70_0222F790
+ ldr r1, _022300B0 ; =0x00002214
+ str r2, [r0, r1]
+_0223009E:
+ mov r1, #0x18
+ str r1, [r0, #0x68]
+ mov r1, #0
+ str r1, [r0, #0x60]
+ str r1, [r0, #0x64]
+_022300A8:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_022300AC: .word MOD70_022300B8
+_022300B0: .word 0x00002214
+_022300B4: .word MOD70_0222F790
+ thumb_func_end MOD70_0223007C
+
+ thumb_func_start MOD70_022300B8
+MOD70_022300B8: ; 0x022300B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ ldr r0, _022301D8 ; =0x00000438
+ mov r6, #0
+ add r0, r7, r0
+ add r4, r7, #0
+ add r5, r7, #0
+ str r0, [sp, #4]
+_022300CA:
+ add r0, r7, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r6, r0
+ beq _02230108
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, _022301DC ; =0x00000692
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ beq _022300F4
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_022300F4:
+ ldr r0, _022301E0 ; =0x0000069C
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02230108
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02230108:
+ add r0, r6, #7
+ lsl r1, r0, #4
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ bl FUN_0201958C
+ add r0, r7, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ sub r0, r0, #6
+ cmp r6, r0
+ beq _02230154
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, _022301E4 ; =0x000006F2
+ ldrh r0, [r5, r0]
+ cmp r0, #0
+ beq _02230140
+ mov r0, #0xee
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02230140:
+ ldr r0, _022301E8 ; =0x000006FC
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _02230154
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_02230154:
+ add r0, r6, #0
+ add r0, #0xd
+ lsl r1, r0, #4
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ bl FUN_0201958C
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0x10
+ cmp r6, #6
+ blt _022300CA
+ mov r0, #0xce
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xcf
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ add r0, r7, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ mov r3, #0x30
+ lsl r2, r0, #3
+ ldr r1, _022301EC ; =0x02231220
+ ldr r0, _022301F0 ; =0x000022C4
+ ldr r1, [r1, r2]
+ ldr r4, _022301F4 ; =0x02231224
+ add r0, r7, r0
+ ldr r2, [r4, r2]
+ add r1, #0x10
+ sub r2, r2, #6
+ str r3, [sp]
+ bl MOD70_02230204
+ add r0, r7, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ ldr r1, _022301EC ; =0x02231220
+ lsl r2, r0, #3
+ mov r0, #0x30
+ str r0, [sp]
+ ldr r0, _022301F8 ; =0x000022DC
+ ldr r1, [r1, r2]
+ add r3, r4, #0
+ ldr r2, [r3, r2]
+ add r0, r7, r0
+ add r1, #0x10
+ sub r2, r2, #6
+ mov r3, #0xb0
+ bl MOD70_02230204
+ ldr r1, _022301FC ; =0x000022BC
+ mov r0, #0
+ str r0, [r7, r1]
+ ldr r2, _02230200 ; =MOD70_0223029C
+ sub r1, #0xa8
+ str r2, [r7, r1]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022301D8: .word 0x00000438
+_022301DC: .word 0x00000692
+_022301E0: .word 0x0000069C
+_022301E4: .word 0x000006F2
+_022301E8: .word 0x000006FC
+_022301EC: .word 0x02231220
+_022301F0: .word 0x000022C4
+_022301F4: .word 0x02231224
+_022301F8: .word 0x000022DC
+_022301FC: .word 0x000022BC
+_02230200: .word MOD70_0223029C
+ thumb_func_end MOD70_022300B8
+
+ thumb_func_start MOD70_02230204
+MOD70_02230204: ; 0x02230204
+ lsl r1, r1, #0xc
+ str r1, [r0]
+ lsl r1, r2, #0xc
+ str r1, [r0, #4]
+ lsl r1, r3, #0xc
+ str r1, [r0, #0xc]
+ ldr r1, [sp]
+ lsl r1, r1, #0xc
+ str r1, [r0, #0x10]
+ bx lr
+ thumb_func_end MOD70_02230204
+
+ thumb_func_start MOD70_02230218
+MOD70_02230218: ; 0x02230218
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x30
+ ldr r7, [sp, #0x48]
+ str r0, [sp]
+ ldr r4, [r7]
+ ldr r0, [r7, #0xc]
+ str r1, [sp, #4]
+ add r6, r3, #0
+ sub r0, r0, r4
+ mov r1, #0x14
+ str r2, [sp, #8]
+ ldr r5, [sp, #0x4c]
+ bl _s32_div_f
+ mul r0, r6
+ add r0, r4, r0
+ str r0, [sp, #0x24]
+ ldr r4, [r7, #4]
+ ldr r0, [r7, #0x10]
+ mov r1, #0x14
+ sub r0, r0, r4
+ bl _s32_div_f
+ mul r0, r6
+ add r0, r4, r0
+ str r0, [sp, #0x28]
+ ldr r0, [sp]
+ add r1, sp, #0x24
+ bl FUN_02020044
+ ldrh r0, [r5, #2]
+ cmp r0, #0
+ beq _02230276
+ mov r0, #5
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ mov r0, #0x16
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #4]
+ add r1, sp, #0x18
+ bl FUN_02020044
+_02230276:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ beq _02230298
+ mov r0, #7
+ ldr r1, [sp, #0x24]
+ lsl r0, r0, #0xe
+ add r0, r1, r0
+ str r0, [sp, #0xc]
+ mov r0, #0x16
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #8]
+ add r1, sp, #0xc
+ bl FUN_02020044
+_02230298:
+ add sp, #0x30
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD70_02230218
+
+ thumb_func_start MOD70_0223029C
+MOD70_0223029C: ; 0x0223029C
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r3, _02230370 ; =0x000022BC
+ add r4, r0, #0
+ ldr r0, [r4, r3]
+ add r2, r3, #0
+ add r0, r0, #1
+ str r0, [r4, r3]
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r1, [r0]
+ add r2, #8
+ add r2, r4, r2
+ lsl r0, r1, #2
+ str r2, [sp]
+ mov r2, #0x69
+ lsl r2, r2, #4
+ add r2, r4, r2
+ lsl r1, r1, #4
+ add r1, r2, r1
+ mov r2, #0x37
+ str r1, [sp, #4]
+ lsl r2, r2, #4
+ add r5, r4, r0
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #0x30
+ add r2, #0x60
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ ldr r3, [r4, r3]
+ bl MOD70_02230218
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r3, _02230374 ; =0x000022DC
+ ldr r5, [r0]
+ add r1, r4, r3
+ str r1, [sp]
+ mov r1, #0x69
+ lsl r1, r1, #4
+ add r2, r4, r1
+ lsl r1, r5, #4
+ add r1, r2, r1
+ mov r2, #0x37
+ lsl r0, r5, #2
+ lsl r2, r2, #4
+ str r1, [sp, #4]
+ add r5, r4, r0
+ add r1, r2, #0
+ ldr r0, [r5, r2]
+ add r1, #0x30
+ add r2, #0x60
+ sub r3, #0x20
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ ldr r3, [r4, r3]
+ bl MOD70_02230218
+ ldr r1, _02230370 ; =0x000022BC
+ ldr r0, [r4, r1]
+ cmp r0, #0x15
+ bne _02230368
+ mov r0, #1
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r0, _02230378 ; =0x00000568
+ sub r1, #0xa4
+ add r2, #0x88
+ ldr r1, [r4, r1]
+ ldr r2, [r2]
+ add r0, r4, r0
+ mov r3, #8
+ bl MOD70_0222EC5C
+ mov r0, #1
+ add r2, r4, #0
+ str r0, [sp]
+ ldr r1, _0223037C ; =0x0000221C
+ add r2, #0x8c
+ ldr r0, _02230380 ; =0x00000578
+ ldr r2, [r2]
+ ldr r1, [r4, r1]
+ add r0, r4, r0
+ sub r2, r2, #6
+ mov r3, #8
+ bl MOD70_0222EC5C
+ add r1, r4, #0
+ add r1, #0x8c
+ ldr r1, [r1]
+ add r0, r4, #0
+ bl MOD70_0222E1A0
+ ldr r1, _02230384 ; =MOD70_022304AC
+ ldr r0, _02230388 ; =0x00002214
+ str r1, [r4, r0]
+ ldr r0, _0223038C ; =0x00000418
+ mov r1, #1
+ ldr r0, [r4, r0]
+ bl FUN_020200A0
+_02230368:
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_02230370: .word 0x000022BC
+_02230374: .word 0x000022DC
+_02230378: .word 0x00000568
+_0223037C: .word 0x0000221C
+_02230380: .word 0x00000578
+_02230384: .word MOD70_022304AC
+_02230388: .word 0x00002214
+_0223038C: .word 0x00000418
+ thumb_func_end MOD70_0223029C
+
+ thumb_func_start MOD70_02230390
+MOD70_02230390: ; 0x02230390
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ ldr r1, _0223048C ; =0x00000568
+ str r0, [sp]
+ add r0, r0, r1
+ bl FUN_0201958C
+ ldr r1, _02230490 ; =0x00000578
+ ldr r0, [sp]
+ add r0, r0, r1
+ bl FUN_0201958C
+ ldr r6, [sp]
+ ldr r1, _02230494 ; =0x00000438
+ add r0, r6, #0
+ add r0, r0, r1
+ ldr r4, _02230498 ; =0x02231220
+ mov r7, #0
+ add r5, r6, #0
+ str r0, [sp, #4]
+_022303B8:
+ mov r0, #0x69
+ lsl r0, r0, #4
+ ldrh r0, [r6, r0]
+ cmp r0, #0
+ beq _02230438
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, #0x10
+ sub r2, r2, #6
+ bl MOD70_02230B70
+ mov r0, #0x37
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, _0223049C ; =0x00000692
+ ldrh r0, [r6, r0]
+ cmp r0, #0
+ beq _02230406
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, #0x24
+ add r2, #0x10
+ bl MOD70_02230B70
+ mov r0, #0x3a
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_02230406:
+ ldr r0, _022304A0 ; =0x0000069C
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _0223042C
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, #0x2c
+ add r2, #0x10
+ bl MOD70_02230B70
+ mov r0, #0x3d
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_0223042C:
+ add r0, r7, #7
+ lsl r1, r0, #4
+ ldr r0, [sp, #4]
+ add r0, r0, r1
+ bl FUN_02019220
+_02230438:
+ add r7, r7, #1
+ add r6, #0x10
+ add r4, #8
+ add r5, r5, #4
+ cmp r7, #0xc
+ blt _022303B8
+ mov r1, #0xce
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r1, #0xcf
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r1, _02230494 ; =0x00000438
+ ldr r0, [sp]
+ ldr r2, [sp]
+ add r0, r0, r1
+ mov r1, #1
+ bl MOD70_0222EF24
+ ldr r1, _022304A4 ; =0x0000040C
+ ldr r0, [sp]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r1, _022304A8 ; =0x00000418
+ ldr r0, [sp]
+ ldr r0, [r0, r1]
+ mov r1, #0
+ bl FUN_020200A0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_0223048C: .word 0x00000568
+_02230490: .word 0x00000578
+_02230494: .word 0x00000438
+_02230498: .word 0x02231220
+_0223049C: .word 0x00000692
+_022304A0: .word 0x0000069C
+_022304A4: .word 0x0000040C
+_022304A8: .word 0x00000418
+ thumb_func_end MOD70_02230390
+
+ thumb_func_start MOD70_022304AC
+MOD70_022304AC: ; 0x022304AC
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ ldr r0, _02230534 ; =0x00002218
+ add r1, r4, #0
+ add r1, #0x88
+ ldr r0, [r4, r0]
+ ldr r1, [r1]
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ add r1, r4, #0
+ ldr r0, _02230538 ; =0x0000221C
+ add r1, #0x8c
+ ldr r1, [r1]
+ ldr r0, [r4, r0]
+ sub r1, r1, #6
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ bl FUN_0200ACF8
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _0223053C ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x15
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230540 ; =MOD70_02230548
+ ldr r0, _02230544 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230534: .word 0x00002218
+_02230538: .word 0x0000221C
+_0223053C: .word 0x000005A8
+_02230540: .word MOD70_02230548
+_02230544: .word 0x00002214
+ thumb_func_end MOD70_022304AC
+
+ thumb_func_start MOD70_02230548
+MOD70_02230548: ; 0x02230548
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _02230638 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _0223056E
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _022305EE
+ b _02230632
+_0223056E:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ lsl r0, r0, #4
+ add r1, r4, r0
+ ldr r0, _0223063C ; =0x0000069C
+ ldr r0, [r1, r0]
+ cmp r0, #0
+ bne _022305E6
+ add r0, r4, #0
+ bl MOD70_02230BC4
+ cmp r0, #0
+ beq _022305D4
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230640 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230644 ; =MOD70_02230770
+ ldr r0, _02230648 ; =0x00002214
+ mov r2, #3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+ mov r0, #1
+ str r0, [r4, #0x5c]
+ b _02230632
+_022305D4:
+ ldr r1, _02230644 ; =MOD70_02230770
+ ldr r0, _02230648 ; =0x00002214
+ mov r2, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+ b _02230632
+_022305E6:
+ ldr r1, _0223064C ; =MOD70_02230650
+ ldr r0, _02230648 ; =0x00002214
+ str r1, [r4, r0]
+ b _02230632
+_022305EE:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230640 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230644 ; =MOD70_02230770
+ ldr r0, _02230648 ; =0x00002214
+ mov r2, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+_02230632:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_02230638: .word 0x00000658
+_0223063C: .word 0x0000069C
+_02230640: .word 0x000005A8
+_02230644: .word MOD70_02230770
+_02230648: .word 0x00002214
+_0223064C: .word MOD70_02230650
+ thumb_func_end MOD70_02230548
+
+ thumb_func_start MOD70_02230650
+MOD70_02230650: ; 0x02230650
+ push {r4, lr}
+ sub sp, #0x10
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _02230698 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x24
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _0223069C ; =MOD70_022306A4
+ ldr r0, _022306A0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02230698: .word 0x000005A8
+_0223069C: .word MOD70_022306A4
+_022306A0: .word 0x00002214
+ thumb_func_end MOD70_02230650
+
+ thumb_func_start MOD70_022306A4
+MOD70_022306A4: ; 0x022306A4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x5d
+ ldr r2, _02230760 ; =0x00000658
+ lsl r0, r0, #2
+ add r1, r4, r2
+ add r2, #0xc
+ ldr r0, [r4, r0]
+ add r2, r4, r2
+ bl MOD70_02230FB0
+ cmp r0, #0
+ beq _022306CA
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02230714
+ b _02230758
+_022306CA:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230764 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230768 ; =MOD70_02230770
+ ldr r0, _0223076C ; =0x00002214
+ mov r2, #3
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+ mov r0, #1
+ str r0, [r4, #0x5c]
+ b _02230758
+_02230714:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _02230764 ; =0x000005A8
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x14
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _02230768 ; =MOD70_02230770
+ ldr r0, _0223076C ; =0x00002214
+ mov r2, #4
+ str r1, [r4, r0]
+ add r0, r4, #0
+ mov r1, #0x18
+ bl MOD70_0222F440
+_02230758:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02230760: .word 0x00000658
+_02230764: .word 0x000005A8
+_02230768: .word MOD70_02230770
+_0223076C: .word 0x00002214
+ thumb_func_end MOD70_022306A4
+
+ thumb_func_start MOD70_02230770
+MOD70_02230770: ; 0x02230770
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x60]
+ cmp r1, #0
+ beq _022307B8
+ ldr r0, [r4, #0x64]
+ cmp r0, #0
+ beq _022307B8
+ cmp r1, #3
+ bne _02230798
+ cmp r0, #3
+ bne _02230798
+ ldr r0, _022307BC ; =0x00003698
+ ldr r1, [r4, r0]
+ add r1, r1, #1
+ str r1, [r4, r0]
+ ldr r1, _022307C0 ; =MOD70_022307CC
+ ldr r0, _022307C4 ; =0x00002214
+ str r1, [r4, r0]
+ b _0223079E
+_02230798:
+ ldr r1, _022307C8 ; =MOD70_0222F790
+ ldr r0, _022307C4 ; =0x00002214
+ str r1, [r4, r0]
+_0223079E:
+ mov r0, #0
+ str r0, [r4, #0x60]
+ str r0, [r4, #0x64]
+ add r0, r4, #0
+ bl MOD70_02230BC4
+ cmp r0, #0
+ beq _022307B4
+ mov r0, #0x18
+ str r0, [r4, #0x68]
+ b _022307B8
+_022307B4:
+ mov r0, #0x22
+ str r0, [r4, #0x68]
+_022307B8:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_022307BC: .word 0x00003698
+_022307C0: .word MOD70_022307CC
+_022307C4: .word 0x00002214
+_022307C8: .word MOD70_0222F790
+ thumb_func_end MOD70_02230770
+
+ thumb_func_start MOD70_022307CC
+MOD70_022307CC: ; 0x022307CC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_0202E288
+ ldr r0, [r4, #8]
+ add r3, r4, #0
+ add r2, r4, #0
+ ldr r1, _02230804 ; =0x00002218
+ str r0, [sp]
+ add r3, #0x8c
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ add r2, #0x88
+ ldr r3, [r3]
+ ldr r1, [r4, r1]
+ ldr r2, [r2]
+ sub r3, r3, #6
+ bl MOD70_022309E8
+ ldr r1, _02230808 ; =MOD70_0222F790
+ ldr r0, _0223080C ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #2
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_02230804: .word 0x00002218
+_02230808: .word MOD70_0222F790
+_0223080C: .word 0x00002214
+ thumb_func_end MOD70_022307CC
+
+ thumb_func_start MOD70_02230810
+MOD70_02230810: ; 0x02230810
+ push {r3, r4, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ mov r0, #0
+ add r1, sp, #0x10
+ strb r0, [r1, #8]
+ mov r0, #1
+ strb r0, [r1, #9]
+ mov r0, #2
+ strb r0, [r1, #0xa]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xf
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0x30
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ ldrb r2, [r1, #0xb]
+ mov r0, #0xc0
+ bic r2, r0
+ strb r2, [r1, #0xb]
+ add r1, r4, #0
+ ldr r0, _022308F8 ; =0x0000221C
+ add r1, #0x88
+ ldr r1, [r1]
+ ldr r0, [r4, r0]
+ sub r1, r1, #6
+ bl FUN_0206B9B0
+ bl FUN_020690E4
+ add r2, r0, #0
+ mov r0, #0x5f
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200ACF8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5f
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #8
+ str r0, [sp]
+ ldr r0, _022308FC ; =0x00000598
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0x10
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #2
+ mov r1, #0x1a
+ bl FUN_02012838
+ ldr r1, _02230900 ; =0x0000065C
+ mov r2, #0x11
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ mov r3, #0
+ bl FUN_02012880
+ ldr r0, _02230900 ; =0x0000065C
+ mov r1, #0x61
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ mov r2, #0x13
+ mov r3, #1
+ bl FUN_02012880
+ ldr r0, _02230900 ; =0x0000065C
+ ldr r1, [r4, r0]
+ sub r0, #0x94
+ add r0, r4, r0
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ bl MOD70_02231004
+ mov r0, #0x1a
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x10
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001C14
+ mov r1, #0x66
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ ldr r1, _02230904 ; =MOD70_0223090C
+ ldr r0, _02230908 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0
+ add sp, #0x1c
+ pop {r3, r4, pc}
+ nop
+_022308F8: .word 0x0000221C
+_022308FC: .word 0x00000598
+_02230900: .word 0x0000065C
+_02230904: .word MOD70_0223090C
+_02230908: .word 0x00002214
+ thumb_func_end MOD70_02230810
+
+ thumb_func_start MOD70_0223090C
+MOD70_0223090C: ; 0x0223090C
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02001C78
+ cmp r0, #0
+ beq _0223092E
+ cmp r0, #1
+ beq _02230982
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _02230982
+ b _022309D0
+_0223092E:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _022309D8 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ ldr r1, _022309DC ; =MOD70_0222F538
+ ldr r0, _022309E0 ; =0x00002214
+ str r1, [r4, r0]
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _022309E4 ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add sp, #0x10
+ mov r0, #3
+ pop {r4, pc}
+_02230982:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #0x5d
+ str r1, [sp, #0xc]
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02018540
+ mov r3, #0x5e
+ lsl r3, r3, #2
+ ldr r0, [r4, r3]
+ add r3, #0xc
+ str r0, [sp]
+ ldr r0, _022309D8 ; =0x00000588
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ mov r1, #0xf
+ mov r2, #1
+ bl MOD70_02230F40
+ mov r0, #0x66
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ ldr r0, _022309E4 ; =0x0000065C
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ ldr r1, _022309DC ; =MOD70_0222F538
+ ldr r0, _022309E0 ; =0x00002214
+ str r1, [r4, r0]
+_022309D0:
+ mov r0, #0
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_022309D8: .word 0x00000588
+_022309DC: .word MOD70_0222F538
+_022309E0: .word 0x00002214
+_022309E4: .word 0x0000065C
+ thumb_func_end MOD70_0223090C
+
+ thumb_func_start MOD70_022309E8
+MOD70_022309E8: ; 0x022309E8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #4]
+ mov r0, #0x1a
+ str r1, [sp, #8]
+ add r6, r2, #0
+ str r3, [sp, #0xc]
+ ldr r5, [sp, #0x28]
+ bl FUN_020669C0
+ add r7, r0, #0
+ mov r0, #0x1a
+ bl FUN_020669C0
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r1, r7, #0
+ bl FUN_02069B88
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ add r1, r4, #0
+ bl FUN_02069B88
+ add r0, r4, #0
+ mov r1, #0x4c
+ mov r2, #0
+ bl FUN_020671BC
+ cmp r0, #0
+ bne _02230A40
+ mov r1, #0x46
+ add r0, sp, #0x10
+ strb r1, [r0]
+ add r0, r4, #0
+ mov r1, #9
+ add r2, sp, #0x10
+ bl FUN_02067830
+_02230A40:
+ bl FUN_02031190
+ bl FUN_0202DFA4
+ add r1, r0, #0
+ mov r0, #0xb
+ str r0, [sp]
+ add r0, r4, #0
+ mov r2, #5
+ mov r3, #0
+ bl FUN_0208089C
+ add r0, r4, #0
+ bl FUN_0206AA84
+ ldr r1, [r5, #0x3c]
+ add r0, r7, #0
+ bl FUN_02069B88
+ ldr r1, [r5, #0x40]
+ add r0, r4, #0
+ bl FUN_02069B88
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ ldr r1, [r5, #0x38]
+ bl FUN_0202393C
+ ldr r0, [sp, #4]
+ ldr r1, _02230AE0 ; =0x000001B9
+ str r6, [r5, #0x2c]
+ bl FUN_0206BAE4
+ cmp r0, #0
+ bne _02230A98
+ ldr r0, [r5, #0x10]
+ bl FUN_02029EF8
+ bl FUN_02029F08
+_02230A98:
+ ldr r0, [r5, #0x10]
+ add r1, r4, #0
+ bl FUN_0202C144
+ ldr r0, [sp, #4]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ add r0, r4, #0
+ bl FUN_02069B88
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #0xc]
+ bl FUN_0206B9B0
+ add r1, r0, #0
+ add r0, r7, #0
+ bl FUN_02069B88
+ ldr r0, [r5, #0x1c]
+ add r1, r4, #0
+ bl MOD70_02230AE4
+ ldr r0, [r5, #0x20]
+ mov r1, #0x13
+ bl FUN_0202A0E8
+ add r0, r7, #0
+ bl FUN_02016A18
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02230AE0: .word 0x000001B9
+ thumb_func_end MOD70_022309E8
+
+ thumb_func_start MOD70_02230AE4
+MOD70_02230AE4: ; 0x02230AE4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ add r4, r1, #0
+ bl FUN_02031190
+ mov r1, #1
+ eor r0, r1
+ bl FUN_0202DFA4
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #0x74
+ add r2, sp, #4
+ bl FUN_020671BC
+ add r0, r5, #0
+ bl FUN_0202398C
+ add r7, r0, #0
+ add r0, r5, #0
+ bl FUN_020239CC
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_020689E0
+ add r3, r0, #0
+ mov r0, #0x1a
+ lsl r1, r5, #0x18
+ str r0, [sp]
+ add r0, r7, #0
+ lsr r1, r1, #0x18
+ add r2, sp, #4
+ bl FUN_0202945C
+ add r1, r0, #0
+ add r0, r6, #0
+ mov r2, #4
+ bl FUN_02028AD4
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD70_02230AE4
+
+ thumb_func_start MOD70_02230B3C
+MOD70_02230B3C: ; 0x02230B3C
+ push {r4, lr}
+ ldr r3, _02230B6C ; =0x000022B8
+ add r4, r0, #0
+ ldr r0, [r4, r3]
+ mov r1, #6
+ add r0, r0, #2
+ str r0, [r4, r3]
+ mov r0, #0x5d
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r3, [r4, r3]
+ mov r2, #0
+ bl FUN_020179E0
+ mov r0, #0x5d
+ ldr r3, _02230B6C ; =0x000022B8
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ ldr r3, [r4, r3]
+ mov r1, #3
+ mov r2, #0
+ bl FUN_020179E0
+ pop {r4, pc}
+ .align 2, 0
+_02230B6C: .word 0x000022B8
+ thumb_func_end MOD70_02230B3C
+
+ thumb_func_start MOD70_02230B70
+MOD70_02230B70: ; 0x02230B70
+ push {lr}
+ sub sp, #0xc
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ lsl r1, r2, #0xc
+ str r1, [sp, #4]
+ add r1, sp, #0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD70_02230B70
+
+ thumb_func_start MOD70_02230B88
+MOD70_02230B88: ; 0x02230B88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02230B9C ; =0x000005A8
+ ldr r1, _02230BA0 ; =0x000001D9
+ add r0, r4, r0
+ bl FUN_0200D858
+ ldr r1, _02230BA4 ; =0x000036A8
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+_02230B9C: .word 0x000005A8
+_02230BA0: .word 0x000001D9
+_02230BA4: .word 0x000036A8
+ thumb_func_end MOD70_02230B88
+
+ thumb_func_start MOD70_02230BA8
+MOD70_02230BA8: ; 0x02230BA8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _02230BC0 ; =0x000036A8
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02230BBE
+ bl FUN_0200DBFC
+ ldr r0, _02230BC0 ; =0x000036A8
+ mov r1, #0
+ str r1, [r4, r0]
+_02230BBE:
+ pop {r4, pc}
+ .align 2, 0
+_02230BC0: .word 0x000036A8
+ thumb_func_end MOD70_02230BA8
+
+ thumb_func_start MOD70_02230BC4
+MOD70_02230BC4: ; 0x02230BC4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _02230C00 ; =0x00002218
+ mov r4, #0
+ ldr r0, [r5, r0]
+ bl FUN_0206B9AC
+ add r3, r4, #0
+ cmp r0, #0
+ ble _02230BF0
+ add r1, r5, #0
+ add r1, #0x88
+ ldr r6, [r1]
+ ldr r1, _02230C04 ; =0x00000695
+_02230BE0:
+ cmp r3, r6
+ beq _02230BE8
+ ldrb r2, [r5, r1]
+ add r4, r4, r2
+_02230BE8:
+ add r3, r3, #1
+ add r5, #0x10
+ cmp r3, r0
+ blt _02230BE0
+_02230BF0:
+ sub r0, r0, #1
+ cmp r4, r0
+ bne _02230BFA
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02230BFA:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ nop
+_02230C00: .word 0x00002218
+_02230C04: .word 0x00000695
+ thumb_func_end MOD70_02230BC4
+
+ thumb_func_start MOD70_02230C08
+MOD70_02230C08: ; 0x02230C08
+ ldr r1, _02230C18 ; =0x000036AC
+ mov r2, #1
+ str r2, [r0, r1]
+ mov r2, #0
+ add r1, r1, #4
+ str r2, [r0, r1]
+ bx lr
+ nop
+_02230C18: .word 0x000036AC
+ thumb_func_end MOD70_02230C08
+
+ thumb_func_start MOD70_02230C1C
+MOD70_02230C1C: ; 0x02230C1C
+ push {r3, lr}
+ ldr r2, _02230C40 ; =0x000036AC
+ ldr r1, [r0, r2]
+ cmp r1, #0
+ beq _02230C3E
+ add r1, r2, #4
+ ldr r1, [r0, r1]
+ add r3, r1, #1
+ add r1, r2, #4
+ str r3, [r0, r1]
+ ldr r1, [r0, r1]
+ ldr r0, _02230C44 ; =0x00000708
+ cmp r1, r0
+ ble _02230C3E
+ mov r0, #4
+ bl FUN_020336A0
+_02230C3E:
+ pop {r3, pc}
+ .align 2, 0
+_02230C40: .word 0x000036AC
+_02230C44: .word 0x00000708
+ thumb_func_end MOD70_02230C1C
+
+ thumb_func_start MOD70_02230C48
+MOD70_02230C48: ; 0x02230C48
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r2, #0
+ mov r2, #1
+ str r2, [sp]
+ mov r3, #0xa
+ str r3, [sp, #4]
+ mov r3, #2
+ str r3, [sp, #8]
+ mov r6, #8
+ str r6, [sp, #0xc]
+ add r5, r1, #0
+ str r0, [sp, #0x14]
+ str r2, [sp, #0x10]
+ bl FUN_02019064
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ mov r2, #1
+ add r1, r5, #0
+ str r2, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x15
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, #0x10
+ mov r3, #0x14
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x10
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x15
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ mov r0, #0x29
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ ldr r0, [sp, #0x14]
+ add r1, #0x60
+ mov r2, #1
+ mov r3, #0x1a
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x60
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ ldr r2, _02230E78 ; =0x000001D9
+ mov r1, #0
+ mov r3, #0xa
+ bl FUN_0200CD68
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0x1a
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x14]
+ ldr r2, _02230E7C ; =0x000001F7
+ mov r3, #0xb
+ bl FUN_0200CB00
+ mov r1, #0x15
+ str r1, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r3, #2
+ lsl r1, r1, #4
+ str r3, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ bl FUN_02019064
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x28
+ mov r1, #0x16
+ str r0, [sp, #0x10]
+ lsl r1, r1, #4
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0x16
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r0, #0x38
+ mov r1, #0x17
+ str r0, [sp, #0x10]
+ lsl r1, r1, #4
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0x17
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x11
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r1, #0xa4
+ str r1, [sp, #0x10]
+ add r1, #0xdc
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #0x14
+ bl FUN_02019064
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ mov r1, #0xe6
+ str r1, [sp, #0x10]
+ add r1, #0xaa
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ mov r2, #0
+ mov r3, #0x14
+ bl FUN_02019064
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r0, r5, r0
+ mov r1, #0
+ bl FUN_02019620
+ ldr r4, _02230E80 ; =0x022313F4
+ mov r7, #0
+ mov r6, #0x33
+_02230DE2:
+ add r0, r7, #7
+ lsl r0, r0, #4
+ str r0, [sp, #0x18]
+ ldrh r0, [r4, #2]
+ ldr r1, [sp, #0x18]
+ mov r2, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #8
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ lsl r0, r6, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldrh r3, [r4]
+ ldr r0, [sp, #0x14]
+ add r1, r5, r1
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ ldr r0, [sp, #0x18]
+ mov r1, #0
+ add r0, r5, r0
+ bl FUN_02019620
+ add r7, r7, #1
+ add r6, #0x10
+ add r4, r4, #4
+ cmp r7, #0xe
+ blt _02230DE2
+ ldr r4, _02230E84 ; =0x0223142C
+ mov r6, #0
+_02230E2C:
+ add r0, r6, #0
+ add r0, #0x1a
+ lsl r7, r0, #4
+ ldrh r0, [r4, #2]
+ add r1, r5, r7
+ mov r2, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r4, #4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldrh r0, [r4, #6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldrh r0, [r4, #8]
+ str r0, [sp, #0x10]
+ ldrh r3, [r4]
+ ldr r0, [sp, #0x14]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ add r0, r5, r7
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r4, #0xa
+ cmp r6, #8
+ blt _02230E2C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02230E78: .word 0x000001D9
+_02230E7C: .word 0x000001F7
+_02230E80: .word 0x022313F4
+_02230E84: .word 0x0223142C
+ thumb_func_end MOD70_02230C48
+
+ thumb_func_start MOD70_02230E88
+MOD70_02230E88: ; 0x02230E88
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r5, #0
+_02230E8E:
+ add r0, r5, #7
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ add r5, r5, #1
+ cmp r5, #0xe
+ blt _02230E8E
+ mov r5, #0
+_02230EA0:
+ add r0, r5, #0
+ add r0, #0x1a
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ add r5, r5, #1
+ cmp r5, #8
+ blt _02230EA0
+ add r0, r4, #0
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x10
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x60
+ bl FUN_02019178
+ mov r0, #0x15
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x16
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x17
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #6
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl FUN_02019178
+ mov r0, #0x19
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl FUN_02019178
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD70_02230E88
+
+ thumb_func_start MOD70_02230EFC
+MOD70_02230EFC: ; 0x02230EFC
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r3, #0
+ ldr r3, [sp, #0x20]
+ add r5, r0, #0
+ add r6, r1, #0
+ cmp r3, #1
+ bne _02230F20
+ mov r0, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ ldrb r1, [r5, #7]
+ lsl r1, r1, #3
+ sub r1, r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r3, r0, #1
+_02230F20:
+ ldr r0, [sp, #0x24]
+ mov r1, #0
+ str r0, [sp]
+ ldr r0, _02230F3C ; =0x000B0C00
+ str r4, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r6, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02230F3C: .word 0x000B0C00
+ thumb_func_end MOD70_02230EFC
+
+ thumb_func_start MOD70_02230F40
+MOD70_02230F40: ; 0x02230F40
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r6, r1, #0
+ add r4, r2, #0
+ add r1, r3, #0
+ ldr r0, [sp, #0x20]
+ add r2, r6, #0
+ mov r3, #0x1a
+ bl FUN_0200A9C4
+ add r6, r0, #0
+ cmp r4, #1
+ bne _02230F6A
+ ldr r2, _02230FA4 ; =0x000001D9
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #0xa
+ bl FUN_0200D0BC
+ b _02230F76
+_02230F6A:
+ ldr r2, _02230FA8 ; =0x000001F7
+ add r0, r5, #0
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+_02230F76:
+ add r0, r5, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _02230FAC ; =0x0001020F
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ str r3, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02230FA4: .word 0x000001D9
+_02230FA8: .word 0x000001F7
+_02230FAC: .word 0x0001020F
+ thumb_func_end MOD70_02230F40
+
+ thumb_func_start MOD70_02230FB0
+MOD70_02230FB0: ; 0x02230FB0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r2, #0
+ add r5, r1, #0
+ mov r6, #0
+ ldr r1, [r4]
+ mvn r6, r6
+ cmp r1, #0
+ beq _02230FC8
+ cmp r1, #1
+ beq _02230FE0
+ b _02230FF6
+_02230FC8:
+ mov r1, #0x1a
+ str r1, [sp]
+ ldr r1, _02230FFC ; =0x022313CC
+ ldr r2, _02231000 ; =0x000001F7
+ mov r3, #0xb
+ bl FUN_02002198
+ str r0, [r5]
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _02230FF6
+_02230FE0:
+ ldr r0, [r5]
+ mov r1, #0x1a
+ bl FUN_020021AC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _02230FF6
+ mov r0, #0
+ str r0, [r4]
+_02230FF6:
+ add r0, r6, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_02230FFC: .word 0x022313CC
+_02231000: .word 0x000001F7
+ thumb_func_end MOD70_02230FB0
+
+ thumb_func_start MOD70_02231004
+MOD70_02231004: ; 0x02231004
+ push {r3, lr}
+ ldr r2, _02231014 ; =0x000001F7
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ pop {r3, pc}
+ nop
+_02231014: .word 0x000001F7
+ thumb_func_end MOD70_02231004
+
+ thumb_func_start MOD70_02231018
+MOD70_02231018: ; 0x02231018
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #0xa
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _02231088 ; =0x0000014D
+ add r4, r2, #0
+ add r6, r1, #0
+ str r0, [sp, #0x10]
+ add r0, r3, #0
+ add r1, r4, #0
+ mov r2, #0
+ mov r3, #0x13
+ bl FUN_02019064
+ ldr r2, _0223108C ; =0x000001F7
+ add r0, r4, #0
+ mov r1, #0
+ mov r3, #0xb
+ bl FUN_0200CCA4
+ ldr r3, _02231090 ; =0x022313D4
+ add r2, sp, #0x14
+ add r7, r2, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ add r1, r6, #1
+ add r0, sp, #0x14
+ strh r1, [r0, #0x10]
+ mov r1, #5
+ strh r1, [r0, #0x12]
+ ldr r0, _02231094 ; =MOD70_02231098
+ mov r1, #0
+ str r0, [sp, #0x18]
+ add r0, r7, #0
+ add r2, r1, #0
+ mov r3, #0x1a
+ str r5, [sp, #0x14]
+ str r4, [sp, #0x20]
+ bl FUN_020010A8
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02231088: .word 0x0000014D
+_0223108C: .word 0x000001F7
+_02231090: .word 0x022313D4
+_02231094: .word MOD70_02231098
+ thumb_func_end MOD70_02231018
+
+ thumb_func_start MOD70_02231098
+MOD70_02231098: ; 0x02231098
+ push {r3, lr}
+ cmp r2, #0
+ bne _022310A4
+ ldr r0, _022310A8 ; =0x000005DC
+ bl FUN_020054C8
+_022310A4:
+ pop {r3, pc}
+ nop
+_022310A8: .word 0x000005DC
+ thumb_func_end MOD70_02231098
+
+ .section .rodata
+ ; 0x022310AC
+ .incbin "baserom.nds", 0x2C96EC, 0x3D0
diff --git a/arm9/modules/72/asm/module_72_dummy.s b/arm9/modules/72/asm/module_72_dummy.s
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/arm9/modules/72/asm/module_72_dummy.s
@@ -0,0 +1 @@
+
diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s
new file mode 100644
index 00000000..071770b3
--- /dev/null
+++ b/arm9/modules/73/asm/module_73.s
@@ -0,0 +1,9424 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD73_021D74E0
+MOD73_021D74E0: ; 0x021D74E0
+ push {r3, lr}
+ ldr r0, [r0, #0x18]
+ bl MOD73_021D88B0
+ bl FUN_0201C30C
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D74E0
+
+ thumb_func_start MOD73_021D74F0
+MOD73_021D74F0: ; 0x021D74F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_0200628C
+ mov r2, #2
+ add r4, r0, #0
+ mov r0, #3
+ mov r1, #0x38
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ ldr r1, _021D757C ; =0x000015E8
+ add r0, r5, #0
+ mov r2, #0x38
+ bl FUN_02006268
+ ldr r2, _021D757C ; =0x000015E8
+ add r5, r0, #0
+ mov r1, #0
+ bl Call_FillMemWithValue
+ str r5, [r4, #0x18]
+ mov r1, #0x38
+ str r1, [r5]
+ mov r0, #0x10
+ bl FUN_0201C24C
+ ldrh r0, [r4, #6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bne _021D7534
+ mov r1, #1
+ b _021D7536
+_021D7534:
+ mov r1, #0
+_021D7536:
+ ldr r0, _021D7580 ; =0x00001428
+ str r1, [r5, r0]
+ ldr r1, [r4, #0x10]
+ add r0, r5, #0
+ ldr r1, [r1, #0x10]
+ bl MOD73_021D8DF4
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0, #0x18]
+ bl FUN_02025084
+ str r0, [r5, #0x24]
+ ldr r0, [r4, #0x10]
+ ldr r0, [r0, #0x18]
+ bl FUN_02024FF4
+ str r0, [r5, #0x28]
+ mov r0, #0xae
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r0, _021D7584 ; =MOD73_021D74E0
+ add r1, r4, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ ldr r1, _021D7588 ; =0x0000049F
+ mov r0, #0xc
+ mov r2, #1
+ bl FUN_0200433C
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021D757C: .word 0x000015E8
+_021D7580: .word 0x00001428
+_021D7584: .word MOD73_021D74E0
+_021D7588: .word 0x0000049F
+ thumb_func_end MOD73_021D74F0
+
+ thumb_func_start MOD73_021D758C
+MOD73_021D758C: ; 0x021D758C
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl FUN_0200628C
+ add r7, r0, #0
+ add r0, r4, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ ldr r1, _021D763C ; =0x021DBC9C
+ str r0, [sp]
+ lsl r0, r0, #3
+ add r1, r1, r0
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021D75BA
+ cmp r0, #1
+ beq _021D75FC
+ cmp r0, #2
+ beq _021D760C
+ b _021D7620
+_021D75BA:
+ ldr r3, [r1]
+ cmp r3, #0
+ beq _021D7620
+ ldr r6, [r1, #4]
+ add r2, r4, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, #0x10
+ blx r3
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _021D75DC
+ ldr r0, [r4, #0x18]
+ str r0, [r4, #0xc]
+ mov r0, #0
+ str r0, [r4, #0x14]
+_021D75DC:
+ ldr r1, [r4, #0xc]
+ ldr r0, [sp]
+ cmp r0, r1
+ beq _021D7620
+ mov r0, #0
+ str r0, [r4, #0x10]
+ ldrh r0, [r7, #6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ beq _021D7620
+ cmp r6, #0
+ beq _021D7620
+ str r6, [r4, #8]
+ mov r0, #1
+ str r0, [r5]
+ b _021D7620
+_021D75FC:
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_02031588
+ mov r0, #2
+ str r0, [r5]
+ b _021D7620
+_021D760C:
+ ldr r0, [r4, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bl FUN_020315D8
+ cmp r0, #0
+ beq _021D7620
+ mov r0, #0
+ str r0, [r5]
+ str r0, [r4, #8]
+_021D7620:
+ add r0, r4, #0
+ bl MOD73_021D8858
+ ldr r0, [r4]
+ ldr r1, [r4, #0x20]
+ bl FUN_020335F0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _021D7638
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D7638:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D763C: .word 0x021DBC9C
+ thumb_func_end MOD73_021D758C
+
+ thumb_func_start MOD73_021D7640
+MOD73_021D7640: ; 0x021D7640
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ bl FUN_0200628C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl FUN_02006278
+ add r7, r0, #0
+ ldr r4, [r7]
+ bl MOD73_021D8E90
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201C29C
+ ldr r2, _021D7688 ; =0x000015E8
+ add r0, r7, #0
+ mov r1, #0
+ bl MI_CpuFill8
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ str r0, [r6, #0x18]
+ add r0, r4, #0
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D7688: .word 0x000015E8
+ thumb_func_end MOD73_021D7640
+
+ thumb_func_start MOD73_021D768C
+MOD73_021D768C: ; 0x021D768C
+ str r1, [r0, #0x18]
+ mov r1, #1
+ str r1, [r0, #0x14]
+ bx lr
+ thumb_func_end MOD73_021D768C
+
+ thumb_func_start MOD73_021D7694
+MOD73_021D7694: ; 0x021D7694
+ mov r1, #1
+ str r1, [r0, #4]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021D7694
+
+ thumb_func_start MOD73_021D769C
+MOD73_021D769C: ; 0x021D769C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r2, #0
+ ldr r0, [r4]
+ add r5, r1, #0
+ cmp r0, #0
+ beq _021D76B8
+ cmp r0, #1
+ bne _021D76B0
+ b _021D77C6
+_021D76B0:
+ cmp r0, #2
+ bne _021D76B6
+ b _021D77E4
+_021D76B6:
+ b _021D77F4
+_021D76B8:
+ add r0, r5, #0
+ bl MOD73_021D852C
+ ldr r0, _021D77FC ; =0x00001424
+ ldr r0, [r5, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D76D4
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl MOD73_021DB884
+_021D76D4:
+ ldr r0, [r5, #0x24]
+ ldr r2, _021D7800 ; =0x00001574
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r3, _021D7804 ; =0x00001420
+ str r0, [sp, #4]
+ ldr r0, _021D7808 ; =0x0000054C
+ ldr r1, [r5, r3]
+ add r3, #0xc
+ add r0, r5, r0
+ add r2, r5, r2
+ add r3, r5, r3
+ bl MOD73_021D9A28
+ ldr r0, _021D780C ; =0x000005A4
+ add r0, r5, r0
+ bl MOD73_021D9E80
+ ldr r0, [r5, #0x24]
+ ldr r2, _021D7800 ; =0x00001574
+ str r0, [sp]
+ ldr r0, [r5]
+ ldr r3, _021D7804 ; =0x00001420
+ str r0, [sp, #4]
+ ldr r0, _021D7810 ; =0x0000063C
+ ldr r1, [r5, r3]
+ add r3, #0xc
+ add r0, r5, r0
+ add r2, r5, r2
+ add r3, r5, r3
+ bl MOD73_021DA210
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r5, r0
+ bl MOD73_021D9D84
+ ldr r0, _021D7814 ; =0x0000058C
+ add r0, r5, r0
+ bl MOD73_021D9D84
+ ldr r0, _021D7818 ; =0x00000598
+ add r0, r5, r0
+ bl MOD73_021D9D84
+ ldr r3, _021D781C ; =0x0000142C
+ ldr r0, _021D7820 ; =0x0000061C
+ add r2, r3, #0
+ add r1, r5, r3
+ sub r2, #0xc
+ sub r3, #8
+ ldr r2, [r5, r2]
+ ldr r3, [r5, r3]
+ add r0, r5, r0
+ bl MOD73_021DA0E0
+ mov r0, #0x67
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD73_021DA81C
+ ldr r0, _021D7824 ; =0x00000A84
+ add r0, r5, r0
+ bl MOD73_021DAD78
+ ldr r1, _021D7804 ; =0x00001420
+ ldr r0, _021D7828 ; =0x00000B04
+ ldr r1, [r5, r1]
+ add r0, r5, r0
+ bl MOD73_021DAF70
+ mov r0, #0x2d
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD73_021DB2FC
+ add r0, r5, #0
+ bl MOD73_021D8630
+ bl FUN_02033E74
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ ldr r0, _021D7804 ; =0x00001420
+ ldr r0, [r5, r0]
+ cmp r0, #1
+ ble _021D778E
+ ldr r0, _021D7808 ; =0x0000054C
+ add r0, r5, r0
+ bl MOD73_021D9AC8
+_021D778E:
+ ldr r0, _021D780C ; =0x000005A4
+ mov r1, #3
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021D9FC0
+ ldr r0, _021D780C ; =0x000005A4
+ mov r1, #4
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021D9FC0
+ ldr r0, _021D780C ; =0x000005A4
+ mov r1, #5
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021D9FC0
+ ldr r0, _021D780C ; =0x000005A4
+ mov r1, #6
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021D9FC0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D77F4
+_021D77C6:
+ mov r0, #6
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r5]
+ ldr r3, _021D782C ; =0x0000FFFF
+ str r0, [sp, #8]
+ mov r0, #0
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D77F4
+_021D77E4:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D77F4
+ ldr r0, [r5, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r4, r5, pc}
+_021D77F4:
+ ldr r0, [r5, #0xc]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021D77FC: .word 0x00001424
+_021D7800: .word 0x00001574
+_021D7804: .word 0x00001420
+_021D7808: .word 0x0000054C
+_021D780C: .word 0x000005A4
+_021D7810: .word 0x0000063C
+_021D7814: .word 0x0000058C
+_021D7818: .word 0x00000598
+_021D781C: .word 0x0000142C
+_021D7820: .word 0x0000061C
+_021D7824: .word 0x00000A84
+_021D7828: .word 0x00000B04
+_021D782C: .word 0x0000FFFF
+ thumb_func_end MOD73_021D769C
+
+ thumb_func_start MOD73_021D7830
+MOD73_021D7830: ; 0x021D7830
+ push {r4, lr}
+ ldr r0, _021D7854 ; =0x00001424
+ add r4, r1, #0
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D784E
+ ldr r3, _021D7854 ; =0x00001424
+ mov r1, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x16
+ add r2, r1, #0
+ bl MOD73_021D90D0
+_021D784E:
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021D7854: .word 0x00001424
+ thumb_func_end MOD73_021D7830
+
+ thumb_func_start MOD73_021D7858
+MOD73_021D7858: ; 0x021D7858
+ ldr r0, [r1, #0xc]
+ bx lr
+ thumb_func_end MOD73_021D7858
+
+ thumb_func_start MOD73_021D785C
+MOD73_021D785C: ; 0x021D785C
+ push {r3, r4, r5, lr}
+ add r4, r2, #0
+ add r5, r1, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _021D786E
+ cmp r1, #1
+ beq _021D7884
+ b _021D78AA
+_021D786E:
+ ldr r1, _021D78B0 ; =0x00001420
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ ldr r1, [r5, r1]
+ add r0, r5, r0
+ bl MOD73_021D96B0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D78AA
+_021D7884:
+ ldr r1, [r0, #8]
+ ldr r0, _021D78B4 ; =0x0000142C
+ str r1, [r5, r0]
+ bl MOD73_021D9088
+ ldr r3, _021D78B4 ; =0x0000142C
+ add r2, r0, #0
+ add r1, r5, r3
+ sub r3, #8
+ ldr r3, [r5, r3]
+ mov r0, #0x19
+ bl MOD73_021D90D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ pop {r3, r4, r5, pc}
+_021D78AA:
+ ldr r0, [r5, #0xc]
+ pop {r3, r4, r5, pc}
+ nop
+_021D78B0: .word 0x00001420
+_021D78B4: .word 0x0000142C
+ thumb_func_end MOD73_021D785C
+
+ thumb_func_start MOD73_021D78B8
+MOD73_021D78B8: ; 0x021D78B8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r2, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #5
+ bhi _021D79C4
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D78D0: ; jump table
+ .short _021D78DC - _021D78D0 - 2 ; case 0
+ .short _021D78F0 - _021D78D0 - 2 ; case 1
+ .short _021D7902 - _021D78D0 - 2 ; case 2
+ .short _021D7924 - _021D78D0 - 2 ; case 3
+ .short _021D7940 - _021D78D0 - 2 ; case 4
+ .short _021D7966 - _021D78D0 - 2 ; case 5
+_021D78DC:
+ ldr r0, _021D79C8 ; =0x00001418
+ ldr r1, [r4]
+ ldr r2, [r4, #0x20]
+ add r0, r4, r0
+ bl MOD73_021DB26C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D79C4
+_021D78F0:
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD73_021D97F0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D79C4
+_021D7902:
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD73_021D98B8
+ cmp r0, #1
+ bne _021D79C4
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, _021D79CC ; =0x0000054C
+ add r0, r4, r0
+ bl MOD73_021D9AB4
+ mov r0, #0x18
+ str r0, [r4, #0x1c]
+ b _021D79C4
+_021D7924:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ ble _021D7930
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ b _021D79C4
+_021D7930:
+ ldr r0, _021D79D0 ; =0x00000598
+ add r0, r4, r0
+ bl MOD73_021D9E3C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D79C4
+_021D7940:
+ ldr r0, _021D79D0 ; =0x00000598
+ add r0, r4, r0
+ bl MOD73_021D9E6C
+ cmp r0, #0
+ beq _021D79C4
+ ldr r0, _021D79CC ; =0x0000054C
+ add r0, r4, r0
+ bl MOD73_021D9AF0
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl MOD73_021D9E24
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D79C4
+_021D7966:
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl MOD73_021D9E6C
+ add r6, r0, #0
+ ldr r0, _021D79D4 ; =0x00000588
+ ldr r0, [r4, r0]
+ bl FUN_0202022C
+ add r7, r0, #0
+ add r0, r7, #1
+ mov r1, #3
+ bl _s32_div_f
+ add r5, r0, #0
+ mov r0, #0xd6
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, r5
+ beq _021D79A8
+ cmp r7, #0xa
+ bge _021D799C
+ ldr r0, _021D79D8 ; =0x000006BD
+ bl FUN_020054C8
+ b _021D79A2
+_021D799C:
+ ldr r0, _021D79DC ; =0x000006BE
+ bl FUN_020054C8
+_021D79A2:
+ mov r0, #0xd6
+ lsl r0, r0, #2
+ str r5, [r4, r0]
+_021D79A8:
+ cmp r6, #0
+ beq _021D79C4
+ ldr r0, _021D79E0 ; =0x0000061C
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DA1D8
+ ldr r0, _021D79E4 ; =0x000005A4
+ add r0, r4, r0
+ bl MOD73_021DA03C
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021D79C4:
+ ldr r0, [r4, #0xc]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D79C8: .word 0x00001418
+_021D79CC: .word 0x0000054C
+_021D79D0: .word 0x00000598
+_021D79D4: .word 0x00000588
+_021D79D8: .word 0x000006BD
+_021D79DC: .word 0x000006BE
+_021D79E0: .word 0x0000061C
+_021D79E4: .word 0x000005A4
+ thumb_func_end MOD73_021D78B8
+
+ thumb_func_start MOD73_021D79E8
+MOD73_021D79E8: ; 0x021D79E8
+ push {r4, lr}
+ mov r0, #0x2d
+ add r4, r1, #0
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD73_021DB318
+ ldr r0, _021D7A98 ; =0x00001430
+ mov r1, #0x2d
+ lsl r1, r1, #4
+ add r0, r4, r0
+ add r1, r4, r1
+ bl MOD73_021DB368
+ ldr r0, _021D7A9C ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D7A5C
+ ldr r2, _021D7AA0 ; =0x0000142C
+ mov r0, #0xba
+ add r1, r4, r2
+ sub r2, #0xc
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ bl MOD73_021DB8AC
+ cmp r0, #1
+ bne _021D7A40
+ ldr r3, _021D7A9C ; =0x00001424
+ mov r1, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x17
+ add r2, r1, #0
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7A3C
+ bl ErrorHandling
+_021D7A3C:
+ ldr r0, [r4, #0xc]
+ pop {r4, pc}
+_021D7A40:
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD73_021DB9F0
+ ldr r2, _021D7AA0 ; =0x0000142C
+ mov r0, #0xba
+ add r1, r4, r2
+ sub r2, #0xc
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ bl MOD73_021DB924
+_021D7A5C:
+ bl MOD73_021D908C
+ ldr r3, _021D7A98 ; =0x00001430
+ add r2, r0, #0
+ add r1, r4, r3
+ sub r3, #0xc
+ ldr r3, [r4, r3]
+ mov r0, #0x1a
+ bl MOD73_021D90D0
+ add r0, r4, #0
+ bl MOD73_021D810C
+ mov r0, #0x67
+ ldr r1, _021D7AA0 ; =0x0000142C
+ lsl r0, r0, #4
+ add r0, r4, r0
+ add r1, r4, r1
+ bl MOD73_021DA884
+ ldr r0, _021D7AA4 ; =0x00000A84
+ add r0, r4, r0
+ bl MOD73_021DAE54
+ ldr r0, _021D7AA8 ; =0x00000B04
+ add r0, r4, r0
+ bl MOD73_021DB008
+ ldr r0, [r4, #0xc]
+ pop {r4, pc}
+ .align 2, 0
+_021D7A98: .word 0x00001430
+_021D7A9C: .word 0x00001424
+_021D7AA0: .word 0x0000142C
+_021D7AA4: .word 0x00000A84
+_021D7AA8: .word 0x00000B04
+ thumb_func_end MOD73_021D79E8
+
+ thumb_func_start MOD73_021D7AAC
+MOD73_021D7AAC: ; 0x021D7AAC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ add r4, r1, #0
+ mov r0, #0x67
+ ldr r1, _021D7C68 ; =0x0000142C
+ lsl r0, r0, #4
+ add r5, r2, #0
+ add r0, r4, r0
+ add r1, r4, r1
+ bl MOD73_021DA884
+ ldr r0, [r5]
+ cmp r0, #4
+ bls _021D7ACC
+ b _021D7C5C
+_021D7ACC:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7AD8: ; jump table
+ .short _021D7AE2 - _021D7AD8 - 2 ; case 0
+ .short _021D7B6C - _021D7AD8 - 2 ; case 1
+ .short _021D7B98 - _021D7AD8 - 2 ; case 2
+ .short _021D7BA8 - _021D7AD8 - 2 ; case 3
+ .short _021D7C1A - _021D7AD8 - 2 ; case 4
+_021D7AE2:
+ ldr r0, _021D7C6C ; =0x0000063C
+ add r0, r4, r0
+ bl MOD73_021DA4AC
+ ldr r0, _021D7C70 ; =0x00000A84
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D7C70 ; =0x00000A84
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D7C70 ; =0x00000A84
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D7C70 ; =0x00000A84
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D7C74 ; =0x0000058C
+ add r0, r4, r0
+ bl MOD73_021D9E24
+ ldr r0, _021D7C78 ; =0x000006BA
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, _021D7C7C ; =0x000006BB
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, _021D7C80 ; =0x000006BF
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, _021D7C84 ; =0x000006C1
+ mov r1, #0
+ bl FUN_020054F0
+ ldr r0, _021D7C88 ; =0x000006C2
+ bl FUN_020054C8
+ ldr r0, _021D7C8C ; =0x000005A4
+ mov r1, #0
+ add r0, r4, r0
+ add r2, r1, #0
+ bl MOD73_021D9FC0
+ ldr r0, _021D7C8C ; =0x000005A4
+ mov r1, #1
+ add r0, r4, r0
+ mov r2, #0
+ bl MOD73_021D9FC0
+ ldr r0, _021D7C8C ; =0x000005A4
+ mov r1, #2
+ add r0, r4, r0
+ mov r2, #0
+ bl MOD73_021D9FC0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7C60
+_021D7B6C:
+ ldr r0, _021D7C74 ; =0x0000058C
+ add r0, r4, r0
+ bl MOD73_021D9E6C
+ cmp r0, #0
+ beq _021D7C60
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7C60
+_021D7B98:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7C60
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7C60
+_021D7BA8:
+ ldr r0, [r6, #0x10]
+ ldr r0, [r0, #0xc]
+ bl FUN_02029FC8
+ ldr r1, _021D7C90 ; =0x00001428
+ ldr r1, [r4, r1]
+ cmp r1, #0
+ bne _021D7BC0
+ mov r1, #0xc
+ bl FUN_0202A170
+ b _021D7BC6
+_021D7BC0:
+ mov r1, #0x12
+ bl FUN_0202A170
+_021D7BC6:
+ ldr r0, _021D7C94 ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D7C12
+ ldr r0, [r4]
+ bl FUN_02027E5C
+ add r6, r0, #0
+ ldr r0, [r4]
+ ldr r3, _021D7C68 ; =0x0000142C
+ str r0, [sp]
+ mov r0, #0xba
+ add r2, r4, r3
+ sub r3, #0xc
+ lsl r0, r0, #2
+ ldr r3, [r4, r3]
+ add r0, r4, r0
+ add r1, r6, #0
+ bl MOD73_021DBA24
+ bl FUN_02027E30
+ ldr r3, _021D7C94 ; =0x00001424
+ add r2, r0, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x1c
+ add r1, r6, #0
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7C0C
+ bl ErrorHandling
+_021D7C0C:
+ add r0, r6, #0
+ bl FUN_02016A18
+_021D7C12:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7C60
+_021D7C1A:
+ ldr r0, _021D7C94 ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D7C54
+ ldr r2, _021D7C68 ; =0x0000142C
+ mov r0, #0xba
+ add r1, r4, r2
+ sub r2, #0xc
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ add r0, r4, r0
+ bl MOD73_021DBBFC
+ bl MOD73_021D9090
+ ldr r3, _021D7C98 ; =0x0000144C
+ add r2, r0, #0
+ add r1, r4, r3
+ sub r3, #0x28
+ ldr r3, [r4, r3]
+ mov r0, #0x1b
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7C54
+ bl ErrorHandling
+_021D7C54:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7C5C:
+ bl ErrorHandling
+_021D7C60:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021D7C68: .word 0x0000142C
+_021D7C6C: .word 0x0000063C
+_021D7C70: .word 0x00000A84
+_021D7C74: .word 0x0000058C
+_021D7C78: .word 0x000006BA
+_021D7C7C: .word 0x000006BB
+_021D7C80: .word 0x000006BF
+_021D7C84: .word 0x000006C1
+_021D7C88: .word 0x000006C2
+_021D7C8C: .word 0x000005A4
+_021D7C90: .word 0x00001428
+_021D7C94: .word 0x00001424
+_021D7C98: .word 0x0000144C
+ thumb_func_end MOD73_021D7AAC
+
+ thumb_func_start MOD73_021D7C9C
+MOD73_021D7C9C: ; 0x021D7C9C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r2, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #0xb
+ bls _021D7CAE
+ b _021D7F3A
+_021D7CAE:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7CBA: ; jump table
+ .short _021D7CD2 - _021D7CBA - 2 ; case 0
+ .short _021D7D2E - _021D7CBA - 2 ; case 1
+ .short _021D7D42 - _021D7CBA - 2 ; case 2
+ .short _021D7D66 - _021D7CBA - 2 ; case 3
+ .short _021D7D94 - _021D7CBA - 2 ; case 4
+ .short _021D7DC0 - _021D7CBA - 2 ; case 5
+ .short _021D7DF4 - _021D7CBA - 2 ; case 6
+ .short _021D7E1C - _021D7CBA - 2 ; case 7
+ .short _021D7E36 - _021D7CBA - 2 ; case 8
+ .short _021D7EA8 - _021D7CBA - 2 ; case 9
+ .short _021D7ED6 - _021D7CBA - 2 ; case 10
+ .short _021D7F0C - _021D7CBA - 2 ; case 11
+_021D7CD2:
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DA730
+ mov r0, #1
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0xae
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, [r4]
+ ldr r3, _021D7F48 ; =0x00001410
+ str r0, [sp]
+ add r0, r4, r3
+ add r3, #0x80
+ ldrb r3, [r4, r3]
+ mov r1, #0x80
+ mov r2, #0x90
+ bl MOD73_021DB20C
+ mov r0, #6
+ mov r2, #0
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r0, [r4]
+ add r3, r2, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ bl FUN_0200E1D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7D2E:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D7E12
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0x1e
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7D42:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bpl _021D7E12
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DA730
+ ldr r0, _021D7F4C ; =0x000006C3
+ bl FUN_020054C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0x1e
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7D66:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bpl _021D7E12
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DA730
+ ldr r0, _021D7F48 ; =0x00001410
+ add r0, r4, r0
+ bl MOD73_021DB260
+ ldr r0, _021D7F4C ; =0x000006C3
+ bl FUN_020054C8
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0x96
+ lsl r0, r0, #2
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7D94:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bmi _021D7DAE
+ ldr r0, _021D7F50 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _021D7DAE
+ ldr r0, _021D7F54 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D7DB6
+_021D7DAE:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7DB6:
+ ldr r0, _021D7F48 ; =0x00001410
+ add r0, r4, r0
+ bl MOD73_021DB260
+ b _021D7F3E
+_021D7DC0:
+ ldr r0, _021D7F48 ; =0x00001410
+ add r0, r4, r0
+ bl MOD73_021DB24C
+ ldr r0, _021D7F44 ; =0x0000063C
+ add r0, r4, r0
+ bl MOD73_021DA754
+ ldr r1, _021D7F58 ; =0x0000152C
+ ldr r2, _021D7F5C ; =0x00001420
+ ldr r1, [r4, r1]
+ ldr r2, [r4, r2]
+ add r0, r6, #0
+ bl MOD73_021D8590
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DA770
+ mov r0, #0x96
+ str r0, [r4, #0x1c]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7DF4:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ ldr r0, _021D7F50 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _021D7E14
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ blt _021D7E14
+ ldr r0, _021D7F54 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021D7E14
+_021D7E12:
+ b _021D7F3E
+_021D7E14:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7E1C:
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DA770
+ ldr r0, _021D7F60 ; =0x00001418
+ add r0, r4, r0
+ bl MOD73_021DB28C
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D7F3E
+_021D7E36:
+ ldr r0, _021D7F60 ; =0x00001418
+ add r0, r4, r0
+ bl MOD73_021DB2B8
+ sub r1, r0, #1
+ cmp r1, #1
+ bhi _021D7F3E
+ cmp r0, #1
+ bne _021D7E90
+ ldr r0, [r6, #0x10]
+ ldr r0, [r0, #8]
+ bl FUN_020281B8
+ cmp r0, #0x64
+ blo _021D7E68
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DA770
+ mov r0, #0xa
+ str r0, [r5]
+ mov r0, #0x96
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7E68:
+ ldr r0, [r6, #0x10]
+ mov r1, #4
+ ldr r0, [r0, #0x14]
+ bl FUN_0206EE64
+ cmp r0, #0
+ bne _021D7E8A
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #5
+ add r0, r4, r0
+ bl MOD73_021DA770
+ mov r0, #0xa
+ str r0, [r5]
+ mov r0, #0x96
+ str r0, [r4, #0x1c]
+ b _021D7F3E
+_021D7E8A:
+ mov r0, #9
+ str r0, [r5]
+ b _021D7E94
+_021D7E90:
+ mov r0, #0xb
+ str r0, [r5]
+_021D7E94:
+ ldr r0, _021D7F5C ; =0x00001420
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ ble _021D7F3E
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #6
+ add r0, r4, r0
+ bl MOD73_021DA770
+ b _021D7F3E
+_021D7EA8:
+ mov r0, #0x35
+ mov r1, #1
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ bl MOD73_021D9080
+ ldr r3, _021D7F64 ; =0x00001424
+ mov r1, #0x35
+ lsl r1, r1, #4
+ add r2, r0, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x1e
+ add r1, r4, r1
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7ECE
+ bl ErrorHandling
+_021D7ECE:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7ED6:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ ldr r0, _021D7F50 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ bne _021D7EF4
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0
+ blt _021D7EF4
+ ldr r0, _021D7F54 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D7F3E
+_021D7EF4:
+ ldr r0, _021D7F5C ; =0x00001420
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ ble _021D7F06
+ ldr r0, _021D7F44 ; =0x0000063C
+ mov r1, #6
+ add r0, r4, r0
+ bl MOD73_021DA770
+_021D7F06:
+ mov r0, #0xb
+ str r0, [r5]
+ b _021D7F3E
+_021D7F0C:
+ mov r0, #0x35
+ mov r1, #0
+ lsl r0, r0, #4
+ str r1, [r4, r0]
+ bl MOD73_021D9080
+ ldr r3, _021D7F64 ; =0x00001424
+ mov r1, #0x35
+ lsl r1, r1, #4
+ add r2, r0, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x1e
+ add r1, r4, r1
+ bl MOD73_021D90D0
+ cmp r0, #0
+ bne _021D7F32
+ bl ErrorHandling
+_021D7F32:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D7F3A:
+ bl ErrorHandling
+_021D7F3E:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D7F44: .word 0x0000063C
+_021D7F48: .word 0x00001410
+_021D7F4C: .word 0x000006C3
+_021D7F50: .word 0x021C48F8
+_021D7F54: .word 0x021C48B8
+_021D7F58: .word 0x0000152C
+_021D7F5C: .word 0x00001420
+_021D7F60: .word 0x00001418
+_021D7F64: .word 0x00001424
+ thumb_func_end MOD73_021D7C9C
+
+ thumb_func_start MOD73_021D7F68
+MOD73_021D7F68: ; 0x021D7F68
+ ldr r3, _021D7F70 ; =MOD73_021D8810
+ add r0, r1, #0
+ add r1, r2, #0
+ bx r3
+ .align 2, 0
+_021D7F70: .word MOD73_021D8810
+ thumb_func_end MOD73_021D7F68
+
+ thumb_func_start MOD73_021D7F74
+MOD73_021D7F74: ; 0x021D7F74
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r2, #0
+ add r6, r0, #0
+ ldr r0, [r5]
+ add r4, r1, #0
+ cmp r0, #4
+ bhi _021D8056
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D7F90: ; jump table
+ .short _021D7F9A - _021D7F90 - 2 ; case 0
+ .short _021D8000 - _021D7F90 - 2 ; case 1
+ .short _021D8010 - _021D7F90 - 2 ; case 2
+ .short _021D8030 - _021D7F90 - 2 ; case 3
+ .short _021D8040 - _021D7F90 - 2 ; case 4
+_021D7F9A:
+ ldr r0, _021D805C ; =0x00001571
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _021D7FB2
+ ldr r0, _021D8060 ; =0x0000063C
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DA770
+ mov r0, #1
+ str r0, [r6, #0x20]
+ b _021D7FF4
+_021D7FB2:
+ mov r0, #0
+ str r0, [r6, #0x20]
+ mov r0, #0x35
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021D7FCC
+ ldr r0, _021D8060 ; =0x0000063C
+ mov r1, #4
+ add r0, r4, r0
+ bl MOD73_021DA770
+ b _021D7FDA
+_021D7FCC:
+ ldr r0, _021D8064 ; =0x00001420
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bgt _021D7FDA
+ mov r0, #2
+ str r0, [r5]
+ b _021D8056
+_021D7FDA:
+ ldr r0, _021D8068 ; =0x00001428
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021D7FF4
+ ldr r0, [r4]
+ bl FUN_02029520
+ add r1, r0, #0
+ ldr r0, [r6, #0x10]
+ mov r2, #4
+ ldr r0, [r0, #0x1c]
+ bl FUN_02028AD4
+_021D7FF4:
+ mov r0, #0x3c
+ str r0, [r4, #0x1c]
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8056
+_021D8000:
+ ldr r0, [r4, #0x1c]
+ sub r0, r0, #1
+ str r0, [r4, #0x1c]
+ bpl _021D8056
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8056
+_021D8010:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r0, #0
+ add r2, r0, #0
+ add r3, r0, #0
+ bl FUN_0200E1D0
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8056
+_021D8030:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D8056
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ b _021D8056
+_021D8040:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD73_021D8840
+ add r0, r4, #0
+ bl MOD73_021D875C
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ add r0, r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021D8056:
+ ldr r0, [r4, #0xc]
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021D805C: .word 0x00001571
+_021D8060: .word 0x0000063C
+_021D8064: .word 0x00001420
+_021D8068: .word 0x00001428
+ thumb_func_end MOD73_021D7F74
+
+ thumb_func_start MOD73_021D806C
+MOD73_021D806C: ; 0x021D806C
+ push {r4, lr}
+ mov r0, #0xd7
+ add r4, r1, #0
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD73_021D96C8
+ ldr r0, _021D80E8 ; =0x0000054C
+ add r0, r4, r0
+ bl MOD73_021D9A4C
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl MOD73_021D9DA0
+ ldr r0, _021D80EC ; =0x0000058C
+ add r0, r4, r0
+ bl MOD73_021D9DA0
+ ldr r0, _021D80F0 ; =0x00000598
+ add r0, r4, r0
+ bl MOD73_021D9DA0
+ ldr r0, _021D80F4 ; =0x000005A4
+ add r0, r4, r0
+ bl MOD73_021D9E8C
+ ldr r0, _021D80F8 ; =0x0000061C
+ add r0, r4, r0
+ bl MOD73_021DA0FC
+ ldr r0, _021D80FC ; =0x0000063C
+ add r0, r4, r0
+ bl MOD73_021DA234
+ mov r0, #0x67
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD73_021DA82C
+ ldr r0, _021D8100 ; =0x00000A84
+ add r0, r4, r0
+ bl MOD73_021DAD84
+ ldr r0, _021D8104 ; =0x00000B04
+ add r0, r4, r0
+ bl MOD73_021DAF88
+ ldr r0, _021D8108 ; =0x00001418
+ add r0, r4, r0
+ bl MOD73_021DB280
+ add r0, r4, #0
+ bl MOD73_021D856C
+ add r0, r4, #0
+ bl MOD73_021D7694
+ ldr r0, [r4, #0xc]
+ pop {r4, pc}
+ nop
+_021D80E8: .word 0x0000054C
+_021D80EC: .word 0x0000058C
+_021D80F0: .word 0x00000598
+_021D80F4: .word 0x000005A4
+_021D80F8: .word 0x0000061C
+_021D80FC: .word 0x0000063C
+_021D8100: .word 0x00000A84
+_021D8104: .word 0x00000B04
+_021D8108: .word 0x00001418
+ thumb_func_end MOD73_021D806C
+
+ thumb_func_start MOD73_021D810C
+MOD73_021D810C: ; 0x021D810C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D8170 ; =0x000014C4
+ add r4, r5, r0
+ ldr r0, _021D8174 ; =0x000005A4
+ ldrh r1, [r4, #8]
+ add r0, r5, r0
+ bl MOD73_021D9FE0
+ add r0, r5, #0
+ bl MOD73_021D85E4
+ ldrh r0, [r4, #0xa]
+ ldrb r1, [r4, #0xd]
+ bl MOD73_021DB644
+ add r1, r0, #0
+ ldr r0, _021D8174 ; =0x000005A4
+ add r0, r5, r0
+ bl MOD73_021D9FFC
+ ldr r0, _021D8174 ; =0x000005A4
+ ldrb r1, [r4, #0xd]
+ add r0, r5, r0
+ bl MOD73_021DA058
+ ldr r0, _021D8178 ; =0x0000061C
+ add r0, r5, r0
+ bl MOD73_021DA194
+ add r0, r5, #0
+ bl MOD73_021D817C
+ add r0, r5, #0
+ bl MOD73_021D8458
+ add r0, r5, #0
+ bl MOD73_021D8254
+ add r0, r5, #0
+ bl MOD73_021D82FC
+ add r0, r5, #0
+ bl MOD73_021D83D0
+ add r0, r5, #0
+ bl MOD73_021D84FC
+ pop {r3, r4, r5, pc}
+ nop
+_021D8170: .word 0x000014C4
+_021D8174: .word 0x000005A4
+_021D8178: .word 0x0000061C
+ thumb_func_end MOD73_021D810C
+
+ thumb_func_start MOD73_021D817C
+MOD73_021D817C: ; 0x021D817C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, _021D8230 ; =0x000014C4
+ mov r2, #7
+ add r4, r5, r0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r1, #5
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D8238 ; =0x021DBC84
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ bl MOD73_021D9FC0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r2, #7
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D823C ; =0x021DBC85
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ mov r1, #6
+ bl MOD73_021D9FC0
+ ldrb r2, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r1, #7
+ add r3, r2, #0
+ ldr r2, _021D8240 ; =0x021DBC86
+ mul r3, r1
+ ldrb r2, [r2, r3]
+ add r0, r5, r0
+ bl MOD73_021D9FC0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r2, #7
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D8244 ; =0x021DBC87
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ mov r1, #0
+ bl MOD73_021D9FC0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r2, #7
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D8248 ; =0x021DBC88
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ mov r1, #1
+ bl MOD73_021D9FC0
+ ldrb r3, [r4, #0xd]
+ ldr r0, _021D8234 ; =0x000005A4
+ mov r2, #7
+ add r6, r3, #0
+ mul r6, r2
+ ldr r2, _021D824C ; =0x021DBC89
+ add r0, r5, r0
+ ldrb r2, [r2, r6]
+ mov r1, #2
+ bl MOD73_021D9FC0
+ ldrb r1, [r4, #0xd]
+ mov r0, #7
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021D8250 ; =0x021DBC8A
+ ldrb r1, [r0, r2]
+ cmp r1, #8
+ beq _021D822E
+ ldrb r2, [r4, #0x10]
+ ldr r0, _021D8234 ; =0x000005A4
+ cmp r2, #0
+ beq _021D8226
+ add r0, r5, r0
+ bl MOD73_021DA01C
+ pop {r4, r5, r6, pc}
+_021D8226:
+ add r0, r5, r0
+ mov r2, #0
+ bl MOD73_021D9FC0
+_021D822E:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021D8230: .word 0x000014C4
+_021D8234: .word 0x000005A4
+_021D8238: .word 0x021DBC84
+_021D823C: .word 0x021DBC85
+_021D8240: .word 0x021DBC86
+_021D8244: .word 0x021DBC87
+_021D8248: .word 0x021DBC88
+_021D824C: .word 0x021DBC89
+_021D8250: .word 0x021DBC8A
+ thumb_func_end MOD73_021D817C
+
+ thumb_func_start MOD73_021D8254
+MOD73_021D8254: ; 0x021D8254
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D82F0 ; =0x000014C4
+ add r1, r4, r0
+ ldrb r2, [r1, #0x11]
+ ldrb r0, [r1, #0xc]
+ cmp r2, r0
+ beq _021D8274
+ ldrh r0, [r1, #0xa]
+ cmp r0, #0
+ beq _021D8274
+ mov r0, #0xb
+ lsl r0, r0, #6
+ ldr r1, [r4, r0]
+ cmp r1, #0
+ beq _021D8292
+_021D8274:
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ mov r0, #0xb1
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+_021D8292:
+ cmp r2, #0
+ bne _021D82C2
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ beq _021D82EC
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DAE7C
+ mov r0, #0xb1
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D82F8 ; =0x000006C1
+ bl FUN_020054C8
+ pop {r4, pc}
+_021D82C2:
+ add r0, r0, #4
+ ldr r0, [r4, r0]
+ cmp r0, #2
+ beq _021D82EC
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #3
+ add r0, r4, r0
+ bl MOD73_021DAE7C
+ mov r0, #0xb1
+ mov r1, #2
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ ldr r0, _021D82F4 ; =0x00000A84
+ mov r1, #1
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D82F8 ; =0x000006C1
+ bl FUN_020054C8
+_021D82EC:
+ pop {r4, pc}
+ nop
+_021D82F0: .word 0x000014C4
+_021D82F4: .word 0x00000A84
+_021D82F8: .word 0x000006C1
+ thumb_func_end MOD73_021D8254
+
+ thumb_func_start MOD73_021D82FC
+MOD73_021D82FC: ; 0x021D82FC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D83C0 ; =0x000014C4
+ mov r1, #0xb1
+ lsl r1, r1, #2
+ add r4, r5, r0
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _021D8316
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D832C
+_021D8316:
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA4AC
+ mov r0, #0xb3
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ sub r0, r0, #4
+ str r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+_021D832C:
+ add r1, #8
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _021D8360
+ ldrb r0, [r4, #0x13]
+ cmp r0, #0
+ beq _021D8374
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA4AC
+ ldr r0, _021D83C4 ; =0x0000063C
+ ldrb r2, [r4, #0xd]
+ ldr r1, _021D83C8 ; =0x021DBC58
+ add r0, r5, r0
+ ldrb r1, [r1, r2]
+ bl MOD73_021DA434
+ mov r0, #0xb3
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0
+ sub r0, r0, #4
+ str r1, [r5, r0]
+ b _021D8374
+_021D8360:
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA49C
+ cmp r0, #0
+ beq _021D8374
+ mov r0, #0xb3
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_021D8374:
+ mov r0, #0xb2
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ bne _021D83AA
+ ldrb r0, [r4, #0x12]
+ cmp r0, #0
+ beq _021D83BE
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA4AC
+ ldr r0, _021D83C4 ; =0x0000063C
+ ldrb r2, [r4, #0xd]
+ ldr r1, _021D83CC ; =0x021DBC5C
+ add r0, r5, r0
+ ldrb r1, [r1, r2]
+ bl MOD73_021DA434
+ mov r0, #0xb2
+ mov r1, #1
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ mov r1, #0
+ add r0, r0, #4
+ str r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+_021D83AA:
+ ldr r0, _021D83C4 ; =0x0000063C
+ add r0, r5, r0
+ bl MOD73_021DA49C
+ cmp r0, #0
+ beq _021D83BE
+ mov r0, #0xb2
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+_021D83BE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D83C0: .word 0x000014C4
+_021D83C4: .word 0x0000063C
+_021D83C8: .word 0x021DBC58
+_021D83CC: .word 0x021DBC5C
+ thumb_func_end MOD73_021D82FC
+
+ thumb_func_start MOD73_021D83D0
+MOD73_021D83D0: ; 0x021D83D0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D844C ; =0x000014C4
+ add r4, r5, r0
+ ldrb r0, [r4, #0x13]
+ cmp r0, #0
+ beq _021D83FC
+ mov r0, #0x67
+ lsl r0, r0, #4
+ ldrb r1, [r4, #0xd]
+ add r0, r5, r0
+ mov r2, #2
+ bl MOD73_021DA8BC
+ ldrb r0, [r4, #0xd]
+ lsl r1, r0, #2
+ ldr r0, _021D8450 ; =0x021DBC60
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054C8
+_021D83FC:
+ ldrb r0, [r4, #0x12]
+ cmp r0, #1
+ bne _021D8422
+ mov r0, #0x67
+ lsl r0, r0, #4
+ ldrb r1, [r4, #0xd]
+ add r0, r5, r0
+ mov r2, #1
+ bl MOD73_021DA8BC
+ ldrb r0, [r4, #0xd]
+ lsl r1, r0, #2
+ ldr r0, _021D8454 ; =0x021DBC6C
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054C8
+ b _021D8434
+_021D8422:
+ cmp r0, #2
+ bne _021D8434
+ mov r0, #0x67
+ lsl r0, r0, #4
+ ldrb r1, [r4, #0xd]
+ add r0, r5, r0
+ mov r2, #0
+ bl MOD73_021DA8BC
+_021D8434:
+ ldrh r0, [r4, #0xa]
+ ldrb r1, [r4, #0xd]
+ bl MOD73_021DB62C
+ cmp r0, #0
+ bne _021D844A
+ mov r0, #0x67
+ lsl r0, r0, #4
+ add r0, r5, r0
+ bl MOD73_021DAAA8
+_021D844A:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D844C: .word 0x000014C4
+_021D8450: .word 0x021DBC60
+_021D8454: .word 0x021DBC6C
+ thumb_func_end MOD73_021D83D0
+
+ thumb_func_start MOD73_021D8458
+MOD73_021D8458: ; 0x021D8458
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D84F0 ; =0x000014C4
+ add r1, r4, r0
+ ldrb r0, [r1, #0xe]
+ cmp r0, #0
+ beq _021D84B0
+ ldrb r0, [r1, #0x11]
+ cmp r0, #0
+ ldr r0, _021D84F4 ; =0x00000A84
+ bne _021D8490
+ add r0, r4, r0
+ mov r1, #0
+ bl MOD73_021DAE7C
+ ldr r0, _021D84F4 ; =0x00000A84
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D84F8 ; =0x000006C1
+ bl FUN_020054C8
+ mov r0, #0xb
+ mov r1, #1
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ b _021D84B0
+_021D8490:
+ add r0, r4, r0
+ mov r1, #2
+ bl MOD73_021DAE7C
+ ldr r0, _021D84F4 ; =0x00000A84
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DAEAC
+ ldr r0, _021D84F8 ; =0x000006C1
+ bl FUN_020054C8
+ mov r0, #0xb
+ mov r1, #2
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+_021D84B0:
+ mov r0, #0xb
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #1
+ bne _021D84D2
+ ldr r0, _021D84F4 ; =0x00000A84
+ mov r1, #0
+ add r0, r4, r0
+ bl MOD73_021DAECC
+ cmp r0, #1
+ bne _021D84EC
+ mov r0, #0xb
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+ pop {r4, pc}
+_021D84D2:
+ cmp r0, #2
+ bne _021D84EC
+ ldr r0, _021D84F4 ; =0x00000A84
+ mov r1, #2
+ add r0, r4, r0
+ bl MOD73_021DAECC
+ cmp r0, #1
+ bne _021D84EC
+ mov r0, #0xb
+ mov r1, #0
+ lsl r0, r0, #6
+ str r1, [r4, r0]
+_021D84EC:
+ pop {r4, pc}
+ nop
+_021D84F0: .word 0x000014C4
+_021D84F4: .word 0x00000A84
+_021D84F8: .word 0x000006C1
+ thumb_func_end MOD73_021D8458
+
+ thumb_func_start MOD73_021D84FC
+MOD73_021D84FC: ; 0x021D84FC
+ push {r3, lr}
+ ldr r3, _021D8520 ; =0x00001430
+ add r2, r3, #1
+ ldrb r1, [r0, r3]
+ add r3, #0xa3
+ ldrb r3, [r0, r3]
+ ldrb r2, [r0, r2]
+ cmp r3, #1
+ bne _021D851C
+ ldr r3, _021D8524 ; =0x00000B04
+ add r0, r0, r3
+ bl MOD73_021DB020
+ ldr r0, _021D8528 ; =0x000006BF
+ bl FUN_020054C8
+_021D851C:
+ pop {r3, pc}
+ nop
+_021D8520: .word 0x00001430
+_021D8524: .word 0x00000B04
+_021D8528: .word 0x000006BF
+ thumb_func_end MOD73_021D84FC
+
+ thumb_func_start MOD73_021D852C
+MOD73_021D852C: ; 0x021D852C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ bl FUN_02027E5C
+ ldr r1, _021D8560 ; =0x0000152C
+ str r0, [r4, r1]
+ ldr r0, _021D8564 ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D910C
+ ldr r1, _021D8568 ; =0x00001570
+ mov r5, #0
+ strb r0, [r4, r1]
+ add r0, r1, #0
+ mov r3, #0x80
+ mov r2, #0x60
+ sub r0, #0xb4
+ sub r1, #0xb3
+_021D8552:
+ strb r3, [r4, r0]
+ strb r2, [r4, r1]
+ add r5, r5, #1
+ add r4, #0x1c
+ cmp r5, #4
+ blt _021D8552
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8560: .word 0x0000152C
+_021D8564: .word 0x00001424
+_021D8568: .word 0x00001570
+ thumb_func_end MOD73_021D852C
+
+ thumb_func_start MOD73_021D856C
+MOD73_021D856C: ; 0x021D856C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D858C ; =0x0000152C
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ bne _021D857C
+ bl ErrorHandling
+_021D857C:
+ ldr r0, _021D858C ; =0x0000152C
+ ldr r0, [r4, r0]
+ bl FUN_02016A18
+ ldr r0, _021D858C ; =0x0000152C
+ mov r1, #0
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021D858C: .word 0x0000152C
+ thumb_func_end MOD73_021D856C
+
+ thumb_func_start MOD73_021D8590
+MOD73_021D8590: ; 0x021D8590
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x10]
+ add r7, r1, #0
+ ldr r0, [r0, #0xc]
+ add r6, r2, #0
+ bl FUN_02022504
+ mov r4, #0
+ str r0, [sp]
+ cmp r6, #0
+ ble _021D85CA
+_021D85AE:
+ ldr r0, [r5, #0x10]
+ add r1, r7, #0
+ ldr r0, [r0, #8]
+ bl FUN_02028094
+ ldr r1, _021D85E0 ; =0x0000FFFF
+ cmp r0, r1
+ bne _021D85C4
+ mov r0, #0
+ str r0, [sp, #4]
+ b _021D85CA
+_021D85C4:
+ add r4, r4, #1
+ cmp r4, r6
+ blt _021D85AE
+_021D85CA:
+ add r0, r7, #0
+ mov r1, #0
+ bl FUN_02027E94
+ add r1, r0, #0
+ ldr r0, [sp]
+ bl FUN_02060FAC
+ ldr r0, [sp, #4]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D85E0: .word 0x0000FFFF
+ thumb_func_end MOD73_021D8590
+
+ thumb_func_start MOD73_021D85E4
+MOD73_021D85E4: ; 0x021D85E4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021D8628 ; =0x000014C4
+ add r4, r5, r0
+ ldrb r2, [r4, #0xc]
+ cmp r2, #0
+ bne _021D85FE
+ mov r0, #0xd5
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ bgt _021D860E
+_021D85FE:
+ cmp r2, #1
+ bne _021D861E
+ mov r0, #0xd5
+ lsl r0, r0, #2
+ ldr r1, [r5, r0]
+ ldrh r0, [r4, #8]
+ cmp r1, r0
+ bge _021D861E
+_021D860E:
+ ldrb r0, [r4, #0xd]
+ lsl r1, r0, #2
+ ldr r0, _021D862C ; =0x021DBC78
+ ldr r0, [r0, r1]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054C8
+_021D861E:
+ ldrh r1, [r4, #8]
+ mov r0, #0xd5
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8628: .word 0x000014C4
+_021D862C: .word 0x021DBC78
+ thumb_func_end MOD73_021D85E4
+
+ thumb_func_start MOD73_021D8630
+MOD73_021D8630: ; 0x021D8630
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ bl MOD73_021D8B4C
+ add r0, r4, #0
+ ldr r1, [r4]
+ add r0, #0x20
+ bl MOD73_021D88E4
+ add r0, r4, #0
+ bl MOD73_021D8A18
+ add r0, r4, #0
+ bl MOD73_021D89AC
+ add r0, r4, #0
+ bl MOD73_021D89DC
+ add r0, r4, #0
+ bl MOD73_021D8A84
+ ldr r0, _021D8738 ; =0x0000054C
+ ldr r1, [r4, #0x20]
+ ldr r2, [r4]
+ add r0, r4, r0
+ bl MOD73_021D9A68
+ ldr r0, _021D873C ; =0x0000063C
+ ldr r1, [r4, #0x20]
+ ldr r2, [r4]
+ add r0, r4, r0
+ bl MOD73_021DA254
+ mov r1, #0xaf
+ ldr r0, _021D8740 ; =0x000005A4
+ lsl r1, r1, #2
+ ldr r1, [r4, r1]
+ ldr r2, [r4]
+ add r0, r4, r0
+ bl MOD73_021D9EA8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x16
+ mov r2, #0x5a
+ lsl r0, r0, #6
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021D9DCC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _021D8744 ; =0x00000598
+ mov r2, #0x5a
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021D9DCC
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, _021D8748 ; =0x0000058C
+ mov r2, #0x5a
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021D9DCC
+ ldr r0, _021D874C ; =0x0000061C
+ mov r2, #0x5a
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021DA118
+ mov r0, #0x67
+ mov r2, #0x5a
+ lsl r0, r0, #4
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021DA84C
+ ldr r0, _021D8750 ; =0x00000A84
+ add r1, r4, #0
+ ldr r2, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ bl MOD73_021DADA0
+ ldr r0, _021D8754 ; =0x00000B04
+ mov r2, #0x5a
+ add r1, r4, #0
+ lsl r2, r2, #2
+ ldr r3, [r4]
+ add r0, r4, r0
+ add r1, #0x2c
+ add r2, r4, r2
+ bl MOD73_021DAFA8
+ add r0, r4, #0
+ bl MOD73_021D8BDC
+ ldr r0, _021D8758 ; =0x021C4918
+ mov r1, #1
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_021D8738: .word 0x0000054C
+_021D873C: .word 0x0000063C
+_021D8740: .word 0x000005A4
+_021D8744: .word 0x00000598
+_021D8748: .word 0x0000058C
+_021D874C: .word 0x0000061C
+_021D8750: .word 0x00000A84
+_021D8754: .word 0x00000B04
+_021D8758: .word 0x021C4918
+ thumb_func_end MOD73_021D8630
+
+ thumb_func_start MOD73_021D875C
+MOD73_021D875C: ; 0x021D875C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D87EC ; =0x0000063C
+ add r0, r4, r0
+ bl MOD73_021DA290
+ ldr r0, _021D87F0 ; =0x0000054C
+ add r0, r4, r0
+ bl MOD73_021D9A94
+ ldr r0, _021D87F4 ; =0x000005A4
+ add r0, r4, r0
+ bl MOD73_021D9F74
+ add r0, r4, #0
+ bl MOD73_021D8B2C
+ mov r0, #0x16
+ lsl r0, r0, #6
+ add r0, r4, r0
+ bl MOD73_021D9E08
+ ldr r0, _021D87F8 ; =0x0000058C
+ add r0, r4, r0
+ bl MOD73_021D9E08
+ ldr r0, _021D87FC ; =0x00000598
+ add r0, r4, r0
+ bl MOD73_021D9E08
+ ldr r0, _021D8800 ; =0x0000061C
+ add r0, r4, r0
+ bl MOD73_021DA178
+ mov r0, #0x67
+ lsl r0, r0, #4
+ add r0, r4, r0
+ bl MOD73_021DA858
+ ldr r0, _021D8804 ; =0x00000A84
+ add r0, r4, r0
+ bl MOD73_021DAE24
+ ldr r0, _021D8808 ; =0x00000B04
+ add r0, r4, r0
+ bl MOD73_021DAFEC
+ add r0, r4, #0
+ add r0, #0x20
+ bl MOD73_021D8980
+ add r0, r4, #0
+ bl MOD73_021D89D0
+ add r0, r4, #0
+ bl MOD73_021D8A74
+ add r0, r4, #0
+ bl MOD73_021D8A08
+ add r0, r4, #0
+ bl MOD73_021D8BD0
+ add r0, r4, #0
+ bl MOD73_021D8D18
+ ldr r0, _021D880C ; =0x021C4918
+ mov r1, #0
+ strb r1, [r0, #5]
+ bl FUN_0201E7A0
+ pop {r4, pc}
+ .align 2, 0
+_021D87EC: .word 0x0000063C
+_021D87F0: .word 0x0000054C
+_021D87F4: .word 0x000005A4
+_021D87F8: .word 0x0000058C
+_021D87FC: .word 0x00000598
+_021D8800: .word 0x0000061C
+_021D8804: .word 0x00000A84
+_021D8808: .word 0x00000B04
+_021D880C: .word 0x021C4918
+ thumb_func_end MOD73_021D875C
+
+ thumb_func_start MOD73_021D8810
+MOD73_021D8810: ; 0x021D8810
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r1, _021D883C ; =0x00001498
+ str r0, [sp]
+ mov r0, #0xd7
+ mov r3, #0x5a
+ lsl r0, r0, #2
+ add r2, r4, #0
+ lsl r3, r3, #2
+ add r0, r4, r0
+ add r1, r4, r1
+ add r2, #0x2c
+ add r3, r4, r3
+ bl MOD73_021D96E4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D883C: .word 0x00001498
+ thumb_func_end MOD73_021D8810
+
+ thumb_func_start MOD73_021D8840
+MOD73_021D8840: ; 0x021D8840
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xd7
+ lsl r0, r0, #2
+ add r1, r4, #0
+ add r0, r4, r0
+ add r1, #0x2c
+ bl MOD73_021D97A4
+ ldr r0, [r4, #0xc]
+ add r0, r0, #1
+ pop {r4, pc}
+ thumb_func_end MOD73_021D8840
+
+ thumb_func_start MOD73_021D8858
+MOD73_021D8858: ; 0x021D8858
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl FUN_020222AC
+ mov r1, #0
+ mov r0, #0x11
+ add r2, r1, #0
+ bl FUN_020BB1C0
+ bl FUN_020BB394
+ bl FUN_020B02C8
+ mov r0, #0xaf
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D8882
+ bl FUN_02013D5C
+_021D8882:
+ mov r2, #1
+ mov r0, #0x12
+ add r1, sp, #0
+ str r2, [sp]
+ bl FUN_020BB1C0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_020222B4
+ mov r0, #0xae
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _021D88AA
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ beq _021D88AA
+ bl FUN_0201FDEC
+_021D88AA:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D8858
+
+ thumb_func_start MOD73_021D88B0
+MOD73_021D88B0: ; 0x021D88B0
+ push {r4, lr}
+ add r4, r0, #0
+ bl FUN_02009F80
+ ldr r0, [r4, #0x20]
+ cmp r0, #0
+ beq _021D88C2
+ bl FUN_0201AB60
+_021D88C2:
+ pop {r4, pc}
+ thumb_func_end MOD73_021D88B0
+
+ thumb_func_start MOD73_021D88C4
+MOD73_021D88C4: ; 0x021D88C4
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D88E0 ; =0x021DBD40
+ add r3, sp, #0
+ mov r2, #5
+_021D88CE:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D88CE
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D88E0: .word 0x021DBD40
+ thumb_func_end MOD73_021D88C4
+
+ thumb_func_start MOD73_021D88E4
+MOD73_021D88E4: ; 0x021D88E4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x88
+ str r1, [sp]
+ add r6, r0, #0
+ bl MOD73_021D88C4
+ ldr r0, [sp]
+ bl FUN_02016B94
+ add r3, sp, #8
+ ldr r4, _021D8974 ; =0x021DBD30
+ str r0, [r6]
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ mov r0, #0
+ mov r1, #2
+ bl FUN_020178BC
+ ldr r4, _021D8978 ; =0x021DBD68
+ add r3, sp, #0x18
+ mov r2, #0xe
+_021D8922:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D8922
+ ldr r1, _021D897C ; =0x021DBD0C
+ add r0, sp, #4
+ ldrb r2, [r1]
+ mov r7, #0
+ add r5, sp, #4
+ strb r2, [r0]
+ ldrb r2, [r1, #1]
+ add r4, sp, #0x18
+ strb r2, [r0, #1]
+ ldrb r2, [r1, #2]
+ ldrb r1, [r1, #3]
+ strb r2, [r0, #2]
+ strb r1, [r0, #3]
+_021D8944:
+ ldrb r1, [r5]
+ ldr r0, [r6]
+ add r2, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldrb r1, [r5]
+ ldr r0, [r6]
+ bl FUN_02018744
+ ldrb r0, [r5]
+ ldr r3, [sp]
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+ add r7, r7, #1
+ add r4, #0x1c
+ add r5, r5, #1
+ cmp r7, #4
+ blt _021D8944
+ add sp, #0x88
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8974: .word 0x021DBD30
+_021D8978: .word 0x021DBD68
+_021D897C: .word 0x021DBD0C
+ thumb_func_end MOD73_021D88E4
+
+ thumb_func_start MOD73_021D8980
+MOD73_021D8980: ; 0x021D8980
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ mov r1, #5
+ bl FUN_020178A0
+ ldr r0, [r4]
+ mov r1, #4
+ bl FUN_020178A0
+ ldr r0, [r4]
+ mov r1, #2
+ bl FUN_020178A0
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_020178A0
+ ldr r0, [r4]
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD73_021D8980
+
+ thumb_func_start MOD73_021D89AC
+MOD73_021D89AC: ; 0x021D89AC
+ push {r3, lr}
+ add r3, r0, #0
+ ldr r3, [r3]
+ add r0, #0x2c
+ mov r1, #0x48
+ mov r2, #0x10
+ bl MOD73_021D92EC
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D89AC
+
+ thumb_func_start MOD73_021D89D0
+MOD73_021D89D0: ; 0x021D89D0
+ ldr r3, _021D89D8 ; =MOD73_021D931C
+ add r0, #0x2c
+ bx r3
+ nop
+_021D89D8: .word MOD73_021D931C
+ thumb_func_end MOD73_021D89D0
+
+ thumb_func_start MOD73_021D89DC
+MOD73_021D89DC: ; 0x021D89DC
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ ldr r5, _021D8A04 ; =0x021DBD10
+ add r3, sp, #0
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ str r0, [sp, #0xc]
+ add r0, r2, #0
+ bl FUN_02013CD4
+ mov r1, #0xaf
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8A04: .word 0x021DBD10
+ thumb_func_end MOD73_021D89DC
+
+ thumb_func_start MOD73_021D8A08
+MOD73_021D8A08: ; 0x021D8A08
+ mov r1, #0xaf
+ lsl r1, r1, #2
+ ldr r3, _021D8A14 ; =FUN_02013D18
+ ldr r0, [r0, r1]
+ bx r3
+ nop
+_021D8A14: .word FUN_02013D18
+ thumb_func_end MOD73_021D8A08
+
+ thumb_func_start MOD73_021D8A18
+MOD73_021D8A18: ; 0x021D8A18
+ push {r4, r5, lr}
+ sub sp, #0x24
+ add r4, r0, #0
+ bl FUN_020B0FC0
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x80
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r3, #0x20
+ str r3, [sp, #0xc]
+ ldr r2, [r4]
+ str r2, [sp, #0x10]
+ add r2, r0, #0
+ bl FUN_02009EAC
+ ldr r5, _021D8A6C ; =0x021DBD20
+ add r3, sp, #0x14
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ ldr r1, _021D8A70 ; =0x00200010
+ str r0, [sp, #0x20]
+ add r0, r2, #0
+ mov r2, #0x10
+ bl FUN_0201D060
+ ldr r1, [r4]
+ mov r0, #0x20
+ bl FUN_0201E00C
+ bl FUN_0201D168
+ bl FUN_0201E0BC
+ add sp, #0x24
+ pop {r4, r5, pc}
+ nop
+_021D8A6C: .word 0x021DBD20
+_021D8A70: .word 0x00200010
+ thumb_func_end MOD73_021D8A18
+
+ thumb_func_start MOD73_021D8A74
+MOD73_021D8A74: ; 0x021D8A74
+ push {r3, lr}
+ bl FUN_02009FA0
+ bl FUN_0201D12C
+ bl FUN_0201E08C
+ pop {r3, pc}
+ thumb_func_end MOD73_021D8A74
+
+ thumb_func_start MOD73_021D8A84
+MOD73_021D8A84: ; 0x021D8A84
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x18]
+ ldr r0, _021D8B28 ; =0x021DBDD8
+ mov r1, #0x5a
+ str r0, [sp, #0x20]
+ mov r0, #0xc
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x18]
+ lsl r1, r1, #2
+ add r0, r0, r1
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x18]
+ mov r4, #0
+ str r0, [sp, #0x24]
+ add r0, #0x2c
+ mov r7, #0xd
+ mov r5, #0xe
+ str r0, [sp, #0x24]
+_021D8AAA:
+ cmp r4, #0
+ ble _021D8AE0
+ ldr r0, [sp, #0x20]
+ ldrb r0, [r0]
+ cmp r0, #8
+ bne _021D8AE0
+ str r5, [sp]
+ ldr r0, [sp, #0x28]
+ str r7, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0x7d
+ lsl r0, r0, #4
+ add r0, r4, r0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x7a
+ ldr r0, [r0]
+ add r3, r2, #0
+ str r0, [sp, #0x10]
+ ldr r6, [sp, #0x18]
+ add r3, #0xf2
+ ldr r0, [sp, #0x24]
+ ldr r1, [sp, #0x1c]
+ ldr r3, [r6, r3]
+ bl MOD73_021D942C
+ b _021D8B08
+_021D8AE0:
+ mov r0, #2
+ str r0, [sp]
+ str r5, [sp, #4]
+ ldr r0, [sp, #0x28]
+ str r7, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #0x7d
+ lsl r0, r0, #4
+ add r0, r4, r0
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ ldr r3, [sp, #0x20]
+ ldr r0, [r0]
+ ldr r1, [sp, #0x1c]
+ str r0, [sp, #0x14]
+ ldrb r3, [r3]
+ ldr r0, [sp, #0x24]
+ mov r2, #0x7a
+ bl MOD73_021D9340
+_021D8B08:
+ ldr r0, [sp, #0x20]
+ add r4, r4, #1
+ add r0, r0, #1
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x28]
+ add r7, r7, #3
+ add r0, r0, #3
+ str r0, [sp, #0x28]
+ ldr r0, [sp, #0x1c]
+ add r5, r5, #3
+ add r0, #0x38
+ str r0, [sp, #0x1c]
+ cmp r4, #6
+ blt _021D8AAA
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8B28: .word 0x021DBDD8
+ thumb_func_end MOD73_021D8A84
+
+ thumb_func_start MOD73_021D8B2C
+MOD73_021D8B2C: ; 0x021D8B2C
+ push {r4, r5, r6, lr}
+ mov r1, #0x5a
+ lsl r1, r1, #2
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r0, r1
+ add r6, #0x2c
+_021D8B3A:
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD73_021D94F4
+ add r4, r4, #1
+ add r5, #0x38
+ cmp r4, #6
+ blt _021D8B3A
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021D8B2C
+
+ thumb_func_start MOD73_021D8B4C
+MOD73_021D8B4C: ; 0x021D8B4C
+ push {r3, r4, lr}
+ sub sp, #4
+ bl FUN_020BB7F4
+ bl G3X_InitMtxStack
+ ldr r0, _021D8BB8 ; =0x04000060
+ ldr r2, _021D8BBC ; =0xFFFFCFFD
+ ldrh r1, [r0]
+ and r1, r2
+ strh r1, [r0]
+ ldrh r3, [r0]
+ add r1, r2, #2
+ and r3, r1
+ mov r1, #0x10
+ orr r1, r3
+ strh r1, [r0]
+ ldrh r1, [r0]
+ ldr r3, _021D8BC0 ; =0x0000CFFB
+ and r1, r3
+ strh r1, [r0]
+ add r1, r2, #2
+ ldrh r4, [r0]
+ sub r3, #0x1c
+ lsr r2, r2, #0x11
+ and r4, r1
+ mov r1, #8
+ orr r1, r4
+ strh r1, [r0]
+ ldrh r1, [r0]
+ and r1, r3
+ strh r1, [r0]
+ mov r1, #0
+ ldr r0, _021D8BC4 ; =0x000043FF
+ mov r3, #0x3f
+ str r1, [sp]
+ bl G3X_SetClearColor
+ ldr r2, _021D8BC8 ; =0x04000540
+ mov r0, #2
+ ldr r1, _021D8BCC ; =0xBFFF0000
+ str r0, [r2]
+ str r1, [r2, #0x40]
+ mov r1, #1
+ bl FUN_020AEB70
+ mov r0, #2
+ lsl r0, r0, #0xe
+ mov r1, #1
+ bl FUN_020AEDF4
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021D8BB8: .word 0x04000060
+_021D8BBC: .word 0xFFFFCFFD
+_021D8BC0: .word 0x0000CFFB
+_021D8BC4: .word 0x000043FF
+_021D8BC8: .word 0x04000540
+_021D8BCC: .word 0xBFFF0000
+ thumb_func_end MOD73_021D8B4C
+
+ thumb_func_start MOD73_021D8BD0
+MOD73_021D8BD0: ; 0x021D8BD0
+ push {r3, lr}
+ bl FUN_020AEAF4
+ bl FUN_020AEC60
+ pop {r3, pc}
+ thumb_func_end MOD73_021D8BD0
+
+ thumb_func_start MOD73_021D8BDC
+MOD73_021D8BDC: ; 0x021D8BDC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r2, _021D8CE0 ; =0x0000019D
+ ldr r3, [r5]
+ mov r0, #0
+ mov r1, #0x1a
+ bl FUN_0200A86C
+ ldr r1, _021D8CE4 ; =0x00001574
+ str r0, [r5, r1]
+ ldr r2, [r5]
+ mov r0, #4
+ mov r1, #0x40
+ bl FUN_0200AA90
+ ldr r1, _021D8CE8 ; =0x00001578
+ str r0, [r5, r1]
+ ldr r1, [r5]
+ mov r0, #0x40
+ bl FUN_020219F4
+ ldr r1, _021D8CEC ; =0x0000157C
+ str r0, [r5, r1]
+ sub r1, #8
+ ldr r0, [r5, r1]
+ mov r1, #0
+ bl FUN_0200A914
+ mov r1, #0x56
+ lsl r1, r1, #6
+ str r0, [r5, r1]
+ sub r1, #0xc
+ ldr r0, [r5, r1]
+ mov r1, #1
+ bl FUN_0200A914
+ ldr r1, _021D8CF0 ; =0x00001584
+ str r0, [r5, r1]
+ sub r1, #0x10
+ ldr r0, [r5, r1]
+ mov r1, #2
+ bl FUN_0200A914
+ ldr r1, _021D8CF4 ; =0x00001588
+ str r0, [r5, r1]
+ sub r1, #0x14
+ ldr r0, [r5, r1]
+ mov r1, #0x14
+ bl FUN_0200A914
+ ldr r1, _021D8CF8 ; =0x0000158C
+ str r0, [r5, r1]
+ sub r1, #0x18
+ ldr r0, [r5, r1]
+ mov r1, #0x15
+ bl FUN_0200A914
+ ldr r1, _021D8CFC ; =0x00001590
+ str r0, [r5, r1]
+ sub r1, #0x1c
+ ldr r0, [r5, r1]
+ mov r1, #0x16
+ bl FUN_0200A914
+ ldr r1, _021D8D00 ; =0x00001594
+ str r0, [r5, r1]
+ sub r1, #0x20
+ ldr r0, [r5, r1]
+ mov r1, #0x17
+ bl FUN_0200A914
+ ldr r1, _021D8D04 ; =0x00001598
+ str r0, [r5, r1]
+ sub r1, #0x24
+ ldr r0, [r5, r1]
+ mov r1, #0x18
+ bl FUN_0200A914
+ ldr r1, _021D8D08 ; =0x0000159C
+ str r0, [r5, r1]
+ sub r1, #0x28
+ ldr r0, [r5, r1]
+ mov r1, #0x19
+ bl FUN_0200A914
+ ldr r1, _021D8D0C ; =0x000015A0
+ str r0, [r5, r1]
+ sub r1, #0x2c
+ ldr r0, [r5, r1]
+ mov r1, #8
+ bl FUN_0200A914
+ ldr r1, _021D8D10 ; =0x000015A4
+ str r0, [r5, r1]
+ sub r1, #0x30
+ ldr r0, [r5, r1]
+ mov r1, #9
+ bl FUN_0200A914
+ ldr r1, _021D8D14 ; =0x000015A8
+ mov r4, #0
+ str r0, [r5, r1]
+ add r6, r5, #0
+ add r7, r1, #4
+_021D8CAC:
+ ldr r0, _021D8CE4 ; =0x00001574
+ add r1, r4, #3
+ ldr r0, [r5, r0]
+ bl FUN_0200A914
+ str r0, [r6, r7]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, #5
+ blt _021D8CAC
+ mov r7, #0x57
+ mov r4, #0
+ add r6, r5, #0
+ lsl r7, r7, #6
+_021D8CC8:
+ ldr r0, _021D8CE4 ; =0x00001574
+ add r1, r4, #0
+ ldr r0, [r5, r0]
+ add r1, #0xa
+ bl FUN_0200A914
+ str r0, [r6, r7]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, #0xa
+ blt _021D8CC8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8CE0: .word 0x0000019D
+_021D8CE4: .word 0x00001574
+_021D8CE8: .word 0x00001578
+_021D8CEC: .word 0x0000157C
+_021D8CF0: .word 0x00001584
+_021D8CF4: .word 0x00001588
+_021D8CF8: .word 0x0000158C
+_021D8CFC: .word 0x00001590
+_021D8D00: .word 0x00001594
+_021D8D04: .word 0x00001598
+_021D8D08: .word 0x0000159C
+_021D8D0C: .word 0x000015A0
+_021D8D10: .word 0x000015A4
+_021D8D14: .word 0x000015A8
+ thumb_func_end MOD73_021D8BDC
+
+ thumb_func_start MOD73_021D8D18
+MOD73_021D8D18: ; 0x021D8D18
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldr r0, _021D8DBC ; =0x000015A8
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DC0 ; =0x000015A4
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DC4 ; =0x00001594
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DC8 ; =0x00001590
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DCC ; =0x0000158C
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DD0 ; =0x00001588
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DD4 ; =0x00001584
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ mov r0, #0x56
+ lsl r0, r0, #6
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DD8 ; =0x00001598
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DDC ; =0x0000159C
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DE0 ; =0x000015A0
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r7, _021D8DE4 ; =0x000015AC
+ mov r4, #0
+ add r5, r6, #0
+_021D8D7C:
+ ldr r0, [r5, r7]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _021D8D7C
+ mov r7, #0x57
+ mov r5, #0
+ add r4, r6, #0
+ lsl r7, r7, #6
+_021D8D92:
+ ldr r0, [r4, r7]
+ bl FUN_02021A20
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #0xa
+ blt _021D8D92
+ ldr r0, _021D8DE8 ; =0x0000157C
+ ldr r0, [r6, r0]
+ bl FUN_02021A20
+ ldr r0, _021D8DEC ; =0x00001578
+ ldr r0, [r6, r0]
+ bl FUN_0200AB18
+ ldr r0, _021D8DF0 ; =0x00001574
+ ldr r0, [r6, r0]
+ bl FUN_0200A8B8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8DBC: .word 0x000015A8
+_021D8DC0: .word 0x000015A4
+_021D8DC4: .word 0x00001594
+_021D8DC8: .word 0x00001590
+_021D8DCC: .word 0x0000158C
+_021D8DD0: .word 0x00001588
+_021D8DD4: .word 0x00001584
+_021D8DD8: .word 0x00001598
+_021D8DDC: .word 0x0000159C
+_021D8DE0: .word 0x000015A0
+_021D8DE4: .word 0x000015AC
+_021D8DE8: .word 0x0000157C
+_021D8DEC: .word 0x00001578
+_021D8DF0: .word 0x00001574
+ thumb_func_end MOD73_021D8D18
+
+ thumb_func_start MOD73_021D8DF4
+MOD73_021D8DF4: ; 0x021D8DF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, _021D8E7C ; =0x00001428
+ add r4, r1, #0
+ ldr r1, [r7, r0]
+ cmp r1, #1
+ bne _021D8E0C
+ bl FUN_02030F20
+ ldr r1, _021D8E80 ; =0x00001420
+ str r0, [r7, r1]
+ b _021D8E12
+_021D8E0C:
+ mov r1, #1
+ sub r0, #8
+ str r1, [r7, r0]
+_021D8E12:
+ bl FUN_020842D0
+ add r5, r0, #0
+ bl FUN_020842D8
+ add r1, r0, #0
+ ldr r0, [r7]
+ ldr r3, _021D8E7C ; =0x00001428
+ str r0, [sp]
+ ldr r3, [r7, r3]
+ add r0, r5, #0
+ add r2, r7, #0
+ bl MOD73_021D9094
+ ldr r1, _021D8E84 ; =0x00001424
+ str r0, [r7, r1]
+ ldr r0, _021D8E88 ; =0x0000155C
+ mov r1, #4
+ add r0, r7, r0
+ add r2, r1, #0
+ bl Call_FillMemWithValue
+ ldr r0, _021D8E7C ; =0x00001428
+ ldr r0, [r7, r0]
+ cmp r0, #1
+ bne _021D8E70
+ mov r6, #0
+ add r4, r6, #0
+ add r5, r7, #0
+_021D8E4C:
+ add r0, r4, #0
+ bl FUN_0202DFA4
+ ldr r1, _021D8E8C ; =0x00001560
+ str r0, [r5, r1]
+ add r0, r1, #0
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021D8E66
+ ldr r0, _021D8E88 ; =0x0000155C
+ add r1, r7, r6
+ strb r4, [r1, r0]
+ add r6, r6, #1
+_021D8E66:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D8E4C
+ pop {r3, r4, r5, r6, r7, pc}
+_021D8E70:
+ ldr r0, _021D8E88 ; =0x0000155C
+ mov r1, #0
+ strb r1, [r7, r0]
+ add r0, r0, #4
+ str r4, [r7, r0]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D8E7C: .word 0x00001428
+_021D8E80: .word 0x00001420
+_021D8E84: .word 0x00001424
+_021D8E88: .word 0x0000155C
+_021D8E8C: .word 0x00001560
+ thumb_func_end MOD73_021D8DF4
+
+ thumb_func_start MOD73_021D8E90
+MOD73_021D8E90: ; 0x021D8E90
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021D8EA4 ; =0x00001424
+ ldr r0, [r4, r0]
+ bl MOD73_021D90F4
+ ldr r0, _021D8EA4 ; =0x00001424
+ mov r1, #0
+ str r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021D8EA4: .word 0x00001424
+ thumb_func_end MOD73_021D8E90
+
+ thumb_func_start MOD73_021D8EA8
+MOD73_021D8EA8: ; 0x021D8EA8
+ add r0, r3, #0
+ ldr r3, _021D8EB0 ; =MOD73_021D768C
+ mov r1, #3
+ bx r3
+ .align 2, 0
+_021D8EB0: .word MOD73_021D768C
+ thumb_func_end MOD73_021D8EA8
+
+ thumb_func_start MOD73_021D8EB4
+MOD73_021D8EB4: ; 0x021D8EB4
+ add r0, r3, #0
+ ldr r3, _021D8EBC ; =MOD73_021D768C
+ mov r1, #8
+ bx r3
+ .align 2, 0
+_021D8EBC: .word MOD73_021D768C
+ thumb_func_end MOD73_021D8EB4
+
+ thumb_func_start MOD73_021D8EC0
+MOD73_021D8EC0: ; 0x021D8EC0
+ push {r3, r4, r5, lr}
+ ldr r0, _021D8EF4 ; =0x00001498
+ add r5, r1, #0
+ add r4, r3, #0
+ add r1, r2, #0
+ add r0, r4, r0
+ add r2, r5, #0
+ bl memcpy
+ ldr r0, _021D8EF8 ; =0x000014A8
+ mov r1, #0xa
+ add r3, r4, r0
+ add r0, #0x1c
+ add r2, r4, r0
+_021D8EDC:
+ ldrh r0, [r3]
+ add r3, r3, #2
+ strh r0, [r2]
+ add r2, r2, #2
+ sub r1, r1, #1
+ bne _021D8EDC
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD73_021D768C
+ pop {r3, r4, r5, pc}
+ nop
+_021D8EF4: .word 0x00001498
+_021D8EF8: .word 0x000014A8
+ thumb_func_end MOD73_021D8EC0
+
+ thumb_func_start MOD73_021D8EFC
+MOD73_021D8EFC: ; 0x021D8EFC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ ldr r0, _021D8F7C ; =0x00001424
+ add r5, r3, #0
+ ldr r0, [r5, r0]
+ str r1, [sp]
+ str r2, [sp, #4]
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D8F76
+ mov r0, #0x55
+ lsl r0, r0, #6
+ lsl r4, r6, #2
+ add r7, r5, r0
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ add r0, r7, r4
+ bl memcpy
+ ldr r0, _021D8F80 ; =0x00001550
+ mov r2, #1
+ add r1, r5, r6
+ strb r2, [r1, r0]
+ ldr r1, [r7, r4]
+ add r2, r5, r4
+ sub r0, #0xf0
+ str r1, [r2, r0]
+ mov r0, #0
+ ldr r1, _021D8F80 ; =0x00001550
+ add r3, r0, #0
+_021D8F3C:
+ add r2, r5, r3
+ ldrb r2, [r2, r1]
+ cmp r2, #1
+ bne _021D8F46
+ add r0, r0, #1
+_021D8F46:
+ add r3, r3, #1
+ cmp r3, #4
+ blt _021D8F3C
+ ldr r1, _021D8F84 ; =0x00001420
+ ldr r2, [r5, r1]
+ cmp r0, r2
+ blt _021D8F76
+ mov r0, #0xba
+ lsl r0, r0, #2
+ add r1, #0x50
+ add r0, r5, r0
+ add r1, r5, r1
+ bl MOD73_021DB994
+ bl MOD73_021D9084
+ ldr r3, _021D8F88 ; =0x00001460
+ add r2, r0, #0
+ add r1, r5, r3
+ sub r3, #0x3c
+ ldr r3, [r5, r3]
+ mov r0, #0x18
+ bl MOD73_021D90D0
+_021D8F76:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8F7C: .word 0x00001424
+_021D8F80: .word 0x00001550
+_021D8F84: .word 0x00001420
+_021D8F88: .word 0x00001460
+ thumb_func_end MOD73_021D8EFC
+
+ thumb_func_start MOD73_021D8F8C
+MOD73_021D8F8C: ; 0x021D8F8C
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, _021D8FA4 ; =0x000014BC
+ add r3, r3, r1
+ mov r1, #0x1c
+ mul r1, r0
+ add r0, r3, r1
+ add r1, r2, #0
+ add r2, r4, #0
+ bl memcpy
+ pop {r4, pc}
+ .align 2, 0
+_021D8FA4: .word 0x000014BC
+ thumb_func_end MOD73_021D8F8C
+
+ thumb_func_start MOD73_021D8FA8
+MOD73_021D8FA8: ; 0x021D8FA8
+ push {r3, r4, r5, lr}
+ ldr r0, _021D8FC4 ; =0x00001484
+ add r5, r1, #0
+ add r4, r3, #0
+ add r1, r2, #0
+ add r0, r4, r0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r4, #0
+ mov r1, #0xa
+ bl MOD73_021D768C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8FC4: .word 0x00001484
+ thumb_func_end MOD73_021D8FA8
+
+ thumb_func_start MOD73_021D8FC8
+MOD73_021D8FC8: ; 0x021D8FC8
+ push {r4, lr}
+ ldr r0, _021D8FDC ; =0x0000152C
+ add r4, r1, #0
+ ldr r0, [r3, r0]
+ add r1, r2, #0
+ add r2, r4, #0
+ bl memcpy
+ pop {r4, pc}
+ nop
+_021D8FDC: .word 0x0000152C
+ thumb_func_end MOD73_021D8FC8
+
+ thumb_func_start MOD73_021D8FE0
+MOD73_021D8FE0: ; 0x021D8FE0
+ push {r3, r4, r5, lr}
+ ldr r0, _021D8FFC ; =0x00001571
+ add r5, r1, #0
+ add r4, r3, #0
+ add r1, r2, #0
+ add r0, r4, r0
+ add r2, r5, #0
+ bl memcpy
+ add r0, r4, #0
+ mov r1, #0xc
+ bl MOD73_021D768C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D8FFC: .word 0x00001571
+ thumb_func_end MOD73_021D8FE0
+
+ thumb_func_start MOD73_021D9000
+MOD73_021D9000: ; 0x021D9000
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _021D906C ; =0x00001424
+ add r4, r3, #0
+ ldr r0, [r4, r0]
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD73_021D910C
+ cmp r0, #0
+ bne _021D906A
+ ldr r0, _021D9070 ; =0x00001554
+ add r1, r7, #0
+ add r0, r4, r0
+ add r0, r0, r5
+ add r2, r6, #0
+ bl memcpy
+ ldr r0, _021D9074 ; =0x00001558
+ add r1, r4, r5
+ mov r2, #1
+ strb r2, [r1, r0]
+ add r6, sp, #0
+ mov r3, #0
+ strb r2, [r6]
+ add r2, r3, #0
+ sub r7, r0, #4
+ add r5, r0, #0
+_021D9038:
+ add r1, r4, r2
+ ldrb r0, [r1, r5]
+ cmp r0, #1
+ bne _021D904A
+ ldrb r0, [r6]
+ ldrb r1, [r1, r7]
+ add r3, r3, #1
+ and r0, r1
+ strb r0, [r6]
+_021D904A:
+ add r2, r2, #1
+ cmp r2, #4
+ blt _021D9038
+ ldr r0, _021D9078 ; =0x00001420
+ ldr r0, [r4, r0]
+ cmp r3, r0
+ blt _021D906A
+ bl MOD73_021D9080
+ ldr r3, _021D906C ; =0x00001424
+ add r2, r0, #0
+ ldr r3, [r4, r3]
+ mov r0, #0x1d
+ add r1, sp, #0
+ bl MOD73_021D90D0
+_021D906A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D906C: .word 0x00001424
+_021D9070: .word 0x00001554
+_021D9074: .word 0x00001558
+_021D9078: .word 0x00001420
+ thumb_func_end MOD73_021D9000
+
+ thumb_func_start MOD73_021D907C
+MOD73_021D907C: ; 0x021D907C
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD73_021D907C
+
+ thumb_func_start MOD73_021D9080
+MOD73_021D9080: ; 0x021D9080
+ mov r0, #1
+ bx lr
+ thumb_func_end MOD73_021D9080
+
+ thumb_func_start MOD73_021D9084
+MOD73_021D9084: ; 0x021D9084
+ mov r0, #0x24
+ bx lr
+ thumb_func_end MOD73_021D9084
+
+ thumb_func_start MOD73_021D9088
+MOD73_021D9088: ; 0x021D9088
+ mov r0, #4
+ bx lr
+ thumb_func_end MOD73_021D9088
+
+ thumb_func_start MOD73_021D908C
+MOD73_021D908C: ; 0x021D908C
+ mov r0, #0x1c
+ bx lr
+ thumb_func_end MOD73_021D908C
+
+ thumb_func_start MOD73_021D9090
+MOD73_021D9090: ; 0x021D9090
+ mov r0, #0x14
+ bx lr
+ thumb_func_end MOD73_021D9090
+
+ thumb_func_start MOD73_021D9094
+MOD73_021D9094: ; 0x021D9094
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ ldr r0, [sp, #0x18]
+ mov r1, #8
+ str r2, [sp]
+ add r5, r3, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ mov r0, #0
+ str r5, [r4]
+ str r0, [r4, #4]
+ cmp r5, #1
+ bne _021D90BE
+ ldr r2, [sp]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl FUN_0202D8D0
+ b _021D90CC
+_021D90BE:
+ ldr r2, [sp]
+ ldr r3, [sp, #0x18]
+ add r0, r6, #0
+ add r1, r7, #0
+ bl MOD73_021D9120
+ str r0, [r4, #4]
+_021D90CC:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D9094
+
+ thumb_func_start MOD73_021D90D0
+MOD73_021D90D0: ; 0x021D90D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r3, #0
+ ldr r3, [r6]
+ add r5, r0, #0
+ add r4, r1, #0
+ add r7, r2, #0
+ cmp r3, #1
+ bne _021D90E6
+ bl FUN_02030ADC
+ pop {r3, r4, r5, r6, r7, pc}
+_021D90E6:
+ ldr r0, [r6, #4]
+ add r1, r5, #0
+ add r2, r4, #0
+ add r3, r7, #0
+ bl MOD73_021D91D4
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D90D0
+
+ thumb_func_start MOD73_021D90F4
+MOD73_021D90F4: ; 0x021D90F4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _021D9104
+ ldr r0, [r4, #4]
+ bl MOD73_021D91BC
+_021D9104:
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD73_021D90F4
+
+ thumb_func_start MOD73_021D910C
+MOD73_021D910C: ; 0x021D910C
+ push {r3, lr}
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021D911A
+ bl FUN_02031190
+ pop {r3, pc}
+_021D911A:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D910C
+
+ thumb_func_start MOD73_021D9120
+MOD73_021D9120: ; 0x021D9120
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r1, #0x1b
+ add r5, r0, #0
+ add r0, r3, #0
+ lsl r1, r1, #4
+ add r7, r2, #0
+ bl FUN_02016998
+ mov r2, #0x1b
+ mov r1, #0
+ lsl r2, r2, #4
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ mov r1, #0x1a
+ lsl r1, r1, #4
+ str r5, [r4, r1]
+ add r0, r1, #4
+ str r6, [r4, r0]
+ add r1, #8
+ str r7, [r4, r1]
+ ldr r0, _021D9160 ; =MOD73_021D9168
+ ldr r2, _021D9164 ; =0x00001388
+ add r1, r4, #0
+ bl FUN_0200CA98
+ mov r1, #0x6b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D9160: .word MOD73_021D9168
+_021D9164: .word 0x00001388
+ thumb_func_end MOD73_021D9120
+
+ thumb_func_start MOD73_021D9168
+MOD73_021D9168: ; 0x021D9168
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r1, #0
+ mov r0, #0
+ str r0, [sp]
+ add r6, r7, #0
+_021D9174:
+ ldr r0, [r6]
+ cmp r0, #1
+ bne _021D91AA
+ mov r4, #0x1a
+ lsl r4, r4, #4
+ ldr r4, [r7, r4]
+ mov r3, #0x6a
+ mov ip, r4
+ ldr r4, [r6, #4]
+ mov r5, #0xc
+ mul r5, r4
+ str r5, [sp, #4]
+ lsl r3, r3, #2
+ add r2, r6, #0
+ ldr r4, [sp, #4]
+ mov r5, ip
+ ldr r1, [r6, #0x30]
+ ldr r3, [r7, r3]
+ ldr r4, [r5, r4]
+ mov r0, #0
+ add r2, #8
+ blx r4
+ add r0, r6, #0
+ mov r1, #0
+ mov r2, #0x34
+ bl Call_FillMemWithValue
+_021D91AA:
+ ldr r0, [sp]
+ add r6, #0x34
+ add r0, r0, #1
+ str r0, [sp]
+ cmp r0, #8
+ blt _021D9174
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9168
+
+ thumb_func_start MOD73_021D91BC
+MOD73_021D91BC: ; 0x021D91BC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x6b
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D91BC
+
+ thumb_func_start MOD73_021D91D4
+MOD73_021D91D4: ; 0x021D91D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ mov r4, #0
+ str r2, [sp]
+ add r7, r1, #0
+ add r5, r3, #0
+ add r0, r4, #0
+ add r2, r6, #0
+_021D91E4:
+ ldr r1, [r2]
+ cmp r1, #0
+ bne _021D91F2
+ mov r1, #0x34
+ mul r1, r0
+ add r4, r6, r1
+ b _021D91FA
+_021D91F2:
+ add r0, r0, #1
+ add r2, #0x34
+ cmp r0, #8
+ blt _021D91E4
+_021D91FA:
+ cmp r4, #0
+ bne _021D9202
+ bl ErrorHandling
+_021D9202:
+ mov r0, #0x1a
+ lsl r0, r0, #4
+ add r1, r7, #0
+ ldr r2, [r6, r0]
+ sub r1, #0x16
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldr r0, [r0, #4]
+ blx r0
+ cmp r0, r5
+ beq _021D921E
+ bl ErrorHandling
+_021D921E:
+ cmp r5, #0x26
+ blt _021D9226
+ bl ErrorHandling
+_021D9226:
+ sub r7, #0x16
+ str r7, [r4, #4]
+ cmp r5, #0
+ ble _021D923A
+ add r0, r4, #0
+ ldr r1, [sp]
+ add r0, #8
+ add r2, r5, #0
+ bl memcpy
+_021D923A:
+ str r5, [r4, #0x30]
+ mov r0, #1
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D91D4
+
+ thumb_func_start MOD73_021D9244
+MOD73_021D9244: ; 0x021D9244
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, r2, #0
+ mov r2, #0
+ bl FUN_02002E14
+ lsr r0, r0, #1
+ sub r0, r4, r0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9244
+
+ thumb_func_start MOD73_021D9258
+MOD73_021D9258: ; 0x021D9258
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ str r2, [sp]
+ mov r0, #0x7a
+ mov r2, #0
+ add r3, sp, #4
+ bl FUN_02006BB0
+ add r4, r0, #0
+ ldr r0, [sp, #4]
+ str r5, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, sp, #8
+ bl FUN_02013D98
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9258
+
+ thumb_func_start MOD73_021D9288
+MOD73_021D9288: ; 0x021D9288
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r3, r2, #0
+ mov r0, #0x7a
+ add r2, sp, #0
+ bl FUN_02006C08
+ add r4, r0, #0
+ ldr r0, [sp]
+ str r5, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ add r0, sp, #4
+ bl FUN_02013E14
+ add r5, r0, #0
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021D9288
+
+ thumb_func_start MOD73_021D92B8
+MOD73_021D92B8: ; 0x021D92B8
+ push {r4, lr}
+ sub sp, #0x20
+ str r0, [sp]
+ str r1, [sp, #4]
+ str r2, [sp, #8]
+ add r0, sp, #0
+ ldr r1, [sp, #0x28]
+ strh r3, [r0, #0xc]
+ strh r1, [r0, #0xe]
+ mov r2, #0
+ strh r2, [r0, #0x10]
+ mov r1, #0x1f
+ str r1, [sp, #0x14]
+ ldr r1, [sp, #0x2c]
+ str r1, [sp, #0x18]
+ strh r2, [r0, #0x1c]
+ add r0, sp, #0
+ bl FUN_02013E84
+ mov r1, #0
+ add r4, r0, #0
+ bl FUN_02013EB0
+ add r0, r4, #0
+ add sp, #0x20
+ pop {r4, pc}
+ thumb_func_end MOD73_021D92B8
+
+ thumb_func_start MOD73_021D92EC
+MOD73_021D92EC: ; 0x021D92EC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r6, r3, #0
+ add r7, r2, #0
+ add r1, r5, #4
+ add r2, r6, #0
+ bl FUN_02008C9C
+ str r0, [r5]
+ mov r4, #0
+_021D9302:
+ add r0, r7, #0
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_02008DEC
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D9302
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D92EC
+
+ thumb_func_start MOD73_021D931C
+MOD73_021D931C: ; 0x021D931C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_0201FD58
+ mov r4, #0
+ mov r6, #0x4b
+ str r4, [r5]
+ lsl r6, r6, #2
+_021D932E:
+ ldr r0, [r5, r6]
+ bl FUN_02008E2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D932E
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D931C
+
+ thumb_func_start MOD73_021D9340
+MOD73_021D9340: ; 0x021D9340
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x34
+ ldr r6, [sp, #0x58]
+ add r5, r0, #0
+ ldr r7, [sp, #0x5c]
+ str r6, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r7, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r4, r1, #0
+ str r3, [sp, #0x30]
+ str r2, [sp, #0x2c]
+ add r1, r2, #0
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x4c]
+ mov r3, #0
+ bl FUN_02008F90
+ str r0, [r4]
+ str r6, [sp]
+ mov r1, #1
+ ldr r0, [sp, #0x48]
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r7, [sp, #0xc]
+ mov r0, #0x13
+ str r1, [sp, #0x10]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x30]
+ mov r3, #0
+ bl FUN_0200904C
+ str r0, [r4, #4]
+ mov r3, #0
+ str r3, [r4, #0x10]
+ str r6, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4d
+ str r7, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x50]
+ bl FUN_020090AC
+ str r0, [r4, #8]
+ str r6, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ str r7, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x54]
+ mov r3, #0
+ bl FUN_020090AC
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl FUN_02009B78
+ cmp r0, #0
+ bne _021D93D0
+ bl ErrorHandling
+_021D93D0:
+ ldr r0, [r4]
+ bl FUN_02009474
+ ldr r0, [r4, #4]
+ bl FUN_02009D68
+ cmp r0, #0
+ bne _021D93E4
+ bl ErrorHandling
+_021D93E4:
+ ldr r0, [r4, #4]
+ bl FUN_02009474
+ mov r0, #0
+ mov r2, #0x4b
+ str r6, [sp]
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r2, r2, #2
+ ldr r1, [r5, r2]
+ add r4, #0x14
+ str r1, [sp, #0x14]
+ add r1, r2, #4
+ ldr r1, [r5, r1]
+ add r3, r6, #0
+ str r1, [sp, #0x18]
+ add r1, r2, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ add r2, #0xc
+ str r1, [sp, #0x1c]
+ ldr r1, [r5, r2]
+ add r2, r6, #0
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_02008AA4
+ add sp, #0x34
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D9340
+
+ thumb_func_start MOD73_021D942C
+MOD73_021D942C: ; 0x021D942C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x38
+ ldr r6, [sp, #0x5c]
+ add r5, r0, #0
+ ldr r7, [sp, #0x60]
+ str r6, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r7, [sp, #8]
+ str r0, [sp, #0xc]
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ add r4, r1, #0
+ str r3, [sp, #0x30]
+ str r2, [sp, #0x2c]
+ add r1, r2, #0
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x50]
+ mov r3, #0
+ bl FUN_02008F90
+ str r0, [r4]
+ ldr r0, [sp, #0x30]
+ str r0, [r4, #4]
+ mov r0, #1
+ str r0, [r4, #0x10]
+ ldr r0, [sp, #0x30]
+ bl FUN_02009530
+ str r0, [sp, #0x34]
+ str r6, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #0x4d
+ str r7, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x54]
+ mov r3, #0
+ bl FUN_020090AC
+ str r0, [r4, #8]
+ str r6, [sp]
+ mov r0, #3
+ str r0, [sp, #4]
+ mov r0, #0x4e
+ str r7, [sp, #8]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [sp, #0x2c]
+ ldr r2, [sp, #0x58]
+ mov r3, #0
+ bl FUN_020090AC
+ str r0, [r4, #0xc]
+ ldr r0, [r4]
+ bl FUN_02009B78
+ cmp r0, #0
+ bne _021D94AA
+ bl ErrorHandling
+_021D94AA:
+ ldr r0, [r4]
+ bl FUN_02009474
+ mov r0, #0
+ mov r2, #0x4b
+ str r6, [sp]
+ mvn r0, r0
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ lsl r2, r2, #2
+ ldr r1, [r5, r2]
+ add r4, #0x14
+ str r1, [sp, #0x14]
+ add r1, r2, #4
+ ldr r1, [r5, r1]
+ add r3, r6, #0
+ str r1, [sp, #0x18]
+ add r1, r2, #0
+ add r1, #8
+ ldr r1, [r5, r1]
+ add r2, #0xc
+ str r1, [sp, #0x1c]
+ ldr r1, [r5, r2]
+ ldr r2, [sp, #0x34]
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl FUN_02008AA4
+ add sp, #0x38
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D942C
+
+ thumb_func_start MOD73_021D94F4
+MOD73_021D94F4: ; 0x021D94F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r0, [r7]
+ bl FUN_02009C0C
+ ldr r0, [r7, #0x10]
+ cmp r0, #0
+ bne _021D950C
+ ldr r0, [r7, #4]
+ bl FUN_02009E04
+_021D950C:
+ mov r6, #0
+ add r4, r7, #0
+_021D9510:
+ cmp r6, #1
+ beq _021D9522
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r4]
+ bl FUN_02009490
+ b _021D9534
+_021D9522:
+ ldr r0, [r7, #0x10]
+ cmp r0, #0
+ bne _021D9534
+ mov r0, #0x4b
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r4]
+ bl FUN_02009490
+_021D9534:
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #4
+ cmp r6, #4
+ blt _021D9510
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D94F4
+
+ thumb_func_start MOD73_021D9540
+MOD73_021D9540: ; 0x021D9540
+ push {r4, lr}
+ sub sp, #0x20
+ ldr r0, [r0]
+ add r1, #0x14
+ str r0, [sp]
+ ldr r0, [sp, #0x28]
+ str r1, [sp, #4]
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x2c]
+ str r2, [sp, #8]
+ str r0, [sp, #0x14]
+ mov r0, #1
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #0x30]
+ str r3, [sp, #0xc]
+ str r0, [sp, #0x1c]
+ add r0, sp, #0
+ bl FUN_0201FF84
+ add r4, r0, #0
+ bne _021D956E
+ bl ErrorHandling
+_021D956E:
+ add r0, r4, #0
+ add sp, #0x20
+ pop {r4, pc}
+ thumb_func_end MOD73_021D9540
+
+ thumb_func_start MOD73_021D9574
+MOD73_021D9574: ; 0x021D9574
+ str r1, [r0]
+ str r1, [r0, #4]
+ sub r1, r2, r1
+ str r1, [r0, #8]
+ str r3, [r0, #0x10]
+ mov r1, #0
+ str r1, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD73_021D9574
+
+ thumb_func_start MOD73_021D9584
+MOD73_021D9584: ; 0x021D9584
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r2, [r4, #0xc]
+ ldr r0, [r4, #8]
+ lsl r2, r2, #0xc
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ ldr r1, [r4, #0x10]
+ lsl r1, r1, #0xc
+ bl FX_Div
+ ldr r1, [r4, #4]
+ add r0, r0, r1
+ str r0, [r4]
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ add r0, r0, #1
+ cmp r0, r1
+ bgt _021D95C4
+ str r0, [r4, #0xc]
+ mov r0, #0
+ pop {r4, pc}
+_021D95C4:
+ str r1, [r4, #0xc]
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9584
+
+ thumb_func_start MOD73_021D95CC
+MOD73_021D95CC: ; 0x021D95CC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [sp, #0x18]
+ add r5, r0, #0
+ add r7, r2, #0
+ add r0, r3, #0
+ add r6, r1, #0
+ lsl r2, r4, #0xc
+ str r3, [sp]
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ add r2, r0, #0
+ sub r0, r7, r6
+ mov r7, #2
+ mov r3, #0
+ lsl r7, r7, #0xa
+ add r2, r2, r7
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ sub r2, r0, r2
+ asr r1, r2, #0x1f
+ lsr r0, r2, #0x13
+ lsl r1, r1, #0xd
+ orr r1, r0
+ lsl r0, r2, #0xd
+ add r0, r0, r7
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ add r1, r4, #0
+ mul r1, r4
+ lsl r1, r1, #0xc
+ bl FX_Div
+ str r6, [r5]
+ ldr r1, [sp]
+ str r6, [r5, #4]
+ str r1, [r5, #8]
+ str r0, [r5, #0xc]
+ mov r0, #0
+ str r0, [r5, #0x10]
+ str r4, [r5, #0x14]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D95CC
+
+ thumb_func_start MOD73_021D962C
+MOD73_021D962C: ; 0x021D962C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r6, [r5, #0x10]
+ ldr r0, [r5, #8]
+ lsl r2, r6, #0xc
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r2, r0, r2
+ adc r1, r3
+ lsr r4, r2, #0xc
+ lsl r0, r1, #0x14
+ add r2, r6, #0
+ orr r4, r0
+ ldr r0, [r5, #0xc]
+ mul r2, r6
+ lsl r2, r2, #0xc
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ lsl r1, r2, #2
+ bl FX_Div
+ ldr r1, [r5, #4]
+ add r0, r4, r0
+ add r0, r1, r0
+ str r0, [r5]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5, #0x14]
+ add r0, r0, #1
+ cmp r0, r1
+ bgt _021D968C
+ str r0, [r5, #0x10]
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_021D968C:
+ str r1, [r5, #0x10]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D962C
+
+ thumb_func_start MOD73_021D9694
+MOD73_021D9694: ; 0x021D9694
+ push {r4}
+ sub sp, #0xc
+ str r2, [sp, #4]
+ str r3, [sp, #8]
+ add r2, sp, #0
+ add r4, r0, #0
+ str r1, [sp]
+ ldmia r2!, {r0, r1}
+ stmia r4!, {r0, r1}
+ ldr r0, [r2]
+ str r0, [r4]
+ add sp, #0xc
+ pop {r4}
+ bx lr
+ thumb_func_end MOD73_021D9694
+
+ thumb_func_start MOD73_021D96B0
+MOD73_021D96B0: ; 0x021D96B0
+ push {r3, r4, r5, lr}
+ mov r2, #0x1f
+ add r4, r1, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ add r5, r0, #0
+ bl Call_FillMemWithValue
+ mov r0, #0x42
+ lsl r0, r0, #2
+ str r4, [r5, r0]
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021D96B0
+
+ thumb_func_start MOD73_021D96C8
+MOD73_021D96C8: ; 0x021D96C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D96D6
+ bl ErrorHandling
+_021D96D6:
+ mov r2, #0x1f
+ add r0, r4, #0
+ mov r1, #0
+ lsl r2, r2, #4
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ thumb_func_end MOD73_021D96C8
+
+ thumb_func_start MOD73_021D96E4
+MOD73_021D96E4: ; 0x021D96E4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x2c
+ str r0, [sp, #0x18]
+ ldr r4, [sp, #0x18]
+ mov r0, #0
+ ldr r6, [sp, #0x40]
+ ldr r5, [sp, #0x18]
+ str r1, [sp, #0x1c]
+ add r7, r2, #0
+ str r3, [sp, #0x20]
+ str r0, [sp, #0x24]
+ str r0, [sp, #0x28]
+ add r4, #0x28
+_021D96FE:
+ ldr r0, [sp, #0x1c]
+ ldr r3, [r0]
+ cmp r3, #0
+ beq _021D977A
+ mov r0, #1
+ str r0, [sp]
+ add r0, r3, #0
+ sub r0, #0x8f
+ str r0, [sp, #4]
+ mov r0, #5
+ str r0, [sp, #8]
+ mov r0, #4
+ str r0, [sp, #0xc]
+ mov r0, #0xfa
+ ldr r1, [sp, #0x28]
+ lsl r0, r0, #2
+ add r0, r1, r0
+ str r0, [sp, #0x10]
+ add r0, r7, #0
+ add r1, r4, #0
+ mov r2, #0x35
+ sub r3, #0x4f
+ str r6, [sp, #0x14]
+ bl MOD73_021D9340
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r2, #0
+ add r0, r7, #0
+ add r1, r4, #0
+ add r3, r2, #0
+ str r6, [sp, #8]
+ bl MOD73_021D9540
+ mov r1, #0
+ str r0, [r5, #8]
+ bl FUN_020200A0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r1, [sp, #0x20]
+ str r6, [sp, #8]
+ add r0, r7, #0
+ add r3, r2, #0
+ bl MOD73_021D9540
+ str r0, [r5, #0x18]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #0x18]
+ mov r1, #1
+ bl FUN_02020130
+ ldr r0, [sp, #0x24]
+ add r4, #0x38
+ add r0, r0, #1
+ add r5, r5, #4
+ str r0, [sp, #0x24]
+_021D977A:
+ mov r0, #0x42
+ ldr r1, [sp, #0x18]
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ ldr r0, [sp, #0x24]
+ cmp r1, r0
+ beq _021D9798
+ ldr r0, [sp, #0x1c]
+ add r0, r0, #4
+ str r0, [sp, #0x1c]
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, #4
+ blt _021D96FE
+_021D9798:
+ ldr r0, [sp, #0x18]
+ mov r1, #1
+ str r1, [r0]
+ add sp, #0x2c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D96E4
+
+ thumb_func_start MOD73_021D97A4
+MOD73_021D97A4: ; 0x021D97A4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ ldr r0, [r7]
+ str r1, [sp]
+ cmp r0, #1
+ beq _021D97B4
+ bl ErrorHandling
+_021D97B4:
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ mov r4, #0
+ cmp r0, #0
+ ble _021D97EA
+ add r6, r7, #0
+ add r5, r7, #0
+ add r6, #0x28
+_021D97C6:
+ ldr r0, [r5, #8]
+ bl FUN_0201FFC8
+ ldr r0, [r5, #0x18]
+ bl FUN_0201FFC8
+ ldr r0, [sp]
+ add r1, r6, #0
+ bl MOD73_021D94F4
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r7, r0]
+ add r4, r4, #1
+ add r5, r5, #4
+ add r6, #0x38
+ cmp r4, r0
+ blt _021D97C6
+_021D97EA:
+ mov r0, #0
+ str r0, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D97A4
+
+ thumb_func_start MOD73_021D97F0
+MOD73_021D97F0: ; 0x021D97F0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ str r0, [sp, #4]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _021D9800
+ bl ErrorHandling
+_021D9800:
+ mov r0, #0
+ str r0, [sp, #0xc]
+ mov r2, #0x42
+ ldr r0, [sp, #4]
+ lsl r2, r2, #2
+ ldr r0, [r0, r2]
+ cmp r0, #0
+ ble _021D98A0
+ ldr r0, [sp, #4]
+ add r1, r2, #4
+ add r0, r0, r1
+ str r0, [sp, #8]
+ ldr r0, [sp, #4]
+ add r2, #0x64
+ ldr r4, _021D98B4 ; =0x021DBE2C
+ add r7, r0, r2
+ add r6, r0, #0
+ add r5, r0, #0
+_021D9824:
+ ldrb r0, [r4, #0x10]
+ mov r1, #8
+ mov r2, #0xa
+ str r0, [sp]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r0, [sp, #8]
+ ldr r3, [r4]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD73_021D95CC
+ ldrb r0, [r4, #0x10]
+ mov r1, #0xc
+ mov r2, #0xe
+ str r0, [sp]
+ ldrsh r1, [r4, r1]
+ ldrsh r2, [r4, r2]
+ ldr r3, [r4, #4]
+ add r0, r7, #0
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD73_021D95CC
+ mov r1, #0x43
+ mov r2, #0x5b
+ lsl r1, r1, #2
+ lsl r2, r2, #2
+ ldr r1, [r6, r1]
+ ldr r2, [r6, r2]
+ add r0, sp, #0x10
+ mov r3, #0
+ bl MOD73_021D9694
+ ldr r0, [r5, #8]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ mov r0, #0x73
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldrb r1, [r4, #0x11]
+ add r0, #0x10
+ add r4, #0x14
+ str r1, [r5, r0]
+ ldr r0, [sp, #8]
+ ldr r1, [sp, #4]
+ add r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [sp, #0xc]
+ add r7, #0x18
+ add r0, r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r1, [r1, r0]
+ ldr r0, [sp, #0xc]
+ add r6, #0x18
+ add r5, r5, #4
+ cmp r0, r1
+ blt _021D9824
+_021D98A0:
+ mov r1, #0x7b
+ ldr r0, [sp, #4]
+ mov r2, #0
+ lsl r1, r1, #2
+ str r2, [r0, r1]
+ mov r1, #1
+ str r1, [r0, #4]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D98B4: .word 0x021DBE2C
+ thumb_func_end MOD73_021D97F0
+
+ thumb_func_start MOD73_021D98B8
+MOD73_021D98B8: ; 0x021D98B8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ mov r0, #0
+ str r0, [sp, #4]
+ ldr r0, [r6, #4]
+ cmp r0, #0
+ bne _021D98CE
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D98CE:
+ mov r0, #0x7b
+ lsl r0, r0, #2
+ add r1, r0, #0
+ sub r1, #0xe4
+ ldr r2, [r6, r0]
+ ldr r1, [r6, r1]
+ cmp r2, r1
+ bge _021D991E
+ add r1, r0, #0
+ sub r1, #0x10
+ add r1, r6, r1
+ lsl r3, r2, #2
+ ldr r2, [r1, r3]
+ sub r2, r2, #1
+ str r2, [r1, r3]
+ ldr r1, [r6, r0]
+ lsl r1, r1, #2
+ add r2, r6, r1
+ add r1, r0, #0
+ sub r1, #0x10
+ ldr r1, [r2, r1]
+ cmp r1, #0
+ bgt _021D991E
+ add r3, r0, #0
+ mov r1, #1
+ sub r3, #0x20
+ str r1, [r2, r3]
+ ldr r0, [r6, r0]
+ lsl r0, r0, #2
+ add r0, r6, r0
+ ldr r0, [r0, #8]
+ bl FUN_020200A0
+ mov r1, #0x7b
+ lsl r1, r1, #2
+ ldr r2, [r6, r1]
+ add r0, r2, #2
+ str r0, [sp, #4]
+ add r0, r2, #1
+ str r0, [r6, r1]
+_021D991E:
+ mov r1, #0x42
+ mov r0, #0
+ lsl r1, r1, #2
+ str r0, [sp, #8]
+ ldr r0, [r6, r1]
+ cmp r0, #0
+ ble _021D9A02
+ add r0, r1, #4
+ add r0, r6, r0
+ add r1, #0x64
+ add r4, r6, #0
+ str r0, [sp]
+ add r7, r6, r1
+ add r5, r6, #0
+_021D993A:
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #3
+ bhi _021D99E0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021D9950: ; jump table
+ .short _021D99E4 - _021D9950 - 2 ; case 0
+ .short _021D9958 - _021D9950 - 2 ; case 1
+ .short _021D99BE - _021D9950 - 2 ; case 2
+ .short _021D99E4 - _021D9950 - 2 ; case 3
+_021D9958:
+ ldr r0, [sp]
+ bl MOD73_021D962C
+ str r0, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD73_021D962C
+ mov r1, #0x43
+ mov r2, #0x5b
+ lsl r1, r1, #2
+ lsl r2, r2, #2
+ ldr r1, [r5, r1]
+ ldr r2, [r5, r2]
+ add r0, sp, #0x10
+ mov r3, #0
+ bl MOD73_021D9694
+ ldr r0, [r4, #8]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [sp, #0xc]
+ cmp r0, #1
+ bne _021D99E4
+ ldr r0, [r4, #0x18]
+ add r1, sp, #0x10
+ bl FUN_02020044
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #0x18]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, _021D9A24 ; =0x000006BC
+ bl FUN_020054C8
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r0, #1
+ mov r0, #0x73
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _021D99E4
+_021D99BE:
+ ldr r0, [r4, #0x18]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021D99E4
+ ldr r0, [r4, #0x18]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ add r1, r0, #1
+ mov r0, #0x73
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ b _021D99E4
+_021D99E0:
+ bl ErrorHandling
+_021D99E4:
+ ldr r0, [sp]
+ add r4, r4, #4
+ add r0, #0x18
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ add r7, #0x18
+ add r0, r0, #1
+ str r0, [sp, #8]
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r6, r0]
+ ldr r1, [sp, #8]
+ add r5, #0x18
+ cmp r1, r0
+ blt _021D993A
+_021D9A02:
+ sub r0, r0, #1
+ lsl r0, r0, #2
+ add r1, r6, r0
+ mov r0, #0x73
+ lsl r0, r0, #2
+ ldr r0, [r1, r0]
+ cmp r0, #3
+ bne _021D9A1C
+ mov r0, #0
+ str r0, [r6, #4]
+ add sp, #0x1c
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021D9A1C:
+ ldr r0, [sp, #4]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D9A24: .word 0x000006BC
+ thumb_func_end MOD73_021D98B8
+
+ thumb_func_start MOD73_021D9A28
+MOD73_021D9A28: ; 0x021D9A28
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #0x34
+ add r7, r3, #0
+ bl Call_FillMemWithValue
+ str r6, [r5, #0x18]
+ ldr r0, [sp, #0x1c]
+ str r4, [r5, #0x14]
+ str r0, [r5]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #0x1c]
+ str r0, [r5, #0x10]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9A28
+
+ thumb_func_start MOD73_021D9A4C
+MOD73_021D9A4C: ; 0x021D9A4C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #0
+ beq _021D9A5A
+ bl ErrorHandling
+_021D9A5A:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x34
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9A4C
+
+ thumb_func_start MOD73_021D9A68
+MOD73_021D9A68: ; 0x021D9A68
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x30]
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r0, #0
+ beq _021D9A7A
+ bl ErrorHandling
+_021D9A7A:
+ add r0, r5, #0
+ add r1, r6, #0
+ str r4, [r5, #4]
+ bl MOD73_021D9BE0
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD73_021D9CA0
+ mov r0, #1
+ str r0, [r5, #0x30]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9A68
+
+ thumb_func_start MOD73_021D9A94
+MOD73_021D9A94: ; 0x021D9A94
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x30]
+ cmp r0, #1
+ beq _021D9AA2
+ bl ErrorHandling
+_021D9AA2:
+ add r0, r4, #0
+ bl MOD73_021D9C7C
+ add r0, r4, #0
+ bl MOD73_021D9D48
+ mov r0, #0
+ str r0, [r4, #0x30]
+ pop {r4, pc}
+ thumb_func_end MOD73_021D9A94
+
+ thumb_func_start MOD73_021D9AB4
+MOD73_021D9AB4: ; 0x021D9AB4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02019570
+ ldr r0, [r4, #4]
+ mov r1, #4
+ bl FUN_02018744
+ pop {r4, pc}
+ thumb_func_end MOD73_021D9AB4
+
+ thumb_func_start MOD73_021D9AC8
+MOD73_021D9AC8: ; 0x021D9AC8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r1, [r4, #0x18]
+ mov r2, #0
+ ldr r0, [r4, #8]
+ ldr r1, [r1, #0xc]
+ add r3, r2, #0
+ bl MOD73_021D9D5C
+ mov r1, #0
+ ldr r0, [r4, #8]
+ mov r2, #1
+ add r3, r1, #0
+ bl FUN_0200D0BC
+ pop {r4, pc}
+ thumb_func_end MOD73_021D9AC8
+
+ thumb_func_start MOD73_021D9AF0
+MOD73_021D9AF0: ; 0x021D9AF0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ ldr r0, [r5, #0x14]
+ cmp r0, #1
+ beq _021D9BDC
+ mov r4, #0
+ cmp r0, #0
+ ble _021D9BCE
+_021D9B02:
+ lsr r2, r4, #0x1f
+ lsl r1, r4, #0x1f
+ sub r1, r1, r2
+ mov r0, #0x1f
+ ror r1, r0
+ add r1, r2, r1
+ add r2, r4, r2
+ asr r2, r2, #1
+ mov r0, #0xc
+ add r6, r1, #0
+ mul r6, r0
+ lsl r0, r2, #2
+ add r2, r2, r0
+ str r2, [sp, #0x1c]
+ mov r2, #0xa
+ str r2, [sp]
+ mov r2, #4
+ str r2, [sp, #4]
+ ldr r2, [r5, #0x2c]
+ lsl r0, r0, #0x18
+ add r2, #0xc
+ str r2, [sp, #8]
+ mov r2, #0xa
+ mul r2, r1
+ lsl r1, r2, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp, #0xc]
+ lsr r0, r0, #0x18
+ ldr r3, [sp, #0x1c]
+ str r0, [sp, #0x10]
+ mov r0, #0x14
+ str r0, [sp, #0x14]
+ mov r0, #8
+ add r2, r6, #5
+ add r3, #0xd
+ str r0, [sp, #0x18]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #5
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02018170
+ mov r0, #0xa
+ ldr r3, [sp, #0x1c]
+ str r0, [sp]
+ mov r0, #4
+ str r0, [sp, #4]
+ mov r0, #2
+ add r2, r6, #5
+ add r3, #0xd
+ str r0, [sp, #8]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldr r0, [r5, #4]
+ mov r1, #5
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_020186B4
+ ldr r7, [r5, #0x1c]
+ mov r2, #0x13
+ ldr r0, [r5, #0x18]
+ add r3, r7, r4
+ lsl r2, r2, #4
+ ldrb r2, [r3, r2]
+ ldr r0, [r0, #4]
+ mov r1, #0
+ lsl r2, r2, #2
+ add r3, r7, r2
+ mov r2, #0x4d
+ lsl r2, r2, #2
+ ldr r2, [r3, r2]
+ bl FUN_0200ABC0
+ ldr r2, [r5, #0x18]
+ ldr r0, [r2, #4]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0x14]
+ bl FUN_0200B7B8
+ ldr r1, [r5, #0x18]
+ lsl r0, r6, #3
+ ldr r1, [r1, #8]
+ add r0, #0x20
+ mov r2, #1
+ bl MOD73_021D9244
+ ldr r1, [r5, #0x18]
+ ldr r3, [sp, #0x1c]
+ add r2, r0, #0
+ lsl r3, r3, #3
+ ldr r0, [r5, #0xc]
+ ldr r1, [r1, #8]
+ add r3, #8
+ bl MOD73_021D9D5C
+ ldr r0, [r5, #0x14]
+ add r4, r4, #1
+ cmp r4, r0
+ blt _021D9B02
+_021D9BCE:
+ ldr r0, [r5, #0xc]
+ bl FUN_02019220
+ ldr r0, [r5, #4]
+ mov r1, #5
+ bl FUN_0201AC68
+_021D9BDC:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021D9AF0
+
+ thumb_func_start MOD73_021D9BE0
+MOD73_021D9BE0: ; 0x021D9BE0
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r5, #8]
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r5, #0xc]
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x17
+ str r0, [sp, #4]
+ mov r2, #4
+ str r2, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #8]
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0x14
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #1
+ str r0, [sp, #0xc]
+ mov r0, #0x1f
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ ldr r1, [r5, #0xc]
+ mov r2, #4
+ mov r3, #6
+ bl FUN_02019064
+ ldr r0, [r5, #8]
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r0, [r5, #0xc]
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, [r5, #0x10]
+ mov r1, #4
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ str r4, [sp, #4]
+ ldr r0, [r5, #4]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0200CD68
+ mov r0, #4
+ mov r1, #0x20
+ add r2, r4, #0
+ bl FUN_02002EEC
+ mov r1, #1
+ ldr r0, [r5, #8]
+ add r2, r1, #0
+ mov r3, #0
+ bl FUN_0200D0BC
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9BE0
+
+ thumb_func_start MOD73_021D9C7C
+MOD73_021D9C7C: ; 0x021D9C7C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ bl FUN_02019178
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020191A4
+ ldr r0, [r4, #0xc]
+ bl FUN_02019178
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl FUN_020191A4
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9C7C
+
+ thumb_func_start MOD73_021D9CA0
+MOD73_021D9CA0: ; 0x021D9CA0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ mov r3, #0x40
+ add r5, r0, #0
+ add r4, r1, #0
+ str r3, [sp]
+ mov r0, #0x7a
+ mov r1, #1
+ mov r2, #4
+ str r4, [sp, #4]
+ bl FUN_02006930
+ mov r1, #0
+ str r1, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ str r4, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0x7a
+ mov r3, #5
+ bl FUN_0200687C
+ ldr r0, [r5, #0x14]
+ cmp r0, #1
+ bne _021D9CD6
+ mov r1, #2
+ b _021D9CD8
+_021D9CD6:
+ mov r1, #3
+_021D9CD8:
+ add r3, r5, #0
+ str r4, [sp]
+ mov r0, #0x7a
+ mov r2, #0
+ add r3, #0x24
+ bl FUN_02006BDC
+ str r0, [r5, #0x20]
+ ldr r2, [r5, #0x24]
+ mov r3, #0
+ str r3, [sp]
+ ldrh r0, [r2]
+ mov r1, #5
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldrh r0, [r2, #2]
+ add r2, #0xc
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r5, #4]
+ bl FUN_02018148
+ ldr r1, [r5, #0x24]
+ mov r2, #0
+ ldrh r0, [r1]
+ add r3, r2, #0
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r1, #2]
+ mov r1, #5
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ ldr r0, [r5, #4]
+ bl FUN_020186B4
+ add r3, r5, #0
+ str r4, [sp]
+ mov r0, #0x7a
+ mov r1, #4
+ mov r2, #0
+ add r3, #0x2c
+ bl FUN_02006BDC
+ str r0, [r5, #0x28]
+ ldr r0, [r5, #4]
+ mov r1, #5
+ bl FUN_0201AC68
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021D9CA0
+
+ thumb_func_start MOD73_021D9D48
+MOD73_021D9D48: ; 0x021D9D48
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ bl FUN_02016A18
+ ldr r0, [r4, #0x28]
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9D48
+
+ thumb_func_start MOD73_021D9D5C
+MOD73_021D9D5C: ; 0x021D9D5C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r4, r2, #0
+ str r3, [sp]
+ mov r2, #0
+ ldr r1, _021D9D80 ; =0x0001020F
+ str r2, [sp, #4]
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ mov r1, #1
+ add r2, r5, #0
+ add r3, r4, #0
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D9D80: .word 0x0001020F
+ thumb_func_end MOD73_021D9D5C
+
+ thumb_func_start MOD73_021D9D84
+MOD73_021D9D84: ; 0x021D9D84
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #1]
+ strb r1, [r0, #2]
+ strb r1, [r0, #3]
+ strb r1, [r0, #4]
+ strb r1, [r0, #5]
+ strb r1, [r0, #6]
+ strb r1, [r0, #7]
+ strb r1, [r0, #8]
+ strb r1, [r0, #9]
+ strb r1, [r0, #0xa]
+ strb r1, [r0, #0xb]
+ bx lr
+ thumb_func_end MOD73_021D9D84
+
+ thumb_func_start MOD73_021D9DA0
+MOD73_021D9DA0: ; 0x021D9DA0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021D9DAE
+ bl ErrorHandling
+_021D9DAE:
+ mov r0, #0
+ strb r0, [r4]
+ strb r0, [r4, #1]
+ strb r0, [r4, #2]
+ strb r0, [r4, #3]
+ strb r0, [r4, #4]
+ strb r0, [r4, #5]
+ strb r0, [r4, #6]
+ strb r0, [r4, #7]
+ strb r0, [r4, #8]
+ strb r0, [r4, #9]
+ strb r0, [r4, #0xa]
+ strb r0, [r4, #0xb]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9DA0
+
+ thumb_func_start MOD73_021D9DCC
+MOD73_021D9DCC: ; 0x021D9DCC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r3, [sp, #8]
+ add r0, r1, #0
+ ldr r3, [sp, #0x18]
+ mov r1, #0x38
+ mul r1, r3
+ add r1, r2, r1
+ mov r2, #2
+ mov r3, #6
+ lsl r2, r2, #0x12
+ lsl r3, r3, #0x10
+ bl MOD73_021D9540
+ str r0, [r4, #8]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r4, #8]
+ ldr r1, [sp, #0x1c]
+ bl FUN_02020130
+ mov r0, #1
+ str r0, [r4]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ thumb_func_end MOD73_021D9DCC
+
+ thumb_func_start MOD73_021D9E08
+MOD73_021D9E08: ; 0x021D9E08
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ beq _021D9E16
+ bl ErrorHandling
+_021D9E16:
+ ldr r0, [r4, #8]
+ bl FUN_0201FFC8
+ mov r0, #0
+ str r0, [r4]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9E08
+
+ thumb_func_start MOD73_021D9E24
+MOD73_021D9E24: ; 0x021D9E24
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9E24
+
+ thumb_func_start MOD73_021D9E3C
+MOD73_021D9E3C: ; 0x021D9E3C
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x2a
+ lsl r0, r0, #0xe
+ str r0, [sp]
+ mov r0, #0xf
+ lsl r0, r0, #0xe
+ str r0, [sp, #4]
+ ldr r0, [r4, #8]
+ add r1, sp, #0
+ bl FUN_02020044
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9E3C
+
+ thumb_func_start MOD73_021D9E6C
+MOD73_021D9E6C: ; 0x021D9E6C
+ push {r3, lr}
+ ldr r0, [r0, #8]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021D9E7C
+ mov r0, #1
+ pop {r3, pc}
+_021D9E7C:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD73_021D9E6C
+
+ thumb_func_start MOD73_021D9E80
+MOD73_021D9E80: ; 0x021D9E80
+ ldr r3, _021D9E88 ; =Call_FillMemWithValue
+ mov r1, #0
+ mov r2, #0x78
+ bx r3
+ .align 2, 0
+_021D9E88: .word Call_FillMemWithValue
+ thumb_func_end MOD73_021D9E80
+
+ thumb_func_start MOD73_021D9E8C
+MOD73_021D9E8C: ; 0x021D9E8C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x74]
+ cmp r0, #0
+ beq _021D9E9A
+ bl ErrorHandling
+_021D9E9A:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x78
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9E8C
+
+ thumb_func_start MOD73_021D9EA8
+MOD73_021D9EA8: ; 0x021D9EA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r0, #0x74]
+ add r7, r2, #0
+ str r1, [sp, #0xc]
+ cmp r0, #0
+ beq _021D9EBC
+ bl ErrorHandling
+_021D9EBC:
+ ldr r4, _021D9F5C ; =0x021DBDE4
+ ldr r5, [sp, #8]
+ mov r6, #0
+_021D9EC2:
+ ldrb r1, [r4]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD73_021D9258
+ add r6, r6, #1
+ add r4, r4, #1
+ stmia r5!, {r0}
+ cmp r6, #6
+ blt _021D9EC2
+ ldr r4, _021D9F60 ; =0x021DBE04
+ ldr r5, [sp, #8]
+ mov r6, #0
+_021D9EDC:
+ ldrb r1, [r4]
+ ldr r0, [sp, #0xc]
+ add r2, r7, #0
+ bl MOD73_021D9288
+ str r0, [r5, #0x18]
+ add r6, r6, #1
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r6, #8
+ blt _021D9EDC
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, _021D9F64 ; =0x021DBDF4
+ ldr r6, _021D9F68 ; =0x021DBDFC
+ ldr r4, _021D9F6C ; =0x021DBE0C
+ ldr r5, [sp, #8]
+ ldr r7, _021D9F70 ; =0x021DBDEC
+ str r0, [sp, #0x14]
+_021D9F02:
+ ldrb r0, [r6]
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ ldrb r0, [r0]
+ str r0, [sp, #4]
+ ldrb r1, [r7]
+ ldrb r3, [r4]
+ ldr r0, [sp, #0xc]
+ lsl r2, r1, #2
+ ldr r1, [sp, #8]
+ ldr r1, [r1, r2]
+ ldr r2, [r5, #0x18]
+ bl MOD73_021D92B8
+ str r0, [r5, #0x38]
+ ldrb r2, [r4]
+ mov r1, #0x80
+ ldrb r3, [r6]
+ sub r1, r1, r2
+ mov r2, #0x60
+ sub r2, r2, r3
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_02013ED8
+ ldr r0, [sp, #0x14]
+ add r6, r6, #1
+ add r0, r0, #1
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0x10]
+ add r4, r4, #1
+ add r0, r0, #1
+ add r5, r5, #4
+ add r7, r7, #1
+ str r0, [sp, #0x10]
+ cmp r0, #8
+ blt _021D9F02
+ ldr r0, [sp, #8]
+ mov r1, #1
+ str r1, [r0, #0x74]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D9F5C: .word 0x021DBDE4
+_021D9F60: .word 0x021DBE04
+_021D9F64: .word 0x021DBDF4
+_021D9F68: .word 0x021DBDFC
+_021D9F6C: .word 0x021DBE0C
+_021D9F70: .word 0x021DBDEC
+ thumb_func_end MOD73_021D9EA8
+
+ thumb_func_start MOD73_021D9F74
+MOD73_021D9F74: ; 0x021D9F74
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x74]
+ cmp r0, #1
+ beq _021D9F82
+ bl ErrorHandling
+_021D9F82:
+ mov r4, #0
+ add r5, r6, #0
+_021D9F86:
+ ldr r0, [r5, #0x38]
+ bl FUN_02013EA8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _021D9F86
+ mov r5, #0
+ add r4, r6, #0
+_021D9F98:
+ ldr r0, [r4]
+ bl FUN_02013DD4
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #6
+ blt _021D9F98
+ mov r5, #0
+ add r4, r6, #0
+_021D9FAA:
+ ldr r0, [r4, #0x18]
+ bl FUN_02013E44
+ add r5, r5, #1
+ add r4, r4, #4
+ cmp r5, #8
+ blt _021D9FAA
+ mov r0, #0
+ str r0, [r6, #0x74]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9F74
+
+ thumb_func_start MOD73_021D9FC0
+MOD73_021D9FC0: ; 0x021D9FC0
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #8
+ blo _021D9FD0
+ bl ErrorHandling
+_021D9FD0:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, #0x38]
+ add r1, r6, #0
+ bl FUN_02013EB0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9FC0
+
+ thumb_func_start MOD73_021D9FE0
+MOD73_021D9FE0: ; 0x021D9FE0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #5
+ add r5, #0x14
+_021D9FEA:
+ ldr r0, [r5, #0x38]
+ add r1, r6, #0
+ bl FUN_02013F2C
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ ble _021D9FEA
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021D9FE0
+
+ thumb_func_start MOD73_021D9FFC
+MOD73_021D9FFC: ; 0x021D9FFC
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #5
+ add r5, #0x14
+_021DA006:
+ ldr r0, [r5, #0x38]
+ add r1, r6, #0
+ add r2, r6, #0
+ bl FUN_02013EE0
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #7
+ ble _021DA006
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021D9FFC
+
+ thumb_func_start MOD73_021DA01C
+MOD73_021DA01C: ; 0x021DA01C
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r6, r2, #0
+ cmp r4, #8
+ blo _021DA02C
+ bl ErrorHandling
+_021DA02C:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ lsl r1, r6, #0x18
+ ldr r0, [r0, #0x38]
+ lsr r1, r1, #0x18
+ bl FUN_02013F04
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021DA01C
+
+ thumb_func_start MOD73_021DA03C
+MOD73_021DA03C: ; 0x021DA03C
+ push {r3, lr}
+ mov r2, #1
+ str r2, [r0, #0x6c]
+ mov r1, #0
+ str r1, [r0, #0x70]
+ lsl r1, r2, #0xc
+ ldr r2, _021DA054 ; =0x00000FAE
+ add r0, #0x58
+ mov r3, #4
+ bl MOD73_021D9574
+ pop {r3, pc}
+ .align 2, 0
+_021DA054: .word 0x00000FAE
+ thumb_func_end MOD73_021DA03C
+
+ thumb_func_start MOD73_021DA058
+MOD73_021DA058: ; 0x021DA058
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x6c]
+ add r3, r1, #0
+ cmp r0, #0
+ beq _021DA06A
+ cmp r0, #1
+ beq _021DA0A4
+ b _021DA0CE
+_021DA06A:
+ ldr r0, [r5, #0x70]
+ cmp r0, #0
+ bne _021DA088
+ ldr r1, _021DA0D4 ; =0x021DBE14
+ lsl r4, r3, #2
+ ldr r2, _021DA0D8 ; =0x021DBE20
+ ldr r1, [r1, r4]
+ ldr r2, [r2, r4]
+ ldr r4, _021DA0DC ; =0x021DBDE0
+ add r0, r5, #0
+ ldrb r3, [r4, r3]
+ add r0, #0x58
+ bl MOD73_021D9574
+ b _021DA09E
+_021DA088:
+ ldr r1, _021DA0D8 ; =0x021DBE20
+ lsl r4, r3, #2
+ ldr r2, _021DA0D4 ; =0x021DBE14
+ ldr r1, [r1, r4]
+ ldr r2, [r2, r4]
+ ldr r4, _021DA0DC ; =0x021DBDE0
+ add r0, r5, #0
+ ldrb r3, [r4, r3]
+ add r0, #0x58
+ bl MOD73_021D9574
+_021DA09E:
+ ldr r0, [r5, #0x6c]
+ add r0, r0, #1
+ str r0, [r5, #0x6c]
+_021DA0A4:
+ add r0, r5, #0
+ add r0, #0x58
+ bl MOD73_021D9584
+ add r7, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+_021DA0B2:
+ ldr r1, [r5, #0x58]
+ ldr r0, [r4, #0x38]
+ add r2, r1, #0
+ bl FUN_02013EE0
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #2
+ ble _021DA0B2
+ cmp r7, #1
+ bne _021DA0D2
+ mov r0, #0
+ str r0, [r5, #0x6c]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DA0CE:
+ bl ErrorHandling
+_021DA0D2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DA0D4: .word 0x021DBE14
+_021DA0D8: .word 0x021DBE20
+_021DA0DC: .word 0x021DBDE0
+ thumb_func_end MOD73_021DA058
+
+ thumb_func_start MOD73_021DA0E0
+MOD73_021DA0E0: ; 0x021DA0E0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ mov r1, #0
+ mov r2, #0x20
+ add r5, r0, #0
+ add r7, r3, #0
+ bl Call_FillMemWithValue
+ str r4, [r5, #0x14]
+ str r6, [r5, #0x18]
+ str r7, [r5, #0x1c]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA0E0
+
+ thumb_func_start MOD73_021DA0FC
+MOD73_021DA0FC: ; 0x021DA0FC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DA10A
+ bl ErrorHandling
+_021DA10A:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x20
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA0FC
+
+ thumb_func_start MOD73_021DA118
+MOD73_021DA118: ; 0x021DA118
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0xc]
+ mov r0, #2
+ lsl r0, r0, #0x12
+ str r0, [sp, #0x14]
+ mov r0, #6
+ add r6, r2, #0
+ lsl r0, r0, #0x10
+ ldr r5, [sp, #0xc]
+ str r1, [sp, #0x10]
+ add r7, r3, #0
+ str r0, [sp, #0x18]
+ mov r4, #0
+ add r6, #0x38
+_021DA136:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x10]
+ str r7, [sp, #8]
+ add r1, r6, #0
+ mov r2, #0x80
+ mov r3, #0x60
+ bl MOD73_021D9540
+ str r0, [r5, #4]
+ mov r1, #0
+ bl FUN_020200A0
+ ldr r0, [r5, #4]
+ add r1, r4, #4
+ bl FUN_02020130
+ ldr r0, [r5, #4]
+ add r1, sp, #0x14
+ bl FUN_02020044
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021DA136
+ ldr r0, [sp, #0xc]
+ mov r1, #1
+ str r1, [r0]
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA118
+
+ thumb_func_start MOD73_021DA178
+MOD73_021DA178: ; 0x021DA178
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_021DA180:
+ ldr r0, [r5, #4]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021DA180
+ mov r0, #0
+ str r0, [r6]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021DA178
+
+ thumb_func_start MOD73_021DA194
+MOD73_021DA194: ; 0x021DA194
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ ldr r7, [r6, #0x14]
+ ldr r0, [r6, #0x18]
+ add r7, #0x98
+ mov r4, #0
+ cmp r0, #0
+ bls _021DA1D2
+ add r5, r6, #0
+_021DA1A8:
+ ldr r0, [r6, #0x14]
+ add r1, r0, r4
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldrb r1, [r1, r0]
+ add r0, r7, r1
+ ldrb r1, [r7, r1]
+ lsl r1, r1, #0xc
+ str r1, [sp]
+ ldrb r0, [r0, #4]
+ add r1, sp, #0
+ lsl r0, r0, #0xc
+ str r0, [sp, #4]
+ ldr r0, [r5, #4]
+ bl FUN_02020044
+ ldr r0, [r6, #0x18]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r0
+ blo _021DA1A8
+_021DA1D2:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA194
+
+ thumb_func_start MOD73_021DA1D8
+MOD73_021DA1D8: ; 0x021DA1D8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x18]
+ mov r4, #0
+ str r1, [sp]
+ cmp r0, #0
+ bls _021DA20E
+ add r6, r5, #0
+_021DA1E8:
+ ldr r0, [r5, #0x14]
+ add r1, r0, r4
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldrb r7, [r1, r0]
+ ldr r0, [r5, #0x1c]
+ bl MOD73_021D910C
+ cmp r7, r0
+ beq _021DA204
+ ldr r0, [r6, #4]
+ ldr r1, [sp]
+ bl FUN_020200A0
+_021DA204:
+ ldr r0, [r5, #0x18]
+ add r4, r4, #1
+ add r6, r6, #4
+ cmp r4, r0
+ blo _021DA1E8
+_021DA20E:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021DA1D8
+
+ thumb_func_start MOD73_021DA210
+MOD73_021DA210: ; 0x021DA210
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ add r6, r2, #0
+ add r5, r0, #0
+ mov r1, #0
+ mov r2, #0x34
+ add r7, r3, #0
+ bl Call_FillMemWithValue
+ str r6, [r5, #0x1c]
+ ldr r0, [sp, #0x1c]
+ str r4, [r5, #0x20]
+ str r0, [r5]
+ ldr r0, [sp, #0x18]
+ str r7, [r5, #0x24]
+ str r0, [r5, #0x18]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA210
+
+ thumb_func_start MOD73_021DA234
+MOD73_021DA234: ; 0x021DA234
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #0
+ beq _021DA242
+ bl ErrorHandling
+_021DA242:
+ add r0, r4, #0
+ bl MOD73_021DA4AC
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x34
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ thumb_func_end MOD73_021DA234
+
+ thumb_func_start MOD73_021DA254
+MOD73_021DA254: ; 0x021DA254
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x28]
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r0, #0
+ beq _021DA266
+ bl ErrorHandling
+_021DA266:
+ add r0, r5, #0
+ add r1, r6, #0
+ str r4, [r5, #4]
+ bl MOD73_021DA2AC
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD73_021DA374
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #1
+ str r0, [r5, #0x28]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA254
+
+ thumb_func_start MOD73_021DA290
+MOD73_021DA290: ; 0x021DA290
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x28]
+ cmp r0, #1
+ beq _021DA29E
+ bl ErrorHandling
+_021DA29E:
+ add r0, r4, #0
+ bl MOD73_021DA354
+ mov r0, #0
+ str r0, [r4, #0x28]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA290
+
+ thumb_func_start MOD73_021DA2AC
+MOD73_021DA2AC: ; 0x021DA2AC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r7, r0, #0
+ ldr r0, [r7, #0x18]
+ str r1, [sp, #0x14]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ add r0, r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r7, #4]
+ mov r1, #2
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0200CD68
+ ldr r2, [sp, #0x14]
+ mov r0, #0
+ mov r1, #0x40
+ bl FUN_02002EEC
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x14]
+ mov r1, #2
+ str r0, [sp, #4]
+ ldr r0, [r7, #4]
+ mov r2, #0x1f
+ mov r3, #1
+ bl FUN_0200CB00
+ ldr r2, [sp, #0x14]
+ mov r0, #0
+ mov r1, #0x60
+ bl FUN_02002ED0
+ ldr r5, _021DA350 ; =0x021DBF80
+ mov r6, #0
+ add r4, r7, #0
+_021DA2FA:
+ ldr r0, [sp, #0x14]
+ mov r1, #1
+ bl FUN_02018FF4
+ str r0, [r4, #8]
+ ldrh r0, [r5, #2]
+ mov r2, #2
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r5, #4]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldrh r0, [r5, #6]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldrh r0, [r5, #8]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp, #0xc]
+ ldrh r0, [r5, #0xa]
+ str r0, [sp, #0x10]
+ ldrh r3, [r5]
+ ldr r0, [r7, #4]
+ ldr r1, [r4, #8]
+ lsl r3, r3, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_02019064
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl FUN_02019620
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, #0xc
+ cmp r6, #4
+ blt _021DA2FA
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DA350: .word 0x021DBF80
+ thumb_func_end MOD73_021DA2AC
+
+ thumb_func_start MOD73_021DA354
+MOD73_021DA354: ; 0x021DA354
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r4, #0
+ mov r6, #1
+_021DA35C:
+ ldr r0, [r5, #8]
+ bl FUN_02019178
+ ldr r0, [r5, #8]
+ add r1, r6, #0
+ bl FUN_020191A4
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021DA35C
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021DA354
+
+ thumb_func_start MOD73_021DA374
+MOD73_021DA374: ; 0x021DA374
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0x20
+ add r5, r1, #0
+ str r0, [sp]
+ mov r0, #0x7a
+ mov r1, #6
+ mov r2, #0
+ mov r3, #0x80
+ str r5, [sp, #4]
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r5, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0x7a
+ mov r1, #5
+ mov r3, #1
+ bl FUN_0200687C
+ str r5, [sp]
+ mov r0, #0x7a
+ mov r1, #7
+ mov r2, #0
+ add r3, sp, #0x10
+ bl FUN_02006BDC
+ ldr r2, [sp, #0x10]
+ mov r3, #0
+ str r3, [sp]
+ add r5, r0, #0
+ ldrh r0, [r2]
+ mov r1, #1
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ ldrh r0, [r2, #2]
+ add r2, #0xc
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_02018148
+ ldr r1, [sp, #0x10]
+ mov r2, #0
+ ldrh r0, [r1]
+ add r3, r2, #0
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ ldrh r0, [r1, #2]
+ mov r1, #1
+ lsl r0, r0, #0x15
+ lsr r0, r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ ldr r0, [r4, #4]
+ bl FUN_020186B4
+ add r0, r5, #0
+ bl FUN_02016A18
+ ldr r0, [r4, #4]
+ mov r1, #1
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4, r5, pc}
+ thumb_func_end MOD73_021DA374
+
+ thumb_func_start MOD73_021DA408
+MOD73_021DA408: ; 0x021DA408
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldr r0, [r4, #0x30]
+ add r0, r0, #1
+ str r0, [r4, #0x30]
+ cmp r0, #0x1e
+ blt _021DA432
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x2c]
+_021DA432:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DA408
+
+ thumb_func_start MOD73_021DA434
+MOD73_021DA434: ; 0x021DA434
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x2c]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _021DA446
+ bl ErrorHandling
+_021DA446:
+ mov r2, #1
+ ldr r0, _021DA494 ; =MOD73_021DA408
+ add r1, r5, #0
+ lsl r2, r2, #0xa
+ bl FUN_0200CA44
+ str r0, [r5, #0x2c]
+ mov r1, #0
+ str r1, [r5, #0x30]
+ ldr r0, [r5, #8]
+ bl FUN_02019620
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _021DA498 ; =0x0001020F
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r6, [r5, #0x1c]
+ lsl r2, r4, #2
+ add r2, r6, r2
+ ldr r0, [r5, #8]
+ ldr r2, [r2, #0x38]
+ mov r1, #1
+ bl FUN_0201BDE0
+ ldr r0, [r5, #8]
+ bl FUN_020191D0
+ mov r0, #2
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DA494: .word MOD73_021DA408
+_021DA498: .word 0x0001020F
+ thumb_func_end MOD73_021DA434
+
+ thumb_func_start MOD73_021DA49C
+MOD73_021DA49C: ; 0x021DA49C
+ ldr r0, [r0, #0x2c]
+ cmp r0, #0
+ bne _021DA4A6
+ mov r0, #1
+ bx lr
+_021DA4A6:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DA49C
+
+ thumb_func_start MOD73_021DA4AC
+MOD73_021DA4AC: ; 0x021DA4AC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ beq _021DA4D0
+ mov r0, #2
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #4
+ mov r1, #0
+ bl FUN_0201E6E4
+ ldr r0, [r4, #0x2c]
+ bl FUN_0200CAB4
+ mov r0, #0
+ str r0, [r4, #0x2c]
+_021DA4D0:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA4AC
+
+ thumb_func_start MOD73_021DA4D4
+MOD73_021DA4D4: ; 0x021DA4D4
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r4, #0xc]
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021DA54C ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #0x34]
+ mov r3, #0x38
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #1
+ bl FUN_0200CCA4
+ ldr r0, [r4, #0x10]
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r1, #0
+ str r1, [sp]
+ ldr r0, _021DA54C ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2, #0x64]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ mov r2, #0x1f
+ mov r3, #1
+ bl FUN_0200CCA4
+ ldr r0, [r4, #0xc]
+ bl FUN_02019220
+ ldr r0, [r4, #0x10]
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_021DA54C: .word 0x0001020F
+ thumb_func_end MOD73_021DA4D4
+
+ thumb_func_start MOD73_021DA550
+MOD73_021DA550: ; 0x021DA550
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #0x4c]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r3, #2
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x66
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ mov r1, #0
+ bl FUN_0200AD38
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x67
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ bl FUN_0200AD38
+ mov r1, #2
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x68
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r2, #4]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0x50]
+ bl FUN_0200B7B8
+ mov r0, #0x18
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #8]
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ mov r0, #0x30
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #0x54]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r0, #4]
+ ldr r2, [r2, #0x58]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0, #0x58]
+ cmp r0, #1
+ bne _021DA618
+ mov r2, #3
+ b _021DA61A
+_021DA618:
+ mov r2, #5
+_021DA61A:
+ ldr r3, [r4, #0x1c]
+ lsl r2, r2, #2
+ add r2, r3, r2
+ ldr r0, [r3, #4]
+ ldr r1, [r3, #8]
+ ldr r2, [r2, #0x4c]
+ bl FUN_0200B7B8
+ mov r0, #0x30
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #8]
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ mov r0, #0x44
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #0x5c]
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r0, #4]
+ ldr r2, [r2, #0x5c]
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x24]
+ ldr r0, [r0, #0x5c]
+ cmp r0, #1
+ bne _021DA680
+ mov r2, #3
+ b _021DA682
+_021DA680:
+ mov r2, #5
+_021DA682:
+ ldr r3, [r4, #0x1c]
+ lsl r2, r2, #2
+ add r2, r3, r2
+ ldr r0, [r3, #4]
+ ldr r1, [r3, #8]
+ ldr r2, [r2, #0x4c]
+ bl FUN_0200B7B8
+ mov r0, #0x44
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA6B8 ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0xc]
+ ldr r2, [r2, #8]
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0xc]
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_021DA6B8: .word 0x0001020F
+ thumb_func_end MOD73_021DA550
+
+ thumb_func_start MOD73_021DA6BC
+MOD73_021DA6BC: ; 0x021DA6BC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x64
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ mov r1, #3
+ bl FUN_0200B628
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ ldr r2, [r4, #0x24]
+ ldr r0, [r4, #0x1c]
+ add r2, #0x65
+ ldrb r2, [r2]
+ ldr r0, [r0, #4]
+ bl FUN_0200AD38
+ mov r1, #2
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x1c]
+ ldr r2, [r4, #0x20]
+ ldr r0, [r0, #4]
+ add r3, r1, #0
+ bl FUN_0200AD38
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r2, #4]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0x68]
+ bl FUN_0200B7B8
+ mov r0, #0x18
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021DA72C ; =0x0001020F
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r4, #0x10]
+ ldr r2, [r2, #8]
+ mov r3, #0x10
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x10]
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021DA72C: .word 0x0001020F
+ thumb_func_end MOD73_021DA6BC
+
+ thumb_func_start MOD73_021DA730
+MOD73_021DA730: ; 0x021DA730
+ push {r3, lr}
+ cmp r1, #0
+ beq _021DA740
+ cmp r1, #1
+ beq _021DA746
+ cmp r1, #2
+ beq _021DA74C
+ pop {r3, pc}
+_021DA740:
+ bl MOD73_021DA4D4
+ pop {r3, pc}
+_021DA746:
+ bl MOD73_021DA550
+ pop {r3, pc}
+_021DA74C:
+ bl MOD73_021DA6BC
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA730
+
+ thumb_func_start MOD73_021DA754
+MOD73_021DA754: ; 0x021DA754
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ mov r1, #2
+ bl FUN_02018744
+ ldr r0, [r4, #0xc]
+ bl FUN_02019570
+ ldr r0, [r4, #0x10]
+ bl FUN_02019570
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA754
+
+ thumb_func_start MOD73_021DA770
+MOD73_021DA770: ; 0x021DA770
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ add r6, r1, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ cmp r6, #6
+ bhi _021DA7EC
+ add r0, r6, r6
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021DA790: ; jump table
+ .short _021DA79E - _021DA790 - 2 ; case 0
+ .short _021DA7CA - _021DA790 - 2 ; case 1
+ .short _021DA7D0 - _021DA790 - 2 ; case 2
+ .short _021DA7D6 - _021DA790 - 2 ; case 3
+ .short _021DA7DC - _021DA790 - 2 ; case 4
+ .short _021DA7E2 - _021DA790 - 2 ; case 5
+ .short _021DA7E8 - _021DA790 - 2 ; case 6
+_021DA79E:
+ mov r3, #0x51
+ ldr r2, [r4, #0x24]
+ lsl r3, r3, #2
+ ldrb r5, [r2, r3]
+ ldr r0, [r4, #0x1c]
+ sub r3, #0x10
+ lsl r5, r5, #2
+ add r2, r2, r5
+ ldr r0, [r0, #4]
+ ldr r2, [r2, r3]
+ mov r1, #0
+ bl FUN_0200ABC0
+ ldr r2, [r4, #0x1c]
+ ldr r0, [r2, #4]
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #0x18]
+ bl FUN_0200B7B8
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #8]
+ b _021DA7EC
+_021DA7CA:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x1c]
+ b _021DA7EC
+_021DA7D0:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x28]
+ b _021DA7EC
+_021DA7D6:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x24]
+ b _021DA7EC
+_021DA7DC:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x20]
+ b _021DA7EC
+_021DA7E2:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0x2c]
+ b _021DA7EC
+_021DA7E8:
+ ldr r0, [r4, #0x1c]
+ ldr r5, [r0, #0xc]
+_021DA7EC:
+ mov r3, #0
+ str r3, [sp]
+ ldr r0, _021DA818 ; =0x0001020F
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ str r3, [sp, #0xc]
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ add r2, r5, #0
+ bl FUN_0201BDE0
+ mov r1, #0
+ ldr r0, [r4, #0x14]
+ mov r2, #1
+ add r3, r1, #0
+ bl FUN_0200D0BC
+ ldr r0, [r4, #0x14]
+ bl FUN_02019220
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DA818: .word 0x0001020F
+ thumb_func_end MOD73_021DA770
+
+ thumb_func_start MOD73_021DA81C
+MOD73_021DA81C: ; 0x021DA81C
+ ldr r3, _021DA824 ; =Call_FillMemWithValue
+ mov r1, #0
+ ldr r2, _021DA828 ; =0x00000414
+ bx r3
+ .align 2, 0
+_021DA824: .word Call_FillMemWithValue
+_021DA828: .word 0x00000414
+ thumb_func_end MOD73_021DA81C
+
+ thumb_func_start MOD73_021DA82C
+MOD73_021DA82C: ; 0x021DA82C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DA83A
+ bl ErrorHandling
+_021DA83A:
+ ldr r2, _021DA848 ; =0x00000414
+ add r0, r4, #0
+ mov r1, #0
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ nop
+_021DA848: .word 0x00000414
+ thumb_func_end MOD73_021DA82C
+
+ thumb_func_start MOD73_021DA84C
+MOD73_021DA84C: ; 0x021DA84C
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ str r3, [r0, #0xc]
+ mov r1, #1
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD73_021DA84C
+
+ thumb_func_start MOD73_021DA858
+MOD73_021DA858: ; 0x021DA858
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r7, #0
+ mov r6, #0
+ add r4, r7, #0
+ add r5, #0x10
+_021DA864:
+ add r0, r4, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DA874
+ add r0, r5, #0
+ bl MOD73_021DAB30
+_021DA874:
+ add r6, r6, #1
+ add r4, #0x80
+ add r5, #0x80
+ cmp r6, #8
+ blt _021DA864
+ mov r0, #0
+ str r0, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021DA858
+
+ thumb_func_start MOD73_021DA884
+MOD73_021DA884: ; 0x021DA884
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r7, r1, #0
+ mov r6, #0
+ add r4, #0x10
+_021DA890:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DA8AE
+ add r0, r4, #0
+ bl MOD73_021DAB50
+ ldr r0, [r5, #0x20]
+ cmp r0, #0
+ beq _021DA8AE
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD73_021DABD0
+_021DA8AE:
+ add r6, r6, #1
+ add r5, #0x80
+ add r4, #0x80
+ cmp r6, #8
+ blt _021DA890
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DA884
+
+ thumb_func_start MOD73_021DA8BC
+MOD73_021DA8BC: ; 0x021DA8BC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0xb8
+ add r5, r0, #0
+ lsl r0, r1, #1
+ add r0, r1, r0
+ add r1, r2, r0
+ mov r0, #0x1c
+ add r2, r1, #0
+ mul r2, r0
+ ldr r0, _021DAA9C ; =0x021DBE7C
+ add r3, r0, r2
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0x9c
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ add r0, r5, #0
+ bl MOD73_021DAAD0
+ str r0, [sp, #0x60]
+ cmp r0, #0
+ bne _021DA906
+ add r0, r5, #0
+ bl MOD73_021DAAF4
+ str r0, [sp, #0x60]
+ cmp r0, #0
+ bne _021DA900
+ bl ErrorHandling
+_021DA900:
+ ldr r0, [sp, #0x60]
+ bl MOD73_021DAB30
+_021DA906:
+ bl FUN_0201BA60
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ bl FUN_0201BA60
+ add r1, sp, #0x9c
+ ldrb r1, [r1, #0x11]
+ bl _u32_div_f
+ add r0, sp, #0x9c
+ ldrb r0, [r0, #0x10]
+ add r4, r0, r1
+ bl FUN_0201BA60
+ add r1, sp, #0x9c
+ ldrb r1, [r1, #0x13]
+ bl _u32_div_f
+ add r0, sp, #0x9c
+ ldrb r0, [r0, #0x12]
+ add r0, r0, r1
+ add r0, r0, r4
+ asr r1, r6, #4
+ lsl r2, r1, #1
+ lsl r0, r0, #0xc
+ str r0, [sp, #0x6c]
+ asr r0, r0, #0x1f
+ lsl r3, r2, #1
+ ldr r1, _021DAAA0 ; =0x020FFA38
+ str r0, [sp, #0x70]
+ ldr r0, [sp, #0xa8]
+ ldrsh r6, [r1, r3]
+ lsl r3, r4, #0xc
+ add r2, r2, #1
+ str r3, [sp, #0x64]
+ asr r3, r3, #0x1f
+ lsl r2, r2, #1
+ str r0, [sp, #0x74]
+ asr r0, r0, #0x1f
+ str r3, [sp, #0x68]
+ ldrsh r4, [r1, r2]
+ str r0, [sp, #0x78]
+ bl FUN_0201BA60
+ ldr r1, [sp, #0xa0]
+ bl _u32_div_f
+ ldr r0, [sp, #0x9c]
+ ldr r2, [sp, #0x64]
+ add r0, r0, r1
+ str r0, [sp, #0x5c]
+ asr r0, r6, #0x1f
+ str r0, [sp, #0x7c]
+ ldr r1, [sp, #0x7c]
+ ldr r3, [sp, #0x68]
+ add r0, r6, #0
+ asr r7, r4, #0x1f
+ bl _ll_mul
+ str r1, [sp, #0x58]
+ str r0, [sp, #0x80]
+ ldr r1, [sp, #0x7c]
+ ldr r2, [sp, #0x6c]
+ ldr r3, [sp, #0x70]
+ add r0, r6, #0
+ bl _ll_mul
+ str r1, [sp, #0x50]
+ str r0, [sp, #0x84]
+ ldr r1, [sp, #0x7c]
+ ldr r2, [sp, #0x74]
+ ldr r3, [sp, #0x78]
+ add r0, r6, #0
+ bl _ll_mul
+ str r0, [sp, #0x88]
+ str r1, [sp, #0x98]
+ ldr r2, [sp, #0x64]
+ ldr r3, [sp, #0x68]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl _ll_mul
+ str r0, [sp, #0x8c]
+ str r1, [sp, #0x48]
+ ldr r2, [sp, #0x6c]
+ ldr r3, [sp, #0x70]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl _ll_mul
+ str r0, [sp, #0x90]
+ str r1, [sp, #0x40]
+ ldr r2, [sp, #0x74]
+ ldr r3, [sp, #0x78]
+ add r0, r4, #0
+ add r1, r7, #0
+ bl _ll_mul
+ add r2, r0, #0
+ mov r4, #2
+ ldr r0, [sp, #0x88]
+ ldr r3, [sp, #0x98]
+ mov r6, #0
+ lsl r4, r4, #0xa
+ add r0, r0, r4
+ adc r3, r6
+ str r3, [sp, #0x98]
+ lsl r3, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r3
+ str r0, [sp]
+ ldr r0, [sp, #0x8c]
+ ldr r3, [sp, #0x48]
+ add r0, r0, r4
+ adc r3, r6
+ str r3, [sp, #0x48]
+ mov r7, #6
+ lsl r3, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r3
+ lsl r7, r7, #0x10
+ add r0, r0, r7
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x90]
+ ldr r3, [sp, #0x40]
+ add r0, r0, r4
+ adc r3, r6
+ str r3, [sp, #0x40]
+ lsl r3, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r3
+ add r0, r0, r7
+ add r2, r2, r4
+ adc r1, r6
+ str r0, [sp, #8]
+ lsl r0, r1, #0x14
+ lsr r1, r2, #0xc
+ orr r1, r0
+ str r1, [sp, #0xc]
+ ldr r0, _021DAAA4 ; =0x0000019A
+ add r2, sp, #0x9c
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x5c]
+ mov r1, #0x38
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #0xa4]
+ str r0, [sp, #0x18]
+ ldrb r0, [r2, #0x18]
+ str r0, [sp, #0x1c]
+ ldrb r0, [r2, #0x14]
+ str r0, [sp, #0x20]
+ ldrb r3, [r2, #0x15]
+ ldr r0, [r5, #8]
+ mul r1, r3
+ add r0, r0, r1
+ str r0, [sp, #0x24]
+ ldrb r0, [r2, #0x16]
+ str r0, [sp, #0x28]
+ ldr r0, [r5, #4]
+ str r0, [sp, #0x2c]
+ ldr r0, [r5, #0xc]
+ str r0, [sp, #0x30]
+ ldrb r0, [r2, #0x19]
+ str r0, [sp, #0x34]
+ ldrb r0, [r2, #0x1a]
+ str r0, [sp, #0x38]
+ ldrb r1, [r2, #0x17]
+ ldr r2, [sp, #0x80]
+ ldr r0, [sp, #0x60]
+ add r3, r2, r4
+ ldr r2, [sp, #0x58]
+ adc r2, r6
+ str r2, [sp, #0x58]
+ lsl r2, r2, #0x14
+ lsr r3, r3, #0xc
+ orr r3, r2
+ lsl r2, r4, #8
+ add r2, r3, r2
+ ldr r3, [sp, #0x84]
+ add r7, r3, r4
+ ldr r3, [sp, #0x50]
+ adc r3, r6
+ str r3, [sp, #0x50]
+ lsl r3, r3, #0x14
+ lsr r6, r7, #0xc
+ orr r6, r3
+ lsl r3, r4, #8
+ add r3, r6, r3
+ bl MOD73_021DAC9C
+ mov r1, #0x41
+ lsl r1, r1, #4
+ ldr r2, [r5, r1]
+ ldr r0, [sp, #0x60]
+ str r2, [r0, #0x7c]
+ ldr r0, [r5, r1]
+ add r0, r0, #1
+ str r0, [r5, r1]
+ add sp, #0xb8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DAA9C: .word 0x021DBE7C
+_021DAAA0: .word 0x020FFA38
+_021DAAA4: .word 0x0000019A
+ thumb_func_end MOD73_021DA8BC
+
+ thumb_func_start MOD73_021DAAA8
+MOD73_021DAAA8: ; 0x021DAAA8
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ mov r6, #0
+ add r4, #0x10
+_021DAAB2:
+ add r0, r5, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _021DAAC2
+ add r0, r4, #0
+ bl MOD73_021DAD44
+_021DAAC2:
+ add r6, r6, #1
+ add r5, #0x80
+ add r4, #0x80
+ cmp r6, #8
+ blt _021DAAB2
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAAA8
+
+ thumb_func_start MOD73_021DAAD0
+MOD73_021DAAD0: ; 0x021DAAD0
+ mov r2, #0
+ add r3, r0, #0
+_021DAAD4:
+ add r1, r3, #0
+ add r1, #0x88
+ ldr r1, [r1]
+ cmp r1, #0
+ bne _021DAAE6
+ add r0, #0x10
+ lsl r1, r2, #7
+ add r0, r0, r1
+ bx lr
+_021DAAE6:
+ add r2, r2, #1
+ add r3, #0x80
+ cmp r2, #8
+ blt _021DAAD4
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DAAD0
+
+ thumb_func_start MOD73_021DAAF4
+MOD73_021DAAF4: ; 0x021DAAF4
+ push {r4, r5}
+ mov r2, #0
+ add r3, r0, #0
+ add r1, r2, #0
+ add r3, #0x10
+_021DAAFE:
+ add r4, r0, #0
+ add r4, #0x88
+ ldr r4, [r4]
+ cmp r4, #0
+ beq _021DAB1E
+ cmp r2, #0
+ bne _021DAB10
+ add r2, r3, #0
+ b _021DAB1E
+_021DAB10:
+ add r4, r0, #0
+ add r4, #0x8c
+ ldr r5, [r2, #0x7c]
+ ldr r4, [r4]
+ cmp r5, r4
+ ble _021DAB1E
+ add r2, r3, #0
+_021DAB1E:
+ add r1, r1, #1
+ add r0, #0x80
+ add r3, #0x80
+ cmp r1, #8
+ blt _021DAAFE
+ add r0, r2, #0
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DAAF4
+
+ thumb_func_start MOD73_021DAB30
+MOD73_021DAB30: ; 0x021DAB30
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x78]
+ cmp r0, #0
+ bne _021DAB3E
+ bl ErrorHandling
+_021DAB3E:
+ ldr r0, [r4, #0x78]
+ bl FUN_0201FFC8
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x80
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ thumb_func_end MOD73_021DAB30
+
+ thumb_func_start MOD73_021DAB50
+MOD73_021DAB50: ; 0x021DAB50
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _021DABA2
+ add r0, r4, #0
+ add r0, #0x30
+ bl MOD73_021D962C
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add r0, #0x48
+ bl MOD73_021D962C
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD73_021D962C
+ ldr r0, [r4, #0x30]
+ add r1, r4, #0
+ str r0, [r4, #0x14]
+ ldr r0, [r4, #0x48]
+ add r1, #0x14
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x78]
+ bl FUN_02020044
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021DABA2
+ ldr r0, [r4, #0x60]
+ add r1, r4, #0
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0x60]
+ add r1, #0x20
+ str r0, [r4, #0x24]
+ ldr r0, [r4, #0x60]
+ str r0, [r4, #0x28]
+ ldr r0, [r4, #0x78]
+ bl FUN_02020064
+_021DABA2:
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _021DABB6
+ ldr r0, [r4, #0x78]
+ bl FUN_02020388
+ cmp r0, #0
+ bne _021DABB6
+ mov r0, #1
+ str r0, [r4, #8]
+_021DABB6:
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _021DABCE
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _021DABCE
+ ldr r0, [r4, #8]
+ cmp r0, #1
+ bne _021DABCE
+ add r0, r4, #0
+ bl MOD73_021DAB30
+_021DABCE:
+ pop {r4, pc}
+ thumb_func_end MOD73_021DAB50
+
+ thumb_func_start MOD73_021DABD0
+MOD73_021DABD0: ; 0x021DABD0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ cmp r0, #1
+ bne _021DAC94
+ ldr r0, [r5, #8]
+ cmp r0, #1
+ bne _021DAC94
+ add r0, r1, #0
+ add r0, #0xa4
+ ldrb r0, [r0]
+ ldr r2, [r5, #0x2c]
+ cmp r0, #0
+ bne _021DABF6
+ add r1, #0xa2
+ ldrh r0, [r1]
+ add r0, r2, r0
+ b _021DABFC
+_021DABF6:
+ add r1, #0xa2
+ ldrh r0, [r1]
+ sub r0, r2, r0
+_021DABFC:
+ str r0, [r5, #0x2c]
+ mov r0, #2
+ ldr r1, [r5, #0x14]
+ lsl r0, r0, #0x12
+ sub r4, r1, r0
+ mov r0, #6
+ mov r2, #0
+ ldr r1, [r5, #0x18]
+ lsl r0, r0, #0x10
+ sub r6, r1, r0
+ asr r0, r4, #0xc
+ asr r1, r6, #0xc
+ add r3, r2, #0
+ bl FUN_0201CBEC
+ add r7, r0, #0
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FX_Atan2
+ lsl r6, r7, #0xc
+ ldr r1, [r5, #0x2c]
+ asr r7, r6, #0x1f
+ add r0, r0, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r4, r0, #1
+ add r0, r4, #1
+ lsl r1, r0, #1
+ ldr r0, _021DAC98 ; =0x020FFA38
+ add r2, r6, #0
+ ldrsh r0, [r0, r1]
+ add r3, r7, #0
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ add r2, r0, #0
+ mov r0, #2
+ mov r3, #0
+ lsl r0, r0, #0xa
+ add r0, r2, r0
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ str r0, [sp]
+ ldr r0, _021DAC98 ; =0x020FFA38
+ lsl r1, r4, #1
+ ldrsh r0, [r0, r1]
+ add r2, r6, #0
+ add r3, r7, #0
+ asr r1, r0, #0x1f
+ bl _ll_mul
+ mov r2, #2
+ mov r3, #0
+ lsl r2, r2, #0xa
+ add r0, r0, r2
+ adc r1, r3
+ lsl r1, r1, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ ldr r3, [sp]
+ lsl r1, r2, #8
+ add r1, r3, r1
+ str r1, [sp]
+ mov r1, #6
+ lsl r1, r1, #0x10
+ str r0, [sp, #4]
+ add r0, r0, r1
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x78]
+ add r1, sp, #0
+ bl FUN_02020044
+_021DAC94:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DAC98: .word 0x020FFA38
+ thumb_func_end MOD73_021DABD0
+
+ thumb_func_start MOD73_021DAC9C
+MOD73_021DAC9C: ; 0x021DAC9C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r0, [sp, #0x40]
+ str r1, [r5]
+ add r4, r2, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r2, r3, #0
+ ldr r3, [sp, #0x20]
+ add r0, #0x30
+ add r1, r4, #0
+ ldr r6, [sp, #0x30]
+ bl MOD73_021D95CC
+ ldr r0, [sp, #0x40]
+ ldr r1, [sp, #0x24]
+ str r0, [sp]
+ add r0, r5, #0
+ ldr r2, [sp, #0x28]
+ ldr r3, [sp, #0x2c]
+ add r0, #0x48
+ bl MOD73_021D95CC
+ ldr r0, [sp, #0x40]
+ ldr r2, [sp, #0x34]
+ str r0, [sp]
+ add r0, r5, #0
+ ldr r3, [sp, #0x38]
+ add r0, #0x60
+ add r1, r6, #0
+ bl MOD73_021D95CC
+ ldr r3, [sp, #0x24]
+ str r4, [r5, #0x14]
+ str r3, [r5, #0x18]
+ str r6, [r5, #0x20]
+ str r6, [r5, #0x24]
+ ldr r0, [sp, #0x3c]
+ str r6, [r5, #0x28]
+ str r0, [r5, #0xc]
+ ldr r0, [sp, #0x54]
+ ldr r1, [sp, #0x44]
+ str r0, [r5, #0x10]
+ mov r0, #0
+ str r0, [sp]
+ add r0, sp, #0x58
+ ldrb r0, [r0]
+ add r2, r4, #0
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x50]
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x4c]
+ bl MOD73_021D9540
+ str r0, [r5, #0x78]
+ cmp r0, #0
+ bne _021DAD14
+ bl ErrorHandling
+_021DAD14:
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ beq _021DAD26
+ add r1, r5, #0
+ ldr r0, [r5, #0x78]
+ add r1, #0x20
+ mov r2, #2
+ bl FUN_02020074
+_021DAD26:
+ ldr r0, [r5, #0x78]
+ ldr r1, [sp, #0x48]
+ bl FUN_02020130
+ ldr r0, [r5, #0x78]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r5, #0x78]
+ mov r1, #2
+ bl FUN_02020238
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAC9C
+
+ thumb_func_start MOD73_021DAD44
+MOD73_021DAD44: ; 0x021DAD44
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #1
+ bne _021DAD72
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ ldr r1, [r4, #0x60]
+ add r0, #0x60
+ mov r2, #0xcd
+ mov r3, #0
+ bl MOD73_021D95CC
+ mov r0, #0
+ str r0, [r4]
+ mov r0, #1
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x78]
+ mov r1, #2
+ bl FUN_020200EC
+_021DAD72:
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAD44
+
+ thumb_func_start MOD73_021DAD78
+MOD73_021DAD78: ; 0x021DAD78
+ ldr r3, _021DAD80 ; =Call_FillMemWithValue
+ mov r1, #0
+ mov r2, #0x80
+ bx r3
+ .align 2, 0
+_021DAD80: .word Call_FillMemWithValue
+ thumb_func_end MOD73_021DAD78
+
+ thumb_func_start MOD73_021DAD84
+MOD73_021DAD84: ; 0x021DAD84
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x7c]
+ cmp r0, #0
+ beq _021DAD92
+ bl ErrorHandling
+_021DAD92:
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #0x80
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAD84
+
+ thumb_func_start MOD73_021DADA0
+MOD73_021DADA0: ; 0x021DADA0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r6, r0, #0
+ ldr r0, [r6, #0x7c]
+ add r7, r1, #0
+ str r2, [sp, #0x18]
+ cmp r0, #0
+ beq _021DADB4
+ bl ErrorHandling
+_021DADB4:
+ str r7, [r6]
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #0x1f
+ str r0, [sp, #8]
+ mov r0, #0x1e
+ str r0, [sp, #0xc]
+ ldr r0, _021DAE20 ; =0x00001B58
+ add r1, r6, #4
+ str r0, [sp, #0x10]
+ ldr r0, [sp, #0x18]
+ mov r2, #0x7a
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ mov r3, #0x21
+ bl MOD73_021D9340
+ mov r4, #0
+ add r5, r6, #0
+_021DADDE:
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [sp, #0x18]
+ mov r2, #2
+ mov r3, #6
+ str r0, [sp, #8]
+ add r0, r7, #0
+ add r1, r6, #4
+ lsl r2, r2, #0x12
+ lsl r3, r3, #0x10
+ bl MOD73_021D9540
+ str r0, [r5, #0x3c]
+ cmp r4, #2
+ blt _021DAE06
+ ldr r0, [r5, #0x3c]
+ mov r1, #1
+ bl FUN_02020130
+_021DAE06:
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _021DADDE
+ mov r0, #1
+ str r0, [r6, #0x7c]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DAE20: .word 0x00001B58
+ thumb_func_end MOD73_021DADA0
+
+ thumb_func_start MOD73_021DAE24
+MOD73_021DAE24: ; 0x021DAE24
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x7c]
+ cmp r0, #1
+ beq _021DAE32
+ bl ErrorHandling
+_021DAE32:
+ mov r4, #0
+ add r5, r6, #0
+_021DAE36:
+ ldr r0, [r5, #0x3c]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _021DAE36
+ ldr r0, [r6]
+ add r1, r6, #4
+ bl MOD73_021D94F4
+ mov r0, #0
+ str r0, [r6, #0x7c]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAE24
+
+ thumb_func_start MOD73_021DAE54
+MOD73_021DAE54: ; 0x021DAE54
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0x3c
+_021DAE5C:
+ cmp r4, #2
+ beq _021DAE64
+ cmp r4, #0
+ bne _021DAE6C
+_021DAE64:
+ add r0, r5, #0
+ bl MOD73_021DAEFC
+ b _021DAE72
+_021DAE6C:
+ add r0, r5, #0
+ bl MOD73_021DAF34
+_021DAE72:
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #4
+ blt _021DAE5C
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DAE54
+
+ thumb_func_start MOD73_021DAE7C
+MOD73_021DAE7C: ; 0x021DAE7C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blt _021DAE8A
+ bl ErrorHandling
+_021DAE8A:
+ cmp r5, #2
+ beq _021DAE92
+ cmp r5, #0
+ bne _021DAE9E
+_021DAE92:
+ add r4, #0x3c
+ lsl r0, r5, #4
+ add r0, r4, r0
+ bl MOD73_021DAEEC
+ pop {r3, r4, r5, pc}
+_021DAE9E:
+ add r4, #0x3c
+ lsl r0, r5, #4
+ add r0, r4, r0
+ bl MOD73_021DAF28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAE7C
+
+ thumb_func_start MOD73_021DAEAC
+MOD73_021DAEAC: ; 0x021DAEAC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blt _021DAEBA
+ bl ErrorHandling
+_021DAEBA:
+ lsl r0, r5, #4
+ mov r1, #0
+ add r0, r4, r0
+ str r1, [r0, #0x48]
+ ldr r0, [r0, #0x3c]
+ bl FUN_020200A0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAEAC
+
+ thumb_func_start MOD73_021DAECC
+MOD73_021DAECC: ; 0x021DAECC
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #4
+ blt _021DAEDA
+ bl ErrorHandling
+_021DAEDA:
+ lsl r0, r5, #4
+ add r0, r4, r0
+ ldr r0, [r0, #0x48]
+ cmp r0, #0
+ bne _021DAEE8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DAEE8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DAECC
+
+ thumb_func_start MOD73_021DAEEC
+MOD73_021DAEEC: ; 0x021DAEEC
+ mov r1, #0
+ str r1, [r0, #4]
+ mov r1, #3
+ str r1, [r0, #8]
+ mov r1, #1
+ str r1, [r0, #0xc]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DAEEC
+
+ thumb_func_start MOD73_021DAEFC
+MOD73_021DAEFC: ; 0x021DAEFC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0xc]
+ cmp r1, #0
+ beq _021DAF24
+ bl MOD73_021DAF34
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _021DAF24
+ ldr r0, [r4, #8]
+ sub r0, r0, #1
+ str r0, [r4, #8]
+ cmp r0, #0
+ bgt _021DAF24
+ mov r1, #0
+ str r1, [r4, #0xc]
+ ldr r0, [r4]
+ bl FUN_020200A0
+_021DAF24:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAEFC
+
+ thumb_func_start MOD73_021DAF28
+MOD73_021DAF28: ; 0x021DAF28
+ mov r1, #0
+ str r1, [r0, #4]
+ mov r1, #1
+ str r1, [r0, #0xc]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD73_021DAF28
+
+ thumb_func_start MOD73_021DAF34
+MOD73_021DAF34: ; 0x021DAF34
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _021DAF6C
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _021DAF4E
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_020200A0
+ b _021DAF66
+_021DAF4E:
+ cmp r0, #8
+ bne _021DAF5C
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021DAF66
+_021DAF5C:
+ cmp r0, #0x10
+ bne _021DAF66
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r4, pc}
+_021DAF66:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+_021DAF6C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAF34
+
+ thumb_func_start MOD73_021DAF70
+MOD73_021DAF70: ; 0x021DAF70
+ push {r3, r4, r5, lr}
+ ldr r2, _021DAF84 ; =0x0000090C
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ bl Call_FillMemWithValue
+ str r4, [r5, #4]
+ pop {r3, r4, r5, pc}
+ nop
+_021DAF84: .word 0x0000090C
+ thumb_func_end MOD73_021DAF70
+
+ thumb_func_start MOD73_021DAF88
+MOD73_021DAF88: ; 0x021DAF88
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DAF96
+ bl ErrorHandling
+_021DAF96:
+ ldr r2, _021DAFA4 ; =0x0000090C
+ add r0, r4, #0
+ mov r1, #0
+ bl Call_FillMemWithValue
+ pop {r4, pc}
+ nop
+_021DAFA4: .word 0x0000090C
+ thumb_func_end MOD73_021DAF88
+
+ thumb_func_start MOD73_021DAFA8
+MOD73_021DAFA8: ; 0x021DAFA8
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r2, #0
+ str r0, [sp, #0xc]
+ str r1, [sp, #0x10]
+ add r7, r3, #0
+ mov r4, #0
+ add r5, r0, #0
+ add r6, #0x38
+_021DAFBA:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ mov r2, #0
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ add r3, r2, #0
+ str r7, [sp, #8]
+ bl MOD73_021D9540
+ mov r1, #0
+ str r0, [r5, #0x50]
+ bl FUN_020200A0
+ add r4, r4, #1
+ add r5, #0x48
+ cmp r4, #0x20
+ blt _021DAFBA
+ ldr r0, [sp, #0xc]
+ mov r1, #1
+ str r1, [r0]
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DAFA8
+
+ thumb_func_start MOD73_021DAFEC
+MOD73_021DAFEC: ; 0x021DAFEC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_021DAFF4:
+ ldr r0, [r5, #0x50]
+ bl FUN_0201FFC8
+ add r4, r4, #1
+ add r5, #0x48
+ cmp r4, #0x20
+ blt _021DAFF4
+ mov r0, #0
+ str r0, [r6]
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD73_021DAFEC
+
+ thumb_func_start MOD73_021DB008
+MOD73_021DB008: ; 0x021DB008
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+ add r5, #0xc
+_021DB010:
+ add r0, r5, #0
+ bl MOD73_021DB14C
+ add r4, r4, #1
+ add r5, #0x48
+ cmp r4, #0x20
+ blt _021DB010
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DB008
+
+ thumb_func_start MOD73_021DB020
+MOD73_021DB020: ; 0x021DB020
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r0, #0
+ add r0, r1, #0
+ str r1, [sp, #0x10]
+ add r1, r2, #0
+ sub r0, #0x80
+ sub r1, #0x60
+ str r2, [sp, #0x14]
+ bl FX_Atan2
+ asr r0, r0, #4
+ lsl r1, r0, #1
+ add r0, r1, #1
+ ldr r7, _021DB124 ; =0x020FFA38
+ lsl r0, r0, #1
+ ldrsh r3, [r7, r0]
+ asr r6, r3, #0x1f
+ lsr r2, r3, #0x10
+ lsl r0, r6, #0x10
+ orr r0, r2
+ mov r2, #2
+ lsl r5, r3, #0x10
+ lsl r2, r2, #0xa
+ add r5, r5, r2
+ ldr r2, _021DB128 ; =0x00000000
+ adc r0, r2
+ lsr r2, r5, #0xc
+ lsl r0, r0, #0x14
+ str r2, [sp, #0x18]
+ orr r2, r0
+ lsl r0, r1, #1
+ str r2, [sp, #0x18]
+ ldrsh r2, [r7, r0]
+ asr r0, r2, #0x1f
+ mov ip, r0
+ lsr r1, r2, #0x10
+ lsl r0, r0, #0x10
+ orr r0, r1
+ mov r1, #2
+ lsl r5, r2, #0x10
+ lsl r1, r1, #0xa
+ add r1, r5, r1
+ ldr r5, _021DB128 ; =0x00000000
+ adc r0, r5
+ lsr r7, r1, #0xc
+ lsl r0, r0, #0x14
+ orr r7, r0
+ lsr r0, r3, #0x14
+ lsl r1, r6, #0xc
+ orr r1, r0
+ mov r0, #2
+ lsl r3, r3, #0xc
+ lsl r0, r0, #0xa
+ add r0, r3, r0
+ ldr r3, _021DB128 ; =0x00000000
+ adc r1, r3
+ lsr r6, r0, #0xc
+ lsl r1, r1, #0x14
+ orr r6, r1
+ mov r1, ip
+ lsr r0, r2, #0x14
+ lsl r1, r1, #0xc
+ orr r1, r0
+ mov r0, #2
+ lsl r2, r2, #0xc
+ lsl r0, r0, #0xa
+ add r2, r2, r0
+ ldr r0, _021DB128 ; =0x00000000
+ adc r1, r0
+ lsl r0, r1, #0x14
+ lsr r5, r2, #0xc
+ orr r5, r0
+ add r0, r4, #0
+ bl MOD73_021DB12C
+ cmp r0, #0
+ beq _021DB0E0
+ mov r2, #2
+ ldr r1, [sp, #0x18]
+ lsl r2, r2, #0x12
+ add r1, r1, r2
+ str r1, [sp]
+ mov r1, #6
+ lsl r1, r1, #0x10
+ add r1, r7, r1
+ str r1, [sp, #4]
+ str r6, [sp, #8]
+ str r5, [sp, #0xc]
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ ldr r1, [r4, #8]
+ lsl r2, r2, #0xc
+ lsl r3, r3, #0xc
+ bl MOD73_021DB1A8
+_021DB0E0:
+ add r0, r4, #0
+ bl MOD73_021DB12C
+ cmp r0, #0
+ beq _021DB112
+ mov r2, #2
+ ldr r1, [sp, #0x18]
+ lsl r2, r2, #0x12
+ sub r1, r2, r1
+ str r1, [sp]
+ mov r1, #6
+ lsl r1, r1, #0x10
+ sub r1, r1, r7
+ str r1, [sp, #4]
+ neg r1, r6
+ str r1, [sp, #8]
+ neg r1, r5
+ ldr r2, [sp, #0x10]
+ ldr r3, [sp, #0x14]
+ str r1, [sp, #0xc]
+ ldr r1, [r4, #8]
+ lsl r2, r2, #0xc
+ lsl r3, r3, #0xc
+ bl MOD73_021DB1A8
+_021DB112:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #4]
+ add r0, r0, #1
+ bl _s32_div_f
+ str r1, [r4, #8]
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021DB124: .word 0x020FFA38
+_021DB128: .word 0x00000000
+ thumb_func_end MOD73_021DB020
+
+ thumb_func_start MOD73_021DB12C
+MOD73_021DB12C: ; 0x021DB12C
+ mov r2, #0
+ add r3, r0, #0
+_021DB130:
+ ldr r1, [r3, #0xc]
+ cmp r1, #0
+ bne _021DB140
+ mov r1, #0x48
+ add r0, #0xc
+ mul r1, r2
+ add r0, r0, r1
+ bx lr
+_021DB140:
+ add r2, r2, #1
+ add r3, #0x48
+ cmp r2, #0x20
+ blt _021DB130
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD73_021DB12C
+
+ thumb_func_start MOD73_021DB14C
+MOD73_021DB14C: ; 0x021DB14C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DB18C
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ bne _021DB180
+ add r0, r4, #0
+ add r0, #0x14
+ bl MOD73_021D962C
+ str r0, [r4, #4]
+ add r0, r4, #0
+ add r0, #0x2c
+ bl MOD73_021D962C
+ ldr r0, [r4, #0x14]
+ add r1, r4, #0
+ str r0, [r4, #8]
+ ldr r0, [r4, #0x2c]
+ add r1, #8
+ str r0, [r4, #0xc]
+ ldr r0, [r4, #0x44]
+ bl FUN_02020044
+_021DB180:
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _021DB18C
+ add r0, r4, #0
+ bl MOD73_021DB190
+_021DB18C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB14C
+
+ thumb_func_start MOD73_021DB190
+MOD73_021DB190: ; 0x021DB190
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _021DB1A6
+ ldr r0, [r4, #0x44]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0
+ str r0, [r4]
+_021DB1A6:
+ pop {r4, pc}
+ thumb_func_end MOD73_021DB190
+
+ thumb_func_start MOD73_021DB1A8
+MOD73_021DB1A8: ; 0x021DB1A8
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r0, #0x10
+ add r4, r2, #0
+ add r6, r3, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r7, r1, #0
+ ldr r2, [sp, #0x18]
+ ldr r3, [sp, #0x20]
+ add r0, #0x14
+ add r1, r4, #0
+ bl MOD73_021D95CC
+ mov r0, #0x10
+ str r0, [sp]
+ add r0, r5, #0
+ ldr r2, [sp, #0x1c]
+ ldr r3, [sp, #0x24]
+ add r0, #0x2c
+ add r1, r6, #0
+ bl MOD73_021D95CC
+ str r4, [r5, #8]
+ str r6, [r5, #0xc]
+ ldr r0, [r5, #0x44]
+ mov r1, #1
+ bl FUN_020200A0
+ ldr r0, [r5, #0x44]
+ add r1, r7, #0
+ bl FUN_02020130
+ ldr r0, [r5, #0x44]
+ bl FUN_02020198
+ ldr r0, [r5, #0x44]
+ mov r1, #1
+ bl FUN_020200BC
+ ldr r0, [r5, #0x44]
+ mov r1, #2
+ bl FUN_02020238
+ mov r0, #1
+ str r0, [r5]
+ mov r0, #0
+ str r0, [r5, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB1A8
+
+ thumb_func_start MOD73_021DB20C
+MOD73_021DB20C: ; 0x021DB20C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #2
+ add r4, r1, #0
+ str r0, [sp]
+ ldr r0, [sp, #0x28]
+ mov r1, #1
+ add r6, r2, #0
+ add r7, r3, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl FUN_02088320
+ str r0, [r5]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ lsl r2, r4, #0x10
+ lsl r3, r6, #0x10
+ ldr r0, [r5]
+ add r1, r7, #0
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x10
+ bl FUN_02088490
+ str r0, [r5, #4]
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB20C
+
+ thumb_func_start MOD73_021DB24C
+MOD73_021DB24C: ; 0x021DB24C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ bl FUN_02088694
+ ldr r0, [r4]
+ bl FUN_02088360
+ pop {r4, pc}
+ thumb_func_end MOD73_021DB24C
+
+ thumb_func_start MOD73_021DB260
+MOD73_021DB260: ; 0x021DB260
+ ldr r3, _021DB268 ; =FUN_02088484
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DB268: .word FUN_02088484
+ thumb_func_end MOD73_021DB260
+
+ thumb_func_start MOD73_021DB26C
+MOD73_021DB26C: ; 0x021DB26C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r4, r2, #0
+ bl FUN_02014590
+ str r0, [r5]
+ str r4, [r5, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB26C
+
+ thumb_func_start MOD73_021DB280
+MOD73_021DB280: ; 0x021DB280
+ ldr r3, _021DB288 ; =FUN_020145A8
+ ldr r0, [r0]
+ bx r3
+ nop
+_021DB288: .word FUN_020145A8
+ thumb_func_end MOD73_021DB280
+
+ thumb_func_start MOD73_021DB28C
+MOD73_021DB28C: ; 0x021DB28C
+ push {lr}
+ sub sp, #0x14
+ ldr r1, [r0, #4]
+ mov r2, #0x18
+ str r1, [sp]
+ mov r1, #2
+ str r1, [sp, #4]
+ mov r1, #0xaf
+ str r1, [sp, #8]
+ mov r1, #5
+ str r1, [sp, #0xc]
+ add r1, sp, #0
+ strb r2, [r1, #0x10]
+ mov r2, #8
+ strb r2, [r1, #0x11]
+ ldr r0, [r0]
+ add r1, sp, #0
+ bl FUN_020145C8
+ add sp, #0x14
+ pop {pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB28C
+
+ thumb_func_start MOD73_021DB2B8
+MOD73_021DB2B8: ; 0x021DB2B8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_0201466C
+ add r4, r0, #0
+ beq _021DB2CC
+ ldr r0, [r5]
+ bl FUN_020146C4
+_021DB2CC:
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD73_021DB2B8
+
+ thumb_func_start MOD73_021DB2D0
+MOD73_021DB2D0: ; 0x021DB2D0
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r4, r1, #0
+ add r1, r3, #0
+ ldr r3, [sp, #0x1c]
+ add r5, r0, #0
+ ldr r6, [sp, #0x18]
+ add r0, r2, #0
+ sub r4, r4, r3
+ sub r1, r1, r3
+ mov r3, #0
+ str r3, [sp]
+ sub r2, r5, r6
+ sub r0, r0, r6
+ add r3, r4, #0
+ bl FUN_0201BBD0
+ mov r1, #0xa0
+ mul r1, r0
+ add r0, r1, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD73_021DB2D0
+
+ thumb_func_start MOD73_021DB2FC
+MOD73_021DB2FC: ; 0x021DB2FC
+ add r3, r0, #0
+ mov r2, #0x18
+ mov r1, #0
+_021DB302:
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _021DB302
+ mov r2, #0x80
+ str r2, [r0]
+ mov r1, #0x60
+ str r1, [r0, #4]
+ str r2, [r0, #8]
+ str r1, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD73_021DB2FC
+
+ thumb_func_start MOD73_021DB318
+MOD73_021DB318: ; 0x021DB318
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, _021DB364 ; =0x021C48F8
+ ldrh r1, [r0, #0x22]
+ cmp r1, #0
+ beq _021DB33C
+ ldrh r1, [r0, #0x1c]
+ str r1, [r4]
+ ldrh r0, [r0, #0x1e]
+ str r0, [r4, #4]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ bne _021DB33C
+ ldr r0, [r4]
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ str r0, [r4, #0xc]
+_021DB33C:
+ mov r0, #0x80
+ str r0, [sp]
+ mov r0, #0x60
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r1, [r4, #4]
+ ldr r2, [r4, #8]
+ ldr r3, [r4, #0xc]
+ bl MOD73_021DB2D0
+ str r0, [r4, #0x10]
+ ldr r0, [r4]
+ str r0, [r4, #8]
+ ldr r0, [r4, #4]
+ str r0, [r4, #0xc]
+ ldr r0, _021DB364 ; =0x021C48F8
+ ldrh r0, [r0, #0x22]
+ str r0, [r4, #0x14]
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_021DB364: .word 0x021C48F8
+ thumb_func_end MOD73_021DB318
+
+ thumb_func_start MOD73_021DB368
+MOD73_021DB368: ; 0x021DB368
+ ldr r2, [r1]
+ strb r2, [r0]
+ ldr r2, [r1, #4]
+ strb r2, [r0, #1]
+ ldr r1, [r1, #0x10]
+ cmp r1, #0
+ bge _021DB380
+ neg r1, r1
+ strh r1, [r0, #2]
+ mov r1, #1
+ strb r1, [r0, #4]
+ bx lr
+_021DB380:
+ strh r1, [r0, #2]
+ mov r1, #0
+ strb r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD73_021DB368
+
+ thumb_func_start MOD73_021DB388
+MOD73_021DB388: ; 0x021DB388
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ add r1, r2, #0
+ mov r2, #0x80
+ mov r3, #0x60
+ bl FUN_0201CBEC
+ add r4, r0, #0
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bge _021DB3A2
+ neg r0, r0
+_021DB3A2:
+ lsl r0, r0, #0x10
+ ldr r1, [r5]
+ lsr r0, r0, #0x10
+ bl MOD73_021DB644
+ asr r2, r0, #0x1f
+ lsl r3, r2, #0x12
+ lsr r1, r0, #0xe
+ orr r3, r1
+ mov r1, #2
+ lsl r2, r0, #0x12
+ mov r0, #0
+ lsl r1, r1, #0xa
+ add r2, r2, r1
+ adc r3, r0
+ lsl r1, r3, #0x14
+ lsr r2, r2, #0xc
+ orr r2, r1
+ asr r1, r2, #0xc
+ cmp r4, #0x10
+ bhs _021DB3D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021DB3D0:
+ add r1, #8
+ cmp r4, r1
+ bls _021DB3D8
+ mov r0, #2
+_021DB3D8:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB388
+
+ thumb_func_start MOD73_021DB3DC
+MOD73_021DB3DC: ; 0x021DB3DC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #1
+ str r0, [r5, #0x10]
+ mov r0, #0
+ add r4, r1, #0
+ str r2, [sp]
+ str r3, [sp, #4]
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ add r0, r2, #0
+ beq _021DB468
+_021DB3F6:
+ ldr r0, [sp, #0xc]
+ add r1, r4, r0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldrb r1, [r1, r0]
+ mov r0, #0x1c
+ add r6, r1, #0
+ mul r6, r0
+ add r1, r4, r6
+ add r2, r4, r6
+ add r1, #0x90
+ add r2, #0x91
+ ldrb r1, [r1]
+ ldrb r2, [r2]
+ add r0, r5, #0
+ bl MOD73_021DB388
+ cmp r0, #0
+ beq _021DB426
+ cmp r0, #1
+ beq _021DB42E
+ cmp r0, #2
+ beq _021DB43E
+ b _021DB444
+_021DB426:
+ add r0, r4, r6
+ add r0, #0x92
+ ldrh r7, [r0]
+ b _021DB444
+_021DB42E:
+ add r0, r4, r6
+ add r0, #0x92
+ ldrh r0, [r0]
+ lsl r0, r0, #0xf
+ lsr r7, r0, #0x10
+ mov r0, #0
+ str r0, [r5, #0x10]
+ b _021DB444
+_021DB43E:
+ mov r7, #0
+ add r0, r7, #0
+ str r0, [r5, #0x10]
+_021DB444:
+ add r0, r4, r6
+ add r0, #0x94
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _021DB456
+ ldr r0, [sp, #8]
+ add r0, r0, r7
+ str r0, [sp, #8]
+ b _021DB45C
+_021DB456:
+ ldr r0, [sp, #8]
+ sub r0, r0, r7
+ str r0, [sp, #8]
+_021DB45C:
+ ldr r0, [sp, #0xc]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [sp, #0xc]
+ cmp r1, r0
+ blo _021DB3F6
+_021DB468:
+ ldr r0, [sp, #8]
+ ldr r1, [sp]
+ bl _s32_div_f
+ add r4, r0, #0
+ ldr r1, [r5]
+ ldr r0, _021DB550 ; =0x021DBF5C
+ ldrb r0, [r0, r1]
+ mov r1, #0x33
+ lsl r1, r1, #0xe
+ lsl r0, r0, #0xc
+ bl FX_Div
+ add r2, r0, #0
+ lsl r0, r4, #0xc
+ asr r1, r0, #0x1f
+ asr r3, r2, #0x1f
+ bl _ll_mul
+ mov r4, #2
+ mov r2, #0
+ lsl r4, r4, #0xa
+ add r4, r0, r4
+ adc r1, r2
+ lsl r0, r1, #0x14
+ lsr r1, r4, #0xc
+ orr r1, r0
+ ldr r3, [r5, #0xc]
+ asr r0, r1, #0xc
+ add r0, r3, r0
+ str r0, [r5, #0xc]
+ cmp r0, #0
+ ble _021DB4BC
+ ldr r1, [r5]
+ lsl r3, r1, #1
+ ldr r1, _021DB554 ; =0x021DBF68
+ ldrh r1, [r1, r3]
+ sub r0, r0, r1
+ str r0, [r5, #0xc]
+ bpl _021DB4D0
+ str r2, [r5, #0xc]
+ b _021DB4D0
+_021DB4BC:
+ bge _021DB4D0
+ ldr r1, [r5]
+ lsl r3, r1, #1
+ ldr r1, _021DB554 ; =0x021DBF68
+ ldrh r1, [r1, r3]
+ add r0, r0, r1
+ str r0, [r5, #0xc]
+ cmp r0, #0
+ ble _021DB4D0
+ str r2, [r5, #0xc]
+_021DB4D0:
+ ldr r1, [r5, #0xc]
+ ldr r0, _021DB558 ; =0x00000E38
+ cmp r1, r0
+ ble _021DB4DC
+ str r0, [r5, #0xc]
+ b _021DB4E4
+_021DB4DC:
+ ldr r0, _021DB55C ; =0xFFFFF1C8
+ cmp r1, r0
+ bge _021DB4E4
+ str r0, [r5, #0xc]
+_021DB4E4:
+ ldr r0, [r5, #0xc]
+ mov r1, #0xa0
+ ldr r4, [r5, #8]
+ bl _s32_div_f
+ add r1, r0, #0
+ mov r0, #0x44
+ bl FUN_0201BC84
+ ldr r1, [r5, #8]
+ add r0, r1, r0
+ str r0, [r5, #8]
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _021DB508
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bge _021DB514
+_021DB508:
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _021DB544
+ ldr r0, [r5, #0xc]
+ cmp r0, #0
+ bge _021DB544
+_021DB514:
+ ldr r0, [sp, #4]
+ cmp r0, #0
+ bne _021DB530
+ lsl r0, r4, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r1, r0
+ ble _021DB544
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+ b _021DB544
+_021DB530:
+ lsl r0, r4, #0x10
+ lsr r1, r0, #0x10
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ cmp r1, r0
+ bge _021DB544
+ ldr r0, [r5, #4]
+ add r0, r0, #1
+ str r0, [r5, #4]
+_021DB544:
+ ldr r0, [r5, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021DB550: .word 0x021DBF5C
+_021DB554: .word 0x021DBF68
+_021DB558: .word 0x00000E38
+_021DB55C: .word 0xFFFFF1C8
+ thumb_func_end MOD73_021DB3DC
+
+ thumb_func_start MOD73_021DB560
+MOD73_021DB560: ; 0x021DB560
+ ldr r0, [r0, #8]
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ bx lr
+ thumb_func_end MOD73_021DB560
+
+ thumb_func_start MOD73_021DB568
+MOD73_021DB568: ; 0x021DB568
+ ldr r0, [r0, #4]
+ bx lr
+ thumb_func_end MOD73_021DB568
+
+ thumb_func_start MOD73_021DB56C
+MOD73_021DB56C: ; 0x021DB56C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r4, r0, #0
+ cmp r5, #3
+ blt _021DB57A
+ bl ErrorHandling
+_021DB57A:
+ str r5, [r4]
+ mov r0, #0
+ str r0, [r4, #4]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB56C
+
+ thumb_func_start MOD73_021DB584
+MOD73_021DB584: ; 0x021DB584
+ ldr r0, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD73_021DB584
+
+ thumb_func_start MOD73_021DB588
+MOD73_021DB588: ; 0x021DB588
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0
+ str r0, [r5, #0x18]
+ add r4, r1, #0
+ add r6, r2, #0
+ str r0, [r5, #0x10]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD73_021DB60C
+ cmp r0, #0
+ beq _021DB5C6
+ ldr r0, [r5, #0xc]
+ add r0, r0, #1
+ str r0, [r5, #0xc]
+ cmp r0, #0x1e
+ blo _021DB5C0
+ ldr r1, [r5, #4]
+ ldr r0, _021DB608 ; =0x0000270F
+ cmp r1, r0
+ bhs _021DB5B8
+ add r0, r1, #1
+ str r0, [r5, #4]
+_021DB5B8:
+ mov r0, #1
+ str r0, [r5, #0x18]
+ mov r0, #0
+ str r0, [r5, #0xc]
+_021DB5C0:
+ mov r0, #0
+ str r0, [r5, #0x14]
+ pop {r4, r5, r6, pc}
+_021DB5C6:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD73_021DB62C
+ cmp r0, #0
+ beq _021DB602
+ ldr r0, [r5, #8]
+ add r0, r0, #1
+ str r0, [r5, #8]
+ cmp r0, #0x5a
+ blo _021DB606
+ mov r0, #0
+ str r0, [r5, #8]
+ ldr r0, [r5, #0x14]
+ cmp r0, #0
+ bne _021DB5F0
+ mov r0, #2
+ str r0, [r5, #0x10]
+ mov r0, #1
+ str r0, [r5, #0x14]
+ pop {r4, r5, r6, pc}
+_021DB5F0:
+ mov r0, #1
+ str r0, [r5, #0x10]
+ ldr r1, [r5]
+ ldr r0, _021DB608 ; =0x0000270F
+ cmp r1, r0
+ bhs _021DB606
+ add r0, r1, #1
+ str r0, [r5]
+ pop {r4, r5, r6, pc}
+_021DB602:
+ mov r0, #0
+ str r0, [r5, #0x14]
+_021DB606:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021DB608: .word 0x0000270F
+ thumb_func_end MOD73_021DB588
+
+ thumb_func_start MOD73_021DB60C
+MOD73_021DB60C: ; 0x021DB60C
+ cmp r1, #2
+ bne _021DB614
+ mov r0, #0
+ bx lr
+_021DB614:
+ cmp r0, #0
+ bge _021DB61A
+ neg r0, r0
+_021DB61A:
+ ldr r1, _021DB628 ; =0x00000E38
+ cmp r0, r1
+ blt _021DB624
+ mov r0, #1
+ bx lr
+_021DB624:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DB628: .word 0x00000E38
+ thumb_func_end MOD73_021DB60C
+
+ thumb_func_start MOD73_021DB62C
+MOD73_021DB62C: ; 0x021DB62C
+ cmp r0, #0
+ bge _021DB632
+ neg r0, r0
+_021DB632:
+ ldr r1, _021DB640 ; =0x0000038E
+ cmp r0, r1
+ bgt _021DB63C
+ mov r0, #1
+ bx lr
+_021DB63C:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+_021DB640: .word 0x0000038E
+ thumb_func_end MOD73_021DB62C
+
+ thumb_func_start MOD73_021DB644
+MOD73_021DB644: ; 0x021DB644
+ push {r3, lr}
+ ldr r1, _021DB678 ; =0x0000038E
+ sub r0, r0, r1
+ bpl _021DB64E
+ mov r0, #0
+_021DB64E:
+ lsl r2, r0, #0xc
+ asr r1, r2, #0x1f
+ lsr r0, r2, #0x16
+ lsl r3, r1, #0xa
+ orr r3, r0
+ mov r0, #2
+ lsl r2, r2, #0xa
+ mov r1, #0
+ lsl r0, r0, #0xa
+ add r0, r2, r0
+ adc r3, r1
+ lsl r1, r3, #0x14
+ lsr r0, r0, #0xc
+ orr r0, r1
+ ldr r1, _021DB67C ; =0x00AAA000
+ bl FX_Div
+ mov r1, #1
+ lsl r1, r1, #0xc
+ add r0, r0, r1
+ pop {r3, pc}
+ .align 2, 0
+_021DB678: .word 0x0000038E
+_021DB67C: .word 0x00AAA000
+ thumb_func_end MOD73_021DB644
+
+ thumb_func_start MOD73_021DB680
+MOD73_021DB680: ; 0x021DB680
+ add r3, r0, #0
+ mov r2, #0x10
+ mov r1, #0
+_021DB686:
+ strb r1, [r3]
+ add r3, r3, #1
+ sub r2, r2, #1
+ bne _021DB686
+ mov r1, #2
+ str r1, [r0, #8]
+ sub r1, r1, #3
+ str r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD73_021DB680
+
+ thumb_func_start MOD73_021DB698
+MOD73_021DB698: ; 0x021DB698
+ push {r4, r5, r6, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ mov r1, #0
+ str r1, [r5, #0xc]
+ add r1, r2, #0
+ add r6, r3, #0
+ bl MOD73_021DB718
+ cmp r0, #1
+ beq _021DB710
+ cmp r6, #1
+ beq _021DB710
+ ldr r0, [r5, #4]
+ cmp r0, #0
+ bge _021DB70A
+ bl FUN_0201BA60
+ mov r1, #5
+ add r6, r0, #0
+ bl _u32_div_f
+ ldr r0, [r5, #8]
+ cmp r1, r0
+ bhi _021DB6D0
+ mov r1, #1
+ str r1, [r5, #0xc]
+ b _021DB6D6
+_021DB6D0:
+ mov r0, #1
+ mov r1, #0
+ str r0, [r5, #0xc]
+_021DB6D6:
+ ldr r0, [r5]
+ cmp r1, r0
+ bne _021DB6F4
+ cmp r0, #1
+ ldr r0, [r5, #8]
+ bne _021DB6EA
+ sub r0, r0, #1
+ bmi _021DB6FA
+ str r0, [r5, #8]
+ b _021DB6FA
+_021DB6EA:
+ add r0, r0, #1
+ cmp r0, #5
+ bge _021DB6FA
+ str r0, [r5, #8]
+ b _021DB6FA
+_021DB6F4:
+ str r1, [r5]
+ mov r0, #2
+ str r0, [r5, #8]
+_021DB6FA:
+ add r0, r6, #0
+ mov r1, #0x3c
+ bl _u32_div_f
+ ldr r0, _021DB714 ; =0x021DBFB0
+ ldrb r0, [r0, r4]
+ add r0, r0, r1
+ str r0, [r5, #4]
+_021DB70A:
+ ldr r0, [r5, #4]
+ sub r0, r0, #1
+ str r0, [r5, #4]
+_021DB710:
+ pop {r4, r5, r6, pc}
+ nop
+_021DB714: .word 0x021DBFB0
+ thumb_func_end MOD73_021DB698
+
+ thumb_func_start MOD73_021DB718
+MOD73_021DB718: ; 0x021DB718
+ cmp r1, #0
+ bge _021DB722
+ ldr r2, [r0]
+ cmp r2, #0
+ beq _021DB72C
+_021DB722:
+ cmp r1, #0
+ ble _021DB730
+ ldr r0, [r0]
+ cmp r0, #1
+ bne _021DB730
+_021DB72C:
+ mov r0, #1
+ bx lr
+_021DB730:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD73_021DB718
+
+ thumb_func_start MOD73_021DB734
+MOD73_021DB734: ; 0x021DB734
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ mov r7, #0x1f
+ add r0, r1, #0
+ str r1, [sp]
+ add r6, r7, #0
+ bl MOD73_021DB568
+ add r4, r0, #0
+ mov r0, #0x96
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ cmp r1, r0
+ beq _021DB75A
+ ldr r1, [r5, #8]
+ ldr r0, _021DB7B8 ; =0x021DBF60
+ ldrb r0, [r0, r1]
+ cmp r4, r0
+ blt _021DB774
+_021DB75A:
+ ldr r0, [r5, #8]
+ mov r4, #0
+ add r0, r0, #1
+ str r0, [r5, #8]
+ str r4, [r5]
+ ldr r1, [r5, #8]
+ cmp r1, #3
+ blt _021DB76E
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB76E:
+ ldr r0, [sp]
+ bl MOD73_021DB56C
+_021DB774:
+ mov r0, #0x96
+ ldr r1, [r5]
+ lsl r0, r0, #2
+ sub r1, r0, r1
+ cmp r1, #0x3c
+ bgt _021DB78C
+ mov r0, #0x1f
+ mul r0, r1
+ mov r1, #0x3c
+ bl _s32_div_f
+ add r7, r0, #0
+_021DB78C:
+ ldr r1, [r5, #8]
+ ldr r0, _021DB7B8 ; =0x021DBF60
+ ldrb r0, [r0, r1]
+ sub r1, r0, r4
+ cmp r1, #5
+ bgt _021DB7A4
+ mov r0, #0x1f
+ mul r0, r1
+ mov r1, #5
+ bl _s32_div_f
+ add r6, r0, #0
+_021DB7A4:
+ cmp r7, r6
+ bge _021DB7AC
+ str r7, [r5, #4]
+ b _021DB7AE
+_021DB7AC:
+ str r6, [r5, #4]
+_021DB7AE:
+ ldr r0, [r5]
+ add r0, r0, #1
+ str r0, [r5]
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DB7B8: .word 0x021DBF60
+ thumb_func_end MOD73_021DB734
+
+ thumb_func_start MOD73_021DB7BC
+MOD73_021DB7BC: ; 0x021DB7BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r1, #0
+ str r1, [r0, #0xc]
+ add r7, r5, #0
+ add r4, r3, #0
+ str r0, [sp]
+ ldr r1, [sp, #0x18]
+ add r0, r4, #0
+ add r6, r2, #0
+ add r7, #0x98
+ bl MOD73_021DB62C
+ cmp r0, #1
+ beq _021DB7EC
+ ldr r1, [sp, #0x18]
+ add r0, r4, #0
+ bl MOD73_021DB60C
+ cmp r0, #1
+ beq _021DB7EC
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0
+ bne _021DB7F6
+_021DB7EC:
+ ldr r0, [sp]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB7F6:
+ cmp r6, #1
+ bgt _021DB804
+ ldr r0, [sp]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB804:
+ ldr r0, [sp, #0x20]
+ cmp r0, #1
+ beq _021DB882
+ mov r0, #0
+ cmp r6, #0
+ ble _021DB832
+ mov r2, #0x96
+ mov r4, #0x1c
+ lsl r2, r2, #2
+_021DB816:
+ mov r1, #0x13
+ add r3, r5, r0
+ lsl r1, r1, #4
+ ldrb r1, [r3, r1]
+ add r3, r1, #0
+ mul r3, r4
+ add r1, r5, r3
+ add r1, #0x92
+ ldrh r1, [r1]
+ cmp r1, r2
+ bls _021DB882
+ add r0, r0, #1
+ cmp r0, r6
+ blt _021DB816
+_021DB832:
+ mov r4, #1
+ cmp r6, #1
+ ble _021DB862
+_021DB838:
+ mov r0, #0x13
+ add r1, r5, r4
+ lsl r0, r0, #4
+ ldrb r2, [r1, r0]
+ ldrb r0, [r7]
+ ldrb r1, [r7, #4]
+ add r3, r7, r2
+ ldrb r2, [r7, r2]
+ ldrb r3, [r3, #4]
+ bl FUN_0201CBEC
+ cmp r0, #0x20
+ bls _021DB85C
+ ldr r0, [sp]
+ mov r1, #0
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB85C:
+ add r4, r4, #1
+ cmp r4, r6
+ blt _021DB838
+_021DB862:
+ ldr r0, [sp]
+ ldr r0, [r0, #4]
+ cmp r0, #4
+ bge _021DB872
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [r0, #4]
+ pop {r3, r4, r5, r6, r7, pc}
+_021DB872:
+ ldr r0, [sp]
+ mov r2, #1
+ str r2, [r0, #0xc]
+ ldr r0, [r0]
+ add r1, r0, #1
+ ldr r0, [sp]
+ str r1, [r0]
+ str r2, [r0, #8]
+_021DB882:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021DB7BC
+
+ thumb_func_start MOD73_021DB884
+MOD73_021DB884: ; 0x021DB884
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ mov r2, #0x68
+ bl Call_FillMemWithValue
+ add r0, r4, #0
+ add r0, #0xc
+ bl MOD73_021DB680
+ mov r1, #0
+ mov r0, #0x1f
+ str r0, [r4, #0x50]
+ add r4, #0xc
+ add r0, r4, #0
+ add r2, r1, #0
+ add r3, r1, #0
+ bl MOD73_021DB698
+ pop {r4, pc}
+ thumb_func_end MOD73_021DB884
+
+ thumb_func_start MOD73_021DB8AC
+MOD73_021DB8AC: ; 0x021DB8AC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r6, r1, #0
+ add r1, r5, #0
+ add r0, #0x4c
+ add r1, #0x1c
+ add r7, r2, #0
+ bl MOD73_021DB734
+ cmp r0, #1
+ bne _021DB8CA
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_021DB8CA:
+ add r0, r5, #0
+ ldr r3, [r5, #0xc]
+ add r0, #0x1c
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD73_021DB3DC
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB584
+ add r4, r0, #0
+ add r0, r5, #0
+ ldr r2, [r5, #0x54]
+ add r0, #0x30
+ add r1, r4, #0
+ bl MOD73_021DB588
+ add r0, r5, #0
+ add r0, #0xc
+ add r1, r4, #0
+ bl MOD73_021DB718
+ ldr r1, [r5, #0x54]
+ add r2, r7, #0
+ str r1, [sp]
+ ldr r1, [r5, #0x2c]
+ add r3, r4, #0
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x58
+ add r1, r6, #0
+ bl MOD73_021DB7BC
+ add r0, r5, #0
+ ldr r1, [r5, #0x54]
+ ldr r3, [r5, #0x60]
+ add r0, #0xc
+ add r2, r4, #0
+ bl MOD73_021DB698
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD73_021DB8AC
+
+ thumb_func_start MOD73_021DB924
+MOD73_021DB924: ; 0x021DB924
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r4, #0xc
+ mov r2, #0
+_021DB92E:
+ add r3, r1, #0
+ add r3, #0x90
+ ldrb r3, [r3]
+ add r0, r4, r2
+ strb r3, [r4, r2]
+ add r3, r1, #0
+ add r3, #0x91
+ ldrb r3, [r3]
+ add r2, r2, #1
+ add r1, #0x1c
+ strb r3, [r0, #4]
+ cmp r2, #4
+ blt _021DB92E
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB584
+ cmp r0, #0
+ blt _021DB95A
+ strh r0, [r4, #0xa]
+ mov r0, #0
+ b _021DB960
+_021DB95A:
+ neg r0, r0
+ strh r0, [r4, #0xa]
+ mov r0, #1
+_021DB960:
+ strb r0, [r4, #0xc]
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB560
+ strh r0, [r4, #8]
+ ldr r0, [r5, #0x40]
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0x48]
+ strb r0, [r4, #0x13]
+ ldr r0, [r5, #0xc]
+ strb r0, [r4, #0x11]
+ ldr r0, [r5, #0x18]
+ strb r0, [r4, #0xe]
+ ldr r0, [r5, #0x54]
+ cmp r0, #3
+ bge _021DB984
+ b _021DB986
+_021DB984:
+ mov r0, #2
+_021DB986:
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x50]
+ strb r0, [r4, #0x10]
+ ldr r0, [r5, #0x64]
+ strb r0, [r4, #0xf]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB924
+
+ thumb_func_start MOD73_021DB994
+MOD73_021DB994: ; 0x021DB994
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r3, #0
+ mov r1, #0x80
+ mov r0, #0x60
+_021DB9A0:
+ add r2, r4, r3
+ strb r1, [r4, r3]
+ add r3, r3, #1
+ strb r0, [r2, #4]
+ cmp r3, #4
+ blt _021DB9A0
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB584
+ cmp r0, #0
+ blt _021DB9BE
+ strh r0, [r4, #0xa]
+ mov r0, #0
+ b _021DB9C4
+_021DB9BE:
+ neg r0, r0
+ strh r0, [r4, #0xa]
+ mov r0, #1
+_021DB9C4:
+ strb r0, [r4, #0xc]
+ add r0, r5, #0
+ add r0, #0x1c
+ bl MOD73_021DB560
+ strh r0, [r4, #8]
+ ldr r0, [r5, #0x40]
+ strb r0, [r4, #0x12]
+ ldr r0, [r5, #0x48]
+ strb r0, [r4, #0x13]
+ ldr r0, [r5, #0xc]
+ strb r0, [r4, #0x11]
+ ldr r0, [r5, #0x18]
+ strb r0, [r4, #0xe]
+ ldr r0, [r5, #0x54]
+ strb r0, [r4, #0xd]
+ ldr r0, [r5, #0x50]
+ strb r0, [r4, #0x10]
+ ldr r0, [r5, #0x64]
+ strb r0, [r4, #0xf]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD73_021DB994
+
+ thumb_func_start MOD73_021DB9F0
+MOD73_021DB9F0: ; 0x021DB9F0
+ ldr r1, [r0]
+ add r1, r1, #1
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD73_021DB9F0
+
+ thumb_func_start MOD73_021DB9F8
+MOD73_021DB9F8: ; 0x021DB9F8
+ push {r4, lr}
+ add r4, r1, #0
+ mov r1, #6
+ bl _u32_div_f
+ ldr r1, _021DBA1C ; =0x021DBF63
+ ldrb r1, [r1, r4]
+ mul r1, r0
+ add r0, r1, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ ldr r1, _021DBA20 ; =0x0000270F
+ cmp r0, r1
+ ble _021DBA18
+ add r0, r1, #0
+_021DBA18:
+ pop {r4, pc}
+ nop
+_021DBA1C: .word 0x021DBF63
+_021DBA20: .word 0x0000270F
+ thumb_func_end MOD73_021DB9F8
+
+ thumb_func_start MOD73_021DBA24
+MOD73_021DBA24: ; 0x021DBA24
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x60
+ str r0, [sp]
+ ldr r0, [sp, #0x78]
+ str r1, [sp, #4]
+ str r0, [sp, #0x78]
+ add r0, r2, #0
+ str r0, [sp, #0x24]
+ add r0, #0x34
+ str r0, [sp, #0x24]
+ mov r1, #0
+ add r0, sp, #0x4c
+ str r1, [r0]
+ str r1, [r0, #4]
+ str r1, [r0, #8]
+ str r1, [r0, #0xc]
+ str r1, [r0, #0x10]
+ add r0, r1, #0
+ add r6, r3, #0
+ str r2, [sp, #8]
+ str r1, [sp, #0x20]
+ str r0, [sp, #0x18]
+ str r0, [sp, #0x28]
+ cmp r6, #0
+ bls _021DBAD6
+_021DBA56:
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0x28]
+ add r1, r1, r0
+ mov r0, #0x13
+ lsl r0, r0, #4
+ ldrb r0, [r1, r0]
+ ldr r1, [sp, #0x78]
+ lsl r4, r0, #2
+ ldr r0, [sp, #0x24]
+ ldr r0, [r0, r4]
+ bl FUN_02085284
+ mov r3, #0
+ add r7, r0, #0
+ add r2, r3, #0
+ cmp r6, #0
+ bls _021DBA98
+ ldr r0, [sp, #0x24]
+ mov r5, #0x13
+ ldr r4, [r0, r4]
+ lsl r5, r5, #4
+_021DBA80:
+ ldr r0, [sp, #8]
+ add r0, r0, r2
+ ldrb r0, [r0, r5]
+ lsl r1, r0, #2
+ ldr r0, [sp, #0x24]
+ ldr r0, [r0, r1]
+ cmp r4, r0
+ bne _021DBA92
+ add r3, r3, #1
+_021DBA92:
+ add r2, r2, #1
+ cmp r2, r6
+ blo _021DBA80
+_021DBA98:
+ ldr r0, [sp, #0x18]
+ cmp r3, r0
+ ble _021DBAA0
+ str r3, [sp, #0x18]
+_021DBAA0:
+ mov r5, #0
+ add r4, sp, #0x4c
+_021DBAA4:
+ add r0, r7, #0
+ add r1, r5, #5
+ bl FUN_02085290
+ ldr r1, [r4]
+ add r5, r5, #1
+ add r0, r1, r0
+ stmia r4!, {r0}
+ cmp r5, #5
+ blt _021DBAA4
+ add r0, r7, #0
+ mov r1, #0xa
+ bl FUN_02085290
+ ldr r1, [sp, #0x20]
+ add r0, r1, r0
+ str r0, [sp, #0x20]
+ add r0, r7, #0
+ bl FUN_02016A18
+ ldr r0, [sp, #0x28]
+ add r0, r0, #1
+ str r0, [sp, #0x28]
+ cmp r0, r6
+ blo _021DBA56
+_021DBAD6:
+ ldr r0, [sp, #0x18]
+ cmp r0, #2
+ blt _021DBAE6
+ cmp r6, #1
+ bls _021DBAE6
+ mov r0, #1
+ str r0, [sp, #0x14]
+ b _021DBAEA
+_021DBAE6:
+ mov r0, #0
+ str r0, [sp, #0x14]
+_021DBAEA:
+ ldr r0, [sp, #0x20]
+ add r1, r6, #0
+ bl _u32_div_f
+ sub r0, r0, r6
+ mov r5, #0
+ add r4, sp, #0x4c
+ str r0, [sp, #0x1c]
+ str r5, [sp, #0xc]
+ add r7, sp, #0x38
+ str r4, [sp, #0x2c]
+_021DBB00:
+ ldr r0, [sp, #0xc]
+ mov r1, #5
+ add r0, r0, #1
+ bl _s32_div_f
+ lsl r2, r1, #2
+ ldr r1, [sp, #0x2c]
+ ldr r0, [r4]
+ ldr r1, [r1, r2]
+ sub r0, r0, r1
+ str r0, [r7]
+ bpl _021DBB1A
+ add r5, r5, #1
+_021DBB1A:
+ ldr r0, [sp, #0xc]
+ add r4, r4, #4
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #0xc]
+ cmp r0, #5
+ blt _021DBB00
+ mov r2, #0
+ add r1, sp, #0x38
+_021DBB2C:
+ ldr r0, [r1]
+ add r2, r2, #1
+ sub r0, r0, r5
+ stmia r1!, {r0}
+ cmp r2, #5
+ blt _021DBB2C
+ cmp r5, #4
+ blt _021DBB40
+ mov r0, #1
+ str r0, [sp, #0x14]
+_021DBB40:
+ ldr r1, [sp]
+ ldr r0, _021DBBF8 ; =0x001B7740
+ ldr r1, [r1]
+ bl _u32_div_f
+ mov r1, #0xa
+ add r5, r0, #0
+ bl _s32_div_f
+ cmp r1, #5
+ blt _021DBB58
+ add r5, #0xa
+_021DBB58:
+ add r0, r5, #0
+ mov r1, #0xa
+ mov r7, #0
+ add r4, sp, #0x38
+ bl _s32_div_f
+ str r0, [sp, #0x10]
+_021DBB66:
+ ldr r0, [sp, #0x10]
+ ldr r1, [r4]
+ add r5, r0, #0
+ mul r5, r1
+ add r0, r5, #0
+ mov r1, #0x64
+ bl _s32_div_f
+ cmp r1, #0x32
+ blt _021DBB7C
+ add r5, #0x64
+_021DBB7C:
+ add r0, r5, #0
+ mov r1, #0x64
+ bl _s32_div_f
+ ldr r1, [sp]
+ ldr r2, [r1, #0x30]
+ ldr r1, [r1, #0x34]
+ add r1, r2, r1
+ sub r0, r0, r1
+ str r0, [r4]
+ bpl _021DBB96
+ mov r0, #0
+ str r0, [r4]
+_021DBB96:
+ add r7, r7, #1
+ add r4, r4, #4
+ cmp r7, #5
+ blt _021DBB66
+ cmp r6, #1
+ bls _021DBBB8
+ ldr r0, [sp]
+ add r1, r6, #0
+ ldr r0, [r0, #0x58]
+ bl MOD73_021DB9F8
+ cmp r0, #0xa
+ ble _021DBBB2
+ mov r0, #0xa
+_021DBBB2:
+ ldr r1, [sp, #0x1c]
+ sub r0, r1, r0
+ str r0, [sp, #0x1c]
+_021DBBB8:
+ ldr r0, [sp, #0x1c]
+ cmp r0, #0xf
+ bge _021DBBC2
+ mov r0, #0xf
+ str r0, [sp, #0x1c]
+_021DBBC2:
+ mov r3, #0
+ add r1, sp, #0x38
+ add r2, sp, #0x30
+_021DBBC8:
+ ldr r0, [r1]
+ add r3, r3, #1
+ strb r0, [r2]
+ add r1, r1, #4
+ add r2, r2, #1
+ cmp r3, #5
+ blt _021DBBC8
+ ldr r2, [sp, #0x1c]
+ ldr r0, [sp, #4]
+ lsl r2, r2, #0x18
+ ldr r3, [sp, #0x14]
+ add r1, sp, #0x30
+ lsr r2, r2, #0x18
+ bl FUN_02027F04
+ ldr r1, [sp]
+ str r0, [r1, #4]
+ ldr r0, [sp, #4]
+ bl FUN_02027FDC
+ ldr r1, [sp]
+ str r0, [r1, #8]
+ add sp, #0x60
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021DBBF8: .word 0x001B7740
+ thumb_func_end MOD73_021DBA24
+
+ thumb_func_start MOD73_021DBBFC
+MOD73_021DBBFC: ; 0x021DBBFC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x34]
+ add r4, r1, #0
+ str r0, [r1, #0x20]
+ ldr r0, [r5, #0x30]
+ add r4, #0x20
+ str r0, [r4, #4]
+ ldr r0, [r5, #0x58]
+ add r1, r2, #0
+ bl MOD73_021DB9F8
+ str r0, [r4, #8]
+ ldr r0, [r5, #4]
+ ldr r1, _021DBC54 ; =0x00000708
+ strb r0, [r4, #0xc]
+ ldr r0, [r5, #8]
+ strb r0, [r4, #0xd]
+ ldr r5, [r5]
+ add r0, r5, #0
+ bl _s32_div_f
+ strb r0, [r4, #0xe]
+ ldrb r1, [r4, #0xe]
+ ldr r0, _021DBC54 ; =0x00000708
+ mul r0, r1
+ sub r5, r5, r0
+ add r0, r5, #0
+ mov r1, #0x1e
+ bl _s32_div_f
+ strb r0, [r4, #0xf]
+ ldrb r0, [r4, #0xf]
+ mov r1, #0x1e
+ add r2, r0, #0
+ mul r2, r1
+ sub r2, r5, r2
+ mov r0, #0x64
+ mul r0, r2
+ bl _s32_div_f
+ strb r0, [r4, #0x10]
+ pop {r3, r4, r5, pc}
+ nop
+_021DBC54: .word 0x00000708
+ thumb_func_end MOD73_021DBBFC
+
+ .section .rodata
+ ; 0x021DBC58
+ .incbin "baserom.nds", 0x2CE578, 0x318
+
+ .section .data
+ ; 0x021DBF80
+ .incbin "baserom.nds", 0x2CE8A0, 0x40
diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s
new file mode 100644
index 00000000..416745d9
--- /dev/null
+++ b/arm9/modules/74/asm/module_74.s
@@ -0,0 +1,2022 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD74_021D74E0
+MOD74_021D74E0: ; 0x021D74E0
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ bl FUN_0200628C
+ mov r2, #1
+ add r5, r0, #0
+ mov r0, #3
+ mov r1, #0x4a
+ lsl r2, r2, #0x10
+ bl FUN_0201681C
+ mov r1, #0xad
+ add r0, r4, #0
+ lsl r1, r1, #2
+ mov r2, #0x4a
+ bl FUN_02006268
+ mov r2, #0xad
+ mov r1, #0
+ lsl r2, r2, #2
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ ldrh r0, [r5, #4]
+ strh r0, [r4, #8]
+ ldrh r0, [r5, #6]
+ strb r0, [r4, #0xa]
+ ldr r0, [r5]
+ bl LoadPlayerDataAddress
+ str r0, [r4, #0x18]
+ ldr r0, [r5]
+ bl FUN_02029FC8
+ str r0, [r4, #0x1c]
+ ldr r0, [r5]
+ bl FUN_0202A8D8
+ str r0, [r4, #0x20]
+ ldr r0, [r5]
+ bl FUN_0202A8E4
+ str r0, [r4, #0x24]
+ mov r0, #0x4a
+ str r0, [r4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D74E0
+
+ thumb_func_start MOD74_021D7540
+MOD74_021D7540: ; 0x021D7540
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ add r0, r5, #0
+ bl FUN_0200627C
+ ldr r0, [r4]
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7540
+
+ thumb_func_start MOD74_021D755C
+MOD74_021D755C: ; 0x021D755C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #4
+ bhi _021D760C
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D757A: ; jump table
+ .short _021D7584 - _021D757A - 2 ; case 0
+ .short _021D75AA - _021D757A - 2 ; case 1
+ .short _021D75BA - _021D757A - 2 ; case 2
+ .short _021D75EE - _021D757A - 2 ; case 3
+ .short _021D75FE - _021D757A - 2 ; case 4
+_021D7584:
+ bl MOD74_021D7624
+ cmp r0, #0
+ beq _021D760C
+ mov r0, #6
+ mov r1, #1
+ str r0, [sp]
+ str r1, [sp, #4]
+ ldr r0, [r5]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ mov r3, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D760C
+_021D75AA:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D760C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D760C
+_021D75BA:
+ ldrh r1, [r5, #8]
+ cmp r1, #0
+ bne _021D75C6
+ bl MOD74_021D77AC
+ b _021D75CA
+_021D75C6:
+ bl MOD74_021D790C
+_021D75CA:
+ cmp r0, #0
+ beq _021D760C
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #1
+ mov r1, #0
+ str r0, [sp, #4]
+ ldr r0, [r5]
+ add r2, r1, #0
+ str r0, [sp, #8]
+ mov r0, #3
+ add r3, r1, #0
+ bl FUN_0200E1D0
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D760C
+_021D75EE:
+ bl FUN_0200E308
+ cmp r0, #0
+ beq _021D760C
+ ldr r0, [r4]
+ add r0, r0, #1
+ str r0, [r4]
+ b _021D760C
+_021D75FE:
+ bl MOD74_021D76E8
+ cmp r0, #0
+ beq _021D760C
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, pc}
+_021D760C:
+ ldr r0, [r4]
+ cmp r0, #1
+ blt _021D761C
+ cmp r0, #3
+ bgt _021D761C
+ add r0, r5, #0
+ bl MOD74_021D82D4
+_021D761C:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D755C
+
+ thumb_func_start MOD74_021D7624
+MOD74_021D7624: ; 0x021D7624
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #4
+ bhi _021D76D2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021D763A: ; jump table
+ .short _021D7644 - _021D763A - 2 ; case 0
+ .short _021D7684 - _021D763A - 2 ; case 1
+ .short _021D7690 - _021D763A - 2 ; case 2
+ .short _021D76B6 - _021D763A - 2 ; case 3
+ .short _021D76C2 - _021D763A - 2 ; case 4
+_021D7644:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D76DC ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D76E0 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ bl MOD74_021D7764
+ mov r0, #0
+ bl FUN_0200E388
+ mov r0, #1
+ bl FUN_0200E388
+ add r0, r4, #0
+ bl MOD74_021D7934
+ b _021D76D2
+_021D7684:
+ bl MOD74_021D79F8
+ add r0, r4, #0
+ bl MOD74_021D7B20
+ b _021D76D2
+_021D7690:
+ bl MOD74_021D7A88
+ ldrh r0, [r4, #8]
+ cmp r0, #0
+ bne _021D76A8
+ add r0, r4, #0
+ bl MOD74_021D7D1C
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ b _021D76D2
+_021D76A8:
+ add r0, r4, #0
+ bl MOD74_021D7E9C
+ add r0, r4, #0
+ bl MOD74_021D8008
+ b _021D76D2
+_021D76B6:
+ bl MOD74_021D8200
+ add r0, r4, #0
+ bl MOD74_021D82F0
+ b _021D76D2
+_021D76C2:
+ ldr r0, _021D76E4 ; =MOD74_021D7784
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021D76D2:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D76DC: .word 0xFFFFE0FF
+_021D76E0: .word 0x04001000
+_021D76E4: .word MOD74_021D7784
+ thumb_func_end MOD74_021D7624
+
+ thumb_func_start MOD74_021D76E8
+MOD74_021D76E8: ; 0x021D76E8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _021D76F8
+ cmp r1, #1
+ beq _021D7722
+ b _021D7752
+_021D76F8:
+ ldrh r1, [r4, #8]
+ cmp r1, #0
+ beq _021D770E
+ bl MOD74_021D836C
+ add r0, r4, #0
+ bl MOD74_021D82B0
+ add r0, r4, #0
+ bl MOD74_021D7F28
+_021D770E:
+ add r0, r4, #0
+ bl MOD74_021D7AF0
+ add r0, r4, #0
+ bl MOD74_021D7BB4
+ add r0, r4, #0
+ bl MOD74_021D79C8
+ b _021D7752
+_021D7722:
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r2, #1
+ lsl r2, r2, #0x1a
+ ldr r1, [r2]
+ ldr r0, _021D775C ; =0xFFFFE0FF
+ and r1, r0
+ str r1, [r2]
+ ldr r2, _021D7760 ; =0x04001000
+ ldr r1, [r2]
+ and r0, r1
+ str r0, [r2]
+ mov r0, #0
+ str r0, [r4, #4]
+ mov r0, #1
+ pop {r4, pc}
+_021D7752:
+ ldr r0, [r4, #4]
+ add r0, r0, #1
+ str r0, [r4, #4]
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D775C: .word 0xFFFFE0FF
+_021D7760: .word 0x04001000
+ thumb_func_end MOD74_021D76E8
+
+ thumb_func_start MOD74_021D7764
+MOD74_021D7764: ; 0x021D7764
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021D7780 ; =0x021D8518
+ add r3, sp, #0
+ mov r2, #5
+_021D776E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D776E
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021D7780: .word 0x021D8518
+ thumb_func_end MOD74_021D7764
+
+ thumb_func_start MOD74_021D7784
+MOD74_021D7784: ; 0x021D7784
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD74_021D82E8
+ bl FUN_020AEEB8
+ ldr r0, [r4, #0x10]
+ bl FUN_0201AB60
+ ldr r3, _021D77A4 ; =0x027E0000
+ ldr r1, _021D77A8 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r4, pc}
+ .align 2, 0
+_021D77A4: .word 0x027E0000
+_021D77A8: .word 0x00003FF8
+ thumb_func_end MOD74_021D7784
+
+ thumb_func_start MOD74_021D77AC
+MOD74_021D77AC: ; 0x021D77AC
+ ldr r0, _021D77C0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ beq _021D77BA
+ mov r0, #1
+ bx lr
+_021D77BA:
+ mov r0, #0
+ bx lr
+ nop
+_021D77C0: .word 0x021C48B8
+ thumb_func_end MOD74_021D77AC
+
+ thumb_func_start MOD74_021D77C4
+MOD74_021D77C4: ; 0x021D77C4
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r1, _021D78B8 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #2
+ mov r3, #0
+ tst r1, r2
+ beq _021D77DC
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021D77DC:
+ mov r1, #1
+ add r5, r2, #0
+ tst r5, r1
+ beq _021D7800
+ ldrb r2, [r4, #0xb]
+ cmp r2, #0xa
+ blo _021D77F0
+ add sp, #8
+ add r0, r1, #0
+ pop {r3, r4, r5, pc}
+_021D77F0:
+ ldrb r1, [r4, #0xd]
+ add r1, r1, #1
+ strb r1, [r4, #0xd]
+ bl MOD74_021D80D0
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D7800:
+ mov r0, #0x40
+ tst r0, r2
+ beq _021D7828
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0
+ beq _021D787A
+ sub r0, r0, #1
+ strb r0, [r4, #0xb]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #0
+ bne _021D7820
+ ldrb r0, [r4, #0xe]
+ add r3, r1, #0
+ sub r0, r0, #1
+ strb r0, [r4, #0xe]
+ b _021D787A
+_021D7820:
+ sub r0, r0, #1
+ strb r0, [r4, #0xf]
+ add r3, r1, #0
+ b _021D787A
+_021D7828:
+ mov r0, #0x80
+ tst r0, r2
+ beq _021D7850
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0xa
+ bhs _021D787A
+ add r0, r0, #1
+ strb r0, [r4, #0xb]
+ ldrb r0, [r4, #0xf]
+ cmp r0, #1
+ bls _021D7848
+ ldrb r0, [r4, #0xe]
+ add r3, r1, #0
+ add r0, r0, #1
+ strb r0, [r4, #0xe]
+ b _021D787A
+_021D7848:
+ add r0, r0, #1
+ strb r0, [r4, #0xf]
+ add r3, r1, #0
+ b _021D787A
+_021D7850:
+ mov r0, #0x20
+ tst r0, r2
+ beq _021D7866
+ ldrb r0, [r4, #0xc]
+ mov r1, #3
+ add r0, r0, #2
+ bl _s32_div_f
+ strb r1, [r4, #0xc]
+ mov r3, #1
+ b _021D787A
+_021D7866:
+ mov r0, #0x10
+ tst r0, r2
+ beq _021D787A
+ ldrb r0, [r4, #0xc]
+ mov r1, #3
+ add r0, r0, #1
+ bl _s32_div_f
+ strb r1, [r4, #0xc]
+ mov r3, #1
+_021D787A:
+ ldrb r0, [r4, #0xb]
+ cmp r0, #0xa
+ bne _021D7884
+ mov r0, #2
+ strb r0, [r4, #0xc]
+_021D7884:
+ cmp r3, #0
+ bne _021D788E
+ add sp, #8
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021D788E:
+ ldrb r1, [r4, #0xb]
+ ldrb r2, [r4, #0xc]
+ ldrb r3, [r4, #0xf]
+ add r0, r4, #0
+ bl MOD74_021D83D4
+ ldrb r0, [r4, #0xb]
+ add r1, r4, #0
+ add r1, #0x7c
+ str r0, [sp]
+ ldrb r0, [r4, #0xc]
+ str r0, [sp, #4]
+ add r0, r4, #0
+ ldrb r3, [r4, #0xe]
+ ldr r2, [r4, #0x34]
+ add r0, #0xbc
+ bl MOD74_021D7F44
+ mov r0, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021D78B8: .word 0x021C48B8
+ thumb_func_end MOD74_021D77C4
+
+ thumb_func_start MOD74_021D78BC
+MOD74_021D78BC: ; 0x021D78BC
+ push {r4, lr}
+ ldr r1, _021D78E8 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #1
+ tst r1, r2
+ beq _021D78D6
+ bl MOD74_021D818C
+ ldrb r0, [r4, #0xd]
+ add r0, r0, #1
+ strb r0, [r4, #0xd]
+ b _021D78E4
+_021D78D6:
+ mov r1, #2
+ tst r1, r2
+ beq _021D78E4
+ bl MOD74_021D81E0
+ mov r0, #0
+ strb r0, [r4, #0xd]
+_021D78E4:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_021D78E8: .word 0x021C48B8
+ thumb_func_end MOD74_021D78BC
+
+ thumb_func_start MOD74_021D78EC
+MOD74_021D78EC: ; 0x021D78EC
+ push {r4, lr}
+ ldr r1, _021D7908 ; =0x021C48B8
+ add r4, r0, #0
+ ldr r2, [r1, #0x48]
+ mov r1, #3
+ tst r1, r2
+ beq _021D7902
+ bl MOD74_021D81E0
+ mov r0, #0
+ strb r0, [r4, #0xd]
+_021D7902:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021D7908: .word 0x021C48B8
+ thumb_func_end MOD74_021D78EC
+
+ thumb_func_start MOD74_021D790C
+MOD74_021D790C: ; 0x021D790C
+ push {r3, lr}
+ ldrb r1, [r0, #0xd]
+ cmp r1, #0
+ beq _021D791E
+ cmp r1, #1
+ beq _021D7924
+ cmp r1, #2
+ beq _021D792A
+ b _021D7930
+_021D791E:
+ bl MOD74_021D77C4
+ pop {r3, pc}
+_021D7924:
+ bl MOD74_021D78BC
+ pop {r3, pc}
+_021D792A:
+ bl MOD74_021D78EC
+ pop {r3, pc}
+_021D7930:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD74_021D790C
+
+ thumb_func_start MOD74_021D7934
+MOD74_021D7934: ; 0x021D7934
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x64
+ add r5, r0, #0
+ ldr r0, [r5]
+ bl FUN_02016B94
+ add r3, sp, #0
+ ldr r4, _021D79C0 ; =0x021D84A0
+ str r0, [r5, #0x10]
+ add r2, r3, #0
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r4, _021D79C4 ; =0x021D8570
+ add r3, sp, #0x10
+ mov r2, #0xa
+_021D795C:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021D795C
+ ldr r0, [r4]
+ mov r4, #0
+ str r0, [r3]
+ ldrh r0, [r5, #8]
+ add r7, r4, #0
+ add r0, r0, #2
+ cmp r0, #0
+ ble _021D799C
+ add r6, sp, #0x10
+_021D7976:
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x10]
+ lsr r1, r1, #0x18
+ add r2, r6, #0
+ mov r3, #0
+ bl FUN_02016C18
+ lsl r1, r4, #0x18
+ ldr r0, [r5, #0x10]
+ lsr r1, r1, #0x18
+ bl FUN_02018744
+ ldrh r0, [r5, #8]
+ add r7, r7, #1
+ add r4, r4, #1
+ add r0, r0, #2
+ add r6, #0x1c
+ cmp r7, r0
+ blt _021D7976
+_021D799C:
+ mov r0, #0
+ ldr r3, [r5]
+ mov r1, #0x20
+ add r2, r0, #0
+ bl FUN_02017F18
+ ldrh r0, [r5, #8]
+ cmp r0, #0
+ beq _021D79BA
+ ldr r3, [r5]
+ mov r0, #2
+ mov r1, #0x20
+ mov r2, #0
+ bl FUN_02017F18
+_021D79BA:
+ add sp, #0x64
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D79C0: .word 0x021D84A0
+_021D79C4: .word 0x021D8570
+ thumb_func_end MOD74_021D7934
+
+ thumb_func_start MOD74_021D79C8
+MOD74_021D79C8: ; 0x021D79C8
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldrh r0, [r6, #8]
+ mov r5, #0
+ add r4, r5, #0
+ add r0, r0, #2
+ cmp r0, #0
+ ble _021D79EE
+_021D79D8:
+ lsl r1, r5, #0x18
+ ldr r0, [r6, #0x10]
+ lsr r1, r1, #0x18
+ add r5, r5, #1
+ bl FUN_020178A0
+ ldrh r0, [r6, #8]
+ add r4, r4, #1
+ add r0, r0, #2
+ cmp r4, r0
+ blt _021D79D8
+_021D79EE:
+ ldr r0, [r6, #0x10]
+ bl FUN_02016A18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D79C8
+
+ thumb_func_start MOD74_021D79F8
+MOD74_021D79F8: ; 0x021D79F8
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ ldr r1, [r5]
+ mov r0, #0x7b
+ bl FUN_02006670
+ add r4, r0, #0
+ mov r0, #5
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x7b
+ bl FUN_02079B60
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0x40
+ str r0, [sp, #0xc]
+ mov r0, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x7b
+ bl FUN_02079B60
+ ldrh r0, [r5, #8]
+ cmp r0, #1
+ bne _021D7A4E
+ mov r0, #7
+ b _021D7A5A
+_021D7A4E:
+ ldrb r0, [r5, #0xa]
+ cmp r0, #2
+ bne _021D7A58
+ mov r0, #8
+ b _021D7A5A
+_021D7A58:
+ mov r0, #6
+_021D7A5A:
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x10]
+ ldr r1, [r5]
+ add r2, r4, #0
+ mov r3, #0x7b
+ bl FUN_02079B60
+ add r0, r4, #0
+ bl FUN_020066F4
+ ldr r0, [r5, #0x10]
+ mov r1, #1
+ bl FUN_0201AC68
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D79F8
+
+ thumb_func_start MOD74_021D7A88
+MOD74_021D7A88: ; 0x021D7A88
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ ldrh r0, [r6, #8]
+ cmp r0, #0
+ bne _021D7AB8
+ add r5, r6, #0
+ ldr r4, _021D7AE8 ; =0x021D8540
+ mov r7, #0
+ add r5, #0x6c
+_021D7A9A:
+ ldr r0, [r6, #0x10]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r7, r7, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r7, #5
+ blt _021D7A9A
+ b _021D7ADC
+_021D7AB8:
+ add r5, r6, #0
+ ldr r4, _021D7AEC ; =0x021D84C4
+ mov r7, #0
+ add r5, #0x6c
+_021D7AC0:
+ ldr r0, [r6, #0x10]
+ add r1, r5, #0
+ add r2, r4, #0
+ bl FUN_02019150
+ add r0, r5, #0
+ mov r1, #0
+ bl FUN_02019620
+ add r7, r7, #1
+ add r4, #8
+ add r5, #0x10
+ cmp r7, #3
+ blt _021D7AC0
+_021D7ADC:
+ ldr r2, [r6]
+ mov r0, #0
+ mov r1, #0x40
+ bl FUN_02002ED0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021D7AE8: .word 0x021D8540
+_021D7AEC: .word 0x021D84C4
+ thumb_func_end MOD74_021D7A88
+
+ thumb_func_start MOD74_021D7AF0
+MOD74_021D7AF0: ; 0x021D7AF0
+ push {r4, r5, r6, lr}
+ ldrh r1, [r0, #8]
+ cmp r1, #0
+ bne _021D7AFC
+ mov r6, #5
+ b _021D7AFE
+_021D7AFC:
+ mov r6, #3
+_021D7AFE:
+ mov r4, #0
+ cmp r6, #0
+ ble _021D7B1C
+ add r5, r0, #0
+ add r5, #0x6c
+_021D7B08:
+ add r0, r5, #0
+ bl FUN_02019570
+ add r0, r5, #0
+ bl FUN_02019178
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, r6
+ blt _021D7B08
+_021D7B1C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7AF0
+
+ thumb_func_start MOD74_021D7B20
+MOD74_021D7B20: ; 0x021D7B20
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r3, [r5]
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #0x11
+ bl FUN_0200A86C
+ str r0, [r5, #0x28]
+ ldr r2, [r5]
+ mov r0, #2
+ mov r1, #0x4c
+ bl FUN_0200AA90
+ str r0, [r5, #0x2c]
+ ldr r1, [r5]
+ mov r0, #0x4c
+ bl FUN_020219F4
+ str r0, [r5, #0x30]
+ mov r6, #0
+ add r4, r5, #0
+_021D7B4C:
+ add r1, r6, #0
+ ldr r0, [r5, #0x28]
+ add r1, #9
+ bl FUN_0200A914
+ str r0, [r4, #0x4c]
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _021D7B4C
+ ldr r0, [r5, #0x28]
+ mov r1, #0xf
+ bl FUN_0200A914
+ str r0, [r5, #0x38]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x11
+ bl FUN_0200A914
+ str r0, [r5, #0x3c]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x12
+ bl FUN_0200A914
+ str r0, [r5, #0x34]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x13
+ bl FUN_0200A914
+ str r0, [r5, #0x40]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x14
+ bl FUN_0200A914
+ str r0, [r5, #0x44]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x15
+ bl FUN_0200A914
+ str r0, [r5, #0x48]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x16
+ bl FUN_0200A914
+ str r0, [r5, #0x64]
+ ldr r0, [r5, #0x28]
+ mov r1, #0x17
+ bl FUN_0200A914
+ str r0, [r5, #0x68]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7B20
+
+ thumb_func_start MOD74_021D7BB4
+MOD74_021D7BB4: ; 0x021D7BB4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x68]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x64]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x48]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x44]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x40]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x34]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x3c]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x38]
+ bl FUN_02021A20
+ mov r4, #0
+ add r5, r6, #0
+_021D7BEC:
+ ldr r0, [r5, #0x4c]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _021D7BEC
+ ldr r0, [r6, #0x30]
+ bl FUN_02021A20
+ ldr r0, [r6, #0x2c]
+ bl FUN_0200AB18
+ ldr r0, [r6, #0x28]
+ bl FUN_0200A8B8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7BB4
+
+ thumb_func_start MOD74_021D7C10
+MOD74_021D7C10: ; 0x021D7C10
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r7, r3, #0
+ add r4, r1, #0
+ ldr r0, [r5, #0x1c]
+ add r1, r7, #0
+ add r6, r2, #0
+ bl FUN_0202A150
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #0x1c]
+ add r1, r7, #1
+ bl FUN_0202A150
+ lsl r0, r0, #0x10
+ add r6, #8
+ lsr r7, r0, #0x10
+ lsl r1, r6, #0x10
+ ldr r0, [r5, #0x20]
+ lsr r1, r1, #0x10
+ mov r2, #0
+ bl FUN_0202A578
+ lsl r2, r0, #0x10
+ add r0, sp, #0x18
+ ldrb r6, [r0, #0x10]
+ lsr r2, r2, #0xe
+ mov r0, #0xff
+ str r6, [sp]
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ add r2, r5, r2
+ ldr r2, [r2, #0x4c]
+ add r0, r4, #0
+ mov r3, #4
+ bl FUN_0201BDE0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ mov r1, #0
+ add r2, r7, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r5, #0x30]
+ ldr r2, [r5, #0x5c]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [r5, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xa4
+ sub r3, r1, r0
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7D18 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r0, sp, #0x18
+ ldrb r0, [r0, #0x10]
+ add r0, #0x18
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x54]
+ add r0, r4, #0
+ mov r3, #4
+ bl FUN_0201BDE0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r0, [r5, #0x2c]
+ ldr r2, [sp, #0x10]
+ mov r1, #0
+ mov r3, #4
+ bl FUN_0200AD38
+ ldr r0, [r5, #0x2c]
+ ldr r1, [r5, #0x30]
+ ldr r2, [r5, #0x5c]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [r5, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xa4
+ sub r3, r1, r0
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7D18 ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5, #0x30]
+ add r0, r4, #0
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_020191D0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D7D18: .word 0x00010200
+ thumb_func_end MOD74_021D7C10
+
+ thumb_func_start MOD74_021D7D1C
+MOD74_021D7D1C: ; 0x021D7D1C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r3, r1, r0
+ mov r0, #8
+ str r0, [sp]
+ mov r1, #0
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ ldr r0, _021D7E94 ; =0x000F0200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x6c
+ asr r3, r5, #1
+ bl FUN_0201BDE0
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ add r1, r1, #3
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xc1
+ str r1, [sp, #4]
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x7c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ add r1, r1, #6
+ bl FUN_0200A8E0
+ mov r0, #3
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #0xc1
+ str r1, [sp, #4]
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x8c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ ldrb r0, [r4, #0xa]
+ cmp r0, #0
+ beq _021D7DB8
+ cmp r0, #1
+ beq _021D7DDE
+ cmp r0, #2
+ beq _021D7E04
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021D7DB8:
+ add r1, r4, #0
+ mov r2, #0
+ add r0, r4, #0
+ add r1, #0x9c
+ mov r3, #0x35
+ str r2, [sp]
+ bl MOD74_021D7C10
+ mov r0, #3
+ str r0, [sp]
+ add r0, r4, #0
+ add r4, #0xac
+ add r1, r4, #0
+ mov r2, #1
+ mov r3, #0x37
+ bl MOD74_021D7C10
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021D7DDE:
+ mov r0, #0
+ add r1, r4, #0
+ str r0, [sp]
+ add r0, r4, #0
+ add r1, #0x9c
+ mov r2, #2
+ mov r3, #0x39
+ bl MOD74_021D7C10
+ add r0, r4, #0
+ add r4, #0xac
+ mov r2, #3
+ add r1, r4, #0
+ mov r3, #0x3b
+ str r2, [sp]
+ bl MOD74_021D7C10
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+_021D7E04:
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ mov r1, #0xc
+ bl FUN_0200A8E0
+ mov r0, #0xa
+ str r0, [sp]
+ mov r1, #0
+ mov r0, #0xc1
+ str r1, [sp, #4]
+ lsl r0, r0, #0xa
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x9c
+ mov r3, #4
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x20]
+ mov r1, #0
+ bl FUN_0202A444
+ mov r1, #0
+ add r2, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, [r4, #0x2c]
+ mov r3, #2
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x60]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [r4, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x40
+ sub r1, r1, r0
+ lsr r0, r1, #0x1f
+ add r0, r1, r0
+ asr r3, r0, #1
+ mov r0, #0xa
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D7E98 ; =0x00050600
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r3, #0x40
+ add r0, #0x9c
+ bl FUN_0201BDE0
+ mov r0, #3
+ str r0, [sp]
+ add r0, r4, #0
+ add r4, #0xac
+ add r1, r4, #0
+ mov r2, #4
+ mov r3, #0x3d
+ bl MOD74_021D7C10
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D7E94: .word 0x000F0200
+_021D7E98: .word 0x00050600
+ thumb_func_end MOD74_021D7D1C
+
+ thumb_func_start MOD74_021D7E9C
+MOD74_021D7E9C: ; 0x021D7E9C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ ldr r0, [r7, #0x24]
+ ldr r1, [r7]
+ bl FUN_0202A878
+ str r0, [sp]
+ ldr r5, [sp]
+ mov r0, #0
+ add r4, r7, #0
+ str r0, [sp, #4]
+ add r4, #0xbc
+ add r6, r5, #0
+_021D7EB8:
+ add r0, r5, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ add r1, r4, #0
+ add r1, #8
+ lsl r0, r0, #0x1e
+ lsr r0, r0, #0x1f
+ strb r0, [r4, #4]
+ ldrb r0, [r5, #0x12]
+ mov r2, #8
+ strb r0, [r4, #5]
+ ldrb r0, [r5, #0x13]
+ strb r0, [r4, #6]
+ add r0, r5, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ lsl r0, r0, #0x1f
+ lsr r0, r0, #0x1f
+ strb r0, [r4, #7]
+ add r0, r5, #0
+ add r0, #0x18
+ bl MI_CpuCopy8
+ ldr r1, [r7]
+ mov r0, #8
+ bl FUN_020219F4
+ str r0, [r4]
+ ldrb r0, [r4, #7]
+ cmp r0, #0
+ ldr r0, [r4]
+ beq _021D7F06
+ ldrb r1, [r4, #4]
+ lsl r1, r1, #2
+ add r1, r7, r1
+ ldr r1, [r1, #0x64]
+ bl FUN_02021A74
+ b _021D7F0C
+_021D7F06:
+ add r1, r6, #0
+ bl FUN_02021E28
+_021D7F0C:
+ ldr r0, [sp, #4]
+ add r4, #0x10
+ add r0, r0, #1
+ add r5, #0x22
+ add r6, #0x22
+ str r0, [sp, #4]
+ cmp r0, #0x1e
+ blt _021D7EB8
+ ldr r0, [sp]
+ bl FUN_02016A18
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7E9C
+
+ thumb_func_start MOD74_021D7F28
+MOD74_021D7F28: ; 0x021D7F28
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021D7F2E:
+ add r0, r5, #0
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, #0x10
+ cmp r4, #0x1e
+ blt _021D7F2E
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D7F28
+
+ thumb_func_start MOD74_021D7F44
+MOD74_021D7F44: ; 0x021D7F44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #0x10]
+ str r1, [sp, #0x14]
+ add r0, r1, #0
+ mov r1, #0
+ add r5, r2, #0
+ add r4, r3, #0
+ bl FUN_02019620
+ cmp r4, #8
+ blo _021D7F8C
+ mov r0, #2
+ str r0, [sp, #0x18]
+ mov r0, #0
+ add r1, r5, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0x28
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #0x34
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D7FFC ; =0x00010200
+ mov r1, #0
+ str r0, [sp, #8]
+ ldr r0, [sp, #0x14]
+ add r2, r5, #0
+ add r3, #0xa0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ b _021D7F90
+_021D7F8C:
+ mov r0, #3
+ str r0, [sp, #0x18]
+_021D7F90:
+ lsl r0, r4, #1
+ add r0, r4, r0
+ str r0, [sp, #0x1c]
+ mov r0, #0
+ str r0, [sp, #0x20]
+ ldr r0, [sp, #0x18]
+ cmp r0, #0
+ ble _021D7FF0
+ ldr r7, [sp, #0x20]
+ mov r6, #4
+_021D7FA4:
+ mov r4, #0
+ add r5, r4, #0
+_021D7FA8:
+ ldr r0, [sp, #0x1c]
+ add r1, r4, r7
+ add r0, r0, r1
+ lsl r1, r0, #4
+ ldr r0, [sp, #0x10]
+ add r2, r0, r1
+ ldrb r0, [r2, #4]
+ cmp r0, #0
+ beq _021D7FBE
+ ldr r1, _021D8000 ; =0x000B0C00
+ b _021D7FC0
+_021D7FBE:
+ ldr r1, _021D8004 ; =0x00090A00
+_021D7FC0:
+ str r6, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ ldr r2, [r2]
+ mov r1, #0
+ add r3, r5, #0
+ bl FUN_0201BDE0
+ add r4, r4, #1
+ add r5, #0x48
+ cmp r4, #3
+ blt _021D7FA8
+ ldr r0, [sp, #0x20]
+ add r7, r7, #3
+ add r1, r0, #1
+ ldr r0, [sp, #0x18]
+ add r6, #0x18
+ str r1, [sp, #0x20]
+ cmp r1, r0
+ blt _021D7FA4
+_021D7FF0:
+ ldr r0, [sp, #0x14]
+ bl FUN_020191D0
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021D7FFC: .word 0x00010200
+_021D8000: .word 0x000B0C00
+_021D8004: .word 0x00090A00
+ thumb_func_end MOD74_021D7F44
+
+ thumb_func_start MOD74_021D8008
+MOD74_021D8008: ; 0x021D8008
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ ldr r0, [r4, #0x24]
+ add r1, sp, #0x10
+ bl FUN_0202A864
+ ldr r0, [r4, #0x30]
+ bl FUN_02021A4C
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ add r2, sp, #0x10
+ ldrb r2, [r2]
+ ldr r0, [r4, #0x2c]
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r0, #2
+ str r0, [sp]
+ mov r1, #1
+ str r1, [sp, #4]
+ add r2, sp, #0x10
+ ldrb r2, [r2, #1]
+ ldr r0, [r4, #0x2c]
+ mov r3, #3
+ bl FUN_0200AD38
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x38]
+ bl FUN_0200B7B8
+ mov r0, #0
+ ldr r1, [r4, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r3, r1, r0
+ mov r0, #4
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021D80CC ; =0x000F0200
+ lsr r5, r3, #0x1f
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ add r5, r3, r5
+ ldr r2, [r4, #0x30]
+ add r0, #0x6c
+ asr r3, r5, #1
+ bl FUN_0201BDE0
+ ldrb r1, [r4, #0xa]
+ ldr r0, [r4, #0x28]
+ ldr r2, [r4, #0x30]
+ add r1, #0x10
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x30]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r3, r1, r0
+ mov r0, #0x14
+ str r0, [sp]
+ mov r1, #0
+ lsr r5, r3, #0x1f
+ add r5, r3, r5
+ ldr r0, _021D80CC ; =0x000F0200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x6c
+ asr r3, r5, #1
+ bl FUN_0201BDE0
+ mov r3, #0
+ str r3, [sp]
+ str r3, [sp, #4]
+ add r0, r4, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x34]
+ add r0, #0xbc
+ add r1, #0x7c
+ bl MOD74_021D7F44
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_021D80CC: .word 0x000F0200
+ thumb_func_end MOD74_021D8008
+
+ thumb_func_start MOD74_021D80D0
+MOD74_021D80D0: ; 0x021D80D0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r2, [r4, #0xb]
+ ldrb r3, [r4, #0xc]
+ add r0, #0xbc
+ lsl r1, r2, #1
+ add r1, r2, r1
+ add r1, r3, r1
+ lsl r1, r1, #4
+ add r5, r0, r1
+ ldrb r2, [r5, #5]
+ cmp r2, #0
+ bne _021D8108
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D8188 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x48]
+ add r0, #0x8c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ b _021D8172
+_021D8108:
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ ldr r0, [r4, #0x2c]
+ bne _021D813C
+ mov r1, #0
+ bl FUN_0200B4A0
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x44]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D8188 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x8c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ b _021D8172
+_021D813C:
+ mov r1, #0
+ bl FUN_0200B4A0
+ ldrb r2, [r5, #5]
+ ldrb r3, [r5, #6]
+ ldr r0, [r4, #0x2c]
+ mov r1, #1
+ bl FUN_0200B4D8
+ ldr r0, [r4, #0x2c]
+ ldr r1, [r4, #0x30]
+ ldr r2, [r4, #0x40]
+ bl FUN_0200B7B8
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D8188 ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x30]
+ add r0, #0x8c
+ add r3, r1, #0
+ bl FUN_0201BDE0
+_021D8172:
+ add r0, r4, #0
+ add r0, #0x8c
+ bl FUN_020191D0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD74_021D8388
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D8188: .word 0x00010200
+ thumb_func_end MOD74_021D80D0
+
+ thumb_func_start MOD74_021D818C
+MOD74_021D818C: ; 0x021D818C
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ ldrb r2, [r4, #0xb]
+ ldrb r3, [r4, #0xc]
+ add r0, #0xbc
+ lsl r1, r2, #1
+ add r1, r2, r1
+ add r1, r3, r1
+ lsl r1, r1, #4
+ add r0, r0, r1
+ ldr r1, [r4]
+ add r0, #8
+ bl FUN_020137D4
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x8c
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #4
+ str r0, [sp]
+ mov r1, #0
+ ldr r0, _021D81DC ; =0x00010200
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ add r4, #0x8c
+ add r0, r4, #0
+ add r2, r5, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r5, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_021D81DC: .word 0x00010200
+ thumb_func_end MOD74_021D818C
+
+ thumb_func_start MOD74_021D81E0
+MOD74_021D81E0: ; 0x021D81E0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x8c
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x8c
+ bl FUN_02019570
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD74_021D8388
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D81E0
+
+ thumb_func_start MOD74_021D8200
+MOD74_021D8200: ; 0x021D8200
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x50
+ add r4, r0, #0
+ ldr r1, [r4]
+ mov r0, #0x20
+ bl FUN_0201C24C
+ ldr r0, [r4]
+ bl FUN_0200BB14
+ mov r1, #0xa7
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ bl FUN_0200BB34
+ mov r7, #0x2a
+ lsl r7, r7, #4
+ add r2, sp, #0x30
+ ldr r3, _021D82A4 ; =0x021D84F8
+ str r0, [r4, r7]
+ ldmia r3!, {r0, r1}
+ add r6, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ ldr r5, _021D82A8 ; =0x021D84B0
+ stmia r2!, {r0, r1}
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ add r1, r6, #0
+ str r0, [r3]
+ sub r0, r7, #4
+ ldr r0, [r4, r0]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ sub r1, r7, #4
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ mov r2, #4
+ bl FUN_0200BBF0
+ ldr r0, [r4]
+ bl FUN_0200A064
+ ldr r0, [r4]
+ bl FUN_0200A06C
+ ldr r5, _021D82AC ; =0x021D84DC
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ sub r1, r7, #4
+ str r0, [r3]
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_0200BD20
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ add sp, #0x50
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D82A4: .word 0x021D84F8
+_021D82A8: .word 0x021D84B0
+_021D82AC: .word 0x021D84DC
+ thumb_func_end MOD74_021D8200
+
+ thumb_func_start MOD74_021D82B0
+MOD74_021D82B0: ; 0x021D82B0
+ push {r4, lr}
+ mov r1, #0xa7
+ add r4, r0, #0
+ lsl r1, r1, #2
+ ldr r0, [r4, r1]
+ add r1, r1, #4
+ ldr r1, [r4, r1]
+ bl FUN_0200BCE0
+ mov r0, #0xa7
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200BD04
+ bl FUN_0201C29C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D82B0
+
+ thumb_func_start MOD74_021D82D4
+MOD74_021D82D4: ; 0x021D82D4
+ push {r3, lr}
+ mov r1, #0x2a
+ lsl r1, r1, #4
+ ldr r0, [r0, r1]
+ cmp r0, #0
+ beq _021D82E4
+ bl FUN_0200BC1C
+_021D82E4:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D82D4
+
+ thumb_func_start MOD74_021D82E8
+MOD74_021D82E8: ; 0x021D82E8
+ ldr r3, _021D82EC ; =FUN_0200BC30
+ bx r3
+ .align 2, 0
+_021D82EC: .word FUN_0200BC30
+ thumb_func_end MOD74_021D82E8
+
+ thumb_func_start MOD74_021D82F0
+MOD74_021D82F0: ; 0x021D82F0
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r6, _021D8368 ; =0x021D85C4
+ mov r7, #0
+ add r4, r5, #0
+_021D82FA:
+ mov r0, #0xa7
+ mov r1, #0x2a
+ lsl r0, r0, #2
+ lsl r1, r1, #4
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200BE38
+ mov r1, #0xa9
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r7, r7, #1
+ add r6, #0x28
+ add r4, r4, #4
+ cmp r7, #4
+ blt _021D82FA
+ add r0, r1, #0
+ add r0, #8
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0xab
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200BC
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #3
+ bl FUN_02020238
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021D8368: .word 0x021D85C4
+ thumb_func_end MOD74_021D82F0
+
+ thumb_func_start MOD74_021D836C
+MOD74_021D836C: ; 0x021D836C
+ push {r4, r5, r6, lr}
+ mov r6, #0xa9
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_021D8376:
+ ldr r0, [r5, r6]
+ bl FUN_0200BC14
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _021D8376
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD74_021D836C
+
+ thumb_func_start MOD74_021D8388
+MOD74_021D8388: ; 0x021D8388
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ cmp r1, #0
+ bne _021D83A0
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020248
+ mov r4, #0
+ b _021D83AE
+_021D83A0:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020248
+ mov r4, #1
+_021D83AE:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020200BC
+ mov r0, #0xab
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020200BC
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_020200BC
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD74_021D8388
+
+ thumb_func_start MOD74_021D83D4
+MOD74_021D83D4: ; 0x021D83D4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldrb r0, [r5, #0xe]
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r0, #8
+ bne _021D8428
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ cmp r4, #0xa
+ bne _021D840E
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_02020208
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021D8440
+_021D840E:
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02020208
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ b _021D8440
+_021D8428:
+ mov r0, #0xa9
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0xaa
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+_021D8440:
+ ldrb r0, [r5, #0xe]
+ cmp r0, #0
+ beq _021D844C
+ cmp r0, #8
+ beq _021D845A
+ b _021D8468
+_021D844C:
+ mov r0, #0xab
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021D8480
+_021D845A:
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_020200A0
+ b _021D8480
+_021D8468:
+ mov r0, #0xab
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+ mov r0, #0x2b
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #1
+ bl FUN_020200A0
+_021D8480:
+ mov r1, #0x48
+ mov r2, #0x18
+ mov r0, #0xa9
+ mul r1, r6
+ mul r2, r7
+ lsl r0, r0, #2
+ add r1, #0x36
+ add r2, #0x44
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r5, r0]
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C6E4
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD74_021D83D4
+
+ .section .rodata
+ ; 0x021D84A0
+ .incbin "baserom.nds", 0x2CF9C0, 0x1C4
+
+ .section .data
+ ; 0x021D8680
+ .incbin "baserom.nds", 0x2CFBA0, 0x80
diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s
new file mode 100644
index 00000000..6f85109d
--- /dev/null
+++ b/arm9/modules/75/asm/module_75.s
@@ -0,0 +1,11114 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD75_021E6BA0
+MOD75_021E6BA0: ; 0x021E6BA0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ bl FUN_02015F1C
+ bl FUN_0201E6D8
+ bl FUN_0201E740
+ mov r0, #1
+ lsl r0, r0, #0x1a
+ ldr r2, [r0]
+ ldr r1, _021E6D58 ; =0xFFFFE0FF
+ ldr r3, _021E6D5C ; =0x04001000
+ and r2, r1
+ str r2, [r0]
+ ldr r2, [r3]
+ add r0, #0x50
+ and r1, r2
+ str r1, [r3]
+ mov r1, #0
+ strh r1, [r0]
+ add r3, #0x50
+ strh r1, [r3]
+ mov r1, #6
+ mov r0, #3
+ lsl r2, r1, #0xf
+ bl FUN_0201681C
+ ldr r1, _021E6D60 ; =0x000004A4
+ add r0, r5, #0
+ mov r2, #6
+ bl FUN_02006268
+ ldr r2, _021E6D60 ; =0x000004A4
+ mov r1, #0
+ add r4, r0, #0
+ bl Call_FillMemWithValue
+ add r0, r5, #0
+ bl FUN_0200628C
+ add r1, r4, #0
+ add r1, #0xc4
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD75_021E6FA4
+ mov r0, #6
+ bl FUN_02016B94
+ str r0, [r4]
+ add r0, r4, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_020239CC
+ ldr r1, _021E6D64 ; =0x00000425
+ mov r3, #0
+ strb r0, [r4, r1]
+ mov r1, #6
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r1, [sp, #8]
+ mov r1, #3
+ add r2, r1, #0
+ bl FUN_0200E1D0
+ mov r0, #3
+ mov r1, #8
+ bl FUN_0201669C
+ add r0, r4, #0
+ bl MOD75_021E7470
+ add r0, r4, #0
+ bl MOD75_021E737C
+ add r0, r4, #0
+ bl MOD75_021E771C
+ add r0, r4, #0
+ bl MOD75_021E73E8
+ add r0, r4, #0
+ bl MOD75_021E7CE4
+ bl MOD75_021E7034
+ ldr r0, [r4]
+ bl MOD75_021E7054
+ add r0, r4, #0
+ bl MOD75_021E7214
+ add r0, r4, #0
+ bl MOD75_021E8680
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ add r0, r4, #0
+ bl MOD75_021EA604
+ mov r0, #1
+ bl FUN_02002BB8
+ add r0, r4, #0
+ bl MOD75_021EA7BC
+ add r0, r4, #0
+ bl MOD75_021EA81C
+ add r0, r4, #0
+ bl MOD75_021EA8BC
+ add r0, r4, #0
+ bl MOD75_021EA9F8
+ add r0, r4, #0
+ bl MOD75_021EB048
+ add r0, r4, #0
+ bl MOD75_021EAD94
+ add r0, r4, #0
+ bl MOD75_021E7580
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ bl MOD75_021E7758
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ mov r3, #9
+ bl MOD75_021E7794
+ add r0, r4, #0
+ bl MOD75_021EB9B4
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r2, r3, r2
+ ldrh r1, [r2, #0xa]
+ ldrh r2, [r2, #8]
+ add r0, r4, #0
+ bl MOD75_021E77E8
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ add r0, #0xfc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021E6D3A
+ add r0, r4, #0
+ bl MOD75_021EB8E8
+_021E6D3A:
+ ldr r0, _021E6D68 ; =MOD75_021E700C
+ add r1, r4, #0
+ bl FUN_02015F10
+ mov r1, #0
+ mov r0, #0x33
+ add r2, r1, #0
+ bl FUN_0200433C
+ bl FUN_02033F20
+ mov r0, #1
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021E6D58: .word 0xFFFFE0FF
+_021E6D5C: .word 0x04001000
+_021E6D60: .word 0x000004A4
+_021E6D64: .word 0x00000425
+_021E6D68: .word MOD75_021E700C
+ thumb_func_end MOD75_021E6BA0
+
+ thumb_func_start MOD75_021E6D6C
+MOD75_021E6D6C: ; 0x021E6D6C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ bl FUN_02006278
+ ldr r1, [r4]
+ add r5, r0, #0
+ cmp r1, #0x18
+ bhi _021E6DC2
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021E6D88: ; jump table
+ .short _021E6DBA - _021E6D88 - 2 ; case 0
+ .short _021E6DF2 - _021E6D88 - 2 ; case 1
+ .short _021E6DFA - _021E6D88 - 2 ; case 2
+ .short _021E6E36 - _021E6D88 - 2 ; case 3
+ .short _021E6E44 - _021E6D88 - 2 ; case 4
+ .short _021E6EE0 - _021E6D88 - 2 ; case 5
+ .short _021E6EE0 - _021E6D88 - 2 ; case 6
+ .short _021E6E4C - _021E6D88 - 2 ; case 7
+ .short _021E6E54 - _021E6D88 - 2 ; case 8
+ .short _021E6E5C - _021E6D88 - 2 ; case 9
+ .short _021E6E64 - _021E6D88 - 2 ; case 10
+ .short _021E6E6C - _021E6D88 - 2 ; case 11
+ .short _021E6E74 - _021E6D88 - 2 ; case 12
+ .short _021E6E7C - _021E6D88 - 2 ; case 13
+ .short _021E6E84 - _021E6D88 - 2 ; case 14
+ .short _021E6E8C - _021E6D88 - 2 ; case 15
+ .short _021E6E94 - _021E6D88 - 2 ; case 16
+ .short _021E6E9C - _021E6D88 - 2 ; case 17
+ .short _021E6EA4 - _021E6D88 - 2 ; case 18
+ .short _021E6EAC - _021E6D88 - 2 ; case 19
+ .short _021E6EB4 - _021E6D88 - 2 ; case 20
+ .short _021E6EBC - _021E6D88 - 2 ; case 21
+ .short _021E6EC4 - _021E6D88 - 2 ; case 22
+ .short _021E6ECC - _021E6D88 - 2 ; case 23
+ .short _021E6ED4 - _021E6D88 - 2 ; case 24
+_021E6DBA:
+ bl FUN_0200E308
+ cmp r0, #1
+ beq _021E6DC4
+_021E6DC2:
+ b _021E6EE0
+_021E6DC4:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _021E6DD8
+ mov r0, #0x10
+ str r0, [r4]
+ b _021E6EE0
+_021E6DD8:
+ cmp r0, #1
+ bne _021E6DE2
+ mov r0, #0xe
+ str r0, [r4]
+ b _021E6EE0
+_021E6DE2:
+ cmp r0, #3
+ bne _021E6DEC
+ mov r0, #0x17
+ str r0, [r4]
+ b _021E6EE0
+_021E6DEC:
+ mov r0, #1
+ str r0, [r4]
+ b _021E6EE0
+_021E6DF2:
+ bl MOD75_021E7AE0
+ str r0, [r4]
+ b _021E6EE0
+_021E6DFA:
+ bl MOD75_021E86C0
+ add r0, r5, #0
+ bl MOD75_021E7EE4
+ cmp r0, #1
+ bne _021E6EE0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _021E6E1C
+ mov r0, #0x10
+ str r0, [r4]
+ b _021E6EE0
+_021E6E1C:
+ cmp r0, #1
+ bne _021E6E26
+ mov r0, #0xe
+ str r0, [r4]
+ b _021E6EE0
+_021E6E26:
+ cmp r0, #3
+ bne _021E6E30
+ mov r0, #0x17
+ str r0, [r4]
+ b _021E6EE0
+_021E6E30:
+ mov r0, #1
+ str r0, [r4]
+ b _021E6EE0
+_021E6E36:
+ bl MOD75_021E88BC
+ cmp r0, #1
+ bne _021E6EE0
+ mov r0, #1
+ str r0, [r4]
+ b _021E6EE0
+_021E6E44:
+ bl MOD75_021E8CF4
+ str r0, [r4]
+ b _021E6EE0
+_021E6E4C:
+ bl MOD75_021E94D0
+ str r0, [r4]
+ b _021E6EE0
+_021E6E54:
+ bl MOD75_021E95BC
+ str r0, [r4]
+ b _021E6EE0
+_021E6E5C:
+ bl MOD75_021E95E0
+ str r0, [r4]
+ b _021E6EE0
+_021E6E64:
+ bl MOD75_021E971C
+ str r0, [r4]
+ b _021E6EE0
+_021E6E6C:
+ bl MOD75_021E9750
+ str r0, [r4]
+ b _021E6EE0
+_021E6E74:
+ bl MOD75_021E8EB0
+ str r0, [r4]
+ b _021E6EE0
+_021E6E7C:
+ bl MOD75_021E8FC8
+ str r0, [r4]
+ b _021E6EE0
+_021E6E84:
+ bl MOD75_021E9840
+ str r0, [r4]
+ b _021E6EE0
+_021E6E8C:
+ bl MOD75_021E9930
+ str r0, [r4]
+ b _021E6EE0
+_021E6E94:
+ bl MOD75_021E9980
+ str r0, [r4]
+ b _021E6EE0
+_021E6E9C:
+ bl MOD75_021E9B4C
+ str r0, [r4]
+ b _021E6EE0
+_021E6EA4:
+ bl MOD75_021E9B88
+ str r0, [r4]
+ b _021E6EE0
+_021E6EAC:
+ bl MOD75_021E9D6C
+ str r0, [r4]
+ b _021E6EE0
+_021E6EB4:
+ bl MOD75_021E9D90
+ str r0, [r4]
+ b _021E6EE0
+_021E6EBC:
+ bl MOD75_021E9EE4
+ str r0, [r4]
+ b _021E6EE0
+_021E6EC4:
+ bl MOD75_021E9F74
+ str r0, [r4]
+ b _021E6EE0
+_021E6ECC:
+ bl MOD75_021E9FDC
+ str r0, [r4]
+ b _021E6EE0
+_021E6ED4:
+ bl FUN_0200E308
+ cmp r0, #1
+ bne _021E6EE0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E6EE0:
+ add r0, r5, #0
+ bl MOD75_021E85D8
+ add r0, r5, #0
+ bl MOD75_021EC3B8
+ add r0, r5, #0
+ bl MOD75_021EC018
+ add r5, #0xdc
+ ldr r0, [r5]
+ bl FUN_0200BC1C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E6D6C
+
+ thumb_func_start MOD75_021E6F00
+MOD75_021E6F00: ; 0x021E6F00
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_02006278
+ add r4, r0, #0
+ bl MOD75_021EBFE4
+ add r0, r4, #0
+ bl MOD75_021E7AA4
+ add r0, r4, #0
+ bl MOD75_021E752C
+ add r0, r4, #4
+ bl MOD75_021EA7A0
+ ldr r0, [r4]
+ bl MOD75_021E71BC
+ bl FUN_0201CD04
+ bl FUN_0201C29C
+ add r0, r4, #0
+ bl MOD75_021EB110
+ add r0, r4, #0
+ bl MOD75_021EA7F8
+ add r0, r4, #0
+ bl MOD75_021EADC0
+ add r0, r4, #0
+ bl MOD75_021E773C
+ mov r0, #0xfe
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #0x12
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x47
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200A8B8
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_0200B990
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_0200AB18
+ add r4, #0xd4
+ ldr r0, [r4]
+ bl FUN_020066F4
+ add r0, r5, #0
+ bl FUN_0200627C
+ mov r0, #0
+ add r1, r0, #0
+ bl FUN_02015F10
+ mov r0, #6
+ bl FUN_020168D0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E6F00
+
+ thumb_func_start MOD75_021E6FA4
+MOD75_021E6FA4: ; 0x021E6FA4
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_0206F158
+ add r1, r4, #0
+ add r1, #0xc8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_020238F4
+ add r1, r4, #0
+ add r1, #0xcc
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl LoadPlayerDataAddress
+ add r4, #0xd0
+ str r0, [r4]
+ pop {r4, pc}
+ thumb_func_end MOD75_021E6FA4
+
+ thumb_func_start MOD75_021E6FDC
+MOD75_021E6FDC: ; 0x021E6FDC
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r3, _021E6FE8 ; =FUN_0202A9B0
+ ldr r0, [r0]
+ bx r3
+ nop
+_021E6FE8: .word FUN_0202A9B0
+ thumb_func_end MOD75_021E6FDC
+
+ thumb_func_start MOD75_021E6FEC
+MOD75_021E6FEC: ; 0x021E6FEC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD75_021E6FDC
+ bl FUN_0202AB4C
+ strb r4, [r0]
+ pop {r4, pc}
+ thumb_func_end MOD75_021E6FEC
+
+ thumb_func_start MOD75_021E6FFC
+MOD75_021E6FFC: ; 0x021E6FFC
+ push {r4, lr}
+ add r4, r1, #0
+ bl MOD75_021E6FDC
+ add r1, r4, #0
+ bl FUN_0202AB68
+ pop {r4, pc}
+ thumb_func_end MOD75_021E6FFC
+
+ thumb_func_start MOD75_021E700C
+MOD75_021E700C: ; 0x021E700C
+ push {r3, lr}
+ ldr r0, [r0]
+ bl FUN_0201AB60
+ bl FUN_0201C30C
+ bl FUN_0200BC30
+ ldr r3, _021E702C ; =0x027E0000
+ ldr r1, _021E7030 ; =0x00003FF8
+ mov r0, #1
+ ldr r2, [r3, r1]
+ orr r0, r2
+ str r0, [r3, r1]
+ pop {r3, pc}
+ nop
+_021E702C: .word 0x027E0000
+_021E7030: .word 0x00003FF8
+ thumb_func_end MOD75_021E700C
+
+ thumb_func_start MOD75_021E7034
+MOD75_021E7034: ; 0x021E7034
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _021E7050 ; =0x021EC568
+ add r3, sp, #0
+ mov r2, #5
+_021E703E:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _021E703E
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_021E7050: .word 0x021EC568
+ thumb_func_end MOD75_021E7034
+
+ thumb_func_start MOD75_021E7054
+MOD75_021E7054: ; 0x021E7054
+ push {r4, r5, lr}
+ sub sp, #0xd4
+ ldr r5, _021E719C ; =0x021EC41C
+ add r3, sp, #0xc4
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ ldr r5, _021E71A0 ; =0x021EC440
+ add r3, sp, #0xa8
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #0
+ str r0, [r3]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_02018744
+ ldr r5, _021E71A4 ; =0x021EC45C
+ add r3, sp, #0x8c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #1
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021E71A8 ; =0x021EC494
+ add r3, sp, #0x70
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #2
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_02018744
+ ldr r5, _021E71AC ; =0x021EC4E8
+ add r3, sp, #0x54
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021E71B0 ; =0x021EC478
+ add r3, sp, #0x38
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ str r0, [r3]
+ add r0, r4, #0
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_02018744
+ ldr r5, _021E71B4 ; =0x021EC4B0
+ add r3, sp, #0x1c
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #5
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ ldr r5, _021E71B8 ; =0x021EC4CC
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #7
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #1
+ bl FUN_02016C18
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #9
+ mov r3, #0x80
+ bl FUN_0201AF50
+ add r0, r4, #0
+ mov r1, #7
+ mov r2, #0xc
+ mov r3, #0x50
+ bl FUN_0201AF50
+ mov r0, #0
+ mov r1, #0x20
+ add r2, r0, #0
+ mov r3, #6
+ bl FUN_02017F18
+ mov r0, #4
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #6
+ bl FUN_02017F18
+ add sp, #0xd4
+ pop {r4, r5, pc}
+ nop
+_021E719C: .word 0x021EC41C
+_021E71A0: .word 0x021EC440
+_021E71A4: .word 0x021EC45C
+_021E71A8: .word 0x021EC494
+_021E71AC: .word 0x021EC4E8
+_021E71B0: .word 0x021EC478
+_021E71B4: .word 0x021EC4B0
+_021E71B8: .word 0x021EC4CC
+ thumb_func_end MOD75_021E7054
+
+ thumb_func_start MOD75_021E71BC
+MOD75_021E71BC: ; 0x021E71BC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x1f
+ mov r1, #0
+ bl FUN_0201E6E4
+ mov r0, #0x1b
+ mov r1, #0
+ bl FUN_0201E74C
+ add r0, r4, #0
+ mov r1, #7
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #4
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_020178A0
+ add r0, r4, #0
+ mov r1, #0
+ bl FUN_020178A0
+ mov r0, #6
+ add r1, r4, #0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E71BC
+
+ thumb_func_start MOD75_021E7214
+MOD75_021E7214: ; 0x021E7214
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ mov r0, #0xd
+ mov r1, #6
+ bl FUN_02006670
+ add r1, r4, #0
+ add r1, #0xd4
+ str r0, [r1]
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #7
+ mov r3, #1
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0xa
+ mov r3, #1
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #9
+ mov r3, #3
+ bl FUN_020068C8
+ mov r2, #0
+ str r2, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02006930
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r1, #0x12
+ mov r2, #0
+ lsl r3, r0, #5
+ bl FUN_02006930
+ mov r1, #0x16
+ mov r0, #0
+ lsl r1, r1, #4
+ mov r2, #6
+ bl FUN_02002EEC
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r2, _021E7374 ; =0x000003F7
+ mov r3, #0xe
+ bl FUN_0200CB00
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_02025084
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ ldr r0, [r4]
+ ldr r2, _021E7378 ; =0x000003D9
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200CD68
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0xb
+ mov r3, #5
+ bl FUN_0200687C
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r1, #0xc
+ mov r2, #4
+ bl FUN_02006930
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ mov r0, #0xd
+ ldr r2, [r4]
+ add r1, r0, #0
+ mov r3, #5
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0x25
+ mov r3, #7
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0x24
+ mov r3, #7
+ bl FUN_020068C8
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ str r0, [sp, #0xc]
+ ldr r2, [r4]
+ mov r0, #0xd
+ mov r1, #0xf
+ mov r3, #4
+ bl FUN_0200687C
+ mov r3, #0x40
+ str r3, [sp]
+ mov r0, #6
+ str r0, [sp, #4]
+ mov r0, #0xd
+ mov r1, #0xe
+ mov r2, #4
+ bl FUN_02006930
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_021E7374: .word 0x000003F7
+_021E7378: .word 0x000003D9
+ thumb_func_end MOD75_021E7214
+
+ thumb_func_start MOD75_021E737C
+MOD75_021E737C: ; 0x021E737C
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ mov r1, #0x1a
+ mov r2, #7
+ mov r3, #6
+ bl FUN_0200A86C
+ mov r1, #0x45
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #1
+ mov r1, #2
+ mov r2, #0
+ mov r3, #6
+ bl FUN_0200B870
+ mov r1, #0x11
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ mov r0, #6
+ bl FUN_0200AA80
+ mov r2, #0x46
+ lsl r2, r2, #2
+ str r0, [r4, r2]
+ mov r0, #0
+ mov r1, #0x1a
+ add r2, #0x40
+ mov r3, #6
+ bl FUN_0200A86C
+ mov r1, #0x47
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r2, #0x93
+ mov r0, #0
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #6
+ bl FUN_0200A86C
+ mov r1, #0x12
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x20
+ add r0, r1, #0
+ mov r1, #6
+ bl FUN_020219F4
+ mov r1, #0xfe
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ pop {r4, pc}
+ thumb_func_end MOD75_021E737C
+
+ thumb_func_start MOD75_021E73E8
+MOD75_021E73E8: ; 0x021E73E8
+ push {r4, r5}
+ ldr r2, _021E741C ; =0x00000424
+ mov r1, #0
+ strb r1, [r0, r2]
+ add r4, r2, #0
+ mov r3, #0xc
+_021E73F4:
+ add r2, r0, #0
+ add r2, #0xc4
+ ldr r5, [r2]
+ add r2, r1, #0
+ mul r2, r3
+ add r2, r5, r2
+ ldr r2, [r2, #4]
+ cmp r2, #0
+ beq _021E740C
+ ldrb r2, [r0, r4]
+ add r2, r2, #1
+ strb r2, [r0, r4]
+_021E740C:
+ add r1, r1, #1
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ cmp r1, #8
+ blo _021E73F4
+ pop {r4, r5}
+ bx lr
+ nop
+_021E741C: .word 0x00000424
+ thumb_func_end MOD75_021E73E8
+
+ thumb_func_start MOD75_021E7420
+MOD75_021E7420: ; 0x021E7420
+ push {r3, r4}
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r4, r0, #4
+ add r0, #0x64
+ ldrb r3, [r0]
+ mov r0, #0xc
+ mul r0, r3
+ cmp r2, #0
+ ldr r2, [r4, r0]
+ bne _021E743E
+ lsl r0, r1, #2
+ ldrh r0, [r2, r0]
+ pop {r3, r4}
+ bx lr
+_021E743E:
+ lsl r0, r1, #2
+ add r0, r2, r0
+ ldrh r0, [r0, #2]
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD75_021E7420
+
+ thumb_func_start MOD75_021E7448
+MOD75_021E7448: ; 0x021E7448
+ add r3, r1, #0
+ add r1, r2, #0
+ add r2, r3, #0
+ ldr r3, _021E7454 ; =FUN_0200A8E0
+ bx r3
+ nop
+_021E7454: .word FUN_0200A8E0
+ thumb_func_end MOD75_021E7448
+
+ thumb_func_start MOD75_021E7458
+MOD75_021E7458: ; 0x021E7458
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, r2, #0
+ bl FUN_0206EA30
+ add r1, r0, #0
+ add r0, r5, #0
+ add r2, r4, #0
+ bl FUN_0200A8E0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021E7458
+
+ thumb_func_start MOD75_021E7470
+MOD75_021E7470: ; 0x021E7470
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r5, #0
+ add r0, #0x64
+ strb r5, [r0]
+ add r0, r7, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r6, r0, #4
+ ldr r0, [r0, #0x6c]
+ cmp r0, #0
+ bne _021E74AE
+ mov r3, #1
+ add r2, r5, #0
+ mov r1, #0xc
+_021E7492:
+ add r0, r5, #0
+ mul r0, r1
+ add r4, r6, r0
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _021E7528
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ strh r3, [r4, #4]
+ lsr r5, r0, #0x10
+ strh r2, [r4, #6]
+ cmp r5, #8
+ blo _021E7492
+ pop {r3, r4, r5, r6, r7, pc}
+_021E74AE:
+ mov r0, #0xc
+ mul r0, r5
+ add r4, r6, r0
+ ldr r0, [r6, r0]
+ cmp r0, #0
+ beq _021E74F2
+ add r0, r7, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4, #8]
+ add r2, sp, #0
+ ldr r0, [r0, #0x6c]
+ add r2, #1
+ add r3, sp, #0
+ bl FUN_0206F17C
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ cmp r0, #0
+ bne _021E74DC
+ mov r1, #1
+ add r0, sp, #0
+ strb r1, [r0, #1]
+_021E74DC:
+ add r0, sp, #0
+ ldrb r0, [r0, #1]
+ strh r0, [r4, #4]
+ add r0, sp, #0
+ ldrb r0, [r0]
+ strh r0, [r4, #6]
+ add r0, r5, #1
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ cmp r5, #8
+ blo _021E74AE
+_021E74F2:
+ add r0, r7, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x6c]
+ bl FUN_0206F18C
+ mov r1, #0
+ mov r3, #0xc
+_021E7502:
+ add r2, r1, #0
+ mul r2, r3
+ add r4, r6, r2
+ ldr r2, [r6, r2]
+ cmp r2, #0
+ beq _021E7528
+ ldrb r2, [r4, #8]
+ cmp r0, r2
+ bne _021E751E
+ add r2, r7, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r2, #0x64
+ strb r1, [r2]
+_021E751E:
+ add r1, r1, #1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r1, #8
+ blo _021E7502
+_021E7528:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E7470
+
+ thumb_func_start MOD75_021E752C
+MOD75_021E752C: ; 0x021E752C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ ldr r0, [r1, #0x6c]
+ cmp r0, #0
+ beq _021E757E
+ add r7, r1, #4
+ mov r4, #0
+ add r5, r7, #0
+_021E7540:
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _021E7568
+ add r0, r6, #0
+ add r0, #0xc4
+ ldrh r2, [r5, #4]
+ ldrh r3, [r5, #6]
+ ldr r0, [r0]
+ lsl r2, r2, #0x18
+ lsl r3, r3, #0x18
+ ldrb r1, [r5, #8]
+ ldr r0, [r0, #0x6c]
+ lsr r2, r2, #0x18
+ lsr r3, r3, #0x18
+ bl FUN_0206F190
+ add r4, r4, #1
+ add r5, #0xc
+ cmp r4, #8
+ blo _021E7540
+_021E7568:
+ add r6, #0xc4
+ ldr r1, [r6]
+ ldr r0, [r1, #0x6c]
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r7, r1
+ ldrb r1, [r1, #8]
+ bl FUN_0206F19C
+_021E757E:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD75_021E752C
+
+ thumb_func_start MOD75_021E7580
+MOD75_021E7580: ; 0x021E7580
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ ldrb r1, [r4, #8]
+ ldr r0, _021E7718 ; =0x021EC674
+ ldrb r0, [r0, r1]
+ mov r1, #6
+ add r0, r0, #3
+ bl FUN_02012838
+ mov r1, #0x16
+ lsl r1, r1, #4
+ str r0, [r5, r1]
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x23
+ bl FUN_02012880
+ ldrb r3, [r4, #8]
+ cmp r3, #3
+ bne _021E764A
+ ldr r0, _021E7718 ; =0x021EC674
+ mov r6, #0
+ ldrb r0, [r0, r3]
+ cmp r0, #0
+ bls _021E761A
+ str r6, [sp]
+ add r7, r5, #0
+_021E75CE:
+ ldr r0, [r4]
+ ldr r2, [sp]
+ ldr r1, [sp]
+ ldrh r2, [r0, r2]
+ add r1, r0, r1
+ cmp r2, #0
+ beq _021E761A
+ ldrh r0, [r1, #2]
+ cmp r0, #0
+ beq _021E761A
+ mov r0, #0x12
+ mov r1, #0x59
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r7, r1]
+ mov r3, #6
+ bl MOD75_021E7458
+ mov r0, #0x16
+ mov r1, #0x59
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r7, r1]
+ add r2, r6, #0
+ bl FUN_020128A0
+ ldr r0, [sp]
+ ldrb r1, [r4, #8]
+ add r0, r0, #4
+ str r0, [sp]
+ ldr r0, _021E7718 ; =0x021EC674
+ add r6, r6, #1
+ ldrb r0, [r0, r1]
+ add r7, r7, #4
+ cmp r6, r0
+ blo _021E75CE
+_021E761A:
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x22
+ bl FUN_02012880
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x23
+ bl FUN_02012880
+ add r0, r6, #3
+ add sp, #8
+ strb r0, [r4, #9]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E764A:
+ ldr r0, _021E7718 ; =0x021EC674
+ mov r6, #0
+ ldrb r0, [r0, r3]
+ cmp r0, #0
+ bls _021E76A4
+ str r6, [sp, #4]
+ add r7, r5, #0
+_021E7658:
+ ldr r2, [r4]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, r2, r0
+ ldrh r2, [r2, r1]
+ cmp r2, #0
+ beq _021E76A4
+ ldrh r0, [r0, #2]
+ cmp r0, #0
+ beq _021E76A4
+ mov r0, #0x47
+ mov r1, #0x59
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r7, r1]
+ mov r3, #6
+ bl MOD75_021E7448
+ mov r0, #0x16
+ mov r1, #0x59
+ lsl r0, r0, #4
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r7, r1]
+ add r2, r6, #0
+ bl FUN_020128A0
+ ldr r0, [sp, #4]
+ ldrb r3, [r4, #8]
+ add r0, r0, #4
+ str r0, [sp, #4]
+ ldr r0, _021E7718 ; =0x021EC674
+ add r6, r6, #1
+ ldrb r0, [r0, r3]
+ add r7, r7, #4
+ cmp r6, r0
+ blo _021E7658
+_021E76A4:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #5
+ beq _021E76FC
+ cmp r3, #4
+ bne _021E76CC
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x22
+ bl FUN_02012880
+ b _021E76E0
+_021E76CC:
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x29
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x2b
+ bl FUN_02012880
+_021E76E0:
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x23
+ bl FUN_02012880
+ add r0, r6, #3
+ add sp, #8
+ strb r0, [r4, #9]
+ pop {r3, r4, r5, r6, r7, pc}
+_021E76FC:
+ mov r1, #0x16
+ lsl r1, r1, #4
+ ldr r0, [r5, r1]
+ sub r1, #0x4c
+ mov r2, #0x20
+ add r3, r2, #0
+ ldr r1, [r5, r1]
+ sub r3, #0x23
+ bl FUN_02012880
+ add r0, r6, #2
+ strb r0, [r4, #9]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E7718: .word 0x021EC674
+ thumb_func_end MOD75_021E7580
+
+ thumb_func_start MOD75_021E771C
+MOD75_021E771C: ; 0x021E771C
+ push {r3, r4, r5, r6, r7, lr}
+ mov r6, #0x59
+ add r5, r0, #0
+ mov r4, #0
+ mov r7, #0x12
+ lsl r6, r6, #2
+_021E7728:
+ add r0, r7, #0
+ mov r1, #6
+ bl FUN_020219F4
+ str r0, [r5, r6]
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa5
+ blo _021E7728
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD75_021E771C
+
+ thumb_func_start MOD75_021E773C
+MOD75_021E773C: ; 0x021E773C
+ push {r4, r5, r6, lr}
+ mov r6, #0x59
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_021E7746:
+ ldr r0, [r5, r6]
+ bl FUN_02021A20
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xa5
+ blo _021E7746
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E773C
+
+ thumb_func_start MOD75_021E7758
+MOD75_021E7758: ; 0x021E7758
+ push {r4, r5}
+ sub r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ cmp r2, #8
+ bls _021E7768
+ mov r5, #7
+ b _021E776E
+_021E7768:
+ sub r3, r2, #1
+ lsl r3, r3, #0x18
+ lsr r5, r3, #0x18
+_021E776E:
+ ldrh r3, [r0]
+ cmp r3, #0
+ beq _021E7780
+ sub r4, r2, #1
+ add r3, r3, r5
+ cmp r3, r4
+ ble _021E7780
+ sub r3, r4, r5
+ strh r3, [r0]
+_021E7780:
+ ldrh r3, [r0]
+ ldrh r0, [r1]
+ sub r2, r2, #1
+ add r0, r3, r0
+ cmp r0, r2
+ blt _021E7790
+ sub r0, r2, r3
+ strh r0, [r1]
+_021E7790:
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD75_021E7758
+
+ thumb_func_start MOD75_021E7794
+MOD75_021E7794: ; 0x021E7794
+ push {r3, r4, r5, r6}
+ sub r2, r2, #1
+ lsl r2, r2, #0x18
+ lsr r2, r2, #0x18
+ cmp r2, #8
+ bls _021E77A4
+ mov r5, #7
+ b _021E77AA
+_021E77A4:
+ sub r4, r2, #1
+ lsl r4, r4, #0x18
+ lsr r5, r4, #0x18
+_021E77AA:
+ ldrh r6, [r1]
+ asr r4, r3, #1
+ add r3, r4, #2
+ cmp r6, r3
+ blt _021E77E2
+ sub r6, r6, r4
+ mov r3, #0
+ sub r6, r6, #2
+ bmi _021E77E2
+ sub r2, r2, #1
+_021E77BE:
+ ldrh r6, [r0]
+ add r6, r6, r5
+ cmp r2, r6
+ beq _021E77E2
+ ldrh r6, [r1]
+ add r3, r3, #1
+ lsl r3, r3, #0x18
+ sub r6, r6, #1
+ strh r6, [r1]
+ ldrh r6, [r0]
+ lsr r3, r3, #0x18
+ add r6, r6, #1
+ strh r6, [r0]
+ ldrh r6, [r1]
+ sub r6, r6, r4
+ sub r6, r6, #2
+ cmp r3, r6
+ ble _021E77BE
+_021E77E2:
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD75_021E7794
+
+ thumb_func_start MOD75_021E77E8
+MOD75_021E77E8: ; 0x021E77E8
+ push {r4, r5, r6, lr}
+ sub sp, #0x20
+ ldr r6, _021E786C ; =0x021EC504
+ add r5, sp, #0
+ add r4, r0, #0
+ add r3, r1, #0
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ str r0, [sp]
+ add r0, r4, #4
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r1, #0
+ add r0, #0x64
+ ldrb r5, [r0]
+ mov r0, #0xc
+ add r6, r5, #0
+ mul r6, r0
+ add r1, r1, r6
+ ldrb r5, [r1, #0xd]
+ add r1, sp, #0
+ strh r5, [r1, #0x10]
+ add r5, r4, #0
+ str r4, [sp, #0x1c]
+ add r5, #0xc4
+ ldr r5, [r5]
+ add r6, r5, #0
+ add r6, #0x64
+ ldrb r6, [r6]
+ mul r0, r6
+ add r0, r5, r0
+ ldrb r0, [r0, #0xc]
+ add r0, #0xfd
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021E784C
+ mov r0, #0x23
+ b _021E784E
+_021E784C:
+ mov r0, #0
+_021E784E:
+ strb r0, [r1, #0x15]
+ add r1, r3, #0
+ add r0, sp, #0
+ mov r3, #6
+ bl FUN_020010A8
+ mov r1, #0x57
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add r0, r4, #4
+ bl FUN_02019220
+ add sp, #0x20
+ pop {r4, r5, r6, pc}
+ nop
+_021E786C: .word 0x021EC504
+ thumb_func_end MOD75_021E77E8
+
+ thumb_func_start MOD75_021E7870
+MOD75_021E7870: ; 0x021E7870
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ mov r1, #0x13
+ add r4, r2, #0
+ bl FUN_02001470
+ add r5, r0, #0
+ cmp r4, #1
+ beq _021E78F8
+ ldr r0, _021E7960 ; =0x00000482
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _021E7890
+ cmp r0, #1
+ beq _021E7898
+ b _021E78A0
+_021E7890:
+ ldr r0, _021E7964 ; =0x000006CC
+ bl FUN_020054C8
+ b _021E78A6
+_021E7898:
+ ldr r0, _021E7968 ; =0x000006CD
+ bl FUN_020054C8
+ b _021E78A6
+_021E78A0:
+ ldr r0, _021E796C ; =0x000006CE
+ bl FUN_020054C8
+_021E78A6:
+ ldr r0, _021E7960 ; =0x00000482
+ mov r1, #3
+ ldrb r0, [r5, r0]
+ add r0, r0, #1
+ bl _s32_div_f
+ ldr r0, _021E7960 ; =0x00000482
+ strb r1, [r5, r0]
+ add r0, #0x10
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ beq _021E78CC
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ bl FUN_0200C608
+ cmp r0, #0
+ bne _021E78F8
+_021E78CC:
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r2, r1, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ add r0, #0xe0
+ mul r2, r3
+ add r1, r1, r2
+ ldrb r1, [r1, #0xc]
+ ldr r0, [r0]
+ add r1, #8
+ bl FUN_0200C5C0
+_021E78F8:
+ ldr r0, _021E7970 ; =0x0000047A
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _021E795C
+ add r0, r5, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ mov r1, #1
+ mvn r1, r1
+ cmp r7, r1
+ beq _021E793C
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ lsl r7, r7, #2
+ add r4, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r6, r1, #0
+ mul r6, r0
+ ldr r1, [r4, r6]
+ add r0, r5, #0
+ ldrh r1, [r1, r7]
+ bl MOD75_021EAAE8
+ ldr r1, [r4, r6]
+ add r0, r5, #0
+ ldrh r1, [r1, r7]
+ bl MOD75_021EC034
+ b _021E794C
+_021E793C:
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl MOD75_021EAAE8
+ ldr r1, _021E7974 ; =0x0000FFFF
+ add r0, r5, #0
+ bl MOD75_021EC034
+_021E794C:
+ ldr r0, _021E7978 ; =0x00000479
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _021E795C
+ add r5, #0x14
+ add r0, r5, #0
+ bl FUN_02019220
+_021E795C:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E7960: .word 0x00000482
+_021E7964: .word 0x000006CC
+_021E7968: .word 0x000006CD
+_021E796C: .word 0x000006CE
+_021E7970: .word 0x0000047A
+_021E7974: .word 0x0000FFFF
+_021E7978: .word 0x00000479
+ thumb_func_end MOD75_021E7870
+
+ thumb_func_start MOD75_021E797C
+MOD75_021E797C: ; 0x021E797C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ mov r1, #0x13
+ str r0, [sp]
+ add r7, r2, #0
+ bl FUN_02001470
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r6, r2, r0
+ ldr r0, _021E7A98 ; =0x0000047A
+ ldrb r1, [r4, r0]
+ cmp r1, #1
+ bne _021E79BA
+ add r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, r5
+ bne _021E79BA
+ ldr r0, [sp]
+ mov r1, #8
+ mov r2, #0
+ mov r3, #9
+ bl FUN_020013E8
+ b _021E79C6
+_021E79BA:
+ ldr r0, [sp]
+ mov r1, #1
+ mov r2, #0
+ mov r3, #2
+ bl FUN_020013E8
+_021E79C6:
+ ldrb r0, [r6, #8]
+ cmp r0, #7
+ bne _021E79F8
+ mov r0, #2
+ mvn r0, r0
+ cmp r5, r0
+ beq _021E7A94
+ add r0, r0, #1
+ cmp r5, r0
+ beq _021E7A94
+ add r0, r4, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_0206EBC4
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ ldrh r1, [r2, r1]
+ cmp r1, r0
+ bne _021E7A94
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD75_021EB004
+ pop {r3, r4, r5, r6, r7, pc}
+_021E79F8:
+ cmp r0, #3
+ bne _021E7A24
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _021E7A0E
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD75_021EAFB0
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A0E:
+ sub r0, r0, #1
+ cmp r5, r0
+ beq _021E7A94
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD75_021EAE90
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A24:
+ cmp r0, #4
+ bne _021E7A50
+ mov r0, #1
+ mvn r0, r0
+ cmp r5, r0
+ bne _021E7A3A
+ add r0, r4, #0
+ add r1, r7, #0
+ bl MOD75_021EAFB0
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A3A:
+ sub r0, r0, #1
+ cmp r5, r0
+ beq _021E7A94
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD75_021EAF0C
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A50:
+ mov r0, #2
+ mvn r0, r0
+ cmp r5, r0
+ beq _021E7A94
+ add r0, r0, #1
+ cmp r5, r0
+ beq _021E7A94
+ ldr r0, _021E7A98 ; =0x0000047A
+ ldrb r1, [r4, r0]
+ cmp r1, #1
+ bne _021E7A82
+ add r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, r5
+ bne _021E7A82
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ ldrh r1, [r1, #2]
+ ldr r3, _021E7A9C ; =0x00080900
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD75_021EADDC
+ pop {r3, r4, r5, r6, r7, pc}
+_021E7A82:
+ ldr r2, [r6]
+ lsl r1, r5, #2
+ add r1, r2, r1
+ ldrh r1, [r1, #2]
+ ldr r3, _021E7AA0 ; =0x00010200
+ add r0, r4, #0
+ add r2, r7, #0
+ bl MOD75_021EADDC
+_021E7A94:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E7A98: .word 0x0000047A
+_021E7A9C: .word 0x00080900
+_021E7AA0: .word 0x00010200
+ thumb_func_end MOD75_021E797C
+
+ thumb_func_start MOD75_021E7AA4
+MOD75_021E7AA4: ; 0x021E7AA4
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ add r1, r3, #0
+ mul r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, #0xa
+ ldr r0, [r4, r0]
+ add r3, #8
+ add r1, r1, r2
+ add r2, r3, r2
+ bl FUN_02001300
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ mov r0, #0x57
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r4, r0]
+ pop {r4, pc}
+ thumb_func_end MOD75_021E7AA4
+
+ thumb_func_start MOD75_021E7AE0
+MOD75_021E7AE0: ; 0x021E7AE0
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021E86C0
+ add r0, r4, #0
+ bl MOD75_021EA2D8
+ cmp r0, #1
+ bne _021E7AF6
+ mov r0, #1
+ pop {r4, pc}
+_021E7AF6:
+ add r0, r4, #0
+ bl MOD75_021E7D14
+ cmp r0, #1
+ bne _021E7B04
+ mov r0, #2
+ pop {r4, pc}
+_021E7B04:
+ add r0, r4, #0
+ bl MOD75_021E8304
+ cmp r0, #1
+ bne _021E7B12
+ mov r0, #2
+ pop {r4, pc}
+_021E7B12:
+ add r0, r4, #0
+ bl MOD75_021E7B7C
+ cmp r0, #1
+ bne _021E7B60
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD75_021EC090
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019570
+ add r0, r4, #0
+ bl MOD75_021E8B70
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0xc]
+ cmp r0, #3
+ bne _021E7B5C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021E8DAC
+_021E7B5C:
+ mov r0, #4
+ pop {r4, pc}
+_021E7B60:
+ cmp r0, #2
+ bne _021E7B6E
+ add r0, r4, #0
+ bl MOD75_021E8864
+ mov r0, #3
+ pop {r4, pc}
+_021E7B6E:
+ cmp r0, #3
+ bne _021E7B76
+ mov r0, #0x18
+ pop {r4, pc}
+_021E7B76:
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E7AE0
+
+ thumb_func_start MOD75_021E7B7C
+MOD75_021E7B7C: ; 0x021E7B7C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #6
+ add r2, r4, #4
+ bl FUN_02001448
+ ldr r0, _021E7CD8 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #4
+ tst r0, r1
+ beq _021E7BC0
+ add r0, r5, #0
+ bl MOD75_021E8808
+ cmp r0, #1
+ bne _021E7BC0
+ ldr r0, _021E7CDC ; =0x000005DC
+ bl FUN_020054C8
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, r5, r6, pc}
+_021E7BC0:
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r6, r0, #0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, sp, #0
+ ldr r0, [r5, r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_02001448
+ add r0, sp, #0
+ ldrh r2, [r0]
+ ldrh r0, [r4, #4]
+ cmp r0, r2
+ beq _021E7BFC
+ sub r2, r2, #1
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xf0
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+_021E7BFC:
+ add r0, sp, #0
+ ldrh r1, [r0, #2]
+ strh r1, [r4, #6]
+ ldrh r0, [r0]
+ strh r0, [r4, #4]
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ bne _021E7C38
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E7C38
+ add r1, sp, #0
+ ldrh r2, [r1, #2]
+ ldrh r1, [r1]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, r2, r1
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x10
+ bl FUN_02001464
+ add r6, r0, #0
+ mov r0, #0x49
+ mov r1, #1
+ lsl r0, r0, #4
+ strb r1, [r5, r0]
+_021E7C38:
+ mov r0, #1
+ mvn r0, r0
+ cmp r6, r0
+ beq _021E7C6E
+ add r0, r0, #1
+ cmp r6, r0
+ bne _021E7CAC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200145C
+ cmp r0, #1
+ bne _021E7C5E
+ add r0, r5, #0
+ mov r1, #0x24
+ bl MOD75_021EA0CC
+ b _021E7CD2
+_021E7C5E:
+ cmp r0, #2
+ bne _021E7CD2
+ mov r1, #0x23
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E7CD2
+_021E7C6E:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #5
+ bne _021E7C82
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021E7C82:
+ ldr r0, _021E7CDC ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ add r0, #0x66
+ strh r1, [r0]
+ add r5, #0xc4
+ ldr r0, [r5]
+ mov r1, #5
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add sp, #4
+ mov r0, #3
+ pop {r3, r4, r5, r6, pc}
+_021E7CAC:
+ ldr r0, _021E7CDC ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, [r4]
+ lsl r2, r6, #2
+ ldrh r1, [r0, r2]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add sp, #4
+ add r0, #0x66
+ strh r1, [r0]
+ ldr r0, [r4]
+ add r0, r0, r2
+ ldrh r1, [r0, #2]
+ ldr r0, _021E7CE0 ; =0x0000048A
+ strh r1, [r5, r0]
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021E7CD2:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021E7CD8: .word 0x021C48B8
+_021E7CDC: .word 0x000005DC
+_021E7CE0: .word 0x0000048A
+ thumb_func_end MOD75_021E7B7C
+
+ thumb_func_start MOD75_021E7CE4
+MOD75_021E7CE4: ; 0x021E7CE4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E7D0C ; =0x00000424
+ ldrb r2, [r4, r0]
+ mov r0, #0xa
+ add r1, r2, #0
+ mul r1, r0
+ mov r0, #0x5a
+ sub r0, r0, r1
+ add r1, r2, #1
+ bl _s32_div_f
+ add r1, r0, #6
+ ldr r0, _021E7D10 ; =0x00000427
+ strb r1, [r4, r0]
+ ldrb r1, [r4, r0]
+ add r0, r0, #1
+ add r1, r1, #4
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021E7D0C: .word 0x00000424
+_021E7D10: .word 0x00000427
+ thumb_func_end MOD75_021E7CE4
+
+ thumb_func_start MOD75_021E7D14
+MOD75_021E7D14: ; 0x021E7D14
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E7DF8 ; =0x021C48B8
+ ldr r1, [r0, #0x4c]
+ mov r0, #0x20
+ tst r0, r1
+ beq _021E7D88
+ ldr r0, _021E7DFC ; =0x00000424
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _021E7D2E
+ mov r0, #0
+ pop {r4, pc}
+_021E7D2E:
+ ldr r0, _021E7E00 ; =0x000006CA
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x64
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021E7D58
+ ldr r1, _021E7E04 ; =0x00000429
+ sub r0, r0, #1
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, #0x4f
+ add r0, #0x64
+ ldrb r0, [r0]
+ sub r0, r0, #1
+ b _021E7D68
+_021E7D58:
+ ldr r1, _021E7DFC ; =0x00000424
+ ldrb r0, [r4, r1]
+ sub r2, r0, #1
+ add r0, r1, #5
+ strb r2, [r4, r0]
+ ldrb r0, [r4, r1]
+ add r1, #0x54
+ sub r0, r0, #1
+_021E7D68:
+ strb r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD75_021EC0C4
+ ldr r0, _021E7E08 ; =0x0000042A
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021E7E0C
+ ldr r0, [r4]
+ mov r1, #4
+ bl FUN_0201AC68
+ mov r0, #1
+ pop {r4, pc}
+_021E7D88:
+ mov r0, #0x10
+ tst r0, r1
+ beq _021E7DF2
+ ldr r0, _021E7DFC ; =0x00000424
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ bne _021E7D9A
+ mov r0, #0
+ pop {r4, pc}
+_021E7D9A:
+ ldr r0, _021E7E00 ; =0x000006CA
+ bl FUN_020054C8
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r1, _021E7DFC ; =0x00000424
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r2, r0, #1
+ ldrb r0, [r4, r1]
+ cmp r2, r0
+ bge _021E7DCA
+ add r0, r1, #5
+ strb r2, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, #0x54
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ b _021E7DD4
+_021E7DCA:
+ add r0, r1, #5
+ mov r2, #0
+ strb r2, [r4, r0]
+ add r1, #0x54
+ strb r2, [r4, r1]
+_021E7DD4:
+ add r0, r4, #0
+ bl MOD75_021EC0C4
+ ldr r0, _021E7E08 ; =0x0000042A
+ mov r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021E7E0C
+ ldr r0, [r4]
+ mov r1, #4
+ bl FUN_0201AC68
+ mov r0, #1
+ pop {r4, pc}
+_021E7DF2:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_021E7DF8: .word 0x021C48B8
+_021E7DFC: .word 0x00000424
+_021E7E00: .word 0x000006CA
+_021E7E04: .word 0x00000429
+_021E7E08: .word 0x0000042A
+ thumb_func_end MOD75_021E7D14
+
+ thumb_func_start MOD75_021E7E0C
+MOD75_021E7E0C: ; 0x021E7E0C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021E7E60
+ ldr r0, _021E7E28 ; =0x0000042D
+ mov r1, #3
+ strb r1, [r4, r0]
+ add r1, r0, #3
+ ldrb r2, [r4, r1]
+ mov r1, #0x80
+ add r0, r0, #3
+ bic r2, r1
+ strb r2, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021E7E28: .word 0x0000042D
+ thumb_func_end MOD75_021E7E0C
+
+ thumb_func_start MOD75_021E7E2C
+MOD75_021E7E2C: ; 0x021E7E2C
+ push {r4, lr}
+ ldr r1, _021E7E58 ; =0x0000042A
+ add r4, r0, #0
+ ldrb r2, [r4, r1]
+ cmp r2, #2
+ beq _021E7E3E
+ bl MOD75_021E7E60
+ b _021E7E44
+_021E7E3E:
+ mov r2, #2
+ add r0, r1, #1
+ strb r2, [r4, r0]
+_021E7E44:
+ ldr r0, _021E7E5C ; =0x0000042D
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r1, r0, #3
+ ldrb r2, [r4, r1]
+ mov r1, #0x80
+ add r0, r0, #3
+ orr r1, r2
+ strb r1, [r4, r0]
+ pop {r4, pc}
+ .align 2, 0
+_021E7E58: .word 0x0000042A
+_021E7E5C: .word 0x0000042D
+ thumb_func_end MOD75_021E7E2C
+
+ thumb_func_start MOD75_021E7E60
+MOD75_021E7E60: ; 0x021E7E60
+ push {r4, lr}
+ ldr r1, _021E7EE0 ; =0x00000429
+ add r4, r0, #0
+ add r1, r4, r1
+ mov r2, #0
+ strb r2, [r1, #2]
+ strb r2, [r1, #3]
+ strb r2, [r1, #5]
+ ldrb r3, [r1, #7]
+ mov r2, #0xf
+ bic r3, r2
+ strb r3, [r1, #7]
+ ldrb r3, [r1, #7]
+ mov r2, #0x70
+ bic r3, r2
+ strb r3, [r1, #7]
+ bl MOD75_021E7AA4
+ add r0, r4, #4
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ add r0, r4, #4
+ bl FUN_02019220
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r4, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ mov r2, #0
+ bl MOD75_021EA96C
+ add r0, r4, #0
+ add r4, #0xc4
+ ldr r1, [r4]
+ mov r2, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ bl MOD75_021E84E4
+ pop {r4, pc}
+ .align 2, 0
+_021E7EE0: .word 0x00000429
+ thumb_func_end MOD75_021E7E60
+
+ thumb_func_start MOD75_021E7EE4
+MOD75_021E7EE4: ; 0x021E7EE4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ ldr r0, _021E8018 ; =0x00000429
+ add r4, r5, r0
+ bl FUN_02020A98
+ cmp r0, #0
+ bne _021E7F00
+ ldrb r1, [r4, #7]
+ mov r0, #0x70
+ bic r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ strb r0, [r4, #7]
+_021E7F00:
+ add r0, r5, #0
+ bl MOD75_021E83CC
+ add r6, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _021E7F16
+ ldrb r0, [r4]
+ cmp r6, r0
+ beq _021E7F22
+_021E7F16:
+ ldrb r1, [r4, #7]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ strb r0, [r4, #7]
+_021E7F22:
+ add r0, r5, #0
+ bl MOD75_021E8020
+ cmp r0, #0
+ bne _021E7FB6
+ ldrb r0, [r4, #7]
+ lsl r0, r0, #0x19
+ lsr r0, r0, #0x1d
+ cmp r0, #1
+ bne _021E7FB6
+ mov r0, #0
+ mvn r0, r0
+ cmp r6, r0
+ beq _021E7FB6
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4]
+ add r0, #0x64
+ strb r1, [r0]
+ lsl r0, r6, #0x18
+ ldrb r1, [r4]
+ lsr r0, r0, #0x18
+ cmp r1, r0
+ bls _021E7F6E
+ mov r2, #0
+ strb r2, [r4, #1]
+ strb r2, [r4, #2]
+ ldrb r1, [r4]
+ add r0, r5, #0
+ bl MOD75_021E84E4
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD75_021EA96C
+ b _021E7F92
+_021E7F6E:
+ cmp r1, r0
+ bhs _021E7F8E
+ mov r0, #1
+ strb r0, [r4, #1]
+ mov r2, #0
+ strb r2, [r4, #2]
+ ldrb r1, [r4]
+ add r0, r5, #0
+ bl MOD75_021E84E4
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD75_021EA96C
+ b _021E7F92
+_021E7F8E:
+ mov r0, #2
+ strb r0, [r4, #1]
+_021E7F92:
+ lsl r0, r6, #0x18
+ lsr r0, r0, #0x18
+ strb r0, [r4]
+ ldrb r2, [r4, #7]
+ mov r1, #0xf
+ bic r2, r1
+ strb r2, [r4, #7]
+ ldrb r2, [r4, #7]
+ mov r1, #0x70
+ bic r2, r1
+ strb r2, [r4, #7]
+ mov r1, #0
+ strb r1, [r4, #4]
+ ldr r1, _021E801C ; =0x00000478
+ strb r0, [r5, r1]
+ add r0, r5, #0
+ bl MOD75_021EC0C4
+_021E7FB6:
+ add r0, r5, #0
+ bl MOD75_021E819C
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD75_021E8424
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD75_021EC0DC
+ cmp r6, #1
+ bne _021E8012
+ cmp r7, #1
+ bne _021E8012
+ ldrb r0, [r4, #7]
+ lsl r0, r0, #0x1c
+ lsr r0, r0, #0x1c
+ cmp r0, #1
+ bne _021E8012
+ add r0, r5, #0
+ bl MOD75_021EC0AC
+ cmp r0, #1
+ bne _021E8012
+ ldrb r0, [r4, #7]
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x1f
+ cmp r0, #1
+ bne _021E8004
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #1
+ bl MOD75_021E84E4
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+_021E8004:
+ add r5, #0xfc
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C644
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021E8012:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E8018: .word 0x00000429
+_021E801C: .word 0x00000478
+ thumb_func_end MOD75_021E7EE4
+
+ thumb_func_start MOD75_021E8020
+MOD75_021E8020: ; 0x021E8020
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E8188 ; =0x021C48B8
+ ldr r1, _021E818C ; =0x00000429
+ ldr r2, [r0, #0x48]
+ mov r0, #0x20
+ add r4, r5, r1
+ tst r0, r2
+ beq _021E80D8
+ sub r0, r1, #5
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _021E803E
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E803E:
+ ldr r0, _021E8190 ; =0x000006CA
+ bl FUN_020054C8
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r3, [r1]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldrb r2, [r4]
+ mov r1, #0xc
+ ldr r0, [r0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0xc]
+ bl FUN_0200C5C0
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD75_021E84E4
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4]
+ add r0, #0x64
+ strb r1, [r0]
+ ldrb r0, [r4]
+ cmp r0, #0
+ beq _021E808E
+ sub r0, r0, #1
+ strb r0, [r4]
+ ldr r0, _021E8194 ; =0x00000478
+ ldrb r1, [r5, r0]
+ sub r1, r1, #1
+ b _021E809C
+_021E808E:
+ ldr r0, _021E8198 ; =0x00000424
+ ldrb r1, [r5, r0]
+ sub r1, r1, #1
+ strb r1, [r4]
+ ldrb r1, [r5, r0]
+ add r0, #0x54
+ sub r1, r1, #1
+_021E809C:
+ strb r1, [r5, r0]
+ mov r0, #0
+ strb r0, [r4, #2]
+ strb r0, [r4, #1]
+ ldrb r1, [r4, #7]
+ mov r0, #0x70
+ bic r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ strb r0, [r4, #7]
+ ldrb r1, [r4, #7]
+ mov r0, #0xf
+ bic r1, r0
+ mov r0, #1
+ orr r0, r1
+ strb r0, [r4, #7]
+ ldrb r1, [r4, #7]
+ mov r0, #0x80
+ bic r1, r0
+ strb r1, [r4, #7]
+ ldrb r0, [r4, #4]
+ cmp r0, #3
+ beq _021E80CE
+ mov r0, #4
+ strb r0, [r4, #4]
+_021E80CE:
+ add r0, r5, #0
+ bl MOD75_021EC0C4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E80D8:
+ mov r0, #0x10
+ tst r0, r2
+ beq _021E8182
+ sub r0, r1, #5
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _021E80EA
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E80EA:
+ ldr r0, _021E8190 ; =0x000006CA
+ bl FUN_020054C8
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r3, [r1]
+ add r0, r5, #0
+ add r0, #0xe0
+ ldrb r2, [r4]
+ mov r1, #0xc
+ ldr r0, [r0]
+ mul r1, r2
+ add r1, r3, r1
+ ldrb r1, [r1, #0xc]
+ bl FUN_0200C5C0
+ ldrb r1, [r4]
+ add r0, r5, #0
+ mov r2, #0
+ bl MOD75_021E84E4
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4]
+ add r0, #0x64
+ strb r1, [r0]
+ ldrb r0, [r4]
+ ldr r1, _021E8198 ; =0x00000424
+ add r2, r0, #1
+ ldrb r0, [r5, r1]
+ cmp r2, r0
+ bge _021E8140
+ add r0, r1, #0
+ strb r2, [r4]
+ add r0, #0x54
+ ldrb r0, [r5, r0]
+ add r0, r0, #1
+ b _021E8144
+_021E8140:
+ mov r0, #0
+ strb r0, [r4]
+_021E8144:
+ add r1, #0x54
+ strb r0, [r5, r1]
+ mov r0, #0
+ strb r0, [r4, #2]
+ mov r0, #1
+ strb r0, [r4, #1]
+ ldrb r2, [r4, #7]
+ mov r1, #0x70
+ bic r2, r1
+ mov r1, #0x10
+ orr r1, r2
+ strb r1, [r4, #7]
+ ldrb r2, [r4, #7]
+ mov r1, #0xf
+ bic r2, r1
+ orr r0, r2
+ strb r0, [r4, #7]
+ ldrb r1, [r4, #7]
+ mov r0, #0x80
+ bic r1, r0
+ strb r1, [r4, #7]
+ ldrb r0, [r4, #4]
+ cmp r0, #3
+ beq _021E8178
+ mov r0, #4
+ strb r0, [r4, #4]
+_021E8178:
+ add r0, r5, #0
+ bl MOD75_021EC0C4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E8182:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_021E8188: .word 0x021C48B8
+_021E818C: .word 0x00000429
+_021E8190: .word 0x000006CA
+_021E8194: .word 0x00000478
+_021E8198: .word 0x00000424
+ thumb_func_end MOD75_021E8020
+
+ thumb_func_start MOD75_021E819C
+MOD75_021E819C: ; 0x021E819C
+ push {r4, r5, r6, lr}
+ ldr r1, _021E8300 ; =0x00000429
+ add r5, r0, #0
+ add r4, r5, r1
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _021E81B6
+ cmp r1, #1
+ beq _021E81C2
+ cmp r1, #2
+ bne _021E81B4
+ b _021E82F8
+_021E81B4:
+ b _021E82FC
+_021E81B6:
+ mov r0, #0
+ strb r0, [r4, #3]
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ b _021E82FC
+_021E81C2:
+ ldrb r1, [r4, #3]
+ cmp r1, #8
+ bhs _021E81D2
+ add r1, r1, #1
+ strb r1, [r4, #3]
+ bl MOD75_021EA8BC
+ b _021E82FC
+_021E81D2:
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ cmp r0, #0
+ beq _021E8206
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r3, [r1]
+ add r1, r3, #0
+ add r1, #0x64
+ ldrb r6, [r1]
+ mov r1, #0xc
+ add r2, r6, #0
+ mul r2, r1
+ add r1, r3, #0
+ add r1, #0xa
+ add r3, #8
+ add r1, r1, r2
+ add r2, r3, r2
+ bl FUN_02001300
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+_021E8206:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldrb r1, [r4]
+ add r0, #0x64
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r2, r1, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ add r0, #0xe0
+ mul r2, r3
+ add r1, r1, r2
+ ldrb r1, [r1, #0xc]
+ ldr r0, [r0]
+ bl FUN_0200C5C0
+ add r0, r5, #0
+ bl MOD75_021EA9F8
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ mov r2, #1
+ bl MOD75_021EA96C
+ add r0, r5, #0
+ bl MOD75_021E7580
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ bl MOD75_021E7758
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ mov r3, #9
+ bl MOD75_021E7794
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r1, #0
+ add r0, #0x64
+ ldrb r2, [r0]
+ mov r0, #0xc
+ add r3, r2, #0
+ mul r3, r0
+ add r2, r1, r3
+ ldrh r1, [r2, #0xa]
+ ldrh r2, [r2, #8]
+ add r0, r5, #0
+ bl MOD75_021E77E8
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r5, #0
+ add r3, r2, #0
+ add r3, #0x64
+ ldrb r6, [r3]
+ mov r3, #0xc
+ add r0, #0xf0
+ mul r3, r6
+ add r2, r2, r3
+ ldrh r2, [r2, #8]
+ ldr r0, [r0]
+ mov r1, #0xb1
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r5, #0xf0
+ ldr r0, [r5]
+ mov r1, #1
+ bl FUN_0200C644
+ ldrb r0, [r4, #2]
+ add r0, r0, #1
+ strb r0, [r4, #2]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_021E82F8:
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_021E82FC:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021E8300: .word 0x00000429
+ thumb_func_end MOD75_021E819C
+
+ thumb_func_start MOD75_021E8304
+MOD75_021E8304: ; 0x021E8304
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021E8374
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ bne _021E8318
+ mov r0, #0
+ pop {r4, pc}
+_021E8318:
+ ldr r2, _021E836C ; =0x00000424
+ ldrb r1, [r4, r2]
+ cmp r1, #1
+ bne _021E8324
+ mov r0, #0
+ pop {r4, pc}
+_021E8324:
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r1, #0x64
+ ldrb r3, [r1]
+ lsl r1, r0, #0x18
+ lsr r1, r1, #0x18
+ cmp r3, r1
+ bne _021E833E
+ mov r3, #2
+ add r1, r2, #6
+ strb r3, [r4, r1]
+ b _021E8350
+_021E833E:
+ cmp r3, r1
+ bls _021E834A
+ mov r3, #0
+ add r1, r2, #6
+ strb r3, [r4, r1]
+ b _021E8350
+_021E834A:
+ mov r3, #1
+ add r1, r2, #6
+ strb r3, [r4, r1]
+_021E8350:
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ ldr r0, _021E8370 ; =0x00000429
+ strb r1, [r4, r0]
+ add r0, #0x4f
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021EC0C4
+ add r0, r4, #0
+ bl MOD75_021E7E2C
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+_021E836C: .word 0x00000424
+_021E8370: .word 0x00000429
+ thumb_func_end MOD75_021E8304
+
+ thumb_func_start MOD75_021E8374
+MOD75_021E8374: ; 0x021E8374
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _021E83BC ; =0x00000424
+ ldrb r0, [r5, r0]
+ lsl r1, r0, #3
+ ldr r0, _021E83C0 ; =0x021EC628
+ ldr r0, [r0, r1]
+ bl FUN_02020988
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _021E83B6
+ ldr r1, _021E83C4 ; =0x0000FFFE
+ add r0, sp, #4
+ strh r1, [r0]
+ add r0, sp, #4
+ str r0, [sp]
+ ldr r3, _021E83C8 ; =0x021C48F8
+ ldr r0, [r5]
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #4
+ bl FUN_0201AFBC
+ cmp r0, #0
+ bne _021E83B6
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+_021E83B6:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E83BC: .word 0x00000424
+_021E83C0: .word 0x021EC628
+_021E83C4: .word 0x0000FFFE
+_021E83C8: .word 0x021C48F8
+ thumb_func_end MOD75_021E8374
+
+ thumb_func_start MOD75_021E83CC
+MOD75_021E83CC: ; 0x021E83CC
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ ldr r0, _021E8414 ; =0x00000424
+ ldrb r0, [r5, r0]
+ lsl r1, r0, #3
+ ldr r0, _021E8418 ; =0x021EC628
+ ldr r0, [r0, r1]
+ bl FUN_02020968
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _021E840E
+ ldr r1, _021E841C ; =0x0000FFFE
+ add r0, sp, #4
+ strh r1, [r0]
+ add r0, sp, #4
+ str r0, [sp]
+ ldr r3, _021E8420 ; =0x021C48F8
+ ldr r0, [r5]
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #4
+ bl FUN_0201AFBC
+ cmp r0, #0
+ bne _021E840E
+ mov r0, #0
+ add sp, #8
+ mvn r0, r0
+ pop {r3, r4, r5, pc}
+_021E840E:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E8414: .word 0x00000424
+_021E8418: .word 0x021EC628
+_021E841C: .word 0x0000FFFE
+_021E8420: .word 0x021C48F8
+ thumb_func_end MOD75_021E83CC
+
+ thumb_func_start MOD75_021E8424
+MOD75_021E8424: ; 0x021E8424
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _021E84D4 ; =0x00000429
+ add r4, r5, r0
+ ldrb r0, [r4, #4]
+ cmp r0, #4
+ bhi _021E84CA
+ add r1, r0, r0
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_021E843E: ; jump table
+ .short _021E8448 - _021E843E - 2 ; case 0
+ .short _021E8460 - _021E843E - 2 ; case 1
+ .short _021E84B0 - _021E843E - 2 ; case 2
+ .short _021E84BE - _021E843E - 2 ; case 3
+ .short _021E84C2 - _021E843E - 2 ; case 4
+_021E8448:
+ mov r0, #0
+ strb r0, [r4, #5]
+ ldrb r1, [r4, #7]
+ mov r0, #0x80
+ orr r0, r1
+ strb r0, [r4, #7]
+ ldrb r0, [r4]
+ strb r0, [r4, #6]
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _021E84CA
+_021E8460:
+ ldrb r0, [r4, #5]
+ cmp r0, #3
+ bne _021E84CA
+ ldr r0, _021E84D8 ; =0x000005E4
+ bl FUN_020054C8
+ ldrb r1, [r4, #6]
+ add r0, r5, #0
+ mov r2, #2
+ bl MOD75_021E84E4
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+ ldrb r0, [r4, #6]
+ lsl r3, r0, #1
+ ldr r0, _021E84DC ; =0x00000424
+ ldrb r0, [r5, r0]
+ lsl r1, r0, #3
+ ldr r0, _021E84E0 ; =0x021EC624
+ ldr r2, [r0, r1]
+ add r0, r5, #0
+ ldrb r1, [r2, r3]
+ add r3, r3, #1
+ ldrb r2, [r2, r3]
+ lsl r1, r1, #3
+ add r1, #0x14
+ lsl r2, r2, #3
+ add r2, #0x14
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ asr r1, r1, #0x10
+ asr r2, r2, #0x10
+ bl MOD75_021EC380
+ ldrb r0, [r4, #4]
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ b _021E84CA
+_021E84B0:
+ ldrb r1, [r4, #5]
+ cmp r1, #7
+ bne _021E84CA
+ add r0, r0, #1
+ strb r0, [r4, #4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E84BE:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E84C2:
+ mov r0, #3
+ strb r0, [r4, #4]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E84CA:
+ ldrb r0, [r4, #5]
+ add r0, r0, #1
+ strb r0, [r4, #5]
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E84D4: .word 0x00000429
+_021E84D8: .word 0x000005E4
+_021E84DC: .word 0x00000424
+_021E84E0: .word 0x021EC624
+ thumb_func_end MOD75_021E8424
+
+ thumb_func_start MOD75_021E84E4
+MOD75_021E84E4: ; 0x021E84E4
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r5, r1, #0
+ mov r1, #4
+ add r6, r2, #0
+ bl FUN_0201886C
+ add r7, r0, #0
+ ldr r0, _021E856C ; =0x00000424
+ ldrb r0, [r4, r0]
+ add r4, #0xc4
+ lsl r1, r0, #3
+ ldr r0, _021E8570 ; =0x021EC624
+ ldr r1, [r0, r1]
+ lsl r0, r5, #1
+ add r2, r1, r0
+ ldr r1, [r4]
+ mov r0, #0xc
+ mul r0, r5
+ add r0, r1, r0
+ ldrb r3, [r0, #0xc]
+ lsl r0, r6, #2
+ add r1, r6, r0
+ lsr r5, r3, #1
+ mov r0, #0x96
+ mul r0, r5
+ mov r5, #1
+ and r5, r3
+ mov r3, #0xf
+ mul r3, r5
+ add r0, r0, r3
+ add r0, #0x1e
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ mov r4, #0
+ mov ip, r0
+_021E8530:
+ mov r0, #0x1e
+ add r1, r4, #0
+ mul r1, r0
+ mov r0, ip
+ mov r3, #0
+ add r5, r0, r1
+_021E853C:
+ ldrb r6, [r2, #1]
+ mov r0, #2
+ add r1, r3, r5
+ lsl r0, r0, #0xc
+ add r1, r1, r0
+ add r6, r4, r6
+ lsl r6, r6, #5
+ ldrb r0, [r2]
+ add r6, r3, r6
+ add r0, r0, r6
+ lsl r0, r0, #1
+ strh r1, [r7, r0]
+ add r0, r3, #1
+ lsl r0, r0, #0x18
+ lsr r3, r0, #0x18
+ cmp r3, #5
+ blo _021E853C
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ cmp r4, #5
+ blo _021E8530
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E856C: .word 0x00000424
+_021E8570: .word 0x021EC624
+ thumb_func_end MOD75_021E84E4
+
+ thumb_func_start MOD75_021E8574
+MOD75_021E8574: ; 0x021E8574
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #4
+ bl FUN_0201886C
+ mov ip, r0
+ add r1, r4, #0
+ mov r0, #6
+ mul r1, r0
+ ldr r0, _021E85D4 ; =0x00000276
+ mov r4, #3
+ add r0, r1, r0
+ lsl r0, r0, #0x10
+ mov r6, #0
+ lsr r7, r0, #0x10
+ lsl r4, r4, #0xc
+_021E8598:
+ mov r0, #0x1e
+ mul r0, r6
+ add r2, r7, r0
+ add r0, r6, #7
+ lsl r3, r0, #6
+ mov r0, ip
+ mov r1, #0
+ add r3, r0, r3
+_021E85A8:
+ add r0, r1, r2
+ lsl r5, r1, #1
+ add r0, r0, r4
+ add r5, r3, r5
+ strh r0, [r5, #0x1a]
+ add r0, r1, #1
+ lsl r0, r0, #0x18
+ lsr r1, r0, #0x18
+ cmp r1, #6
+ blo _021E85A8
+ add r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r6, r0, #0x18
+ cmp r6, #6
+ blo _021E8598
+ ldr r0, [sp]
+ mov r1, #4
+ ldr r0, [r0]
+ bl FUN_0201AC68
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021E85D4: .word 0x00000276
+ thumb_func_end MOD75_021E8574
+
+ thumb_func_start MOD75_021E85D8
+MOD75_021E85D8: ; 0x021E85D8
+ push {r4, lr}
+ mov r1, #0x49
+ add r4, r0, #0
+ lsl r1, r1, #4
+ ldrb r2, [r4, r1]
+ cmp r2, #3
+ bhi _021E8674
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021E85F2: ; jump table
+ .short _021E8674 - _021E85F2 - 2 ; case 0
+ .short _021E85FA - _021E85F2 - 2 ; case 1
+ .short _021E8622 - _021E85F2 - 2 ; case 2
+ .short _021E864E - _021E85F2 - 2 ; case 3
+_021E85FA:
+ mov r1, #0x80
+ mov r2, #0x50
+ bl MOD75_021EC380
+ ldr r0, _021E8678 ; =0x000005E4
+ bl FUN_020054C8
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD75_021E8574
+ ldr r0, _021E867C ; =0x00000491
+ mov r1, #0
+ strb r1, [r4, r0]
+ sub r1, r0, #1
+ ldrb r1, [r4, r1]
+ sub r0, r0, #1
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_021E8622:
+ add r2, r1, #1
+ ldrb r2, [r4, r2]
+ cmp r2, #3
+ bne _021E8642
+ mov r1, #1
+ bl MOD75_021E8574
+ mov r0, #0x49
+ lsl r0, r0, #4
+ ldrb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, r0]
+ mov r1, #0
+ add r0, r0, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_021E8642:
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ pop {r4, pc}
+_021E864E:
+ add r2, r1, #1
+ ldrb r2, [r4, r2]
+ cmp r2, #2
+ bne _021E866A
+ mov r1, #0
+ bl MOD75_021E8574
+ mov r0, #0x49
+ mov r1, #0
+ lsl r0, r0, #4
+ strb r1, [r4, r0]
+ add r0, r0, #1
+ strb r1, [r4, r0]
+ pop {r4, pc}
+_021E866A:
+ add r0, r1, #1
+ ldrb r0, [r4, r0]
+ add r2, r0, #1
+ add r0, r1, #1
+ strb r2, [r4, r0]
+_021E8674:
+ pop {r4, pc}
+ nop
+_021E8678: .word 0x000005E4
+_021E867C: .word 0x00000491
+ thumb_func_end MOD75_021E85D8
+
+ thumb_func_start MOD75_021E8680
+MOD75_021E8680: ; 0x021E8680
+ push {r3, r4, r5, r6, r7, lr}
+ mov r1, #0
+ add r5, r0, #0
+ bl MOD75_021E8574
+ ldr r0, _021E86BC ; =0x00000424
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _021E86B2
+ mov r4, #0
+ cmp r0, #0
+ bls _021E86B2
+ ldr r6, _021E86BC ; =0x00000424
+ add r7, r4, #0
+_021E869C:
+ add r0, r5, #0
+ add r1, r4, #0
+ add r2, r7, #0
+ bl MOD75_021E84E4
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldrb r0, [r5, r6]
+ cmp r4, r0
+ blo _021E869C
+_021E86B2:
+ ldr r0, [r5]
+ mov r1, #4
+ bl FUN_0201AC68
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E86BC: .word 0x00000424
+ thumb_func_end MOD75_021E8680
+
+ thumb_func_start MOD75_021E86C0
+MOD75_021E86C0: ; 0x021E86C0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ ldr r0, _021E87B4 ; =0x00000481
+ ldrb r1, [r4, r0]
+ cmp r1, #0
+ bne _021E87A2
+ sub r0, r0, #1
+ ldrb r0, [r4, r0]
+ cmp r0, #3
+ bhi _021E8794
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021E86E2: ; jump table
+ .short _021E86EA - _021E86E2 - 2 ; case 0
+ .short _021E86EA - _021E86E2 - 2 ; case 1
+ .short _021E8740 - _021E86E2 - 2 ; case 2
+ .short _021E8740 - _021E86E2 - 2 ; case 3
+_021E86EA:
+ add r0, r4, #0
+ add r0, #0xe8
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ ldrsh r0, [r3, r1]
+ mov r2, #0
+ sub r0, r0, #1
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0]
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xec
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ ldrsh r0, [r3, r1]
+ mov r2, #0
+ add r0, r0, #1
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xec
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0]
+ bl FUN_0200C714
+ b _021E8794
+_021E8740:
+ add r0, r4, #0
+ add r0, #0xe8
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ ldrsh r0, [r3, r1]
+ mov r2, #0
+ add r0, r0, #1
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xe8
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0]
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xec
+ add r1, sp, #0
+ ldr r0, [r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_0200C7A0
+ add r3, sp, #0
+ mov r1, #2
+ ldrsh r0, [r3, r1]
+ mov r2, #0
+ sub r0, r0, #1
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xec
+ ldrsh r1, [r3, r1]
+ ldrsh r2, [r3, r2]
+ ldr r0, [r0]
+ bl FUN_0200C714
+_021E8794:
+ mov r1, #0x12
+ lsl r1, r1, #6
+ ldrb r0, [r4, r1]
+ add r2, r0, #1
+ mov r0, #3
+ and r0, r2
+ strb r0, [r4, r1]
+_021E87A2:
+ ldr r1, _021E87B4 ; =0x00000481
+ ldrb r0, [r4, r1]
+ add r2, r0, #1
+ mov r0, #3
+ and r0, r2
+ strb r0, [r4, r1]
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021E87B4: .word 0x00000481
+ thumb_func_end MOD75_021E86C0
+
+ thumb_func_start MOD75_021E87B8
+MOD75_021E87B8: ; 0x021E87B8
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldr r0, _021E87FC ; =0x021EC3F4
+ bl FUN_02020988
+ mov r1, #0
+ mvn r1, r1
+ cmp r0, r1
+ beq _021E87F4
+ ldr r1, _021E8800 ; =0x0000FFFE
+ add r0, sp, #4
+ strh r1, [r0]
+ add r0, sp, #4
+ str r0, [sp]
+ ldr r3, _021E8804 ; =0x021C48F8
+ ldr r0, [r4]
+ ldrh r2, [r3, #0x1c]
+ ldrh r3, [r3, #0x1e]
+ mov r1, #4
+ bl FUN_0201AFBC
+ cmp r0, #0
+ beq _021E87EE
+ add sp, #8
+ mov r0, #1
+ pop {r4, pc}
+_021E87EE:
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_021E87F4:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ nop
+_021E87FC: .word 0x021EC3F4
+_021E8800: .word 0x0000FFFE
+_021E8804: .word 0x021C48F8
+ thumb_func_end MOD75_021E87B8
+
+ thumb_func_start MOD75_021E8808
+MOD75_021E8808: ; 0x021E8808
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldrh r2, [r4, #6]
+ ldrh r1, [r4, #4]
+ ldr r0, [r5, r0]
+ add r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ bl FUN_02001464
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ bne _021E883C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E883C:
+ add r5, #0xc4
+ ldr r0, [r5]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _021E884C
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E884C:
+ ldrb r0, [r4, #8]
+ add r0, #0xfd
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bls _021E885C
+ mov r0, #1
+ b _021E885E
+_021E885C:
+ mov r0, #0
+_021E885E:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021E8808
+
+ thumb_func_start MOD75_021E8864
+MOD75_021E8864: ; 0x021E8864
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r3, r2, r0
+ ldr r1, _021E88B4 ; =0x0000047A
+ mov r0, #1
+ strb r0, [r4, r1]
+ ldrh r2, [r3, #6]
+ ldrh r0, [r3, #4]
+ add r2, r2, r0
+ add r0, r1, #1
+ strb r2, [r4, r0]
+ mov r0, #0x57
+ add r1, r1, #1
+ lsl r0, r0, #2
+ ldrb r1, [r4, r1]
+ ldr r0, [r4, r0]
+ bl FUN_02001464
+ ldr r1, _021E88B8 ; =0x0000047C
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD75_021EB3D8
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02001328
+ add r0, r4, #0
+ bl MOD75_021E8AAC
+ pop {r4, pc}
+ nop
+_021E88B4: .word 0x0000047A
+_021E88B8: .word 0x0000047C
+ thumb_func_end MOD75_021E8864
+
+ thumb_func_start MOD75_021E88BC
+MOD75_021E88BC: ; 0x021E88BC
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ bl MOD75_021EA3F4
+ cmp r0, #1
+ bne _021E88D0
+ add sp, #4
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021E88D0:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #6
+ add r2, r4, #4
+ bl FUN_02001448
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E8912
+ ldr r0, _021E89E8 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD75_021E89F0
+ mov r1, #0x49
+ mov r0, #1
+ lsl r1, r1, #4
+ add sp, #4
+ strb r0, [r5, r1]
+ pop {r3, r4, r5, r6, pc}
+_021E8912:
+ ldr r0, _021E89EC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #4
+ tst r0, r1
+ beq _021E892E
+ ldr r0, _021E89E8 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD75_021E89F0
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021E892E:
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001204
+ add r6, r0, #0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, sp, #0
+ ldr r0, [r5, r0]
+ add r1, #2
+ add r2, sp, #0
+ bl FUN_02001448
+ add r0, sp, #0
+ ldrh r2, [r0]
+ ldrh r0, [r4, #4]
+ cmp r0, r2
+ beq _021E896A
+ sub r2, r2, #1
+ add r0, r5, #0
+ lsl r2, r2, #4
+ add r0, #0xf4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+_021E896A:
+ add r0, sp, #0
+ ldrh r1, [r0, #2]
+ strh r1, [r4, #6]
+ ldrh r0, [r0]
+ strh r0, [r4, #4]
+ mov r0, #1
+ mvn r0, r0
+ cmp r6, r0
+ beq _021E89AA
+ add r0, r0, #1
+ cmp r6, r0
+ bne _021E89CE
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_0200145C
+ cmp r0, #1
+ bne _021E899A
+ add r0, r5, #0
+ mov r1, #0x24
+ bl MOD75_021EA0CC
+ b _021E89E0
+_021E899A:
+ cmp r0, #2
+ bne _021E89E0
+ mov r1, #0x23
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E89E0
+_021E89AA:
+ ldr r0, _021E89E8 ; =0x000005DC
+ bl FUN_020054C8
+ ldr r0, _021E89EC ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021E89C2
+ add r0, r5, #0
+ bl MOD75_021E89F0
+ b _021E89C8
+_021E89C2:
+ add r0, r5, #0
+ bl MOD75_021E8A48
+_021E89C8:
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021E89CE:
+ ldr r0, _021E89E8 ; =0x000005DC
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD75_021E89F0
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_021E89E0:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021E89E8: .word 0x000005DC
+_021E89EC: .word 0x021C48B8
+ thumb_func_end MOD75_021E88BC
+
+ thumb_func_start MOD75_021E89F0
+MOD75_021E89F0: ; 0x021E89F0
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldrh r2, [r0, #6]
+ ldrh r1, [r0, #4]
+ add r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ ldr r1, _021E8A44 ; =0x0000047B
+ ldrb r1, [r4, r1]
+ cmp r1, r2
+ beq _021E8A3C
+ sub r2, r2, #1
+ cmp r1, r2
+ beq _021E8A3C
+ sub r1, r1, #1
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ lsr r1, r1, #0x10
+ lsr r2, r2, #0x10
+ bl FUN_0206E5B4
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add r0, r4, #0
+ bl MOD75_021E7580
+_021E8A3C:
+ add r0, r4, #0
+ bl MOD75_021E8A48
+ pop {r4, pc}
+ .align 2, 0
+_021E8A44: .word 0x0000047B
+ thumb_func_end MOD75_021E89F0
+
+ thumb_func_start MOD75_021E8A48
+MOD75_021E8A48: ; 0x021E8A48
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r4, r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #6
+ add r2, r4, #4
+ bl FUN_02001300
+ mov r0, #0x57
+ mov r1, #0
+ lsl r0, r0, #2
+ str r1, [r5, r0]
+ ldr r0, _021E8AA4 ; =0x0000047B
+ ldrh r1, [r4, #6]
+ ldrb r2, [r5, r0]
+ ldrh r0, [r4, #4]
+ add r1, r1, r0
+ cmp r2, r1
+ bge _021E8A84
+ sub r0, r0, #1
+ strh r0, [r4, #4]
+_021E8A84:
+ ldr r0, _021E8AA8 ; =0x0000047A
+ mov r2, #0
+ strb r2, [r5, r0]
+ add r1, r0, #1
+ strb r2, [r5, r1]
+ add r0, r0, #2
+ str r2, [r5, r0]
+ ldrh r1, [r4, #6]
+ ldrh r2, [r4, #4]
+ add r0, r5, #0
+ bl MOD75_021E77E8
+ add r0, r5, #0
+ bl MOD75_021E8AAC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E8AA4: .word 0x0000047B
+_021E8AA8: .word 0x0000047A
+ thumb_func_end MOD75_021E8A48
+
+ thumb_func_start MOD75_021E8AAC
+MOD75_021E8AAC: ; 0x021E8AAC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r2, r2, r0
+ ldr r0, _021E8B68 ; =0x0000047A
+ ldrb r0, [r4, r0]
+ cmp r0, #0
+ bne _021E8B18
+ ldrh r2, [r2, #4]
+ add r0, r4, #0
+ add r0, #0xf0
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ ldr r0, _021E8B6C ; =0x00000424
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ beq _021E8B66
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200C644
+ add r4, #0xec
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0200C644
+ pop {r4, pc}
+_021E8B18:
+ ldrh r2, [r2, #4]
+ add r0, r4, #0
+ add r0, #0xf4
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r4, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200C644
+ ldr r0, _021E8B6C ; =0x00000424
+ ldrb r0, [r4, r0]
+ cmp r0, #1
+ beq _021E8B66
+ add r0, r4, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r4, #0xec
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C644
+_021E8B66:
+ pop {r4, pc}
+ .align 2, 0
+_021E8B68: .word 0x0000047A
+_021E8B6C: .word 0x00000424
+ thumb_func_end MOD75_021E8AAC
+
+ thumb_func_start MOD75_021E8B70
+MOD75_021E8B70: ; 0x021E8B70
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ add r0, #0x66
+ ldrh r0, [r0]
+ mov r2, #6
+ bl FUN_0206E710
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r4, #0
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r0, r1
+ add r0, #0x65
+ ldrb r0, [r0]
+ ldrb r6, [r1, #0xc]
+ cmp r0, #0
+ beq _021E8BA8
+ b _021E8CB6
+_021E8BA8:
+ cmp r6, #4
+ bne _021E8BB4
+ mov r1, #9
+ add r0, sp, #0
+ strb r1, [r0]
+ add r4, r4, #1
+_021E8BB4:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x76
+ ldrh r1, [r1]
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x11
+ ldr r1, _021E8CE8 ; =0x0000FFFE
+ add r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r1, r1, #0x10
+ cmp r1, #1
+ bhi _021E8BEC
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ cmp r0, #5
+ bne _021E8C66
+ mov r1, #2
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ add r4, r4, #1
+ b _021E8C66
+_021E8BEC:
+ add r0, r7, #0
+ mov r1, #6
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _021E8C66
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ ldr r2, _021E8CEC ; =0x000001C2
+ add r0, r1, #0
+ add r0, #0x66
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _021E8C20
+ add r2, r1, #0
+ add r2, #0x76
+ ldrh r2, [r2]
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x1f
+ cmp r2, #1
+ bne _021E8C20
+ mov r1, #1
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ b _021E8C64
+_021E8C20:
+ add r2, r1, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ mul r2, r3
+ add r2, r1, r2
+ ldrb r3, [r2, #0xc]
+ cmp r3, #5
+ bne _021E8C3A
+ mov r1, #2
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ b _021E8C64
+_021E8C3A:
+ ldr r2, _021E8CF0 ; =0x000001C1
+ cmp r0, r2
+ bne _021E8C48
+ mov r1, #4
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ b _021E8C64
+_021E8C48:
+ cmp r3, #4
+ bne _021E8C5E
+ ldr r0, [r1, #0x70]
+ bl FUN_0205D51C
+ cmp r0, #1
+ bne _021E8C5E
+ mov r1, #3
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ b _021E8C64
+_021E8C5E:
+ mov r1, #0
+ add r0, sp, #0
+ strb r1, [r0, r4]
+_021E8C64:
+ add r4, r4, #1
+_021E8C66:
+ add r0, r7, #0
+ mov r1, #3
+ bl FUN_0206E7DC
+ cmp r0, #0
+ bne _021E8C84
+ mov r0, #8
+ add r1, sp, #0
+ strb r0, [r1, r4]
+ add r4, r4, #1
+ cmp r6, #3
+ beq _021E8C84
+ mov r0, #5
+ strb r0, [r1, r4]
+ add r4, r4, #1
+_021E8C84:
+ add r0, r7, #0
+ mov r1, #4
+ bl FUN_0206E7DC
+ cmp r0, #0
+ beq _021E8CCC
+ add r0, r5, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ bl FUN_0206EBC4
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r1, #0x66
+ ldrh r1, [r1]
+ cmp r1, r0
+ bne _021E8CAC
+ mov r1, #7
+ b _021E8CAE
+_021E8CAC:
+ mov r1, #6
+_021E8CAE:
+ add r0, sp, #0
+ strb r1, [r0, r4]
+ add r4, r4, #1
+ b _021E8CCC
+_021E8CB6:
+ add r0, #0xfc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021E8CCC
+ mov r1, #0xa
+ add r0, sp, #0
+ strb r1, [r0]
+ mov r1, #9
+ strb r1, [r0, #1]
+ add r4, r4, #2
+_021E8CCC:
+ add r2, r4, #1
+ lsl r2, r2, #0x18
+ mov r0, #0xb
+ add r1, sp, #0
+ strb r0, [r1, r4]
+ add r0, r5, #0
+ lsr r2, r2, #0x18
+ bl MOD75_021EB130
+ add r0, r7, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021E8CE8: .word 0x0000FFFE
+_021E8CEC: .word 0x000001C2
+_021E8CF0: .word 0x000001C1
+ thumb_func_end MOD75_021E8B70
+
+ thumb_func_start MOD75_021E8CF4
+MOD75_021E8CF4: ; 0x021E8CF4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD75_021EA510
+ cmp r0, #1
+ bne _021E8D04
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_021E8D04:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001C78
+ add r4, r0, #0
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ bne _021E8D38
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E8D38
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001DDC
+ add r4, r0, #0
+ mov r0, #0x49
+ mov r1, #1
+ lsl r0, r0, #4
+ strb r1, [r5, r0]
+_021E8D38:
+ mov r0, #1
+ mvn r0, r0
+ cmp r4, r0
+ beq _021E8D6E
+ add r0, r0, #1
+ cmp r4, r0
+ bne _021E8DA0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001E60
+ cmp r0, #1
+ bne _021E8D5E
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ b _021E8DA6
+_021E8D5E:
+ cmp r0, #2
+ bne _021E8DA6
+ mov r1, #0x11
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E8DA6
+_021E8D6E:
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add r0, r5, #0
+ bl MOD75_021EB344
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0xc]
+ cmp r0, #3
+ bne _021E8D9C
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD75_021E8DAC
+_021E8D9C:
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E8DA0:
+ add r0, r5, #0
+ blx r4
+ pop {r3, r4, r5, pc}
+_021E8DA6:
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E8CF4
+
+ thumb_func_start MOD75_021E8DAC
+MOD75_021E8DAC: ; 0x021E8DAC
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ cmp r1, #0
+ bne _021E8DDA
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r2, _021E8E08 ; =0x021EC5C0
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02018148
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #1
+ bl FUN_0200C644
+ b _021E8DFC
+_021E8DDA:
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #5
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, [r4]
+ ldr r2, _021E8E0C ; =0x021EC5F2
+ mov r1, #1
+ mov r3, #0
+ bl FUN_02018148
+ add r0, r4, #0
+ add r0, #0xfc
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021E8DFC:
+ ldr r0, [r4]
+ mov r1, #1
+ bl FUN_0201AC68
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021E8E08: .word 0x021EC5C0
+_021E8E0C: .word 0x021EC5F2
+ thumb_func_end MOD75_021E8DAC
+
+ thumb_func_start MOD75_021E8E10
+MOD75_021E8E10: ; 0x021E8E10
+ lsl r1, r0, #2
+ ldr r0, _021E8E18 ; =0x021EC590
+ ldr r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_021E8E18: .word 0x021EC590
+ thumb_func_end MOD75_021E8E10
+
+ thumb_func_start MOD75_021E8E1C
+MOD75_021E8E1C: ; 0x021E8E1C
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl MOD75_021EB344
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #6
+ add r0, #0x66
+ ldrh r0, [r0]
+ add r2, r1, #0
+ bl FUN_0206E7B8
+ add r1, r0, #0
+ lsl r1, r1, #0x10
+ mov r0, #2
+ lsr r1, r1, #0x10
+ bl FUN_0205CE48
+ add r1, r0, #0
+ beq _021E8E9C
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0, #0x70]
+ blx r1
+ add r3, r0, #0
+ beq _021E8E9C
+ mov r0, #6
+ add r2, r4, #0
+ str r0, [sp]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, #0
+ mov r1, #0xfe
+ add r2, #0x66
+ add r0, #0xcc
+ lsl r1, r1, #2
+ ldrh r2, [r2]
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ bl FUN_0206E51C
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021E8EA8 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E8EAC ; =0x00000426
+ add sp, #4
+ strb r0, [r4, r1]
+ mov r0, #0xc
+ pop {r3, r4, pc}
+_021E8E9C:
+ add r0, r4, #0
+ bl MOD75_021E8F10
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021E8EA8: .word 0x000003D9
+_021E8EAC: .word 0x00000426
+ thumb_func_end MOD75_021E8E1C
+
+ thumb_func_start MOD75_021E8EB0
+MOD75_021E8EB0: ; 0x021E8EB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E8F04 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E8F00
+ ldr r0, _021E8F08 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E8ED2
+ ldr r0, _021E8F0C ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E8F00
+_021E8ED2:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add r4, #0xc4
+ ldr r0, [r4]
+ add r0, #0x65
+ ldrb r0, [r0]
+ cmp r0, #3
+ bne _021E8EFC
+ mov r0, #0x17
+ pop {r4, pc}
+_021E8EFC:
+ mov r0, #1
+ pop {r4, pc}
+_021E8F00:
+ mov r0, #0xc
+ pop {r4, pc}
+ .align 2, 0
+_021E8F04: .word 0x00000426
+_021E8F08: .word 0x021C48B8
+_021E8F0C: .word 0x021C48F8
+ thumb_func_end MOD75_021E8EB0
+
+ thumb_func_start MOD75_021E8F10
+MOD75_021E8F10: ; 0x021E8F10
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r2, r2, r0
+ ldr r1, _021E8FB0 ; =0x00000483
+ mov r0, #0
+ strb r0, [r4, r1]
+ ldrb r0, [r2, #8]
+ cmp r0, #3
+ bne _021E8F3A
+ ldr r2, _021E8FB4 ; =MOD75_021E8FD8
+ add r0, r1, #1
+ str r2, [r4, r0]
+ mov r0, #0xd
+ pop {r4, pc}
+_021E8F3A:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ sub r1, #0x8b
+ ldr r0, [r2]
+ add r2, #0x66
+ ldrh r2, [r2]
+ ldr r1, [r4, r1]
+ mov r3, #6
+ bl FUN_0206E3F8
+ cmp r0, #1
+ bne _021E8F7A
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021E8FB8 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E8FBC ; =0x00000426
+ strb r0, [r4, r1]
+ mov r0, #0xc
+ pop {r4, pc}
+_021E8F7A:
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r4, #0
+ add r1, #0x66
+ ldrh r1, [r1]
+ bl MOD75_021E91B8
+ cmp r0, #1
+ bne _021E8F98
+ ldr r1, _021E8FC0 ; =MOD75_021E9394
+ ldr r0, _021E8FC4 ; =0x00000484
+ str r1, [r4, r0]
+ mov r0, #0xd
+ pop {r4, pc}
+_021E8F98:
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r4, pc}
+ nop
+_021E8FB0: .word 0x00000483
+_021E8FB4: .word MOD75_021E8FD8
+_021E8FB8: .word 0x000003D9
+_021E8FBC: .word 0x00000426
+_021E8FC0: .word MOD75_021E9394
+_021E8FC4: .word 0x00000484
+ thumb_func_end MOD75_021E8F10
+
+ thumb_func_start MOD75_021E8FC8
+MOD75_021E8FC8: ; 0x021E8FC8
+ push {r3, lr}
+ ldr r1, _021E8FD4 ; =0x00000484
+ ldr r1, [r0, r1]
+ blx r1
+ pop {r3, pc}
+ nop
+_021E8FD4: .word 0x00000484
+ thumb_func_end MOD75_021E8FC8
+
+ thumb_func_start MOD75_021E8FD8
+MOD75_021E8FD8: ; 0x021E8FD8
+ push {r3, r4, r5, lr}
+ ldr r1, _021E91A4 ; =0x00000483
+ add r4, r0, #0
+ ldrb r2, [r4, r1]
+ cmp r2, #3
+ bls _021E8FE6
+ b _021E91A0
+_021E8FE6:
+ add r2, r2, r2
+ add r2, pc
+ ldrh r2, [r2, #6]
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ add pc, r2
+_021E8FF2: ; jump table
+ .short _021E8FFA - _021E8FF2 - 2 ; case 0
+ .short _021E9070 - _021E8FF2 - 2 ; case 1
+ .short _021E90D0 - _021E8FF2 - 2 ; case 2
+ .short _021E90EA - _021E8FF2 - 2 ; case 3
+_021E8FFA:
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x66
+ ldrh r0, [r0]
+ bl FUN_0206EA30
+ add r5, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ add r2, r5, #0
+ bl FUN_0200AD5C
+ add r0, r5, #0
+ bl FUN_0206EA54
+ cmp r0, #1
+ bne _021E9034
+ mov r0, #0x45
+ mov r2, #0xfe
+ lsl r0, r0, #2
+ lsl r2, r2, #2
+ ldr r0, [r4, r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3b
+ bl FUN_0200A8E0
+ b _021E9046
+_021E9034:
+ mov r0, #0x45
+ mov r2, #0xfe
+ lsl r0, r0, #2
+ lsl r2, r2, #2
+ ldr r0, [r4, r0]
+ ldr r2, [r4, r2]
+ mov r1, #0x3a
+ bl FUN_0200A8E0
+_021E9046:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021E91A8 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E91AC ; =0x00000426
+ strb r0, [r4, r1]
+ mov r0, #1
+ add r1, #0x5d
+ strb r0, [r4, r1]
+ b _021E91A0
+_021E9070:
+ sub r1, #0x5d
+ ldrb r0, [r4, r1]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9132
+ ldr r0, _021E91B0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E908E
+ ldr r0, _021E91B4 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9132
+_021E908E:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x3c
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E91AC ; =0x00000426
+ strb r0, [r4, r1]
+ mov r0, #2
+ add r1, #0x5d
+ strb r0, [r4, r1]
+ b _021E91A0
+_021E90D0:
+ sub r1, #0x5d
+ ldrb r0, [r4, r1]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E91A0
+ add r0, r4, #0
+ bl MOD75_021EB6E0
+ ldr r0, _021E91A4 ; =0x00000483
+ mov r1, #3
+ strb r1, [r4, r0]
+ b _021E91A0
+_021E90EA:
+ bl MOD75_021EA510
+ cmp r0, #1
+ beq _021E91A0
+ add r0, r4, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9114
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ mov r2, #6
+ bl FUN_020021CC
+ mov r1, #0x49
+ mov r2, #1
+ lsl r1, r1, #4
+ strb r2, [r4, r1]
+ b _021E9120
+_021E9114:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #6
+ bl FUN_020021AC
+_021E9120:
+ cmp r0, #0
+ beq _021E9134
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021E917A
+ add r1, r1, #1
+ cmp r0, r1
+ beq _021E9152
+_021E9132:
+ b _021E91A0
+_021E9134:
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021E8DAC
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r3, r4, r5, pc}
+_021E9152:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02001E60
+ cmp r0, #1
+ bne _021E916A
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ b _021E91A0
+_021E916A:
+ cmp r0, #2
+ bne _021E91A0
+ mov r1, #0x11
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E91A0
+_021E917A:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021E8DAC
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E91A0:
+ mov r0, #0xd
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E91A4: .word 0x00000483
+_021E91A8: .word 0x000003D9
+_021E91AC: .word 0x00000426
+_021E91B0: .word 0x021C48B8
+_021E91B4: .word 0x021C48F8
+ thumb_func_end MOD75_021E8FD8
+
+ thumb_func_start MOD75_021E91B8
+MOD75_021E91B8: ; 0x021E91B8
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ mov r0, #0x46
+ add r2, r4, #0
+ lsl r0, r0, #2
+ add r2, #0xcc
+ add r5, r1, #0
+ ldr r0, [r4, r0]
+ ldr r2, [r2]
+ mov r1, #0
+ bl FUN_0200ABC0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #1
+ add r2, r5, #0
+ bl FUN_0200AE38
+ cmp r5, #0x44
+ bne _021E9200
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x40
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021E6FFC
+ ldr r0, _021E925C ; =0x00000488
+ mov r1, #0
+ strh r1, [r4, r0]
+ b _021E923E
+_021E9200:
+ cmp r5, #0x45
+ bne _021E9222
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x3f
+ bl FUN_0200A914
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD75_021E6FFC
+ ldr r0, _021E925C ; =0x00000488
+ mov r1, #0
+ strh r1, [r4, r0]
+ b _021E923E
+_021E9222:
+ cmp r5, #0x4d
+ beq _021E922E
+ cmp r5, #0x4c
+ beq _021E922E
+ cmp r5, #0x4f
+ bne _021E923A
+_021E922E:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD75_021E9260
+ add r5, r0, #0
+ b _021E923E
+_021E923A:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_021E923E:
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+ nop
+_021E925C: .word 0x00000488
+ thumb_func_end MOD75_021E91B8
+
+ thumb_func_start MOD75_021E9260
+MOD75_021E9260: ; 0x021E9260
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ bl MOD75_021E6FDC
+ bl FUN_0202AB54
+ cmp r0, #0
+ bne _021E9286
+ ldr r0, _021E92B8 ; =0x00000488
+ mov r1, #0
+ strh r1, [r4, r0]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x3e
+ bl FUN_0200A914
+ pop {r3, r4, r5, pc}
+_021E9286:
+ add r0, r5, #0
+ mov r1, #2
+ mov r2, #6
+ bl FUN_0206E7B8
+ add r1, r0, #0
+ lsl r1, r1, #0x18
+ add r0, r4, #0
+ lsr r1, r1, #0x18
+ bl MOD75_021E6FEC
+ ldr r0, _021E92B8 ; =0x00000488
+ mov r1, #1
+ strh r1, [r4, r0]
+ mov r0, #6
+ lsl r0, r0, #8
+ bl FUN_020054C8
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x3d
+ bl FUN_0200A914
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E92B8: .word 0x00000488
+ thumb_func_end MOD75_021E9260
+
+ thumb_func_start MOD75_021E92BC
+MOD75_021E92BC: ; 0x021E92BC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r3, r1, #0
+ mul r3, r0
+ add r1, r2, r3
+ mov r0, #6
+ str r0, [sp]
+ ldr r3, _021E9390 ; =0x00000488
+ ldr r0, [r1, #4]
+ ldrb r1, [r1, #0xd]
+ add r2, #0x66
+ ldrh r2, [r2]
+ ldrh r3, [r4, r3]
+ sub r1, r1, #3
+ bl FUN_0206EE20
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ add r1, r3, #0
+ mul r2, r0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r1, #0xa
+ ldr r0, [r4, r0]
+ add r3, #8
+ add r1, r1, r2
+ add r2, r3, r2
+ bl FUN_02001300
+ mov r0, #0x16
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ bl FUN_02012870
+ add r0, r4, #0
+ bl MOD75_021E7580
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ bl MOD75_021E7758
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r0, r3, #0
+ add r1, r3, #0
+ add r0, #0xa
+ add r1, #8
+ add r0, r0, r2
+ add r1, r1, r2
+ add r2, r3, r2
+ ldrb r2, [r2, #0xd]
+ mov r3, #9
+ bl MOD75_021E7794
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ add r2, r1, #0
+ mul r2, r0
+ add r2, r3, r2
+ ldrh r1, [r2, #0xa]
+ ldrh r2, [r2, #8]
+ add r0, r4, #0
+ bl MOD75_021E77E8
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021E9390: .word 0x00000488
+ thumb_func_end MOD75_021E92BC
+
+ thumb_func_start MOD75_021E9394
+MOD75_021E9394: ; 0x021E9394
+ push {r4, lr}
+ ldr r1, _021E9428 ; =0x00000483
+ add r4, r0, #0
+ ldrb r2, [r4, r1]
+ cmp r2, #0
+ beq _021E93AA
+ cmp r2, #1
+ beq _021E93D2
+ cmp r2, #2
+ beq _021E9402
+ b _021E9422
+_021E93AA:
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021E942C ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9430 ; =0x00000426
+ strb r0, [r4, r1]
+ mov r0, #1
+ add r1, #0x5d
+ strb r0, [r4, r1]
+ b _021E9422
+_021E93D2:
+ sub r1, #0x5d
+ ldrb r0, [r4, r1]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9422
+ ldr r0, _021E9434 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E93F0
+ ldr r0, _021E9438 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9422
+_021E93F0:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ ldr r0, _021E9428 ; =0x00000483
+ mov r1, #2
+ strb r1, [r4, r0]
+ b _021E9422
+_021E9402:
+ add r1, r1, #5
+ ldrsh r1, [r4, r1]
+ cmp r1, #0
+ beq _021E940E
+ bl MOD75_021E92BC
+_021E940E:
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #1
+ pop {r4, pc}
+_021E9422:
+ mov r0, #0xd
+ pop {r4, pc}
+ nop
+_021E9428: .word 0x00000483
+_021E942C: .word 0x000003D9
+_021E9430: .word 0x00000426
+_021E9434: .word 0x021C48B8
+_021E9438: .word 0x021C48F8
+ thumb_func_end MOD75_021E9394
+
+ thumb_func_start MOD75_021E943C
+MOD75_021E943C: ; 0x021E943C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021EB344
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #1
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E943C
+
+ thumb_func_start MOD75_021E945C
+MOD75_021E945C: ; 0x021E945C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021EB344
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #3
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E945C
+
+ thumb_func_start MOD75_021E947C
+MOD75_021E947C: ; 0x021E947C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021EB344
+ ldr r0, _021E94CC ; =0x00000488
+ mov r1, #1
+ strh r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ mov r3, #6
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r1, r2, r0
+ ldr r0, [r1, #4]
+ ldrb r1, [r1, #0xd]
+ add r2, #0x66
+ ldrh r2, [r2]
+ sub r1, r1, #3
+ bl FUN_0206EF10
+ cmp r0, #1
+ bne _021E94BA
+ add r0, r4, #0
+ bl MOD75_021EB5B0
+ mov r0, #8
+ pop {r4, pc}
+_021E94BA:
+ add r0, r4, #0
+ bl MOD75_021EB454
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC24C
+ mov r0, #7
+ pop {r4, pc}
+ .align 2, 0
+_021E94CC: .word 0x00000488
+ thumb_func_end MOD75_021E947C
+
+ thumb_func_start MOD75_021E94D0
+MOD75_021E94D0: ; 0x021E94D0
+ push {r4, lr}
+ ldr r2, _021E95AC ; =0x00000488
+ add r4, r0, #0
+ add r1, r4, r2
+ add r2, r2, #2
+ ldrh r2, [r4, r2]
+ bl MOD75_021EA594
+ cmp r0, #1
+ bne _021E94EE
+ add r0, r4, #0
+ bl MOD75_021EB504
+ mov r0, #7
+ pop {r4, pc}
+_021E94EE:
+ add r0, r4, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9512
+ add r0, r4, #0
+ bl MOD75_021EB5B0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ mov r0, #0x49
+ mov r1, #1
+ lsl r0, r0, #4
+ strb r1, [r4, r0]
+ mov r0, #8
+ pop {r4, pc}
+_021E9512:
+ ldr r1, _021E95AC ; =0x00000488
+ add r0, r4, r1
+ add r1, r1, #2
+ ldrh r1, [r4, r1]
+ bl FUN_02079AAC
+ cmp r0, #0
+ beq _021E955E
+ cmp r0, #1
+ beq _021E952C
+ cmp r0, #2
+ beq _021E9544
+ b _021E955E
+_021E952C:
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ add r0, r4, #0
+ bl MOD75_021EB504
+ ldr r0, _021E95B0 ; =0x00000638
+ bl FUN_020054C8
+ mov r0, #7
+ pop {r4, pc}
+_021E9544:
+ mov r1, #0x11
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ add r0, r4, #0
+ bl MOD75_021EB504
+ ldr r0, _021E95B0 ; =0x00000638
+ bl FUN_020054C8
+ mov r0, #7
+ pop {r4, pc}
+_021E955E:
+ ldr r0, _021E95B4 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021E9580
+ add r0, r4, #0
+ bl MOD75_021EB5B0
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ ldr r0, _021E95B8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #8
+ pop {r4, pc}
+_021E9580:
+ mov r0, #2
+ tst r0, r1
+ beq _021E95A6
+ add r0, r4, #0
+ bl MOD75_021EB580
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ ldr r0, _021E95B8 ; =0x000005DC
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r4, pc}
+_021E95A6:
+ mov r0, #7
+ pop {r4, pc}
+ nop
+_021E95AC: .word 0x00000488
+_021E95B0: .word 0x00000638
+_021E95B4: .word 0x021C48B8
+_021E95B8: .word 0x000005DC
+ thumb_func_end MOD75_021E94D0
+
+ thumb_func_start MOD75_021E95BC
+MOD75_021E95BC: ; 0x021E95BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E95DC ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E95D6
+ add r0, r4, #0
+ bl MOD75_021EB6E0
+ mov r0, #9
+ pop {r4, pc}
+_021E95D6:
+ mov r0, #8
+ pop {r4, pc}
+ nop
+_021E95DC: .word 0x00000426
+ thumb_func_end MOD75_021E95BC
+
+ thumb_func_start MOD75_021E95E0
+MOD75_021E95E0: ; 0x021E95E0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD75_021EA510
+ cmp r0, #1
+ bne _021E95F4
+ add sp, #8
+ mov r0, #9
+ pop {r3, r4, r5, pc}
+_021E95F4:
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9616
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r2, #6
+ bl FUN_020021CC
+ mov r1, #0x49
+ mov r2, #1
+ lsl r1, r1, #4
+ strb r2, [r5, r1]
+ b _021E9622
+_021E9616:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_020021AC
+_021E9622:
+ cmp r0, #0
+ beq _021E9636
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021E96EC
+ add r1, r1, #1
+ cmp r0, r1
+ beq _021E96C4
+ b _021E970C
+_021E9636:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x35
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _021E9714 ; =0x00000488
+ ldrsh r0, [r5, r0]
+ cmp r0, #1
+ bne _021E9664
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ b _021E967A
+_021E9664:
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AEA8
+_021E967A:
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ mov r0, #0x46
+ ldr r2, _021E9714 ; =0x00000488
+ str r1, [sp, #4]
+ lsl r0, r0, #2
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9718 ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0xa
+ pop {r3, r4, r5, pc}
+_021E96C4:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001E60
+ cmp r0, #1
+ bne _021E96DC
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ b _021E970C
+_021E96DC:
+ cmp r0, #2
+ bne _021E970C
+ mov r1, #0x11
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E970C
+_021E96EC:
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add sp, #8
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_021E970C:
+ mov r0, #9
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_021E9714: .word 0x00000488
+_021E9718: .word 0x00000426
+ thumb_func_end MOD75_021E95E0
+
+ thumb_func_start MOD75_021E971C
+MOD75_021E971C: ; 0x021E971C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9748 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021E9730
+ mov r0, #0xa
+ pop {r4, pc}
+_021E9730:
+ ldr r0, _021E974C ; =0x00000479
+ mov r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021E92BC
+ add r4, #0x64
+ add r0, r4, #0
+ bl FUN_02019220
+ mov r0, #0xb
+ pop {r4, pc}
+ .align 2, 0
+_021E9748: .word 0x00000426
+_021E974C: .word 0x00000479
+ thumb_func_end MOD75_021E971C
+
+ thumb_func_start MOD75_021E9750
+MOD75_021E9750: ; 0x021E9750
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9798 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9794
+ ldr r0, _021E979C ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E9772
+ ldr r0, _021E97A0 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9794
+_021E9772:
+ ldr r0, _021E97A4 ; =0x00000479
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x64
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #1
+ pop {r4, pc}
+_021E9794:
+ mov r0, #0xb
+ pop {r4, pc}
+ .align 2, 0
+_021E9798: .word 0x00000426
+_021E979C: .word 0x021C48B8
+_021E97A0: .word 0x021C48F8
+_021E97A4: .word 0x00000479
+ thumb_func_end MOD75_021E9750
+
+ thumb_func_start MOD75_021E97A8
+MOD75_021E97A8: ; 0x021E97A8
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, #0xc8
+ add r1, #0x66
+ ldrh r1, [r1]
+ ldr r0, [r0]
+ bl FUN_0206EBCC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02001328
+ add r0, r4, #0
+ bl MOD75_021EB344
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E97A8
+
+ thumb_func_start MOD75_021E97E4
+MOD75_021E97E4: ; 0x021E97E4
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xc8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0206EBCC
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02001328
+ add r0, r4, #0
+ bl MOD75_021EB344
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #1
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E97E4
+
+ thumb_func_start MOD75_021E9818
+MOD75_021E9818: ; 0x021E9818
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD75_021EB344
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021E8DAC
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #2
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021E9818
+
+ thumb_func_start MOD75_021E9840
+MOD75_021E9840: ; 0x021E9840
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD75_021E86C0
+ add r0, r5, #0
+ bl MOD75_021EA2D8
+ cmp r0, #1
+ bne _021E9856
+ mov r0, #0xe
+ pop {r3, r4, r5, pc}
+_021E9856:
+ add r0, r5, #0
+ bl MOD75_021E7D14
+ cmp r0, #1
+ bne _021E9864
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021E9864:
+ add r0, r5, #0
+ bl MOD75_021E8304
+ cmp r0, #1
+ bne _021E9872
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021E9872:
+ add r0, r5, #0
+ bl MOD75_021E7B7C
+ cmp r0, #1
+ bne _021E9912
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r0, #0x66
+ ldrh r0, [r0]
+ mov r2, #6
+ bl FUN_0206E7B8
+ cmp r0, #0
+ beq _021E98FC
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ ldr r2, _021E9928 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x2e
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E992C ; =0x00000426
+ strb r0, [r5, r1]
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD75_021EC090
+ mov r0, #0xf
+ pop {r3, r4, r5, pc}
+_021E98FC:
+ add r5, #0xc4
+ ldr r0, [r5]
+ mov r1, #4
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ mov r0, #0x18
+ pop {r3, r4, r5, pc}
+_021E9912:
+ cmp r0, #3
+ bne _021E9924
+ add r5, #0xc4
+ ldr r0, [r5]
+ mov r1, #4
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #0x18
+ pop {r3, r4, r5, pc}
+_021E9924:
+ mov r0, #0xe
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E9928: .word 0x000003D9
+_021E992C: .word 0x00000426
+ thumb_func_end MOD75_021E9840
+
+ thumb_func_start MOD75_021E9930
+MOD75_021E9930: ; 0x021E9930
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9974 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9970
+ ldr r0, _021E9978 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E9952
+ ldr r0, _021E997C ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9970
+_021E9952:
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #0xe
+ pop {r4, pc}
+_021E9970:
+ mov r0, #0xf
+ pop {r4, pc}
+ .align 2, 0
+_021E9974: .word 0x00000426
+_021E9978: .word 0x021C48B8
+_021E997C: .word 0x021C48F8
+ thumb_func_end MOD75_021E9930
+
+ thumb_func_start MOD75_021E9980
+MOD75_021E9980: ; 0x021E9980
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD75_021E86C0
+ add r0, r5, #0
+ bl MOD75_021EA2D8
+ cmp r0, #1
+ bne _021E999A
+ add sp, #8
+ mov r0, #0x10
+ pop {r3, r4, r5, pc}
+_021E999A:
+ add r0, r5, #0
+ bl MOD75_021E7D14
+ cmp r0, #1
+ bne _021E99AA
+ add sp, #8
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021E99AA:
+ add r0, r5, #0
+ bl MOD75_021E8304
+ cmp r0, #1
+ bne _021E99BA
+ add sp, #8
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_021E99BA:
+ add r0, r5, #0
+ bl MOD75_021E7B7C
+ cmp r0, #1
+ beq _021E99C6
+ b _021E9B2A
+_021E99C6:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD75_021EB808
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ ldr r2, _021E9B3C ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD75_021EC090
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #0
+ add r0, #0x66
+ ldrh r0, [r0]
+ mov r2, #6
+ bl FUN_0206E7B8
+ ldr r1, _021E9B40 ; =0x0000048C
+ mov r2, #6
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #3
+ add r0, #0x66
+ ldrh r0, [r0]
+ bl FUN_0206E7B8
+ cmp r0, #0
+ bne _021E9A38
+ ldr r1, _021E9B40 ; =0x0000048C
+ ldr r0, [r5, r1]
+ cmp r0, #0
+ bne _021E9A6E
+_021E9A38:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4a
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9B44 ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0x16
+ pop {r3, r4, r5, pc}
+_021E9A6E:
+ mov r2, #1
+ sub r0, r1, #4
+ strh r2, [r5, r0]
+ ldr r0, [r5, r1]
+ mov r3, #6
+ lsr r0, r0, #1
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r1, r2, r0
+ ldr r0, [r1, #4]
+ ldrb r1, [r1, #0xd]
+ add r2, #0x66
+ ldrh r2, [r2]
+ sub r1, r1, #3
+ bl FUN_0206EF10
+ cmp r0, #1
+ bne _021E9AF4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4c
+ bl FUN_0200A914
+ mov r1, #0
+ add r4, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021E9B48 ; =0x00000488
+ mov r0, #0x46
+ ldrsh r3, [r5, r2]
+ add r2, r2, #4
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mul r2, r3
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9B44 ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0x13
+ pop {r3, r4, r5, pc}
+_021E9AF4:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4b
+ bl FUN_0200A914
+ add r4, r0, #0
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9B44 ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0x11
+ pop {r3, r4, r5, pc}
+_021E9B2A:
+ cmp r0, #3
+ bne _021E9B34
+ add sp, #8
+ mov r0, #0x18
+ pop {r3, r4, r5, pc}
+_021E9B34:
+ mov r0, #0x10
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_021E9B3C: .word 0x000003D9
+_021E9B40: .word 0x0000048C
+_021E9B44: .word 0x00000426
+_021E9B48: .word 0x00000488
+ thumb_func_end MOD75_021E9980
+
+ thumb_func_start MOD75_021E9B4C
+MOD75_021E9B4C: ; 0x021E9B4C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9B80 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9B7C
+ ldr r0, _021E9B84 ; =0x0000048A
+ ldrh r1, [r4, r0]
+ cmp r1, #0x63
+ bls _021E9B68
+ mov r1, #0x63
+ strh r1, [r4, r0]
+_021E9B68:
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EB708
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC24C
+ mov r0, #0x12
+ pop {r4, pc}
+_021E9B7C:
+ mov r0, #0x11
+ pop {r4, pc}
+ .align 2, 0
+_021E9B80: .word 0x00000426
+_021E9B84: .word 0x0000048A
+ thumb_func_end MOD75_021E9B4C
+
+ thumb_func_start MOD75_021E9B88
+MOD75_021E9B88: ; 0x021E9B88
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r2, _021E9D54 ; =0x00000488
+ add r4, r0, #0
+ add r1, r4, r2
+ add r2, r2, #2
+ ldrh r2, [r4, r2]
+ bl MOD75_021EA594
+ cmp r0, #1
+ bne _021E9BAC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EB708
+ add sp, #8
+ mov r0, #0x12
+ pop {r3, r4, r5, pc}
+_021E9BAC:
+ add r0, r4, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9C2C
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ add r0, r4, #0
+ add r0, #0x74
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x4c
+ bl FUN_0200A914
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021E9D54 ; =0x00000488
+ mov r0, #0x46
+ ldrsh r3, [r4, r2]
+ add r2, r2, #4
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ ldr r0, [r4, r0]
+ mul r2, r3
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9D58 ; =0x00000426
+ add sp, #8
+ strb r0, [r4, r1]
+ mov r0, #1
+ add r1, #0x6a
+ strb r0, [r4, r1]
+ mov r0, #0x13
+ pop {r3, r4, r5, pc}
+_021E9C2C:
+ ldr r1, _021E9D54 ; =0x00000488
+ add r0, r4, r1
+ add r1, r1, #2
+ ldrh r1, [r4, r1]
+ bl FUN_02079AAC
+ cmp r0, #0
+ beq _021E9C80
+ cmp r0, #1
+ beq _021E9C46
+ cmp r0, #2
+ beq _021E9C62
+ b _021E9C80
+_021E9C46:
+ add r0, r4, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EB708
+ ldr r0, _021E9D5C ; =0x00000638
+ bl FUN_020054C8
+ add sp, #8
+ mov r0, #0x12
+ pop {r3, r4, r5, pc}
+_021E9C62:
+ mov r1, #0x11
+ add r0, r4, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EB708
+ ldr r0, _021E9D5C ; =0x00000638
+ bl FUN_020054C8
+ add sp, #8
+ mov r0, #0x12
+ pop {r3, r4, r5, pc}
+_021E9C80:
+ ldr r0, _021E9D60 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #1
+ tst r0, r1
+ beq _021E9D00
+ add r0, r4, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ add r0, r4, #0
+ add r0, #0x74
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x4c
+ bl FUN_0200A914
+ mov r1, #0
+ add r5, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021E9D54 ; =0x00000488
+ mov r0, #0x46
+ ldrsh r3, [r4, r2]
+ add r2, r2, #4
+ lsl r0, r0, #2
+ ldr r2, [r4, r2]
+ ldr r0, [r4, r0]
+ mul r2, r3
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r4, r0]
+ ldr r1, [r4, r1]
+ add r2, r5, #0
+ bl FUN_0200B7B8
+ add r0, r5, #0
+ bl FUN_02021A20
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9D58 ; =0x00000426
+ strb r0, [r4, r1]
+ ldr r0, _021E9D64 ; =0x000005DC
+ bl FUN_020054C8
+ add sp, #8
+ mov r0, #0x13
+ pop {r3, r4, r5, pc}
+_021E9D00:
+ mov r0, #2
+ tst r0, r1
+ beq _021E9D4C
+ ldr r0, _021E9D68 ; =0x0000048C
+ mov r1, #0
+ str r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021EC298
+ add r0, r4, #0
+ add r0, #0x84
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x74
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ ldr r0, _021E9D64 ; =0x000005DC
+ bl FUN_020054C8
+ add sp, #8
+ mov r0, #0x10
+ pop {r3, r4, r5, pc}
+_021E9D4C:
+ mov r0, #0x12
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_021E9D54: .word 0x00000488
+_021E9D58: .word 0x00000426
+_021E9D5C: .word 0x00000638
+_021E9D60: .word 0x021C48B8
+_021E9D64: .word 0x000005DC
+_021E9D68: .word 0x0000048C
+ thumb_func_end MOD75_021E9B88
+
+ thumb_func_start MOD75_021E9D6C
+MOD75_021E9D6C: ; 0x021E9D6C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9D8C ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9D86
+ add r0, r4, #0
+ bl MOD75_021EB6E0
+ mov r0, #0x14
+ pop {r4, pc}
+_021E9D86:
+ mov r0, #0x13
+ pop {r4, pc}
+ nop
+_021E9D8C: .word 0x00000426
+ thumb_func_end MOD75_021E9D6C
+
+ thumb_func_start MOD75_021E9D90
+MOD75_021E9D90: ; 0x021E9D90
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl MOD75_021EA510
+ cmp r0, #1
+ bne _021E9DA4
+ add sp, #8
+ mov r0, #0x14
+ pop {r3, r4, r5, pc}
+_021E9DA4:
+ add r0, r5, #0
+ bl MOD75_021E87B8
+ cmp r0, #1
+ bne _021E9DC6
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r2, #6
+ bl FUN_020021CC
+ mov r1, #0x49
+ mov r2, #1
+ lsl r1, r1, #4
+ strb r2, [r5, r1]
+ b _021E9DD2
+_021E9DC6:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #6
+ bl FUN_020021AC
+_021E9DD2:
+ cmp r0, #0
+ beq _021E9DE6
+ mov r1, #1
+ mvn r1, r1
+ cmp r0, r1
+ beq _021E9EA2
+ add r1, r1, #1
+ cmp r0, r1
+ beq _021E9E7A
+ b _021E9ED2
+_021E9DE6:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4d
+ bl FUN_0200A914
+ add r4, r0, #0
+ ldr r0, _021E9ED8 ; =0x00000488
+ ldrsh r0, [r5, r0]
+ cmp r0, #1
+ ble _021E9E14
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AEA8
+ b _021E9E2A
+_021E9E14:
+ add r2, r5, #0
+ add r2, #0xc4
+ ldr r2, [r2]
+ mov r0, #0x46
+ add r2, #0x66
+ lsl r0, r0, #2
+ ldrh r2, [r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AE38
+_021E9E2A:
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ mov r0, #0x46
+ ldr r2, _021E9ED8 ; =0x00000488
+ str r1, [sp, #4]
+ ldrsh r3, [r5, r2]
+ add r2, r2, #4
+ lsl r0, r0, #2
+ ldr r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mul r2, r3
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021E9EDC ; =0x00000426
+ add sp, #8
+ strb r0, [r5, r1]
+ mov r0, #0x15
+ pop {r3, r4, r5, pc}
+_021E9E7A:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001E60
+ cmp r0, #1
+ bne _021E9E92
+ add r0, r5, #0
+ mov r1, #0x12
+ bl MOD75_021EA0CC
+ b _021E9ED2
+_021E9E92:
+ cmp r0, #2
+ bne _021E9ED2
+ mov r1, #0x11
+ add r0, r5, #0
+ mvn r1, r1
+ bl MOD75_021EA0CC
+ b _021E9ED2
+_021E9EA2:
+ ldr r0, _021E9EE0 ; =0x0000048C
+ mov r1, #0
+ str r1, [r5, r0]
+ add r0, r5, #0
+ add r0, #0x84
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ add sp, #8
+ mov r0, #0x10
+ pop {r3, r4, r5, pc}
+_021E9ED2:
+ mov r0, #0x14
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021E9ED8: .word 0x00000488
+_021E9EDC: .word 0x00000426
+_021E9EE0: .word 0x0000048C
+ thumb_func_end MOD75_021E9D90
+
+ thumb_func_start MOD75_021E9EE4
+MOD75_021E9EE4: ; 0x021E9EE4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9F64 ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ beq _021E9EF8
+ mov r0, #0x15
+ pop {r4, pc}
+_021E9EF8:
+ ldr r0, _021E9F68 ; =0x00000644
+ bl FUN_020054C8
+ ldr r1, _021E9F6C ; =0x00000488
+ add r0, r4, #0
+ ldrsh r2, [r4, r1]
+ add r1, r1, #4
+ add r0, #0xcc
+ ldr r1, [r4, r1]
+ ldr r0, [r0]
+ mul r1, r2
+ bl FUN_02023A30
+ ldr r0, _021E9F6C ; =0x00000488
+ ldrsh r0, [r4, r0]
+ cmp r0, #1
+ bne _021E9F38
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r1, #0
+ add r0, #0x75
+ ldrb r0, [r0]
+ cmp r0, #0xff
+ beq _021E9F44
+ add r0, r1, #0
+ add r0, #0x75
+ ldrb r0, [r0]
+ add r1, #0x75
+ add r0, r0, #1
+ strb r0, [r1]
+ b _021E9F44
+_021E9F38:
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ mov r1, #2
+ add r0, #0x75
+ strb r1, [r0]
+_021E9F44:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EB808
+ ldr r0, _021E9F70 ; =0x00000479
+ mov r1, #1
+ strb r1, [r4, r0]
+ add r0, r4, #0
+ bl MOD75_021E92BC
+ add r4, #0x64
+ add r0, r4, #0
+ bl FUN_02019220
+ mov r0, #0x16
+ pop {r4, pc}
+ .align 2, 0
+_021E9F64: .word 0x00000426
+_021E9F68: .word 0x00000644
+_021E9F6C: .word 0x00000488
+_021E9F70: .word 0x00000479
+ thumb_func_end MOD75_021E9EE4
+
+ thumb_func_start MOD75_021E9F74
+MOD75_021E9F74: ; 0x021E9F74
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, _021E9FCC ; =0x00000426
+ ldrb r0, [r4, r0]
+ bl FUN_0201BD70
+ cmp r0, #0
+ bne _021E9FC8
+ ldr r0, _021E9FD0 ; =0x021C48B8
+ ldr r1, [r0, #0x48]
+ mov r0, #3
+ tst r0, r1
+ bne _021E9F96
+ ldr r0, _021E9FD4 ; =0x021C48F8
+ ldrh r0, [r0, #0x20]
+ cmp r0, #0
+ beq _021E9FC8
+_021E9F96:
+ ldr r0, _021E9FD8 ; =0x00000479
+ mov r1, #0
+ strb r1, [r4, r0]
+ add r0, #0x13
+ str r1, [r4, r0]
+ add r0, r4, #0
+ add r0, #0x84
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC090
+ mov r0, #0x10
+ pop {r4, pc}
+_021E9FC8:
+ mov r0, #0x16
+ pop {r4, pc}
+ .align 2, 0
+_021E9FCC: .word 0x00000426
+_021E9FD0: .word 0x021C48B8
+_021E9FD4: .word 0x021C48F8
+_021E9FD8: .word 0x00000479
+ thumb_func_end MOD75_021E9F74
+
+ thumb_func_start MOD75_021E9FDC
+MOD75_021E9FDC: ; 0x021E9FDC
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ bl MOD75_021E86C0
+ add r0, r4, #0
+ bl MOD75_021EA2D8
+ cmp r0, #1
+ bne _021E9FF6
+ add sp, #4
+ mov r0, #0x17
+ pop {r3, r4, pc}
+_021E9FF6:
+ add r0, r4, #0
+ bl MOD75_021E7D14
+ cmp r0, #1
+ bne _021EA006
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, pc}
+_021EA006:
+ add r0, r4, #0
+ bl MOD75_021E8304
+ cmp r0, #1
+ bne _021EA016
+ add sp, #4
+ mov r0, #2
+ pop {r3, r4, pc}
+_021EA016:
+ add r0, r4, #0
+ bl MOD75_021E7B7C
+ cmp r0, #1
+ bne _021EA0A8
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r0, r1
+ ldrb r1, [r1, #0xc]
+ cmp r1, #0
+ bne _021EA090
+ add r0, #0x66
+ ldrh r0, [r0]
+ mov r1, #6
+ add r2, r1, #0
+ bl FUN_0206E7B8
+ cmp r0, #0xd
+ beq _021EA090
+ mov r3, #6
+ add r2, r4, #0
+ str r3, [sp]
+ add r2, #0xc4
+ ldr r2, [r2]
+ add r0, r4, #0
+ mov r1, #0xfe
+ add r2, #0x66
+ add r0, #0xcc
+ lsl r1, r1, #2
+ ldrh r2, [r2]
+ ldr r0, [r0]
+ ldr r1, [r4, r1]
+ sub r3, r3, #7
+ bl FUN_0206E51C
+ add r0, r4, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ add r0, r4, #0
+ ldr r2, _021EA0C4 ; =0x000003D9
+ add r0, #0x64
+ mov r1, #0
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r4, #0
+ bl MOD75_021EB660
+ ldr r1, _021EA0C8 ; =0x00000426
+ add sp, #4
+ strb r0, [r4, r1]
+ mov r0, #0xc
+ pop {r3, r4, pc}
+_021EA090:
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #0
+ add r0, #0x68
+ strh r1, [r0]
+ mov r0, #1
+ mov r1, #6
+ bl FUN_02079A70
+ add sp, #4
+ mov r0, #0x18
+ pop {r3, r4, pc}
+_021EA0A8:
+ cmp r0, #3
+ bne _021EA0BC
+ add r4, #0xc4
+ ldr r0, [r4]
+ mov r1, #5
+ add r0, #0x68
+ strh r1, [r0]
+ add sp, #4
+ mov r0, #0x18
+ pop {r3, r4, pc}
+_021EA0BC:
+ mov r0, #0x17
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_021EA0C4: .word 0x000003D9
+_021EA0C8: .word 0x00000426
+ thumb_func_end MOD75_021E9FDC
+
+ thumb_func_start MOD75_021EA0CC
+MOD75_021EA0CC: ; 0x021EA0CC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ add r5, r1, #0
+ mov r1, #7
+ bl FUN_02018878
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add r0, r0, r5
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ mov r0, #0x5a
+ lsl r0, r0, #2
+ cmp r5, r0
+ blt _021EA0F4
+ sub r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+ b _021EA0FE
+_021EA0F4:
+ cmp r5, #0
+ bge _021EA0FE
+ add r0, r5, r0
+ lsl r0, r0, #0x10
+ asr r5, r0, #0x10
+_021EA0FE:
+ lsl r3, r5, #0x10
+ ldr r0, [r4]
+ mov r1, #7
+ mov r2, #0
+ lsr r3, r3, #0x10
+ bl FUN_0201AF08
+ ldr r0, _021EA114 ; =0x0000049A
+ strh r5, [r4, r0]
+ pop {r3, r4, r5, pc}
+ nop
+_021EA114: .word 0x0000049A
+ thumb_func_end MOD75_021EA0CC
+
+ thumb_func_start MOD75_021EA118
+MOD75_021EA118: ; 0x021EA118
+ push {r3, lr}
+ ldr r0, _021EA12C ; =0x021EC404
+ bl FUN_020209F4
+ cmp r0, #1
+ bne _021EA128
+ mov r0, #1
+ pop {r3, pc}
+_021EA128:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021EA12C: .word 0x021EC404
+ thumb_func_end MOD75_021EA118
+
+ thumb_func_start MOD75_021EA130
+MOD75_021EA130: ; 0x021EA130
+ push {r3, lr}
+ ldr r0, _021EA144 ; =0x021EC410
+ bl FUN_020209A8
+ cmp r0, #1
+ bne _021EA140
+ mov r0, #1
+ pop {r3, pc}
+_021EA140:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021EA144: .word 0x021EC410
+ thumb_func_end MOD75_021EA130
+
+ thumb_func_start MOD75_021EA148
+MOD75_021EA148: ; 0x021EA148
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ bl MOD75_021EA118
+ cmp r0, #1
+ bne _021EA176
+ ldr r1, _021EA2BC ; =0x00000492
+ mov r0, #1
+ strb r0, [r5, r1]
+ mov r2, #0
+ add r0, r1, #6
+ strh r2, [r5, r0]
+ add r0, r1, #2
+ str r2, [r5, r0]
+ add r0, r1, #0
+ ldr r2, _021EA2C0 ; =0x021C48F8
+ add r0, #0xc
+ ldrh r3, [r2, #0x1c]
+ add r1, #0xe
+ strh r3, [r5, r0]
+ ldrh r0, [r2, #0x1e]
+ strh r0, [r5, r1]
+_021EA176:
+ ldr r0, _021EA2BC ; =0x00000492
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ beq _021EA180
+ b _021EA2B6
+_021EA180:
+ bl MOD75_021EA130
+ cmp r0, #1
+ beq _021EA18A
+ b _021EA2A8
+_021EA18A:
+ mov r3, #0x50
+ ldr r1, _021EA2C4 ; =0x0000049E
+ str r3, [sp]
+ ldr r4, _021EA2C0 ; =0x021C48F8
+ ldrh r0, [r5, r1]
+ add r1, r1, #2
+ ldrh r1, [r5, r1]
+ ldrh r2, [r4, #0x1c]
+ mov r7, #0x80
+ ldrh r4, [r4, #0x1e]
+ sub r1, r3, r1
+ sub r0, r7, r0
+ sub r2, r7, r2
+ sub r3, r3, r4
+ bl FUN_0201BBD0
+ add r4, r0, #0
+ mov r0, #0x50
+ lsl r1, r4, #1
+ bl FUN_0201BC84
+ lsl r0, r0, #8
+ mov r1, #0xb6
+ bl _s32_div_f
+ ldr r1, _021EA2C8 ; =0x0000049A
+ asr r3, r0, #8
+ ldrsh r2, [r5, r1]
+ add r0, r5, r1
+ add r2, r2, r3
+ strh r2, [r0]
+ ldrsh r1, [r5, r1]
+ cmp r1, #0
+ bge _021EA1DC
+ mov r1, #0
+ ldrsh r2, [r0, r1]
+ add r1, r7, #0
+ add r1, #0xe8
+ add r1, r2, r1
+ strh r1, [r0]
+ b _021EA1EC
+_021EA1DC:
+ add r2, r7, #0
+ add r2, #0xe8
+ cmp r1, r2
+ blt _021EA1EC
+ mov r1, #0
+ ldrsh r1, [r0, r1]
+ sub r1, r1, r2
+ strh r1, [r0]
+_021EA1EC:
+ ldr r3, _021EA2C8 ; =0x0000049A
+ ldr r0, [r5]
+ ldrh r3, [r5, r3]
+ mov r1, #7
+ mov r2, #0
+ bl FUN_0201AF08
+ ldr r0, _021EA2CC ; =0x000001F6
+ add r1, r6, #0
+ bl _s32_div_f
+ add r6, r0, #0
+ cmp r4, #0
+ ble _021EA250
+ ldr r0, _021EA2D0 ; =0x00000498
+ ldrsh r1, [r5, r0]
+ cmp r1, #0
+ bge _021EA22A
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, _021EA2D0 ; =0x00000498
+ strh r0, [r5, r1]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r0, _021EA2D4 ; =0x00000494
+ str r1, [r5, r0]
+ b _021EA298
+_021EA22A:
+ sub r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ add r0, r0, r4
+ bl _s32_div_f
+ ldr r1, _021EA2D0 ; =0x00000498
+ ldrsh r2, [r5, r1]
+ add r0, r2, r0
+ strh r0, [r5, r1]
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ add r0, r0, r4
+ bl _s32_div_f
+ ldr r0, _021EA2D4 ; =0x00000494
+ str r1, [r5, r0]
+ b _021EA298
+_021EA250:
+ bge _021EA298
+ ldr r0, _021EA2D0 ; =0x00000498
+ ldrsh r1, [r5, r0]
+ cmp r1, #0
+ ble _021EA274
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r1, _021EA2D0 ; =0x00000498
+ strh r0, [r5, r1]
+ add r0, r4, #0
+ add r1, r6, #0
+ bl _s32_div_f
+ ldr r0, _021EA2D4 ; =0x00000494
+ str r1, [r5, r0]
+ b _021EA298
+_021EA274:
+ sub r0, r0, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ add r0, r0, r4
+ bl _s32_div_f
+ ldr r1, _021EA2D0 ; =0x00000498
+ ldrsh r2, [r5, r1]
+ add r0, r2, r0
+ strh r0, [r5, r1]
+ sub r0, r1, #4
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ add r0, r0, r4
+ bl _s32_div_f
+ ldr r0, _021EA2D4 ; =0x00000494
+ str r1, [r5, r0]
+_021EA298:
+ ldr r1, _021EA2C0 ; =0x021C48F8
+ ldr r0, _021EA2C4 ; =0x0000049E
+ ldrh r2, [r1, #0x1c]
+ strh r2, [r5, r0]
+ ldrh r1, [r1, #0x1e]
+ add r0, r0, #2
+ strh r1, [r5, r0]
+ b _021EA2B2
+_021EA2A8:
+ ldr r0, _021EA2BC ; =0x00000492
+ mov r1, #0
+ strb r1, [r5, r0]
+ add r0, r0, #6
+ strh r1, [r5, r0]
+_021EA2B2:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021EA2B6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021EA2BC: .word 0x00000492
+_021EA2C0: .word 0x021C48F8
+_021EA2C4: .word 0x0000049E
+_021EA2C8: .word 0x0000049A
+_021EA2CC: .word 0x000001F6
+_021EA2D0: .word 0x00000498
+_021EA2D4: .word 0x00000494
+ thumb_func_end MOD75_021EA148
+
+ thumb_func_start MOD75_021EA2D8
+MOD75_021EA2D8: ; 0x021EA2D8
+ push {r4, lr}
+ mov r1, #0x24
+ add r4, r0, #0
+ bl MOD75_021EA148
+ ldr r1, _021EA324 ; =0x00000498
+ ldrsh r1, [r4, r1]
+ cmp r1, #0
+ ble _021EA306
+ add r0, r4, #0
+ mov r1, #0x40
+ bl MOD75_021EA328
+ cmp r0, #1
+ ldr r0, _021EA324 ; =0x00000498
+ bne _021EA2FE
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ b _021EA300
+_021EA2FE:
+ mov r1, #0
+_021EA300:
+ strh r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_021EA306:
+ bge _021EA322
+ add r0, r4, #0
+ mov r1, #0x80
+ bl MOD75_021EA328
+ cmp r0, #1
+ ldr r0, _021EA324 ; =0x00000498
+ bne _021EA31C
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ b _021EA31E
+_021EA31C:
+ mov r1, #0
+_021EA31E:
+ strh r1, [r4, r0]
+ mov r0, #1
+_021EA322:
+ pop {r4, pc}
+ .align 2, 0
+_021EA324: .word 0x00000498
+ thumb_func_end MOD75_021EA2D8
+
+ thumb_func_start MOD75_021EA328
+MOD75_021EA328: ; 0x021EA328
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ mov r5, #0xc
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r2, r0, #0
+ mul r2, r5
+ add r0, r3, r2
+ ldrh r0, [r0, #0xa]
+ add r3, sp, #0x10
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #0
+ add r2, #0x64
+ ldrb r2, [r2]
+ mul r5, r2
+ add r0, r0, r5
+ ldrh r0, [r0, #8]
+ strh r0, [r3]
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x10
+ str r1, [sp, #4]
+ add r0, #2
+ str r0, [sp, #8]
+ add r0, sp, #0x10
+ str r0, [sp, #0xc]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001354
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ add r5, r2, #0
+ mul r5, r1
+ add r1, sp, #0x10
+ add r2, r0, r5
+ ldrh r3, [r1, #2]
+ ldrh r0, [r2, #0xa]
+ cmp r3, r0
+ bne _021EA3A6
+ ldrh r1, [r1]
+ ldrh r0, [r2, #8]
+ cmp r1, r0
+ bne _021EA3A6
+ add sp, #0x14
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021EA3A6:
+ add r2, sp, #0x10
+ ldrh r2, [r2]
+ add r0, r4, #0
+ add r0, #0xf0
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r6, [r0]
+ add r2, sp, #0x10
+ add r0, r6, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ ldrh r5, [r2, #2]
+ mov r1, #0xc
+ add r3, r0, #0
+ mul r3, r1
+ add r0, r6, r3
+ strh r5, [r0, #0xa]
+ add r4, #0xc4
+ ldr r3, [r4]
+ ldrh r2, [r2]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ mul r1, r0
+ add r0, r3, r1
+ strh r2, [r0, #8]
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EA328
+
+ thumb_func_start MOD75_021EA3F4
+MOD75_021EA3F4: ; 0x021EA3F4
+ push {r4, lr}
+ mov r1, #0x24
+ add r4, r0, #0
+ bl MOD75_021EA148
+ ldr r1, _021EA440 ; =0x00000498
+ ldrsh r1, [r4, r1]
+ cmp r1, #0
+ ble _021EA422
+ add r0, r4, #0
+ mov r1, #0x40
+ bl MOD75_021EA444
+ cmp r0, #1
+ ldr r0, _021EA440 ; =0x00000498
+ bne _021EA41A
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ b _021EA41C
+_021EA41A:
+ mov r1, #0
+_021EA41C:
+ strh r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_021EA422:
+ bge _021EA43E
+ add r0, r4, #0
+ mov r1, #0x80
+ bl MOD75_021EA444
+ cmp r0, #1
+ ldr r0, _021EA440 ; =0x00000498
+ bne _021EA438
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ b _021EA43A
+_021EA438:
+ mov r1, #0
+_021EA43A:
+ strh r1, [r4, r0]
+ mov r0, #1
+_021EA43E:
+ pop {r4, pc}
+ .align 2, 0
+_021EA440: .word 0x00000498
+ thumb_func_end MOD75_021EA3F4
+
+ thumb_func_start MOD75_021EA444
+MOD75_021EA444: ; 0x021EA444
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ add r0, #0xc4
+ ldr r3, [r0]
+ mov r5, #0xc
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r2, r0, #0
+ mul r2, r5
+ add r0, r3, r2
+ ldrh r0, [r0, #0xa]
+ add r3, sp, #0x10
+ strh r0, [r3, #2]
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #0
+ add r2, #0x64
+ ldrb r2, [r2]
+ mul r5, r2
+ add r0, r0, r5
+ ldrh r0, [r0, #8]
+ strh r0, [r3]
+ mov r0, #1
+ str r0, [sp]
+ add r0, sp, #0x10
+ str r1, [sp, #4]
+ add r0, #2
+ str r0, [sp, #8]
+ add r0, sp, #0x10
+ str r0, [sp, #0xc]
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldrh r2, [r3, #2]
+ ldrh r3, [r3]
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_02001354
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ add r5, r2, #0
+ mul r5, r1
+ add r1, sp, #0x10
+ add r2, r0, r5
+ ldrh r3, [r1, #2]
+ ldrh r0, [r2, #0xa]
+ cmp r3, r0
+ bne _021EA4C2
+ ldrh r1, [r1]
+ ldrh r0, [r2, #8]
+ cmp r1, r0
+ bne _021EA4C2
+ add sp, #0x14
+ mov r0, #0
+ pop {r3, r4, r5, r6, pc}
+_021EA4C2:
+ add r2, sp, #0x10
+ ldrh r2, [r2]
+ add r0, r4, #0
+ add r0, #0xf4
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x10
+ lsl r2, r2, #0x10
+ ldr r0, [r0]
+ mov r1, #0xb1
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ add r0, r4, #0
+ add r0, #0xc4
+ ldr r6, [r0]
+ add r2, sp, #0x10
+ add r0, r6, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ ldrh r5, [r2, #2]
+ mov r1, #0xc
+ add r3, r0, #0
+ mul r3, r1
+ add r0, r6, r3
+ strh r5, [r0, #0xa]
+ add r4, #0xc4
+ ldr r3, [r4]
+ ldrh r2, [r2]
+ add r0, r3, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ mul r1, r0
+ add r0, r3, r1
+ strh r2, [r0, #8]
+ mov r0, #1
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EA444
+
+ thumb_func_start MOD75_021EA510
+MOD75_021EA510: ; 0x021EA510
+ push {r4, lr}
+ mov r1, #0x12
+ add r4, r0, #0
+ bl MOD75_021EA148
+ ldr r1, _021EA55C ; =0x00000498
+ ldrsh r1, [r4, r1]
+ cmp r1, #0
+ ble _021EA53E
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD75_021EA560
+ cmp r0, #1
+ ldr r0, _021EA55C ; =0x00000498
+ bne _021EA536
+ ldrsh r1, [r4, r0]
+ sub r1, r1, #1
+ b _021EA538
+_021EA536:
+ mov r1, #0
+_021EA538:
+ strh r1, [r4, r0]
+ mov r0, #1
+ pop {r4, pc}
+_021EA53E:
+ bge _021EA55A
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD75_021EA560
+ cmp r0, #1
+ ldr r0, _021EA55C ; =0x00000498
+ bne _021EA554
+ ldrsh r1, [r4, r0]
+ add r1, r1, #1
+ b _021EA556
+_021EA554:
+ mov r1, #0
+_021EA556:
+ strh r1, [r4, r0]
+ mov r0, #1
+_021EA55A:
+ pop {r4, pc}
+ .align 2, 0
+_021EA55C: .word 0x00000498
+ thumb_func_end MOD75_021EA510
+
+ thumb_func_start MOD75_021EA560
+MOD75_021EA560: ; 0x021EA560
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r6, r1, #0
+ bl FUN_02001E5C
+ add r4, r0, #0
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r6, #0
+ bl FUN_02001DDC
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02001E5C
+ cmp r4, r0
+ beq _021EA590
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_021EA590:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EA560
+
+ thumb_func_start MOD75_021EA594
+MOD75_021EA594: ; 0x021EA594
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r1, #0
+ mov r1, #0x12
+ add r5, r0, #0
+ add r6, r2, #0
+ bl MOD75_021EA148
+ ldr r7, _021EA5FC ; =0x00000498
+ mov r1, #0
+ ldrsh r2, [r5, r7]
+ ldrsh r3, [r4, r1]
+ cmp r2, #0
+ ble _021EA5D4
+ sub r0, r2, #1
+ strh r0, [r5, r7]
+ ldrsh r0, [r4, r1]
+ add r0, r0, #1
+ strh r0, [r4]
+ ldrsh r0, [r4, r1]
+ cmp r0, r6
+ ble _021EA5C2
+ mov r0, #1
+ strh r0, [r4]
+_021EA5C2:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ cmp r1, r3
+ beq _021EA5F8
+ ldr r0, _021EA600 ; =0x00000638
+ bl FUN_020054C8
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_021EA5D4:
+ bge _021EA5F8
+ add r0, r2, #1
+ strh r0, [r5, r7]
+ ldrsh r0, [r4, r1]
+ sub r0, r0, #1
+ strh r0, [r4]
+ ldrsh r0, [r4, r1]
+ cmp r0, #0
+ bgt _021EA5E8
+ strh r6, [r4]
+_021EA5E8:
+ mov r0, #0
+ ldrsh r1, [r4, r0]
+ cmp r1, r3
+ beq _021EA5F8
+ ldr r0, _021EA600 ; =0x00000638
+ bl FUN_020054C8
+ mov r0, #1
+_021EA5F8:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021EA5FC: .word 0x00000498
+_021EA600: .word 0x00000638
+ thumb_func_end MOD75_021EA594
+
+ thumb_func_start MOD75_021EA604
+MOD75_021EA604: ; 0x021EA604
+ push {r3, r4, lr}
+ sub sp, #0x14
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0x11
+ str r0, [sp, #4]
+ mov r0, #0x12
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #1
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, r4, #4
+ mov r2, #2
+ mov r3, #0xe
+ bl FUN_02019064
+ mov r0, #0x12
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #6
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA780 ; =0x00000133
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r2, #0
+ ldr r0, [r4]
+ add r1, #0x14
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0x24
+ str r0, [sp, #4]
+ mov r0, #3
+ str r0, [sp, #8]
+ str r0, [sp, #0xc]
+ ldr r0, _021EA784 ; =0x000001F3
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x24
+ mov r2, #2
+ mov r3, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xe
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r0, _021EA788 ; =0x0000025F
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x34
+ mov r2, #0
+ mov r3, #6
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0xd
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r0, _021EA788 ; =0x0000025F
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x44
+ mov r2, #0
+ mov r3, #6
+ bl FUN_02019064
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0xd
+ str r0, [sp, #0xc]
+ ldr r0, _021EA78C ; =0x00000297
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ mov r2, #0
+ ldr r0, [r4]
+ add r1, #0x54
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x1b
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #0xb
+ str r0, [sp, #0xc]
+ ldr r0, _021EA790 ; =0x000002AF
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x64
+ mov r2, #0
+ mov r3, #2
+ bl FUN_02019064
+ mov r0, #0xd
+ str r0, [sp]
+ mov r0, #0xc
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA794 ; =0x00000337
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x74
+ mov r2, #0
+ mov r3, #0x13
+ bl FUN_02019064
+ mov r3, #1
+ add r1, r4, #0
+ str r3, [sp]
+ mov r0, #0xa
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA798 ; =0x00000367
+ add r1, #0x84
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ mov r2, #0
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #7
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA79C ; =0x00000387
+ add r1, r4, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r1, #0x94
+ mov r2, #0
+ mov r3, #0x18
+ bl FUN_02019064
+ mov r0, #0xc
+ str r0, [sp]
+ mov r0, #0xb
+ str r0, [sp, #4]
+ mov r0, #4
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EA79C ; =0x00000387
+ mov r2, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r4]
+ add r4, #0xa4
+ add r1, r4, #0
+ mov r3, #1
+ bl FUN_02019064
+ add sp, #0x14
+ pop {r3, r4, pc}
+ nop
+_021EA780: .word 0x00000133
+_021EA784: .word 0x000001F3
+_021EA788: .word 0x0000025F
+_021EA78C: .word 0x00000297
+_021EA790: .word 0x000002AF
+_021EA794: .word 0x00000337
+_021EA798: .word 0x00000367
+_021EA79C: .word 0x00000387
+ thumb_func_end MOD75_021EA604
+
+ thumb_func_start MOD75_021EA7A0
+MOD75_021EA7A0: ; 0x021EA7A0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021EA7A6:
+ lsl r0, r4, #4
+ add r0, r5, r0
+ bl FUN_02019178
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xb
+ blo _021EA7A6
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EA7A0
+
+ thumb_func_start MOD75_021EA7BC
+MOD75_021EA7BC: ; 0x021EA7BC
+ push {r3, r4, r5, r6, r7, lr}
+ mov r2, #0x57
+ add r5, r0, #0
+ mov r0, #1
+ mov r1, #0x1a
+ lsl r2, r2, #2
+ mov r3, #6
+ bl FUN_0200A86C
+ ldr r7, _021EA7F4 ; =0x00000404
+ add r6, r0, #0
+ mov r4, #0
+_021EA7D4:
+ add r0, r6, #0
+ add r1, r4, #0
+ bl FUN_0200A914
+ lsl r1, r4, #2
+ add r1, r5, r1
+ str r0, [r1, r7]
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #8
+ blo _021EA7D4
+ add r0, r6, #0
+ bl FUN_0200A8B8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EA7F4: .word 0x00000404
+ thumb_func_end MOD75_021EA7BC
+
+ thumb_func_start MOD75_021EA7F8
+MOD75_021EA7F8: ; 0x021EA7F8
+ push {r4, r5, r6, lr}
+ ldr r6, _021EA818 ; =0x00000404
+ add r5, r0, #0
+ mov r4, #0
+_021EA800:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02021A20
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #8
+ blo _021EA800
+ pop {r4, r5, r6, pc}
+ nop
+_021EA818: .word 0x00000404
+ thumb_func_end MOD75_021EA7F8
+
+ thumb_func_start MOD75_021EA81C
+MOD75_021EA81C: ; 0x021EA81C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r4, #0
+ mov r6, #0xd
+ mov r7, #1
+_021EA828:
+ str r6, [sp]
+ ldr r2, _021EA878 ; =0x000001FF
+ str r7, [sp, #4]
+ add r2, r4, r2
+ lsl r2, r2, #0x10
+ lsl r3, r4, #0x18
+ str r7, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, [r5]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ mov r0, #0xe
+ str r0, [sp]
+ mov r0, #1
+ ldr r2, _021EA87C ; =0x00000223
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #3
+ add r2, r4, r2
+ str r0, [sp, #0xc]
+ lsl r2, r2, #0x10
+ lsl r3, r4, #0x18
+ ldr r0, [r5]
+ mov r1, #2
+ lsr r2, r2, #0x10
+ lsr r3, r3, #0x18
+ bl FUN_02018540
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xc
+ blo _021EA828
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021EA878: .word 0x000001FF
+_021EA87C: .word 0x00000223
+ thumb_func_end MOD75_021EA81C
+
+ thumb_func_start MOD75_021EA880
+MOD75_021EA880: ; 0x021EA880
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0
+ add r4, r2, #0
+ add r2, r0, #0
+ add r6, r1, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EA8B8 ; =0x00010200
+ lsr r3, r3, #1
+ add r5, #0x24
+ str r0, [sp, #8]
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r6, #0
+ sub r3, r4, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021EA8B8: .word 0x00010200
+ thumb_func_end MOD75_021EA880
+
+ thumb_func_start MOD75_021EA8BC
+MOD75_021EA8BC: ; 0x021EA8BC
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r0, #0x24
+ mov r1, #0
+ bl FUN_02019620
+ add r2, r4, #0
+ add r2, #0xc4
+ ldr r6, [r2]
+ ldr r1, _021EA94C ; =0x00000429
+ add r2, r6, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ add r0, r4, r1
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r6, r5
+ ldrb r3, [r3, #0xc]
+ lsl r3, r3, #2
+ add r5, r4, r3
+ add r3, r1, #0
+ sub r3, #0x25
+ ldr r7, [r5, r3]
+ ldrb r3, [r0]
+ sub r1, #0x25
+ add r5, r3, #0
+ mul r5, r2
+ add r3, r6, r5
+ ldrb r3, [r3, #0xc]
+ lsl r3, r3, #2
+ add r3, r4, r3
+ ldr r1, [r3, r1]
+ ldrb r3, [r0, #1]
+ ldrb r0, [r0, #3]
+ cmp r3, #0
+ bne _021EA91E
+ mul r2, r0
+ add r2, #0x92
+ lsl r0, r2, #0x10
+ lsr r5, r0, #0x10
+ add r2, r5, #0
+ sub r2, #0x60
+ lsl r2, r2, #0x10
+ add r0, r4, #0
+ lsr r2, r2, #0x10
+ bl MOD75_021EA880
+ b _021EA936
+_021EA91E:
+ mul r2, r0
+ mov r0, #0x92
+ sub r0, r0, r2
+ lsl r0, r0, #0x10
+ lsr r5, r0, #0x10
+ add r2, r5, #0
+ add r2, #0x60
+ lsl r2, r2, #0x10
+ add r0, r4, #0
+ lsr r2, r2, #0x10
+ bl MOD75_021EA880
+_021EA936:
+ add r0, r4, #0
+ add r1, r7, #0
+ add r2, r5, #0
+ bl MOD75_021EA880
+ add r4, #0x24
+ add r0, r4, #0
+ bl FUN_02019548
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_021EA94C: .word 0x00000429
+ thumb_func_end MOD75_021EA8BC
+
+ thumb_func_start MOD75_021EA950
+MOD75_021EA950: ; 0x021EA950
+ push {r3, r4, r5, lr}
+ add r0, #0xd4
+ ldr r0, [r0]
+ add r5, r1, #0
+ mov r1, #0x11
+ mov r2, #6
+ bl FUN_02006704
+ add r1, r5, #0
+ add r4, r0, #0
+ bl FUN_020B0030
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021EA950
+
+ thumb_func_start MOD75_021EA96C
+MOD75_021EA96C: ; 0x021EA96C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r1, sp, #0x18
+ add r5, r0, #0
+ add r6, r2, #0
+ bl MOD75_021EA950
+ add r7, r0, #0
+ cmp r6, #1
+ bne _021EA998
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ mov r0, #0xc
+ mul r0, r4
+ add r0, r1, r0
+ ldrb r0, [r0, #0xc]
+ lsl r0, r0, #5
+ add r0, #0x10
+ lsl r0, r0, #0x18
+ b _021EA9A8
+_021EA998:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ mov r0, #0xc
+ mul r0, r4
+ add r0, r1, r0
+ ldrb r0, [r0, #0xc]
+ lsl r0, r0, #0x1d
+_021EA9A8:
+ lsr r2, r0, #0x18
+ mov r0, #1
+ lsl r0, r0, #8
+ str r0, [sp]
+ mov r0, #0x10
+ ldr r1, _021EA9F4 ; =0x00000427
+ str r0, [sp, #4]
+ ldrb r0, [r5, r1]
+ add r1, r1, #1
+ ldrb r1, [r5, r1]
+ add r3, r1, #0
+ mul r3, r4
+ add r0, r0, r3
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #0
+ ldr r1, [r1, #0x14]
+ add r0, #0x54
+ mov r3, #0
+ bl FUN_02019658
+ add r5, #0x54
+ add r0, r5, #0
+ bl FUN_02019220
+ mov r0, #6
+ add r1, r7, #0
+ bl FUN_02016A8C
+ add sp, #0x1c
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EA9F4: .word 0x00000427
+ thumb_func_end MOD75_021EA96C
+
+ thumb_func_start MOD75_021EA9F8
+MOD75_021EA9F8: ; 0x021EA9F8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ add r5, r0, #0
+ add r1, sp, #0x1c
+ bl MOD75_021EA950
+ str r0, [sp, #0x18]
+ add r0, r5, #0
+ add r0, #0x54
+ mov r1, #0
+ bl FUN_02019620
+ ldr r0, _021EAAA0 ; =0x00000424
+ mov r4, #0
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bls _021EAA8C
+ mov r7, #1
+ add r6, r5, #0
+ lsl r7, r7, #8
+ add r6, #0x54
+_021EAA22:
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ cmp r4, r1
+ bne _021EAA42
+ mov r1, #0xc
+ mul r1, r4
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ lsl r0, r0, #5
+ add r0, #0x10
+ lsl r0, r0, #0x18
+ b _021EAA4C
+_021EAA42:
+ mov r1, #0xc
+ mul r1, r4
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ lsl r0, r0, #0x1d
+_021EAA4C:
+ lsr r2, r0, #0x18
+ str r7, [sp]
+ mov r0, #0x10
+ str r0, [sp, #4]
+ ldr r0, _021EAAA4 ; =0x00000427
+ ldrb r3, [r5, r0]
+ add r0, r0, #1
+ ldrb r0, [r5, r0]
+ add r1, r0, #0
+ mul r1, r4
+ add r0, r3, r1
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ mov r0, #0xa
+ str r0, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x1c]
+ add r0, r6, #0
+ ldr r1, [r1, #0x14]
+ mov r3, #0
+ bl FUN_02019658
+ add r0, r4, #1
+ lsl r0, r0, #0x18
+ lsr r4, r0, #0x18
+ ldr r0, _021EAAA0 ; =0x00000424
+ ldrb r0, [r5, r0]
+ cmp r4, r0
+ blo _021EAA22
+_021EAA8C:
+ add r5, #0x54
+ add r0, r5, #0
+ bl FUN_02019220
+ ldr r1, [sp, #0x18]
+ mov r0, #6
+ bl FUN_02016A8C
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EAAA0: .word 0x00000424
+_021EAAA4: .word 0x00000427
+ thumb_func_end MOD75_021EA9F8
+
+ thumb_func_start MOD75_021EAAA8
+MOD75_021EAAA8: ; 0x021EAAA8
+ push {r3, r4, r5, lr}
+ lsl r1, r1, #0x10
+ add r4, r2, #0
+ lsr r1, r1, #0x10
+ mov r2, #0
+ add r5, r0, #0
+ bl MOD75_021E7420
+ add r2, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200AE38
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021EAAA8
+
+ thumb_func_start MOD75_021EAAC8
+MOD75_021EAAC8: ; 0x021EAAC8
+ push {r3, r4, r5, lr}
+ lsl r1, r1, #0x10
+ add r4, r2, #0
+ lsr r1, r1, #0x10
+ mov r2, #0
+ add r5, r0, #0
+ bl MOD75_021E7420
+ add r2, r0, #0
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200AEA8
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021EAAC8
+
+ thumb_func_start MOD75_021EAAE8
+MOD75_021EAAE8: ; 0x021EAAE8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _021EAB3C ; =0x0000FFFF
+ add r6, r1, #0
+ cmp r6, r0
+ beq _021EAB0A
+ mov r0, #0x82
+ mov r1, #6
+ bl FUN_020219F4
+ add r1, r6, #0
+ mov r2, #6
+ add r4, r0, #0
+ bl FUN_0206E790
+ b _021EAB18
+_021EAB0A:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x5e
+ bl FUN_0200A914
+ add r4, r0, #0
+_021EAB18:
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAB40 ; =0x000F0E00
+ add r5, #0x14
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r2, r4, #0
+ mov r3, #0x28
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021EAB3C: .word 0x0000FFFF
+_021EAB40: .word 0x000F0E00
+ thumb_func_end MOD75_021EAAE8
+
+ thumb_func_start MOD75_021EAB44
+MOD75_021EAB44: ; 0x021EAB44
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ add r4, r5, #0
+ add r0, r1, #0
+ add r4, #0x14
+ bl FUN_0206EA30
+ str r0, [sp, #0x10]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x62
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x56
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x59
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ mov r3, #0x60
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x57
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r6, #0
+ mov r3, #0x60
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x58
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r1, #0
+ str r0, [sp, #8]
+ add r0, r4, #0
+ add r2, r6, #0
+ mov r3, #0x60
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x10]
+ mov r1, #0
+ bl FUN_0206AB30
+ add r7, r0, #0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x5a
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ add r2, r7, #0
+ mov r3, #2
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r2, #0xfe
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ mov r3, #0x30
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ mov r1, #2
+ bl FUN_0206AB18
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ cmp r7, #1
+ bhi _021EACBA
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl FUN_0200A914
+ b _021EACC6
+_021EACBA:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x5b
+ bl FUN_0200A914
+_021EACC6:
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r2, r7, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r2, #0xfe
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ mov r1, #4
+ bl FUN_0206AB18
+ lsl r0, r0, #0x10
+ lsr r7, r0, #0x10
+ bne _021EAD30
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x18
+ bl FUN_0200A914
+ b _021EAD3C
+_021EAD30:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x5b
+ bl FUN_0200A914
+_021EAD3C:
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r2, r7, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x20
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EAD90 ; =0x000F0E00
+ mov r2, #0xfe
+ str r0, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_021EAD90: .word 0x000F0E00
+ thumb_func_end MOD75_021EAB44
+
+ thumb_func_start MOD75_021EAD94
+MOD75_021EAD94: ; 0x021EAD94
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x26
+ bl FUN_0200A914
+ mov r1, #0xff
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0x25
+ bl FUN_0200A914
+ mov r1, #1
+ lsl r1, r1, #0xa
+ str r0, [r4, r1]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EAD94
+
+ thumb_func_start MOD75_021EADC0
+MOD75_021EADC0: ; 0x021EADC0
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0xff
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ mov r0, #1
+ lsl r0, r0, #0xa
+ ldr r0, [r4, r0]
+ bl FUN_02021A20
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EADC0
+
+ thumb_func_start MOD75_021EADDC
+MOD75_021EADDC: ; 0x021EADDC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ str r1, [sp, #0x10]
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r4, r2, #0
+ add r1, r0, #0
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ add r6, r3, #0
+ mul r1, r2
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ cmp r0, #3
+ str r4, [sp]
+ bne _021EAE18
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r6, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r5, #4
+ mov r3, #0x73
+ bl FUN_0201BDE0
+ b _021EAE2E
+_021EAE18:
+ mov r2, #0xff
+ str r2, [sp, #4]
+ str r6, [sp, #8]
+ mov r1, #0
+ str r1, [sp, #0xc]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r5, #4
+ mov r3, #0x6d
+ bl FUN_0201BDE0
+_021EAE2E:
+ mov r0, #0xa
+ mov r1, #6
+ bl FUN_020219F4
+ mov r1, #0
+ add r7, r0, #0
+ str r1, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x10]
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r2, #1
+ lsl r0, r0, #2
+ lsl r2, r2, #0xa
+ ldr r0, [r5, r0]
+ ldr r2, [r5, r2]
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ mov r0, #0
+ add r1, r7, #0
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r4, #0x86
+ str r6, [sp, #8]
+ mov r1, #0
+ add r0, r5, #4
+ add r2, r7, #0
+ sub r3, r4, r3
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r7, #0
+ bl FUN_02021A20
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EADDC
+
+ thumb_func_start MOD75_021EAE90
+MOD75_021EAE90: ; 0x021EAE90
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ add r4, r2, #0
+ add r5, r0, #0
+ mov r0, #0x69
+ ldrh r2, [r6]
+ lsl r0, r0, #2
+ cmp r2, r0
+ bhs _021EAEDA
+ add r1, r0, #0
+ sub r1, #0x5d
+ sub r1, r2, r1
+ lsl r1, r1, #0x10
+ lsr r2, r1, #0x10
+ mov r1, #2
+ str r1, [sp]
+ add r3, r5, #4
+ str r3, [sp, #4]
+ mov r3, #0
+ str r3, [sp, #8]
+ add r3, r4, #5
+ str r3, [sp, #0xc]
+ sub r0, #0x94
+ ldr r0, [r5, r0]
+ add r3, r1, #0
+ bl FUN_0200BA78
+ lsl r2, r4, #0x10
+ ldrh r1, [r6, #2]
+ ldr r3, _021EAF08 ; =0x00010200
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl MOD75_021EADDC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_021EAEDA:
+ sub r1, r0, #1
+ sub r1, r2, r1
+ add r2, r5, #4
+ str r2, [sp]
+ mov r2, #0x10
+ str r2, [sp, #4]
+ add r2, r4, #5
+ str r2, [sp, #8]
+ sub r0, #0x94
+ lsl r1, r1, #0x10
+ ldr r0, [r5, r0]
+ lsr r1, r1, #0x10
+ mov r2, #2
+ mov r3, #1
+ bl FUN_0200B9EC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD75_021EAF70
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021EAF08: .word 0x00010200
+ thumb_func_end MOD75_021EAE90
+
+ thumb_func_start MOD75_021EAF0C
+MOD75_021EAF0C: ; 0x021EAF0C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrh r0, [r4]
+ add r6, r2, #0
+ bl FUN_0206EB0C
+ mov r1, #2
+ add r2, r0, #0
+ str r1, [sp]
+ add r0, r5, #4
+ str r0, [sp, #4]
+ mov r0, #0
+ str r0, [sp, #8]
+ add r0, r6, #5
+ str r0, [sp, #0xc]
+ mov r0, #0x11
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ add r2, r2, #1
+ add r3, r1, #0
+ bl FUN_0200BA78
+ lsl r2, r6, #0x10
+ ldrh r1, [r4, #2]
+ ldr r3, _021EAF50 ; =0x00010200
+ add r0, r5, #0
+ lsr r2, r2, #0x10
+ bl MOD75_021EADDC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021EAF50: .word 0x00010200
+ thumb_func_end MOD75_021EAF0C
+
+ thumb_func_start MOD75_021EAF54
+MOD75_021EAF54: ; 0x021EAF54
+ push {r3, r4, r5, lr}
+ add r0, #0xd4
+ ldr r0, [r0]
+ add r5, r1, #0
+ mov r1, #0x26
+ mov r2, #6
+ bl FUN_02006704
+ add r1, r5, #0
+ add r4, r0, #0
+ bl FUN_020B0030
+ add r0, r4, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD75_021EAF54
+
+ thumb_func_start MOD75_021EAF70
+MOD75_021EAF70: ; 0x021EAF70
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r1, sp, #0x18
+ add r5, r0, #0
+ bl MOD75_021EAF54
+ add r6, r0, #0
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0x10
+ lsl r1, r4, #0x10
+ str r0, [sp, #4]
+ mov r3, #0
+ str r3, [sp, #8]
+ lsr r1, r1, #0x10
+ str r1, [sp, #0xc]
+ mov r1, #0x18
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #4
+ ldr r1, [r1, #0x14]
+ mov r2, #0x28
+ bl FUN_02019658
+ mov r0, #6
+ add r1, r6, #0
+ bl FUN_02016A8C
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ thumb_func_end MOD75_021EAF70
+
+ thumb_func_start MOD75_021EAFB0
+MOD75_021EAFB0: ; 0x021EAFB0
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ add r4, r1, #0
+ ldr r0, [r5, r0]
+ mov r1, #0x29
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x88
+ str r0, [sp]
+ mov r0, #0x10
+ mov r1, #0
+ lsl r3, r4, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #4
+ add r2, r1, #0
+ lsr r3, r3, #0x10
+ bl FUN_020196F4
+ mov r1, #0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EB000 ; =0x00010200
+ add r2, r6, #0
+ str r0, [sp, #8]
+ add r0, r5, #4
+ add r3, r1, #0
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_021EB000: .word 0x00010200
+ thumb_func_end MOD75_021EAFB0
+
+ thumb_func_start MOD75_021EB004
+MOD75_021EB004: ; 0x021EB004
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x1c
+ add r4, r1, #0
+ add r1, sp, #0x18
+ add r5, r0, #0
+ bl MOD75_021EAF54
+ add r6, r0, #0
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0x10
+ mov r2, #0
+ str r0, [sp, #4]
+ mov r1, #0x60
+ str r1, [sp, #8]
+ lsl r1, r4, #0x10
+ lsr r1, r1, #0x10
+ str r1, [sp, #0xc]
+ mov r1, #0x28
+ str r1, [sp, #0x10]
+ str r0, [sp, #0x14]
+ ldr r1, [sp, #0x18]
+ add r0, r5, #4
+ ldr r1, [r1, #0x14]
+ add r3, r2, #0
+ bl FUN_02019658
+ mov r0, #6
+ add r1, r6, #0
+ bl FUN_02016A8C
+ add sp, #0x1c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EB004
+
+ thumb_func_start MOD75_021EB048
+MOD75_021EB048: ; 0x021EB048
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0
+ bl FUN_0200A914
+ mov r1, #0x49
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x10
+ ldr r0, [r4, r1]
+ mov r1, #6
+ bl FUN_0200A914
+ mov r1, #0x4a
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x14
+ ldr r0, [r4, r1]
+ mov r1, #0x10
+ bl FUN_0200A914
+ mov r1, #0x4b
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x18
+ ldr r0, [r4, r1]
+ mov r1, #0x5f
+ bl FUN_0200A914
+ mov r1, #0x13
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ sub r1, #0x1c
+ ldr r0, [r4, r1]
+ mov r1, #0x60
+ bl FUN_0200A914
+ mov r1, #0x4d
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x20
+ ldr r0, [r4, r1]
+ mov r1, #1
+ bl FUN_0200A914
+ mov r1, #0x4e
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x24
+ ldr r0, [r4, r1]
+ mov r1, #2
+ bl FUN_0200A914
+ mov r1, #0x4f
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x28
+ ldr r0, [r4, r1]
+ mov r1, #0x12
+ bl FUN_0200A914
+ mov r1, #5
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ sub r1, #0x2c
+ ldr r0, [r4, r1]
+ mov r1, #3
+ bl FUN_0200A914
+ mov r1, #0x51
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x30
+ ldr r0, [r4, r1]
+ mov r1, #4
+ bl FUN_0200A914
+ mov r1, #0x52
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x34
+ ldr r0, [r4, r1]
+ mov r1, #5
+ bl FUN_0200A914
+ mov r1, #0x53
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ sub r1, #0x38
+ ldr r0, [r4, r1]
+ mov r1, #8
+ bl FUN_0200A914
+ mov r1, #0x15
+ lsl r1, r1, #4
+ str r0, [r4, r1]
+ pop {r4, pc}
+ thumb_func_end MOD75_021EB048
+
+ thumb_func_start MOD75_021EB110
+MOD75_021EB110: ; 0x021EB110
+ push {r4, r5, r6, lr}
+ mov r6, #0x49
+ add r5, r0, #0
+ mov r4, #0
+ lsl r6, r6, #2
+_021EB11A:
+ lsl r0, r4, #2
+ add r0, r5, r0
+ ldr r0, [r0, r6]
+ bl FUN_02021A20
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, #0xc
+ blo _021EB11A
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EB110
+
+ thumb_func_start MOD75_021EB130
+MOD75_021EB130: ; 0x021EB130
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x28
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r6, r1, #0
+ add r1, r0, #0
+ add r1, #0x64
+ add r7, r2, #0
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r0, r0, r1
+ ldrb r0, [r0, #0xc]
+ cmp r0, #4
+ bne _021EB180
+ lsl r0, r7, #1
+ mov r3, #0x17
+ sub r1, r3, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #8
+ lsl r0, r0, #0x18
+ str r1, [sp, #4]
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EB338 ; =0x00000337
+ add r1, r5, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, #0xb4
+ mov r2, #0
+ bl FUN_02019064
+ mov r0, #4
+ str r0, [sp, #0x14]
+ b _021EB1B0
+_021EB180:
+ lsl r0, r7, #1
+ mov r1, #0x17
+ sub r1, r1, r0
+ lsl r1, r1, #0x18
+ lsr r1, r1, #0x18
+ str r1, [sp]
+ mov r1, #7
+ lsl r0, r0, #0x18
+ str r1, [sp, #4]
+ lsr r0, r0, #0x18
+ str r0, [sp, #8]
+ mov r0, #3
+ str r0, [sp, #0xc]
+ ldr r0, _021EB338 ; =0x00000337
+ add r1, r5, #0
+ str r0, [sp, #0x10]
+ ldr r0, [r5]
+ add r1, #0xb4
+ mov r2, #0
+ mov r3, #0x18
+ bl FUN_02019064
+ mov r0, #3
+ str r0, [sp, #0x14]
+_021EB1B0:
+ add r0, r7, #0
+ mov r1, #6
+ bl FUN_02012838
+ mov r1, #0x55
+ lsl r1, r1, #2
+ mov r4, #0
+ str r0, [r5, r1]
+ cmp r7, #0
+ ble _021EB1EC
+_021EB1C4:
+ ldrb r0, [r6, r4]
+ bl MOD75_021E8E10
+ ldrb r1, [r6, r4]
+ add r2, r0, #0
+ mov r0, #0x55
+ lsl r1, r1, #2
+ add r3, r5, r1
+ mov r1, #0x49
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r3, r1]
+ bl FUN_020128A0
+ add r0, r4, #1
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ cmp r4, r7
+ blt _021EB1C4
+_021EB1EC:
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ str r0, [sp, #0x1c]
+ add r0, r5, #0
+ add r0, #0xb4
+ str r0, [sp, #0x20]
+ add r0, sp, #0x1c
+ strb r1, [r0, #8]
+ mov r1, #1
+ strb r1, [r0, #9]
+ strb r7, [r0, #0xa]
+ ldrb r2, [r0, #0xb]
+ mov r1, #0xf
+ bic r2, r1
+ strb r2, [r0, #0xb]
+ ldrb r2, [r0, #0xb]
+ mov r1, #0x30
+ bic r2, r1
+ strb r2, [r0, #0xb]
+ cmp r7, #4
+ ldrb r2, [r0, #0xb]
+ blo _021EB228
+ mov r1, #0xc0
+ bic r2, r1
+ mov r1, #0x40
+ orr r1, r2
+ strb r1, [r0, #0xb]
+ b _021EB22E
+_021EB228:
+ mov r1, #0xc0
+ bic r2, r1
+ strb r2, [r0, #0xb]
+_021EB22E:
+ mov r0, #6
+ str r0, [sp]
+ mov r0, #2
+ mov r2, #0
+ str r0, [sp, #4]
+ add r0, sp, #0x1c
+ mov r1, #8
+ add r3, r2, #0
+ bl FUN_02001B8C
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r5, r1]
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ mov r3, #0xc
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r0, [r0]
+ add r1, r0, #0
+ mul r1, r3
+ add r0, r2, r1
+ ldrb r0, [r0, #0xc]
+ cmp r0, #3
+ bne _021EB298
+ add r0, r5, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x66
+ ldrh r1, [r1]
+ bl MOD75_021EAB44
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019220
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x66
+ ldrh r1, [r1]
+ mov r2, #1
+ bl MOD75_021EC2B8
+ b _021EB31E
+_021EB298:
+ ldr r0, [sp, #0x14]
+ add r4, r5, #4
+ lsl r6, r0, #4
+ ldr r2, _021EB33C ; =0x000003D9
+ add r0, r4, r6
+ mov r1, #1
+ bl FUN_0200D0BC
+ add r0, r4, r6
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x2a
+ bl FUN_0200A914
+ str r0, [sp, #0x18]
+ mov r0, #0x38
+ mov r1, #6
+ bl FUN_020219F4
+ add r7, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r1, #4
+ add r1, #0x64
+ ldrb r2, [r1]
+ mov r1, #0xc
+ mul r1, r2
+ add r1, r0, r1
+ ldrh r2, [r1, #6]
+ ldrh r1, [r1, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ sub r1, r1, #1
+ mov r2, #0
+ bl MOD75_021EAAA8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ ldr r2, [sp, #0x18]
+ add r1, r7, #0
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r4, r6
+ mov r1, #1
+ add r2, r7, #0
+ str r3, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r7, #0
+ bl FUN_02021A20
+ ldr r0, [sp, #0x18]
+ bl FUN_02021A20
+ add r0, r4, r6
+ bl FUN_02019220
+_021EB31E:
+ add r0, r5, #0
+ ldr r2, _021EB340 ; =0x000003F7
+ add r0, #0xb4
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ add r5, #0xb4
+ add r0, r5, #0
+ bl FUN_02019220
+ add sp, #0x28
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EB338: .word 0x00000337
+_021EB33C: .word 0x000003D9
+_021EB340: .word 0x000003F7
+ thumb_func_end MOD75_021EB130
+
+ thumb_func_start MOD75_021EB344
+MOD75_021EB344: ; 0x021EB344
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r2, #0
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r0, r2, r0
+ ldrb r0, [r0, #0xc]
+ cmp r0, #4
+ bne _021EB362
+ mov r1, #4
+ b _021EB364
+_021EB362:
+ mov r1, #3
+_021EB364:
+ cmp r0, #3
+ beq _021EB37A
+ lsl r6, r1, #4
+ add r4, r5, #4
+ add r0, r4, r6
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r4, r6
+ bl FUN_0201958C
+_021EB37A:
+ add r0, r5, #0
+ add r0, #0xb4
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r5, #0
+ add r0, #0xb4
+ bl FUN_0201958C
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_02001C5C
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ bl FUN_02012870
+ add r0, r5, #0
+ add r0, #0xb4
+ bl FUN_02019178
+ add r0, r5, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x66
+ ldrh r1, [r1]
+ bl MOD75_021EAAE8
+ add r0, r5, #0
+ add r0, #0x14
+ bl FUN_02019220
+ mov r1, #0
+ add r0, r5, #0
+ add r2, r1, #0
+ bl MOD75_021EC2B8
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EB344
+
+ thumb_func_start MOD75_021EB3D8
+MOD75_021EB3D8: ; 0x021EB3D8
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ add r0, #0x14
+ mov r1, #0
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x2d
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x82
+ mov r1, #6
+ bl FUN_020219F4
+ ldr r1, _021EB44C ; =0x0000047B
+ add r4, r0, #0
+ ldrb r1, [r5, r1]
+ add r0, r5, #0
+ mov r2, #0
+ sub r1, r1, #1
+ bl MOD75_021EAAA8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _021EB450 ; =0x000F0E00
+ add r2, r4, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0x14
+ mov r3, #0x28
+ str r1, [sp, #0xc]
+ bl FUN_0201BDE0
+ add r5, #0x14
+ add r0, r5, #0
+ bl FUN_02019220
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_021EB44C: .word 0x0000047B
+_021EB450: .word 0x000F0E00
+ thumb_func_end MOD75_021EB3D8
+
+ thumb_func_start MOD75_021EB454
+MOD75_021EB454: ; 0x021EB454
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ ldr r2, _021EB4FC ; =0x000003F7
+ add r5, r0, #0
+ add r0, #0x94
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ add r0, r5, #0
+ bl MOD75_021EB504
+ add r0, r5, #0
+ ldr r2, _021EB500 ; =0x000003D9
+ add r0, #0x34
+ mov r1, #1
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ add r0, #0x34
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x34
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #0x38
+ mov r1, #6
+ bl FUN_020219F4
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r1, r2, r0
+ ldrh r2, [r1, #6]
+ ldrh r1, [r1, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ sub r1, r1, #1
+ mov r2, #0
+ bl MOD75_021EAAA8
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0x34
+ mov r1, #1
+ add r2, r4, #0
+ str r3, [sp, #8]
+ bl FUN_0201BD84
+ add r5, #0x34
+ add r0, r5, #0
+ bl FUN_02019220
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021EB4FC: .word 0x000003F7
+_021EB500: .word 0x000003D9
+ thumb_func_end MOD75_021EB454
+
+ thumb_func_start MOD75_021EB504
+MOD75_021EB504: ; 0x021EB504
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x94
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x54
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #2
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021EB57C ; =0x00000488
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ mov r3, #0x10
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02019220
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021EB57C: .word 0x00000488
+ thumb_func_end MOD75_021EB504
+
+ thumb_func_start MOD75_021EB580
+MOD75_021EB580: ; 0x021EB580
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x34
+ mov r1, #1
+ bl FUN_0200D0E0
+ add r0, r4, #0
+ add r0, #0x94
+ mov r1, #1
+ bl FUN_0200CCF8
+ add r0, r4, #0
+ add r0, #0x34
+ bl FUN_0201958C
+ add r0, r4, #0
+ add r0, #0x94
+ bl FUN_0201958C
+ add r4, #0x14
+ add r0, r4, #0
+ bl FUN_02019220
+ pop {r4, pc}
+ thumb_func_end MOD75_021EB580
+
+ thumb_func_start MOD75_021EB5B0
+MOD75_021EB5B0: ; 0x021EB5B0
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ ldr r2, _021EB654 ; =0x000003D9
+ add r5, r0, #0
+ add r0, #0x64
+ mov r1, #1
+ mov r3, #0xc
+ bl FUN_0200D0BC
+ add r0, r5, #0
+ add r0, #0x64
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x36
+ bl FUN_0200A914
+ add r4, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r2, r0, #4
+ add r0, #0x64
+ ldrb r1, [r0]
+ mov r0, #0xc
+ mul r0, r1
+ add r1, r2, r0
+ ldr r0, _021EB658 ; =0x00000488
+ ldrsh r0, [r5, r0]
+ cmp r0, #1
+ bne _021EB606
+ ldrh r2, [r1, #6]
+ ldrh r1, [r1, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ sub r1, r1, #1
+ mov r2, #0
+ bl MOD75_021EAAA8
+ b _021EB616
+_021EB606:
+ ldrh r2, [r1, #6]
+ ldrh r1, [r1, #4]
+ add r0, r5, #0
+ add r1, r2, r1
+ sub r1, r1, #1
+ mov r2, #0
+ bl MOD75_021EAAC8
+_021EB616:
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #1
+ mov r0, #0x46
+ ldr r2, _021EB658 ; =0x00000488
+ str r1, [sp, #4]
+ lsl r0, r0, #2
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r4, #0
+ bl FUN_0200B7B8
+ add r0, r4, #0
+ bl FUN_02021A20
+ add r0, r5, #0
+ bl MOD75_021EB660
+ ldr r1, _021EB65C ; =0x00000426
+ strb r0, [r5, r1]
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021EB654: .word 0x000003D9
+_021EB658: .word 0x00000488
+_021EB65C: .word 0x00000426
+ thumb_func_end MOD75_021EB5B0
+
+ thumb_func_start MOD75_021EB660
+MOD75_021EB660: ; 0x021EB660
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ mov r0, #1
+ bl FUN_02002B60
+ mov r0, #0
+ bl FUN_02002B7C
+ add r0, r4, #0
+ add r0, #0xd0
+ ldr r0, [r0]
+ bl FUN_02024FF4
+ mov r3, #0
+ str r3, [sp]
+ str r0, [sp, #4]
+ ldr r0, _021EB69C ; =MOD75_021EB6A0
+ mov r2, #0xfe
+ str r0, [sp, #8]
+ lsl r2, r2, #2
+ add r0, r4, #0
+ ldr r2, [r4, r2]
+ add r0, #0x64
+ mov r1, #1
+ bl FUN_0201BD84
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_021EB69C: .word MOD75_021EB6A0
+ thumb_func_end MOD75_021EB660
+
+ thumb_func_start MOD75_021EB6A0
+MOD75_021EB6A0: ; 0x021EB6A0
+ push {r3, lr}
+ cmp r1, #4
+ bhi _021EB6D8
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_021EB6B2: ; jump table
+ .short _021EB6D8 - _021EB6B2 - 2 ; case 0
+ .short _021EB6BC - _021EB6B2 - 2 ; case 1
+ .short _021EB6C2 - _021EB6B2 - 2 ; case 2
+ .short _021EB6C8 - _021EB6B2 - 2 ; case 3
+ .short _021EB6D0 - _021EB6B2 - 2 ; case 4
+_021EB6BC:
+ bl FUN_02005514
+ pop {r3, pc}
+_021EB6C2:
+ bl FUN_02005CBC
+ pop {r3, pc}
+_021EB6C8:
+ ldr r0, _021EB6DC ; =0x0000060D
+ bl FUN_020054C8
+ b _021EB6D8
+_021EB6D0:
+ ldr r0, _021EB6DC ; =0x0000060D
+ bl FUN_02005508
+ pop {r3, pc}
+_021EB6D8:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+_021EB6DC: .word 0x0000060D
+ thumb_func_end MOD75_021EB6A0
+
+ thumb_func_start MOD75_021EB6E0
+MOD75_021EB6E0: ; 0x021EB6E0
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #6
+ str r0, [sp]
+ ldr r0, [r4]
+ ldr r1, _021EB700 ; =0x021EC6AC
+ ldr r2, _021EB704 ; =0x000003F7
+ mov r3, #0xe
+ bl FUN_02002198
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ add sp, #4
+ pop {r3, r4, pc}
+ .align 2, 0
+_021EB700: .word 0x021EC6AC
+_021EB704: .word 0x000003F7
+ thumb_func_end MOD75_021EB6E0
+
+ thumb_func_start MOD75_021EB708
+MOD75_021EB708: ; 0x021EB708
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x74
+ cmp r1, #0
+ bne _021EB722
+ ldr r2, _021EB7FC ; =0x000003F7
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+_021EB722:
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x50
+ bl FUN_0200A914
+ mov r3, #2
+ add r6, r0, #0
+ str r3, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r2, _021EB800 ; =0x00000488
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldrsh r2, [r5, r2]
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x51
+ bl FUN_0200A914
+ add r6, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ ldr r2, _021EB804 ; =0x0000048C
+ mov r0, #0x46
+ ldr r3, [r5, r2]
+ sub r2, r2, #4
+ ldrsh r2, [r5, r2]
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mul r2, r3
+ mov r1, #0
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r1, #0xfe
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r5, #0x60
+ add r0, r4, #0
+ sub r3, r5, r3
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02019220
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021EB7FC: .word 0x000003F7
+_021EB800: .word 0x00000488
+_021EB804: .word 0x0000048C
+ thumb_func_end MOD75_021EB708
+
+ thumb_func_start MOD75_021EB808
+MOD75_021EB808: ; 0x021EB808
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x84
+ cmp r1, #0
+ bne _021EB854
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r2, _021EB8E4 ; =0x000003F7
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4e
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ b _021EB866
+_021EB854:
+ mov r0, #0x50
+ str r0, [sp]
+ mov r3, #0x10
+ add r0, r4, #0
+ mov r1, #0xf
+ mov r2, #0
+ str r3, [sp, #4]
+ bl FUN_020196F4
+_021EB866:
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x4f
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xcc
+ ldr r0, [r0]
+ bl FUN_02023A10
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #6
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ mov r1, #0xfe
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r5, #0x50
+ add r0, r4, #0
+ sub r3, r5, r3
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02019220
+ add r0, r6, #0
+ bl FUN_02021A20
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021EB8E4: .word 0x000003F7
+ thumb_func_end MOD75_021EB808
+
+ thumb_func_start MOD75_021EB8E8
+MOD75_021EB8E8: ; 0x021EB8E8
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0xa4
+ add r0, r4, #0
+ mov r1, #0xf
+ bl FUN_02019620
+ ldr r2, _021EB9B0 ; =0x000003F7
+ add r0, r4, #0
+ mov r1, #1
+ mov r3, #0xe
+ bl FUN_0200CCA4
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x6c
+ bl FUN_0200A914
+ mov r1, #0
+ add r6, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ add r0, r4, #0
+ add r2, r6, #0
+ add r3, r1, #0
+ str r1, [sp, #8]
+ bl FUN_0201BD84
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r0, #0x45
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0x6d
+ bl FUN_0200A914
+ add r6, r0, #0
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_02028048
+ bl FUN_020281B8
+ add r2, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #0x46
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ mov r3, #3
+ bl FUN_0200AD38
+ mov r0, #0x46
+ mov r1, #0xfe
+ lsl r0, r0, #2
+ lsl r1, r1, #2
+ ldr r0, [r5, r0]
+ ldr r1, [r5, r1]
+ add r2, r6, #0
+ bl FUN_0200B7B8
+ add r0, r6, #0
+ bl FUN_02021A20
+ mov r1, #0xfe
+ lsl r1, r1, #2
+ mov r0, #0
+ ldr r1, [r5, r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ add r3, r0, #0
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ mov r1, #0
+ mov r2, #0xfe
+ str r1, [sp, #8]
+ lsl r2, r2, #2
+ ldr r2, [r5, r2]
+ mov r5, #0x58
+ add r0, r4, #0
+ sub r3, r5, r3
+ bl FUN_0201BD84
+ add r0, r4, #0
+ bl FUN_02019220
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_021EB9B0: .word 0x000003F7
+ thumb_func_end MOD75_021EB8E8
+
+ thumb_func_start MOD75_021EB9B4
+MOD75_021EB9B4: ; 0x021EB9B4
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E6E4
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #0x20
+ mov r1, #6
+ bl FUN_0201C24C
+ add r0, r4, #0
+ bl MOD75_021EB9E4
+ add r0, r4, #0
+ bl MOD75_021EBA80
+ add r0, r4, #0
+ bl MOD75_021EBEAC
+ pop {r4, pc}
+ thumb_func_end MOD75_021EB9B4
+
+ thumb_func_start MOD75_021EB9E4
+MOD75_021EB9E4: ; 0x021EB9E4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x4c
+ ldr r3, _021EBA74 ; =0x021EC6D4
+ add r2, sp, #0x34
+ add r4, r0, #0
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r3!, {r0, r1}
+ stmia r2!, {r0, r1}
+ mov r0, #6
+ bl FUN_0200BB14
+ add r1, r4, #0
+ add r1, #0xd8
+ str r0, [r1]
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ bl FUN_0200BB34
+ add r1, r4, #0
+ add r1, #0xdc
+ add r2, sp, #0x14
+ ldr r5, _021EBA78 ; =0x021EC6EC
+ str r0, [r1]
+ ldmia r5!, {r0, r1}
+ add r3, r2, #0
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r2!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ ldr r6, _021EBA7C ; =0x021EC6C0
+ stmia r2!, {r0, r1}
+ add r5, sp, #0
+ ldmia r6!, {r0, r1}
+ add r2, r5, #0
+ stmia r5!, {r0, r1}
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ ldr r0, [r6]
+ add r1, r3, #0
+ str r0, [r5]
+ add r0, r4, #0
+ add r0, #0xd8
+ ldr r0, [r0]
+ mov r3, #0x20
+ bl FUN_0200BB6C
+ add r0, r4, #0
+ add r1, r4, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xc
+ bl FUN_0200BBF0
+ add r0, r4, #0
+ add r0, #0xd8
+ add r4, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r4]
+ add r2, sp, #0x34
+ bl FUN_0200BF60
+ add sp, #0x4c
+ pop {r3, r4, r5, r6, pc}
+ nop
+_021EBA74: .word 0x021EC6D4
+_021EBA78: .word 0x021EC6EC
+_021EBA7C: .word 0x021EC6C0
+ thumb_func_end MOD75_021EB9E4
+
+ thumb_func_start MOD75_021EBA80
+MOD75_021EBA80: ; 0x021EBA80
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, _021EBE38 ; =0x00000425
+ ldrb r0, [r5, r0]
+ cmp r0, #0
+ bne _021EBA94
+ mov r3, #2
+ mov r4, #3
+ b _021EBA98
+_021EBA94:
+ mov r3, #0x22
+ mov r4, #0x23
+_021EBA98:
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE3C ; =0x0000C0F9
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE40 ; =0x0000C0FA
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x15
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE44 ; =0x0000C0FB
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x18
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE48 ; =0x0000C0FC
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1b
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE4C ; =0x0000C0FD
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #6
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ ldr r0, _021EBE50 ; =0x0000C0FE
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1e
+ bl FUN_0200C00C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #0xc1
+ lsl r0, r0, #8
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x3e
+ mov r3, #4
+ bl FUN_0200C00C
+ mov r0, #0
+ mov r1, #1
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ ldr r0, _021EBE54 ; =0x0000C0FF
+ add r1, r5, #0
+ str r0, [sp, #8]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C00C
+ ldr r0, _021EBE58 ; =0x0000C101
+ add r1, r5, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E130
+ ldr r0, _021EBE5C ; =0x0000C102
+ add r1, r5, #0
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #1
+ mov r3, #0
+ bl FUN_0206E2AC
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _021EBE3C ; =0x0000C0F9
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ add r3, r4, #0
+ bl FUN_0200C06C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _021EBE40 ; =0x0000C0FA
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x10
+ bl FUN_0200C06C
+ mov r0, #0
+ mov r1, #2
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ ldr r0, _021EBE48 ; =0x0000C0FC
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C06C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r0, _021EBE4C ; =0x0000C0FD
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x3e
+ mov r3, #0xa
+ bl FUN_0200C06C
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ ldr r3, _021EBE50 ; =0x0000C0FE
+ mov r2, #1
+ bl FUN_0206E164
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #1
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ ldr r0, _021EBE44 ; =0x0000C0FB
+ add r1, r5, #0
+ str r0, [sp, #0xc]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1f
+ bl FUN_0200C06C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE3C ; =0x0000C0F9
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #1
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE40 ; =0x0000C0FA
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x14
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE44 ; =0x0000C0FB
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x17
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE48 ; =0x0000C0FC
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1a
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE4C ; =0x0000C0FD
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #5
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE50 ; =0x0000C0FE
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1d
+ bl FUN_0200C124
+ bl FUN_0206E708
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE54 ; =0x0000C0FF
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C124
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xc1
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x3e
+ mov r3, #5
+ bl FUN_0200C124
+ mov r3, #0
+ add r1, r5, #0
+ ldr r0, _021EBE3C ; =0x0000C0F9
+ str r3, [sp]
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE40 ; =0x0000C0FA
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x13
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE44 ; =0x0000C0FB
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x16
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE48 ; =0x0000C0FC
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x19
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE4C ; =0x0000C0FD
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #4
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE50 ; =0x0000C0FE
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0xd
+ mov r3, #0x1c
+ bl FUN_0200C13C
+ bl FUN_0206E70C
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EBE54 ; =0x0000C0FF
+ b _021EBE60
+ nop
+_021EBE38: .word 0x00000425
+_021EBE3C: .word 0x0000C0F9
+_021EBE40: .word 0x0000C0FA
+_021EBE44: .word 0x0000C0FB
+_021EBE48: .word 0x0000C0FC
+_021EBE4C: .word 0x0000C0FD
+_021EBE50: .word 0x0000C0FE
+_021EBE54: .word 0x0000C0FF
+_021EBE58: .word 0x0000C101
+_021EBE5C: .word 0x0000C102
+_021EBE60:
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C13C
+ mov r0, #0
+ str r0, [sp]
+ mov r0, #0xc1
+ lsl r0, r0, #8
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x3e
+ mov r3, #6
+ bl FUN_0200C13C
+ add r0, r5, #0
+ add r0, #0xd8
+ add r5, #0xdc
+ ldr r2, _021EBEA8 ; =0x0000C101
+ ldr r0, [r0]
+ ldr r1, [r5]
+ add r3, r2, #0
+ bl FUN_0206E1D4
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_021EBEA8: .word 0x0000C101
+ thumb_func_end MOD75_021EBA80
+
+ thumb_func_start MOD75_021EBEAC
+MOD75_021EBEAC: ; 0x021EBEAC
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ ldr r4, _021EBFD8 ; =0x021EC70C
+ mov r7, #0
+ add r6, r5, #0
+_021EBEB8:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, r4, #0
+ bl FUN_0200C154
+ add r1, r6, #0
+ add r1, #0xe0
+ add r7, r7, #1
+ str r0, [r1]
+ add r4, #0x34
+ add r6, r6, #4
+ cmp r7, #0xc
+ blo _021EBEB8
+ add r0, r5, #0
+ add r0, #0xf4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r0, [r0]
+ add r0, #0x65
+ ldrb r0, [r0]
+ add r0, #0xfc
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ cmp r0, #1
+ bhi _021EBF2A
+ add r0, r5, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021EBF2A:
+ ldr r0, _021EBFDC ; =0x00000424
+ ldrb r0, [r5, r0]
+ cmp r0, #1
+ bne _021EBF4A
+ add r0, r5, #0
+ add r0, #0xe8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xec
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C644
+_021EBF4A:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD75_021EC298
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r1, [r0]
+ add r0, r5, #0
+ add r2, r1, #0
+ add r2, #0x64
+ ldrb r3, [r2]
+ mov r2, #0xc
+ add r0, #0xe0
+ mul r2, r3
+ add r1, r1, r2
+ ldrb r1, [r1, #0xc]
+ ldr r0, [r0]
+ bl FUN_0200C5C0
+ add r1, r5, #0
+ add r1, #0xc4
+ ldr r1, [r1]
+ add r0, r5, #0
+ add r1, #0x64
+ ldrb r1, [r1]
+ bl MOD75_021EC18C
+ add r1, r0, #0
+ add r0, r5, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ mov r2, #0x61
+ bl FUN_0200C714
+ add r0, r5, #0
+ add r0, #0xc4
+ ldr r2, [r0]
+ add r0, r5, #0
+ add r3, r2, #0
+ add r3, #0x64
+ ldrb r4, [r3]
+ mov r3, #0xc
+ add r0, #0xf0
+ mul r3, r4
+ add r2, r2, r3
+ ldrh r2, [r2, #8]
+ ldr r0, [r0]
+ mov r1, #0xb1
+ sub r2, r2, #1
+ lsl r2, r2, #4
+ add r2, #0x18
+ lsl r2, r2, #0x10
+ asr r2, r2, #0x10
+ bl FUN_0200C714
+ ldr r4, _021EBFE0 ; =0x021EC6B4
+ add r3, sp, #0
+ ldmia r4!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldr r0, [r4]
+ add r1, r2, #0
+ add r5, #0xe0
+ str r0, [r3]
+ ldr r0, [r5]
+ mov r2, #2
+ ldr r0, [r0]
+ bl FUN_02020074
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EBFD8: .word 0x021EC70C
+_021EBFDC: .word 0x00000424
+_021EBFE0: .word 0x021EC6B4
+ thumb_func_end MOD75_021EBEAC
+
+ thumb_func_start MOD75_021EBFE4
+MOD75_021EBFE4: ; 0x021EBFE4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_021EBFEC:
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ bl FUN_0200C3DC
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xc
+ blo _021EBFEC
+ add r0, r6, #0
+ add r1, r6, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ bl FUN_0200C398
+ add r6, #0xd8
+ ldr r0, [r6]
+ bl FUN_0200BD04
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EBFE4
+
+ thumb_func_start MOD75_021EC018
+MOD75_021EC018: ; 0x021EC018
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r4, #0
+_021EC01E:
+ add r0, r5, #0
+ add r0, #0xe0
+ ldr r0, [r0]
+ bl FUN_0200C5A8
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xc
+ blo _021EC01E
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EC018
+
+ thumb_func_start MOD75_021EC034
+MOD75_021EC034: ; 0x021EC034
+ push {r3, r4, r5, lr}
+ sub sp, #8
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EC088 ; =0x0000C0FF
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ mov r2, #0x10
+ bl FUN_0200C9D8
+ add r0, r4, #0
+ mov r1, #2
+ bl FUN_0206E640
+ add r3, r0, #0
+ mov r0, #0
+ str r0, [sp]
+ ldr r0, _021EC08C ; =0x0000C0FC
+ mov r2, #0x10
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r5, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r5]
+ bl FUN_0200CA0C
+ add sp, #8
+ pop {r3, r4, r5, pc}
+ nop
+_021EC088: .word 0x0000C0FF
+_021EC08C: .word 0x0000C0FC
+ thumb_func_end MOD75_021EC034
+
+ thumb_func_start MOD75_021EC090
+MOD75_021EC090: ; 0x021EC090
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r0, #0xf0
+ ldr r0, [r0]
+ add r4, r1, #0
+ bl FUN_0200C66C
+ add r5, #0xe4
+ ldr r0, [r5]
+ add r1, r4, #0
+ bl FUN_0200C66C
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EC090
+
+ thumb_func_start MOD75_021EC0AC
+MOD75_021EC0AC: ; 0x021EC0AC
+ ldr r1, _021EC0C0 ; =0x00000454
+ ldrb r0, [r0, r1]
+ cmp r0, #0
+ bne _021EC0B8
+ mov r0, #1
+ b _021EC0BA
+_021EC0B8:
+ mov r0, #0
+_021EC0BA:
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .align 2, 0
+_021EC0C0: .word 0x00000454
+ thumb_func_end MOD75_021EC0AC
+
+ thumb_func_start MOD75_021EC0C4
+MOD75_021EC0C4: ; 0x021EC0C4
+ ldr r1, _021EC0D4 ; =0x00000457
+ mov r2, #0
+ strb r2, [r0, r1]
+ ldr r3, _021EC0D8 ; =MOD75_021EC1A4
+ mov r2, #1
+ sub r1, r1, #3
+ strb r2, [r0, r1]
+ bx r3
+ .align 2, 0
+_021EC0D4: .word 0x00000457
+_021EC0D8: .word MOD75_021EC1A4
+ thumb_func_end MOD75_021EC0C4
+
+ thumb_func_start MOD75_021EC0DC
+MOD75_021EC0DC: ; 0x021EC0DC
+ push {r3, lr}
+ ldr r1, _021EC0F0 ; =0x00000454
+ ldrb r1, [r0, r1]
+ cmp r1, #0
+ beq _021EC0EE
+ cmp r1, #1
+ bne _021EC0EE
+ bl MOD75_021EC0F4
+_021EC0EE:
+ pop {r3, pc}
+ .align 2, 0
+_021EC0F0: .word 0x00000454
+ thumb_func_end MOD75_021EC0DC
+
+ thumb_func_start MOD75_021EC0F4
+MOD75_021EC0F4: ; 0x021EC0F4
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ str r0, [r2]
+ ldr r2, _021EC180 ; =0x00000455
+ ldrb r0, [r4, r2]
+ cmp r0, #0
+ bne _021EC12C
+ add r1, r2, #2
+ ldrb r1, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r4, r1
+ add r1, r2, #3
+ ldr r1, [r3, r1]
+ sub r0, r0, r1
+ str r0, [sp]
+ b _021EC13E
+_021EC12C:
+ add r1, r2, #2
+ ldrb r1, [r4, r1]
+ ldr r0, [sp]
+ lsl r1, r1, #2
+ add r3, r4, r1
+ add r1, r2, #3
+ ldr r1, [r3, r1]
+ add r0, r0, r1
+ str r0, [sp]
+_021EC13E:
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, sp, #0
+ ldr r0, [r0]
+ bl FUN_02020044
+ ldr r1, _021EC184 ; =0x00000457
+ ldrb r0, [r4, r1]
+ add r0, r0, #1
+ strb r0, [r4, r1]
+ ldrb r0, [r4, r1]
+ cmp r0, #8
+ bne _021EC17C
+ add r1, #0x21
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD75_021EC18C
+ lsl r0, r0, #0xc
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ add r1, sp, #0
+ ldr r0, [r0]
+ bl FUN_02020044
+ ldr r0, _021EC188 ; =0x00000454
+ mov r1, #0
+ strb r1, [r4, r0]
+_021EC17C:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+_021EC180: .word 0x00000455
+_021EC184: .word 0x00000457
+_021EC188: .word 0x00000454
+ thumb_func_end MOD75_021EC0F4
+
+ thumb_func_start MOD75_021EC18C
+MOD75_021EC18C: ; 0x021EC18C
+ ldr r2, _021EC1A0 ; =0x00000427
+ ldrb r3, [r0, r2]
+ add r2, r2, #1
+ ldrb r0, [r0, r2]
+ mul r1, r0
+ add r0, r3, r1
+ add r0, r0, #6
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ bx lr
+ .align 2, 0
+_021EC1A0: .word 0x00000427
+ thumb_func_end MOD75_021EC18C
+
+ thumb_func_start MOD75_021EC1A4
+MOD75_021EC1A4: ; 0x021EC1A4
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, #0xe4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl FUN_0202011C
+ add r3, r0, #0
+ ldmia r3!, {r0, r1}
+ add r2, sp, #0
+ stmia r2!, {r0, r1}
+ ldr r0, [r3]
+ ldr r1, _021EC240 ; =0x00000478
+ str r0, [r2]
+ ldrb r1, [r4, r1]
+ add r0, r4, #0
+ bl MOD75_021EC18C
+ lsl r1, r0, #0xc
+ ldr r0, [sp]
+ cmp r1, r0
+ bge _021EC1DE
+ sub r0, r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ mov r2, #0
+ b _021EC1E8
+_021EC1DE:
+ sub r0, r1, r0
+ mov r1, #0x64
+ bl _s32_div_f
+ mov r2, #1
+_021EC1E8:
+ ldr r1, _021EC244 ; =0x00000455
+ mov r3, #0x28
+ strb r2, [r4, r1]
+ add r5, r0, #0
+ ldr r1, _021EC248 ; =0x00000458
+ mov r2, #0
+ mul r5, r3
+ str r2, [r4, r1]
+ add r3, r1, #4
+ str r5, [r4, r3]
+ mov r3, #0x19
+ add r5, r0, #0
+ mul r5, r3
+ add r3, r1, #0
+ add r3, #8
+ str r5, [r4, r3]
+ mov r3, #0xf
+ add r5, r0, #0
+ mul r5, r3
+ add r3, r1, #0
+ add r3, #0xc
+ str r5, [r4, r3]
+ mov r3, #0xa
+ add r5, r0, #0
+ mul r5, r3
+ add r3, r1, #0
+ add r3, #0x10
+ str r5, [r4, r3]
+ mov r3, #7
+ add r5, r0, #0
+ mul r5, r3
+ add r3, r1, #0
+ add r3, #0x14
+ str r5, [r4, r3]
+ lsl r3, r0, #1
+ add r3, r0, r3
+ add r0, r1, #0
+ add r0, #0x18
+ str r3, [r4, r0]
+ add r1, #0x1c
+ str r2, [r4, r1]
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_021EC240: .word 0x00000478
+_021EC244: .word 0x00000455
+_021EC248: .word 0x00000458
+ thumb_func_end MOD75_021EC1A4
+
+ thumb_func_start MOD75_021EC24C
+MOD75_021EC24C: ; 0x021EC24C
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #0
+ bne _021EC272
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #0xdc
+ mov r2, #0x9c
+ bl FUN_0200C714
+ mov r0, #0x41
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xdc
+ mov r2, #0xb4
+ bl FUN_0200C714
+ b _021EC28E
+_021EC272:
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r4, r0]
+ mov r1, #0xa2
+ mov r2, #0x6c
+ bl FUN_0200C714
+ mov r0, #0x41
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ mov r1, #0xa2
+ mov r2, #0x84
+ bl FUN_0200C714
+_021EC28E:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD75_021EC298
+ pop {r4, pc}
+ thumb_func_end MOD75_021EC24C
+
+ thumb_func_start MOD75_021EC298
+MOD75_021EC298: ; 0x021EC298
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #1
+ lsl r0, r0, #8
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl FUN_0200C644
+ mov r0, #0x41
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200C644
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD75_021EC298
+
+ thumb_func_start MOD75_021EC2B8
+MOD75_021EC2B8: ; 0x021EC2B8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ add r4, r2, #0
+ add r6, r1, #0
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200C644
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r4, #0
+ bl FUN_0200C644
+ cmp r4, #0
+ beq _021EC374
+ add r0, r6, #0
+ bl FUN_0206EA30
+ mov r1, #3
+ add r4, r0, #0
+ bl FUN_0206AB18
+ lsl r0, r0, #0x10
+ lsr r6, r0, #0x10
+ add r0, r4, #0
+ mov r1, #1
+ bl FUN_0206AB18
+ lsl r0, r0, #0x10
+ lsr r4, r0, #0x10
+ bl FUN_0206E12C
+ add r7, r0, #0
+ add r0, r6, #0
+ bl FUN_0206E0F0
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _021EC378 ; =0x0000C101
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, r7, #0
+ bl FUN_0200C9D8
+ add r0, r6, #0
+ bl FUN_0206E114
+ add r1, r0, #0
+ mov r0, #0x42
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #6
+ bl FUN_0200C66C
+ bl FUN_0206E2A8
+ add r6, r0, #0
+ add r0, r4, #0
+ bl FUN_0206E278
+ add r3, r0, #0
+ mov r0, #1
+ str r0, [sp]
+ ldr r0, _021EC37C ; =0x0000C102
+ add r1, r5, #0
+ str r0, [sp, #4]
+ add r0, r5, #0
+ add r0, #0xd8
+ add r1, #0xdc
+ ldr r0, [r0]
+ ldr r1, [r1]
+ add r2, r6, #0
+ bl FUN_0200C9D8
+ add r0, r4, #0
+ bl FUN_0206E290
+ add r1, r0, #0
+ mov r0, #0x43
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r1, r1, #6
+ bl FUN_0200C66C
+_021EC374:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_021EC378: .word 0x0000C101
+_021EC37C: .word 0x0000C102
+ thumb_func_end MOD75_021EC2B8
+
+ thumb_func_start MOD75_021EC380
+MOD75_021EC380: ; 0x021EC380
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, #0xf8
+ add r4, r1, #0
+ ldr r0, [r0]
+ mov r1, #1
+ add r6, r2, #0
+ bl FUN_0200C644
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ add r1, r4, #0
+ add r2, r6, #0
+ bl FUN_0200C714
+ add r0, r5, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ mov r1, #0
+ bl FUN_0200C61C
+ add r5, #0xf8
+ ldr r0, [r5]
+ mov r1, #0
+ bl FUN_0200C5C0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD75_021EC380
+
+ thumb_func_start MOD75_021EC3B8
+MOD75_021EC3B8: ; 0x021EC3B8
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0200C658
+ cmp r0, #1
+ bne _021EC3EE
+ add r0, r4, #0
+ add r0, #0xf8
+ mov r1, #1
+ ldr r0, [r0]
+ lsl r1, r1, #0xc
+ bl FUN_0200C5B4
+ add r0, r4, #0
+ add r0, #0xf8
+ ldr r0, [r0]
+ bl FUN_0200C630
+ cmp r0, #2
+ bne _021EC3EE
+ add r4, #0xf8
+ ldr r0, [r4]
+ mov r1, #0
+ bl FUN_0200C644
+_021EC3EE:
+ pop {r4, pc}
+ thumb_func_end MOD75_021EC3B8
+
+ .section .rodata
+ ; 0x021EC3F0
+ .incbin "baserom.nds", 0x2D5650, 0x58C
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..3bc1abb1
--- /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 ; =SDK_OVERLAY_MODULE_52_ID
+ ldr r1, _0222E828 ; =0x021D76C8
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7DA:
+ ldr r0, _0222E824 ; =SDK_OVERLAY_MODULE_52_ID
+ ldr r1, _0222E82C ; =0x021D76E8
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7E4:
+ ldr r0, _0222E830 ; =SDK_OVERLAY_MODULE_83_ID
+ ldr r1, _0222E834 ; =0x0223A434
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7EE:
+ ldr r0, _0222E830 ; =SDK_OVERLAY_MODULE_83_ID
+ ldr r1, _0222E838 ; =0x0223A4FC
+ bl FUN_02000E7C
+ pop {r3, pc}
+_0222E7F8:
+ ldr r0, _0222E830 ; =SDK_OVERLAY_MODULE_83_ID
+ 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 ; =SDK_OVERLAY_MODULE_63_ID
+ ldr r1, _0222E84C ; =0x021DBAB8
+ bl FUN_02000E7C
+_0222E822:
+ pop {r3, pc}
+ .align 2, 0
+_0222E824: .word SDK_OVERLAY_MODULE_52_ID
+_0222E828: .word 0x021D76C8
+_0222E82C: .word 0x021D76E8
+_0222E830: .word SDK_OVERLAY_MODULE_83_ID
+_0222E834: .word 0x0223A434
+_0222E838: .word 0x0223A4FC
+_0222E83C: .word 0x0223A3A8
+_0222E840: .word 0x0223A8C4
+_0222E844: .word 0x020FD6D4
+_0222E848: .word SDK_OVERLAY_MODULE_63_ID
+_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 ; =SDK_OVERLAY_MODULE_63_ID
+ 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 SDK_OVERLAY_MODULE_63_ID
+_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 ; =SDK_OVERLAY_MODULE_63_ID
+ ldr r1, _022313D4 ; =0x021DBAB8
+ bl FUN_02000E7C
+ b _022313A6
+_0223139A:
+ cmp r0, #1
+ bne _022313A6
+ ldr r0, _022313D8 ; =SDK_OVERLAY_MODULE_83_ID
+ 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 SDK_OVERLAY_MODULE_63_ID
+_022313D4: .word 0x021DBAB8
+_022313D8: .word SDK_OVERLAY_MODULE_83_ID
+_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 ; =SDK_OVERLAY_MODULE_83_ID
+ 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 SDK_OVERLAY_MODULE_83_ID
+_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 ; =SDK_OVERLAY_MODULE_63_ID
+ 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 SDK_OVERLAY_MODULE_63_ID
+_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/src/FUN_02000DF4.c b/arm9/src/FUN_02000DF4.c
deleted file mode 100644
index 80e80b30..00000000
--- a/arm9/src/FUN_02000DF4.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "global.h"
-#include "main.h"
-
-extern struct Unk2106FA0 gBacklightTop;
-
-THUMB_FUNC void FUN_02000DF4(void)
-{
- gBacklightTop.unk8 = -1;
- gBacklightTop.unkC = 0;
- gBacklightTop.unk10 = -1;
- gBacklightTop.unk14 = 0;
-}
diff --git a/arm9/src/FUN_020910A4.c b/arm9/src/FUN_020910A4.c
index 850486d4..c5b7c916 100644
--- a/arm9/src/FUN_020910A4.c
+++ b/arm9/src/FUN_020910A4.c
@@ -1,10 +1,32 @@
#include "global.h"
-void * (* gUnk021C8C70)(u32);
+typedef void * (* AllocFunc)(u32 size);
+typedef void (* FreeFunc)(void * ptr);
+static FreeFunc gUnk021C8C74;
+static AllocFunc gUnk021C8C70;
+
+// Custom allocator
ARM_FUNC void* FUN_020910A4(u32 size)
{
- if (gUnk021C8C70 != NULL)
- return gUnk021C8C70(size);
- return OS_AllocFromHeap(OS_ARENA_MAIN, -1, size);
+ if (gUnk021C8C70 != NULL)
+ return gUnk021C8C70(size);
+ else
+ return OS_AllocFromHeap(OS_ARENA_MAIN, -1, size);
+}
+
+// Custom destructor
+ARM_FUNC void FUN_0209105C(void * ptr)
+{
+ if (gUnk021C8C74 != NULL)
+ gUnk021C8C74(ptr);
+ else
+ OS_FreeToHeap(OS_ARENA_MAIN, -1, ptr);
+}
+
+// Custom alloc/free setter
+ARM_FUNC void SetCustomAllocator(AllocFunc allocator, FreeFunc destructor)
+{
+ gUnk021C8C70 = allocator;
+ gUnk021C8C74 = destructor;
}
diff --git a/arm9/src/main.c b/arm9/src/main.c
index 73b63332..8c80d686 100644
--- a/arm9/src/main.c
+++ b/arm9/src/main.c
@@ -1,26 +1,73 @@
#include "global.h"
#include "main.h"
+#include "PAD_pad.h"
+#include "CARD_pullOut.h"
+#include "CARD_backup.h"
+#include "CTRDG_common.h"
+#include "poke_overlay.h"
+
+FS_EXTERN_OVERLAY(MODULE_52);
+FS_EXTERN_OVERLAY(MODULE_63);
+
+#define SOFT_RESET_KEY (PAD_BUTTON_L | PAD_BUTTON_R | PAD_BUTTON_START | PAD_BUTTON_SELECT)
-extern struct Unk2106FA0 gBacklightTop;
-extern struct Unk2106FA0 gBacklightTop_2; // same as the first one, it's referenced twice in the constant pool...
extern struct Unk21C48B8 gUnknown21C48B8;
-extern s32 gUnk027FFC20;
extern struct {
s32 unk0;
- s32 unk4;
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u8 unk7;
u8 unk8;
} gUnk021C4918;
-extern void PM_GetBackLight();
extern void OS_WaitIrq();
extern void FUN_02016438(s32);
+extern void InitSystemForTheGame(void);
+extern void InitGraphicMemory(void);
+extern void FUN_020163BC(void);
+extern void FUN_02022294(void);
+extern void FUN_0201259C(void);
+extern void FUN_02000DF4(void);
+extern void FUN_02002C14(void);
+extern void FUN_02002C50(int, int);
+extern int FUN_0202254C(void);
+extern void FUN_02003B98(int, int);
+extern int FUN_02029EF8(int);
+extern int LoadPlayerDataAddress(int);
+extern void FUN_02020AFC(void);
+extern int FUN_020337E8(int);
+extern void FUN_02034188(int, int);
+extern int FUN_020227FC(int);
+extern void FUN_02089D90(int);
+extern void FUN_02000E7C(FSOverlayID, struct Unk21DBE18 *);
+extern void ErrorHandling(void);
+extern void FUN_02000FA4(void);
+extern void FUN_0200A2AC(void);
+extern void FUN_02015E30(void);
+extern void FUN_02000EE8(void);
+extern void FUN_02000FE8(void);
+extern void FUN_02016464(void);
+void DoSoftReset(u32 parameter);
+extern BOOL FUN_0202FB80(void);
+extern void FUN_02000E0C(void);
+extern void FUN_0201B5CC(int);
+extern void FUN_020125D4(void);
+extern void FUN_02015E60(void);
+extern void FUN_020222C4(void);
+extern void FUN_0200A318(void);
+extern void FUN_0200E2D8(void);
+extern void FUN_02003C10(void);
+void FUN_02000F4C(int arg0, int arg1);
+extern BOOL FUN_02006234(struct Unk21DBE18 *, s32 *, int);
+extern BOOL FUN_02006290(int);
+extern void FUN_02006260(int);
+extern BOOL FUN_02033678(void);
+extern int FUN_020335B8(void);
-extern const s32 CONST_3F; // 0x0000003F
-extern const s32 CONST_34; // 0x00000034
-
-extern struct Unk21DBE18 gUnk021DBE18;
-extern struct Unk21DBE18 gUnk021D76C8;
+extern struct Unk21DBE18 MOD63_UNK_021DBE18;
+extern struct Unk21DBE18 MOD52_UNK_021D76C8;
THUMB_FUNC void NitroMain(void)
@@ -30,7 +77,7 @@ THUMB_FUNC void NitroMain(void)
FUN_020163BC();
FUN_02016438(0);
- PM_GetBackLight(&gBacklightTop_2, 0);
+ PM_GetBackLight(&gBacklightTop_2.unk0, NULL);
FUN_02022294();
FUN_0201259C();
@@ -51,15 +98,15 @@ THUMB_FUNC void NitroMain(void)
}
else
{
- switch (gUnk027FFC20)
+ switch (*((s32 *)HW_RESET_PARAMETER_BUF))
{
case 0:
gBacklightTop.unk1C = 0;
- FUN_02000E7C(&CONST_3F, &gUnk021DBE18);
+ FUN_02000E7C(FS_OVERLAY_ID(MODULE_63), &MOD63_UNK_021DBE18);
break;
case 1:
gBacklightTop.unk1C = 1;
- FUN_02000E7C(&CONST_34, &gUnk021D76C8);
+ FUN_02000E7C(FS_OVERLAY_ID(MODULE_52), &MOD52_UNK_021D76C8);
break;
default:
ErrorHandling();
@@ -77,9 +124,9 @@ THUMB_FUNC void NitroMain(void)
FUN_02000EE8();
FUN_02000FE8();
FUN_02016464();
- if ((gUnknown21C48B8.unk38 & 0x30C) == 0x30C && !gUnk021C4918.unk8) // soft reset?
+ if ((gUnknown21C48B8.unk38 & SOFT_RESET_KEY) == SOFT_RESET_KEY && !gUnk021C4918.unk8) // soft reset?
{
- FUN_02000F18(0); // soft reset?
+ DoSoftReset(0); // soft reset?
}
if (FUN_0202FB80())
{
@@ -106,4 +153,199 @@ THUMB_FUNC void NitroMain(void)
FUN_02003C10();
FUN_0201B5CC(gUnknown21C48B8.unk20);
}
-} \ No newline at end of file
+}
+
+THUMB_FUNC void FUN_02000DF4(void)
+{
+ gBacklightTop.unk8 = -1;
+ gBacklightTop.unkC = 0;
+ gBacklightTop.unk10 = -1; // overlay invalid
+ gBacklightTop.unk14 = NULL;
+}
+
+THUMB_FUNC void FUN_02000E0C(void)
+{
+ if (!gBacklightTop.unkC)
+ {
+ if (gBacklightTop.unk14 == NULL)
+ return;
+ if (gBacklightTop.unk10 != -1u)
+ HandleLoadOverlay(gBacklightTop.unk10, 0);
+ gBacklightTop.unk8 = gBacklightTop.unk10;
+ gBacklightTop.unkC = FUN_02006234(gBacklightTop.unk14, &gBacklightTop.unk18, 0);
+ gBacklightTop.unk10 = -1u;
+ gBacklightTop.unk14 = NULL;
+ }
+ if (FUN_02006290(gBacklightTop.unkC))
+ {
+ FUN_02006260(gBacklightTop.unkC);
+ gBacklightTop.unkC = 0;
+ if (gBacklightTop.unk8 != -1u)
+ UnloadOverlayByID(gBacklightTop.unk8);
+ }
+}
+
+THUMB_FUNC void FUN_02000E7C(FSOverlayID id, struct Unk21DBE18 * arg1)
+{
+ if (gBacklightTop.unk14 != NULL)
+ ErrorHandling();
+ gBacklightTop.unk10 = id;
+ gBacklightTop.unk14 = arg1;
+}
+
+THUMB_FUNC void FUN_02000E9C(void)
+{
+ FUN_0202FB80();
+ OS_WaitIrq(1, 1);
+ gUnknown21C48B8.unk2C++;
+ gUnknown21C48B8.unk30 = 0;
+ if (gUnknown21C48B8.unk0 != NULL)
+ gUnknown21C48B8.unk0(gUnknown21C48B8.unk4);
+}
+
+THUMB_FUNC void FUN_02000EC8(u32 parameter)
+{
+ if (FUN_02033678() && CARD_TryWaitBackupAsync() == TRUE)
+ {
+ OS_ResetSystem(parameter);
+ }
+ FUN_02000E9C();
+}
+
+THUMB_FUNC void FUN_02000EE8(void)
+{
+ int r1 = FUN_020335B8();
+ switch (r1)
+ {
+ case 1:
+ FUN_02000F4C(1, r1);
+ break;
+ case 2:
+ FUN_02000F4C(0, r1);
+ break;
+ case 3:
+ FUN_02000F4C(1, r1);
+ break;
+ }
+}
+
+extern void FUN_0200E3A0(int, int);
+extern BOOL FUN_02032DAC(void);
+extern void FUN_020225F8(void);
+extern void FUN_0202287C(void);
+
+// No Return
+THUMB_FUNC void DoSoftReset(u32 parameter)
+{
+ FUN_0200E3A0(0, 0x7FFF);
+ FUN_0200E3A0(1, 0x7FFF);
+ if (FUN_02032DAC())
+ {
+ FUN_020225F8();
+ FUN_0202287C();
+ }
+ do
+ {
+ FUN_02000FE8();
+ FUN_02000EC8(parameter);
+ } while (1);
+}
+
+extern void FUN_02033F70(int, int, int);
+
+THUMB_FUNC void FUN_02000F4C(int arg0, int arg1)
+{
+ if (arg1 == 3)
+ {
+ FUN_02033F70(0, 3, 0);
+ }
+ else if (arg0 == 0)
+ {
+ FUN_02033F70(0, 2, 0);
+ }
+ else
+ {
+ FUN_02033F70(0, 0, 0);
+ }
+ FUN_02032DAC();
+ while (1)
+ {
+ FUN_02000FE8();
+ FUN_02016464();
+ if (gUnknown21C48B8.unk48 & 1)
+ break;
+ FUN_02000E9C();
+ }
+ DoSoftReset(arg0);
+}
+
+extern void FUN_0201265C(struct Unk21C4818 *, struct Unk21C4828 *);
+extern void FUN_0201BA1C(int);
+extern void FUN_0201B9E0(int);
+
+void FUN_02000FA4(void)
+{
+ struct Unk21C4818 spC;
+ struct Unk21C4828 sp0;
+ FUN_0201265C(&spC, &sp0);
+ {
+ int r4 = gUnknown21C48B8.unk2C;
+ int r5 = ((sp0.unk4 + sp0.unk8) << 24) + (spC.unk0 + ((256 * spC.unk4 * spC.unk8) << 16) + (sp0.unk0 << 16));
+ FUN_0201BA1C(r4 + r5);
+ FUN_0201B9E0(r4 + r5);
+ }
+}
+
+extern void FUN_0201CE04(void);
+extern void FUN_0201CDD0(void);
+
+void FUN_02000FE8(void)
+{
+ PMBackLightSwitch top, bottom;
+ if (PAD_DetectFold())
+ {
+ if (!gUnk021C4918.unk7)
+ {
+ FUN_0201CE04();
+ if (CTRDG_IsPulledOut() == TRUE)
+ {
+ gBacklightTop.unk4 = 1;
+ }
+ {
+ int r1 = gBacklightTop.unk4;
+ while (1)
+ {
+ PMWakeUpTrigger trigger = PM_TRIGGER_COVER_OPEN | PM_TRIGGER_CARD;
+ if (gUnk021C4918.unk6 && !r1)
+ trigger |= PM_TRIGGER_CARTRIDGE;
+ PM_GoSleepMode(trigger, PM_PAD_LOGIC_OR, 0);
+ if (CARD_IsPulledOut())
+ {
+ PM_ForceToPowerOff();
+ break;
+ }
+ else if (PAD_DetectFold())
+ {
+ r1 = gBacklightTop.unk4 = 1;
+ }
+ else
+ break;
+ }
+ FUN_0201CDD0();
+ return;
+ }
+ }
+ else
+ {
+ PM_GetBackLight(&top, &bottom);
+ if (top == PM_BACKLIGHT_ON)
+ PM_SetBackLight(PM_LCD_ALL, PM_BACKLIGHT_OFF);
+ }
+ }
+ else
+ {
+ PM_GetBackLight(&top, &bottom);
+ if (top == PM_BACKLIGHT_OFF)
+ PM_SetBackLight(PM_LCD_ALL, gBacklightTop.unk0);
+ }
+}
diff --git a/arm9/src/poke_overlay.c b/arm9/src/poke_overlay.c
index 105881d8..4cf1ea67 100644
--- a/arm9/src/poke_overlay.c
+++ b/arm9/src/poke_overlay.c
@@ -1,11 +1,7 @@
#include "global.h"
#include "nitro.h"
#include "FS_file.h"
-#include "FS_overlay.h"
-
-#define OVERLAY_LOAD_WRAM 0
-#define OVERLAY_LOAD_ITCM 1
-#define OVERLAY_LOAD_DTCM 2
+#include "poke_overlay.h"
extern void ErrorHandling(void);